changeset 11014:a514a5418934

<oerjan> ` rm -rf nasmbuild
author HackBot
date Thu, 15 Jun 2017 01:34:42 +0000
parents 8341e2b3f3be
children 68949a18c270
files nasmbuild/nasm-2.13rc9/AUTHORS nasmbuild/nasm-2.13rc9/CHANGES nasmbuild/nasm-2.13rc9/ChangeLog nasmbuild/nasm-2.13rc9/INSTALL nasmbuild/nasm-2.13rc9/LICENSE nasmbuild/nasm-2.13rc9/Makefile.in nasmbuild/nasm-2.13rc9/Mkfiles/README nasmbuild/nasm-2.13rc9/Mkfiles/msvc.mak nasmbuild/nasm-2.13rc9/Mkfiles/netware.mak nasmbuild/nasm-2.13rc9/Mkfiles/openwcom.mak nasmbuild/nasm-2.13rc9/Mkfiles/owlinux.mak nasmbuild/nasm-2.13rc9/README nasmbuild/nasm-2.13rc9/SubmittingPatches nasmbuild/nasm-2.13rc9/TODO nasmbuild/nasm-2.13rc9/aclocal.m4 nasmbuild/nasm-2.13rc9/asm/assemble.c nasmbuild/nasm-2.13rc9/asm/assemble.h nasmbuild/nasm-2.13rc9/asm/directbl.c nasmbuild/nasm-2.13rc9/asm/directiv.c nasmbuild/nasm-2.13rc9/asm/directiv.dat nasmbuild/nasm-2.13rc9/asm/directiv.h nasmbuild/nasm-2.13rc9/asm/directiv.pl nasmbuild/nasm-2.13rc9/asm/error.c nasmbuild/nasm-2.13rc9/asm/eval.c nasmbuild/nasm-2.13rc9/asm/eval.h nasmbuild/nasm-2.13rc9/asm/exprdump.c nasmbuild/nasm-2.13rc9/asm/exprlib.c nasmbuild/nasm-2.13rc9/asm/float.c nasmbuild/nasm-2.13rc9/asm/float.h nasmbuild/nasm-2.13rc9/asm/labels.c nasmbuild/nasm-2.13rc9/asm/listing.c nasmbuild/nasm-2.13rc9/asm/listing.h nasmbuild/nasm-2.13rc9/asm/nasm.c nasmbuild/nasm-2.13rc9/asm/parser.c nasmbuild/nasm-2.13rc9/asm/parser.h nasmbuild/nasm-2.13rc9/asm/phash.pl nasmbuild/nasm-2.13rc9/asm/pptok.c nasmbuild/nasm-2.13rc9/asm/pptok.dat nasmbuild/nasm-2.13rc9/asm/pptok.h nasmbuild/nasm-2.13rc9/asm/pptok.ph nasmbuild/nasm-2.13rc9/asm/pptok.pl nasmbuild/nasm-2.13rc9/asm/pragma.c nasmbuild/nasm-2.13rc9/asm/preproc-nop.c nasmbuild/nasm-2.13rc9/asm/preproc.c nasmbuild/nasm-2.13rc9/asm/preproc.h nasmbuild/nasm-2.13rc9/asm/quote.c nasmbuild/nasm-2.13rc9/asm/quote.h nasmbuild/nasm-2.13rc9/asm/rdstrnum.c nasmbuild/nasm-2.13rc9/asm/segalloc.c nasmbuild/nasm-2.13rc9/asm/stdscan.c nasmbuild/nasm-2.13rc9/asm/stdscan.h nasmbuild/nasm-2.13rc9/asm/strfunc.c nasmbuild/nasm-2.13rc9/asm/tokens.dat nasmbuild/nasm-2.13rc9/asm/tokens.h nasmbuild/nasm-2.13rc9/asm/tokhash.c nasmbuild/nasm-2.13rc9/asm/tokhash.pl nasmbuild/nasm-2.13rc9/autogen.sh nasmbuild/nasm-2.13rc9/common/common.c nasmbuild/nasm-2.13rc9/confdefs.h nasmbuild/nasm-2.13rc9/config.log nasmbuild/nasm-2.13rc9/config/config.h.in nasmbuild/nasm-2.13rc9/config/msvc.h nasmbuild/nasm-2.13rc9/config/unknown.h nasmbuild/nasm-2.13rc9/config/watcom.h nasmbuild/nasm-2.13rc9/configure nasmbuild/nasm-2.13rc9/configure.ac nasmbuild/nasm-2.13rc9/confoutput nasmbuild/nasm-2.13rc9/conftest.c nasmbuild/nasm-2.13rc9/conftest.err nasmbuild/nasm-2.13rc9/contrib/MSVC6.txt nasmbuild/nasm-2.13rc9/contrib/VSrules/nasm.README nasmbuild/nasm-2.13rc9/contrib/VSrules/nasm.rules nasmbuild/nasm-2.13rc9/disasm/disasm.c nasmbuild/nasm-2.13rc9/disasm/disasm.h nasmbuild/nasm-2.13rc9/disasm/ndisasm.c nasmbuild/nasm-2.13rc9/disasm/sync.c nasmbuild/nasm-2.13rc9/disasm/sync.h nasmbuild/nasm-2.13rc9/doc/Makefile nasmbuild/nasm-2.13rc9/doc/Makefile.in nasmbuild/nasm-2.13rc9/doc/afmmetrics.pl nasmbuild/nasm-2.13rc9/doc/changes.src nasmbuild/nasm-2.13rc9/doc/genps.pl nasmbuild/nasm-2.13rc9/doc/head.ps nasmbuild/nasm-2.13rc9/doc/inslist.pl nasmbuild/nasm-2.13rc9/doc/internal.doc nasmbuild/nasm-2.13rc9/doc/makedocs.bat nasmbuild/nasm-2.13rc9/doc/metrics/pagd8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pagdo8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pagk8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pagko8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pbkd8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pbkdi8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pbkl8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pbkli8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pcrb8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pcrbo8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pcrr8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pcrro8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/phvb8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/phvb8an.ph nasmbuild/nasm-2.13rc9/doc/metrics/phvbo8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/phvbo8an.ph nasmbuild/nasm-2.13rc9/doc/metrics/phvl8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/phvlo8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/phvr8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/phvr8an.ph nasmbuild/nasm-2.13rc9/doc/metrics/phvro8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/phvro8an.ph nasmbuild/nasm-2.13rc9/doc/metrics/pncb8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pncbi8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pncr8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pncri8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pplb8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pplbi8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pplr8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pplri8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/psyr.ph nasmbuild/nasm-2.13rc9/doc/metrics/ptmb8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/ptmbi8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/ptmr8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/ptmri8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/putb8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/putbi8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/putr8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/putri8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pzcmi8a.ph nasmbuild/nasm-2.13rc9/doc/metrics/pzdr.ph nasmbuild/nasm-2.13rc9/doc/nasmdoc.src nasmbuild/nasm-2.13rc9/doc/nasmlogo.eps nasmbuild/nasm-2.13rc9/doc/opt_var.txt nasmbuild/nasm-2.13rc9/doc/psfonts.ph nasmbuild/nasm-2.13rc9/doc/pswidth.ph nasmbuild/nasm-2.13rc9/doc/rdsrc.pl nasmbuild/nasm-2.13rc9/headers/c nasmbuild/nasm-2.13rc9/headers/doc nasmbuild/nasm-2.13rc9/headers/mac nasmbuild/nasm-2.13rc9/headers/perl nasmbuild/nasm-2.13rc9/include/compiler.h nasmbuild/nasm-2.13rc9/include/disp8.h nasmbuild/nasm-2.13rc9/include/error.h nasmbuild/nasm-2.13rc9/include/hashtbl.h nasmbuild/nasm-2.13rc9/include/iflag.h nasmbuild/nasm-2.13rc9/include/insns.h nasmbuild/nasm-2.13rc9/include/labels.h nasmbuild/nasm-2.13rc9/include/md5.h nasmbuild/nasm-2.13rc9/include/nasm.h nasmbuild/nasm-2.13rc9/include/nasmint.h nasmbuild/nasm-2.13rc9/include/nasmlib.h nasmbuild/nasm-2.13rc9/include/opflags.h nasmbuild/nasm-2.13rc9/include/raa.h nasmbuild/nasm-2.13rc9/include/rbtree.h nasmbuild/nasm-2.13rc9/include/rdoff.h nasmbuild/nasm-2.13rc9/include/saa.h nasmbuild/nasm-2.13rc9/include/strlist.h nasmbuild/nasm-2.13rc9/include/tables.h nasmbuild/nasm-2.13rc9/include/ver.h nasmbuild/nasm-2.13rc9/install-sh nasmbuild/nasm-2.13rc9/macros/altreg.mac nasmbuild/nasm-2.13rc9/macros/fp.mac nasmbuild/nasm-2.13rc9/macros/ifunc.mac nasmbuild/nasm-2.13rc9/macros/macros.c nasmbuild/nasm-2.13rc9/macros/macros.pl nasmbuild/nasm-2.13rc9/macros/smartalign.mac nasmbuild/nasm-2.13rc9/macros/standard.mac nasmbuild/nasm-2.13rc9/misc/Doxyfile nasmbuild/nasm-2.13rc9/misc/Nindent nasmbuild/nasm-2.13rc9/misc/README nasmbuild/nasm-2.13rc9/misc/c16.mac nasmbuild/nasm-2.13rc9/misc/c32.mac nasmbuild/nasm-2.13rc9/misc/crcgen.c nasmbuild/nasm-2.13rc9/misc/exebin.mac nasmbuild/nasm-2.13rc9/misc/exebin2.mac nasmbuild/nasm-2.13rc9/misc/fmtinsns.pl nasmbuild/nasm-2.13rc9/misc/genfma.pl nasmbuild/nasm-2.13rc9/misc/hints.txt nasmbuild/nasm-2.13rc9/misc/magic nasmbuild/nasm-2.13rc9/misc/myC32.mac nasmbuild/nasm-2.13rc9/misc/nasm.sl nasmbuild/nasm-2.13rc9/misc/nasmstab nasmbuild/nasm-2.13rc9/misc/omfdump.c nasmbuild/nasm-2.13rc9/misc/pmw.bat nasmbuild/nasm-2.13rc9/misc/proc32.ash nasmbuild/nasm-2.13rc9/misc/scitech.mac nasmbuild/nasm-2.13rc9/misc/xcrcgen.c nasmbuild/nasm-2.13rc9/nasm.1 nasmbuild/nasm-2.13rc9/nasm.spec nasmbuild/nasm-2.13rc9/nasm.spec.in nasmbuild/nasm-2.13rc9/nasm.txt nasmbuild/nasm-2.13rc9/nasmlib/bsi.c nasmbuild/nasm-2.13rc9/nasmlib/crc64.c nasmbuild/nasm-2.13rc9/nasmlib/file.c nasmbuild/nasm-2.13rc9/nasmlib/file.h nasmbuild/nasm-2.13rc9/nasmlib/filename.c nasmbuild/nasm-2.13rc9/nasmlib/hashtbl.c nasmbuild/nasm-2.13rc9/nasmlib/ilog2.c nasmbuild/nasm-2.13rc9/nasmlib/malloc.c nasmbuild/nasm-2.13rc9/nasmlib/md5c.c nasmbuild/nasm-2.13rc9/nasmlib/mmap.c nasmbuild/nasm-2.13rc9/nasmlib/raa.c nasmbuild/nasm-2.13rc9/nasmlib/rbtree.c nasmbuild/nasm-2.13rc9/nasmlib/readnum.c nasmbuild/nasm-2.13rc9/nasmlib/realpath.c nasmbuild/nasm-2.13rc9/nasmlib/saa.c nasmbuild/nasm-2.13rc9/nasmlib/srcfile.c nasmbuild/nasm-2.13rc9/nasmlib/string.c nasmbuild/nasm-2.13rc9/nasmlib/strlist.c nasmbuild/nasm-2.13rc9/nasmlib/ver.c nasmbuild/nasm-2.13rc9/nasmlib/zerobuf.c nasmbuild/nasm-2.13rc9/ndisasm.1 nasmbuild/nasm-2.13rc9/ndisasm.txt nasmbuild/nasm-2.13rc9/nsis/MultiUser.nsh nasmbuild/nasm-2.13rc9/nsis/getpearch.pl nasmbuild/nasm-2.13rc9/nsis/nasm-un.ico nasmbuild/nasm-2.13rc9/nsis/nasm.ico nasmbuild/nasm-2.13rc9/nsis/nasm.nsi nasmbuild/nasm-2.13rc9/nsis/version.nsh nasmbuild/nasm-2.13rc9/nsis/x64.nsh nasmbuild/nasm-2.13rc9/output/codeview.c nasmbuild/nasm-2.13rc9/output/dwarf.h nasmbuild/nasm-2.13rc9/output/elf.h nasmbuild/nasm-2.13rc9/output/legacy.c nasmbuild/nasm-2.13rc9/output/nulldbg.c nasmbuild/nasm-2.13rc9/output/nullout.c nasmbuild/nasm-2.13rc9/output/outaout.c nasmbuild/nasm-2.13rc9/output/outaout.mac nasmbuild/nasm-2.13rc9/output/outas86.c nasmbuild/nasm-2.13rc9/output/outas86.mac nasmbuild/nasm-2.13rc9/output/outbin.c nasmbuild/nasm-2.13rc9/output/outbin.mac nasmbuild/nasm-2.13rc9/output/outcoff.c nasmbuild/nasm-2.13rc9/output/outcoff.mac nasmbuild/nasm-2.13rc9/output/outdbg.c nasmbuild/nasm-2.13rc9/output/outelf.c nasmbuild/nasm-2.13rc9/output/outelf.h nasmbuild/nasm-2.13rc9/output/outelf.mac nasmbuild/nasm-2.13rc9/output/outform.c nasmbuild/nasm-2.13rc9/output/outform.h nasmbuild/nasm-2.13rc9/output/outieee.c nasmbuild/nasm-2.13rc9/output/outlib.c nasmbuild/nasm-2.13rc9/output/outlib.h nasmbuild/nasm-2.13rc9/output/outmacho.c nasmbuild/nasm-2.13rc9/output/outmacho.mac nasmbuild/nasm-2.13rc9/output/outobj.c nasmbuild/nasm-2.13rc9/output/outobj.mac nasmbuild/nasm-2.13rc9/output/outrdf.mac nasmbuild/nasm-2.13rc9/output/outrdf2.c nasmbuild/nasm-2.13rc9/output/outrdf2.mac nasmbuild/nasm-2.13rc9/output/pecoff.h nasmbuild/nasm-2.13rc9/output/stabs.h nasmbuild/nasm-2.13rc9/perllib/crc64.ph nasmbuild/nasm-2.13rc9/perllib/gensv.pl nasmbuild/nasm-2.13rc9/perllib/phash.ph nasmbuild/nasm-2.13rc9/perllib/random_sv_vectors.ph nasmbuild/nasm-2.13rc9/rdoff/Makefile.in nasmbuild/nasm-2.13rc9/rdoff/Mkfiles/Makefile.dj nasmbuild/nasm-2.13rc9/rdoff/Mkfiles/Makefile.emx nasmbuild/nasm-2.13rc9/rdoff/Mkfiles/Makefile.sc nasmbuild/nasm-2.13rc9/rdoff/Mkfiles/Makefile.unx nasmbuild/nasm-2.13rc9/rdoff/Mkfiles/README nasmbuild/nasm-2.13rc9/rdoff/README nasmbuild/nasm-2.13rc9/rdoff/collectn.c nasmbuild/nasm-2.13rc9/rdoff/collectn.h nasmbuild/nasm-2.13rc9/rdoff/doc/Makefile nasmbuild/nasm-2.13rc9/rdoff/doc/rdoff.texi nasmbuild/nasm-2.13rc9/rdoff/doc/v1-v2.txt nasmbuild/nasm-2.13rc9/rdoff/hash.c nasmbuild/nasm-2.13rc9/rdoff/hash.h nasmbuild/nasm-2.13rc9/rdoff/ldrdf.1 nasmbuild/nasm-2.13rc9/rdoff/ldrdf.c nasmbuild/nasm-2.13rc9/rdoff/ldsegs.h nasmbuild/nasm-2.13rc9/rdoff/rdf2bin.1 nasmbuild/nasm-2.13rc9/rdoff/rdf2bin.c nasmbuild/nasm-2.13rc9/rdoff/rdf2com.1 nasmbuild/nasm-2.13rc9/rdoff/rdf2ihx.1 nasmbuild/nasm-2.13rc9/rdoff/rdf2ith.1 nasmbuild/nasm-2.13rc9/rdoff/rdf2srec.1 nasmbuild/nasm-2.13rc9/rdoff/rdfdump.1 nasmbuild/nasm-2.13rc9/rdoff/rdfdump.c nasmbuild/nasm-2.13rc9/rdoff/rdflib.1 nasmbuild/nasm-2.13rc9/rdoff/rdflib.c nasmbuild/nasm-2.13rc9/rdoff/rdfload.c nasmbuild/nasm-2.13rc9/rdoff/rdfload.h nasmbuild/nasm-2.13rc9/rdoff/rdlar.c nasmbuild/nasm-2.13rc9/rdoff/rdlar.h nasmbuild/nasm-2.13rc9/rdoff/rdlib.c nasmbuild/nasm-2.13rc9/rdoff/rdlib.h nasmbuild/nasm-2.13rc9/rdoff/rdoff.c nasmbuild/nasm-2.13rc9/rdoff/rdx.1 nasmbuild/nasm-2.13rc9/rdoff/rdx.c nasmbuild/nasm-2.13rc9/rdoff/segtab.c nasmbuild/nasm-2.13rc9/rdoff/segtab.h nasmbuild/nasm-2.13rc9/rdoff/symtab.c nasmbuild/nasm-2.13rc9/rdoff/symtab.h nasmbuild/nasm-2.13rc9/rdoff/test/Makefile nasmbuild/nasm-2.13rc9/rdoff/test/makelib.sh nasmbuild/nasm-2.13rc9/rdoff/test/rdfseg.asm nasmbuild/nasm-2.13rc9/rdoff/test/rdfseg2.asm nasmbuild/nasm-2.13rc9/rdoff/test/rdftest1.asm nasmbuild/nasm-2.13rc9/rdoff/test/rdftest2.asm nasmbuild/nasm-2.13rc9/rdoff/test/rdtlib.asm nasmbuild/nasm-2.13rc9/rdoff/test/rdtmain.asm nasmbuild/nasm-2.13rc9/rdoff/test/testlib.asm nasmbuild/nasm-2.13rc9/stdlib/snprintf.c nasmbuild/nasm-2.13rc9/stdlib/strlcpy.c nasmbuild/nasm-2.13rc9/stdlib/strnlen.c nasmbuild/nasm-2.13rc9/stdlib/vsnprintf.c nasmbuild/nasm-2.13rc9/test/Makefile nasmbuild/nasm-2.13rc9/test/_file_.asm nasmbuild/nasm-2.13rc9/test/_version.asm nasmbuild/nasm-2.13rc9/test/a32offs.asm nasmbuild/nasm-2.13rc9/test/absolute.asm nasmbuild/nasm-2.13rc9/test/addr64x.asm nasmbuild/nasm-2.13rc9/test/align13.asm nasmbuild/nasm-2.13rc9/test/align13s.asm nasmbuild/nasm-2.13rc9/test/alonesym-obj.asm nasmbuild/nasm-2.13rc9/test/andbyte.asm nasmbuild/nasm-2.13rc9/test/aoutso.asm nasmbuild/nasm-2.13rc9/test/aouttest.asm nasmbuild/nasm-2.13rc9/test/aouttest.c nasmbuild/nasm-2.13rc9/test/avx.asm nasmbuild/nasm-2.13rc9/test/avx005.asm nasmbuild/nasm-2.13rc9/test/avx2.asm nasmbuild/nasm-2.13rc9/test/avx512cd.asm nasmbuild/nasm-2.13rc9/test/avx512er.asm nasmbuild/nasm-2.13rc9/test/avx512f.asm nasmbuild/nasm-2.13rc9/test/avx512pf.asm nasmbuild/nasm-2.13rc9/test/bcd.asm nasmbuild/nasm-2.13rc9/test/binexe.asm nasmbuild/nasm-2.13rc9/test/bintest.asm nasmbuild/nasm-2.13rc9/test/bisect.sh nasmbuild/nasm-2.13rc9/test/br1879590.asm nasmbuild/nasm-2.13rc9/test/br2003451.asm nasmbuild/nasm-2.13rc9/test/br2030823.asm nasmbuild/nasm-2.13rc9/test/br2148476.asm nasmbuild/nasm-2.13rc9/test/br2222615.asm nasmbuild/nasm-2.13rc9/test/br2496848.asm nasmbuild/nasm-2.13rc9/test/br3005117.asm nasmbuild/nasm-2.13rc9/test/br3026808.asm nasmbuild/nasm-2.13rc9/test/br3028880.asm nasmbuild/nasm-2.13rc9/test/br3041451.asm nasmbuild/nasm-2.13rc9/test/br3058845.asm nasmbuild/nasm-2.13rc9/test/br3066383.asm nasmbuild/nasm-2.13rc9/test/br3074517.asm nasmbuild/nasm-2.13rc9/test/br3092924.asm nasmbuild/nasm-2.13rc9/test/br3104312.asm nasmbuild/nasm-2.13rc9/test/br3109604.asm nasmbuild/nasm-2.13rc9/test/br3174983.asm nasmbuild/nasm-2.13rc9/test/br3187743.asm nasmbuild/nasm-2.13rc9/test/br3189064.asm nasmbuild/nasm-2.13rc9/test/br3200749.asm nasmbuild/nasm-2.13rc9/test/br3385573.asm nasmbuild/nasm-2.13rc9/test/br3392252.asm nasmbuild/nasm-2.13rc9/test/br3392259.asm nasmbuild/nasm-2.13rc9/test/br560575.asm nasmbuild/nasm-2.13rc9/test/br560873.asm nasmbuild/nasm-2.13rc9/test/br890790.asm nasmbuild/nasm-2.13rc9/test/br890790_i.asm nasmbuild/nasm-2.13rc9/test/br978756.asm nasmbuild/nasm-2.13rc9/test/changed.asm nasmbuild/nasm-2.13rc9/test/cofftest.asm nasmbuild/nasm-2.13rc9/test/cofftest.c nasmbuild/nasm-2.13rc9/test/crc32.asm nasmbuild/nasm-2.13rc9/test/cv8struc.asm nasmbuild/nasm-2.13rc9/test/dtbcd.asm nasmbuild/nasm-2.13rc9/test/elf64so.asm nasmbuild/nasm-2.13rc9/test/elfso.asm nasmbuild/nasm-2.13rc9/test/elftest.asm nasmbuild/nasm-2.13rc9/test/elftest.c nasmbuild/nasm-2.13rc9/test/elftest64.c nasmbuild/nasm-2.13rc9/test/elif.asm nasmbuild/nasm-2.13rc9/test/expimp.asm nasmbuild/nasm-2.13rc9/test/far64.asm nasmbuild/nasm-2.13rc9/test/float.asm nasmbuild/nasm-2.13rc9/test/float8.asm nasmbuild/nasm-2.13rc9/test/floatb.asm nasmbuild/nasm-2.13rc9/test/floatexp.asm nasmbuild/nasm-2.13rc9/test/floatize.asm nasmbuild/nasm-2.13rc9/test/floattest.asm nasmbuild/nasm-2.13rc9/test/floatx.asm nasmbuild/nasm-2.13rc9/test/fpu.asm nasmbuild/nasm-2.13rc9/test/fwdopt.asm nasmbuild/nasm-2.13rc9/test/fwdoptpp.asm nasmbuild/nasm-2.13rc9/test/gas2nasm.py nasmbuild/nasm-2.13rc9/test/gather.asm nasmbuild/nasm-2.13rc9/test/gotoff64.asm nasmbuild/nasm-2.13rc9/test/hle.asm nasmbuild/nasm-2.13rc9/test/ifelse.asm nasmbuild/nasm-2.13rc9/test/ifenv.asm nasmbuild/nasm-2.13rc9/test/ifmacro.asm nasmbuild/nasm-2.13rc9/test/iftoken.asm nasmbuild/nasm-2.13rc9/test/iftoken.pl nasmbuild/nasm-2.13rc9/test/ilog2.asm nasmbuild/nasm-2.13rc9/test/imacro.asm nasmbuild/nasm-2.13rc9/test/imm.asm nasmbuild/nasm-2.13rc9/test/imm64.asm nasmbuild/nasm-2.13rc9/test/immwarn.asm nasmbuild/nasm-2.13rc9/test/imul.asm nasmbuild/nasm-2.13rc9/test/inc1.asm nasmbuild/nasm-2.13rc9/test/inc2.asm nasmbuild/nasm-2.13rc9/test/incbin.asm nasmbuild/nasm-2.13rc9/test/incbin.data nasmbuild/nasm-2.13rc9/test/inctest.asm nasmbuild/nasm-2.13rc9/test/insnlbl.asm nasmbuild/nasm-2.13rc9/test/invlpga.asm nasmbuild/nasm-2.13rc9/test/jmp64.asm nasmbuild/nasm-2.13rc9/test/lar_lsl.asm nasmbuild/nasm-2.13rc9/test/larlsl.asm nasmbuild/nasm-2.13rc9/test/lnxhello.asm nasmbuild/nasm-2.13rc9/test/local.asm nasmbuild/nasm-2.13rc9/test/loopoffs.asm nasmbuild/nasm-2.13rc9/test/lwp.asm nasmbuild/nasm-2.13rc9/test/macro-defaults.asm nasmbuild/nasm-2.13rc9/test/macroerr.asm nasmbuild/nasm-2.13rc9/test/macroerr.inc nasmbuild/nasm-2.13rc9/test/mmxsize.asm nasmbuild/nasm-2.13rc9/test/movd.asm nasmbuild/nasm-2.13rc9/test/movd64.asm nasmbuild/nasm-2.13rc9/test/movimm.asm nasmbuild/nasm-2.13rc9/test/movnti.asm nasmbuild/nasm-2.13rc9/test/mpx-64.asm nasmbuild/nasm-2.13rc9/test/mpx.asm nasmbuild/nasm-2.13rc9/test/multisection.asm nasmbuild/nasm-2.13rc9/test/nasmformat.asm nasmbuild/nasm-2.13rc9/test/new nasmbuild/nasm-2.13rc9/test/newrdwr.asm nasmbuild/nasm-2.13rc9/test/nop.asm nasmbuild/nasm-2.13rc9/test/nullfile.asm nasmbuild/nasm-2.13rc9/test/objexe.asm nasmbuild/nasm-2.13rc9/test/objlink.c nasmbuild/nasm-2.13rc9/test/objtest.asm nasmbuild/nasm-2.13rc9/test/optimization.asm nasmbuild/nasm-2.13rc9/test/org.asm nasmbuild/nasm-2.13rc9/test/paste.asm nasmbuild/nasm-2.13rc9/test/pcrel.asm nasmbuild/nasm-2.13rc9/test/perf/label.pl nasmbuild/nasm-2.13rc9/test/perf/macro.pl nasmbuild/nasm-2.13rc9/test/perf/token.pl nasmbuild/nasm-2.13rc9/test/performtest.pl nasmbuild/nasm-2.13rc9/test/pinsr16.asm nasmbuild/nasm-2.13rc9/test/pinsr32.asm nasmbuild/nasm-2.13rc9/test/pinsr64.asm nasmbuild/nasm-2.13rc9/test/popcnt.asm nasmbuild/nasm-2.13rc9/test/ppindirect.asm nasmbuild/nasm-2.13rc9/test/pragma.asm nasmbuild/nasm-2.13rc9/test/prefix66.asm nasmbuild/nasm-2.13rc9/test/ptr.asm nasmbuild/nasm-2.13rc9/test/pushseg.asm nasmbuild/nasm-2.13rc9/test/r13.asm nasmbuild/nasm-2.13rc9/test/radix.asm nasmbuild/nasm-2.13rc9/test/rdpid.asm nasmbuild/nasm-2.13rc9/test/reldef.asm nasmbuild/nasm-2.13rc9/test/relocs.asm nasmbuild/nasm-2.13rc9/test/riprel.asm nasmbuild/nasm-2.13rc9/test/riprel.pl nasmbuild/nasm-2.13rc9/test/riprel2.asm nasmbuild/nasm-2.13rc9/test/sha-64.asm nasmbuild/nasm-2.13rc9/test/sha.asm nasmbuild/nasm-2.13rc9/test/smartalign16.asm nasmbuild/nasm-2.13rc9/test/smartalign32.asm nasmbuild/nasm-2.13rc9/test/smartalign64.asm nasmbuild/nasm-2.13rc9/test/splitea.asm nasmbuild/nasm-2.13rc9/test/sreg.asm nasmbuild/nasm-2.13rc9/test/strlen.asm nasmbuild/nasm-2.13rc9/test/struc.asm nasmbuild/nasm-2.13rc9/test/test67.asm nasmbuild/nasm-2.13rc9/test/testdos.asm nasmbuild/nasm-2.13rc9/test/testnos3.asm nasmbuild/nasm-2.13rc9/test/time.asm nasmbuild/nasm-2.13rc9/test/times.asm nasmbuild/nasm-2.13rc9/test/tmap.nas nasmbuild/nasm-2.13rc9/test/uscore.asm nasmbuild/nasm-2.13rc9/test/utf.asm nasmbuild/nasm-2.13rc9/test/vex.asm nasmbuild/nasm-2.13rc9/test/vgather.asm nasmbuild/nasm-2.13rc9/test/vmread.asm nasmbuild/nasm-2.13rc9/test/weirdpaste.asm nasmbuild/nasm-2.13rc9/test/xchg.asm nasmbuild/nasm-2.13rc9/test/xcrypt.asm nasmbuild/nasm-2.13rc9/test/xmm0.asm nasmbuild/nasm-2.13rc9/test/zerobyte.asm nasmbuild/nasm-2.13rc9/tools/cleanfile nasmbuild/nasm-2.13rc9/tools/cleanpatch nasmbuild/nasm-2.13rc9/tools/mkdep.pl nasmbuild/nasm-2.13rc9/tools/release nasmbuild/nasm-2.13rc9/tools/syncfiles.pl nasmbuild/nasm-2.13rc9/tools/tag-release nasmbuild/nasm-2.13rc9/version nasmbuild/nasm-2.13rc9/version.h nasmbuild/nasm-2.13rc9/version.mac nasmbuild/nasm-2.13rc9/version.mak nasmbuild/nasm-2.13rc9/version.pl nasmbuild/nasm-2.13rc9/version.sed nasmbuild/nasm-2.13rc9/x86/disp8.c nasmbuild/nasm-2.13rc9/x86/iflag.c nasmbuild/nasm-2.13rc9/x86/iflaggen.h nasmbuild/nasm-2.13rc9/x86/insns-iflags.pl nasmbuild/nasm-2.13rc9/x86/insns.dat nasmbuild/nasm-2.13rc9/x86/insns.pl nasmbuild/nasm-2.13rc9/x86/insnsa.c nasmbuild/nasm-2.13rc9/x86/insnsb.c nasmbuild/nasm-2.13rc9/x86/insnsd.c nasmbuild/nasm-2.13rc9/x86/insnsi.h nasmbuild/nasm-2.13rc9/x86/insnsn.c nasmbuild/nasm-2.13rc9/x86/regdis.c nasmbuild/nasm-2.13rc9/x86/regdis.h nasmbuild/nasm-2.13rc9/x86/regflags.c nasmbuild/nasm-2.13rc9/x86/regs.c nasmbuild/nasm-2.13rc9/x86/regs.dat nasmbuild/nasm-2.13rc9/x86/regs.h nasmbuild/nasm-2.13rc9/x86/regs.pl nasmbuild/nasm-2.13rc9/x86/regvals.c nasmbuild/nasm.tar.gz
diffstat 511 files changed, 0 insertions(+), 195273 deletions(-) [+]
line wrap: on
line diff
--- a/nasmbuild/nasm-2.13rc9/AUTHORS	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-This is the AUTHORS file for the NASM project located at:
-http://nasm.sourceforge.net/
-
-Names should be inserted as follows:
-
-N: Name Here
-E: Email Here
-D: Description Here
-D: Additional Description Here.... and so on
-C: Copyright information
-
-Such is life.
--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-
-N: Julian Hall
-E: Jules@acris.co.uk
-D: Original author and co-conspirator
-
-N: Simon Tatham
-E: anakin@pobox.com
-D: Original author and co-conspirator
-
-N: Nelson Rush
-E: palisade@users.sourceforge.net
-D: Some guy.
-
-N: Frank Kotler
-E: fbkotler@users.sf.net
-D: Bug smashing.
-D: Documentation - "KATMAI" and "3DNow!" instructions supported by 0.98
-D: General coordination and moral support.
-
-N: Stephen Silver
-E: nasm@argentum.freeserve.co.uk
-D: Documentation - "3dNow!" instructions and misc.
-D: insns.dat fixes and new instructions.
-
-N: AMD Inc. (names of developers here?)
-E:
-D: 3DNow instructions
-D: New Athlon instructions
-D: Makefile.vc fix
-
-N: John Coffman
-E: johninsd@users.sourceforge.net
-D: added Jcc optimizations; CPU level checks
-D: bug fixes, compilation fixes
-
-N: Yuri Zaporozhets
-E: r_tty@yahoo.co.uk
-D: RDOFF support
-
-N: H. Peter Anvin
-E: hpa@zytor.com
-D: Primary maintainer for the 0.98, late 0.98.x and 2.x releases.
-C: Contributions since 2008-12-15 are Copyright Intel Corporation.
-
-N: John Fine
-E: johnfine@earthlink.net
-D: Preprocessor and OBJ (OMF) output format driver
-D: Organized DOS versions of 0.98 release
-
-N: Kendall Bennet
-E: KendallB@scitechsoft.com
-D: NASM enhancements
-D: macros
-D: Syntax modifications
-
-N: Gary Clark
-E:
-D: AMD 3DNow! instructions
-
-N: Andrew Crabtree
-E:
-D: Debugging support
-
-N: Rafael R. Sevilla
-E: dido@pacific.net.ph
-D: RDF2HEX utility
-
-N: Jaime Tejedor Gómez, aka Metalbrain
-E: metalbrain_coder@gmx.net
-D: jecxz bug fix
-
-N: James Seter
-E: pharos@zsnes.com
-D: --POSTFIX, --PREFIX switches
-D: ?
-
-N: Edward J. Beroset
-E: beroset@mindspring.com
-D: added %substr and %strlen
-
-N: Stanislav Karchebny, aka berkus, madfire, daemonhunter
-E: madfire@users.sourceforge.net
-D: multiple sections support for -fbin format
-D: cvs maintenance
-D: webpage at http://nasm.2y.net maintenance
-
-N: Debbie Wiles, aka debs
-E: debs@dwiles.demon.co.uk
-D: Work on docs, added undocumented instructions (esp SSE2 and 3D-Now!)
-D: Added other documentation and tidied up docs
-D: Added a few instructions to insns.dat and tidied it up.
-
-N: Trevor Woerner
-E: FIXME
-D: Quiet compiler warnings
-
-N: Michael K. Ter Louw
-E: mterlo1 "at" uic "dot" edu
-D: Multisection support for "-f bin"
-
-N: Martin Wawro
-E: FIXME
-D: stabs debug support for "-f elf"
-
-N: Alexei Frounze
-E: alexfru@users.sourceforge.net
-D: "-I" paths searched for "incbined" files
-D: bugswatting
-
-N: Keith Kanios, aka SpooK
-E: keith@kanios.net
-D: c99 Compliance
-D: General x64 Support
-D: win64 (x86-64 COFF) output format
-D: __BITS__ Standard Macro
-D: Website Maintenance @ http://nasm.sourceforge.net/
-
-N: Chuck Crayne
-E: ccrayne@users.sourceforge.net
-D: elf64 (x86_64) output format
-
-N: Cyrill Gorcunov
-E: gorcunov@gmail.com
-D: AMD XOP/FMA4/CVT16 instructions
--- a/nasmbuild/nasm-2.13rc9/CHANGES	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-The revision history has moved to the file doc/changes.src, and
-is now included in the documentation as Appendix C.
--- a/nasmbuild/nasm-2.13rc9/ChangeLog	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2905 +0,0 @@
-Sat Nov 24 16:31:48 2007 -0800 H. Peter Anvin 
-  * Typo fixes in documentation
-Tue Nov 20 23:37:46 2007 -0800 H. Peter Anvin 
-  * NASM 2.00rc3
-Tue Nov 20 21:45:16 2007 -0800 H. Peter Anvin 
-  * Unbreak CMPSW/CMPSD/CMPSQ
-Tue Nov 20 13:23:34 2007 -0800 H. Peter Anvin 
-  * Merge branch 'master' of git+ssh://repo.or.cz/srv/git/nasm
-Tue Nov 20 13:22:58 2007 -0800 H. Peter Anvin 
-  * ndisasm: handle the case of "no more sync points"
-Mon Nov 19 23:09:31 2007 -0800 H. Peter Anvin 
-  * NASM 2.00rc2
-Mon Nov 19 23:09:24 2007 -0800 H. Peter Anvin 
-  * tag-release: a simple script to tag the repository for release
-Mon Nov 19 13:14:59 2007 -0800 H. Peter Anvin 
-  * Slightly faster implementation of the deadman counter
-Mon Nov 19 12:26:50 2007 -0800 H. Peter Anvin 
-  * BR 812417: Deadman counter for macro expansion
-Mon Nov 19 12:02:38 2007 -0800 H. Peter Anvin 
-  * BR 877583: Fix RAA memory leak
-Mon Nov 19 11:53:18 2007 -0800 H. Peter Anvin 
-  * BR 863173: Fix offsets of TIMES/INCBIN in list file
-Mon Nov 19 11:45:40 2007 -0800 H. Peter Anvin 
-  * BR 1834731: Remove redundant error messages for no input file
-Mon Nov 19 11:44:05 2007 -0800 H. Peter Anvin 
-  * insns.pl: remove debugging output
-Sun Nov 18 22:18:09 2007 -0800 H. Peter Anvin 
-  * Clean up remaining build warnings
-Sun Nov 18 21:55:26 2007 -0800 H. Peter Anvin 
-  * BR 1834292: Fix multiple disassembler bugs
-Sun Nov 18 12:01:05 2007 -0800 H. Peter Anvin 
-  * BR 1834056: Remove warnings in rdoff/rdoff.c
-Sun Nov 18 11:55:10 2007 -0800 H. Peter Anvin 
-  * BR 1091926: Bounds checking for command line parsing
-Sat Nov 17 21:21:18 2007 -0800 H. Peter Anvin 
-  * Remove FIXME from documentation
-Sat Nov 17 21:08:33 2007 -0800 Charles Crayne 
-  * Check in Keith's Fixes
-Sat Nov 17 14:35:19 2007 -0800 H. Peter Anvin 
-  * Make the definition for float_const() match the prototype
-Fri Nov 16 00:03:02 2007 -0800 H. Peter Anvin 
-  * NASM 2.00rc1
-Thu Nov 15 17:12:29 2007 -0800 H. Peter Anvin 
-  * Clean up the command-line parsing; make -w/-W match others
-Thu Nov 15 14:38:19 2007 -0800 H. Peter Anvin 
-  * BR 993895: Support zero-operand floating-point insn
-Thu Nov 15 10:25:52 2007 -0800 H. Peter Anvin 
-  * Remove some vestiges of "native" RESW/RESD support
-Thu Nov 15 10:24:55 2007 -0800 H. Peter Anvin 
-  * outbin.c: fix one missed change from type -> size
-Tue Nov 13 19:52:54 2007 -0800 root 
-  * Support setting OSABI value in ELF header.
-Tue Nov 13 11:34:34 2007 -0800 H. Peter Anvin 
-  * Enable a few warnings by default; clean up warning descriptions
-Tue Nov 13 11:31:15 2007 -0800 H. Peter Anvin 
-  * Add gcc-style -W/-Wno- warning selections; -Wall; -Werror
-Tue Nov 13 10:37:23 2007 -0800 H. Peter Anvin 
-  * Clean up the fwrite*() function definitions somewhat
-Tue Nov 13 09:49:51 2007 -0800 H. Peter Anvin 
-  * Cast 64-bit switch expressions to (int) to keep OpenWatcom happy
-Tue Nov 13 09:46:38 2007 -0800 H. Peter Anvin 
-  * x86-host-specific performance improvement
-Tue Nov 13 09:37:59 2007 -0800 H. Peter Anvin 
-  * Address data is int64_t; simplify writing an address object
-Mon Nov 12 23:00:31 2007 -0800 H. Peter Anvin 
-  * ndisasm: factor out the common operand-extraction code
-Mon Nov 12 22:56:07 2007 -0800 H. Peter Anvin 
-  * Un-special-case "xchg rax,rax"; disassemble o64
-Mon Nov 12 22:11:46 2007 -0800 H. Peter Anvin 
-  * BR 1709392: Fix alignment handling in Mach-O format
-Mon Nov 12 22:05:31 2007 -0800 H. Peter Anvin 
-  * BR 1828866: fix handling of LAR/LSL
-Mon Nov 12 21:57:00 2007 -0800 H. Peter Anvin 
-  * Better (but not *good!*) handling of 64-bit addressing in ndisasm
-Mon Nov 12 21:02:33 2007 -0800 H. Peter Anvin 
-  * Fix disassembly of XCHG
-Mon Nov 12 20:18:33 2007 -0800 H. Peter Anvin 
-  * Test of XCHG
-Mon Nov 12 20:18:05 2007 -0800 H. Peter Anvin 
-  * Fix handling of XCHG in 64-bit mode
-Mon Nov 12 19:36:13 2007 -0800 H. Peter Anvin 
-  * More \321 -> \324 bug fixes
-Mon Nov 12 18:26:31 2007 -0800 H. Peter Anvin 
-  * float.c: all warnings and errors are pass 1 only
-Sat Nov 10 21:55:19 2007 -0800 Charles Crayne 
-  * Update documentation for stack relative directives.
-Sat Nov 10 17:52:23 2007 -0800 Charles Crayne 
-  * Clean up a few more 32-bit bottlenecks
-Fri Nov 9 16:37:41 2007 -0800 Charles Crayne 
-  * Update documantation for stack relative directives
-Fri Nov 9 16:33:54 2007 -0800 Charles Crayne 
-  * Merge branch 'master' of /home/chuck/development/gitnasm/
-Fri Nov 9 16:25:43 2007 -0800 Charles Crayne 
-  * Update documentation for stack relative directives
-Fri Nov 9 14:44:02 2007 -0800 H. Peter Anvin 
-  * Don't combine type and size into a single argument
-Thu Nov 8 22:11:14 2007 -0800 Charles Crayne 
-  * Add flat64 to %stacksize choices
-Thu Nov 8 20:43:22 2007 -0800 H. Peter Anvin 
-  * Fix building under OpenWatcom
-Thu Nov 8 20:29:37 2007 -0800 H. Peter Anvin 
-  * ps2pdf: remove -dOptimize=true
-Thu Nov 8 20:21:41 2007 -0800 H. Peter Anvin 
-  * No binary files left in the source distro; unbreak release script
-Thu Nov 8 20:01:11 2007 -0800 H. Peter Anvin 
-  * BR 1828103: Fix %arg and %local
-Thu Nov 8 19:34:01 2007 -0800 H. Peter Anvin 
-  * nasmlib.c: prefix_name(): use the elements() macro
-Thu Nov 8 19:30:22 2007 -0800 H. Peter Anvin 
-  * Move elements() to nasmlib.h
-Thu Nov 8 19:15:33 2007 -0800 H. Peter Anvin 
-  * constipate the "str" argument to bsi() and bsii()
-Wed Nov 7 19:03:46 2007 -0800 Charles Crayne 
-  * Upgrade RAA functions to hold 64-bit data.
-Tue Nov 6 21:48:12 2007 -0800 Charles Crayne 
-  * Pass 64-bit instruction lengths to back-ends.
-Tue Nov 6 18:27:23 2007 -0800 Charles Crayne 
-  * Prepare for 64-bit instruction lengths
-Mon Nov 5 21:49:49 2007 -0800 Charles Crayne 
-  * Disambiguate error messages
-Mon Nov 5 17:19:32 2007 -0800 Charles Crayne 
-  * Upgrade label functions to 64-bit
-Sun Nov 4 21:10:42 2007 -0800 H. Peter Anvin 
-  * Permit opcode names as labels as long as they are followed by a colon
-Sun Nov 4 15:28:30 2007 -0800 Charles Crayne 
-  * Make warning limit valid for both i386 and x86_64
-Sat Nov 3 22:06:13 2007 -0700 Charles Crayne 
-  * Warn on out of bounds EA displacements
-Thu Nov 1 15:08:27 2007 -0700 H. Peter Anvin 
-  * Treat info files as binary when creating xdoc distro file
-Thu Nov 1 15:07:42 2007 -0700 H. Peter Anvin 
-  * Remove obsolete binary files from the distribution
-Thu Nov 1 14:53:32 2007 -0700 H. Peter Anvin 
-  * Move declarations before statements
-Wed Oct 31 23:37:35 2007 -0700 H. Peter Anvin 
-  * NASM 0.99.06
-Wed Oct 31 23:37:19 2007 -0700 H. Peter Anvin 
-  * Script to tag the tree for release
-Wed Oct 31 10:59:26 2007 -0700 H. Peter Anvin 
-  * Even more "riprel" tests
-Tue Oct 30 01:17:57 2007 -0700 H. Peter Anvin 
-  * floatx.asm: add tests for "rounds up to smallest denorm"
-Tue Oct 30 01:13:27 2007 -0700 H. Peter Anvin 
-  * Run "make alldeps"
-Tue Oct 30 01:13:09 2007 -0700 H. Peter Anvin 
-  * float.c: handle round-up-to-denorm correctly.
-Tue Oct 30 00:59:27 2007 -0700 H. Peter Anvin 
-  * Exhaustive test for 8-bit floating point values
-Mon Oct 29 23:12:47 2007 -0700 H. Peter Anvin 
-  * Clean up the handing of operands in assemble.c
-Mon Oct 29 22:56:08 2007 -0700 H. Peter Anvin 
-  * Don't warn for segmented references
-Mon Oct 29 20:20:12 2007 -0700 H. Peter Anvin 
-  * Use a 32-bit floating-point limb size; support 8-bit float
-Mon Oct 29 18:24:59 2007 -0700 Charles Crayne 
-  * Reduce severity of redundant prefixes from error to warning.
-Sun Oct 28 23:23:24 2007 -0700 H. Peter Anvin 
-  * Test of some addressing modes in 64-bit mode.
-Sun Oct 28 23:21:46 2007 -0700 H. Peter Anvin 
-  * Fix bogus flagging of effective addresses as invalid
-Sun Oct 28 23:10:34 2007 -0700 H. Peter Anvin 
-  * Actually shut up the warning in rdfload.c
-Sun Oct 28 22:04:42 2007 -0700 H. Peter Anvin 
-  * Clean up stealth whitespace
-Sun Oct 28 22:04:00 2007 -0700 H. Peter Anvin 
-  * Fix warning about cast to pointer in rdfload.c
-Sun Oct 28 22:04:00 2007 -0700 H. Peter Anvin 
-  * 64-bit addressing and prefix handling changes
-Sun Oct 28 15:29:54 2007 -0700 Charles Crayne 
-  * Adjust stabs symbol index to match symbol table.
-Fri Oct 26 21:38:02 2007 -0700 H. Peter Anvin 
-  * readnum(): handle prefix-suffix collision like "0h"
-Fri Oct 26 18:49:29 2007 -0700 H. Peter Anvin 
-  * Better handling of platforms which hide "extended" functionality
-Wed Oct 24 15:51:40 2007 -0700 Charles Crayne 
-  * Merge branch 'master' of /home/chuck/development/gitnasm/
-Wed Oct 24 15:30:17 2007 -0700 Charles Crayne 
-  * Update sections about debug info formats
-Wed Oct 24 15:29:51 2007 -0700 H. Peter Anvin 
-  * Fix the handling of floating-point tokens in the preprocessor
-Tue Oct 23 19:28:39 2007 -0700 Charles Crayne 
-  * Fix bugs item #1817677
-Tue Oct 23 00:08:58 2007 -0700 H. Peter Anvin 
-  * Slightly simplify the radix-detection code
-Mon Oct 22 19:48:06 2007 -0700 H. Peter Anvin 
-  * Unbreak particularly tricky hex constants
-Mon Oct 22 19:37:36 2007 -0700 H. Peter Anvin 
-  * Decimal floating point can also start with 0. 0e 0E
-Mon Oct 22 17:34:10 2007 -0700 H. Peter Anvin 
-  * Support binary and octal floating-point
-Mon Oct 22 16:53:48 2007 -0700 H. Peter Anvin 
-  * More consistent handling of radix letters
-Sun Oct 21 15:33:01 2007 -0700 H. Peter Anvin 
-  * float.c: correct exponent capping
-Sun Oct 21 14:21:43 2007 -0700 Charles Crayne 
-  * Clean up elf symbol table section
-Fri Oct 19 18:33:57 2007 -0700 H. Peter Anvin 
-  * Allow $-prefixed hexadecimal FP as an alternative to 0x
-Fri Oct 19 14:43:22 2007 -0700 H. Peter Anvin 
-  * Scripts to remove stealth whitespace
-Fri Oct 19 14:42:29 2007 -0700 H. Peter Anvin 
-  * Formatting: kill off "stealth whitespace"
-Fri Oct 19 14:26:52 2007 -0700 H. Peter Anvin 
-  * test/floatx.asm: fix test case
-Fri Oct 19 14:19:52 2007 -0700 H. Peter Anvin 
-  * uscore.asm: Fix test case
-Fri Oct 19 14:17:51 2007 -0700 H. Peter Anvin 
-  * float.c: mark read_exponent() static
-Fri Oct 19 14:10:35 2007 -0700 H. Peter Anvin 
-  * Don't confuse suffixed hexadecimal with floating-point
-Fri Oct 19 13:17:24 2007 -0700 H. Peter Anvin 
-  * Anchor filename locations in .gitignore
-Fri Oct 19 13:16:51 2007 -0700 H. Peter Anvin 
-  * test/Makefile: Use -Ox instead of -O999
-Fri Oct 19 13:14:06 2007 -0700 H. Peter Anvin 
-  * Test of underscored constants
-Fri Oct 19 13:10:46 2007 -0700 H. Peter Anvin 
-  * Allow underscores in numbers; better detection of FP
-Fri Oct 19 10:52:31 2007 -0700 H. Peter Anvin 
-  * Modernize nasm.spec.in and make it closer to the Fedora version
-Thu Oct 18 23:33:06 2007 -0700 Charles Crayne 
-  * Suppress datarootdir warnings from configure
-Thu Oct 18 21:17:20 2007 -0700 Charles Crayne 
-  * Suppress signedness warnings in disassembler
-Thu Oct 18 19:14:08 2007 -0700 H. Peter Anvin 
-  * Cleaner solution for MinGW handling of __STRICT_ANSI__
-Thu Oct 18 19:14:08 2007 -0700 H. Peter Anvin 
-  * configure: Undefine __STRICT_ANSI__ for mingw's benefit
-Thu Oct 18 19:14:07 2007 -0700 H. Peter Anvin 
-  * Fix invocation of readnum()
-Thu Oct 18 19:02:42 2007 -0700 Charles Crayne 
-  * Suppress a few signedness warnings
-Thu Oct 18 17:04:10 2007 -0700 root 
-  * Avoid unnecessary warning on redefinition of section (bug 801180)
-Wed Oct 17 17:55:45 2007 -0700 Charles Crayne 
-  * Generate stabs entries for any executable section
-Tue Oct 16 22:59:09 2007 -0700 H. Peter Anvin 
-  * NASM 0.99.05
-Tue Oct 16 15:46:04 2007 -0700 H. Peter Anvin 
-  * Tests of obscenely large exponents
-Tue Oct 16 14:42:32 2007 -0700 H. Peter Anvin 
-  * Comma-separate contents of __FLOAT__
-Tue Oct 16 14:40:27 2007 -0700 H. Peter Anvin 
-  * Implement floating-point option control directive
-Tue Oct 16 11:48:07 2007 -0700 H. Peter Anvin 
-  * Floating-point warning fixes; fix round-to-overflow
-Tue Oct 16 11:32:58 2007 -0700 H. Peter Anvin 
-  * Handle rounding of denorms correctly; make fp overflow a warning
-Tue Oct 16 10:35:02 2007 -0700 H. Peter Anvin 
-  * Additional entries for .gitignore
-Tue Oct 16 10:32:57 2007 -0700 H. Peter Anvin 
-  * Refactor floating-point formatting code; fix 80-bit denorms
-Tue Oct 16 10:31:16 2007 -0700 H. Peter Anvin 
-  * Add 1.5 as a test case: representative of an exact fraction
-Mon Oct 15 20:06:06 2007 -0700 H. Peter Anvin 
-  * Recognize 'd', 't' and 'y' as radix suffixes
-Mon Oct 15 19:53:10 2007 -0700 H. Peter Anvin 
-  * Fix FISTTP opcodes (BR 689695)
-Mon Oct 15 19:46:32 2007 -0700 H. Peter Anvin 
-  * New floating-point conversion routines
-Mon Oct 15 17:48:43 2007 -0700 H. Peter Anvin 
-  * Add testnos3 from the gdtoa package (floating-point test)
-Sat Oct 13 23:19:21 2007 -0700 H. Peter Anvin 
-  * .gitignore file doesn't need to be in the release file
-Sat Oct 13 23:17:41 2007 -0700 H. Peter Anvin 
-  * Add .gitignore file so "git status" produces something sane
-Sat Oct 13 23:12:46 2007 -0700 H. Peter Anvin 
-  * autoconf: drop AC_USE_SYSTEM_EXTENSIONS to support autoconf 2.59
-Sat Oct 13 07:09:22 2007 -0700 Keith Kanios 
-  * Fix 32-bit types in preproc.c and eval.c
-Thu Oct 11 20:32:33 2007 -0700 Charles Crayne 
-  * Must define types before using them
-Thu Oct 11 13:42:09 2007 -0700 H. Peter Anvin 
-  * preproc.c: move smacro define/undef to separate functions
-Thu Oct 11 13:38:38 2007 -0700 H. Peter Anvin 
-  * preproc.c: PP_DEFINE and PP_XDEFINE are case-sensitive
-Thu Oct 11 12:52:03 2007 -0700 H. Peter Anvin 
-  * preproc.c: normalize the handling of case sensitivity
-Thu Oct 11 12:51:06 2007 -0700 H. Peter Anvin 
-  * Define macros necessary for <inttypes.h> on C++
-Thu Oct 11 10:12:58 2007 -0700 H. Peter Anvin 
-  * More "bool" fixes
-Thu Oct 11 10:11:57 2007 -0700 H. Peter Anvin 
-  * preproc.c: allow 64-bit repeat counts
-Thu Oct 11 10:06:19 2007 -0700 H. Peter Anvin 
-  * preproc.c: For an SMacro, in_progress really is a boolean (no %rep)
-Thu Oct 11 00:05:57 2007 -0700 H. Peter Anvin 
-  * Additional uses of bool and enum
-Thu Oct 11 00:05:57 2007 -0700 H. Peter Anvin 
-  * preproc.c: MMacro.in_progress is not a boolean
-Wed Oct 10 18:07:51 2007 -0700 H. Peter Anvin 
-  * saa_fread/fwrite: when seeking, must set [rw]ptr as well
-Wed Oct 10 14:58:45 2007 -0700 H. Peter Anvin 
-  * Use the compiler-provided booleans if available, otherwise emulate
-Wed Oct 10 14:55:14 2007 -0700 H. Peter Anvin 
-  * owlinux.mak: don't clean things we won't be able to
-Wed Oct 10 14:29:53 2007 -0700 H. Peter Anvin 
-  * configure.in: looks like we need autoconf 2.61 :(
-Wed Oct 10 14:06:59 2007 -0700 H. Peter Anvin 
-  * Create option -Ox to tell NASM to do unlimited passes
-Mon Oct 8 19:26:57 2007 -0700 H. Peter Anvin 
-  * Revert "floatb.asm: fix broken testcase"
-Mon Oct 8 18:39:24 2007 -0700 H. Peter Anvin 
-  * floatb.asm: fix broken testcase
-Mon Oct 8 12:41:00 2007 -0700 H. Peter Anvin 
-  * saa_rstruct: fix overrun check
-Mon Oct 8 12:12:23 2007 -0700 H. Peter Anvin 
-  * Add Frank's floattest.asm test file
-Sun Oct 7 21:13:14 2007 -0700 H. Peter Anvin 
-  * saa_fpwrite: initializing "len" should be part of the loop
-Sun Oct 7 18:46:57 2007 -0700 Charles Crayne 
-  * Fix infinite loop in function saa_fpwrite
-Fri Oct 5 17:44:16 2007 -0700 H. Peter Anvin 
-  * zerobyte.asm: use a real instruction to avoid confusing ndisasm
-Fri Oct 5 17:42:31 2007 -0700 H. Peter Anvin 
-  * zerobyte.asm: add test cases for non-initial \170 uses
-Fri Oct 5 17:29:01 2007 -0700 H. Peter Anvin 
-  * Check in the proper zerobyte test
-Fri Oct 5 17:04:32 2007 -0700 H. Peter Anvin 
-  * Emit REX prefix before literal zero (\170)
-Fri Oct 5 17:01:15 2007 -0700 H. Peter Anvin 
-  * LICENSE: Break long line
-Fri Oct 5 14:36:03 2007 -0700 H. Peter Anvin 
-  * Add test for problematic floats
-Thu Oct 4 23:51:08 2007 -0700 H. Peter Anvin 
-  * floatx.asm: add Inf and NaN to the boundary condition tests
-Thu Oct 4 23:09:19 2007 -0700 H. Peter Anvin 
-  * floatx.asm: add specific tests for exponent boundary conditions
-Thu Oct 4 22:51:08 2007 -0700 H. Peter Anvin 
-  * float.c: correct the exponent
-Thu Oct 4 15:18:23 2007 -0700 H. Peter Anvin 
-  * Additional rules in test/Makefile
-Thu Oct 4 13:42:56 2007 -0700 H. Peter Anvin 
-  * Rewrite the handling of SAA's to allow random access
-Wed Oct 3 21:30:57 2007 -0700 H. Peter Anvin 
-  * Change cloc_t to struct location, and reorder the members
-Wed Oct 3 21:24:51 2007 -0700 H. Peter Anvin 
-  * BR 1352920: change loc_t -> cloc_t
-Wed Oct 3 21:22:16 2007 -0700 H. Peter Anvin 
-  * BR 1352920: Handle upper case %line
-Wed Oct 3 17:40:12 2007 -0700 H. Peter Anvin 
-  * Use autoconf to request feature macros
-Tue Oct 2 22:04:15 2007 -0700 H. Peter Anvin 
-  * preproc.c: constipation
-Tue Oct 2 21:57:27 2007 -0700 H. Peter Anvin 
-  * make alldeps
-Tue Oct 2 21:53:51 2007 -0700 H. Peter Anvin 
-  * Portability fixes
-Tue Oct 2 21:13:18 2007 -0700 H. Peter Anvin 
-  * Run "make alldeps".
-Tue Oct 2 17:40:00 2007 -0700 H. Peter Anvin 
-  * Use the crc64 we already use as the perfect hash function prehash
-Tue Oct 2 15:09:33 2007 -0700 H. Peter Anvin 
-  * insns.dat: add systematic names for the hinting NOPs (0F18-0F1F)
-Mon Oct 1 11:28:32 2007 -0700 H. Peter Anvin 
-  * Unspecified files are null strings, not null pointers
-Mon Oct 1 11:26:31 2007 -0700 H. Peter Anvin 
-  * Check for the most basic filename overlaps
-Sun Sep 30 22:15:36 2007 -0700 Charles Crayne 
-  * modified:   nasm.1 to add newer command line options
-Fri Sep 28 21:27:41 2007 -0700 Charles Crayne 
-  * Merge branch 'master' of git+ssh://ccrayne@repo.or.cz/srv/git/nasm
-Fri Sep 28 20:17:12 2007 -0700 H. Peter Anvin 
-  * configure.in: AC_SUBST_FILE should have been AC_SUBST
-Fri Sep 28 17:17:20 2007 -0700 H. Peter Anvin 
-  * Unbreak relative references to immediate addresses
-Fri Sep 28 15:16:47 2007 -0700 Charles Crayne 
-  * Merge branch 'master' of git+ssh://ccrayne@repo.or.cz/srv/git/nasm
-Fri Sep 28 12:01:55 2007 -0700 H. Peter Anvin 
-  * lib/vsnprintf.c: correct boundary conditions
-Fri Sep 28 10:50:20 2007 -0700 H. Peter Anvin 
-  * Add substitutes for snprintf() and vsnprintf()
-Fri Sep 28 02:03:41 2007 -0400 Frank Kotler 
-  * Merge branch 'master' of git+ssh://fbkotler@repo.or.cz/srv/git/nasm
-Thu Sep 27 21:35:04 2007 -0700 H. Peter Anvin 
-  * Exclude config.h from the dependency list for the canned makefiles
-Thu Sep 27 21:12:17 2007 -0700 H. Peter Anvin 
-  * version.pl: Add support for daily snapshot releases
-Thu Sep 27 19:46:55 2007 -0700 H. Peter Anvin 
-  * Add Makefile for Linux -> DOS, Win32, OS/2 using OpenWatcom
-Wed Sep 26 19:57:07 2007 -0700 H. Peter Anvin 
-  * Add Makefile for OpenWatcom (DOS, OS/2 or Win32 output)
-Wed Sep 26 17:00:18 2007 -0700 H. Peter Anvin 
-  * Test for various addressing modes in 64-bit mode
-Wed Sep 26 15:19:28 2007 -0700 H. Peter Anvin 
-  * nasm option reshuffling, -E -> -Z
-Tue Sep 25 23:57:21 2007 -0400 Frank Kotler 
-  * Version 0.99.04
-Tue Sep 25 20:36:45 2007 -0700 H. Peter Anvin 
-  * nasmdoc: corrections on 64-bit immediates/displacements
-Tue Sep 25 16:02:21 2007 -0700 H. Peter Anvin 
-  * nasmdoc: shorten lines which are too long
-Tue Sep 25 16:01:07 2007 -0700 H. Peter Anvin 
-  * Document NASM behaviour for 64-bit immediates and displacements
-Tue Sep 25 15:44:40 2007 -0700 H. Peter Anvin 
-  * test/movimm.asm: add optimizable forms
-Tue Sep 25 15:41:19 2007 -0700 H. Peter Anvin 
-  * assemble.c: clean up whitespace
-Tue Sep 25 15:40:36 2007 -0700 H. Peter Anvin 
-  * Correct the handling of "MOV" with immediate in 64-bit mode
-Tue Sep 25 15:39:42 2007 -0700 H. Peter Anvin 
-  * Test of immediate handling on 64-bit mode
-Tue Sep 25 14:27:34 2007 -0700 H. Peter Anvin 
-  * Add nasm_zalloc() to nasmlib.c
-Tue Sep 25 14:26:03 2007 -0700 H. Peter Anvin 
-  * Fix BR 1490407: size of the second operand of LAR/LSL
-Tue Sep 25 14:11:29 2007 -0700 H. Peter Anvin 
-  * Fix BR 1490407: size of the second operand of LAR/LSL
-Tue Sep 25 13:34:55 2007 -0700 H. Peter Anvin 
-  * Makefile.in: make "make install" create directories
-Tue Sep 25 08:48:37 2007 -0700 H. Peter Anvin 
-  * Fix BR 1445441: uninitialized use of "error_file"
-Mon Sep 24 21:33:17 2007 -0700 H. Peter Anvin 
-  * preproc.c: fix the loop in %undef
-Mon Sep 24 20:53:48 2007 -0700 H. Peter Anvin 
-  * float.c: clear off uninitialized warning
-Mon Sep 24 17:02:41 2007 -0700 H. Peter Anvin 
-  * outcoff: set the "virtual size field" to zero (BR 1351586)
-Mon Sep 24 15:56:02 2007 -0700 H. Peter Anvin 
-  * insns.dat: SMINT - mark ND, DMINT - fix opcode
-Mon Sep 24 15:55:20 2007 -0700 H. Peter Anvin 
-  * 0F0F is a 3Dnow! prefix; remove from prefix list
-Mon Sep 24 15:48:09 2007 -0700 H. Peter Anvin 
-  * Additional compaction missed by script
-Mon Sep 24 15:42:53 2007 -0700 H. Peter Anvin 
-  * insns.dat: machine-generated compaction mmx/xmmreg,mem -> mmx/xmmrm
-Mon Sep 24 13:54:00 2007 -0700 H. Peter Anvin 
-  * nasmdoc: grammar fix
-Mon Sep 24 13:44:02 2007 -0700 H. Peter Anvin 
-  * nasmdoc: remove stray periods
-Mon Sep 24 13:42:09 2007 -0700 H. Peter Anvin 
-  * test/Makefile: make a bit more useful
-Mon Sep 24 13:41:58 2007 -0700 H. Peter Anvin 
-  * Implement the -MG option (SF RFE 1564264)
-Mon Sep 24 12:52:09 2007 -0700 H. Peter Anvin 
-  * nasmdoc: clarify __float*__ example
-Mon Sep 24 12:44:38 2007 -0700 H. Peter Anvin 
-  * nasmdoc: document the __float*__ operators
-Mon Sep 24 12:30:54 2007 -0700 H. Peter Anvin 
-  * Support __float*__ for floating-point numbers in expressions
-Mon Sep 24 10:51:07 2007 -0700 H. Peter Anvin 
-  * eval.c: replace sequence of ifs with switch
-Mon Sep 24 10:50:23 2007 -0700 H. Peter Anvin 
-  * tokhash: allow a bit smarter pattern matching
-Sat Sep 22 22:35:28 2007 -0700 H. Peter Anvin 
-  * Implement INVLPGA according to the documentation
-Sat Sep 22 22:02:34 2007 -0700 H. Peter Anvin 
-  * Reformat insns.dat to uniform column width
-Sat Sep 22 21:50:03 2007 -0700 H. Peter Anvin 
-  * Simple test for 0x67 prefixes
-Sat Sep 22 21:49:51 2007 -0700 H. Peter Anvin 
-  * Auto-generate 0x67 prefixes without the need for \30x codes
-Sat Sep 22 21:47:13 2007 -0700 H. Peter Anvin 
-  * Make test/Makefile a bit more useful
-Sat Sep 22 21:29:41 2007 -0700 H. Peter Anvin 
-  * Add TY_OWORD for "DO" output
-Sat Sep 22 19:52:11 2007 -0700 H. Peter Anvin 
-  * LDDQU needs \301 (BR 1103549)
-Sat Sep 22 19:51:13 2007 -0700 H. Peter Anvin 
-  * RDTSCP and INVLPGA aren't 64-bit specific
-Sat Sep 22 19:40:37 2007 -0700 H. Peter Anvin 
-  * Cyrix GX1 instructions: BBx_RESET, CPU_READ, CPU_WRITE
-Sat Sep 22 19:28:14 2007 -0700 H. Peter Anvin 
-  * Centaur XSHA1, XSHA256, MONTMUL
-Sat Sep 22 19:20:56 2007 -0700 H. Peter Anvin 
-  * Implement Centaur's XCRYPT instructions
-Sat Sep 22 19:13:05 2007 -0700 H. Peter Anvin 
-  * Add Geode LX (AMD's Cyrix-derived core) instructions
-Sat Sep 22 19:05:11 2007 -0700 H. Peter Anvin 
-  * Add the GETSEC instruction for Intel SMX
-Sat Sep 22 18:59:18 2007 -0700 H. Peter Anvin 
-  * Add the AMD SSE4a and LZCNT instructions
-Sat Sep 22 18:23:20 2007 -0700 H. Peter Anvin 
-  * Tag UMOV as ND (no disassembly) to avoid collision
-Sat Sep 22 18:20:49 2007 -0700 H. Peter Anvin 
-  * Disallow optimizing by less than 5 passes.
-Sat Sep 22 17:45:45 2007 -0700 H. Peter Anvin 
-  * BR 1783117: Document that %+ needs a space after it, and fix crash
-Sat Sep 22 16:44:56 2007 -0700 H. Peter Anvin 
-  * nasm.spec.in: minor fixes
-Sat Sep 22 16:38:25 2007 -0700 H. Peter Anvin 
-  * release script: handle stricter CLI parsing for "git tag"
-Sat Sep 22 16:35:11 2007 -0700 H. Peter Anvin 
-  * Update nasm.spec.in and make it handle rc releases
-Sat Sep 22 16:19:19 2007 -0700 H. Peter Anvin 
-  * version.pl: support version numbers of the form X.Y[.Z]rcW
-Thu Sep 20 21:33:43 2007 -0700 Charles Crayne 
-  * Merge branch 'master' of git+ssh://ccrayne@repo.or.cz/srv/git/nasm
-Thu Sep 20 21:12:33 2007 -0700 Charles Crayne 
-  * 	modified:   misc/release to fix bug in removing .git
-Wed Sep 19 21:41:43 2007 -0700 H. Peter Anvin 
-  * Merge branch 'master' of git+ssh://repo.or.cz/srv/git/nasm
-Wed Sep 19 21:41:27 2007 -0700 H. Peter Anvin 
-  * Update manual pages
-Wed Sep 19 21:41:02 2007 -0700 H. Peter Anvin 
-  * Remove limit on number of sync points
-Wed Sep 19 21:40:37 2007 -0700 H. Peter Anvin 
-  * Make nasm_malloc() et al available from inside ndisasm
-Wed Sep 19 21:07:32 2007 -0400 Frank Kotler 
-  * Version 0.99.03
-Wed Sep 19 21:06:59 2007 -0400 Frank Kotler 
-  * Merge branch 'master' of git+ssh://fbkotler@repo.or.cz/srv/git/nasm
-Wed Sep 19 16:22:03 2007 -0700 H. Peter Anvin 
-  * Merge commit 'origin/sse5'
-Wed Sep 19 16:15:22 2007 -0700 H. Peter Anvin 
-  * test/Makefile: make a bit more useful
-Tue Sep 18 22:54:40 2007 -0700 H. Peter Anvin 
-  * Slightly optimize the interface to nasm_token_hash()
-Wed Sep 19 01:34:55 2007 -0400 Frank Kotler 
-  * Merge branch 'master' of git+ssh://fbkotler@repo.or.cz/srv/git/nasm
-Tue Sep 18 22:23:42 2007 -0700 H. Peter Anvin 
-  * Merge commit 'origin/master' into sse5
-Tue Sep 18 22:22:49 2007 -0700 H. Peter Anvin 
-  * elf64: fix 32-bit truncations
-Tue Sep 18 22:08:04 2007 -0700 H. Peter Anvin 
-  * Document Infinity and NaN
-Tue Sep 18 21:55:56 2007 -0700 H. Peter Anvin 
-  * Support generating NaNs and infinities
-Tue Sep 18 19:12:26 2007 -0700 H. Peter Anvin 
-  * Update documentation
-Tue Sep 18 18:37:36 2007 -0700 H. Peter Anvin 
-  * Simple test for hexadecimal floating-point numbers
-Tue Sep 18 18:33:17 2007 -0700 H. Peter Anvin 
-  * Fix error-reporting in hexadecimal floating-point numbers
-Tue Sep 18 18:31:26 2007 -0700 H. Peter Anvin 
-  * Support C99-style hexadecimal floating point.
-Tue Sep 18 17:50:34 2007 -0700 H. Peter Anvin 
-  * Unify all standard IEEE floating-point formats; add 128-bit
-Tue Sep 18 17:49:09 2007 -0700 H. Peter Anvin 
-  * Fix handling of DO; support unary + for floating-point numbers
-Tue Sep 18 16:39:03 2007 -0700 H. Peter Anvin 
-  * Support 16-bit IEEE floating point; used in SSE5
-Tue Sep 18 15:43:40 2007 -0700 H. Peter Anvin 
-  * Merge commit 'origin/master' into sse5
-Tue Sep 18 15:43:08 2007 -0700 H. Peter Anvin 
-  * Add NOP with argument to the instruction list
-Tue Sep 18 15:24:38 2007 -0700 H. Peter Anvin 
-  * Remove 0FC2 from list of instruction prefixes
-Tue Sep 18 15:08:20 2007 -0700 H. Peter Anvin 
-  * Speed up the disassembler by allowing prefixed instruction tables
-Tue Sep 18 13:45:12 2007 -0700 H. Peter Anvin 
-  * Document oword, do and reso
-Tue Sep 18 13:01:32 2007 -0700 H. Peter Anvin 
-  * Implement "oword" (128 bits) as a first-class size
-Tue Sep 18 12:38:07 2007 -0700 H. Peter Anvin 
-  * Change the token prehash function for better convergence
-Tue Sep 18 12:23:21 2007 -0700 H. Peter Anvin 
-  * SSE5 instruction table
-Tue Sep 18 02:06:09 2007 -0400 Frank Kotler 
-  * add "const" to output/outdbg.c
-Mon Sep 17 18:45:44 2007 -0700 H. Peter Anvin 
-  * Disassembler support for SSE5 instructions
-Mon Sep 17 17:27:46 2007 -0700 H. Peter Anvin 
-  * insns.dat: All SSE5 instructions are AMD
-Mon Sep 17 17:25:27 2007 -0700 H. Peter Anvin 
-  * Actually generate SSE5 instructions
-Mon Sep 17 16:55:04 2007 -0700 H. Peter Anvin 
-  * Initial support for generating DREX suffixes
-Mon Sep 17 16:31:33 2007 -0700 H. Peter Anvin 
-  * Fix a few instances of missing renumbers
-Mon Sep 17 16:20:45 2007 -0700 H. Peter Anvin 
-  * Enable IF_AR3
-Mon Sep 17 15:49:53 2007 -0700 H. Peter Anvin 
-  * Merge commit 'origin/master' into sse5
-Mon Sep 17 15:49:30 2007 -0700 H. Peter Anvin 
-  * Initial support for four arguments per instruction
-Mon Sep 17 15:48:32 2007 -0700 H. Peter Anvin 
-  * CLFLUSH: Neither an x64 instruction nor AMD
-Mon Sep 17 13:56:26 2007 -0700 H. Peter Anvin 
-  * Sort dependency lists
-Mon Sep 17 13:53:14 2007 -0700 H. Peter Anvin 
-  * Cleaner way to handle MSVC's _snprintf() underscore damage
-Mon Sep 17 13:19:25 2007 -0700 H. Peter Anvin 
-  * test/r13.asm: test special-casing of rbp and r13 in 64-bit mode
-Mon Sep 17 13:03:33 2007 -0700 H. Peter Anvin 
-  * Additional documentation for 64-bit programming
-Sun Sep 16 22:27:07 2007 -0700 H. Peter Anvin 
-  * INSTALL: MSVC++ compilation instructions
-Sun Sep 16 22:17:29 2007 -0700 H. Peter Anvin 
-  * make alldeps: change Mkfiles/Makefile.* to Mkfiles/*.mak
-Sun Sep 16 22:16:24 2007 -0700 H. Peter Anvin 
-  * Fix Makefile for MSVC++ 2005, delete obsolete Makefiles
-Sun Sep 16 22:15:34 2007 -0700 H. Peter Anvin 
-  * Minor fixes needed to compile with MSVC++ 2005
-Sun Sep 16 18:35:02 2007 -0700 H. Peter Anvin 
-  * Run "make alldeps"
-Sun Sep 16 18:04:57 2007 -0700 H. Peter Anvin 
-  * Switch the preprocessor over to using the hash table library
-Sun Sep 16 17:53:17 2007 -0700 H. Peter Anvin 
-  * Fix the handling of local labels
-Fri Sep 14 18:36:01 2007 -0700 H. Peter Anvin 
-  * preproc.c: remove unnecessary int64_t
-Fri Sep 14 18:03:29 2007 -0700 H. Peter Anvin 
-  * Use the new hash table function library to store labels
-Fri Sep 14 09:24:38 2007 -0700 H. Peter Anvin 
-  * Define a proper hash table library
-Thu Sep 13 18:13:20 2007 -0700 H. Peter Anvin 
-  * Simple performance benchmarks: label, macro and token lookups
-Thu Sep 13 12:25:32 2007 -0700 H. Peter Anvin 
-  * release script: fix final cleanup
-Thu Sep 13 12:22:00 2007 -0700 H. Peter Anvin 
-  * Modify release script for a git-centric world
-Thu Sep 13 11:06:42 2007 -0700 H. Peter Anvin 
-  * pptok.c: don't insist on C99 compiler behaviour
-Wed Sep 12 22:02:06 2007 -0700 H. Peter Anvin 
-  * Fix literal F2 and F3 prefixes
-Wed Sep 12 21:58:51 2007 -0700 H. Peter Anvin 
-  * Add (untested!) SSSE3, SSE4.1, SSE4.2 instructions
-Wed Sep 12 21:06:36 2007 -0700 H. Peter Anvin 
-  * Add support for Tejas New Instructions (SSSE3)
-Wed Sep 12 21:05:06 2007 -0700 H. Peter Anvin 
-  * Remove $Id$ tags (useless with git)
-Wed Sep 12 21:04:58 2007 -0700 H. Peter Anvin 
-  * Use rm32 operands for VMREAD/VMWRITE
-Wed Sep 12 21:04:51 2007 -0700 H. Peter Anvin 
-  * Macros for SSSE3/SSE4 instruction sets
-Wed Sep 12 21:04:39 2007 -0700 H. Peter Anvin 
-  * Support r/m operands for non-integer types
-Wed Sep 12 20:27:41 2007 -0700 H. Peter Anvin 
-  * Use enumerations where practical to ease debugging
-Wed Sep 12 17:02:55 2007 +0000 H. Peter Anvin 
-  * pptok.c: quick-and-dirty downcasing during prehashing
-Wed Sep 12 16:55:57 2007 +0000 H. Peter Anvin 
-  * phash: Tell the user when the graph is OK
-Wed Sep 12 05:18:20 2007 +0000 H. Peter Anvin 
-  * pptok.c: handle holes in the pp_directives array
-Wed Sep 12 04:20:08 2007 +0000 H. Peter Anvin 
-  * preproc.c: adjust whitespace
-Wed Sep 12 04:18:37 2007 +0000 H. Peter Anvin 
-  * More automation in the preprocessor conditionals handling
-Wed Sep 12 02:13:39 2007 +0000 H. Peter Anvin 
-  * pptok.c: fix spacing
-Wed Sep 12 02:12:07 2007 +0000 H. Peter Anvin 
-  * Generate automatically correct tests for %if and %elif
-Wed Sep 12 01:34:19 2007 +0000 H. Peter Anvin 
-  * Run "make alldeps"; add dependencies missing from the previous checkin
-Wed Sep 12 01:29:43 2007 +0000 H. Peter Anvin 
-  * Use a perfect hash to look up preprocessor directives
-Wed Sep 12 01:27:53 2007 +0000 H. Peter Anvin 
-  * phash: Be a bit more aggressive about trying to make a small hash
-Wed Sep 12 00:22:29 2007 +0000 H. Peter Anvin 
-  * Add RCXZ as a known preprocessor condition
-Tue Sep 11 23:57:23 2007 +0000 H. Peter Anvin 
-  * doc: add some cross-references
-Tue Sep 11 23:52:01 2007 +0000 H. Peter Anvin 
-  * Feeble attempt at updating the documentation; remove Appendix B
-Tue Sep 11 22:44:03 2007 +0000 H. Peter Anvin 
-  * Handle instructions which can have both REX.W and OSP
-Tue Sep 11 22:14:18 2007 +0000 H. Peter Anvin 
-  * Use enums to make debugging easier
-Tue Sep 11 22:13:17 2007 +0000 H. Peter Anvin 
-  * ndisasm: handle \366 codes, prefer unprefixed instructions
-Tue Sep 11 22:00:34 2007 +0000 H. Peter Anvin 
-  * Simplify tokens.dat slightly
-Tue Sep 11 04:26:44 2007 +0000 H. Peter Anvin 
-  * Quiet gcc warning about uninitialized variables
-Tue Sep 11 04:16:57 2007 +0000 H. Peter Anvin 
-  * Make the big instruction arrays "const"
-Mon Sep 10 23:32:05 2007 +0000 H. Peter Anvin 
-  * Use an actual enum for the opcode
-Mon Sep 10 23:30:21 2007 +0000 H. Peter Anvin 
-  * Fix order of token arguments
-Mon Sep 10 18:59:26 2007 +0000 H. Peter Anvin 
-  * assemble.c: correct special handing of ESP/RSP
-Mon Sep 10 18:59:01 2007 +0000 H. Peter Anvin 
-  * tokhash: correct duplicate-token test
-Mon Sep 10 18:58:40 2007 +0000 H. Peter Anvin 
-  * tokhash: adjust table types to reduce size
-Mon Sep 10 18:55:52 2007 +0000 H. Peter Anvin 
-  * Fix the MMXREG and XMMREG flags definitions.
-Wed Sep 5 06:48:38 2007 +0000 H. Peter Anvin 
-  * nasm.spec.in: Copyright -> License
-Wed Sep 5 06:40:51 2007 +0000 H. Peter Anvin 
-  * Fix "make tar"; useful for RPM testing
-Wed Sep 5 06:24:43 2007 +0000 H. Peter Anvin 
-  * Remove obsolete Serial: construct; we shouldn't need it anyway.
-Tue Sep 4 01:29:43 2007 +0000 Chuck Crayne 
-  * Provide 64-bit support for ORG directive
-Sun Sep 2 16:37:03 2007 +0000 H. Peter Anvin 
-  * Fix some MMX/SSE irregularities which interact with the 64-bit support
-Sun Sep 2 14:46:00 2007 +0000 H. Peter Anvin 
-  * phash.ph: yet another attempt at getting Perl to behave, arithmetically
-Sun Sep 2 06:23:29 2007 +0000 H. Peter Anvin 
-  * Simple 64-bit org test
-Sun Sep 2 06:20:15 2007 +0000 H. Peter Anvin 
-  * phash.ph: remove some stale code
-Sun Sep 2 01:00:34 2007 +0000 Chuck Crayne 
-  * Force use of integer values for generating hash keys.
-Fri Aug 31 18:10:23 2007 +0000 H. Peter Anvin 
-  * phash: don't rely on the build platform Perl version of rand()
-Fri Aug 31 07:31:51 2007 +0000 H. Peter Anvin 
-  * tokhash.pl: formatting changes for readability
-Fri Aug 31 07:23:31 2007 +0000 H. Peter Anvin 
-  * tokhash: Speed up the rejection of unhashed values
-Fri Aug 31 06:06:17 2007 +0000 H. Peter Anvin 
-  * tokhash.pl: "ix" should have the same width as the "hash" arrays
-Fri Aug 31 00:28:35 2007 +0000 H. Peter Anvin 
-  * Add "do not edit" comment to tokhash.c
-Fri Aug 31 00:23:40 2007 +0000 H. Peter Anvin 
-  * Make the token hash a bit smaller by using 16-bit hash tables
-Fri Aug 31 00:16:10 2007 +0000 H. Peter Anvin 
-  * Minor cleanup; remove duplication of names.c
-Thu Aug 30 23:42:39 2007 +0000 H. Peter Anvin 
-  * phash.ph: use a bipartite graph to reduce the storage requirements
-Thu Aug 30 22:35:34 2007 +0000 H. Peter Anvin 
-  * Finishing touches on perfect hash tokenizer; actually turn the thing on
-Thu Aug 30 21:50:20 2007 +0000 H. Peter Anvin 
-  * Makefile rule for tokhash.c
-Thu Aug 30 21:47:46 2007 +0000 H. Peter Anvin 
-  * tokens.dat: Data file containing alphanumeric tokens not in other .dats
-Thu Aug 30 21:45:56 2007 +0000 H. Peter Anvin 
-  * Generate a perfect hash for the token parser
-Thu Aug 30 21:40:08 2007 +0000 H. Peter Anvin 
-  * Fix bugs in repeated suffix handling, which led to missing r8d/r8w/r8d
-Thu Aug 30 21:39:37 2007 +0000 H. Peter Anvin 
-  * phash.ph: more powerful prehashing
-Thu Aug 30 20:15:25 2007 +0000 H. Peter Anvin 
-  * Make the perfect hash generator an includable module
-Wed Aug 29 20:30:31 2007 +0000 H. Peter Anvin 
-  * Correct the logic for recording fs: and gs: overrides.
-Wed Aug 29 18:20:19 2007 +0000 H. Peter Anvin 
-  * Generate R_X86_64_64 relocations in elf64 output
-Wed Aug 29 17:24:03 2007 +0000 H. Peter Anvin 
-  * Add README file
-Wed Aug 29 17:20:09 2007 +0000 H. Peter Anvin 
-  * Create a Perl library directory, and add the Graph module to it
-Wed Aug 29 17:05:17 2007 +0000 H. Peter Anvin 
-  * Perfect hash generator, as a perl script
-Wed Aug 29 16:41:43 2007 +0000 H. Peter Anvin 
-  * Use standard macro for the default directive
-Wed Aug 29 16:40:26 2007 +0000 H. Peter Anvin 
-  * Add standard macro for [default] directive
-Wed Aug 29 16:38:47 2007 +0000 H. Peter Anvin 
-  * More test cases for rel and abs addressing
-Wed Aug 29 16:38:05 2007 +0000 H. Peter Anvin 
-  * Add [default] directive
-Wed Aug 29 16:25:46 2007 +0000 H. Peter Anvin 
-  * nasmlib: add bsii() case-insensitive version of bsi()
-Wed Aug 29 15:49:53 2007 +0000 H. Peter Anvin 
-  * Add test cases for IP-relative addressing
-Wed Aug 29 15:19:19 2007 +0000 H. Peter Anvin 
-  * Suppress IP-relative only for fs: and gs: overrides
-Tue Aug 28 23:06:00 2007 +0000 H. Peter Anvin 
-  * Implement REL/ABS modifiers
-Sun Aug 26 05:51:39 2007 +0000 Frank Kotler 
-  * attempt to make static makefiles aware of outelf32/outelf64
-Sun Aug 26 05:48:54 2007 +0000 Frank Kotler 
-  * add nasm_strsep to nasmlib, for output/outmacho.c - strtok doesn't work
-Sun Aug 26 05:41:33 2007 +0000 Frank Kotler 
-  * remove "#include <unistd.h> from rdoff directory - two places - it annoyed Windows users and seems unneeded
-Sun Aug 26 05:10:24 2007 +0000 Frank Kotler 
-  * finally commit Mike Frysinger's "elf-visibility" patch
-Mon Aug 20 21:03:14 2007 +0000 H. Peter Anvin 
-  * regs.pl: handle dashed sequences with suffixes
-Mon Aug 20 20:10:04 2007 +0000 H. Peter Anvin 
-  * sync.c: change ULONG_MAX to UINT32_MAX
-Mon Aug 20 20:09:11 2007 +0000 H. Peter Anvin 
-  * Add _MIN and _MAX macros for the fixed-size types.
-Mon Aug 20 20:02:17 2007 +0000 H. Peter Anvin 
-  * ldrdf: cast output of sizeof() before passing to printf(), to avoid warning.
-Sun Aug 19 18:49:26 2007 +0000 Keith Kanios 
-  * Fixed RIP address processing ambiguity found by Charles Crayne.
-Fri Aug 17 07:37:52 2007 +0000 Keith Kanios 
-  * Fixed issues with REX prefix effective address generation. Fixed XMM instruction output.
-Fri Aug 17 02:03:10 2007 +0000 Keith Kanios 
-  * Changed MMXREG and XMMREG flags to help resolve invalid REX prefix generation for MMX instructions.
-Sat Jul 7 02:01:08 2007 +0000 H. Peter Anvin 
-  * More int/int32_t confusion
-Sat Jul 7 01:59:52 2007 +0000 H. Peter Anvin 
-  * regflag() should return int32_t.
-Thu Jun 21 19:00:12 2007 +0000 H. Peter Anvin 
-  * Detect missing <inttypes.h> and include ersatz version if missing
-Thu Jun 21 06:24:23 2007 +0000 H. Peter Anvin 
-  * inttypes.h: for older preprocessors, specify L and LL as appropriate
-Thu Jun 21 06:20:43 2007 +0000 H. Peter Anvin 
-  * inttypes.h: Fix spelling of SHRT_MAX
-Thu Jun 21 06:15:42 2007 +0000 H. Peter Anvin 
-  * inttypes.h: do a single ersatz <inttypes.h> based on <limits.h>
-Sun Jun 3 02:42:41 2007 +0000 Chuck Crayne 
-  * Support 32-bit direct addressing in 64-bit mode without base or index regs
-Sat Jun 2 02:26:21 2007 +0000 H. Peter Anvin 
-  * Fix the [U]INT*_C() creation macros
-Sat Jun 2 00:05:35 2007 +0000 H. Peter Anvin 
-  * For platforms that don't have them, provide <inttypes.h> for common models.
-Wed May 30 22:21:11 2007 +0000 H. Peter Anvin 
-  * Fix the handling of the \313 code.
-Wed May 30 22:20:01 2007 +0000 H. Peter Anvin 
-  * Machine-generated \321->\324 corrections
-Wed May 30 21:22:33 2007 +0000 Frank Kotler 
-  * update "version" to 0.99.02
-Wed May 30 20:30:15 2007 +0000 H. Peter Anvin 
-  * Correct the generation of 67 prefixes.
-Wed May 30 18:30:18 2007 +0000 H. Peter Anvin 
-  * Update dependencies.
-Wed May 30 16:34:29 2007 +0000 Frank Kotler 
-  * update cvs server name in misc/release script
-Wed May 30 04:28:50 2007 +0000 H. Peter Anvin 
-  * Avoid magic values; we have more than 124 registers now
-Wed May 30 04:27:58 2007 +0000 H. Peter Anvin 
-  * Remove bogus redundant tests
-Wed May 30 03:44:50 2007 +0000 H. Peter Anvin 
-  * More \321 -> \324
-Wed May 30 03:44:02 2007 +0000 H. Peter Anvin 
-  * Remove bogus check for 64-bitness
-Wed May 30 03:25:21 2007 +0000 H. Peter Anvin 
-  * Get rid of magic open-coded "register numbers"
-Wed May 30 02:48:51 2007 +0000 H. Peter Anvin 
-  * MOV reg64,reg64 takes \324 (64 bit with REX) not \321 (32 bit)
-Wed May 30 00:18:26 2007 +0000 H. Peter Anvin 
-  * Rename REGNORM to REG_EA
-Wed May 30 00:15:25 2007 +0000 H. Peter Anvin 
-  * More instruction flag surgery
-Wed May 30 00:05:00 2007 +0000 H. Peter Anvin 
-  * More cleanup of operand flags/register classes
-Tue May 29 23:57:12 2007 +0000 H. Peter Anvin 
-  * Clean up the existing operand flag definitions, and document
-Tue May 29 21:44:55 2007 +0000 H. Peter Anvin 
-  * Run "make alldeps"
-Thu May 24 22:33:07 2007 +0000 Frank Kotler 
-  * update version number to 0.99.01
-Tue May 15 04:33:43 2007 +0000 H. Peter Anvin 
-  * regs.dat: fix comment
-Fri May 4 18:47:16 2007 +0000 H. Peter Anvin 
-  * 16-bit relocations are standard in ELF64 (at my request, incidentally)
-Fri May 4 02:16:08 2007 +0000 Chuck Crayne 
-  * Addition of elf32 and elf64 output formats.
-Wed May 2 04:21:26 2007 +0000 Chuck Crayne 
-  * Allow '!' to be used in expressions with same meaning as in C.
-Wed May 2 01:59:16 2007 +0000 Chuck Crayne 
-  * Add %IFN and %ELIFN as per RFE #786286
-Mon Apr 30 22:26:58 2007 +0000 Chuck Crayne 
-  * Accept responsibility for support of outelf64.c
-Sun Apr 29 20:57:53 2007 +0000 Chuck Crayne 
-  * Clarify comments about relocation entries.
-Sun Apr 29 00:28:24 2007 +0000 Chuck Crayne 
-  * Allow ELF32 to be invoked either as -f elf or -f elf32
-Sat Apr 28 22:18:04 2007 +0000 Chuck Crayne 
-  * Eliminate shift count warnings when building on 32-bit systems
-Sat Apr 28 06:18:48 2007 +0000 Chuck Crayne 
-  * Initial support for ELF64
-Wed Apr 18 02:27:18 2007 +0000 H. Peter Anvin 
-  * Fix the handling of \324 for computing the length
-Wed Apr 18 02:24:34 2007 +0000 Keith Kanios 
-  * Fixed RDF/2 to comply with "maxbits" use.
-Tue Apr 17 20:23:11 2007 +0000 H. Peter Anvin 
-  * Handle "LOCK as REX.R" for MOV CRx; fix warning for invalid 64-bit regs
-Mon Apr 16 18:16:46 2007 +0000 Keith Kanios 
-  * MEM_OFFSET Instructions Fixed.
-Mon Apr 16 15:46:46 2007 +0000 Keith Kanios 
-  * Fixed 64-bit Mode Segment Selection.
-Mon Apr 16 14:31:54 2007 +0000 Keith Kanios 
-  * Fixed distinction between [LOCAL]SYMBOL/IMMEDIATE for RIP-relative addressing.
-Mon Apr 16 14:05:01 2007 +0000 Keith Kanios 
-  * Fixed long mode MEM_OFFS issue.
-Mon Apr 16 13:54:49 2007 +0000 Keith Kanios 
-  * Filled in all RIP Register Flags.
-Mon Apr 16 05:26:29 2007 +0000 H. Peter Anvin 
-  * More \321 -> \324 for 64-bit instructions
-Mon Apr 16 04:56:06 2007 +0000 Keith Kanios 
-  * Fixed 64-bit offset generation.
-Mon Apr 16 02:39:56 2007 +0000 H. Peter Anvin 
-  * More 64-bit ndisasm fixes.
-Mon Apr 16 02:02:06 2007 +0000 H. Peter Anvin 
-  * Fixes for 64-bit ndisasm.
-Mon Apr 16 01:21:29 2007 +0000 H. Peter Anvin 
-  * Use + instead of * for extension; it feels cleaner with the new meaning.
-Mon Apr 16 01:18:30 2007 +0000 H. Peter Anvin 
-  * Initial 64-bit support for ndisasm.  Still a work in progress.
-Sun Apr 15 23:12:17 2007 +0000 H. Peter Anvin 
-  * Clean up the 64-bitification of regs.dat for 64-bit ndisasm support
-Sun Apr 15 23:10:26 2007 +0000 H. Peter Anvin 
-  * Remove @GCCFLAGS@
-Sun Apr 15 23:09:23 2007 +0000 H. Peter Anvin 
-  * CR8 is not special in any way as far as the assembler is concerned.
-Sun Apr 15 23:03:28 2007 +0000 H. Peter Anvin Sat Nov 24 16:31:48 2007 -0800 H. Peter Anvin 
-  * Typo fixes in documentation
-Tue Nov 20 23:37:46 2007 -0800 H. Peter Anvin 
-  * NASM 2.00rc3
-Tue Nov 20 21:45:16 2007 -0800 H. Peter Anvin 
-  * Unbreak CMPSW/CMPSD/CMPSQ
-Tue Nov 20 13:23:34 2007 -0800 H. Peter Anvin 
-  * Merge branch 'master' of git+ssh://repo.or.cz/srv/git/nasm
-Tue Nov 20 13:22:58 2007 -0800 H. Peter Anvin 
-  * ndisasm: handle the case of "no more sync points"
-Mon Nov 19 23:09:31 2007 -0800 H. Peter Anvin 
-  * NASM 2.00rc2
-Mon Nov 19 23:09:24 2007 -0800 H. Peter Anvin 
-  * tag-release: a simple script to tag the repository for release
-Mon Nov 19 13:14:59 2007 -0800 H. Peter Anvin 
-  * Slightly faster implementation of the deadman counter
-Mon Nov 19 12:26:50 2007 -0800 H. Peter Anvin 
-  * BR 812417: Deadman counter for macro expansion
-Mon Nov 19 12:02:38 2007 -0800 H. Peter Anvin 
-  * BR 877583: Fix RAA memory leak
-Mon Nov 19 11:53:18 2007 -0800 H. Peter Anvin 
-  * BR 863173: Fix offsets of TIMES/INCBIN in list file
-Mon Nov 19 11:45:40 2007 -0800 H. Peter Anvin 
-  * BR 1834731: Remove redundant error messages for no input file
-Mon Nov 19 11:44:05 2007 -0800 H. Peter Anvin 
-  * insns.pl: remove debugging output
-Sun Nov 18 22:18:09 2007 -0800 H. Peter Anvin 
-  * Clean up remaining build warnings
-Sun Nov 18 21:55:26 2007 -0800 H. Peter Anvin 
-  * BR 1834292: Fix multiple disassembler bugs
-Sun Nov 18 12:01:05 2007 -0800 H. Peter Anvin 
-  * BR 1834056: Remove warnings in rdoff/rdoff.c
-Sun Nov 18 11:55:10 2007 -0800 H. Peter Anvin 
-  * BR 1091926: Bounds checking for command line parsing
-Sat Nov 17 21:21:18 2007 -0800 H. Peter Anvin 
-  * Remove FIXME from documentation
-Sat Nov 17 21:08:33 2007 -0800 Charles Crayne 
-  * Check in Keith's Fixes
-Sat Nov 17 14:35:19 2007 -0800 H. Peter Anvin 
-  * Make the definition for float_const() match the prototype
-Fri Nov 16 00:03:02 2007 -0800 H. Peter Anvin 
-  * NASM 2.00rc1
-Thu Nov 15 17:12:29 2007 -0800 H. Peter Anvin 
-  * Clean up the command-line parsing; make -w/-W match others
-Thu Nov 15 14:38:19 2007 -0800 H. Peter Anvin 
-  * BR 993895: Support zero-operand floating-point insn
-Thu Nov 15 10:25:52 2007 -0800 H. Peter Anvin 
-  * Remove some vestiges of "native" RESW/RESD support
-Thu Nov 15 10:24:55 2007 -0800 H. Peter Anvin 
-  * outbin.c: fix one missed change from type -> size
-Tue Nov 13 19:52:54 2007 -0800 root 
-  * Support setting OSABI value in ELF header.
-Tue Nov 13 11:34:34 2007 -0800 H. Peter Anvin 
-  * Enable a few warnings by default; clean up warning descriptions
-Tue Nov 13 11:31:15 2007 -0800 H. Peter Anvin 
-  * Add gcc-style -W/-Wno- warning selections; -Wall; -Werror
-Tue Nov 13 10:37:23 2007 -0800 H. Peter Anvin 
-  * Clean up the fwrite*() function definitions somewhat
-Tue Nov 13 09:49:51 2007 -0800 H. Peter Anvin 
-  * Cast 64-bit switch expressions to (int) to keep OpenWatcom happy
-Tue Nov 13 09:46:38 2007 -0800 H. Peter Anvin 
-  * x86-host-specific performance improvement
-Tue Nov 13 09:37:59 2007 -0800 H. Peter Anvin 
-  * Address data is int64_t; simplify writing an address object
-Mon Nov 12 23:00:31 2007 -0800 H. Peter Anvin 
-  * ndisasm: factor out the common operand-extraction code
-Mon Nov 12 22:56:07 2007 -0800 H. Peter Anvin 
-  * Un-special-case "xchg rax,rax"; disassemble o64
-Mon Nov 12 22:11:46 2007 -0800 H. Peter Anvin 
-  * BR 1709392: Fix alignment handling in Mach-O formatSat Nov 24 16:31:48 2007 -0800 H. Peter Anvin 
-  * Typo fixes in documentation
-Tue Nov 20 23:37:46 2007 -0800 H. Peter Anvin 
-  * NASM 2.00rc3
-Tue Nov 20 21:45:16 2007 -0800 H. Peter Anvin 
-  * Unbreak CMPSW/CMPSD/CMPSQ
-Tue Nov 20 13:23:34 2007 -0800 H. Peter Anvin 
-  * Merge branch 'master' of git+ssh://repo.or.cz/srv/git/nasm
-Tue Nov 20 13:22:58 2007 -0800 H. Peter Anvin 
-  * ndisasm: handle the case of "no more sync points"
-Mon Nov 19 23:09:31 2007 -0800 H. Peter Anvin 
-  * NASM 2.00rc2
-Mon Nov 19 23:09:24 2007 -0800 H. Peter Anvin 
-  * tag-release: a simple script to tag the repository for release
-Mon Nov 19 13:14:59 2007 -0800 H. Peter Anvin 
-  * Slightly faster implementation of the deadman counter
-Mon Nov 19 12:26:50 2007 -0800 H. Peter Anvin 
-  * BR 812417: Deadman counter for macro expansion
-Mon Nov 19 12:02:38 2007 -0800 H. Peter Anvin 
-  * BR 877583: Fix RAA memory leak
-Mon Nov 19 11:53:18 2007 -0800 H. Peter Anvin 
-  * BR 863173: Fix offsets of TIMES/INCBIN in list file
-Mon Nov 19 11:45:40 2007 -0800 H. Peter Anvin 
-  * BR 1834731: Remove redundant error messages for no input file
-Mon Nov 19 11:44:05 2007 -0800 H. Peter Anvin 
-  * insns.pl: remove debugging output
-Sun Nov 18 22:18:09 2007 -0800 H. Peter Anvin 
-  * Clean up remaining build warnings
-Sun Nov 18 21:55:26 2007 -0800 H. Peter Anvin 
-  * BR 1834292: Fix multiple disassembler bugs
-Sun Nov 18 12:01:05 2007 -0800 H. Peter Anvin 
-  * BR 1834056: Remove warnings in rdoff/rdoff.c
-Sun Nov 18 11:55:10 2007 -0800 H. Peter Anvin 
-  * BR 1091926: Bounds checking for command line parsing
-Sat Nov 17 21:21:18 2007 -0800 H. Peter Anvin 
-  * Remove FIXME from documentation
-Sat Nov 17 21:08:33 2007 -0800 Charles Crayne 
-  * Check in Keith's Fixes
-Sat Nov 17 14:35:19 2007 -0800 H. Peter Anvin 
-  * Make the definition for float_const() match the prototype
-Fri Nov 16 00:03:02 2007 -0800 H. Peter Anvin 
-  * NASM 2.00rc1
-Thu Nov 15 17:12:29 2007 -0800 H. Peter Anvin 
-  * Clean up the command-line parsing; make -w/-W match others
-Thu Nov 15 14:38:19 2007 -0800 H. Peter Anvin 
-  * BR 993895: Support zero-operand floating-point insn
-Thu Nov 15 10:25:52 2007 -0800 H. Peter Anvin 
-  * Remove some vestiges of "native" RESW/RESD support
-Thu Nov 15 10:24:55 2007 -0800 H. Peter Anvin 
-  * outbin.c: fix one missed change from type -> size
-Tue Nov 13 19:52:54 2007 -0800 root 
-  * Support setting OSABI value in ELF header.
-Tue Nov 13 11:34:34 2007 -0800 H. Peter Anvin 
-  * Enable a few warnings by default; clean up warning descriptions
-Tue Nov 13 11:31:15 2007 -0800 H. Peter Anvin 
-  * Add gcc-style -W/-Wno- warning selections; -Wall; -Werror
-Tue Nov 13 10:37:23 2007 -0800 H. Peter Anvin 
-  * Clean up the fwrite*() function definitions somewhat
-Tue Nov 13 09:49:51 2007 -0800 H. Peter Anvin 
-  * Cast 64-bit switch expressions to (int) to keep OpenWatcom happy
-Tue Nov 13 09:46:38 2007 -0800 H. Peter Anvin 
-  * x86-host-specific performance improvement
-Tue Nov 13 09:37:59 2007 -0800 H. Peter Anvin 
-  * Address data is int64_t; simplify writing an address object
-Mon Nov 12 23:00:31 2007 -0800 H. Peter Anvin 
-  * ndisasm: factor out the common operand-extraction code
-Mon Nov 12 22:56:07 2007 -0800 H. Peter Anvin 
-  * Un-special-case "xchg rax,rax"; disassemble o64
-Mon Nov 12 22:11:46 2007 -0800 H. Peter Anvin 
-  * BR 1709392: Fix alignment handling in Mach-O format
-Mon Nov 12 22:05:31 2007 -0800 H. Peter Anvin 
-  * BR 1828866: fix handling of LAR/LSL
-Mon Nov 12 21:57:00 2007 -0800 H. Peter Anvin 
-  * Better (but not *good!*) handling of 64-bit addressing in ndisasm
-Mon Nov 12 21:02:33 2007 -0800 H. Peter Anvin 
-  * Fix disassembly of XCHG
-Mon Nov 12 20:18:33 2007 -0800 H. Peter Anvin 
-  * Test of XCHG
-Mon Nov 12 20:18:05 2007 -0800 H. Peter Anvin 
-  * Fix handling of XCHG in 64-bit mode
-Mon Nov 12 19:36:13 2007 -0800 H. Peter Anvin 
-  * More \321 -> \324 bug fixes
-Mon Nov 12 18:26:31 2007 -0800 H. Peter Anvin 
-  * float.c: all warnings and errors are pass 1 only
-Sat Nov 10 21:55:19 2007 -0800 Charles Crayne 
-  * Update documentation for stack relative directives.
-Sat Nov 10 17:52:23 2007 -0800 Charles Crayne 
-  * Clean up a few more 32-bit bottlenecks
-Fri Nov 9 16:37:41 2007 -0800 Charles Crayne 
-  * Update documantation for stack relative directives
-Fri Nov 9 16:33:54 2007 -0800 Charles Crayne 
-  * Merge branch 'master' of /home/chuck/development/gitnasm/
-Fri Nov 9 16:25:43 2007 -0800 Charles Crayne 
-  * Update documentation for stack relative directives
-Fri Nov 9 14:44:02 2007 -0800 H. Peter Anvin 
-  * Don't combine type and size into a single argument
-Thu Nov 8 22:11:14 2007 -0800 Charles Crayne 
-  * Add flat64 to %stacksize choices
-Thu Nov 8 20:43:22 2007 -0800 H. Peter Anvin 
-  * Fix building under OpenWatcom
-Thu Nov 8 20:29:37 2007 -0800 H. Peter Anvin 
-  * ps2pdf: remove -dOptimize=true
-Thu Nov 8 20:21:41 2007 -0800 H. Peter Anvin 
-  * No binary files left in the source distro; unbreak release script
-Thu Nov 8 20:01:11 2007 -0800 H. Peter Anvin 
-  * BR 1828103: Fix %arg and %local
-Thu Nov 8 19:34:01 2007 -0800 H. Peter Anvin 
-  * nasmlib.c: prefix_name(): use the elements() macro
-Thu Nov 8 19:30:22 2007 -0800 H. Peter Anvin 
-  * Move elements() to nasmlib.h
-Thu Nov 8 19:15:33 2007 -0800 H. Peter Anvin 
-  * constipate the "str" argument to bsi() and bsii()
-Wed Nov 7 19:03:46 2007 -0800 Charles Crayne 
-  * Upgrade RAA functions to hold 64-bit data.
-Tue Nov 6 21:48:12 2007 -0800 Charles Crayne 
-  * Pass 64-bit instruction lengths to back-ends.
-Tue Nov 6 18:27:23 2007 -0800 Charles Crayne 
-  * Prepare for 64-bit instruction lengths
-Mon Nov 5 21:49:49 2007 -0800 Charles Crayne 
-  * Disambiguate error messages
-Mon Nov 5 17:19:32 2007 -0800 Charles Crayne 
-  * Upgrade label functions to 64-bit
-Sun Nov 4 21:10:42 2007 -0800 H. Peter Anvin 
-  * Permit opcode names as labels as long as they are followed by a colon
-Sun Nov 4 15:28:30 2007 -0800 Charles Crayne 
-  * Make warning limit valid for both i386 and x86_64
-Sat Nov 3 22:06:13 2007 -0700 Charles Crayne 
-  * Warn on out of bounds EA displacements
-Thu Nov 1 15:08:27 2007 -0700 H. Peter Anvin 
-  * Treat info files as binary when creating xdoc distro file
-Thu Nov 1 15:07:42 2007 -0700 H. Peter Anvin 
-  * Remove obsolete binary files from the distribution
-Thu Nov 1 14:53:32 2007 -0700 H. Peter Anvin 
-  * Move declarations before statements
-Wed Oct 31 23:37:35 2007 -0700 H. Peter Anvin 
-  * NASM 0.99.06
-Wed Oct 31 23:37:19 2007 -0700 H. Peter Anvin 
-  * Script to tag the tree for release
-Wed Oct 31 10:59:26 2007 -0700 H. Peter Anvin 
-  * Even more "riprel" tests
-Tue Oct 30 01:17:57 2007 -0700 H. Peter Anvin 
-  * floatx.asm: add tests for "rounds up to smallest denorm"
-Tue Oct 30 01:13:27 2007 -0700 H. Peter Anvin 
-  * Run "make alldeps"
-Tue Oct 30 01:13:09 2007 -0700 H. Peter Anvin 
-  * float.c: handle round-up-to-denorm correctly.
-Tue Oct 30 00:59:27 2007 -0700 H. Peter Anvin 
-  * Exhaustive test for 8-bit floating point values
-Mon Oct 29 23:12:47 2007 -0700 H. Peter Anvin 
-  * Clean up the handing of operands in assemble.c
-Mon Oct 29 22:56:08 2007 -0700 H. Peter Anvin 
-  * Don't warn for segmented references
-Mon Oct 29 20:20:12 2007 -0700 H. Peter Anvin 
-  * Use a 32-bit floating-point limb size; support 8-bit float
-Mon Oct 29 18:24:59 2007 -0700 Charles Crayne 
-  * Reduce severity of redundant prefixes from error to warning.
-Sun Oct 28 23:23:24 2007 -0700 H. Peter Anvin 
-  * Test of some addressing modes in 64-bit mode.
-Sun Oct 28 23:21:46 2007 -0700 H. Peter Anvin 
-  * Fix bogus flagging of effective addresses as invalid
-Sun Oct 28 23:10:34 2007 -0700 H. Peter Anvin 
-  * Actually shut up the warning in rdfload.c
-Sun Oct 28 22:04:42 2007 -0700 H. Peter Anvin 
-  * Clean up stealth whitespace
-Sun Oct 28 22:04:00 2007 -0700 H. Peter Anvin 
-  * Fix warning about cast to pointer in rdfload.c
-Sun Oct 28 22:04:00 2007 -0700 H. Peter Anvin 
-  * 64-bit addressing and prefix handling changes
-Sun Oct 28 15:29:54 2007 -0700 Charles Crayne 
-  * Adjust stabs symbol index to match symbol table.
-Fri Oct 26 21:38:02 2007 -0700 H. Peter Anvin 
-  * readnum(): handle prefix-suffix collision like "0h"
-Fri Oct 26 18:49:29 2007 -0700 H. Peter Anvin 
-  * Better handling of platforms which hide "extended" functionality
-Wed Oct 24 15:51:40 2007 -0700 Charles Crayne 
-  * Merge branch 'master' of /home/chuck/development/gitnasm/
-Wed Oct 24 15:30:17 2007 -0700 Charles Crayne 
-  * Update sections about debug info formats
-Wed Oct 24 15:29:51 2007 -0700 H. Peter Anvin 
-  * Fix the handling of floating-point tokens in the preprocessor
-Tue Oct 23 19:28:39 2007 -0700 Charles Crayne 
-  * Fix bugs item #1817677
-Tue Oct 23 00:08:58 2007 -0700 H. Peter Anvin 
-  * Slightly simplify the radix-detection code
-Mon Oct 22 19:48:06 2007 -0700 H. Peter Anvin 
-  * Unbreak particularly tricky hex constants
-Mon Oct 22 19:37:36 2007 -0700 H. Peter Anvin 
-  * Decimal floating point can also start with 0. 0e 0E
-Mon Oct 22 17:34:10 2007 -0700 H. Peter Anvin 
-  * Support binary and octal floating-point
-Mon Oct 22 16:53:48 2007 -0700 H. Peter Anvin 
-  * More consistent handling of radix letters
-Sun Oct 21 15:33:01 2007 -0700 H. Peter Anvin 
-  * float.c: correct exponent capping
-Sun Oct 21 14:21:43 2007 -0700 Charles Crayne 
-  * Clean up elf symbol table section
-Fri Oct 19 18:33:57 2007 -0700 H. Peter Anvin 
-  * Allow $-prefixed hexadecimal FP as an alternative to 0x
-Fri Oct 19 14:43:22 2007 -0700 H. Peter Anvin 
-  * Scripts to remove stealth whitespace
-Fri Oct 19 14:42:29 2007 -0700 H. Peter Anvin 
-  * Formatting: kill off "stealth whitespace"
-Fri Oct 19 14:26:52 2007 -0700 H. Peter Anvin 
-  * test/floatx.asm: fix test case
-Fri Oct 19 14:19:52 2007 -0700 H. Peter Anvin 
-  * uscore.asm: Fix test case
-Fri Oct 19 14:17:51 2007 -0700 H. Peter Anvin 
-  * float.c: mark read_exponent() static
-Fri Oct 19 14:10:35 2007 -0700 H. Peter Anvin 
-  * Don't confuse suffixed hexadecimal with floating-point
-Fri Oct 19 13:17:24 2007 -0700 H. Peter Anvin 
-  * Anchor filename locations in .gitignore
-Fri Oct 19 13:16:51 2007 -0700 H. Peter Anvin 
-  * test/Makefile: Use -Ox instead of -O999
-Fri Oct 19 13:14:06 2007 -0700 H. Peter Anvin 
-  * Test of underscored constants
-Fri Oct 19 13:10:46 2007 -0700 H. Peter Anvin 
-  * Allow underscores in numbers; better detection of FP
-Fri Oct 19 10:52:31 2007 -0700 H. Peter Anvin 
-  * Modernize nasm.spec.in and make it closer to the Fedora version
-Thu Oct 18 23:33:06 2007 -0700 Charles Crayne 
-  * Suppress datarootdir warnings from configure
-Thu Oct 18 21:17:20 2007 -0700 Charles Crayne 
-  * Suppress signedness warnings in disassembler
-Thu Oct 18 19:14:08 2007 -0700 H. Peter Anvin 
-  * Cleaner solution for MinGW handling of __STRICT_ANSI__
-Thu Oct 18 19:14:08 2007 -0700 H. Peter Anvin 
-  * configure: Undefine __STRICT_ANSI__ for mingw's benefit
-Thu Oct 18 19:14:07 2007 -0700 H. Peter Anvin 
-  * Fix invocation of readnum()
-Thu Oct 18 19:02:42 2007 -0700 Charles Crayne 
-  * Suppress a few signedness warnings
-Thu Oct 18 17:04:10 2007 -0700 root 
-  * Avoid unnecessary warning on redefinition of section (bug 801180)
-Wed Oct 17 17:55:45 2007 -0700 Charles Crayne 
-  * Generate stabs entries for any executable section
-Tue Oct 16 22:59:09 2007 -0700 H. Peter Anvin 
-  * NASM 0.99.05
-Tue Oct 16 15:46:04 2007 -0700 H. Peter Anvin 
-  * Tests of obscenely large exponents
-Tue Oct 16 14:42:32 2007 -0700 H. Peter Anvin 
-  * Comma-separate contents of __FLOAT__
-Tue Oct 16 14:40:27 2007 -0700 H. Peter Anvin 
-  * Implement floating-point option control directive
-Tue Oct 16 11:48:07 2007 -0700 H. Peter Anvin 
-  * Floating-point warning fixes; fix round-to-overflow
-Tue Oct 16 11:32:58 2007 -0700 H. Peter Anvin 
-  * Handle rounding of denorms correctly; make fp overflow a warning
-Tue Oct 16 10:35:02 2007 -0700 H. Peter Anvin 
-  * Additional entries for .gitignore
-Tue Oct 16 10:32:57 2007 -0700 H. Peter Anvin 
-  * Refactor floating-point formatting code; fix 80-bit denorms
-Tue Oct 16 10:31:16 2007 -0700 H. Peter Anvin 
-  * Add 1.5 as a test case: representative of an exact fraction
-Mon Oct 15 20:06:06 2007 -0700 H. Peter Anvin 
-  * Recognize 'd', 't' and 'y' as radix suffixes
-Mon Oct 15 19:53:10 2007 -0700 H. Peter Anvin 
-  * Fix FISTTP opcodes (BR 689695)
-Mon Oct 15 19:46:32 2007 -0700 H. Peter Anvin 
-  * New floating-point conversion routines
-Mon Oct 15 17:48:43 2007 -0700 H. Peter Anvin 
-  * Add testnos3 from the gdtoa package (floating-point test)
-Sat Oct 13 23:19:21 2007 -0700 H. Peter Anvin 
-  * .gitignore file doesn't need to be in the release file
-Sat Oct 13 23:17:41 2007 -0700 H. Peter Anvin 
-  * Add .gitignore file so "git status" produces something sane
-Sat Oct 13 23:12:46 2007 -0700 H. Peter Anvin 
-  * autoconf: drop AC_USE_SYSTEM_EXTENSIONS to support autoconf 2.59
-Sat Oct 13 07:09:22 2007 -0700 Keith Kanios 
-  * Fix 32-bit types in preproc.c and eval.c
-Thu Oct 11 20:32:33 2007 -0700 Charles Crayne 
-  * Must define types before using them
-Thu Oct 11 13:42:09 2007 -0700 H. Peter Anvin 
-  * preproc.c: move smacro define/undef to separate functions
-Thu Oct 11 13:38:38 2007 -0700 H. Peter Anvin 
-  * preproc.c: PP_DEFINE and PP_XDEFINE are case-sensitive
-Thu Oct 11 12:52:03 2007 -0700 H. Peter Anvin 
-  * preproc.c: normalize the handling of case sensitivity
-Thu Oct 11 12:51:06 2007 -0700 H. Peter Anvin 
-  * Define macros necessary for <inttypes.h> on C++
-Thu Oct 11 10:12:58 2007 -0700 H. Peter Anvin 
-  * More "bool" fixes
-Thu Oct 11 10:11:57 2007 -0700 H. Peter Anvin 
-  * preproc.c: allow 64-bit repeat counts
-Thu Oct 11 10:06:19 2007 -0700 H. Peter Anvin 
-  * preproc.c: For an SMacro, in_progress really is a boolean (no %rep)
-Thu Oct 11 00:05:57 2007 -0700 H. Peter Anvin 
-  * Additional uses of bool and enum
-Thu Oct 11 00:05:57 2007 -0700 H. Peter Anvin 
-  * preproc.c: MMacro.in_progress is not a boolean
-Wed Oct 10 18:07:51 2007 -0700 H. Peter Anvin 
-  * saa_fread/fwrite: when seeking, must set [rw]ptr as well
-Wed Oct 10 14:58:45 2007 -0700 H. Peter Anvin 
-  * Use the compiler-provided booleans if available, otherwise emulate
-Wed Oct 10 14:55:14 2007 -0700 H. Peter Anvin 
-  * owlinux.mak: don't clean things we won't be able to
-Wed Oct 10 14:29:53 2007 -0700 H. Peter Anvin 
-  * configure.in: looks like we need autoconf 2.61 :(
-Wed Oct 10 14:06:59 2007 -0700 H. Peter Anvin 
-  * Create option -Ox to tell NASM to do unlimited passes
-Mon Oct 8 19:26:57 2007 -0700 H. Peter Anvin 
-  * Revert "floatb.asm: fix broken testcase"
-Mon Oct 8 18:39:24 2007 -0700 H. Peter Anvin 
-  * floatb.asm: fix broken testcase
-Mon Oct 8 12:41:00 2007 -0700 H. Peter Anvin 
-  * saa_rstruct: fix overrun check
-Mon Oct 8 12:12:23 2007 -0700 H. Peter Anvin 
-  * Add Frank's floattest.asm test file
-Sun Oct 7 21:13:14 2007 -0700 H. Peter Anvin 
-  * saa_fpwrite: initializing "len" should be part of the loop
-Sun Oct 7 18:46:57 2007 -0700 Charles Crayne 
-  * Fix infinite loop in function saa_fpwrite
-Fri Oct 5 17:44:16 2007 -0700 H. Peter Anvin 
-  * zerobyte.asm: use a real instruction to avoid confusing ndisasm
-Fri Oct 5 17:42:31 2007 -0700 H. Peter Anvin 
-  * zerobyte.asm: add test cases for non-initial \170 uses
-Fri Oct 5 17:29:01 2007 -0700 H. Peter Anvin 
-  * Check in the proper zerobyte test
-Fri Oct 5 17:04:32 2007 -0700 H. Peter Anvin 
-  * Emit REX prefix before literal zero (\170)
-Fri Oct 5 17:01:15 2007 -0700 H. Peter Anvin 
-  * LICENSE: Break long line
-Fri Oct 5 14:36:03 2007 -0700 H. Peter Anvin 
-  * Add test for problematic floats
-Thu Oct 4 23:51:08 2007 -0700 H. Peter Anvin 
-  * floatx.asm: add Inf and NaN to the boundary condition tests
-Thu Oct 4 23:09:19 2007 -0700 H. Peter Anvin 
-  * floatx.asm: add specific tests for exponent boundary conditions
-Thu Oct 4 22:51:08 2007 -0700 H. Peter Anvin 
-  * float.c: correct the exponent
-Thu Oct 4 15:18:23 2007 -0700 H. Peter Anvin 
-  * Additional rules in test/Makefile
-Thu Oct 4 13:42:56 2007 -0700 H. Peter Anvin 
-  * Rewrite the handling of SAA's to allow random access
-Wed Oct 3 21:30:57 2007 -0700 H. Peter Anvin 
-  * Change cloc_t to struct location, and reorder the members
-Wed Oct 3 21:24:51 2007 -0700 H. Peter Anvin 
-  * BR 1352920: change loc_t -> cloc_t
-Wed Oct 3 21:22:16 2007 -0700 H. Peter Anvin 
-  * BR 1352920: Handle upper case %line
-Wed Oct 3 17:40:12 2007 -0700 H. Peter Anvin 
-  * Use autoconf to request feature macros
-Tue Oct 2 22:04:15 2007 -0700 H. Peter Anvin 
-  * preproc.c: constipation
-Tue Oct 2 21:57:27 2007 -0700 H. Peter Anvin 
-  * make alldeps
-Tue Oct 2 21:53:51 2007 -0700 H. Peter Anvin 
-  * Portability fixes
-Tue Oct 2 21:13:18 2007 -0700 H. Peter Anvin 
-  * Run "make alldeps".
-Tue Oct 2 17:40:00 2007 -0700 H. Peter Anvin 
-  * Use the crc64 we already use as the perfect hash function prehash
-Tue Oct 2 15:09:33 2007 -0700 H. Peter Anvin 
-  * insns.dat: add systematic names for the hinting NOPs (0F18-0F1F)
-Mon Oct 1 11:28:32 2007 -0700 H. Peter Anvin 
-  * Unspecified files are null strings, not null pointers
-Mon Oct 1 11:26:31 2007 -0700 H. Peter Anvin 
-  * Check for the most basic filename overlaps
-Sun Sep 30 22:15:36 2007 -0700 Charles Crayne 
-  * modified:   nasm.1 to add newer command line options
-Fri Sep 28 21:27:41 2007 -0700 Charles Crayne 
-  * Merge branch 'master' of git+ssh://ccrayne@repo.or.cz/srv/git/nasm
-Fri Sep 28 20:17:12 2007 -0700 H. Peter Anvin 
-  * configure.in: AC_SUBST_FILE should have been AC_SUBST
-Fri Sep 28 17:17:20 2007 -0700 H. Peter Anvin 
-  * Unbreak relative references to immediate addresses
-Fri Sep 28 15:16:47 2007 -0700 Charles Crayne 
-  * Merge branch 'master' of git+ssh://ccrayne@repo.or.cz/srv/git/nasm
-Fri Sep 28 12:01:55 2007 -0700 H. Peter Anvin 
-  * lib/vsnprintf.c: correct boundary conditions
-Fri Sep 28 10:50:20 2007 -0700 H. Peter Anvin 
-  * Add substitutes for snprintf() and vsnprintf()
-Fri Sep 28 02:03:41 2007 -0400 Frank Kotler 
-  * Merge branch 'master' of git+ssh://fbkotler@repo.or.cz/srv/git/nasm
-Thu Sep 27 21:35:04 2007 -0700 H. Peter Anvin 
-  * Exclude config.h from the dependency list for the canned makefiles
-Thu Sep 27 21:12:17 2007 -0700 H. Peter Anvin 
-  * version.pl: Add support for daily snapshot releases
-Thu Sep 27 19:46:55 2007 -0700 H. Peter Anvin 
-  * Add Makefile for Linux -> DOS, Win32, OS/2 using OpenWatcom
-Wed Sep 26 19:57:07 2007 -0700 H. Peter Anvin 
-  * Add Makefile for OpenWatcom (DOS, OS/2 or Win32 output)
-Wed Sep 26 17:00:18 2007 -0700 H. Peter Anvin 
-  * Test for various addressing modes in 64-bit mode
-Wed Sep 26 15:19:28 2007 -0700 H. Peter Anvin 
-  * nasm option reshuffling, -E -> -Z
-Tue Sep 25 23:57:21 2007 -0400 Frank Kotler 
-  * Version 0.99.04
-Tue Sep 25 20:36:45 2007 -0700 H. Peter Anvin 
-  * nasmdoc: corrections on 64-bit immediates/displacements
-Tue Sep 25 16:02:21 2007 -0700 H. Peter Anvin 
-  * nasmdoc: shorten lines which are too long
-Tue Sep 25 16:01:07 2007 -0700 H. Peter Anvin 
-  * Document NASM behaviour for 64-bit immediates and displacements
-Tue Sep 25 15:44:40 2007 -0700 H. Peter Anvin 
-  * test/movimm.asm: add optimizable forms
-Tue Sep 25 15:41:19 2007 -0700 H. Peter Anvin 
-  * assemble.c: clean up whitespace
-Tue Sep 25 15:40:36 2007 -0700 H. Peter Anvin 
-  * Correct the handling of "MOV" with immediate in 64-bit mode
-Tue Sep 25 15:39:42 2007 -0700 H. Peter Anvin 
-  * Test of immediate handling on 64-bit mode
-Tue Sep 25 14:27:34 2007 -0700 H. Peter Anvin 
-  * Add nasm_zalloc() to nasmlib.c
-Tue Sep 25 14:26:03 2007 -0700 H. Peter Anvin 
-  * Fix BR 1490407: size of the second operand of LAR/LSL
-Tue Sep 25 14:11:29 2007 -0700 H. Peter Anvin 
-  * Fix BR 1490407: size of the second operand of LAR/LSL
-Tue Sep 25 13:34:55 2007 -0700 H. Peter Anvin 
-  * Makefile.in: make "make install" create directories
-Tue Sep 25 08:48:37 2007 -0700 H. Peter Anvin 
-  * Fix BR 1445441: uninitialized use of "error_file"
-Mon Sep 24 21:33:17 2007 -0700 H. Peter Anvin 
-  * preproc.c: fix the loop in %undef
-Mon Sep 24 20:53:48 2007 -0700 H. Peter Anvin 
-  * float.c: clear off uninitialized warning
-Mon Sep 24 17:02:41 2007 -0700 H. Peter Anvin 
-  * outcoff: set the "virtual size field" to zero (BR 1351586)
-Mon Sep 24 15:56:02 2007 -0700 H. Peter Anvin 
-  * insns.dat: SMINT - mark ND, DMINT - fix opcode
-Mon Sep 24 15:55:20 2007 -0700 H. Peter Anvin 
-  * 0F0F is a 3Dnow! prefix; remove from prefix list
-Mon Sep 24 15:48:09 2007 -0700 H. Peter Anvin 
-  * Additional compaction missed by script
-Mon Sep 24 15:42:53 2007 -0700 H. Peter Anvin 
-  * insns.dat: machine-generated compaction mmx/xmmreg,mem -> mmx/xmmrm
-Mon Sep 24 13:54:00 2007 -0700 H. Peter Anvin 
-  * nasmdoc: grammar fix
-Mon Sep 24 13:44:02 2007 -0700 H. Peter Anvin 
-  * nasmdoc: remove stray periods
-Mon Sep 24 13:42:09 2007 -0700 H. Peter Anvin 
-  * test/Makefile: make a bit more useful
-Mon Sep 24 13:41:58 2007 -0700 H. Peter Anvin 
-  * Implement the -MG option (SF RFE 1564264)
-Mon Sep 24 12:52:09 2007 -0700 H. Peter Anvin 
-  * nasmdoc: clarify __float*__ example
-Mon Sep 24 12:44:38 2007 -0700 H. Peter Anvin 
-  * nasmdoc: document the __float*__ operators
-Mon Sep 24 12:30:54 2007 -0700 H. Peter Anvin 
-  * Support __float*__ for floating-point numbers in expressions
-Mon Sep 24 10:51:07 2007 -0700 H. Peter Anvin 
-  * eval.c: replace sequence of ifs with switch
-Mon Sep 24 10:50:23 2007 -0700 H. Peter Anvin 
-  * tokhash: allow a bit smarter pattern matching
-Sat Sep 22 22:35:28 2007 -0700 H. Peter Anvin 
-  * Implement INVLPGA according to the documentation
-Sat Sep 22 22:02:34 2007 -0700 H. Peter Anvin 
-  * Reformat insns.dat to uniform column width
-Sat Sep 22 21:50:03 2007 -0700 H. Peter Anvin 
-  * Simple test for 0x67 prefixes
-Sat Sep 22 21:49:51 2007 -0700 H. Peter Anvin 
-  * Auto-generate 0x67 prefixes without the need for \30x codes
-Sat Sep 22 21:47:13 2007 -0700 H. Peter Anvin 
-  * Make test/Makefile a bit more useful
-Sat Sep 22 21:29:41 2007 -0700 H. Peter Anvin 
-  * Add TY_OWORD for "DO" output
-Sat Sep 22 19:52:11 2007 -0700 H. Peter Anvin 
-  * LDDQU needs \301 (BR 1103549)
-Sat Sep 22 19:51:13 2007 -0700 H. Peter Anvin 
-  * RDTSCP and INVLPGA aren't 64-bit specific
-Sat Sep 22 19:40:37 2007 -0700 H. Peter Anvin 
-  * Cyrix GX1 instructions: BBx_RESET, CPU_READ, CPU_WRITE
-Sat Sep 22 19:28:14 2007 -0700 H. Peter Anvin 
-  * Centaur XSHA1, XSHA256, MONTMUL
-Sat Sep 22 19:20:56 2007 -0700 H. Peter Anvin 
-  * Implement Centaur's XCRYPT instructions
-Sat Sep 22 19:13:05 2007 -0700 H. Peter Anvin 
-  * Add Geode LX (AMD's Cyrix-derived core) instructions
-Sat Sep 22 19:05:11 2007 -0700 H. Peter Anvin 
-  * Add the GETSEC instruction for Intel SMX
-Sat Sep 22 18:59:18 2007 -0700 H. Peter Anvin 
-  * Add the AMD SSE4a and LZCNT instructions
-Sat Sep 22 18:23:20 2007 -0700 H. Peter Anvin 
-  * Tag UMOV as ND (no disassembly) to avoid collision
-Sat Sep 22 18:20:49 2007 -0700 H. Peter Anvin 
-  * Disallow optimizing by less than 5 passes.
-Sat Sep 22 17:45:45 2007 -0700 H. Peter Anvin 
-  * BR 1783117: Document that %+ needs a space after it, and fix crash
-Sat Sep 22 16:44:56 2007 -0700 H. Peter Anvin 
-  * nasm.spec.in: minor fixes
-Sat Sep 22 16:38:25 2007 -0700 H. Peter Anvin 
-  * release script: handle stricter CLI parsing for "git tag"
-Sat Sep 22 16:35:11 2007 -0700 H. Peter Anvin 
-  * Update nasm.spec.in and make it handle rc releases
-Sat Sep 22 16:19:19 2007 -0700 H. Peter Anvin 
-  * version.pl: support version numbers of the form X.Y[.Z]rcW
-Thu Sep 20 21:33:43 2007 -0700 Charles Crayne 
-  * Merge branch 'master' of git+ssh://ccrayne@repo.or.cz/srv/git/nasm
-Thu Sep 20 21:12:33 2007 -0700 Charles Crayne 
-  * 	modified:   misc/release to fix bug in removing .git
-Wed Sep 19 21:41:43 2007 -0700 H. Peter Anvin 
-  * Merge branch 'master' of git+ssh://repo.or.cz/srv/git/nasm
-Wed Sep 19 21:41:27 2007 -0700 H. Peter Anvin 
-  * Update manual pages
-Wed Sep 19 21:41:02 2007 -0700 H. Peter Anvin 
-  * Remove limit on number of sync points
-Wed Sep 19 21:40:37 2007 -0700 H. Peter Anvin 
-  * Make nasm_malloc() et al available from inside ndisasm
-Wed Sep 19 21:07:32 2007 -0400 Frank Kotler 
-  * Version 0.99.03
-Wed Sep 19 21:06:59 2007 -0400 Frank Kotler 
-  * Merge branch 'master' of git+ssh://fbkotler@repo.or.cz/srv/git/nasm
-Wed Sep 19 16:22:03 2007 -0700 H. Peter Anvin 
-  * Merge commit 'origin/sse5'
-Wed Sep 19 16:15:22 2007 -0700 H. Peter Anvin 
-  * test/Makefile: make a bit more useful
-Tue Sep 18 22:54:40 2007 -0700 H. Peter Anvin 
-  * Slightly optimize the interface to nasm_token_hash()
-Wed Sep 19 01:34:55 2007 -0400 Frank Kotler 
-  * Merge branch 'master' of git+ssh://fbkotler@repo.or.cz/srv/git/nasm
-Tue Sep 18 22:23:42 2007 -0700 H. Peter Anvin 
-  * Merge commit 'origin/master' into sse5
-Tue Sep 18 22:22:49 2007 -0700 H. Peter Anvin 
-  * elf64: fix 32-bit truncations
-Tue Sep 18 22:08:04 2007 -0700 H. Peter Anvin 
-  * Document Infinity and NaN
-Tue Sep 18 21:55:56 2007 -0700 H. Peter Anvin 
-  * Support generating NaNs and infinities
-Tue Sep 18 19:12:26 2007 -0700 H. Peter Anvin 
-  * Update documentation
-Tue Sep 18 18:37:36 2007 -0700 H. Peter Anvin 
-  * Simple test for hexadecimal floating-point numbers
-Tue Sep 18 18:33:17 2007 -0700 H. Peter Anvin 
-  * Fix error-reporting in hexadecimal floating-point numbers
-Tue Sep 18 18:31:26 2007 -0700 H. Peter Anvin 
-  * Support C99-style hexadecimal floating point.
-Tue Sep 18 17:50:34 2007 -0700 H. Peter Anvin 
-  * Unify all standard IEEE floating-point formats; add 128-bit
-Tue Sep 18 17:49:09 2007 -0700 H. Peter Anvin 
-  * Fix handling of DO; support unary + for floating-point numbers
-Tue Sep 18 16:39:03 2007 -0700 H. Peter Anvin 
-  * Support 16-bit IEEE floating point; used in SSE5
-Tue Sep 18 15:43:40 2007 -0700 H. Peter Anvin 
-  * Merge commit 'origin/master' into sse5
-Tue Sep 18 15:43:08 2007 -0700 H. Peter Anvin 
-  * Add NOP with argument to the instruction list
-Tue Sep 18 15:24:38 2007 -0700 H. Peter Anvin 
-  * Remove 0FC2 from list of instruction prefixes
-Tue Sep 18 15:08:20 2007 -0700 H. Peter Anvin 
-  * Speed up the disassembler by allowing prefixed instruction tables
-Tue Sep 18 13:45:12 2007 -0700 H. Peter Anvin 
-  * Document oword, do and reso
-Tue Sep 18 13:01:32 2007 -0700 H. Peter Anvin 
-  * Implement "oword" (128 bits) as a first-class size
-Tue Sep 18 12:38:07 2007 -0700 H. Peter Anvin 
-  * Change the token prehash function for better convergence
-Tue Sep 18 12:23:21 2007 -0700 H. Peter Anvin 
-  * SSE5 instruction table
-Tue Sep 18 02:06:09 2007 -0400 Frank Kotler 
-  * add "const" to output/outdbg.c
-Mon Sep 17 18:45:44 2007 -0700 H. Peter Anvin 
-  * Disassembler support for SSE5 instructions
-Mon Sep 17 17:27:46 2007 -0700 H. Peter Anvin 
-  * insns.dat: All SSE5 instructions are AMD
-Mon Sep 17 17:25:27 2007 -0700 H. Peter Anvin 
-  * Actually generate SSE5 instructions
-Mon Sep 17 16:55:04 2007 -0700 H. Peter Anvin 
-  * Initial support for generating DREX suffixes
-Mon Sep 17 16:31:33 2007 -0700 H. Peter Anvin 
-  * Fix a few instances of missing renumbers
-Mon Sep 17 16:20:45 2007 -0700 H. Peter Anvin 
-  * Enable IF_AR3
-Mon Sep 17 15:49:53 2007 -0700 H. Peter Anvin 
-  * Merge commit 'origin/master' into sse5
-Mon Sep 17 15:49:30 2007 -0700 H. Peter Anvin 
-  * Initial support for four arguments per instruction
-Mon Sep 17 15:48:32 2007 -0700 H. Peter Anvin 
-  * CLFLUSH: Neither an x64 instruction nor AMD
-Mon Sep 17 13:56:26 2007 -0700 H. Peter Anvin 
-  * Sort dependency lists
-Mon Sep 17 13:53:14 2007 -0700 H. Peter Anvin 
-  * Cleaner way to handle MSVC's _snprintf() underscore damage
-Mon Sep 17 13:19:25 2007 -0700 H. Peter Anvin 
-  * test/r13.asm: test special-casing of rbp and r13 in 64-bit mode
-Mon Sep 17 13:03:33 2007 -0700 H. Peter Anvin 
-  * Additional documentation for 64-bit programming
-Sun Sep 16 22:27:07 2007 -0700 H. Peter Anvin 
-  * INSTALL: MSVC++ compilation instructions
-Sun Sep 16 22:17:29 2007 -0700 H. Peter Anvin 
-  * make alldeps: change Mkfiles/Makefile.* to Mkfiles/*.mak
-Sun Sep 16 22:16:24 2007 -0700 H. Peter Anvin 
-  * Fix Makefile for MSVC++ 2005, delete obsolete Makefiles
-Sun Sep 16 22:15:34 2007 -0700 H. Peter Anvin 
-  * Minor fixes needed to compile with MSVC++ 2005
-Sun Sep 16 18:35:02 2007 -0700 H. Peter Anvin 
-  * Run "make alldeps"
-Sun Sep 16 18:04:57 2007 -0700 H. Peter Anvin 
-  * Switch the preprocessor over to using the hash table library
-Sun Sep 16 17:53:17 2007 -0700 H. Peter Anvin 
-  * Fix the handling of local labels
-Fri Sep 14 18:36:01 2007 -0700 H. Peter Anvin 
-  * preproc.c: remove unnecessary int64_t
-Fri Sep 14 18:03:29 2007 -0700 H. Peter Anvin 
-  * Use the new hash table function library to store labels
-Fri Sep 14 09:24:38 2007 -0700 H. Peter Anvin 
-  * Define a proper hash table library
-Thu Sep 13 18:13:20 2007 -0700 H. Peter Anvin 
-  * Simple performance benchmarks: label, macro and token lookups
-Thu Sep 13 12:25:32 2007 -0700 H. Peter Anvin 
-  * release script: fix final cleanup
-Thu Sep 13 12:22:00 2007 -0700 H. Peter Anvin 
-  * Modify release script for a git-centric world
-Thu Sep 13 11:06:42 2007 -0700 H. Peter Anvin 
-  * pptok.c: don't insist on C99 compiler behaviour
-Wed Sep 12 22:02:06 2007 -0700 H. Peter Anvin 
-  * Fix literal F2 and F3 prefixes
-Wed Sep 12 21:58:51 2007 -0700 H. Peter Anvin 
-  * Add (untested!) SSSE3, SSE4.1, SSE4.2 instructions
-Wed Sep 12 21:06:36 2007 -0700 H. Peter Anvin 
-  * Add support for Tejas New Instructions (SSSE3)
-Wed Sep 12 21:05:06 2007 -0700 H. Peter Anvin 
-  * Remove $Id$ tags (useless with git)
-Wed Sep 12 21:04:58 2007 -0700 H. Peter Anvin 
-  * Use rm32 operands for VMREAD/VMWRITE
-Wed Sep 12 21:04:51 2007 -0700 H. Peter Anvin 
-  * Macros for SSSE3/SSE4 instruction sets
-Wed Sep 12 21:04:39 2007 -0700 H. Peter Anvin 
-  * Support r/m operands for non-integer types
-Wed Sep 12 20:27:41 2007 -0700 H. Peter Anvin 
-  * Use enumerations where practical to ease debugging
-Wed Sep 12 17:02:55 2007 +0000 H. Peter Anvin 
-  * pptok.c: quick-and-dirty downcasing during prehashing
-Wed Sep 12 16:55:57 2007 +0000 H. Peter Anvin 
-  * phash: Tell the user when the graph is OK
-Wed Sep 12 05:18:20 2007 +0000 H. Peter Anvin 
-  * pptok.c: handle holes in the pp_directives array
-Wed Sep 12 04:20:08 2007 +0000 H. Peter Anvin 
-  * preproc.c: adjust whitespace
-Wed Sep 12 04:18:37 2007 +0000 H. Peter Anvin 
-  * More automation in the preprocessor conditionals handling
-Wed Sep 12 02:13:39 2007 +0000 H. Peter Anvin 
-  * pptok.c: fix spacing
-Wed Sep 12 02:12:07 2007 +0000 H. Peter Anvin 
-  * Generate automatically correct tests for %if and %elif
-Wed Sep 12 01:34:19 2007 +0000 H. Peter Anvin 
-  * Run "make alldeps"; add dependencies missing from the previous checkin
-Wed Sep 12 01:29:43 2007 +0000 H. Peter Anvin 
-  * Use a perfect hash to look up preprocessor directives
-Wed Sep 12 01:27:53 2007 +0000 H. Peter Anvin 
-  * phash: Be a bit more aggressive about trying to make a small hash
-Wed Sep 12 00:22:29 2007 +0000 H. Peter Anvin 
-  * Add RCXZ as a known preprocessor condition
-Tue Sep 11 23:57:23 2007 +0000 H. Peter Anvin 
-  * doc: add some cross-references
-Tue Sep 11 23:52:01 2007 +0000 H. Peter Anvin 
-  * Feeble attempt at updating the documentation; remove Appendix B
-Tue Sep 11 22:44:03 2007 +0000 H. Peter Anvin 
-  * Handle instructions which can have both REX.W and OSP
-Tue Sep 11 22:14:18 2007 +0000 H. Peter Anvin 
-  * Use enums to make debugging easier
-Tue Sep 11 22:13:17 2007 +0000 H. Peter Anvin 
-  * ndisasm: handle \366 codes, prefer unprefixed instructions
-Tue Sep 11 22:00:34 2007 +0000 H. Peter Anvin 
-  * Simplify tokens.dat slightly
-Tue Sep 11 04:26:44 2007 +0000 H. Peter Anvin 
-  * Quiet gcc warning about uninitialized variables
-Tue Sep 11 04:16:57 2007 +0000 H. Peter Anvin 
-  * Make the big instruction arrays "const"
-Mon Sep 10 23:32:05 2007 +0000 H. Peter Anvin 
-  * Use an actual enum for the opcode
-Mon Sep 10 23:30:21 2007 +0000 H. Peter Anvin 
-  * Fix order of token arguments
-Mon Sep 10 18:59:26 2007 +0000 H. Peter Anvin 
-  * assemble.c: correct special handing of ESP/RSP
-Mon Sep 10 18:59:01 2007 +0000 H. Peter Anvin 
-  * tokhash: correct duplicate-token test
-Mon Sep 10 18:58:40 2007 +0000 H. Peter Anvin 
-  * tokhash: adjust table types to reduce size
-Mon Sep 10 18:55:52 2007 +0000 H. Peter Anvin 
-  * Fix the MMXREG and XMMREG flags definitions.
-Wed Sep 5 06:48:38 2007 +0000 H. Peter Anvin 
-  * nasm.spec.in: Copyright -> License
-Wed Sep 5 06:40:51 2007 +0000 H. Peter Anvin 
-  * Fix "make tar"; useful for RPM testing
-Wed Sep 5 06:24:43 2007 +0000 H. Peter Anvin 
-  * Remove obsolete Serial: construct; we shouldn't need it anyway.
-Tue Sep 4 01:29:43 2007 +0000 Chuck Crayne 
-  * Provide 64-bit support for ORG directive
-Sun Sep 2 16:37:03 2007 +0000 H. Peter Anvin 
-  * Fix some MMX/SSE irregularities which interact with the 64-bit support
-Sun Sep 2 14:46:00 2007 +0000 H. Peter Anvin 
-  * phash.ph: yet another attempt at getting Perl to behave, arithmetically
-Sun Sep 2 06:23:29 2007 +0000 H. Peter Anvin 
-  * Simple 64-bit org test
-Sun Sep 2 06:20:15 2007 +0000 H. Peter Anvin 
-  * phash.ph: remove some stale code
-Sun Sep 2 01:00:34 2007 +0000 Chuck Crayne 
-  * Force use of integer values for generating hash keys.
-Fri Aug 31 18:10:23 2007 +0000 H. Peter Anvin 
-  * phash: don't rely on the build platform Perl version of rand()
-Fri Aug 31 07:31:51 2007 +0000 H. Peter Anvin 
-  * tokhash.pl: formatting changes for readability
-Fri Aug 31 07:23:31 2007 +0000 H. Peter Anvin 
-  * tokhash: Speed up the rejection of unhashed values
-Fri Aug 31 06:06:17 2007 +0000 H. Peter Anvin 
-  * tokhash.pl: "ix" should have the same width as the "hash" arrays
-Fri Aug 31 00:28:35 2007 +0000 H. Peter Anvin 
-  * Add "do not edit" comment to tokhash.c
-Fri Aug 31 00:23:40 2007 +0000 H. Peter Anvin 
-  * Make the token hash a bit smaller by using 16-bit hash tables
-Fri Aug 31 00:16:10 2007 +0000 H. Peter Anvin 
-  * Minor cleanup; remove duplication of names.c
-Thu Aug 30 23:42:39 2007 +0000 H. Peter Anvin 
-  * phash.ph: use a bipartite graph to reduce the storage requirements
-Thu Aug 30 22:35:34 2007 +0000 H. Peter Anvin 
-  * Finishing touches on perfect hash tokenizer; actually turn the thing on
-Thu Aug 30 21:50:20 2007 +0000 H. Peter Anvin 
-  * Makefile rule for tokhash.c
-Thu Aug 30 21:47:46 2007 +0000 H. Peter Anvin 
-  * tokens.dat: Data file containing alphanumeric tokens not in other .dats
-Thu Aug 30 21:45:56 2007 +0000 H. Peter Anvin 
-  * Generate a perfect hash for the token parser
-Thu Aug 30 21:40:08 2007 +0000 H. Peter Anvin 
-  * Fix bugs in repeated suffix handling, which led to missing r8d/r8w/r8d
-Thu Aug 30 21:39:37 2007 +0000 H. Peter Anvin 
-  * phash.ph: more powerful prehashing
-Thu Aug 30 20:15:25 2007 +0000 H. Peter Anvin 
-  * Make the perfect hash generator an includable module
-Wed Aug 29 20:30:31 2007 +0000 H. Peter Anvin 
-  * Correct the logic for recording fs: and gs: overrides.
-Wed Aug 29 18:20:19 2007 +0000 H. Peter Anvin 
-  * Generate R_X86_64_64 relocations in elf64 output
-Wed Aug 29 17:24:03 2007 +0000 H. Peter Anvin 
-  * Add README file
-Wed Aug 29 17:20:09 2007 +0000 H. Peter Anvin 
-  * Create a Perl library directory, and add the Graph module to it
-Wed Aug 29 17:05:17 2007 +0000 H. Peter Anvin 
-  * Perfect hash generator, as a perl script
-Wed Aug 29 16:41:43 2007 +0000 H. Peter Anvin 
-  * Use standard macro for the default directive
-Wed Aug 29 16:40:26 2007 +0000 H. Peter Anvin 
-  * Add standard macro for [default] directive
-Wed Aug 29 16:38:47 2007 +0000 H. Peter Anvin 
-  * More test cases for rel and abs addressing
-Wed Aug 29 16:38:05 2007 +0000 H. Peter Anvin 
-  * Add [default] directive
-Wed Aug 29 16:25:46 2007 +0000 H. Peter Anvin 
-  * nasmlib: add bsii() case-insensitive version of bsi()
-Wed Aug 29 15:49:53 2007 +0000 H. Peter Anvin 
-  * Add test cases for IP-relative addressing
-Wed Aug 29 15:19:19 2007 +0000 H. Peter Anvin 
-  * Suppress IP-relative only for fs: and gs: overrides
-Tue Aug 28 23:06:00 2007 +0000 H. Peter Anvin 
-  * Implement REL/ABS modifiers
-Sun Aug 26 05:51:39 2007 +0000 Frank Kotler 
-  * attempt to make static makefiles aware of outelf32/outelf64
-Sun Aug 26 05:48:54 2007 +0000 Frank Kotler 
-  * add nasm_strsep to nasmlib, for output/outmacho.c - strtok doesn't work
-Sun Aug 26 05:41:33 2007 +0000 Frank Kotler 
-  * remove "#include <unistd.h> from rdoff directory - two places - it annoyed Windows users and seems unneeded
-Sun Aug 26 05:10:24 2007 +0000 Frank Kotler 
-  * finally commit Mike Frysinger's "elf-visibility" patch
-Mon Aug 20 21:03:14 2007 +0000 H. Peter Anvin 
-  * regs.pl: handle dashed sequences with suffixes
-Mon Aug 20 20:10:04 2007 +0000 H. Peter Anvin 
-  * sync.c: change ULONG_MAX to UINT32_MAX
-Mon Aug 20 20:09:11 2007 +0000 H. Peter Anvin 
-  * Add _MIN and _MAX macros for the fixed-size types.
-Mon Aug 20 20:02:17 2007 +0000 H. Peter Anvin 
-  * ldrdf: cast output of sizeof() before passing to printf(), to avoid warning.
-Sun Aug 19 18:49:26 2007 +0000 Keith Kanios 
-  * Fixed RIP address processing ambiguity found by Charles Crayne.
-Fri Aug 17 07:37:52 2007 +0000 Keith Kanios 
-  * Fixed issues with REX prefix effective address generation. Fixed XMM instruction output.
-Fri Aug 17 02:03:10 2007 +0000 Keith Kanios 
-  * Changed MMXREG and XMMREG flags to help resolve invalid REX prefix generation for MMX instructions.
-Sat Jul 7 02:01:08 2007 +0000 H. Peter Anvin 
-  * More int/int32_t confusion
-Sat Jul 7 01:59:52 2007 +0000 H. Peter Anvin 
-  * regflag() should return int32_t.
-Thu Jun 21 19:00:12 2007 +0000 H. Peter Anvin 
-  * Detect missing <inttypes.h> and include ersatz version if missing
-Thu Jun 21 06:24:23 2007 +0000 H. Peter Anvin 
-  * inttypes.h: for older preprocessors, specify L and LL as appropriate
-Thu Jun 21 06:20:43 2007 +0000 H. Peter Anvin 
-  * inttypes.h: Fix spelling of SHRT_MAX
-Thu Jun 21 06:15:42 2007 +0000 H. Peter Anvin 
-  * inttypes.h: do a single ersatz <inttypes.h> based on <limits.h>
-Sun Jun 3 02:42:41 2007 +0000 Chuck Crayne 
-  * Support 32-bit direct addressing in 64-bit mode without base or index regs
-Sat Jun 2 02:26:21 2007 +0000 H. Peter Anvin 
-  * Fix the [U]INT*_C() creation macros
-Sat Jun 2 00:05:35 2007 +0000 H. Peter Anvin 
-  * For platforms that don't have them, provide <inttypes.h> for common models.
-Wed May 30 22:21:11 2007 +0000 H. Peter Anvin 
-  * Fix the handling of the \313 code.
-Wed May 30 22:20:01 2007 +0000 H. Peter Anvin 
-  * Machine-generated \321->\324 corrections
-Wed May 30 21:22:33 2007 +0000 Frank Kotler 
-  * update "version" to 0.99.02
-Wed May 30 20:30:15 2007 +0000 H. Peter Anvin 
-  * Correct the generation of 67 prefixes.
-Wed May 30 18:30:18 2007 +0000 H. Peter Anvin 
-  * Update dependencies.
-Wed May 30 16:34:29 2007 +0000 Frank Kotler 
-  * update cvs server name in misc/release script
-Wed May 30 04:28:50 2007 +0000 H. Peter Anvin 
-  * Avoid magic values; we have more than 124 registers now
-Wed May 30 04:27:58 2007 +0000 H. Peter Anvin 
-  * Remove bogus redundant tests
-Wed May 30 03:44:50 2007 +0000 H. Peter Anvin 
-  * More \321 -> \324
-Wed May 30 03:44:02 2007 +0000 H. Peter Anvin 
-  * Remove bogus check for 64-bitness
-Wed May 30 03:25:21 2007 +0000 H. Peter Anvin 
-  * Get rid of magic open-coded "register numbers"
-Wed May 30 02:48:51 2007 +0000 H. Peter Anvin 
-  * MOV reg64,reg64 takes \324 (64 bit with REX) not \321 (32 bit)
-Wed May 30 00:18:26 2007 +0000 H. Peter Anvin 
-  * Rename REGNORM to REG_EA
-Wed May 30 00:15:25 2007 +0000 H. Peter Anvin 
-  * More instruction flag surgery
-Wed May 30 00:05:00 2007 +0000 H. Peter Anvin 
-  * More cleanup of operand flags/register classes
-Tue May 29 23:57:12 2007 +0000 H. Peter Anvin 
-  * Clean up the existing operand flag definitions, and document
-Tue May 29 21:44:55 2007 +0000 H. Peter Anvin 
-  * Run "make alldeps"
-Thu May 24 22:33:07 2007 +0000 Frank Kotler 
-  * update version number to 0.99.01
-Tue May 15 04:33:43 2007 +0000 H. Peter Anvin 
-  * regs.dat: fix comment
-Fri May 4 18:47:16 2007 +0000 H. Peter Anvin 
-  * 16-bit relocations are standard in ELF64 (at my request, incidentally)
-Fri May 4 02:16:08 2007 +0000 Chuck Crayne 
-  * Addition of elf32 and elf64 output formats.
-Wed May 2 04:21:26 2007 +0000 Chuck Crayne 
-  * Allow '!' to be used in expressions with same meaning as in C.
-Wed May 2 01:59:16 2007 +0000 Chuck Crayne 
-  * Add %IFN and %ELIFN as per RFE #786286
-Mon Apr 30 22:26:58 2007 +0000 Chuck Crayne 
-  * Accept responsibility for support of outelf64.c
-Sun Apr 29 20:57:53 2007 +0000 Chuck Crayne 
-  * Clarify comments about relocation entries.
-Sun Apr 29 00:28:24 2007 +0000 Chuck Crayne 
-  * Allow ELF32 to be invoked either as -f elf or -f elf32
-Sat Apr 28 22:18:04 2007 +0000 Chuck Crayne 
-  * Eliminate shift count warnings when building on 32-bit systems
-Sat Apr 28 06:18:48 2007 +0000 Chuck Crayne 
-  * Initial support for ELF64
-Wed Apr 18 02:27:18 2007 +0000 H. Peter Anvin 
-  * Fix the handling of \324 for computing the length
-Wed Apr 18 02:24:34 2007 +0000 Keith Kanios 
-  * Fixed RDF/2 to comply with "maxbits" use.
-Tue Apr 17 20:23:11 2007 +0000 H. Peter Anvin 
-  * Handle "LOCK as REX.R" for MOV CRx; fix warning for invalid 64-bit regs
-Mon Apr 16 18:16:46 2007 +0000 Keith Kanios 
-  * MEM_OFFSET Instructions Fixed.
-Mon Apr 16 15:46:46 2007 +0000 Keith Kanios 
-  * Fixed 64-bit Mode Segment Selection.
-Mon Apr 16 14:31:54 2007 +0000 Keith Kanios 
-  * Fixed distinction between [LOCAL]SYMBOL/IMMEDIATE for RIP-relative addressing.
-Mon Apr 16 14:05:01 2007 +0000 Keith Kanios 
-  * Fixed long mode MEM_OFFS issue.
-Mon Apr 16 13:54:49 2007 +0000 Keith Kanios 
-  * Filled in all RIP Register Flags.
-Mon Apr 16 05:26:29 2007 +0000 H. Peter Anvin 
-  * More \321 -> \324 for 64-bit instructions
-Mon Apr 16 04:56:06 2007 +0000 Keith Kanios 
-  * Fixed 64-bit offset generation.
-Mon Apr 16 02:39:56 2007 +0000 H. Peter Anvin 
-  * More 64-bit ndisasm fixes.
-Mon Apr 16 02:02:06 2007 +0000 H. Peter Anvin 
-  * Fixes for 64-bit ndisasm.
-Mon Apr 16 01:21:29 2007 +0000 H. Peter Anvin 
-  * Use + instead of * for extension; it feels cleaner with the new meaning.
-Mon Apr 16 01:18:30 2007 +0000 H. Peter Anvin 
-  * Initial 64-bit support for ndisasm.  Still a work in progress.
-Sun Apr 15 23:12:17 2007 +0000 H. Peter Anvin 
-  * Clean up the 64-bitification of regs.dat for 64-bit ndisasm support
-Sun Apr 15 23:10:26 2007 +0000 H. Peter Anvin 
-  * Remove @GCCFLAGS@
-Sun Apr 15 23:09:23 2007 +0000 H. Peter Anvin 
-  * CR8 is not special in any way as far as the assembler is concerned.
-Sun Apr 15 23:03:28 2007 +0000 H. Peter Anvin 
-  * Get rid of @GCCFLAGS@
-Sun Apr 15 22:45:25 2007 +0000 H. Peter Anvin 
-  * Cleaner way to add gcc options
-Sun Apr 15 22:08:30 2007 +0000 Keith Kanios 
-  * Fixed distinction between RIP relative symbols and immediate values.
-Sun Apr 15 05:40:43 2007 +0000 H. Peter Anvin 
-  * Fix the register number for CR7 (it was using the same number as CR15).
-Sun Apr 15 05:32:18 2007 +0000 H. Peter Anvin 
-  * More perl-like idioms for generating regdis.c
-Sun Apr 15 01:37:13 2007 +0000 Keith Kanios 
-  * Fixed regdis.c generation.
-Sat Apr 14 18:54:52 2007 +0000 Keith Kanios 
-  * Added DQ constants for all BITS modes.
-Sat Apr 14 08:03:02 2007 +0000 H. Peter Anvin 
-  * outmacho.c: stylistic cleanups
-Sat Apr 14 03:52:05 2007 +0000 Keith Kanios 
-  * Fixed support for DQ constants in long mode.
-Sat Apr 14 03:44:31 2007 +0000 Keith Kanios 
-  * Hopefully it is actually fixed this time :P
-Sat Apr 14 01:49:07 2007 +0000 Keith Kanios 
-  * Fixed structure initialization issue.
-Sat Apr 14 01:44:35 2007 +0000 Keith Kanios 
-  * Refixed uninitialized data.
-Sat Apr 14 01:40:24 2007 +0000 Keith Kanios 
-  * Fixed uninitialized structure data.
-Sat Apr 14 01:24:14 2007 +0000 Keith Kanios 
-  * c99 printf/fprintf compliance.
-Sat Apr 14 00:46:25 2007 +0000 Keith Kanios 
-  * Placated unreferenced types.
-Sat Apr 14 00:10:59 2007 +0000 Keith Kanios 
-  * c99 printf/fprintf compliance.
-Fri Apr 13 23:09:18 2007 +0000 Keith Kanios 
-  * Added outmacho.* to static makefile.
-Fri Apr 13 22:24:46 2007 +0000 Keith Kanios 
-  * Fixed REGRIP -> RIPREG to match regs.dat.
-Fri Apr 13 22:07:53 2007 +0000 Keith Kanios 
-  * Fixed obj_fwrite() declaration to match "static" definition.
-Fri Apr 13 22:03:24 2007 +0000 Keith Kanios 
-  * Added appropriate "void" prototypes.
-Fri Apr 13 22:00:42 2007 +0000 Keith Kanios 
-  * Replaced str(n)casecmp with more standard str(n)icmp.
-Fri Apr 13 20:06:41 2007 +0000 H. Peter Anvin 
-  * AIf we have config.h, we should actually include it!!
-Fri Apr 13 19:59:20 2007 +0000 H. Peter Anvin 
-  * When compiling with gcc, compile with -W -Wall for maximum warnings.
-Fri Apr 13 19:58:42 2007 +0000 H. Peter Anvin 
-  * Macroize any compiler-specific code; macros defined in "compiler.h"
-Fri Apr 13 16:47:53 2007 +0000 Keith Kanios 
-  * Fixed distinction between char and int8_t data types.
-Fri Apr 13 01:17:45 2007 +0000 Keith Kanios 
-  * Comment "REX.I" should have been "REX.X"
-Fri Apr 13 00:52:54 2007 +0000 Keith Kanios 
-  * Fixed c99 data-types after removal of typedefs.
-Fri Apr 13 00:43:50 2007 +0000 Keith Kanios 
-  * Added Dev-Cpp Makefile
-Fri Apr 13 00:38:29 2007 +0000 Keith Kanios 
-  * *** empty log message ***
-Thu Apr 12 17:58:02 2007 +0000 H. Peter Anvin 
-  * Remove redundant inclusion of <inttypes.h>
-Thu Apr 12 16:54:50 2007 +0000 H. Peter Anvin 
-  * Remove obsolete types; add <inttypes.h> where needed; header fixes
-Thu Apr 12 16:25:58 2007 +0000 H. Peter Anvin 
-  * autogen.sh script to create configure, et al.
-Thu Apr 12 16:23:11 2007 +0000 Keith Kanios 
-  * Fixed c99 support for RDOFF Tools
-Thu Apr 12 16:12:09 2007 +0000 H. Peter Anvin 
-  * outmacho.c: Don't assume __builtin_ctzl exists for gcc < 4
-
-Mon Nov 12 22:05:31 2007 -0800 H. Peter Anvin 
-  * BR 1828866: fix handling of LAR/LSL
-Mon Nov 12 21:57:00 2007 -0800 H. Peter Anvin 
-  * Better (but not *good!*) handling of 64-bit addressing in ndisasm
-Mon Nov 12 21:02:33 2007 -0800 H. Peter Anvin 
-  * Fix disassembly of XCHG
-Mon Nov 12 20:18:33 2007 -0800 H. Peter Anvin 
-  * Test of XCHG
-Mon Nov 12 20:18:05 2007 -0800 H. Peter Anvin 
-  * Fix handling of XCHG in 64-bit mode
-Mon Nov 12 19:36:13 2007 -0800 H. Peter Anvin 
-  * More \321 -> \324 bug fixes
-Mon Nov 12 18:26:31 2007 -0800 H. Peter Anvin 
-  * float.c: all warnings and errors are pass 1 only
-Sat Nov 10 21:55:19 2007 -0800 Charles Crayne 
-  * Update documentation for stack relative directives.
-Sat Nov 10 17:52:23 2007 -0800 Charles Crayne 
-  * Clean up a few more 32-bit bottlenecks
-Fri Nov 9 16:37:41 2007 -0800 Charles Crayne 
-  * Update documantation for stack relative directives
-Fri Nov 9 16:33:54 2007 -0800 Charles Crayne 
-  * Merge branch 'master' of /home/chuck/development/gitnasm/
-Fri Nov 9 16:25:43 2007 -0800 Charles Crayne 
-  * Update documentation for stack relative directives
-Fri Nov 9 14:44:02 2007 -0800 H. Peter Anvin 
-  * Don't combine type and size into a single argument
-Thu Nov 8 22:11:14 2007 -0800 Charles Crayne 
-  * Add flat64 to %stacksize choices
-Thu Nov 8 20:43:22 2007 -0800 H. Peter Anvin 
-  * Fix building under OpenWatcom
-Thu Nov 8 20:29:37 2007 -0800 H. Peter Anvin 
-  * ps2pdf: remove -dOptimize=true
-Thu Nov 8 20:21:41 2007 -0800 H. Peter Anvin 
-  * No binary files left in the source distro; unbreak release script
-Thu Nov 8 20:01:11 2007 -0800 H. Peter Anvin 
-  * BR 1828103: Fix %arg and %local
-Thu Nov 8 19:34:01 2007 -0800 H. Peter Anvin 
-  * nasmlib.c: prefix_name(): use the elements() macro
-Thu Nov 8 19:30:22 2007 -0800 H. Peter Anvin 
-  * Move elements() to nasmlib.h
-Thu Nov 8 19:15:33 2007 -0800 H. Peter Anvin 
-  * constipate the "str" argument to bsi() and bsii()
-Wed Nov 7 19:03:46 2007 -0800 Charles Crayne 
-  * Upgrade RAA functions to hold 64-bit data.
-Tue Nov 6 21:48:12 2007 -0800 Charles Crayne 
-  * Pass 64-bit instruction lengths to back-ends.
-Tue Nov 6 18:27:23 2007 -0800 Charles Crayne 
-  * Prepare for 64-bit instruction lengths
-Mon Nov 5 21:49:49 2007 -0800 Charles Crayne 
-  * Disambiguate error messages
-Mon Nov 5 17:19:32 2007 -0800 Charles Crayne 
-  * Upgrade label functions to 64-bit
-Sun Nov 4 21:10:42 2007 -0800 H. Peter Anvin 
-  * Permit opcode names as labels as long as they are followed by a colon
-Sun Nov 4 15:28:30 2007 -0800 Charles Crayne 
-  * Make warning limit valid for both i386 and x86_64
-Sat Nov 3 22:06:13 2007 -0700 Charles Crayne 
-  * Warn on out of bounds EA displacements
-Thu Nov 1 15:08:27 2007 -0700 H. Peter Anvin 
-  * Treat info files as binary when creating xdoc distro file
-Thu Nov 1 15:07:42 2007 -0700 H. Peter Anvin 
-  * Remove obsolete binary files from the distribution
-Thu Nov 1 14:53:32 2007 -0700 H. Peter Anvin 
-  * Move declarations before statements
-Wed Oct 31 23:37:35 2007 -0700 H. Peter Anvin 
-  * NASM 0.99.06
-Wed Oct 31 23:37:19 2007 -0700 H. Peter Anvin 
-  * Script to tag the tree for release
-Wed Oct 31 10:59:26 2007 -0700 H. Peter Anvin 
-  * Even more "riprel" tests
-Tue Oct 30 01:17:57 2007 -0700 H. Peter Anvin 
-  * floatx.asm: add tests for "rounds up to smallest denorm"
-Tue Oct 30 01:13:27 2007 -0700 H. Peter Anvin 
-  * Run "make alldeps"
-Tue Oct 30 01:13:09 2007 -0700 H. Peter Anvin 
-  * float.c: handle round-up-to-denorm correctly.
-Tue Oct 30 00:59:27 2007 -0700 H. Peter Anvin 
-  * Exhaustive test for 8-bit floating point values
-Mon Oct 29 23:12:47 2007 -0700 H. Peter Anvin 
-  * Clean up the handing of operands in assemble.c
-Mon Oct 29 22:56:08 2007 -0700 H. Peter Anvin 
-  * Don't warn for segmented references
-Mon Oct 29 20:20:12 2007 -0700 H. Peter Anvin 
-  * Use a 32-bit floating-point limb size; support 8-bit float
-Mon Oct 29 18:24:59 2007 -0700 Charles Crayne 
-  * Reduce severity of redundant prefixes from error to warning.
-Sun Oct 28 23:23:24 2007 -0700 H. Peter Anvin 
-  * Test of some addressing modes in 64-bit mode.
-Sun Oct 28 23:21:46 2007 -0700 H. Peter Anvin 
-  * Fix bogus flagging of effective addresses as invalid
-Sun Oct 28 23:10:34 2007 -0700 H. Peter Anvin 
-  * Actually shut up the warning in rdfload.c
-Sun Oct 28 22:04:42 2007 -0700 H. Peter Anvin 
-  * Clean up stealth whitespace
-Sun Oct 28 22:04:00 2007 -0700 H. Peter Anvin 
-  * Fix warning about cast to pointer in rdfload.c
-Sun Oct 28 22:04:00 2007 -0700 H. Peter Anvin 
-  * 64-bit addressing and prefix handling changes
-Sun Oct 28 15:29:54 2007 -0700 Charles Crayne 
-  * Adjust stabs symbol index to match symbol table.
-Fri Oct 26 21:38:02 2007 -0700 H. Peter Anvin 
-  * readnum(): handle prefix-suffix collision like "0h"
-Fri Oct 26 18:49:29 2007 -0700 H. Peter Anvin 
-  * Better handling of platforms which hide "extended" functionality
-Wed Oct 24 15:51:40 2007 -0700 Charles Crayne 
-  * Merge branch 'master' of /home/chuck/development/gitnasm/
-Wed Oct 24 15:30:17 2007 -0700 Charles Crayne 
-  * Update sections about debug info formats
-Wed Oct 24 15:29:51 2007 -0700 H. Peter Anvin 
-  * Fix the handling of floating-point tokens in the preprocessor
-Tue Oct 23 19:28:39 2007 -0700 Charles Crayne 
-  * Fix bugs item #1817677
-Tue Oct 23 00:08:58 2007 -0700 H. Peter Anvin 
-  * Slightly simplify the radix-detection code
-Mon Oct 22 19:48:06 2007 -0700 H. Peter Anvin 
-  * Unbreak particularly tricky hex constants
-Mon Oct 22 19:37:36 2007 -0700 H. Peter Anvin 
-  * Decimal floating point can also start with 0. 0e 0E
-Mon Oct 22 17:34:10 2007 -0700 H. Peter Anvin 
-  * Support binary and octal floating-point
-Mon Oct 22 16:53:48 2007 -0700 H. Peter Anvin 
-  * More consistent handling of radix letters
-Sun Oct 21 15:33:01 2007 -0700 H. Peter Anvin 
-  * float.c: correct exponent capping
-Sun Oct 21 14:21:43 2007 -0700 Charles Crayne 
-  * Clean up elf symbol table section
-Fri Oct 19 18:33:57 2007 -0700 H. Peter Anvin 
-  * Allow $-prefixed hexadecimal FP as an alternative to 0x
-Fri Oct 19 14:43:22 2007 -0700 H. Peter Anvin 
-  * Scripts to remove stealth whitespace
-Fri Oct 19 14:42:29 2007 -0700 H. Peter Anvin 
-  * Formatting: kill off "stealth whitespace"
-Fri Oct 19 14:26:52 2007 -0700 H. Peter Anvin 
-  * test/floatx.asm: fix test case
-Fri Oct 19 14:19:52 2007 -0700 H. Peter Anvin 
-  * uscore.asm: Fix test case
-Fri Oct 19 14:17:51 2007 -0700 H. Peter Anvin 
-  * float.c: mark read_exponent() static
-Fri Oct 19 14:10:35 2007 -0700 H. Peter Anvin 
-  * Don't confuse suffixed hexadecimal with floating-point
-Fri Oct 19 13:17:24 2007 -0700 H. Peter Anvin 
-  * Anchor filename locations in .gitignore
-Fri Oct 19 13:16:51 2007 -0700 H. Peter Anvin 
-  * test/Makefile: Use -Ox instead of -O999
-Fri Oct 19 13:14:06 2007 -0700 H. Peter Anvin 
-  * Test of underscored constants
-Fri Oct 19 13:10:46 2007 -0700 H. Peter Anvin 
-  * Allow underscores in numbers; better detection of FP
-Fri Oct 19 10:52:31 2007 -0700 H. Peter Anvin 
-  * Modernize nasm.spec.in and make it closer to the Fedora version
-Thu Oct 18 23:33:06 2007 -0700 Charles Crayne 
-  * Suppress datarootdir warnings from configure
-Thu Oct 18 21:17:20 2007 -0700 Charles Crayne 
-  * Suppress signedness warnings in disassembler
-Thu Oct 18 19:14:08 2007 -0700 H. Peter Anvin 
-  * Cleaner solution for MinGW handling of __STRICT_ANSI__
-Thu Oct 18 19:14:08 2007 -0700 H. Peter Anvin 
-  * configure: Undefine __STRICT_ANSI__ for mingw's benefit
-Thu Oct 18 19:14:07 2007 -0700 H. Peter Anvin 
-  * Fix invocation of readnum()
-Thu Oct 18 19:02:42 2007 -0700 Charles Crayne 
-  * Suppress a few signedness warnings
-Thu Oct 18 17:04:10 2007 -0700 root 
-  * Avoid unnecessary warning on redefinition of section (bug 801180)
-Wed Oct 17 17:55:45 2007 -0700 Charles Crayne 
-  * Generate stabs entries for any executable section
-Tue Oct 16 22:59:09 2007 -0700 H. Peter Anvin 
-  * NASM 0.99.05
-Tue Oct 16 15:46:04 2007 -0700 H. Peter Anvin 
-  * Tests of obscenely large exponents
-Tue Oct 16 14:42:32 2007 -0700 H. Peter Anvin 
-  * Comma-separate contents of __FLOAT__
-Tue Oct 16 14:40:27 2007 -0700 H. Peter Anvin 
-  * Implement floating-point option control directive
-Tue Oct 16 11:48:07 2007 -0700 H. Peter Anvin 
-  * Floating-point warning fixes; fix round-to-overflow
-Tue Oct 16 11:32:58 2007 -0700 H. Peter Anvin 
-  * Handle rounding of denorms correctly; make fp overflow a warning
-Tue Oct 16 10:35:02 2007 -0700 H. Peter Anvin 
-  * Additional entries for .gitignore
-Tue Oct 16 10:32:57 2007 -0700 H. Peter Anvin 
-  * Refactor floating-point formatting code; fix 80-bit denorms
-Tue Oct 16 10:31:16 2007 -0700 H. Peter Anvin 
-  * Add 1.5 as a test case: representative of an exact fraction
-Mon Oct 15 20:06:06 2007 -0700 H. Peter Anvin 
-  * Recognize 'd', 't' and 'y' as radix suffixes
-Mon Oct 15 19:53:10 2007 -0700 H. Peter Anvin 
-  * Fix FISTTP opcodes (BR 689695)
-Mon Oct 15 19:46:32 2007 -0700 H. Peter Anvin 
-  * New floating-point conversion routines
-Mon Oct 15 17:48:43 2007 -0700 H. Peter Anvin 
-  * Add testnos3 from the gdtoa package (floating-point test)
-Sat Oct 13 23:19:21 2007 -0700 H. Peter Anvin 
-  * .gitignore file doesn't need to be in the release file
-Sat Oct 13 23:17:41 2007 -0700 H. Peter Anvin 
-  * Add .gitignore file so "git status" produces something sane
-Sat Oct 13 23:12:46 2007 -0700 H. Peter Anvin 
-  * autoconf: drop AC_USE_SYSTEM_EXTENSIONS to support autoconf 2.59
-Sat Oct 13 07:09:22 2007 -0700 Keith Kanios 
-  * Fix 32-bit types in preproc.c and eval.c
-Thu Oct 11 20:32:33 2007 -0700 Charles Crayne 
-  * Must define types before using them
-Thu Oct 11 13:42:09 2007 -0700 H. Peter Anvin 
-  * preproc.c: move smacro define/undef to separate functions
-Thu Oct 11 13:38:38 2007 -0700 H. Peter Anvin 
-  * preproc.c: PP_DEFINE and PP_XDEFINE are case-sensitive
-Thu Oct 11 12:52:03 2007 -0700 H. Peter Anvin 
-  * preproc.c: normalize the handling of case sensitivity
-Thu Oct 11 12:51:06 2007 -0700 H. Peter Anvin 
-  * Define macros necessary for <inttypes.h> on C++
-Thu Oct 11 10:12:58 2007 -0700 H. Peter Anvin 
-  * More "bool" fixes
-Thu Oct 11 10:11:57 2007 -0700 H. Peter Anvin 
-  * preproc.c: allow 64-bit repeat counts
-Thu Oct 11 10:06:19 2007 -0700 H. Peter Anvin 
-  * preproc.c: For an SMacro, in_progress really is a boolean (no %rep)
-Thu Oct 11 00:05:57 2007 -0700 H. Peter Anvin 
-  * Additional uses of bool and enum
-Thu Oct 11 00:05:57 2007 -0700 H. Peter Anvin 
-  * preproc.c: MMacro.in_progress is not a boolean
-Wed Oct 10 18:07:51 2007 -0700 H. Peter Anvin 
-  * saa_fread/fwrite: when seeking, must set [rw]ptr as well
-Wed Oct 10 14:58:45 2007 -0700 H. Peter Anvin 
-  * Use the compiler-provided booleans if available, otherwise emulate
-Wed Oct 10 14:55:14 2007 -0700 H. Peter Anvin 
-  * owlinux.mak: don't clean things we won't be able to
-Wed Oct 10 14:29:53 2007 -0700 H. Peter Anvin 
-  * configure.in: looks like we need autoconf 2.61 :(
-Wed Oct 10 14:06:59 2007 -0700 H. Peter Anvin 
-  * Create option -Ox to tell NASM to do unlimited passes
-Mon Oct 8 19:26:57 2007 -0700 H. Peter Anvin 
-  * Revert "floatb.asm: fix broken testcase"
-Mon Oct 8 18:39:24 2007 -0700 H. Peter Anvin 
-  * floatb.asm: fix broken testcase
-Mon Oct 8 12:41:00 2007 -0700 H. Peter Anvin 
-  * saa_rstruct: fix overrun check
-Mon Oct 8 12:12:23 2007 -0700 H. Peter Anvin 
-  * Add Frank's floattest.asm test file
-Sun Oct 7 21:13:14 2007 -0700 H. Peter Anvin 
-  * saa_fpwrite: initializing "len" should be part of the loop
-Sun Oct 7 18:46:57 2007 -0700 Charles Crayne 
-  * Fix infinite loop in function saa_fpwrite
-Fri Oct 5 17:44:16 2007 -0700 H. Peter Anvin 
-  * zerobyte.asm: use a real instruction to avoid confusing ndisasm
-Fri Oct 5 17:42:31 2007 -0700 H. Peter Anvin 
-  * zerobyte.asm: add test cases for non-initial \170 uses
-Fri Oct 5 17:29:01 2007 -0700 H. Peter Anvin 
-  * Check in the proper zerobyte test
-Fri Oct 5 17:04:32 2007 -0700 H. Peter Anvin 
-  * Emit REX prefix before literal zero (\170)
-Fri Oct 5 17:01:15 2007 -0700 H. Peter Anvin 
-  * LICENSE: Break long line
-Fri Oct 5 14:36:03 2007 -0700 H. Peter Anvin 
-  * Add test for problematic floats
-Thu Oct 4 23:51:08 2007 -0700 H. Peter Anvin 
-  * floatx.asm: add Inf and NaN to the boundary condition tests
-Thu Oct 4 23:09:19 2007 -0700 H. Peter Anvin 
-  * floatx.asm: add specific tests for exponent boundary conditions
-Thu Oct 4 22:51:08 2007 -0700 H. Peter Anvin 
-  * float.c: correct the exponent
-Thu Oct 4 15:18:23 2007 -0700 H. Peter Anvin 
-  * Additional rules in test/Makefile
-Thu Oct 4 13:42:56 2007 -0700 H. Peter Anvin 
-  * Rewrite the handling of SAA's to allow random access
-Wed Oct 3 21:30:57 2007 -0700 H. Peter Anvin 
-  * Change cloc_t to struct location, and reorder the members
-Wed Oct 3 21:24:51 2007 -0700 H. Peter Anvin 
-  * BR 1352920: change loc_t -> cloc_t
-Wed Oct 3 21:22:16 2007 -0700 H. Peter Anvin 
-  * BR 1352920: Handle upper case %line
-Wed Oct 3 17:40:12 2007 -0700 H. Peter Anvin 
-  * Use autoconf to request feature macros
-Tue Oct 2 22:04:15 2007 -0700 H. Peter Anvin 
-  * preproc.c: constipation
-Tue Oct 2 21:57:27 2007 -0700 H. Peter Anvin 
-  * make alldeps
-Tue Oct 2 21:53:51 2007 -0700 H. Peter Anvin 
-  * Portability fixes
-Tue Oct 2 21:13:18 2007 -0700 H. Peter Anvin 
-  * Run "make alldeps".
-Tue Oct 2 17:40:00 2007 -0700 H. Peter Anvin 
-  * Use the crc64 we already use as the perfect hash function prehash
-Tue Oct 2 15:09:33 2007 -0700 H. Peter Anvin 
-  * insns.dat: add systematic names for the hinting NOPs (0F18-0F1F)
-Mon Oct 1 11:28:32 2007 -0700 H. Peter Anvin 
-  * Unspecified files are null strings, not null pointers
-Mon Oct 1 11:26:31 2007 -0700 H. Peter Anvin 
-  * Check for the most basic filename overlaps
-Sun Sep 30 22:15:36 2007 -0700 Charles Crayne 
-  * modified:   nasm.1 to add newer command line options
-Fri Sep 28 21:27:41 2007 -0700 Charles Crayne 
-  * Merge branch 'master' of git+ssh://ccrayne@repo.or.cz/srv/git/nasm
-Fri Sep 28 20:17:12 2007 -0700 H. Peter Anvin 
-  * configure.in: AC_SUBST_FILE should have been AC_SUBST
-Fri Sep 28 17:17:20 2007 -0700 H. Peter Anvin 
-  * Unbreak relative references to immediate addresses
-Fri Sep 28 15:16:47 2007 -0700 Charles Crayne 
-  * Merge branch 'master' of git+ssh://ccrayne@repo.or.cz/srv/git/nasm
-Fri Sep 28 12:01:55 2007 -0700 H. Peter Anvin 
-  * lib/vsnprintf.c: correct boundary conditions
-Fri Sep 28 10:50:20 2007 -0700 H. Peter Anvin 
-  * Add substitutes for snprintf() and vsnprintf()
-Fri Sep 28 02:03:41 2007 -0400 Frank Kotler 
-  * Merge branch 'master' of git+ssh://fbkotler@repo.or.cz/srv/git/nasm
-Thu Sep 27 21:35:04 2007 -0700 H. Peter Anvin 
-  * Exclude config.h from the dependency list for the canned makefiles
-Thu Sep 27 21:12:17 2007 -0700 H. Peter Anvin 
-  * version.pl: Add support for daily snapshot releases
-Thu Sep 27 19:46:55 2007 -0700 H. Peter Anvin 
-  * Add Makefile for Linux -> DOS, Win32, OS/2 using OpenWatcom
-Wed Sep 26 19:57:07 2007 -0700 H. Peter Anvin 
-  * Add Makefile for OpenWatcom (DOS, OS/2 or Win32 output)
-Wed Sep 26 17:00:18 2007 -0700 H. Peter Anvin 
-  * Test for various addressing modes in 64-bit mode
-Wed Sep 26 15:19:28 2007 -0700 H. Peter Anvin 
-  * nasm option reshuffling, -E -> -Z
-Tue Sep 25 23:57:21 2007 -0400 Frank Kotler 
-  * Version 0.99.04
-Tue Sep 25 20:36:45 2007 -0700 H. Peter Anvin 
-  * nasmdoc: corrections on 64-bit immediates/displacements
-Tue Sep 25 16:02:21 2007 -0700 H. Peter Anvin 
-  * nasmdoc: shorten lines which are too long
-Tue Sep 25 16:01:07 2007 -0700 H. Peter Anvin 
-  * Document NASM behaviour for 64-bit immediates and displacements
-Tue Sep 25 15:44:40 2007 -0700 H. Peter Anvin 
-  * test/movimm.asm: add optimizable forms
-Tue Sep 25 15:41:19 2007 -0700 H. Peter Anvin 
-  * assemble.c: clean up whitespace
-Tue Sep 25 15:40:36 2007 -0700 H. Peter Anvin 
-  * Correct the handling of "MOV" with immediate in 64-bit mode
-Tue Sep 25 15:39:42 2007 -0700 H. Peter Anvin 
-  * Test of immediate handling on 64-bit mode
-Tue Sep 25 14:27:34 2007 -0700 H. Peter Anvin 
-  * Add nasm_zalloc() to nasmlib.c
-Tue Sep 25 14:26:03 2007 -0700 H. Peter Anvin 
-  * Fix BR 1490407: size of the second operand of LAR/LSL
-Tue Sep 25 14:11:29 2007 -0700 H. Peter Anvin 
-  * Fix BR 1490407: size of the second operand of LAR/LSL
-Tue Sep 25 13:34:55 2007 -0700 H. Peter Anvin 
-  * Makefile.in: make "make install" create directories
-Tue Sep 25 08:48:37 2007 -0700 H. Peter Anvin 
-  * Fix BR 1445441: uninitialized use of "error_file"
-Mon Sep 24 21:33:17 2007 -0700 H. Peter Anvin 
-  * preproc.c: fix the loop in %undef
-Mon Sep 24 20:53:48 2007 -0700 H. Peter Anvin 
-  * float.c: clear off uninitialized warning
-Mon Sep 24 17:02:41 2007 -0700 H. Peter Anvin 
-  * outcoff: set the "virtual size field" to zero (BR 1351586)
-Mon Sep 24 15:56:02 2007 -0700 H. Peter Anvin 
-  * insns.dat: SMINT - mark ND, DMINT - fix opcode
-Mon Sep 24 15:55:20 2007 -0700 H. Peter Anvin 
-  * 0F0F is a 3Dnow! prefix; remove from prefix list
-Mon Sep 24 15:48:09 2007 -0700 H. Peter Anvin 
-  * Additional compaction missed by script
-Mon Sep 24 15:42:53 2007 -0700 H. Peter Anvin 
-  * insns.dat: machine-generated compaction mmx/xmmreg,mem -> mmx/xmmrm
-Mon Sep 24 13:54:00 2007 -0700 H. Peter Anvin 
-  * nasmdoc: grammar fix
-Mon Sep 24 13:44:02 2007 -0700 H. Peter Anvin 
-  * nasmdoc: remove stray periods
-Mon Sep 24 13:42:09 2007 -0700 H. Peter Anvin 
-  * test/Makefile: make a bit more useful
-Mon Sep 24 13:41:58 2007 -0700 H. Peter Anvin 
-  * Implement the -MG option (SF RFE 1564264)
-Mon Sep 24 12:52:09 2007 -0700 H. Peter Anvin 
-  * nasmdoc: clarify __float*__ example
-Mon Sep 24 12:44:38 2007 -0700 H. Peter Anvin 
-  * nasmdoc: document the __float*__ operators
-Mon Sep 24 12:30:54 2007 -0700 H. Peter Anvin 
-  * Support __float*__ for floating-point numbers in expressions
-Mon Sep 24 10:51:07 2007 -0700 H. Peter Anvin 
-  * eval.c: replace sequence of ifs with switch
-Mon Sep 24 10:50:23 2007 -0700 H. Peter Anvin 
-  * tokhash: allow a bit smarter pattern matching
-Sat Sep 22 22:35:28 2007 -0700 H. Peter Anvin 
-  * Implement INVLPGA according to the documentation
-Sat Sep 22 22:02:34 2007 -0700 H. Peter Anvin 
-  * Reformat insns.dat to uniform column width
-Sat Sep 22 21:50:03 2007 -0700 H. Peter Anvin 
-  * Simple test for 0x67 prefixes
-Sat Sep 22 21:49:51 2007 -0700 H. Peter Anvin 
-  * Auto-generate 0x67 prefixes without the need for \30x codes
-Sat Sep 22 21:47:13 2007 -0700 H. Peter Anvin 
-  * Make test/Makefile a bit more useful
-Sat Sep 22 21:29:41 2007 -0700 H. Peter Anvin 
-  * Add TY_OWORD for "DO" output
-Sat Sep 22 19:52:11 2007 -0700 H. Peter Anvin 
-  * LDDQU needs \301 (BR 1103549)
-Sat Sep 22 19:51:13 2007 -0700 H. Peter Anvin 
-  * RDTSCP and INVLPGA aren't 64-bit specific
-Sat Sep 22 19:40:37 2007 -0700 H. Peter Anvin 
-  * Cyrix GX1 instructions: BBx_RESET, CPU_READ, CPU_WRITE
-Sat Sep 22 19:28:14 2007 -0700 H. Peter Anvin 
-  * Centaur XSHA1, XSHA256, MONTMUL
-Sat Sep 22 19:20:56 2007 -0700 H. Peter Anvin 
-  * Implement Centaur's XCRYPT instructions
-Sat Sep 22 19:13:05 2007 -0700 H. Peter Anvin 
-  * Add Geode LX (AMD's Cyrix-derived core) instructions
-Sat Sep 22 19:05:11 2007 -0700 H. Peter Anvin 
-  * Add the GETSEC instruction for Intel SMX
-Sat Sep 22 18:59:18 2007 -0700 H. Peter Anvin 
-  * Add the AMD SSE4a and LZCNT instructions
-Sat Sep 22 18:23:20 2007 -0700 H. Peter Anvin 
-  * Tag UMOV as ND (no disassembly) to avoid collision
-Sat Sep 22 18:20:49 2007 -0700 H. Peter Anvin 
-  * Disallow optimizing by less than 5 passes.
-Sat Sep 22 17:45:45 2007 -0700 H. Peter Anvin 
-  * BR 1783117: Document that %+ needs a space after it, and fix crash
-Sat Sep 22 16:44:56 2007 -0700 H. Peter Anvin 
-  * nasm.spec.in: minor fixes
-Sat Sep 22 16:38:25 2007 -0700 H. Peter Anvin 
-  * release script: handle stricter CLI parsing for "git tag"
-Sat Sep 22 16:35:11 2007 -0700 H. Peter Anvin 
-  * Update nasm.spec.in and make it handle rc releases
-Sat Sep 22 16:19:19 2007 -0700 H. Peter Anvin 
-  * version.pl: support version numbers of the form X.Y[.Z]rcW
-Thu Sep 20 21:33:43 2007 -0700 Charles Crayne 
-  * Merge branch 'master' of git+ssh://ccrayne@repo.or.cz/srv/git/nasm
-Thu Sep 20 21:12:33 2007 -0700 Charles Crayne 
-  * 	modified:   misc/release to fix bug in removing .git
-Wed Sep 19 21:41:43 2007 -0700 H. Peter Anvin 
-  * Merge branch 'master' of git+ssh://repo.or.cz/srv/git/nasm
-Wed Sep 19 21:41:27 2007 -0700 H. Peter Anvin 
-  * Update manual pages
-Wed Sep 19 21:41:02 2007 -0700 H. Peter Anvin 
-  * Remove limit on number of sync points
-Wed Sep 19 21:40:37 2007 -0700 H. Peter Anvin 
-  * Make nasm_malloc() et al available from inside ndisasm
-Wed Sep 19 21:07:32 2007 -0400 Frank Kotler 
-  * Version 0.99.03
-Wed Sep 19 21:06:59 2007 -0400 Frank Kotler 
-  * Merge branch 'master' of git+ssh://fbkotler@repo.or.cz/srv/git/nasm
-Wed Sep 19 16:22:03 2007 -0700 H. Peter Anvin 
-  * Merge commit 'origin/sse5'
-Wed Sep 19 16:15:22 2007 -0700 H. Peter Anvin 
-  * test/Makefile: make a bit more useful
-Tue Sep 18 22:54:40 2007 -0700 H. Peter Anvin 
-  * Slightly optimize the interface to nasm_token_hash()
-Wed Sep 19 01:34:55 2007 -0400 Frank Kotler 
-  * Merge branch 'master' of git+ssh://fbkotler@repo.or.cz/srv/git/nasm
-Tue Sep 18 22:23:42 2007 -0700 H. Peter Anvin 
-  * Merge commit 'origin/master' into sse5
-Tue Sep 18 22:22:49 2007 -0700 H. Peter Anvin 
-  * elf64: fix 32-bit truncations
-Tue Sep 18 22:08:04 2007 -0700 H. Peter Anvin 
-  * Document Infinity and NaN
-Tue Sep 18 21:55:56 2007 -0700 H. Peter Anvin 
-  * Support generating NaNs and infinities
-Tue Sep 18 19:12:26 2007 -0700 H. Peter Anvin 
-  * Update documentation
-Tue Sep 18 18:37:36 2007 -0700 H. Peter Anvin 
-  * Simple test for hexadecimal floating-point numbers
-Tue Sep 18 18:33:17 2007 -0700 H. Peter Anvin 
-  * Fix error-reporting in hexadecimal floating-point numbers
-Tue Sep 18 18:31:26 2007 -0700 H. Peter Anvin 
-  * Support C99-style hexadecimal floating point.
-Tue Sep 18 17:50:34 2007 -0700 H. Peter Anvin 
-  * Unify all standard IEEE floating-point formats; add 128-bit
-Tue Sep 18 17:49:09 2007 -0700 H. Peter Anvin 
-  * Fix handling of DO; support unary + for floating-point numbers
-Tue Sep 18 16:39:03 2007 -0700 H. Peter Anvin 
-  * Support 16-bit IEEE floating point; used in SSE5
-Tue Sep 18 15:43:40 2007 -0700 H. Peter Anvin 
-  * Merge commit 'origin/master' into sse5
-Tue Sep 18 15:43:08 2007 -0700 H. Peter Anvin 
-  * Add NOP with argument to the instruction list
-Tue Sep 18 15:24:38 2007 -0700 H. Peter Anvin 
-  * Remove 0FC2 from list of instruction prefixes
-Tue Sep 18 15:08:20 2007 -0700 H. Peter Anvin 
-  * Speed up the disassembler by allowing prefixed instruction tables
-Tue Sep 18 13:45:12 2007 -0700 H. Peter Anvin 
-  * Document oword, do and reso
-Tue Sep 18 13:01:32 2007 -0700 H. Peter Anvin 
-  * Implement "oword" (128 bits) as a first-class size
-Tue Sep 18 12:38:07 2007 -0700 H. Peter Anvin 
-  * Change the token prehash function for better convergence
-Tue Sep 18 12:23:21 2007 -0700 H. Peter Anvin 
-  * SSE5 instruction table
-Tue Sep 18 02:06:09 2007 -0400 Frank Kotler 
-  * add "const" to output/outdbg.c
-Mon Sep 17 18:45:44 2007 -0700 H. Peter Anvin 
-  * Disassembler support for SSE5 instructions
-Mon Sep 17 17:27:46 2007 -0700 H. Peter Anvin 
-  * insns.dat: All SSE5 instructions are AMD
-Mon Sep 17 17:25:27 2007 -0700 H. Peter Anvin 
-  * Actually generate SSE5 instructions
-Mon Sep 17 16:55:04 2007 -0700 H. Peter Anvin 
-  * Initial support for generating DREX suffixes
-Mon Sep 17 16:31:33 2007 -0700 H. Peter Anvin 
-  * Fix a few instances of missing renumbers
-Mon Sep 17 16:20:45 2007 -0700 H. Peter Anvin 
-  * Enable IF_AR3
-Mon Sep 17 15:49:53 2007 -0700 H. Peter Anvin 
-  * Merge commit 'origin/master' into sse5
-Mon Sep 17 15:49:30 2007 -0700 H. Peter Anvin 
-  * Initial support for four arguments per instruction
-Mon Sep 17 15:48:32 2007 -0700 H. Peter Anvin 
-  * CLFLUSH: Neither an x64 instruction nor AMD
-Mon Sep 17 13:56:26 2007 -0700 H. Peter Anvin 
-  * Sort dependency lists
-Mon Sep 17 13:53:14 2007 -0700 H. Peter Anvin 
-  * Cleaner way to handle MSVC's _snprintf() underscore damage
-Mon Sep 17 13:19:25 2007 -0700 H. Peter Anvin 
-  * test/r13.asm: test special-casing of rbp and r13 in 64-bit mode
-Mon Sep 17 13:03:33 2007 -0700 H. Peter Anvin 
-  * Additional documentation for 64-bit programming
-Sun Sep 16 22:27:07 2007 -0700 H. Peter Anvin 
-  * INSTALL: MSVC++ compilation instructions
-Sun Sep 16 22:17:29 2007 -0700 H. Peter Anvin 
-  * make alldeps: change Mkfiles/Makefile.* to Mkfiles/*.mak
-Sun Sep 16 22:16:24 2007 -0700 H. Peter Anvin 
-  * Fix Makefile for MSVC++ 2005, delete obsolete Makefiles
-Sun Sep 16 22:15:34 2007 -0700 H. Peter Anvin 
-  * Minor fixes needed to compile with MSVC++ 2005
-Sun Sep 16 18:35:02 2007 -0700 H. Peter Anvin 
-  * Run "make alldeps"
-Sun Sep 16 18:04:57 2007 -0700 H. Peter Anvin 
-  * Switch the preprocessor over to using the hash table library
-Sun Sep 16 17:53:17 2007 -0700 H. Peter Anvin 
-  * Fix the handling of local labels
-Fri Sep 14 18:36:01 2007 -0700 H. Peter Anvin 
-  * preproc.c: remove unnecessary int64_t
-Fri Sep 14 18:03:29 2007 -0700 H. Peter Anvin 
-  * Use the new hash table function library to store labels
-Fri Sep 14 09:24:38 2007 -0700 H. Peter Anvin 
-  * Define a proper hash table library
-Thu Sep 13 18:13:20 2007 -0700 H. Peter Anvin 
-  * Simple performance benchmarks: label, macro and token lookups
-Thu Sep 13 12:25:32 2007 -0700 H. Peter Anvin 
-  * release script: fix final cleanup
-Thu Sep 13 12:22:00 2007 -0700 H. Peter Anvin 
-  * Modify release script for a git-centric world
-Thu Sep 13 11:06:42 2007 -0700 H. Peter Anvin 
-  * pptok.c: don't insist on C99 compiler behaviour
-Wed Sep 12 22:02:06 2007 -0700 H. Peter Anvin 
-  * Fix literal F2 and F3 prefixes
-Wed Sep 12 21:58:51 2007 -0700 H. Peter Anvin 
-  * Add (untested!) SSSE3, SSE4.1, SSE4.2 instructions
-Wed Sep 12 21:06:36 2007 -0700 H. Peter Anvin 
-  * Add support for Tejas New Instructions (SSSE3)
-Wed Sep 12 21:05:06 2007 -0700 H. Peter Anvin 
-  * Remove $Id$ tags (useless with git)
-Wed Sep 12 21:04:58 2007 -0700 H. Peter Anvin 
-  * Use rm32 operands for VMREAD/VMWRITE
-Wed Sep 12 21:04:51 2007 -0700 H. Peter Anvin 
-  * Macros for SSSE3/SSE4 instruction sets
-Wed Sep 12 21:04:39 2007 -0700 H. Peter Anvin 
-  * Support r/m operands for non-integer types
-Wed Sep 12 20:27:41 2007 -0700 H. Peter Anvin 
-  * Use enumerations where practical to ease debugging
-Wed Sep 12 17:02:55 2007 +0000 H. Peter Anvin 
-  * pptok.c: quick-and-dirty downcasing during prehashing
-Wed Sep 12 16:55:57 2007 +0000 H. Peter Anvin 
-  * phash: Tell the user when the graph is OK
-Wed Sep 12 05:18:20 2007 +0000 H. Peter Anvin 
-  * pptok.c: handle holes in the pp_directives array
-Wed Sep 12 04:20:08 2007 +0000 H. Peter Anvin 
-  * preproc.c: adjust whitespace
-Wed Sep 12 04:18:37 2007 +0000 H. Peter Anvin 
-  * More automation in the preprocessor conditionals handling
-Wed Sep 12 02:13:39 2007 +0000 H. Peter Anvin 
-  * pptok.c: fix spacing
-Wed Sep 12 02:12:07 2007 +0000 H. Peter Anvin 
-  * Generate automatically correct tests for %if and %elif
-Wed Sep 12 01:34:19 2007 +0000 H. Peter Anvin 
-  * Run "make alldeps"; add dependencies missing from the previous checkin
-Wed Sep 12 01:29:43 2007 +0000 H. Peter Anvin 
-  * Use a perfect hash to look up preprocessor directives
-Wed Sep 12 01:27:53 2007 +0000 H. Peter Anvin 
-  * phash: Be a bit more aggressive about trying to make a small hash
-Wed Sep 12 00:22:29 2007 +0000 H. Peter Anvin 
-  * Add RCXZ as a known preprocessor condition
-Tue Sep 11 23:57:23 2007 +0000 H. Peter Anvin 
-  * doc: add some cross-references
-Tue Sep 11 23:52:01 2007 +0000 H. Peter Anvin 
-  * Feeble attempt at updating the documentation; remove Appendix B
-Tue Sep 11 22:44:03 2007 +0000 H. Peter Anvin 
-  * Handle instructions which can have both REX.W and OSP
-Tue Sep 11 22:14:18 2007 +0000 H. Peter Anvin 
-  * Use enums to make debugging easier
-Tue Sep 11 22:13:17 2007 +0000 H. Peter Anvin 
-  * ndisasm: handle \366 codes, prefer unprefixed instructions
-Tue Sep 11 22:00:34 2007 +0000 H. Peter Anvin 
-  * Simplify tokens.dat slightly
-Tue Sep 11 04:26:44 2007 +0000 H. Peter Anvin 
-  * Quiet gcc warning about uninitialized variables
-Tue Sep 11 04:16:57 2007 +0000 H. Peter Anvin 
-  * Make the big instruction arrays "const"
-Mon Sep 10 23:32:05 2007 +0000 H. Peter Anvin 
-  * Use an actual enum for the opcode
-Mon Sep 10 23:30:21 2007 +0000 H. Peter Anvin 
-  * Fix order of token arguments
-Mon Sep 10 18:59:26 2007 +0000 H. Peter Anvin 
-  * assemble.c: correct special handing of ESP/RSP
-Mon Sep 10 18:59:01 2007 +0000 H. Peter Anvin 
-  * tokhash: correct duplicate-token test
-Mon Sep 10 18:58:40 2007 +0000 H. Peter Anvin 
-  * tokhash: adjust table types to reduce size
-Mon Sep 10 18:55:52 2007 +0000 H. Peter Anvin 
-  * Fix the MMXREG and XMMREG flags definitions.
-Wed Sep 5 06:48:38 2007 +0000 H. Peter Anvin 
-  * nasm.spec.in: Copyright -> License
-Wed Sep 5 06:40:51 2007 +0000 H. Peter Anvin 
-  * Fix "make tar"; useful for RPM testing
-Wed Sep 5 06:24:43 2007 +0000 H. Peter Anvin 
-  * Remove obsolete Serial: construct; we shouldn't need it anyway.
-Tue Sep 4 01:29:43 2007 +0000 Chuck Crayne 
-  * Provide 64-bit support for ORG directive
-Sun Sep 2 16:37:03 2007 +0000 H. Peter Anvin 
-  * Fix some MMX/SSE irregularities which interact with the 64-bit support
-Sun Sep 2 14:46:00 2007 +0000 H. Peter Anvin 
-  * phash.ph: yet another attempt at getting Perl to behave, arithmetically
-Sun Sep 2 06:23:29 2007 +0000 H. Peter Anvin 
-  * Simple 64-bit org test
-Sun Sep 2 06:20:15 2007 +0000 H. Peter Anvin 
-  * phash.ph: remove some stale code
-Sun Sep 2 01:00:34 2007 +0000 Chuck Crayne 
-  * Force use of integer values for generating hash keys.
-Fri Aug 31 18:10:23 2007 +0000 H. Peter Anvin 
-  * phash: don't rely on the build platform Perl version of rand()
-Fri Aug 31 07:31:51 2007 +0000 H. Peter Anvin 
-  * tokhash.pl: formatting changes for readability
-Fri Aug 31 07:23:31 2007 +0000 H. Peter Anvin 
-  * tokhash: Speed up the rejection of unhashed values
-Fri Aug 31 06:06:17 2007 +0000 H. Peter Anvin 
-  * tokhash.pl: "ix" should have the same width as the "hash" arrays
-Fri Aug 31 00:28:35 2007 +0000 H. Peter Anvin 
-  * Add "do not edit" comment to tokhash.c
-Fri Aug 31 00:23:40 2007 +0000 H. Peter Anvin 
-  * Make the token hash a bit smaller by using 16-bit hash tables
-Fri Aug 31 00:16:10 2007 +0000 H. Peter Anvin 
-  * Minor cleanup; remove duplication of names.c
-Thu Aug 30 23:42:39 2007 +0000 H. Peter Anvin 
-  * phash.ph: use a bipartite graph to reduce the storage requirements
-Thu Aug 30 22:35:34 2007 +0000 H. Peter Anvin 
-  * Finishing touches on perfect hash tokenizer; actually turn the thing on
-Thu Aug 30 21:50:20 2007 +0000 H. Peter Anvin 
-  * Makefile rule for tokhash.c
-Thu Aug 30 21:47:46 2007 +0000 H. Peter Anvin 
-  * tokens.dat: Data file containing alphanumeric tokens not in other .dats
-Thu Aug 30 21:45:56 2007 +0000 H. Peter Anvin 
-  * Generate a perfect hash for the token parser
-Thu Aug 30 21:40:08 2007 +0000 H. Peter Anvin 
-  * Fix bugs in repeated suffix handling, which led to missing r8d/r8w/r8d
-Thu Aug 30 21:39:37 2007 +0000 H. Peter Anvin 
-  * phash.ph: more powerful prehashing
-Thu Aug 30 20:15:25 2007 +0000 H. Peter Anvin 
-  * Make the perfect hash generator an includable module
-Wed Aug 29 20:30:31 2007 +0000 H. Peter Anvin 
-  * Correct the logic for recording fs: and gs: overrides.
-Wed Aug 29 18:20:19 2007 +0000 H. Peter Anvin 
-  * Generate R_X86_64_64 relocations in elf64 output
-Wed Aug 29 17:24:03 2007 +0000 H. Peter Anvin 
-  * Add README file
-Wed Aug 29 17:20:09 2007 +0000 H. Peter Anvin 
-  * Create a Perl library directory, and add the Graph module to it
-Wed Aug 29 17:05:17 2007 +0000 H. Peter Anvin 
-  * Perfect hash generator, as a perl script
-Wed Aug 29 16:41:43 2007 +0000 H. Peter Anvin 
-  * Use standard macro for the default directive
-Wed Aug 29 16:40:26 2007 +0000 H. Peter Anvin 
-  * Add standard macro for [default] directive
-Wed Aug 29 16:38:47 2007 +0000 H. Peter Anvin 
-  * More test cases for rel and abs addressing
-Wed Aug 29 16:38:05 2007 +0000 H. Peter Anvin 
-  * Add [default] directive
-Wed Aug 29 16:25:46 2007 +0000 H. Peter Anvin 
-  * nasmlib: add bsii() case-insensitive version of bsi()
-Wed Aug 29 15:49:53 2007 +0000 H. Peter Anvin 
-  * Add test cases for IP-relative addressing
-Wed Aug 29 15:19:19 2007 +0000 H. Peter Anvin 
-  * Suppress IP-relative only for fs: and gs: overrides
-Tue Aug 28 23:06:00 2007 +0000 H. Peter Anvin 
-  * Implement REL/ABS modifiers
-Sun Aug 26 05:51:39 2007 +0000 Frank Kotler 
-  * attempt to make static makefiles aware of outelf32/outelf64
-Sun Aug 26 05:48:54 2007 +0000 Frank Kotler 
-  * add nasm_strsep to nasmlib, for output/outmacho.c - strtok doesn't work
-Sun Aug 26 05:41:33 2007 +0000 Frank Kotler 
-  * remove "#include <unistd.h> from rdoff directory - two places - it annoyed Windows users and seems unneeded
-Sun Aug 26 05:10:24 2007 +0000 Frank Kotler 
-  * finally commit Mike Frysinger's "elf-visibility" patch
-Mon Aug 20 21:03:14 2007 +0000 H. Peter Anvin 
-  * regs.pl: handle dashed sequences with suffixes
-Mon Aug 20 20:10:04 2007 +0000 H. Peter Anvin 
-  * sync.c: change ULONG_MAX to UINT32_MAX
-Mon Aug 20 20:09:11 2007 +0000 H. Peter Anvin 
-  * Add _MIN and _MAX macros for the fixed-size types.
-Mon Aug 20 20:02:17 2007 +0000 H. Peter Anvin 
-  * ldrdf: cast output of sizeof() before passing to printf(), to avoid warning.
-Sun Aug 19 18:49:26 2007 +0000 Keith Kanios 
-  * Fixed RIP address processing ambiguity found by Charles Crayne.
-Fri Aug 17 07:37:52 2007 +0000 Keith Kanios 
-  * Fixed issues with REX prefix effective address generation. Fixed XMM instruction output.
-Fri Aug 17 02:03:10 2007 +0000 Keith Kanios 
-  * Changed MMXREG and XMMREG flags to help resolve invalid REX prefix generation for MMX instructions.
-Sat Jul 7 02:01:08 2007 +0000 H. Peter Anvin 
-  * More int/int32_t confusion
-Sat Jul 7 01:59:52 2007 +0000 H. Peter Anvin 
-  * regflag() should return int32_t.
-Thu Jun 21 19:00:12 2007 +0000 H. Peter Anvin 
-  * Detect missing <inttypes.h> and include ersatz version if missing
-Thu Jun 21 06:24:23 2007 +0000 H. Peter Anvin 
-  * inttypes.h: for older preprocessors, specify L and LL as appropriate
-Thu Jun 21 06:20:43 2007 +0000 H. Peter Anvin 
-  * inttypes.h: Fix spelling of SHRT_MAX
-Thu Jun 21 06:15:42 2007 +0000 H. Peter Anvin 
-  * inttypes.h: do a single ersatz <inttypes.h> based on <limits.h>
-Sun Jun 3 02:42:41 2007 +0000 Chuck Crayne 
-  * Support 32-bit direct addressing in 64-bit mode without base or index regs
-Sat Jun 2 02:26:21 2007 +0000 H. Peter Anvin 
-  * Fix the [U]INT*_C() creation macros
-Sat Jun 2 00:05:35 2007 +0000 H. Peter Anvin 
-  * For platforms that don't have them, provide <inttypes.h> for common models.
-Wed May 30 22:21:11 2007 +0000 H. Peter Anvin 
-  * Fix the handling of the \313 code.
-Wed May 30 22:20:01 2007 +0000 H. Peter Anvin 
-  * Machine-generated \321->\324 corrections
-Wed May 30 21:22:33 2007 +0000 Frank Kotler 
-  * update "version" to 0.99.02
-Wed May 30 20:30:15 2007 +0000 H. Peter Anvin 
-  * Correct the generation of 67 prefixes.
-Wed May 30 18:30:18 2007 +0000 H. Peter Anvin 
-  * Update dependencies.
-Wed May 30 16:34:29 2007 +0000 Frank Kotler 
-  * update cvs server name in misc/release script
-Wed May 30 04:28:50 2007 +0000 H. Peter Anvin 
-  * Avoid magic values; we have more than 124 registers now
-Wed May 30 04:27:58 2007 +0000 H. Peter Anvin 
-  * Remove bogus redundant tests
-Wed May 30 03:44:50 2007 +0000 H. Peter Anvin 
-  * More \321 -> \324
-Wed May 30 03:44:02 2007 +0000 H. Peter Anvin 
-  * Remove bogus check for 64-bitness
-Wed May 30 03:25:21 2007 +0000 H. Peter Anvin 
-  * Get rid of magic open-coded "register numbers"
-Wed May 30 02:48:51 2007 +0000 H. Peter Anvin 
-  * MOV reg64,reg64 takes \324 (64 bit with REX) not \321 (32 bit)
-Wed May 30 00:18:26 2007 +0000 H. Peter Anvin 
-  * Rename REGNORM to REG_EA
-Wed May 30 00:15:25 2007 +0000 H. Peter Anvin 
-  * More instruction flag surgery
-Wed May 30 00:05:00 2007 +0000 H. Peter Anvin 
-  * More cleanup of operand flags/register classes
-Tue May 29 23:57:12 2007 +0000 H. Peter Anvin 
-  * Clean up the existing operand flag definitions, and document
-Tue May 29 21:44:55 2007 +0000 H. Peter Anvin 
-  * Run "make alldeps"
-Thu May 24 22:33:07 2007 +0000 Frank Kotler 
-  * update version number to 0.99.01
-Tue May 15 04:33:43 2007 +0000 H. Peter Anvin 
-  * regs.dat: fix comment
-Fri May 4 18:47:16 2007 +0000 H. Peter Anvin 
-  * 16-bit relocations are standard in ELF64 (at my request, incidentally)
-Fri May 4 02:16:08 2007 +0000 Chuck Crayne 
-  * Addition of elf32 and elf64 output formats.
-Wed May 2 04:21:26 2007 +0000 Chuck Crayne 
-  * Allow '!' to be used in expressions with same meaning as in C.
-Wed May 2 01:59:16 2007 +0000 Chuck Crayne 
-  * Add %IFN and %ELIFN as per RFE #786286
-Mon Apr 30 22:26:58 2007 +0000 Chuck Crayne 
-  * Accept responsibility for support of outelf64.c
-Sun Apr 29 20:57:53 2007 +0000 Chuck Crayne 
-  * Clarify comments about relocation entries.
-Sun Apr 29 00:28:24 2007 +0000 Chuck Crayne 
-  * Allow ELF32 to be invoked either as -f elf or -f elf32
-Sat Apr 28 22:18:04 2007 +0000 Chuck Crayne 
-  * Eliminate shift count warnings when building on 32-bit systems
-Sat Apr 28 06:18:48 2007 +0000 Chuck Crayne 
-  * Initial support for ELF64
-Wed Apr 18 02:27:18 2007 +0000 H. Peter Anvin 
-  * Fix the handling of \324 for computing the length
-Wed Apr 18 02:24:34 2007 +0000 Keith Kanios 
-  * Fixed RDF/2 to comply with "maxbits" use.
-Tue Apr 17 20:23:11 2007 +0000 H. Peter Anvin 
-  * Handle "LOCK as REX.R" for MOV CRx; fix warning for invalid 64-bit regs
-Mon Apr 16 18:16:46 2007 +0000 Keith Kanios 
-  * MEM_OFFSET Instructions Fixed.
-Mon Apr 16 15:46:46 2007 +0000 Keith Kanios 
-  * Fixed 64-bit Mode Segment Selection.
-Mon Apr 16 14:31:54 2007 +0000 Keith Kanios 
-  * Fixed distinction between [LOCAL]SYMBOL/IMMEDIATE for RIP-relative addressing.
-Mon Apr 16 14:05:01 2007 +0000 Keith Kanios 
-  * Fixed long mode MEM_OFFS issue.
-Mon Apr 16 13:54:49 2007 +0000 Keith Kanios 
-  * Filled in all RIP Register Flags.
-Mon Apr 16 05:26:29 2007 +0000 H. Peter Anvin 
-  * More \321 -> \324 for 64-bit instructions
-Mon Apr 16 04:56:06 2007 +0000 Keith Kanios 
-  * Fixed 64-bit offset generation.
-Mon Apr 16 02:39:56 2007 +0000 H. Peter Anvin 
-  * More 64-bit ndisasm fixes.
-Mon Apr 16 02:02:06 2007 +0000 H. Peter Anvin 
-  * Fixes for 64-bit ndisasm.
-Mon Apr 16 01:21:29 2007 +0000 H. Peter Anvin 
-  * Use + instead of * for extension; it feels cleaner with the new meaning.
-Mon Apr 16 01:18:30 2007 +0000 H. Peter Anvin 
-  * Initial 64-bit support for ndisasm.  Still a work in progress.
-Sun Apr 15 23:12:17 2007 +0000 H. Peter Anvin 
-  * Clean up the 64-bitification of regs.dat for 64-bit ndisasm support
-Sun Apr 15 23:10:26 2007 +0000 H. Peter Anvin 
-  * Remove @GCCFLAGS@
-Sun Apr 15 23:09:23 2007 +0000 H. Peter Anvin 
-  * CR8 is not special in any way as far as the assembler is concerned.
-Sun Apr 15 23:03:28 2007 +0000 H. Peter Anvin 
-  * Get rid of @GCCFLAGS@
-Sun Apr 15 22:45:25 2007 +0000 H. Peter Anvin 
-  * Cleaner way to add gcc options
-Sun Apr 15 22:08:30 2007 +0000 Keith Kanios 
-  * Fixed distinction between RIP relative symbols and immediate values.
-Sun Apr 15 05:40:43 2007 +0000 H. Peter Anvin 
-  * Fix the register number for CR7 (it was using the same number as CR15).
-Sun Apr 15 05:32:18 2007 +0000 H. Peter Anvin 
-  * More perl-like idioms for generating regdis.c
-Sun Apr 15 01:37:13 2007 +0000 Keith Kanios 
-  * Fixed regdis.c generation.
-Sat Apr 14 18:54:52 2007 +0000 Keith Kanios 
-  * Added DQ constants for all BITS modes.
-Sat Apr 14 08:03:02 2007 +0000 H. Peter Anvin 
-  * outmacho.c: stylistic cleanups
-Sat Apr 14 03:52:05 2007 +0000 Keith Kanios 
-  * Fixed support for DQ constants in long mode.
-Sat Apr 14 03:44:31 2007 +0000 Keith Kanios 
-  * Hopefully it is actually fixed this time :P
-Sat Apr 14 01:49:07 2007 +0000 Keith Kanios 
-  * Fixed structure initialization issue.
-Sat Apr 14 01:44:35 2007 +0000 Keith Kanios 
-  * Refixed uninitialized data.
-Sat Apr 14 01:40:24 2007 +0000 Keith Kanios 
-  * Fixed uninitialized structure data.
-Sat Apr 14 01:24:14 2007 +0000 Keith Kanios 
-  * c99 printf/fprintf compliance.
-Sat Apr 14 00:46:25 2007 +0000 Keith Kanios 
-  * Placated unreferenced types.
-Sat Apr 14 00:10:59 2007 +0000 Keith Kanios 
-  * c99 printf/fprintf compliance.
-Fri Apr 13 23:09:18 2007 +0000 Keith Kanios 
-  * Added outmacho.* to static makefile.
-Fri Apr 13 22:24:46 2007 +0000 Keith Kanios 
-  * Fixed REGRIP -> RIPREG to match regs.dat.
-Fri Apr 13 22:07:53 2007 +0000 Keith Kanios 
-  * Fixed obj_fwrite() declaration to match "static" definition.
-Fri Apr 13 22:03:24 2007 +0000 Keith Kanios 
-  * Added appropriate "void" prototypes.
-Fri Apr 13 22:00:42 2007 +0000 Keith Kanios 
-  * Replaced str(n)casecmp with more standard str(n)icmp.
-Fri Apr 13 20:06:41 2007 +0000 H. Peter Anvin 
-  * AIf we have config.h, we should actually include it!!
-Fri Apr 13 19:59:20 2007 +0000 H. Peter Anvin 
-  * When compiling with gcc, compile with -W -Wall for maximum warnings.
-Fri Apr 13 19:58:42 2007 +0000 H. Peter Anvin 
-  * Macroize any compiler-specific code; macros defined in "compiler.h"
-Fri Apr 13 16:47:53 2007 +0000 Keith Kanios 
-  * Fixed distinction between char and int8_t data types.
-Fri Apr 13 01:17:45 2007 +0000 Keith Kanios 
-  * Comment "REX.I" should have been "REX.X"
-Fri Apr 13 00:52:54 2007 +0000 Keith Kanios 
-  * Fixed c99 data-types after removal of typedefs.
-Fri Apr 13 00:43:50 2007 +0000 Keith Kanios 
-  * Added Dev-Cpp Makefile
-Fri Apr 13 00:38:29 2007 +0000 Keith Kanios 
-  * *** empty log message ***
-Thu Apr 12 17:58:02 2007 +0000 H. Peter Anvin 
-  * Remove redundant inclusion of <inttypes.h>
-Thu Apr 12 16:54:50 2007 +0000 H. Peter Anvin 
-  * Remove obsolete types; add <inttypes.h> where needed; header fixes
-Thu Apr 12 16:25:58 2007 +0000 H. Peter Anvin 
-  * autogen.sh script to create configure, et al.
-Thu Apr 12 16:23:11 2007 +0000 Keith Kanios 
-  * Fixed c99 support for RDOFF Tools
-Thu Apr 12 16:12:09 2007 +0000 H. Peter Anvin 
-  * outmacho.c: Don't assume __builtin_ctzl exists for gcc < 4
-
-  * Get rid of @GCCFLAGS@
-Sun Apr 15 22:45:25 2007 +0000 H. Peter Anvin 
-  * Cleaner way to add gcc options
-Sun Apr 15 22:08:30 2007 +0000 Keith Kanios 
-  * Fixed distinction between RIP relative symbols and immediate values.
-Sun Apr 15 05:40:43 2007 +0000 H. Peter Anvin 
-  * Fix the register number for CR7 (it was using the same number as CR15).
-Sun Apr 15 05:32:18 2007 +0000 H. Peter Anvin 
-  * More perl-like idioms for generating regdis.c
-Sun Apr 15 01:37:13 2007 +0000 Keith Kanios 
-  * Fixed regdis.c generation.
-Sat Apr 14 18:54:52 2007 +0000 Keith Kanios 
-  * Added DQ constants for all BITS modes.
-Sat Apr 14 08:03:02 2007 +0000 H. Peter Anvin 
-  * outmacho.c: stylistic cleanups
-Sat Apr 14 03:52:05 2007 +0000 Keith Kanios 
-  * Fixed support for DQ constants in long mode.
-Sat Apr 14 03:44:31 2007 +0000 Keith Kanios 
-  * Hopefully it is actually fixed this time :P
-Sat Apr 14 01:49:07 2007 +0000 Keith Kanios 
-  * Fixed structure initialization issue.
-Sat Apr 14 01:44:35 2007 +0000 Keith Kanios 
-  * Refixed uninitialized data.
-Sat Apr 14 01:40:24 2007 +0000 Keith Kanios 
-  * Fixed uninitialized structure data.
-Sat Apr 14 01:24:14 2007 +0000 Keith Kanios 
-  * c99 printf/fprintf compliance.
-Sat Apr 14 00:46:25 2007 +0000 Keith Kanios 
-  * Placated unreferenced types.
-Sat Apr 14 00:10:59 2007 +0000 Keith Kanios 
-  * c99 printf/fprintf compliance.
-Fri Apr 13 23:09:18 2007 +0000 Keith Kanios 
-  * Added outmacho.* to static makefile.
-Fri Apr 13 22:24:46 2007 +0000 Keith Kanios 
-  * Fixed REGRIP -> RIPREG to match regs.dat.
-Fri Apr 13 22:07:53 2007 +0000 Keith Kanios 
-  * Fixed obj_fwrite() declaration to match "static" definition.
-Fri Apr 13 22:03:24 2007 +0000 Keith Kanios 
-  * Added appropriate "void" prototypes.
-Fri Apr 13 22:00:42 2007 +0000 Keith Kanios 
-  * Replaced str(n)casecmp with more standard str(n)icmp.
-Fri Apr 13 20:06:41 2007 +0000 H. Peter Anvin 
-  * AIf we have config.h, we should actually include it!!
-Fri Apr 13 19:59:20 2007 +0000 H. Peter Anvin 
-  * When compiling with gcc, compile with -W -Wall for maximum warnings.
-Fri Apr 13 19:58:42 2007 +0000 H. Peter Anvin 
-  * Macroize any compiler-specific code; macros defined in "compiler.h"
-Fri Apr 13 16:47:53 2007 +0000 Keith Kanios 
-  * Fixed distinction between char and int8_t data types.
-Fri Apr 13 01:17:45 2007 +0000 Keith Kanios 
-  * Comment "REX.I" should have been "REX.X"
-Fri Apr 13 00:52:54 2007 +0000 Keith Kanios 
-  * Fixed c99 data-types after removal of typedefs.
-Fri Apr 13 00:43:50 2007 +0000 Keith Kanios 
-  * Added Dev-Cpp Makefile
-Fri Apr 13 00:38:29 2007 +0000 Keith Kanios 
-  * *** empty log message ***
-Thu Apr 12 17:58:02 2007 +0000 H. Peter Anvin 
-  * Remove redundant inclusion of <inttypes.h>
-Thu Apr 12 16:54:50 2007 +0000 H. Peter Anvin 
-  * Remove obsolete types; add <inttypes.h> where needed; header fixes
-Thu Apr 12 16:25:58 2007 +0000 H. Peter Anvin 
-  * autogen.sh script to create configure, et al.
-Thu Apr 12 16:23:11 2007 +0000 Keith Kanios 
-  * Fixed c99 support for RDOFF Tools
-Thu Apr 12 16:12:09 2007 +0000 H. Peter Anvin 
-  * outmacho.c: Don't assume __builtin_ctzl exists for gcc < 4
-2007-04-10  Keith Kanios <keith@kanios.net>
-   * (insns.dat): updated x86-64 general+system instruction set.
-
-2007-04-09  Keith Kanios <keith@kanios.net>
-   * (outrdf.c): added support for 64-bit addressing.
-   * (outrdf2.c): added support for 64-bit addressing.
-
-2007-04-08  Keith Kanios <keith@kanios.net>
-   * (standard.mac): added entry for __BITS__ standard macro.
-   * (preproc.c): added __BITS__ to the standard macro processing.
-
-2007-04-05  Keith Kanios <keith@kanios.net>
-   * (nasm.c): added [BITS 64] for the x86-64 architecture extension.
-   * (nasm.h): added general flags to support the x86-64 architecture.
-   * (nasmlib.h): updated to support the x86-64 architecture.
-   * (nasmlib.c): revamped readnum/readlinenum to support 64-bit.
-   * (assemble.c): modified for the x86-64 architecture extension.
-   * (regs.dat): added x86-64 register extensions; revamped flags.
-   * (insns.dat): added AMD64 instruction set support.
-   * (outbin.c): added support for 64-bit addressing.
-   * (outcoff.c): added win64 (x86-64 COFF) support.
-   * (outform.h): added entry for win64.
-
-2007-03-15  Keith Kanios <keith@kanios.net>
-   * (*.c): added c99 data-type compliance and <inttypes.h> inclusion.
-   * (*.pl): added c99 data-type compliance and <inttypes.h> inclusion.
-   * (*.h): added c99 data-type compliance.
-   * (assemble.h): fixed procedure defintions to sync with respective
-   procedure declarations.
-
-2002-05-16  Ed Beroset <beroset@mindspring.com>
-   * (preproc.c): fixed unterminated macro bug error reporting
-   * (nasmlib.h): changed strdup's arg to const char *
-   * (nasmlib.c): changed strdup's arg to const char *
-
-2002-05-12  Debbie Wiles <debs@dwiles.demon.co.uk>
-   * (insns.dat): fixed incorrect processor flags
-   * (Mkfiles/Makefile.vc): added optimisation, and changed to work with 0.98.31
-   * (doc/nasmdoc.src): added %ifmacro, and tidied up format of code items.
-
-2002-05-03  H. Peter Anvin <hpa@zytor.com>
-   * (nasm.c): Change the NASM environment variable to NASMOPT.
-
-2002-05-03  H. Peter Anvin <hpa@zytor.com>
-   * (Makefile.in Mkfiles/*): use new version -> version.{h,mac}.
-   * (macros.pl): support multiple input files (standard.mac, version.mac).
-   * (standard.mac): use an explicit delimiter to end the TASM macros.
-   * (nasm-version): remove, no longer needed.
-   * (version.pl): script to produce version.h and version.mac from version.
-   * (version): contains the official NASM version.
-   * (nasm.h): include version.h.
-
-2002-05-03  H. Peter Anvin <hpa@zytor.com>
-
-   * (configure.in): create output directory.
-   * (Makefile.in): change cd ; to cd &&.
-   * (rdoff/Makefile.in): handle building in a separate obj directory
-     correctly.
-	
-2002-04-29  Stanislav Karchebny  <madfire@users.sourceforge.net>
-
-   * (Makefile.in): added 'strip' target to strip debug info.
-   * (INSTALL): added INSTALL file.
-   * (nasm.1): added -v option description.
-
-
-2002-04-29  Frank Kotler  <fbkotler@users.sourceforge.net>
-
-   * (parser.c): fixed INCBIN bug reported by Rebel.
-
-
-2002-04-11  Stanislav Karchebny  <madfire@users.sourceforge.net>
-
-   * Started ChangeLog for recording per-file changes in the project.
-     We could get away without ChangeLog at all (use CVS logs), but we
-     lose CVS so often its better to have log glued to the sources =)
-     You should record changes in CHANGES also, not for every change
-     but rather when making a release.
-
--- a/nasmbuild/nasm-2.13rc9/INSTALL	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-1. Installing NASM from source (Unix, MacOS X; Windows - Cygwin;
-   Windows - MinGW; DOS - DJGPP)
-2. Installing NASM from source (Windows - MS Visual C++)
-3. Installing NASM from source (DOS, Windows, OS/2 - OpenWatcom)
-
-
-1. Installing NASM from source (Unix, MacOS X; Windows - Cygwin;
-   Windows - MinGW; DOS - DJGPP)
-================================================================
-
-Installing NASM is pretty straightforward on Unix or Unix-like systems
-with a C compiler, Make, and standard shell tools installed, including
-MinGW for Windows (with MSYS installed) and DJGPP for DOS with the
-appropriate tools.  Perl is not required for compiling unmodified
-sources from a tarball, but is required to build from git or for most
-source modifications.
-
-If you checked out source from git you will need to run autoconf to
-generate configure, otherwise you don't have to.
-
-$ sh autogen.sh
-
-Then run configure to detect your platform settings and generate makefiles.
-
-$ sh configure
-
-You can get information about available configuration options by
-running `sh configure --help`.
-
-If configure fails, please file a bug report with detailed platform
-information at:
-
-    http://www.sf.net/projects/nasm/
-
-If everything went okay, type
-
-$ make
-
-to build NASM, ndisasm and rdoff tools, or
-
-$ make everything
-
-to build the former plus the docs.
-
-You can decrease the size of produces executables by stripping off
-unnecessary information, to achieve this run
-
-$ make strip
-
-If you install to a system-wide location you might need to become
-root:
-
-$ su <enter root password>
-
-then
-
-$ make install
-
-optionally followed by 
-
-$ make install_rdf
-
-Or you can 
-
-$ make install_everything
-
-to install everything =)
-
-
-Thats it, enjoy!
-
-
-2. Installing NASM from source (Windows - MS Visual C++)
-========================================================
-
-The recommended compiler for NASM on Windows is MinGW
-(http://www.mingw.org/), but it is also possible to compile with
-Microsoft Visual C++ (tested with Visual C++ 2005 Express Edition.)
-
-To do so, start the "Visual C++ Command Shell", go to the directory
-where the NASM source code was extracted, and run:
-
-> nmake /f Mkfiles/msvc.mak
-
-We recommend MinGW over Visual C++ 2005 as we have found it to be more
-up to date with regards to C99 compliance, and we are increasingly
-using C99 features in NASM.
-
-
-3. Installing NASM from source (DOS, Windows, OS/2 - OpenWatcom)
-================================================================
-
-NASM has been reported to build correctly with OpenWatcom 1.7 on the
-Windows and OS/2 platforms.  In addition, it *should* work under DOS
-with the DOS4GW DOS extender, although the NASM developers recommend
-using DJGPP with the CWSDPMI DOS extender instead.
-
-A WMAKE make file is provided:
-
-> wmake -f Mkfiles\openwcom.mak <platform>
-
-... where <platform> is "dos", "win32" or "os2".
--- a/nasmbuild/nasm-2.13rc9/LICENSE	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-NASM is now licensed under the 2-clause BSD license, also known as the
-simplified BSD license.
-
-    Copyright 1996-2010 the NASM Authors - All rights reserved.
-
-    Redistribution and use in source and binary forms, with or without
-    modification, are permitted provided that the following
-    conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-    * Redistributions in binary form must reproduce the above
-      copyright notice, this list of conditions and the following
-      disclaimer in the documentation and/or other materials provided
-      with the distribution.
-      
-      THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-      CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-      INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-      MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-      DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-      CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-      SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-      NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-      LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-      HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-      CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-      OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-      EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
--- a/nasmbuild/nasm-2.13rc9/Makefile.in	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,722 +0,0 @@
-#
-# Auto-configuring Makefile for the Netwide Assembler.
-#
-# The Netwide Assembler is copyright (C) 1996 Simon Tatham and
-# Julian Hall. All rights reserved. The software is
-# redistributable under the license given in the file "LICENSE"
-# distributed in the NASM archive.
-
-@SET_MAKE@
-
-top_srcdir	= @top_srcdir@
-srcdir		= @srcdir@
-objdir		= @builddir@
-VPATH		= @srcdir@
-prefix		= @prefix@
-exec_prefix	= @exec_prefix@
-bindir		= @bindir@
-mandir		= @mandir@
-datarootdir	= @datarootdir@
-
-CC		= @CC@
-CFLAGS		= @CFLAGS@
-BUILD_CFLAGS	= $(CFLAGS) @DEFS@
-INTERNAL_CFLAGS = -I$(srcdir) -I$(objdir) \
-		  -I$(srcdir)/include -I$(objdir)/include \
-		  -I$(srcdir)/x86 -I$(objdir)/x86 \
-		  -I$(srcdir)/asm -I$(objdir)/asm \
-		  -I$(srcdir)/disasm -I$(objdir)/disasm \
-		  -I$(srcdir)/output -I$(objdir)/output
-ALL_CFLAGS	= $(BUILD_CFLAGS) $(INTERNAL_CFLAGS)
-LDFLAGS		= @LDFLAGS@
-LIBS		= @LIBS@
-
-AR		= @AR@
-RANLIB		= @RANLIB@
-STRIP		= @STRIP@
-
-PERL		= perl
-PERLFLAGS	= -I$(srcdir)/perllib -I$(srcdir)
-RUNPERL         = $(PERL) $(PERLFLAGS)
-
-INSTALL		= @INSTALL@
-INSTALL_PROGRAM	= @INSTALL_PROGRAM@
-INSTALL_DATA	= @INSTALL_DATA@
-
-NROFF		= @NROFF@
-ASCIIDOC	= @ASCIIDOC@
-XMLTO		= @XMLTO@
-
-MAKENSIS	= makensis
-
-MKDIR		= mkdir
-RM		= rm
-FIND		= find
-
-# Binary suffixes
-O               = @OBJEXT@
-X               = @EXEEXT@
-A		= @LIBEXT@
-
-# Debug stuff
-ifeq ($(TRACE),1)
-	CFLAGS += -DNASM_TRACE
-endif
-
-.SUFFIXES: .c .i .s .$(O) .$(A) .1 .txt .xml
-
-.PHONY: all doc rdf install clean distclean cleaner spotless install_rdf test
-.PHONY: install_doc everything install_everything strip perlreq dist tags TAGS
-.PHONY: manpages nsis
-
-.c.$(O):
-	$(CC) -c $(ALL_CFLAGS) -o $@ $<
-
-.c.s:
-	$(CC) -S $(ALL_CFLAGS) -o $@ $<
-
-.c.i:
-	$(CC) -E $(ALL_CFLAGS) -o $@ $<
-
-.txt.xml:
-	$(ASCIIDOC) -b docbook -d manpage -o $@ $<
-
-.xml.1:
-	$(XMLTO) man --skip-validation $< 2>/dev/null
-
-#-- Begin File Lists --#
-NASM =	asm/nasm.$(O)
-NDISASM = disasm/ndisasm.$(O)
-
-LIBOBJ = stdlib/snprintf.$(O) stdlib/vsnprintf.$(O) stdlib/strlcpy.$(O) \
-	stdlib/strnlen.$(O) \
-	nasmlib/ver.$(O) \
-	nasmlib/crc64.$(O) nasmlib/malloc.$(O) \
-	nasmlib/md5c.$(O) nasmlib/string.$(O) \
-	nasmlib/file.$(O) nasmlib/mmap.$(O) nasmlib/ilog2.$(O) \
-	nasmlib/realpath.$(O) nasmlib/filename.$(O) nasmlib/srcfile.$(O) \
-	nasmlib/zerobuf.$(O) nasmlib/readnum.$(O) nasmlib/bsi.$(O) \
-	nasmlib/rbtree.$(O) nasmlib/hashtbl.$(O) \
-	nasmlib/raa.$(O) nasmlib/saa.$(O) \
-	nasmlib/strlist.$(O) \
-	common/common.$(O) \
-	x86/insnsa.$(O) x86/insnsb.$(O) x86/insnsd.$(O) x86/insnsn.$(O) \
-	x86/regs.$(O) x86/regvals.$(O) x86/regflags.$(O) x86/regdis.$(O) \
-	x86/disp8.$(O) x86/iflag.$(O) \
-	\
-	asm/error.$(O) \
-	asm/float.$(O) \
-	asm/directiv.$(O) asm/directbl.$(O) \
-	asm/pragma.$(O) \
-	asm/assemble.$(O) asm/labels.$(O) asm/parser.$(O) \
-	asm/preproc.$(O) asm/quote.$(O) asm/pptok.$(O) \
-	asm/listing.$(O) asm/eval.$(O) asm/exprlib.$(O) asm/exprdump.$(O) \
-	asm/stdscan.$(O) \
-	asm/strfunc.$(O) asm/tokhash.$(O) \
-	asm/segalloc.$(O) \
-	asm/preproc-nop.$(O) \
-	asm/rdstrnum.$(O) \
-	\
-	macros/macros.$(O) \
-	\
-	output/outform.$(O) output/outlib.$(O) output/legacy.$(O) \
-	output/nulldbg.$(O) output/nullout.$(O) \
-	output/outbin.$(O) output/outaout.$(O) output/outcoff.$(O) \
-	output/outelf.$(O) \
-	output/outobj.$(O) output/outas86.$(O) output/outrdf2.$(O) \
-	output/outdbg.$(O) output/outieee.$(O) output/outmacho.$(O) \
-	output/codeview.$(O) \
-	\
-	disasm/disasm.$(O) disasm/sync.$(O)
-
-SUBDIRS  = stdlib nasmlib output asm disasm x86 common macros
-XSUBDIRS = test doc nsis
-#-- End File Lists --#
-
-all: nasm$(X) ndisasm$(X) rdf
-
-NASMLIB = libnasm.$(A)
-
-$(NASMLIB): $(LIBOBJ)
-	$(RM) -f $(NASMLIB)
-	$(AR) cq $(NASMLIB) $(LIBOBJ)
-	$(RANLIB) $(NASMLIB)
-
-nasm$(X): $(NASM) $(NASMLIB)
-	$(CC) $(LDFLAGS) -o nasm$(X) $(NASM) $(NASMLIB) $(LIBS)
-
-ndisasm$(X): $(NDISASM) $(NASMLIB)
-	$(CC) $(LDFLAGS) -o ndisasm$(X) $(NDISASM) $(NASMLIB) $(LIBS)
-
-# These source files are automagically generated from a single
-# instruction-table file by a Perl script. They're distributed,
-# though, so it isn't necessary to have Perl just to recompile NASM
-# from the distribution.
-INSDEP = x86/insns.dat x86/insns.pl
-
-x86/iflag.c: $(INSDEP)
-	$(RUNPERL) $(srcdir)/x86/insns.pl -fc \
-		$(srcdir)/x86/insns.dat x86/iflag.c
-x86/iflaggen.h: $(INSDEP)
-	$(RUNPERL) $(srcdir)/x86/insns.pl -fh \
-		$(srcdir)/x86/insns.dat x86/iflaggen.h
-x86/insnsb.c: $(INSDEP)
-	$(RUNPERL) $(srcdir)/x86/insns.pl -b \
-		$(srcdir)/x86/insns.dat x86/insnsb.c
-x86/insnsa.c: $(INSDEP)
-	$(RUNPERL) $(srcdir)/x86/insns.pl -a \
-		$(srcdir)/x86/insns.dat x86/insnsa.c
-x86/insnsd.c: $(INSDEP)
-	$(RUNPERL) $(srcdir)/x86/insns.pl -d \
-		$(srcdir)/x86/insns.dat x86/insnsd.c
-x86/insnsi.h: $(INSDEP)
-	$(RUNPERL) $(srcdir)/x86/insns.pl -i \
-		$(srcdir)/x86/insns.dat x86/insnsi.h
-x86/insnsn.c: $(INSDEP)
-	$(RUNPERL) $(srcdir)/x86/insns.pl -n \
-		$(srcdir)/x86/insns.dat x86/insnsn.c
-
-# These files contains all the standard macros that are derived from
-# the version number.
-version.h: version version.pl
-	$(RUNPERL) $(srcdir)/version.pl h < $(srcdir)/version > version.h
-version.mac: version version.pl
-	$(RUNPERL) $(srcdir)/version.pl mac < $(srcdir)/version > version.mac
-version.sed: version version.pl
-	$(RUNPERL) $(srcdir)/version.pl sed < $(srcdir)/version > version.sed
-version.mak: version version.pl
-	$(RUNPERL) $(srcdir)/version.pl make < $(srcdir)/version > version.mak
-nsis/version.nsh: version version.pl
-	$(RUNPERL) $(srcdir)/version.pl nsis < $(srcdir)/version > nsis/version.nsh
-
-# This source file is generated from the standard macros file
-# `standard.mac' by another Perl script. Again, it's part of the
-# standard distribution.
-macros/macros.c: macros/macros.pl asm/pptok.ph version.mac \
-	$(srcdir)/macros/*.mac $(srcdir)/output/*.mac
-	$(RUNPERL) $(srcdir)/macros/macros.pl version.mac \
-		$(srcdir)/macros/*.mac $(srcdir)/output/*.mac
-
-# These source files are generated from regs.dat by yet another
-# perl script.
-x86/regs.c: x86/regs.dat x86/regs.pl
-	$(RUNPERL) $(srcdir)/x86/regs.pl c \
-		$(srcdir)/x86/regs.dat > x86/regs.c
-x86/regflags.c: x86/regs.dat x86/regs.pl
-	$(RUNPERL) $(srcdir)/x86/regs.pl fc \
-		$(srcdir)/x86/regs.dat > x86/regflags.c
-x86/regdis.c: x86/regs.dat x86/regs.pl
-	$(RUNPERL) $(srcdir)/x86/regs.pl dc \
-		$(srcdir)/x86/regs.dat > x86/regdis.c
-x86/regdis.h: x86/regs.dat x86/regs.pl
-	$(RUNPERL) $(srcdir)/x86/regs.pl dh \
-		$(srcdir)/x86/regs.dat > x86/regdis.h
-x86/regvals.c: x86/regs.dat x86/regs.pl
-	$(RUNPERL) $(srcdir)/x86/regs.pl vc \
-		$(srcdir)/x86/regs.dat > x86/regvals.c
-x86/regs.h: x86/regs.dat x86/regs.pl
-	$(RUNPERL) $(srcdir)/x86/regs.pl h \
-		$(srcdir)/x86/regs.dat > x86/regs.h
-
-# Assembler token hash
-asm/tokhash.c: x86/insns.dat x86/regs.dat asm/tokens.dat asm/tokhash.pl \
-	perllib/phash.ph
-	$(RUNPERL) $(srcdir)/asm/tokhash.pl c \
-		$(srcdir)/x86/insns.dat $(srcdir)/x86/regs.dat \
-		$(srcdir)/asm/tokens.dat > asm/tokhash.c
-
-# Assembler token metadata
-asm/tokens.h: x86/insns.dat x86/regs.dat asm/tokens.dat asm/tokhash.pl \
-	perllib/phash.ph
-	$(RUNPERL) $(srcdir)/asm/tokhash.pl h \
-		$(srcdir)/x86/insns.dat $(srcdir)/x86/regs.dat \
-		$(srcdir)/asm/tokens.dat > asm/tokens.h
-
-# Preprocessor token hash
-asm/pptok.h: asm/pptok.dat asm/pptok.pl perllib/phash.ph
-	$(RUNPERL) $(srcdir)/asm/pptok.pl h \
-		$(srcdir)/asm/pptok.dat asm/pptok.h
-asm/pptok.c: asm/pptok.dat asm/pptok.pl perllib/phash.ph
-	$(RUNPERL) $(srcdir)/asm/pptok.pl c \
-		$(srcdir)/asm/pptok.dat asm/pptok.c
-asm/pptok.ph: asm/pptok.dat asm/pptok.pl perllib/phash.ph
-	$(RUNPERL) $(srcdir)/asm/pptok.pl ph \
-		$(srcdir)/asm/pptok.dat asm/pptok.ph
-
-# Directives hash
-asm/directiv.h: asm/directiv.dat asm/directiv.pl perllib/phash.ph
-	$(RUNPERL) $(srcdir)/asm/directiv.pl h \
-		$(srcdir)/asm/directiv.dat asm/directiv.h
-asm/directbl.c: asm/directiv.dat asm/directiv.pl perllib/phash.ph
-	$(RUNPERL) $(srcdir)/asm/directiv.pl c \
-		$(srcdir)/asm/directiv.dat asm/directbl.c
-
-# This target generates all files that require perl.
-# This allows easier generation of distribution (see dist target).
-PERLREQ = x86/insnsb.c x86/insnsa.c x86/insnsd.c x86/insnsi.h x86/insnsn.c \
-	  x86/regs.c x86/regs.h x86/regflags.c x86/regdis.c x86/regdis.h \
-	  x86/regvals.c asm/tokhash.c asm/tokens.h asm/pptok.h asm/pptok.c \
-	  x86/iflag.c x86/iflaggen.h \
-	  macros/macros.c \
-	  asm/pptok.ph asm/directbl.c asm/directiv.h \
-	  version.h version.mac version.mak nsis/version.nsh
-perlreq: $(PERLREQ)
-
-# NSIS is not built except by explicit request, as it only applies to
-# Windows platforms
-nsis/arch.nsh: nsis/getpearch.pl nasm$(X)
-	$(PERL) $(srcdir)/nsis/getpearch.pl nasm$(X) > nsis/arch.nsh
-
-# Should only be done after "make everything".
-# The use of redirection here keeps makensis from moving the cwd to the
-# source directory.
-nsis: nsis/nasm.nsi nsis/arch.nsh nsis/version.nsh
-	$(MAKENSIS) -Dsrcdir="$(srcdir)" -Dobjdir="$(objdir)" - < "$<"
-
-# Generated manpages, also pregenerated for distribution
-manpages: nasm.1 ndisasm.1
-
-install: nasm$(X) ndisasm$(X)
-	$(MKDIR) -p $(INSTALLROOT)$(bindir)
-	$(INSTALL_PROGRAM) nasm$(X) $(INSTALLROOT)$(bindir)/nasm$(X)
-	$(INSTALL_PROGRAM) ndisasm$(X) $(INSTALLROOT)$(bindir)/ndisasm$(X)
-	$(MKDIR) -p $(INSTALLROOT)$(mandir)/man1
-	$(INSTALL_DATA) $(srcdir)/nasm.1 $(INSTALLROOT)$(mandir)/man1/nasm.1
-	$(INSTALL_DATA) $(srcdir)/ndisasm.1 $(INSTALLROOT)$(mandir)/man1/ndisasm.1
-
-clean:
-	for d in . $(SUBDIRS); do \
-		$(RM) -f "$$d"/*.$(O) "$$d"/*.s "$$d"/*.i "$$d"/*.$(A) ; \
-	done
-	$(RM) -f nasm$(X) ndisasm$(X)
-	$(RM) -f nasm-*-installer-*.exe
-	$(RM) -f tags TAGS
-	$(RM) -f nsis/arch.nsh
-	cd rdoff && $(MAKE) clean
-
-distclean: clean
-	$(RM) -f config.log config.status config/config.h
-	$(RM) -f Makefile
-	for d in . $(SUBDIRS) $(XSUBDIRS); do \
-		$(RM) -f "$$d"/*~ "$$d"/*.bak "$$d"/*.lst "$$d"/*.bin ; \
-	done
-	$(RM) -f test/*.$(O)
-	$(RM) -rf autom4te*.cache
-	cd rdoff && $(MAKE) distclean
-
-cleaner: clean
-	$(RM) -f $(PERLREQ) *.1 nasm.spec
-	cd doc && $(MAKE) clean
-
-spotless: distclean cleaner
-	$(RM) -f doc/Makefile
-
-strip:
-	$(STRIP) --strip-unneeded nasm$(X) ndisasm$(X)
-
-rdf: $(NASMLIB)
-	cd rdoff && $(MAKE) all
-
-TAGS:
-	$(RM) -f TAGS
-	$(FIND) . -name '*.[hcS]' -print | xargs etags -a
-
-tags:
-	$(RM) -f tags
-	$(FIND) . -name '*.[hcS]' -print | xargs ctags -a
-
-cscope:
-	$(RM) -f cscope.out cscope.files
-	$(FIND) . -name '*.[hcS]' -print > cscope.files
-	cscope -b -f cscope.out
-
-rdf_install install_rdf:
-	cd rdoff && $(MAKE) install
-
-doc:
-	cd doc && $(MAKE) all
-
-doc_install install_doc:
-	cd doc && $(MAKE) install
-
-everything: all manpages doc rdf
-
-install_everything: everything install install_doc install_rdf
-
-dist:
-	$(MAKE) alldeps
-	$(MAKE) spotless perlreq manpages spec
-	autoheader
-	autoconf
-	$(RM) -rf ./autom4te*.cache
-
-tar: dist
-	tar -cvj --exclude CVS -C .. -f ../nasm-`cat version`-`date +%Y%m%d`.tar.bz2 `basename \`pwd\``
-
-spec: nasm.spec
-
-nasm.spec: nasm.spec.in version.sed
-	sed -f version.sed < nasm.spec.in > nasm.spec
-
-splint:
-	splint -weak *.c
-
-test: nasm$(X)
-	cd test && $(RUNPERL) performtest.pl --nasm=../nasm *.asm
-
-golden: nasm$(X)
-	cd test && $(RUNPERL) performtest.pl --golden --nasm=../nasm *.asm
-
-#
-# This build dependencies in *ALL* makefiles.  Partially for that reason,
-# it's expected to be invoked manually.
-#
-alldeps: perlreq tools/syncfiles.pl tools/mkdep.pl
-	$(RUNPERL) tools/syncfiles.pl Makefile.in Mkfiles/*.mak
-	$(RUNPERL) tools/mkdep.pl -M Makefile.in Mkfiles/*.mak -- \
-		. include asm common config disasm macros nasmlib \
-		output stdlib x86
-	./config.status
-
-#-- Magic hints to mkdep.pl --#
-# @object-ending: ".$(O)"
-# @path-separator: "/"
-#-- Everything below is generated by mkdep.pl - do not edit --#
-asm/assemble.$(O): asm/assemble.c asm/assemble.h asm/directiv.h \
- asm/listing.h asm/pptok.h asm/preproc.h asm/tokens.h config/config.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/disp8.h include/error.h include/iflag.h include/insns.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/directbl.$(O): asm/directbl.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/hashtbl.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/insnsi.h x86/regs.h
-asm/directiv.$(O): asm/directiv.c asm/assemble.h asm/directiv.h asm/eval.h \
- asm/float.h asm/listing.h asm/pptok.h asm/preproc.h asm/stdscan.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/iflag.h include/labels.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h output/outform.h x86/iflaggen.h \
- x86/insnsi.h x86/regs.h
-asm/error.$(O): asm/error.c config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasmint.h \
- include/nasmlib.h
-asm/eval.$(O): asm/eval.c asm/assemble.h asm/directiv.h asm/eval.h \
- asm/float.h asm/pptok.h asm/preproc.h config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/error.h \
- include/iflag.h include/labels.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/exprdump.$(O): asm/exprdump.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/insnsi.h \
- x86/regs.h
-asm/exprlib.$(O): asm/exprlib.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/insnsi.h \
- x86/regs.h
-asm/float.$(O): asm/float.c asm/directiv.h asm/float.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/insnsi.h x86/regs.h
-asm/labels.$(O): asm/labels.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/hashtbl.h include/labels.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/insnsi.h x86/regs.h
-asm/listing.$(O): asm/listing.c asm/directiv.h asm/listing.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/insnsi.h x86/regs.h
-asm/nasm.$(O): asm/nasm.c asm/assemble.h asm/directiv.h asm/eval.h \
- asm/float.h asm/listing.h asm/parser.h asm/pptok.h asm/preproc.h \
- asm/stdscan.h asm/tokens.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/iflag.h \
- include/insns.h include/labels.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/raa.h include/saa.h \
- include/strlist.h include/tables.h include/ver.h output/outform.h \
- x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/parser.$(O): asm/parser.c asm/assemble.h asm/directiv.h asm/eval.h \
- asm/float.h asm/parser.h asm/pptok.h asm/preproc.h asm/stdscan.h \
- asm/tokens.h config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/iflag.h include/insns.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/pptok.$(O): asm/pptok.c asm/pptok.h asm/preproc.h config/config.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/hashtbl.h include/nasmint.h include/nasmlib.h
-asm/pragma.$(O): asm/pragma.c asm/assemble.h asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/iflag.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/preproc-nop.$(O): asm/preproc-nop.c asm/directiv.h asm/listing.h \
- asm/pptok.h asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/insnsi.h x86/regs.h
-asm/preproc.$(O): asm/preproc.c asm/directiv.h asm/eval.h asm/listing.h \
- asm/pptok.h asm/preproc.h asm/quote.h asm/stdscan.h asm/tokens.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/hashtbl.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/insnsi.h x86/regs.h
-asm/quote.$(O): asm/quote.c asm/quote.h config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-asm/rdstrnum.$(O): asm/rdstrnum.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/insnsi.h \
- x86/regs.h
-asm/segalloc.$(O): asm/segalloc.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/stdscan.$(O): asm/stdscan.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/quote.h asm/stdscan.h asm/tokens.h config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/error.h \
- include/iflag.h include/insns.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/strfunc.$(O): asm/strfunc.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/insnsi.h \
- x86/regs.h
-asm/tokhash.$(O): asm/tokhash.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/stdscan.h asm/tokens.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/hashtbl.h include/iflag.h \
- include/insns.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/iflaggen.h \
- x86/insnsi.h x86/regs.h
-common/common.$(O): common/common.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-disasm/disasm.$(O): disasm/disasm.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/config.h config/msvc.h config/unknown.h config/watcom.h \
- disasm/disasm.h disasm/sync.h include/compiler.h include/disp8.h \
- include/iflag.h include/insns.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/iflaggen.h x86/insnsi.h x86/regdis.h x86/regs.h
-disasm/ndisasm.$(O): disasm/ndisasm.c asm/directiv.h asm/pptok.h \
- asm/preproc.h asm/tokens.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h disasm/disasm.h disasm/sync.h include/compiler.h \
- include/error.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h include/ver.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-disasm/sync.$(O): disasm/sync.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h disasm/sync.h include/compiler.h \
- include/nasmint.h include/nasmlib.h
-macros/macros.$(O): macros/macros.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/hashtbl.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- output/outform.h x86/insnsi.h x86/regs.h
-nasmlib/bsi.$(O): nasmlib/bsi.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-nasmlib/crc64.$(O): nasmlib/crc64.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/hashtbl.h \
- include/nasmint.h include/nasmlib.h
-nasmlib/file.$(O): nasmlib/file.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/error.h \
- include/nasmint.h include/nasmlib.h nasmlib/file.h
-nasmlib/filename.$(O): nasmlib/filename.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/error.h \
- include/nasmint.h include/nasmlib.h
-nasmlib/hashtbl.$(O): nasmlib/hashtbl.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/hashtbl.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/insnsi.h x86/regs.h
-nasmlib/ilog2.$(O): nasmlib/ilog2.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-nasmlib/malloc.$(O): nasmlib/malloc.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/error.h \
- include/nasmint.h include/nasmlib.h
-nasmlib/md5c.$(O): nasmlib/md5c.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/md5.h \
- include/nasmint.h
-nasmlib/mmap.$(O): nasmlib/mmap.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/error.h \
- include/nasmint.h include/nasmlib.h nasmlib/file.h
-nasmlib/raa.$(O): nasmlib/raa.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h include/raa.h
-nasmlib/rbtree.$(O): nasmlib/rbtree.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/rbtree.h
-nasmlib/readnum.$(O): nasmlib/readnum.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/insnsi.h x86/regs.h
-nasmlib/realpath.$(O): nasmlib/realpath.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-nasmlib/saa.$(O): nasmlib/saa.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h include/saa.h
-nasmlib/srcfile.$(O): nasmlib/srcfile.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/hashtbl.h \
- include/nasmint.h include/nasmlib.h
-nasmlib/string.$(O): nasmlib/string.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-nasmlib/strlist.$(O): nasmlib/strlist.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h include/strlist.h
-nasmlib/ver.$(O): nasmlib/ver.c include/ver.h version.h
-nasmlib/zerobuf.$(O): nasmlib/zerobuf.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-output/codeview.$(O): output/codeview.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/hashtbl.h \
- include/md5.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/saa.h include/strlist.h include/tables.h \
- output/outlib.h output/pecoff.h version.h x86/insnsi.h x86/regs.h
-output/legacy.$(O): output/legacy.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-output/nulldbg.$(O): output/nulldbg.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h output/outlib.h x86/insnsi.h x86/regs.h
-output/nullout.$(O): output/nullout.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h output/outlib.h x86/insnsi.h x86/regs.h
-output/outaout.$(O): output/outaout.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h asm/stdscan.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/raa.h \
- include/saa.h include/strlist.h include/tables.h output/outform.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-output/outas86.$(O): output/outas86.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/raa.h \
- include/saa.h include/strlist.h include/tables.h output/outform.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-output/outbin.$(O): output/outbin.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h asm/stdscan.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/labels.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/saa.h include/strlist.h include/tables.h output/outform.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-output/outcoff.$(O): output/outcoff.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/raa.h \
- include/saa.h include/strlist.h include/tables.h output/outform.h \
- output/outlib.h output/pecoff.h x86/insnsi.h x86/regs.h
-output/outdbg.$(O): output/outdbg.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- output/outform.h output/outlib.h x86/insnsi.h x86/regs.h
-output/outelf.$(O): output/outelf.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h asm/stdscan.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/raa.h \
- include/rbtree.h include/saa.h include/strlist.h include/tables.h \
- include/ver.h output/dwarf.h output/elf.h output/outelf.h output/outform.h \
- output/outlib.h output/stabs.h x86/insnsi.h x86/regs.h
-output/outform.$(O): output/outform.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- output/outform.h x86/insnsi.h x86/regs.h
-output/outieee.$(O): output/outieee.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h include/ver.h output/outform.h output/outlib.h \
- x86/insnsi.h x86/regs.h
-output/outlib.$(O): output/outlib.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-output/outmacho.$(O): output/outmacho.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/labels.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/raa.h include/rbtree.h include/saa.h include/strlist.h \
- include/tables.h output/outform.h output/outlib.h x86/insnsi.h x86/regs.h
-output/outobj.$(O): output/outobj.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h asm/stdscan.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h include/ver.h output/outform.h output/outlib.h \
- x86/insnsi.h x86/regs.h
-output/outrdf2.$(O): output/outrdf2.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/rdoff.h \
- include/saa.h include/strlist.h include/tables.h output/outform.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-stdlib/snprintf.$(O): stdlib/snprintf.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-stdlib/strlcpy.$(O): stdlib/strlcpy.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h
-stdlib/strnlen.$(O): stdlib/strnlen.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h
-stdlib/vsnprintf.$(O): stdlib/vsnprintf.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/error.h \
- include/nasmint.h include/nasmlib.h
-x86/disp8.$(O): x86/disp8.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/disp8.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/insnsi.h x86/regs.h
-x86/iflag.$(O): x86/iflag.c config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/iflag.h include/nasmint.h \
- x86/iflaggen.h
-x86/insnsa.$(O): x86/insnsa.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-x86/insnsb.$(O): x86/insnsb.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-x86/insnsd.$(O): x86/insnsd.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-x86/insnsn.$(O): x86/insnsn.c config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/tables.h \
- x86/insnsi.h
-x86/regdis.$(O): x86/regdis.c x86/regdis.h x86/regs.h
-x86/regflags.$(O): x86/regflags.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/insnsi.h \
- x86/regs.h
-x86/regs.$(O): x86/regs.c config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/tables.h \
- x86/insnsi.h
-x86/regvals.$(O): x86/regvals.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/tables.h x86/insnsi.h
--- a/nasmbuild/nasm-2.13rc9/Mkfiles/README	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-These are pre-created Makefiles for various platforms, use them if
-GNU autoconf/automake packages are not supported on your system.
-
-The Makefiles are:
-
-  Filename      Target		Compiler	Tested with
-  ---------------------------------------------------------------------------
-  msvc.mak	Win32		MS Visual C++	Visual C++ Express 2005
-
-	For building on a Win32 host using Microsoft Visual C++.
-
-	Usage:	nmake /f Mkfiles/msvc.mak
-
-
-  Filename      Target		Compiler	Tested with
-  ---------------------------------------------------------------------------
-  openwcom.mak	DOS,Win32,OS/2	OpenWatcom C	OpenWatcom 1.7 (Win32)
-
-	For building on a DOS, OS/2 or Win32 host using OpenWatcom.
-	OpenWatcom can be downloaded from http://www.openwatcom.org/.
-
-	Usage:	wmake /f Mkfiles/<filename> <target>
-
-	<target> is dos, win32, or os2.
-
-  Filename      Target		Compiler	Tested with
-  ---------------------------------------------------------------------------
-  owlinux.mak	DOS,Win32,OS/2	OpenWatcom C	OpenWatcom 1.6rc2 (Linux)
-
-	For building on a Linux host using OpenWatcom for Linux.
-
-	Usage:	make -f Mkfiles/<filename> <target>
-
-	<target> is dos, win32, or os2.
-
-  Filename      Target		Compiler	Tested with
-  ---------------------------------------------------------------------------
-  netware.mak	NetWare		Cross-GCC	Cross-GCC 3.2.3 (Linux, Win32)
-
-	For building on a Linux or Win32 host using Cross-GCC for Linux/Win32.
-
-	Usage:	make -f Mkfiles/netware.mak
--- a/nasmbuild/nasm-2.13rc9/Mkfiles/msvc.mak	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,589 +0,0 @@
-# -*- makefile -*-
-#
-# Makefile for building NASM using Microsoft Visual C++ and NMAKE.
-# Tested on Microsoft Visual C++ 2005 Express Edition.
-#
-# Make sure to put the appropriate directories in your PATH, in
-# the case of MSVC++ 2005, they are ...\VC\bin and ...\Common7\IDE.
-#
-# This is typically done by opening the Visual Studio Command Prompt.
-#
-
-top_srcdir	= .
-srcdir		= .
-VPATH		= .
-prefix		= C:\Program Files\NASM
-exec_prefix	= $(prefix)
-bindir		= $(prefix)/bin
-mandir		= $(prefix)/man
-
-!IF "$(DEBUG)" == "1"
-CFLAGS		= /Od /Zi
-LDFLAGS		= /DEBUG
-!ELSE
-CFLAGS		= /O2 /Zi
-LDFLAGS		= /DEBUG /OPT:REF /OPT:ICF # (latter two undoes /DEBUG harm)
-!ENDIF
-
-CC		= cl
-LD		= link
-AR		= lib
-CFLAGS		= $(CFLAGS) /W2
-BUILD_CFLAGS	= $(CFLAGS)
-INTERNAL_CFLAGS = /I$(srcdir) /I. \
-		  /I$(srcdir)/include /I./include \
-		  /I$(srcdir)/x86 /I./x86 \
-		  /I$(srcdir)/asm /I./asm \
-		  /I$(srcdir)/disasm /I./disasm \
-		  /I$(srcdir)/output /I./output \
-ALL_CFLAGS	= $(BUILD_CFLAGS) $(INTERNAL_CFLAGS)
-LDFLAGS		= $(LDFLAGS) /SUBSYSTEM:CONSOLE /RELEASE
-LIBS		=
-PERL		= perl -I$(srcdir)/perllib -I$(srcdir)
-
-# Binary suffixes
-O               = obj
-A		= lib
-X               = .exe
-
-.SUFFIXES: .c .i .s .$(O) .$(A) .1 .man
-
-.c.obj:
-	$(CC) /c $(ALL_CFLAGS) /Fo$@ $<
-
-#-- Begin File Lists --#
-# Edit in Makefile.in, not here!
-NASM =	asm/nasm.$(O)
-NDISASM = disasm/ndisasm.$(O)
-
-LIBOBJ = stdlib/snprintf.$(O) stdlib/vsnprintf.$(O) stdlib/strlcpy.$(O) \
-	stdlib/strnlen.$(O) \
-	nasmlib/ver.$(O) \
-	nasmlib/crc64.$(O) nasmlib/malloc.$(O) \
-	nasmlib/md5c.$(O) nasmlib/string.$(O) \
-	nasmlib/file.$(O) nasmlib/mmap.$(O) nasmlib/ilog2.$(O) \
-	nasmlib/realpath.$(O) nasmlib/filename.$(O) nasmlib/srcfile.$(O) \
-	nasmlib/zerobuf.$(O) nasmlib/readnum.$(O) nasmlib/bsi.$(O) \
-	nasmlib/rbtree.$(O) nasmlib/hashtbl.$(O) \
-	nasmlib/raa.$(O) nasmlib/saa.$(O) \
-	nasmlib/strlist.$(O) \
-	common/common.$(O) \
-	x86/insnsa.$(O) x86/insnsb.$(O) x86/insnsd.$(O) x86/insnsn.$(O) \
-	x86/regs.$(O) x86/regvals.$(O) x86/regflags.$(O) x86/regdis.$(O) \
-	x86/disp8.$(O) x86/iflag.$(O) \
-	\
-	asm/error.$(O) \
-	asm/float.$(O) \
-	asm/directiv.$(O) asm/directbl.$(O) \
-	asm/pragma.$(O) \
-	asm/assemble.$(O) asm/labels.$(O) asm/parser.$(O) \
-	asm/preproc.$(O) asm/quote.$(O) asm/pptok.$(O) \
-	asm/listing.$(O) asm/eval.$(O) asm/exprlib.$(O) asm/exprdump.$(O) \
-	asm/stdscan.$(O) \
-	asm/strfunc.$(O) asm/tokhash.$(O) \
-	asm/segalloc.$(O) \
-	asm/preproc-nop.$(O) \
-	asm/rdstrnum.$(O) \
-	\
-	macros/macros.$(O) \
-	\
-	output/outform.$(O) output/outlib.$(O) output/legacy.$(O) \
-	output/nulldbg.$(O) output/nullout.$(O) \
-	output/outbin.$(O) output/outaout.$(O) output/outcoff.$(O) \
-	output/outelf.$(O) \
-	output/outobj.$(O) output/outas86.$(O) output/outrdf2.$(O) \
-	output/outdbg.$(O) output/outieee.$(O) output/outmacho.$(O) \
-	output/codeview.$(O) \
-	\
-	disasm/disasm.$(O) disasm/sync.$(O)
-
-SUBDIRS  = stdlib nasmlib output asm disasm x86 common macros
-XSUBDIRS = test doc nsis
-#-- End File Lists --#
-
-all: nasm$(X) ndisasm$(X)
-	rem cd rdoff && $(MAKE) all
-
-nasm$(X): $(NASM) nasm.$(A)
-	$(LD) $(LDFLAGS) /OUT:nasm$(X) $(NASM) $(LIBS) nasm.$(A)
-
-ndisasm$(X): $(NDISASM) nasm.$(A)
-	$(LD) $(LDFLAGS) /OUT:ndisasm$(X) $(NDISASM) $(LIBS) nasm.$(A)
-
-nasm.$(A): $(LIBOBJ)
-	$(AR) $(ARFLAGS) /OUT:$@ $**
-
-# These source files are automagically generated from a single
-# instruction-table file by a Perl script. They're distributed,
-# though, so it isn't necessary to have Perl just to recompile NASM
-# from the distribution.
-
-insns.pl: insns-iflags.pl
-
-INSDEP = insns.dat insns.pl insns-iflags.pl
-
-iflag.c: $(INSDEP)
-	$(PERL) $(srcdir)/insns.pl -fc $(srcdir)/insns.dat
-iflaggen.h: $(INSDEP)
-	$(PERL) $(srcdir)/insns.pl -fh $(srcdir)/insns.dat
-insnsb.c: $(INSDEP)
-	$(PERL) $(srcdir)/insns.pl -b $(srcdir)/insns.dat
-insnsa.c: $(INSDEP)
-	$(PERL) $(srcdir)/insns.pl -a $(srcdir)/insns.dat
-insnsd.c: $(INSDEP)
-	$(PERL) $(srcdir)/insns.pl -d $(srcdir)/insns.dat
-insnsi.h: $(INSDEP)
-	$(PERL) $(srcdir)/insns.pl -i $(srcdir)/insns.dat
-insnsn.c: $(INSDEP)
-	$(PERL) $(srcdir)/insns.pl -n $(srcdir)/insns.dat
-
-# These files contains all the standard macros that are derived from
-# the version number.
-version.h: version version.pl
-	$(PERL) $(srcdir)/version.pl h < $(srcdir)/version > version.h
-
-version.mac: version version.pl
-	$(PERL) $(srcdir)/version.pl mac < $(srcdir)/version > version.mac
-
-# This source file is generated from the standard macros file
-# `standard.mac' by another Perl script. Again, it's part of the
-# standard distribution.
-
-macros.c: macros.pl pptok.ph standard.mac version.mac \
-	$(srcdir)/macros/*.mac $(srcdir)/output/*.mac
-	$(PERL) $(srcdir)/macros.pl $(srcdir)/standard.mac version.mac \
-		$(srcdir)/macros/*.mac $(srcdir)/output/*.mac
-
-# These source files are generated from regs.dat by yet another
-# perl script.
-regs.c: regs.dat regs.pl
-	$(PERL) $(srcdir)/regs.pl c $(srcdir)/regs.dat > regs.c
-regflags.c: regs.dat regs.pl
-	$(PERL) $(srcdir)/regs.pl fc $(srcdir)/regs.dat > regflags.c
-regdis.c: regs.dat regs.pl
-	$(PERL) $(srcdir)/regs.pl dc $(srcdir)/regs.dat > regdis.c
-regdis.h: regs.dat regs.pl
-	$(PERL) $(srcdir)/regs.pl dh $(srcdir)/regs.dat > regdis.h
-regvals.c: regs.dat regs.pl
-	$(PERL) $(srcdir)/regs.pl vc $(srcdir)/regs.dat > regvals.c
-regs.h: regs.dat regs.pl
-	$(PERL) $(srcdir)/regs.pl h $(srcdir)/regs.dat > regs.h
-
-# Assembler token hash
-tokhash.c: insns.dat regs.dat tokens.dat tokhash.pl perllib/phash.ph
-	$(PERL) $(srcdir)/tokhash.pl c $(srcdir)/insns.dat $(srcdir)/regs.dat \
-		$(srcdir)/tokens.dat > tokhash.c
-
-# Assembler token metadata
-tokens.h: insns.dat regs.dat tokens.dat tokhash.pl perllib/phash.ph
-	$(PERL) $(srcdir)/tokhash.pl h $(srcdir)/insns.dat $(srcdir)/regs.dat \
-		$(srcdir)/tokens.dat > tokens.h
-
-# Preprocessor token hash
-pptok.h: pptok.dat pptok.pl perllib/phash.ph
-	$(PERL) $(srcdir)/pptok.pl h $(srcdir)/pptok.dat pptok.h
-pptok.c: pptok.dat pptok.pl perllib/phash.ph
-	$(PERL) $(srcdir)/pptok.pl c $(srcdir)/pptok.dat pptok.c
-pptok.ph: pptok.dat pptok.pl perllib/phash.ph
-	$(PERL) $(srcdir)/pptok.pl ph $(srcdir)/pptok.dat pptok.ph
-
-# Directives hash
-directiv.h: directiv.dat directiv.pl perllib/phash.ph
-	$(PERL) $(srcdir)/directiv.pl h $(srcdir)/directiv.dat directiv.h
-directbl.c: directiv.dat directiv.pl perllib/phash.ph
-	$(PERL) $(srcdir)/directiv.pl c $(srcdir)/directiv.dat directbl.c
-
-# This target generates all files that require perl.
-# This allows easier generation of distribution (see dist target).
-PERLREQ = macros.c insnsb.c insnsa.c insnsd.c insnsi.h insnsn.c \
-	  regs.c regs.h regflags.c regdis.c regvals.c tokhash.c tokens.h \
-	  version.h version.mac pptok.h pptok.c iflag.c iflaggen.h \
-	  directbl.c directiv.h pptok.ph regdis.h
-perlreq: $(PERLREQ)
-
-clean:
-	-del /f *.$(O)
-	-del /f *.pdb
-	-del /f *.s
-	-del /f *.i
-	-del /f lib\*.$(O)
-	-del /f lib\*.pdb
-	-del /f lib\*.s
-	-del /f lib\*.i
-	-del /f output\*.$(O)
-	-del /f output\*.pdb
-	-del /f output\*.s
-	-del /f output\*.i
-	-del /f nasmlib\*.$(O)
-	-del /f nasmlib\*.pdb
-	-del /f nasmlib\*.s
-	-del /f nasmlib\*.i
-	-del /f stdlib\*.$(O)
-	-del /f stdlib\*.pdb
-	-del /f stdlib\*.s
-	-del /f stdlib\*.i
-	-del /f nasm.$(A)
-	-del /f nasm$(X)
-	-del /f ndisasm$(X)
-	rem cd rdoff && $(MAKE) clean
-
-distclean: clean
-	-del /f config.h
-	-del /f config.log
-	-del /f config.status
-	-del /f Makefile
-	-del /f *~
-	-del /f *.bak
-	-del /f *.lst
-	-del /f *.bin
-	-del /f output\*~
-	-del /f output\*.bak
-	-del /f test\*.lst
-	-del /f test\*.bin
-	-del /f test\*.$(O)
-	-del /f test\*.bin
-	-del /f/s autom4te*.cache
-	rem cd rdoff && $(MAKE) distclean
-
-cleaner: clean
-	-del /f $(PERLREQ)
-	-del /f *.man
-	-del /f nasm.spec
-	rem cd doc && $(MAKE) clean
-
-spotless: distclean cleaner
-	-del /f doc\Makefile
-	-del doc\*~
-	-del doc\*.bak
-
-strip:
-
-rdf:
-	# cd rdoff && $(MAKE)
-
-doc:
-	# cd doc && $(MAKE) all
-
-everything: all doc rdf
-
-#-- Magic hints to mkdep.pl --#
-# @object-ending: ".$(O)"
-# @path-separator: "/"
-# @exclude: "config/config.h"
-#-- Everything below is generated by mkdep.pl - do not edit --#
-asm/assemble.$(O): asm/assemble.c asm/assemble.h asm/directiv.h \
- asm/listing.h asm/pptok.h asm/preproc.h asm/tokens.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/disp8.h \
- include/error.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/directbl.$(O): asm/directbl.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/hashtbl.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/insnsi.h \
- x86/regs.h
-asm/directiv.$(O): asm/directiv.c asm/assemble.h asm/directiv.h asm/eval.h \
- asm/float.h asm/listing.h asm/pptok.h asm/preproc.h asm/stdscan.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/error.h include/iflag.h include/labels.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h output/outform.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/error.$(O): asm/error.c config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasmint.h include/nasmlib.h
-asm/eval.$(O): asm/eval.c asm/assemble.h asm/directiv.h asm/eval.h \
- asm/float.h asm/pptok.h asm/preproc.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/iflag.h \
- include/labels.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/iflaggen.h \
- x86/insnsi.h x86/regs.h
-asm/exprdump.$(O): asm/exprdump.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/insnsi.h x86/regs.h
-asm/exprlib.$(O): asm/exprlib.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/insnsi.h x86/regs.h
-asm/float.$(O): asm/float.c asm/directiv.h asm/float.h asm/pptok.h \
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/insnsi.h x86/regs.h
-asm/labels.$(O): asm/labels.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/error.h include/hashtbl.h include/labels.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/insnsi.h x86/regs.h
-asm/listing.$(O): asm/listing.c asm/directiv.h asm/listing.h asm/pptok.h \
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/insnsi.h x86/regs.h
-asm/nasm.$(O): asm/nasm.c asm/assemble.h asm/directiv.h asm/eval.h \
- asm/float.h asm/listing.h asm/parser.h asm/pptok.h asm/preproc.h \
- asm/stdscan.h asm/tokens.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/iflag.h include/insns.h \
- include/labels.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/raa.h include/saa.h include/strlist.h \
- include/tables.h include/ver.h output/outform.h x86/iflaggen.h x86/insnsi.h \
- x86/regs.h
-asm/parser.$(O): asm/parser.c asm/assemble.h asm/directiv.h asm/eval.h \
- asm/float.h asm/parser.h asm/pptok.h asm/preproc.h asm/stdscan.h \
- asm/tokens.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/iflag.h include/insns.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/pptok.$(O): asm/pptok.c asm/pptok.h asm/preproc.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/hashtbl.h \
- include/nasmint.h include/nasmlib.h
-asm/pragma.$(O): asm/pragma.c asm/assemble.h asm/directiv.h asm/pptok.h \
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/iflag.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/preproc-nop.$(O): asm/preproc-nop.c asm/directiv.h asm/listing.h \
- asm/pptok.h asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/insnsi.h x86/regs.h
-asm/preproc.$(O): asm/preproc.c asm/directiv.h asm/eval.h asm/listing.h \
- asm/pptok.h asm/preproc.h asm/quote.h asm/stdscan.h asm/tokens.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/error.h include/hashtbl.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/insnsi.h x86/regs.h
-asm/quote.$(O): asm/quote.c asm/quote.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h
-asm/rdstrnum.$(O): asm/rdstrnum.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/insnsi.h x86/regs.h
-asm/segalloc.$(O): asm/segalloc.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/stdscan.$(O): asm/stdscan.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/quote.h asm/stdscan.h asm/tokens.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/iflag.h \
- include/insns.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/iflaggen.h \
- x86/insnsi.h x86/regs.h
-asm/strfunc.$(O): asm/strfunc.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/insnsi.h x86/regs.h
-asm/tokhash.$(O): asm/tokhash.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/stdscan.h asm/tokens.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/hashtbl.h include/iflag.h include/insns.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-common/common.$(O): common/common.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-disasm/disasm.$(O): disasm/disasm.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/msvc.h config/unknown.h config/watcom.h disasm/disasm.h \
- disasm/sync.h include/compiler.h include/disp8.h include/iflag.h \
- include/insns.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/iflaggen.h \
- x86/insnsi.h x86/regdis.h x86/regs.h
-disasm/ndisasm.$(O): disasm/ndisasm.c asm/directiv.h asm/pptok.h \
- asm/preproc.h asm/tokens.h config/msvc.h config/unknown.h config/watcom.h \
- disasm/disasm.h disasm/sync.h include/compiler.h include/error.h \
- include/iflag.h include/insns.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- include/ver.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-disasm/sync.$(O): disasm/sync.c config/msvc.h config/unknown.h \
- config/watcom.h disasm/sync.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-macros/macros.$(O): macros/macros.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/hashtbl.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h output/outform.h \
- x86/insnsi.h x86/regs.h
-nasmlib/bsi.$(O): nasmlib/bsi.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h
-nasmlib/crc64.$(O): nasmlib/crc64.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/hashtbl.h include/nasmint.h \
- include/nasmlib.h
-nasmlib/file.$(O): nasmlib/file.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasmint.h \
- include/nasmlib.h nasmlib/file.h
-nasmlib/filename.$(O): nasmlib/filename.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasmint.h \
- include/nasmlib.h
-nasmlib/hashtbl.$(O): nasmlib/hashtbl.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/hashtbl.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/insnsi.h x86/regs.h
-nasmlib/ilog2.$(O): nasmlib/ilog2.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h
-nasmlib/malloc.$(O): nasmlib/malloc.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasmint.h \
- include/nasmlib.h
-nasmlib/md5c.$(O): nasmlib/md5c.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/md5.h include/nasmint.h
-nasmlib/mmap.$(O): nasmlib/mmap.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasmint.h \
- include/nasmlib.h nasmlib/file.h
-nasmlib/raa.$(O): nasmlib/raa.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h \
- include/raa.h
-nasmlib/rbtree.$(O): nasmlib/rbtree.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/rbtree.h
-nasmlib/readnum.$(O): nasmlib/readnum.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/insnsi.h x86/regs.h
-nasmlib/realpath.$(O): nasmlib/realpath.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h
-nasmlib/saa.$(O): nasmlib/saa.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h \
- include/saa.h
-nasmlib/srcfile.$(O): nasmlib/srcfile.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/hashtbl.h include/nasmint.h \
- include/nasmlib.h
-nasmlib/string.$(O): nasmlib/string.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h
-nasmlib/strlist.$(O): nasmlib/strlist.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h \
- include/strlist.h
-nasmlib/ver.$(O): nasmlib/ver.c include/ver.h version.h
-nasmlib/zerobuf.$(O): nasmlib/zerobuf.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h
-output/codeview.$(O): output/codeview.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/hashtbl.h include/md5.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/saa.h include/strlist.h include/tables.h output/outlib.h \
- output/pecoff.h version.h x86/insnsi.h x86/regs.h
-output/legacy.$(O): output/legacy.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/error.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h output/outlib.h \
- x86/insnsi.h x86/regs.h
-output/nulldbg.$(O): output/nulldbg.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-output/nullout.$(O): output/nullout.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-output/outaout.$(O): output/outaout.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h asm/stdscan.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/raa.h include/saa.h \
- include/strlist.h include/tables.h output/outform.h output/outlib.h \
- x86/insnsi.h x86/regs.h
-output/outas86.$(O): output/outas86.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/raa.h include/saa.h \
- include/strlist.h include/tables.h output/outform.h output/outlib.h \
- x86/insnsi.h x86/regs.h
-output/outbin.$(O): output/outbin.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h asm/stdscan.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/labels.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/saa.h \
- include/strlist.h include/tables.h output/outform.h output/outlib.h \
- x86/insnsi.h x86/regs.h
-output/outcoff.$(O): output/outcoff.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/raa.h include/saa.h \
- include/strlist.h include/tables.h output/outform.h output/outlib.h \
- output/pecoff.h x86/insnsi.h x86/regs.h
-output/outdbg.$(O): output/outdbg.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/error.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h output/outform.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-output/outelf.$(O): output/outelf.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h asm/stdscan.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/raa.h include/rbtree.h \
- include/saa.h include/strlist.h include/tables.h include/ver.h \
- output/dwarf.h output/elf.h output/outelf.h output/outform.h \
- output/outlib.h output/stabs.h x86/insnsi.h x86/regs.h
-output/outform.$(O): output/outform.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h output/outform.h \
- x86/insnsi.h x86/regs.h
-output/outieee.$(O): output/outieee.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- include/ver.h output/outform.h output/outlib.h x86/insnsi.h x86/regs.h
-output/outlib.$(O): output/outlib.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/error.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h output/outlib.h \
- x86/insnsi.h x86/regs.h
-output/outmacho.$(O): output/outmacho.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/labels.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/raa.h \
- include/rbtree.h include/saa.h include/strlist.h include/tables.h \
- output/outform.h output/outlib.h x86/insnsi.h x86/regs.h
-output/outobj.$(O): output/outobj.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h asm/stdscan.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- include/ver.h output/outform.h output/outlib.h x86/insnsi.h x86/regs.h
-output/outrdf2.$(O): output/outrdf2.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/rdoff.h include/saa.h \
- include/strlist.h include/tables.h output/outform.h output/outlib.h \
- x86/insnsi.h x86/regs.h
-stdlib/snprintf.$(O): stdlib/snprintf.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h
-stdlib/strlcpy.$(O): stdlib/strlcpy.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h
-stdlib/strnlen.$(O): stdlib/strnlen.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h
-stdlib/vsnprintf.$(O): stdlib/vsnprintf.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasmint.h \
- include/nasmlib.h
-x86/disp8.$(O): x86/disp8.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/disp8.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/insnsi.h \
- x86/regs.h
-x86/iflag.$(O): x86/iflag.c config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/nasmint.h x86/iflaggen.h
-x86/insnsa.$(O): x86/insnsa.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-x86/insnsb.$(O): x86/insnsb.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-x86/insnsd.$(O): x86/insnsd.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-x86/insnsn.$(O): x86/insnsn.c config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/nasmint.h include/tables.h x86/insnsi.h
-x86/regdis.$(O): x86/regdis.c x86/regdis.h x86/regs.h
-x86/regflags.$(O): x86/regflags.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/insnsi.h x86/regs.h
-x86/regs.$(O): x86/regs.c config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/nasmint.h include/tables.h x86/insnsi.h
-x86/regvals.$(O): x86/regvals.c config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/tables.h \
- x86/insnsi.h
--- a/nasmbuild/nasm-2.13rc9/Mkfiles/netware.mak	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,363 +0,0 @@
-# -*- makefile -*- GNU Makefile for NetWare target
-
-PROOT=.
-OBJDIR=release
-
--include $(OBJDIR)/version.mak
-
-TARGETS=nasm.nlm ndisasm.nlm
-
-PERL=perl
-
-CROSSPREFIX=i586-netware-
-
-CC=$(CROSSPREFIX)gcc
-LD=$(CC)
-
-BINSUFFIX=.nlm
-
-VERSION=$(NASM_MAJOR_VER).$(NASM_MINOR_VER).$(NASM_SUBMINOR_VER)
-
-CFLAGS=-g -O2 -Wall -std=c99 -pedantic -D__NETWARE__ -D_POSIX_SOURCE -DHAVE_CONFIG_H -I.
-LDFLAGS=-Wl,--nlm-description="NASM $(NASM_VER) - the Netwide Assembler (gcc build)"
-LDFLAGS+=-Wl,--nlm-copyright="NASM is licensed under LGPL."
-LDFLAGS+=-Wl,--nlm-version=$(VERSION)
-LDFLAGS+=-Wl,--nlm-kernelspace
-LDFLAGS+=-Wl,--nlm-posixflag
-LDFLAGS+=-s
-
-O = o
-
-#-- Begin File Lists --#
-# Edit in Makefile.in, not here!
-NASM =	nasm.o
-NDISASM = ndisasm.o
-
-LIBOBJ = snprintf.o vsnprintf.o strlcpy.o \
-	strnlen.o \
-	ver.o \
-	crc64.o malloc.o \
-	md5c.o string.o \
-	file.o mmap.o ilog2.o \
-	realpath.o filename.o srcfile.o \
-	zerobuf.o readnum.o bsi.o \
-	rbtree.o hashtbl.o \
-	raa.o saa.o \
-	strlist.o \
-	common.o \
-	insnsa.o insnsb.o insnsd.o insnsn.o \
-	regs.o regvals.o regflags.o regdis.o \
-	disp8.o iflag.o \
-	\
-	error.o \
-	float.o \
-	directiv.o directbl.o \
-	pragma.o \
-	assemble.o labels.o parser.o \
-	preproc.o quote.o pptok.o \
-	listing.o eval.o exprlib.o exprdump.o \
-	stdscan.o \
-	strfunc.o tokhash.o \
-	segalloc.o \
-	preproc-nop.o \
-	rdstrnum.o \
-	\
-	macros.o \
-	\
-	outform.o outlib.o legacy.o \
-	nulldbg.o nullout.o \
-	outbin.o outaout.o outcoff.o \
-	outelf.o \
-	outobj.o outas86.o outrdf2.o \
-	outdbg.o outieee.o outmacho.o \
-	codeview.o \
-	\
-	disasm.o sync.o
-
-SUBDIRS  = stdlib nasmlib output asm disasm x86 common macros
-XSUBDIRS = test doc nsis
-#-- End File Lists --#
-
-NASM_OBJ = $(addprefix $(OBJDIR)/,$(notdir $(NASM))) $(EOLIST)
-NDIS_OBJ = $(addprefix $(OBJDIR)/,$(notdir $(NDISASM))) $(EOLIST)
-
-VPATH  = *.c $(PROOT) $(PROOT)/output
-
-
-all: $(OBJDIR) config.h $(TARGETS)
-
-$(OBJDIR)/%.o: %.c
-	$(CC) $(CFLAGS) -c -o $@ $<
-
-nasm$(BINSUFFIX): $(NASM_OBJ)
-	$(LD) $(LDFLAGS) -o $@ $^
-
-ndisasm$(BINSUFFIX): $(NDIS_OBJ)
-	$(LD) $(LDFLAGS) -o $@ $^
-
-$(OBJDIR):
-	@mkdir $@
-
-config.h: $(PROOT)/Mkfiles/netware.mak
-	@echo Creating $@
-	@echo $(DL)/* $@ for NetWare target.$(DL) > $@
-	@echo $(DL)** Do not edit this file - it is created by make!$(DL) >> $@
-	@echo $(DL)** All your changes will be lost!!$(DL) >> $@
-	@echo $(DL)*/$(DL) >> $@
-	@echo $(DL)#ifndef __NETWARE__$(DL) >> $@
-	@echo $(DL)#error This $(notdir $@) is created for NetWare platform!$(DL) >> $@
-	@echo $(DL)#endif$(DL) >> $@
-	@echo $(DL)#define PACKAGE_VERSION "$(NASM_VER)"$(DL) >> $@
-	@echo $(DL)#define OS "i586-pc-libc-NetWare"$(DL) >> $@
-	@echo $(DL)#define HAVE_DECL_STRCASECMP 1$(DL) >> $@
-	@echo $(DL)#define HAVE_DECL_STRICMP 1$(DL) >> $@
-	@echo $(DL)#define HAVE_DECL_STRNCASECMP 1$(DL) >> $@
-	@echo $(DL)#define HAVE_DECL_STRNICMP 1$(DL) >> $@
-	@echo $(DL)#define HAVE_INTTYPES_H 1$(DL) >> $@
-	@echo $(DL)#define HAVE_LIMITS_H 1$(DL) >> $@
-	@echo $(DL)#define HAVE_MEMORY_H 1$(DL) >> $@
-	@echo $(DL)#define HAVE_SNPRINTF 1$(DL) >> $@
-	@echo $(DL)#define HAVE_STDBOOL_H 1$(DL) >> $@
-	@echo $(DL)#define HAVE_STDINT_H 1$(DL) >> $@
-	@echo $(DL)#define HAVE_STDLIB_H 1$(DL) >> $@
-	@echo $(DL)#define HAVE_STRCASECMP 1$(DL) >> $@
-	@echo $(DL)#define HAVE_STRCSPN 1$(DL) >> $@
-	@echo $(DL)#define HAVE_STRICMP 1$(DL) >> $@
-	@echo $(DL)#define HAVE_STRINGS_H 1$(DL) >> $@
-	@echo $(DL)#define HAVE_STRING_H 1$(DL) >> $@
-	@echo $(DL)#define HAVE_STRNCASECMP 1$(DL) >> $@
-	@echo $(DL)#define HAVE_STRNICMP 1$(DL) >> $@
-	@echo $(DL)#define HAVE_STRSPN 1$(DL) >> $@
-	@echo $(DL)#define HAVE_SYS_STAT_H 1$(DL) >> $@
-	@echo $(DL)#define HAVE_SYS_TYPES_H 1$(DL) >> $@
-	@echo $(DL)#define HAVE_UNISTD_H 1$(DL) >> $@
-	@echo $(DL)#define HAVE_VSNPRINTF 1$(DL) >> $@
-	@echo $(DL)#define STDC_HEADERS 1$(DL) >> $@
-	@echo $(DL)#ifndef _GNU_SOURCE$(DL) >> $@
-	@echo $(DL)#define _GNU_SOURCE 1$(DL) >> $@
-	@echo $(DL)#endif$(DL) >> $@
-	@echo $(DL)#define ldiv __CW_ldiv$(DL) >> $@
-
-clean:
-	-$(RM) -r $(OBJDIR)
-	-$(RM) config.h
-
-distclean: clean
-	-$(RM) $(TARGETS)
-
-$(OBJDIR)/version.mak: $(PROOT)/version $(PROOT)/version.pl $(OBJDIR)
-	@$(PERL) $(PROOT)/version.pl make < $< > $@
-
-#-- Magic hints to mkdep.pl --#
-# @object-ending: ".o"
-# @path-separator: ""
-# @continuation: "\"
-#-- Everything below is generated by mkdep.pl - do not edit --#
-assemble.o: assemble.c assemble.h directiv.h listing.h pptok.h preproc.h \
- tokens.h config.h msvc.h unknown.h watcom.h compiler.h disp8.h error.h \
- iflag.h insns.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h tables.h \
- iflaggen.h insnsi.h regs.h
-directbl.o: directbl.c directiv.h pptok.h preproc.h config.h msvc.h \
- unknown.h watcom.h compiler.h hashtbl.h nasm.h nasmint.h nasmlib.h \
- opflags.h strlist.h tables.h insnsi.h regs.h
-directiv.o: directiv.c assemble.h directiv.h eval.h float.h listing.h \
- pptok.h preproc.h stdscan.h config.h msvc.h unknown.h watcom.h compiler.h \
- error.h iflag.h labels.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h \
- tables.h outform.h iflaggen.h insnsi.h regs.h
-error.o: error.c config.h msvc.h unknown.h watcom.h compiler.h error.h \
- nasmint.h nasmlib.h
-eval.o: eval.c assemble.h directiv.h eval.h float.h pptok.h preproc.h \
- config.h msvc.h unknown.h watcom.h compiler.h error.h iflag.h labels.h \
- nasm.h nasmint.h nasmlib.h opflags.h strlist.h tables.h iflaggen.h insnsi.h \
- regs.h
-exprdump.o: exprdump.c directiv.h pptok.h preproc.h config.h msvc.h \
- unknown.h watcom.h compiler.h nasm.h nasmint.h nasmlib.h opflags.h \
- strlist.h tables.h insnsi.h regs.h
-exprlib.o: exprlib.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h tables.h \
- insnsi.h regs.h
-float.o: float.c directiv.h float.h pptok.h preproc.h config.h msvc.h \
- unknown.h watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h opflags.h \
- strlist.h tables.h insnsi.h regs.h
-labels.o: labels.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h error.h hashtbl.h labels.h nasm.h nasmint.h nasmlib.h \
- opflags.h strlist.h tables.h insnsi.h regs.h
-listing.o: listing.c directiv.h listing.h pptok.h preproc.h config.h msvc.h \
- unknown.h watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h opflags.h \
- strlist.h tables.h insnsi.h regs.h
-nasm.o: nasm.c assemble.h directiv.h eval.h float.h listing.h parser.h \
- pptok.h preproc.h stdscan.h tokens.h config.h msvc.h unknown.h watcom.h \
- compiler.h error.h iflag.h insns.h labels.h nasm.h nasmint.h nasmlib.h \
- opflags.h raa.h saa.h strlist.h tables.h ver.h outform.h iflaggen.h \
- insnsi.h regs.h
-parser.o: parser.c assemble.h directiv.h eval.h float.h parser.h pptok.h \
- preproc.h stdscan.h tokens.h config.h msvc.h unknown.h watcom.h compiler.h \
- error.h iflag.h insns.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h \
- tables.h iflaggen.h insnsi.h regs.h
-pptok.o: pptok.c pptok.h preproc.h config.h msvc.h unknown.h watcom.h \
- compiler.h hashtbl.h nasmint.h nasmlib.h
-pragma.o: pragma.c assemble.h directiv.h pptok.h preproc.h config.h msvc.h \
- unknown.h watcom.h compiler.h error.h iflag.h nasm.h nasmint.h nasmlib.h \
- opflags.h strlist.h tables.h iflaggen.h insnsi.h regs.h
-preproc-nop.o: preproc-nop.c directiv.h listing.h pptok.h preproc.h config.h \
- msvc.h unknown.h watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h \
- opflags.h strlist.h tables.h insnsi.h regs.h
-preproc.o: preproc.c directiv.h eval.h listing.h pptok.h preproc.h quote.h \
- stdscan.h tokens.h config.h msvc.h unknown.h watcom.h compiler.h error.h \
- hashtbl.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h tables.h insnsi.h \
- regs.h
-quote.o: quote.c quote.h config.h msvc.h unknown.h watcom.h compiler.h \
- nasmint.h nasmlib.h
-rdstrnum.o: rdstrnum.c directiv.h pptok.h preproc.h config.h msvc.h \
- unknown.h watcom.h compiler.h nasm.h nasmint.h nasmlib.h opflags.h \
- strlist.h tables.h insnsi.h regs.h
-segalloc.o: segalloc.c directiv.h pptok.h preproc.h tokens.h config.h msvc.h \
- unknown.h watcom.h compiler.h iflag.h insns.h nasm.h nasmint.h nasmlib.h \
- opflags.h strlist.h tables.h iflaggen.h insnsi.h regs.h
-stdscan.o: stdscan.c directiv.h pptok.h preproc.h quote.h stdscan.h tokens.h \
- config.h msvc.h unknown.h watcom.h compiler.h error.h iflag.h insns.h \
- nasm.h nasmint.h nasmlib.h opflags.h strlist.h tables.h iflaggen.h insnsi.h \
- regs.h
-strfunc.o: strfunc.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h tables.h \
- insnsi.h regs.h
-tokhash.o: tokhash.c directiv.h pptok.h preproc.h stdscan.h tokens.h \
- config.h msvc.h unknown.h watcom.h compiler.h hashtbl.h iflag.h insns.h \
- nasm.h nasmint.h nasmlib.h opflags.h strlist.h tables.h iflaggen.h insnsi.h \
- regs.h
-common.o: common.c directiv.h pptok.h preproc.h tokens.h config.h msvc.h \
- unknown.h watcom.h compiler.h iflag.h insns.h nasm.h nasmint.h nasmlib.h \
- opflags.h strlist.h tables.h iflaggen.h insnsi.h regs.h
-disasm.o: disasm.c directiv.h pptok.h preproc.h tokens.h config.h msvc.h \
- unknown.h watcom.h disasm.h sync.h compiler.h disp8.h iflag.h insns.h \
- nasm.h nasmint.h nasmlib.h opflags.h strlist.h tables.h iflaggen.h insnsi.h \
- regdis.h regs.h
-ndisasm.o: ndisasm.c directiv.h pptok.h preproc.h tokens.h config.h msvc.h \
- unknown.h watcom.h disasm.h sync.h compiler.h error.h iflag.h insns.h \
- nasm.h nasmint.h nasmlib.h opflags.h strlist.h tables.h ver.h iflaggen.h \
- insnsi.h regs.h
-sync.o: sync.c config.h msvc.h unknown.h watcom.h sync.h compiler.h \
- nasmint.h nasmlib.h
-macros.o: macros.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h hashtbl.h nasm.h nasmint.h nasmlib.h opflags.h \
- strlist.h tables.h outform.h insnsi.h regs.h
-bsi.o: bsi.c config.h msvc.h unknown.h watcom.h compiler.h nasmint.h \
- nasmlib.h
-crc64.o: crc64.c config.h msvc.h unknown.h watcom.h compiler.h hashtbl.h \
- nasmint.h nasmlib.h
-file.o: file.c config.h msvc.h unknown.h watcom.h compiler.h error.h \
- nasmint.h nasmlib.h file.h
-filename.o: filename.c config.h msvc.h unknown.h watcom.h compiler.h error.h \
- nasmint.h nasmlib.h
-hashtbl.o: hashtbl.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h hashtbl.h nasm.h nasmint.h nasmlib.h opflags.h \
- strlist.h tables.h insnsi.h regs.h
-ilog2.o: ilog2.c config.h msvc.h unknown.h watcom.h compiler.h nasmint.h \
- nasmlib.h
-malloc.o: malloc.c config.h msvc.h unknown.h watcom.h compiler.h error.h \
- nasmint.h nasmlib.h
-md5c.o: md5c.c config.h msvc.h unknown.h watcom.h compiler.h md5.h nasmint.h
-mmap.o: mmap.c config.h msvc.h unknown.h watcom.h compiler.h error.h \
- nasmint.h nasmlib.h file.h
-raa.o: raa.c config.h msvc.h unknown.h watcom.h compiler.h nasmint.h \
- nasmlib.h raa.h
-rbtree.o: rbtree.c config.h msvc.h unknown.h watcom.h compiler.h nasmint.h \
- rbtree.h
-readnum.o: readnum.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h \
- tables.h insnsi.h regs.h
-realpath.o: realpath.c config.h msvc.h unknown.h watcom.h compiler.h \
- nasmint.h nasmlib.h
-saa.o: saa.c config.h msvc.h unknown.h watcom.h compiler.h nasmint.h \
- nasmlib.h saa.h
-srcfile.o: srcfile.c config.h msvc.h unknown.h watcom.h compiler.h hashtbl.h \
- nasmint.h nasmlib.h
-string.o: string.c config.h msvc.h unknown.h watcom.h compiler.h nasmint.h \
- nasmlib.h
-strlist.o: strlist.c config.h msvc.h unknown.h watcom.h compiler.h nasmint.h \
- nasmlib.h strlist.h
-ver.o: ver.c ver.h version.h
-zerobuf.o: zerobuf.c config.h msvc.h unknown.h watcom.h compiler.h nasmint.h \
- nasmlib.h
-codeview.o: codeview.c directiv.h pptok.h preproc.h config.h msvc.h \
- unknown.h watcom.h compiler.h error.h hashtbl.h md5.h nasm.h nasmint.h \
- nasmlib.h opflags.h saa.h strlist.h tables.h outlib.h pecoff.h version.h \
- insnsi.h regs.h
-legacy.o: legacy.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h \
- tables.h outlib.h insnsi.h regs.h
-nulldbg.o: nulldbg.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h \
- tables.h outlib.h insnsi.h regs.h
-nullout.o: nullout.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h \
- tables.h outlib.h insnsi.h regs.h
-outaout.o: outaout.c directiv.h eval.h pptok.h preproc.h stdscan.h config.h \
- msvc.h unknown.h watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h \
- opflags.h raa.h saa.h strlist.h tables.h outform.h outlib.h insnsi.h regs.h
-outas86.o: outas86.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h opflags.h raa.h \
- saa.h strlist.h tables.h outform.h outlib.h insnsi.h regs.h
-outbin.o: outbin.c directiv.h eval.h pptok.h preproc.h stdscan.h config.h \
- msvc.h unknown.h watcom.h compiler.h error.h labels.h nasm.h nasmint.h \
- nasmlib.h opflags.h saa.h strlist.h tables.h outform.h outlib.h insnsi.h \
- regs.h
-outcoff.o: outcoff.c directiv.h eval.h pptok.h preproc.h config.h msvc.h \
- unknown.h watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h opflags.h \
- raa.h saa.h strlist.h tables.h outform.h outlib.h pecoff.h insnsi.h regs.h
-outdbg.o: outdbg.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h \
- tables.h outform.h outlib.h insnsi.h regs.h
-outelf.o: outelf.c directiv.h eval.h pptok.h preproc.h stdscan.h config.h \
- msvc.h unknown.h watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h \
- opflags.h raa.h rbtree.h saa.h strlist.h tables.h ver.h dwarf.h elf.h \
- outelf.h outform.h outlib.h stabs.h insnsi.h regs.h
-outform.o: outform.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h tables.h \
- outform.h insnsi.h regs.h
-outieee.o: outieee.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h \
- tables.h ver.h outform.h outlib.h insnsi.h regs.h
-outlib.o: outlib.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h \
- tables.h outlib.h insnsi.h regs.h
-outmacho.o: outmacho.c directiv.h pptok.h preproc.h config.h msvc.h \
- unknown.h watcom.h compiler.h error.h labels.h nasm.h nasmint.h nasmlib.h \
- opflags.h raa.h rbtree.h saa.h strlist.h tables.h outform.h outlib.h \
- insnsi.h regs.h
-outobj.o: outobj.c directiv.h eval.h pptok.h preproc.h stdscan.h config.h \
- msvc.h unknown.h watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h \
- opflags.h strlist.h tables.h ver.h outform.h outlib.h insnsi.h regs.h
-outrdf2.o: outrdf2.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h error.h nasm.h nasmint.h nasmlib.h opflags.h rdoff.h \
- saa.h strlist.h tables.h outform.h outlib.h insnsi.h regs.h
-snprintf.o: snprintf.c config.h msvc.h unknown.h watcom.h compiler.h \
- nasmint.h nasmlib.h
-strlcpy.o: strlcpy.c config.h msvc.h unknown.h watcom.h compiler.h nasmint.h
-strnlen.o: strnlen.c config.h msvc.h unknown.h watcom.h compiler.h nasmint.h
-vsnprintf.o: vsnprintf.c config.h msvc.h unknown.h watcom.h compiler.h \
- error.h nasmint.h nasmlib.h
-disp8.o: disp8.c directiv.h pptok.h preproc.h config.h msvc.h unknown.h \
- watcom.h compiler.h disp8.h nasm.h nasmint.h nasmlib.h opflags.h strlist.h \
- tables.h insnsi.h regs.h
-iflag.o: iflag.c config.h msvc.h unknown.h watcom.h compiler.h iflag.h \
- nasmint.h iflaggen.h
-insnsa.o: insnsa.c directiv.h pptok.h preproc.h tokens.h config.h msvc.h \
- unknown.h watcom.h compiler.h iflag.h insns.h nasm.h nasmint.h nasmlib.h \
- opflags.h strlist.h tables.h iflaggen.h insnsi.h regs.h
-insnsb.o: insnsb.c directiv.h pptok.h preproc.h tokens.h config.h msvc.h \
- unknown.h watcom.h compiler.h iflag.h insns.h nasm.h nasmint.h nasmlib.h \
- opflags.h strlist.h tables.h iflaggen.h insnsi.h regs.h
-insnsd.o: insnsd.c directiv.h pptok.h preproc.h tokens.h config.h msvc.h \
- unknown.h watcom.h compiler.h iflag.h insns.h nasm.h nasmint.h nasmlib.h \
- opflags.h strlist.h tables.h iflaggen.h insnsi.h regs.h
-insnsn.o: insnsn.c config.h msvc.h unknown.h watcom.h compiler.h nasmint.h \
- tables.h insnsi.h
-regdis.o: regdis.c regdis.h regs.h
-regflags.o: regflags.c directiv.h pptok.h preproc.h config.h msvc.h \
- unknown.h watcom.h compiler.h nasm.h nasmint.h nasmlib.h opflags.h \
- strlist.h tables.h insnsi.h regs.h
-regs.o: regs.c config.h msvc.h unknown.h watcom.h compiler.h nasmint.h \
- tables.h insnsi.h
-regvals.o: regvals.c config.h msvc.h unknown.h watcom.h compiler.h nasmint.h \
- tables.h insnsi.h
--- a/nasmbuild/nasm-2.13rc9/Mkfiles/openwcom.mak	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,591 +0,0 @@
-# -*- makefile -*-
-#
-# Makefile for building NASM using OpenWatcom
-# cross-compile on a DOS/Win32/OS2/Linux platform host
-#
-
-top_srcdir  = .
-srcdir      = .
-VPATH       = $(srcdir)/asm;$(srcdir)/x86;asm;x86;$(srcdir)/macros;macros;$(srcdir)/output;$(srcdir)/lib;$(srcdir)/common;$(srcdir)/stdlib;$(srcdir)/nasmlib;$(srcdir)/disasm
-prefix      = C:\Program Files\NASM
-exec_prefix = $(prefix)
-bindir      = $(prefix)\bin
-mandir      = $(prefix)\man
-
-CC      = *wcl386
-DEBUG       =
-CFLAGS      = -zq -6 -ox -wx -ze -fpi $(DEBUG)
-BUILD_CFLAGS    = $(CFLAGS) $(%TARGET_CFLAGS)
-INTERNAL_CFLAGS = -I$(srcdir) -I. -I$(srcdir)/include -I$(srcdir)/x86 -Ix86 -I$(srcdir)/asm -Iasm -I$(srcdir)/disasm -I$(srcdir)/output
-ALL_CFLAGS  = $(BUILD_CFLAGS) $(INTERNAL_CFLAGS)
-LD      = *wlink
-LDEBUG      =
-LDFLAGS     = op quiet $(%TARGET_LFLAGS) $(LDEBUG)
-LIBS        =
-PERL        = perl -I$(srcdir)/perllib -I$(srcdir)
-
-STRIP       = wstrip
-
-# Binary suffixes
-O               = obj
-X               = .exe
-
-# WMAKE errors out if a suffix is declared more than once, including
-# its own built-in declarations.  Thus, we need to explicitly clear the list
-# first.  Also, WMAKE only allows implicit rules that point "to the left"
-# in this list!
-.SUFFIXES:
-.SUFFIXES: .man .1 .$(O) .i .c
-
-# Needed to find C files anywhere but in the current directory
-.c : $(VPATH)
-
-.c.$(O):
-    @set INCLUDE=
-    $(CC) -c $(ALL_CFLAGS) -fo=$^@ $[@
-
-#-- Begin File Lists --#
-# Edit in Makefile.in, not here!
-NASM =	asm/nasm.$(O)
-NDISASM = disasm/ndisasm.$(O)
-
-LIBOBJ = stdlib/snprintf.$(O) stdlib/vsnprintf.$(O) stdlib/strlcpy.$(O) &
-	stdlib/strnlen.$(O) &
-	nasmlib/ver.$(O) &
-	nasmlib/crc64.$(O) nasmlib/malloc.$(O) &
-	nasmlib/md5c.$(O) nasmlib/string.$(O) &
-	nasmlib/file.$(O) nasmlib/mmap.$(O) nasmlib/ilog2.$(O) &
-	nasmlib/realpath.$(O) nasmlib/filename.$(O) nasmlib/srcfile.$(O) &
-	nasmlib/zerobuf.$(O) nasmlib/readnum.$(O) nasmlib/bsi.$(O) &
-	nasmlib/rbtree.$(O) nasmlib/hashtbl.$(O) &
-	nasmlib/raa.$(O) nasmlib/saa.$(O) &
-	nasmlib/strlist.$(O) &
-	common/common.$(O) &
-	x86/insnsa.$(O) x86/insnsb.$(O) x86/insnsd.$(O) x86/insnsn.$(O) &
-	x86/regs.$(O) x86/regvals.$(O) x86/regflags.$(O) x86/regdis.$(O) &
-	x86/disp8.$(O) x86/iflag.$(O) &
-	&
-	asm/error.$(O) &
-	asm/float.$(O) &
-	asm/directiv.$(O) asm/directbl.$(O) &
-	asm/pragma.$(O) &
-	asm/assemble.$(O) asm/labels.$(O) asm/parser.$(O) &
-	asm/preproc.$(O) asm/quote.$(O) asm/pptok.$(O) &
-	asm/listing.$(O) asm/eval.$(O) asm/exprlib.$(O) asm/exprdump.$(O) &
-	asm/stdscan.$(O) &
-	asm/strfunc.$(O) asm/tokhash.$(O) &
-	asm/segalloc.$(O) &
-	asm/preproc-nop.$(O) &
-	asm/rdstrnum.$(O) &
-	&
-	macros/macros.$(O) &
-	&
-	output/outform.$(O) output/outlib.$(O) output/legacy.$(O) &
-	output/nulldbg.$(O) output/nullout.$(O) &
-	output/outbin.$(O) output/outaout.$(O) output/outcoff.$(O) &
-	output/outelf.$(O) &
-	output/outobj.$(O) output/outas86.$(O) output/outrdf2.$(O) &
-	output/outdbg.$(O) output/outieee.$(O) output/outmacho.$(O) &
-	output/codeview.$(O) &
-	&
-	disasm/disasm.$(O) disasm/sync.$(O)
-
-SUBDIRS  = stdlib nasmlib output asm disasm x86 common macros
-XSUBDIRS = test doc nsis
-#-- End File Lists --#
-
-what:   .SYMBOLIC
-    @echo Please build "dos", "win32", "os2" or "linux386"
-
-dos:    .SYMBOLIC
-    @set TARGET_CFLAGS=-bt=DOS -I"$(%WATCOM)/h"
-    @set TARGET_LFLAGS=sys causeway
-    @%make all
-
-win32:  .SYMBOLIC
-    @set TARGET_CFLAGS=-bt=NT -I"$(%WATCOM)/h" -I"$(%WATCOM)/h/nt"
-    @set TARGET_LFLAGS=sys nt
-    @%make all
-
-os2:    .SYMBOLIC
-    @set TARGET_CFLAGS=-bt=OS2 -I"$(%WATCOM)/h" -I"$(%WATCOM)/h/os2"
-    @set TARGET_LFLAGS=sys os2v2
-    @%make all
-
-linux386:   .SYMBOLIC
-    @set TARGET_CFLAGS=-bt=LINUX -I"$(%WATCOM)/lh"
-    @set TARGET_LFLAGS=sys linux
-    @%make all
-
-all: perlreq nasm$(X) ndisasm$(X) .SYMBOLIC
-#   cd rdoff && $(MAKE) all
-
-NASMLIB = nasm.lib
-
-nasm$(X): $(NASM) $(NASMLIB)
-    $(LD) $(LDFLAGS) name nasm$(X) libr {$(NASMLIB) $(LIBS)} file {$(NASM)}
-
-ndisasm$(X): $(NDISASM) $(LIBOBJ)
-    $(LD) $(LDFLAGS) name ndisasm$(X) libr {$(NASMLIB) $(LIBS)} file {$(NDISASM)}
-
-nasm.lib: $(LIBOBJ)
-    wlib -q -b -n $@ $(LIBOBJ)
-
-# These source files are automagically generated from a single
-# instruction-table file by a Perl script. They're distributed,
-# though, so it isn't necessary to have Perl just to recompile NASM
-# from the distribution.
-
-insns.pl: insns-iflags.pl
-
-INSDEP = x86/insns.dat x86/insns.pl x86/insns-iflags.pl
-
-x86/iflag.c: $(INSDEP)
-    $(PERL) $(srcdir)/x86/insns.pl -fc $(srcdir)/x86/insns.dat x86/iflag.c
-x86/iflaggen.h: $(INSDEP)
-    $(PERL) $(srcdir)/x86/insns.pl -fh $(srcdir)/x86/insns.dat x86/iflaggen.h
-x86/insnsb.c: $(INSDEP)
-    $(PERL) $(srcdir)/x86/insns.pl -b $(srcdir)/x86/insns.dat x86/insnsb.c
-x86/insnsa.c: $(INSDEP)
-    $(PERL) $(srcdir)/x86/insns.pl -a $(srcdir)/x86/insns.dat x86/insnsa.c
-x86/insnsd.c: $(INSDEP)
-    $(PERL) $(srcdir)/x86/insns.pl -d $(srcdir)/x86/insns.dat x86/insnsd.c
-x86/insnsi.h: $(INSDEP)
-    $(PERL) $(srcdir)/x86/insns.pl -i $(srcdir)/x86/insns.dat x86/insnsi.h
-x86/insnsn.c: $(INSDEP)
-    $(PERL) $(srcdir)/x86/insns.pl -n $(srcdir)/x86/insns.dat x86/insnsn.c
-
-# These files contains all the standard macros that are derived from
-# the version number.
-version.h: version version.pl
-    $(PERL) $(srcdir)/version.pl h < $(srcdir)/version > version.h
-
-version.mac: version version.pl
-    $(PERL) $(srcdir)/version.pl mac < $(srcdir)/version > version.mac
-
-# This source file is generated from the standard macros file
-# `standard.mac' by another Perl script. Again, it's part of the
-# standard distribution.
-
-macros/macros.c: macros/macros.pl asm/pptok.ph version.mac $(srcdir)/macros/*.mac $(srcdir)/output/*.mac
-    $(PERL) $(srcdir)/macros/macros.pl version.mac $(srcdir)/macros/*.mac $(srcdir)/output/*.mac
-
-# These source files are generated from regs.dat by yet another
-# perl script.
-x86/regs.c: x86/regs.dat x86/regs.pl
-    $(PERL) $(srcdir)/x86/regs.pl c $(srcdir)/x86/regs.dat > x86/regs.c
-x86/regflags.c: x86/regs.dat x86/regs.pl
-    $(PERL) $(srcdir)/x86/regs.pl fc $(srcdir)/x86/regs.dat > x86/regflags.c
-x86/regdis.c: x86/regs.dat x86/regs.pl
-    $(PERL) $(srcdir)/x86/regs.pl dc $(srcdir)/x86/regs.dat > x86/regdis.c
-x86/regdis.h: x86/regs.dat x86/regs.pl
-    $(PERL) $(srcdir)/x86/regs.pl dh $(srcdir)/x86/regs.dat > x86/regdis.h
-x86/regvals.c: x86/regs.dat x86/regs.pl
-    $(PERL) $(srcdir)/x86/regs.pl vc $(srcdir)/x86/regs.dat > x86/regvals.c
-x86/regs.h: x86/regs.dat x86/regs.pl
-    $(PERL) $(srcdir)/x86/regs.pl h $(srcdir)/x86/regs.dat > x86/regs.h
-
-# Assembler token hash
-asm/tokhash.c: x86/insns.dat x86/regs.dat asm/tokens.dat asm/tokhash.pl perllib/phash.ph
-    $(PERL) $(srcdir)/asm/tokhash.pl c $(srcdir)/x86/insns.dat $(srcdir)/x86/regs.dat &
-        $(srcdir)/asm/tokens.dat > asm/tokhash.c
-
-# Assembler token metadata
-asm/tokens.h: x86/insns.dat x86/regs.dat asm/tokens.dat asm/tokhash.pl perllib/phash.ph
-    $(PERL) $(srcdir)/asm/tokhash.pl h $(srcdir)/x86/insns.dat $(srcdir)/x86/regs.dat &
-        $(srcdir)/asm/tokens.dat > asm/tokens.h
-
-# Preprocessor token hash
-asm/pptok.h: asm/pptok.dat asm/pptok.pl perllib/phash.ph
-    $(PERL) $(srcdir)/asm/pptok.pl h $(srcdir)/asm/pptok.dat asm/pptok.h
-asm/pptok.c: asm/pptok.dat asm/pptok.pl perllib/phash.ph
-    $(PERL) $(srcdir)/asm/pptok.pl c $(srcdir)/asm/pptok.dat asm/pptok.c
-asm/pptok.ph: asm/pptok.dat asm/pptok.pl perllib/phash.ph
-    $(PERL) $(srcdir)/asm/pptok.pl ph $(srcdir)/asm/pptok.dat asm/pptok.ph
-
-# Directives hash
-asm/directiv.h: asm/directiv.dat asm/directiv.pl perllib/phash.ph
-    $(PERL) $(srcdir)/asm/directiv.pl h $(srcdir)/asm/directiv.dat asm/directiv.h
-asm/directbl.c: asm/directiv.dat asm/directiv.pl perllib/phash.ph
-    $(PERL) $(srcdir)/asm/directiv.pl c $(srcdir)/asm/directiv.dat asm/directbl.c
-
-# This target generates all files that require perl.
-# This allows easier generation of distribution (see dist target).
-PERLREQ = macros/macros.c x86/insnsb.c x86/insnsa.c x86/insnsd.c x86/insnsi.h x86/insnsn.c &
-	  x86/regs.c x86/regs.h x86/regflags.c x86/regdis.c x86/regvals.c asm/tokhash.c asm/tokens.h &
-	  version.h version.mac asm/pptok.h asm/pptok.c x86/iflag.c
-perlreq: $(PERLREQ) .SYMBOLIC
-
-clean: .SYMBOLIC
-    rm -f *.$(O) *.s *.i
-    rm -f asm/*.$(O) asm/*.s asm/*.i
-    rm -f x86/*.$(O) x86/*.s x86/*.i
-    rm -f lib/*.$(O) lib/*.s lib/*.i
-    rm -f macros/*.$(O) macros/*.s macros/*.i
-    rm -f output/*.$(O) output/*.s output/*.i
-    rm -f common/*.$(O) common/*.s common/*.i
-    rm -f stdlib/*.$(O) stdlib/*.s stdlib/*.i
-    rm -f nasmlib/*.$(O) nasmlib/*.s nasmlib/*.i
-    rm -f disasm/*.$(O) disasm/*.s disasm/*.i
-    rm -f config.h config.log config.status
-    rm -f nasm$(X) ndisasm$(X) $(NASMLIB)
-#   cd rdoff && $(MAKE) clean
-
-distclean: clean .SYMBOLIC
-    rm -f config.h config.log config.status
-    rm -f Makefile *~ *.bak *.lst *.bin
-    rm -f output/*~ output/*.bak
-    rm -f test/*.lst test/*.bin test/*.$(O) test/*.bin
-#   -del /s autom4te*.cache
-#   cd rdoff && $(MAKE) distclean
-
-cleaner: clean .SYMBOLIC
-    rm -f $(PERLREQ)
-    rm -f *.man
-    rm -f nasm.spec
-#   cd doc && $(MAKE) clean
-
-spotless: distclean cleaner .SYMBOLIC
-    rm -f doc/Makefile doc/*~ doc/*.bak
-
-strip: .SYMBOLIC
-    $(STRIP) *.exe
-
-rdf:
-#   cd rdoff && $(MAKE)
-
-doc:
-#   cd doc && $(MAKE) all
-
-everything: all doc rdf
-
-#
-# This build dependencies in *ALL* makefiles.  Partially for that reason,
-# it's expected to be invoked manually.
-#
-alldeps: perlreq .SYMBOLIC
-    $(PERL) syncfiles.pl Makefile.in Mkfiles/openwcom.mak
-    $(PERL) mkdep.pl -M Makefile.in Mkfiles/openwcom.mak -- . output lib
-
-#-- Magic hints to mkdep.pl --#
-# @object-ending: ".$(O)"
-# @path-separator: "/"
-# @exclude: "config/config.h"
-# @continuation: "&"
-#-- Everything below is generated by mkdep.pl - do not edit --#
-asm/assemble.$(O): asm/assemble.c asm/assemble.h asm/directiv.h &
- asm/listing.h asm/pptok.h asm/preproc.h asm/tokens.h config/msvc.h &
- config/unknown.h config/watcom.h include/compiler.h include/disp8.h &
- include/error.h include/iflag.h include/insns.h include/nasm.h &
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h &
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/directbl.$(O): asm/directbl.c asm/directiv.h asm/pptok.h asm/preproc.h &
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h &
- include/hashtbl.h include/nasm.h include/nasmint.h include/nasmlib.h &
- include/opflags.h include/strlist.h include/tables.h x86/insnsi.h &
- x86/regs.h
-asm/directiv.$(O): asm/directiv.c asm/assemble.h asm/directiv.h asm/eval.h &
- asm/float.h asm/listing.h asm/pptok.h asm/preproc.h asm/stdscan.h &
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h &
- include/error.h include/iflag.h include/labels.h include/nasm.h &
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h &
- include/tables.h output/outform.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/error.$(O): asm/error.c config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/nasmint.h include/nasmlib.h
-asm/eval.$(O): asm/eval.c asm/assemble.h asm/directiv.h asm/eval.h &
- asm/float.h asm/pptok.h asm/preproc.h config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/error.h include/iflag.h &
- include/labels.h include/nasm.h include/nasmint.h include/nasmlib.h &
- include/opflags.h include/strlist.h include/tables.h x86/iflaggen.h &
- x86/insnsi.h x86/regs.h
-asm/exprdump.$(O): asm/exprdump.c asm/directiv.h asm/pptok.h asm/preproc.h &
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h &
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h &
- include/strlist.h include/tables.h x86/insnsi.h x86/regs.h
-asm/exprlib.$(O): asm/exprlib.c asm/directiv.h asm/pptok.h asm/preproc.h &
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h &
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h &
- include/strlist.h include/tables.h x86/insnsi.h x86/regs.h
-asm/float.$(O): asm/float.c asm/directiv.h asm/float.h asm/pptok.h &
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h &
- x86/insnsi.h x86/regs.h
-asm/labels.$(O): asm/labels.c asm/directiv.h asm/pptok.h asm/preproc.h &
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h &
- include/error.h include/hashtbl.h include/labels.h include/nasm.h &
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h &
- include/tables.h x86/insnsi.h x86/regs.h
-asm/listing.$(O): asm/listing.c asm/directiv.h asm/listing.h asm/pptok.h &
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h &
- x86/insnsi.h x86/regs.h
-asm/nasm.$(O): asm/nasm.c asm/assemble.h asm/directiv.h asm/eval.h &
- asm/float.h asm/listing.h asm/parser.h asm/pptok.h asm/preproc.h &
- asm/stdscan.h asm/tokens.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/iflag.h include/insns.h &
- include/labels.h include/nasm.h include/nasmint.h include/nasmlib.h &
- include/opflags.h include/raa.h include/saa.h include/strlist.h &
- include/tables.h include/ver.h output/outform.h x86/iflaggen.h x86/insnsi.h &
- x86/regs.h
-asm/parser.$(O): asm/parser.c asm/assemble.h asm/directiv.h asm/eval.h &
- asm/float.h asm/parser.h asm/pptok.h asm/preproc.h asm/stdscan.h &
- asm/tokens.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/iflag.h include/insns.h &
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h &
- include/strlist.h include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/pptok.$(O): asm/pptok.c asm/pptok.h asm/preproc.h config/msvc.h &
- config/unknown.h config/watcom.h include/compiler.h include/hashtbl.h &
- include/nasmint.h include/nasmlib.h
-asm/pragma.$(O): asm/pragma.c asm/assemble.h asm/directiv.h asm/pptok.h &
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/iflag.h include/nasm.h &
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h &
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/preproc-nop.$(O): asm/preproc-nop.c asm/directiv.h asm/listing.h &
- asm/pptok.h asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h &
- x86/insnsi.h x86/regs.h
-asm/preproc.$(O): asm/preproc.c asm/directiv.h asm/eval.h asm/listing.h &
- asm/pptok.h asm/preproc.h asm/quote.h asm/stdscan.h asm/tokens.h &
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h &
- include/error.h include/hashtbl.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h &
- x86/insnsi.h x86/regs.h
-asm/quote.$(O): asm/quote.c asm/quote.h config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h
-asm/rdstrnum.$(O): asm/rdstrnum.c asm/directiv.h asm/pptok.h asm/preproc.h &
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h &
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h &
- include/strlist.h include/tables.h x86/insnsi.h x86/regs.h
-asm/segalloc.$(O): asm/segalloc.c asm/directiv.h asm/pptok.h asm/preproc.h &
- asm/tokens.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/iflag.h include/insns.h include/nasm.h &
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h &
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/stdscan.$(O): asm/stdscan.c asm/directiv.h asm/pptok.h asm/preproc.h &
- asm/quote.h asm/stdscan.h asm/tokens.h config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/error.h include/iflag.h &
- include/insns.h include/nasm.h include/nasmint.h include/nasmlib.h &
- include/opflags.h include/strlist.h include/tables.h x86/iflaggen.h &
- x86/insnsi.h x86/regs.h
-asm/strfunc.$(O): asm/strfunc.c asm/directiv.h asm/pptok.h asm/preproc.h &
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h &
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h &
- include/strlist.h include/tables.h x86/insnsi.h x86/regs.h
-asm/tokhash.$(O): asm/tokhash.c asm/directiv.h asm/pptok.h asm/preproc.h &
- asm/stdscan.h asm/tokens.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/hashtbl.h include/iflag.h include/insns.h &
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h &
- include/strlist.h include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-common/common.$(O): common/common.c asm/directiv.h asm/pptok.h asm/preproc.h &
- asm/tokens.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/iflag.h include/insns.h include/nasm.h &
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h &
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-disasm/disasm.$(O): disasm/disasm.c asm/directiv.h asm/pptok.h asm/preproc.h &
- asm/tokens.h config/msvc.h config/unknown.h config/watcom.h disasm/disasm.h &
- disasm/sync.h include/compiler.h include/disp8.h include/iflag.h &
- include/insns.h include/nasm.h include/nasmint.h include/nasmlib.h &
- include/opflags.h include/strlist.h include/tables.h x86/iflaggen.h &
- x86/insnsi.h x86/regdis.h x86/regs.h
-disasm/ndisasm.$(O): disasm/ndisasm.c asm/directiv.h asm/pptok.h &
- asm/preproc.h asm/tokens.h config/msvc.h config/unknown.h config/watcom.h &
- disasm/disasm.h disasm/sync.h include/compiler.h include/error.h &
- include/iflag.h include/insns.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h &
- include/ver.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-disasm/sync.$(O): disasm/sync.c config/msvc.h config/unknown.h &
- config/watcom.h disasm/sync.h include/compiler.h include/nasmint.h &
- include/nasmlib.h
-macros/macros.$(O): macros/macros.c asm/directiv.h asm/pptok.h asm/preproc.h &
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h &
- include/hashtbl.h include/nasm.h include/nasmint.h include/nasmlib.h &
- include/opflags.h include/strlist.h include/tables.h output/outform.h &
- x86/insnsi.h x86/regs.h
-nasmlib/bsi.$(O): nasmlib/bsi.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h
-nasmlib/crc64.$(O): nasmlib/crc64.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/hashtbl.h include/nasmint.h &
- include/nasmlib.h
-nasmlib/file.$(O): nasmlib/file.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/error.h include/nasmint.h &
- include/nasmlib.h nasmlib/file.h
-nasmlib/filename.$(O): nasmlib/filename.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/error.h include/nasmint.h &
- include/nasmlib.h
-nasmlib/hashtbl.$(O): nasmlib/hashtbl.c asm/directiv.h asm/pptok.h &
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/hashtbl.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h &
- x86/insnsi.h x86/regs.h
-nasmlib/ilog2.$(O): nasmlib/ilog2.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h
-nasmlib/malloc.$(O): nasmlib/malloc.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/error.h include/nasmint.h &
- include/nasmlib.h
-nasmlib/md5c.$(O): nasmlib/md5c.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/md5.h include/nasmint.h
-nasmlib/mmap.$(O): nasmlib/mmap.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/error.h include/nasmint.h &
- include/nasmlib.h nasmlib/file.h
-nasmlib/raa.$(O): nasmlib/raa.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h &
- include/raa.h
-nasmlib/rbtree.$(O): nasmlib/rbtree.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/nasmint.h include/rbtree.h
-nasmlib/readnum.$(O): nasmlib/readnum.c asm/directiv.h asm/pptok.h &
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h &
- x86/insnsi.h x86/regs.h
-nasmlib/realpath.$(O): nasmlib/realpath.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h
-nasmlib/saa.$(O): nasmlib/saa.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h &
- include/saa.h
-nasmlib/srcfile.$(O): nasmlib/srcfile.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/hashtbl.h include/nasmint.h &
- include/nasmlib.h
-nasmlib/string.$(O): nasmlib/string.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h
-nasmlib/strlist.$(O): nasmlib/strlist.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h &
- include/strlist.h
-nasmlib/ver.$(O): nasmlib/ver.c include/ver.h version.h
-nasmlib/zerobuf.$(O): nasmlib/zerobuf.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h
-output/codeview.$(O): output/codeview.c asm/directiv.h asm/pptok.h &
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/hashtbl.h include/md5.h &
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h &
- include/saa.h include/strlist.h include/tables.h output/outlib.h &
- output/pecoff.h version.h x86/insnsi.h x86/regs.h
-output/legacy.$(O): output/legacy.c asm/directiv.h asm/pptok.h asm/preproc.h &
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h &
- include/error.h include/nasm.h include/nasmint.h include/nasmlib.h &
- include/opflags.h include/strlist.h include/tables.h output/outlib.h &
- x86/insnsi.h x86/regs.h
-output/nulldbg.$(O): output/nulldbg.c asm/directiv.h asm/pptok.h &
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h &
- output/outlib.h x86/insnsi.h x86/regs.h
-output/nullout.$(O): output/nullout.c asm/directiv.h asm/pptok.h &
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h &
- output/outlib.h x86/insnsi.h x86/regs.h
-output/outaout.$(O): output/outaout.c asm/directiv.h asm/eval.h asm/pptok.h &
- asm/preproc.h asm/stdscan.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/raa.h include/saa.h &
- include/strlist.h include/tables.h output/outform.h output/outlib.h &
- x86/insnsi.h x86/regs.h
-output/outas86.$(O): output/outas86.c asm/directiv.h asm/pptok.h &
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/raa.h include/saa.h &
- include/strlist.h include/tables.h output/outform.h output/outlib.h &
- x86/insnsi.h x86/regs.h
-output/outbin.$(O): output/outbin.c asm/directiv.h asm/eval.h asm/pptok.h &
- asm/preproc.h asm/stdscan.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/labels.h include/nasm.h &
- include/nasmint.h include/nasmlib.h include/opflags.h include/saa.h &
- include/strlist.h include/tables.h output/outform.h output/outlib.h &
- x86/insnsi.h x86/regs.h
-output/outcoff.$(O): output/outcoff.c asm/directiv.h asm/eval.h asm/pptok.h &
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/raa.h include/saa.h &
- include/strlist.h include/tables.h output/outform.h output/outlib.h &
- output/pecoff.h x86/insnsi.h x86/regs.h
-output/outdbg.$(O): output/outdbg.c asm/directiv.h asm/pptok.h asm/preproc.h &
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h &
- include/error.h include/nasm.h include/nasmint.h include/nasmlib.h &
- include/opflags.h include/strlist.h include/tables.h output/outform.h &
- output/outlib.h x86/insnsi.h x86/regs.h
-output/outelf.$(O): output/outelf.c asm/directiv.h asm/eval.h asm/pptok.h &
- asm/preproc.h asm/stdscan.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/raa.h include/rbtree.h &
- include/saa.h include/strlist.h include/tables.h include/ver.h &
- output/dwarf.h output/elf.h output/outelf.h output/outform.h &
- output/outlib.h output/stabs.h x86/insnsi.h x86/regs.h
-output/outform.$(O): output/outform.c asm/directiv.h asm/pptok.h &
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/nasm.h include/nasmint.h include/nasmlib.h &
- include/opflags.h include/strlist.h include/tables.h output/outform.h &
- x86/insnsi.h x86/regs.h
-output/outieee.$(O): output/outieee.c asm/directiv.h asm/pptok.h &
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h &
- include/ver.h output/outform.h output/outlib.h x86/insnsi.h x86/regs.h
-output/outlib.$(O): output/outlib.c asm/directiv.h asm/pptok.h asm/preproc.h &
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h &
- include/error.h include/nasm.h include/nasmint.h include/nasmlib.h &
- include/opflags.h include/strlist.h include/tables.h output/outlib.h &
- x86/insnsi.h x86/regs.h
-output/outmacho.$(O): output/outmacho.c asm/directiv.h asm/pptok.h &
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/labels.h include/nasm.h &
- include/nasmint.h include/nasmlib.h include/opflags.h include/raa.h &
- include/rbtree.h include/saa.h include/strlist.h include/tables.h &
- output/outform.h output/outlib.h x86/insnsi.h x86/regs.h
-output/outobj.$(O): output/outobj.c asm/directiv.h asm/eval.h asm/pptok.h &
- asm/preproc.h asm/stdscan.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h &
- include/ver.h output/outform.h output/outlib.h x86/insnsi.h x86/regs.h
-output/outrdf2.$(O): output/outrdf2.c asm/directiv.h asm/pptok.h &
- asm/preproc.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/error.h include/nasm.h include/nasmint.h &
- include/nasmlib.h include/opflags.h include/rdoff.h include/saa.h &
- include/strlist.h include/tables.h output/outform.h output/outlib.h &
- x86/insnsi.h x86/regs.h
-stdlib/snprintf.$(O): stdlib/snprintf.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/nasmint.h include/nasmlib.h
-stdlib/strlcpy.$(O): stdlib/strlcpy.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/nasmint.h
-stdlib/strnlen.$(O): stdlib/strnlen.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/nasmint.h
-stdlib/vsnprintf.$(O): stdlib/vsnprintf.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/error.h include/nasmint.h &
- include/nasmlib.h
-x86/disp8.$(O): x86/disp8.c asm/directiv.h asm/pptok.h asm/preproc.h &
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h &
- include/disp8.h include/nasm.h include/nasmint.h include/nasmlib.h &
- include/opflags.h include/strlist.h include/tables.h x86/insnsi.h &
- x86/regs.h
-x86/iflag.$(O): x86/iflag.c config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/iflag.h include/nasmint.h x86/iflaggen.h
-x86/insnsa.$(O): x86/insnsa.c asm/directiv.h asm/pptok.h asm/preproc.h &
- asm/tokens.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/iflag.h include/insns.h include/nasm.h &
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h &
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-x86/insnsb.$(O): x86/insnsb.c asm/directiv.h asm/pptok.h asm/preproc.h &
- asm/tokens.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/iflag.h include/insns.h include/nasm.h &
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h &
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-x86/insnsd.$(O): x86/insnsd.c asm/directiv.h asm/pptok.h asm/preproc.h &
- asm/tokens.h config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/iflag.h include/insns.h include/nasm.h &
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h &
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-x86/insnsn.$(O): x86/insnsn.c config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/nasmint.h include/tables.h x86/insnsi.h
-x86/regdis.$(O): x86/regdis.c x86/regdis.h x86/regs.h
-x86/regflags.$(O): x86/regflags.c asm/directiv.h asm/pptok.h asm/preproc.h &
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h &
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h &
- include/strlist.h include/tables.h x86/insnsi.h x86/regs.h
-x86/regs.$(O): x86/regs.c config/msvc.h config/unknown.h config/watcom.h &
- include/compiler.h include/nasmint.h include/tables.h x86/insnsi.h
-x86/regvals.$(O): x86/regvals.c config/msvc.h config/unknown.h &
- config/watcom.h include/compiler.h include/nasmint.h include/tables.h &
- x86/insnsi.h
--- a/nasmbuild/nasm-2.13rc9/Mkfiles/owlinux.mak	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,599 +0,0 @@
-# -*- makefile -*-
-#
-# Makefile for cross-compiling NASM from Linux
-# to DOS, Win32 or OS/2 using OpenWatcom.
-#
-# Please see http://bugzilla.openwatcom.org/show_bug.cgi?id=751
-# for some caveats in using OpenWatcom as a cross-compiler
-# from Linux, in particular:
-#
-# > Second and more importantly, the makefile needs to ensure that the
-# > proper headers are included. This is normally not a problem when
-# > building on DOS, Windows, or OS/2, as they share the same C
-# > library headers. But when cross-compiling from (or to) Linux, it
-# > is crucial.
-# >
-# > This may be accomplished by setting the INCLUDE env var in the
-# > makefile, or setting OS2_INCLUDE, DOS_INCLUDE, NT_INCLUDE env vars
-# > *and* making sure that the proper -bt switch is used, or passing a
-# > switch like -I"$(%WATCOM)/h". The last variant is probably the
-# > easiest to implement and least likely to break.
-#
-
-top_srcdir	= .
-srcdir		= .
-prefix		= C:/Program Files/NASM
-exec_prefix	= $(prefix)
-bindir		= $(prefix)/bin
-mandir		= $(prefix)/man
-
-CC		= wcl386
-DEBUG		=
-CFLAGS		= -6 -ox -wx -ze -fpi $(DEBUG)
-BUILD_CFLAGS	= $(CFLAGS) $(TARGET_FLAGS) # -I$(srcdir)/inttypes
-INTERNAL_CFLAGS = -I$(srcdir) -I. \
-		  -DHAVE_SNPRINTF -DHAVE_VSNPRINTF
-ALL_CFLAGS	= $(BUILD_CFLAGS) $(INTERNAL_CFLAGS)
-LD		= $(CC)
-LDFLAGS		= $(ALL_CFLAGS)
-LIBS		=
-PERL		= perl -I$(srcdir)/perllib -I$(srcdir)
-
-STRIP		= wstrip
-
-# Binary suffixes
-O               = obj
-X               = .exe
-
-# WMAKE errors out if a suffix is declared more than once, including
-# its own built-in declarations.  Thus, we need to explicitly clear the list
-# first.  Also, WMAKE only allows implicit rules that point "to the left"
-# in this list!
-.SUFFIXES:
-.SUFFIXES: .man .1 .$(O) .i .c
-
-.c.$(O):
-	$(CC) -c $(ALL_CFLAGS) -fo=$@ $<
-
-#-- Begin File Lists --#
-# Edit in Makefile.in, not here!
-NASM =	asm/nasm.$(O)
-NDISASM = disasm/ndisasm.$(O)
-
-LIBOBJ = stdlib/snprintf.$(O) stdlib/vsnprintf.$(O) stdlib/strlcpy.$(O) \
-	stdlib/strnlen.$(O) \
-	nasmlib/ver.$(O) \
-	nasmlib/crc64.$(O) nasmlib/malloc.$(O) \
-	nasmlib/md5c.$(O) nasmlib/string.$(O) \
-	nasmlib/file.$(O) nasmlib/mmap.$(O) nasmlib/ilog2.$(O) \
-	nasmlib/realpath.$(O) nasmlib/filename.$(O) nasmlib/srcfile.$(O) \
-	nasmlib/zerobuf.$(O) nasmlib/readnum.$(O) nasmlib/bsi.$(O) \
-	nasmlib/rbtree.$(O) nasmlib/hashtbl.$(O) \
-	nasmlib/raa.$(O) nasmlib/saa.$(O) \
-	nasmlib/strlist.$(O) \
-	common/common.$(O) \
-	x86/insnsa.$(O) x86/insnsb.$(O) x86/insnsd.$(O) x86/insnsn.$(O) \
-	x86/regs.$(O) x86/regvals.$(O) x86/regflags.$(O) x86/regdis.$(O) \
-	x86/disp8.$(O) x86/iflag.$(O) \
-	\
-	asm/error.$(O) \
-	asm/float.$(O) \
-	asm/directiv.$(O) asm/directbl.$(O) \
-	asm/pragma.$(O) \
-	asm/assemble.$(O) asm/labels.$(O) asm/parser.$(O) \
-	asm/preproc.$(O) asm/quote.$(O) asm/pptok.$(O) \
-	asm/listing.$(O) asm/eval.$(O) asm/exprlib.$(O) asm/exprdump.$(O) \
-	asm/stdscan.$(O) \
-	asm/strfunc.$(O) asm/tokhash.$(O) \
-	asm/segalloc.$(O) \
-	asm/preproc-nop.$(O) \
-	asm/rdstrnum.$(O) \
-	\
-	macros/macros.$(O) \
-	\
-	output/outform.$(O) output/outlib.$(O) output/legacy.$(O) \
-	output/nulldbg.$(O) output/nullout.$(O) \
-	output/outbin.$(O) output/outaout.$(O) output/outcoff.$(O) \
-	output/outelf.$(O) \
-	output/outobj.$(O) output/outas86.$(O) output/outrdf2.$(O) \
-	output/outdbg.$(O) output/outieee.$(O) output/outmacho.$(O) \
-	output/codeview.$(O) \
-	\
-	disasm/disasm.$(O) disasm/sync.$(O)
-
-SUBDIRS  = stdlib nasmlib output asm disasm x86 common macros
-XSUBDIRS = test doc nsis
-#-- End File Lists --#
-
-what:
-	@echo 'Please build "dos", "win32" or "os2"'
-
-dos:
-	$(MAKE) -f $(MAKEFILE_LIST) all TARGET_FLAGS='-bt=DOS -l=DOS4G'
-
-win32:
-	$(MAKE) -f $(MAKEFILE_LIST) all TARGET_FLAGS='-bt=NT  -l=NT'
-
-os2:
-	$(MAKE) -f $(MAKEFILE_LIST) all TARGET_FLAGS='-bt=OS2 -l=OS2V2'
-
-all: nasm$(X) ndisasm$(X)
-
-nasm$(X): $(NASM)
-	$(LD) $(LDFLAGS) -fe=nasm$(X) $(NASM) $(LIBS)
-
-ndisasm$(X): $(NDISASM)
-	$(LD) $(LDFLAGS) -fe=ndisasm$(X) $(NDISASM) $(LIBS)
-
-# These source files are automagically generated from a single
-# instruction-table file by a Perl script. They're distributed,
-# though, so it isn't necessary to have Perl just to recompile NASM
-# from the distribution.
-
-insns.pl: insns-iflags.pl
-
-iflag.c iflag.h: insns.dat insns.pl
-	$(PERL) $(srcdir)/insns.pl -t $(srcdir)/insns.dat
-insnsb.c: insns.dat insns.pl
-	$(PERL) $(srcdir)/insns.pl -b $(srcdir)/insns.dat
-insnsa.c: insns.dat insns.pl
-	$(PERL) $(srcdir)/insns.pl -a $(srcdir)/insns.dat
-insnsd.c: insns.dat insns.pl
-	$(PERL) $(srcdir)/insns.pl -d $(srcdir)/insns.dat
-insnsi.h: insns.dat insns.pl
-	$(PERL) $(srcdir)/insns.pl -i $(srcdir)/insns.dat
-insnsn.c: insns.dat insns.pl
-	$(PERL) $(srcdir)/insns.pl -n $(srcdir)/insns.dat
-
-# These files contains all the standard macros that are derived from
-# the version number.
-version.h: version version.pl
-	$(PERL) $(srcdir)/version.pl h < $(srcdir)/version > version.h
-
-version.mac: version version.pl
-	$(PERL) $(srcdir)/version.pl mac < $(srcdir)/version > version.mac
-
-# This source file is generated from the standard macros file
-# `standard.mac' by another Perl script. Again, it's part of the
-# standard distribution.
-
-macros.c: macros.pl standard.mac version.mac
-	$(PERL) $(srcdir)/macros.pl $(srcdir)/standard.mac version.mac
-
-# These source files are generated from regs.dat by yet another
-# perl script.
-regs.c: regs.dat regs.pl
-	$(PERL) $(srcdir)/regs.pl c $(srcdir)/regs.dat > regs.c
-regflags.c: regs.dat regs.pl
-	$(PERL) $(srcdir)/regs.pl fc $(srcdir)/regs.dat > regflags.c
-regdis.c: regs.dat regs.pl
-	$(PERL) $(srcdir)/regs.pl dc $(srcdir)/regs.dat > regdis.c
-regdis.h: regs.dat regs.pl
-	$(PERL) $(srcdir)/regs.pl dh $(srcdir)/regs.dat > regdis.h
-regvals.c: regs.dat regs.pl
-	$(PERL) $(srcdir)/regs.pl vc $(srcdir)/regs.dat > regvals.c
-regs.h: regs.dat regs.pl
-	$(PERL) $(srcdir)/regs.pl h $(srcdir)/regs.dat > regs.h
-
-# Assembler token hash
-tokhash.c: insns.dat regs.dat tokens.dat tokhash.pl perllib/phash.ph
-	$(PERL) $(srcdir)/tokhash.pl c $(srcdir)/insns.dat $(srcdir)/regs.dat \
-		$(srcdir)/tokens.dat > tokhash.c
-
-# Assembler token metadata
-tokens.h: insns.dat regs.dat tokens.dat tokhash.pl perllib/phash.ph
-	$(PERL) $(srcdir)/tokhash.pl h $(srcdir)/insns.dat $(srcdir)/regs.dat \
-		$(srcdir)/tokens.dat > tokens.h
-
-# Preprocessor token hash
-pptok.h: pptok.dat pptok.pl perllib/phash.ph
-	$(PERL) $(srcdir)/pptok.pl h $(srcdir)/pptok.dat pptok.h
-pptok.c: pptok.dat pptok.pl perllib/phash.ph
-	$(PERL) $(srcdir)/pptok.pl c $(srcdir)/pptok.dat pptok.c
-
-# This target generates all files that require perl.
-# This allows easier generation of distribution (see dist target).
-PERLREQ = macros.c insnsb.c insnsa.c insnsd.c insnsi.h insnsn.c \
-	  regs.c regs.h regflags.c regdis.c regdis.h regvals.c \
-	  tokhash.c tokens.h pptok.h pptok.c \
-	  version.h version.mac iflag.c iflag.h
-perlreq: $(PERLREQ)
-
-clean:
-	-rm -f *.$(O)
-	-rm -f *.s
-	-rm -f *.i
-	-rm -f lib/*.$(O)
-	-rm -f lib/*.s
-	-rm -f lib/*.i
-	-rm -f output/*.$(O)
-	-rm -f output/*.s
-	-rm -f output/*.i
-	-rm -f nasm$(X)
-	-rm -f ndisasm$(X)
-	# cd rdoff && $(MAKE) clean
-
-distclean: clean .SYMBOLIC
-	-rm -f config.h
-	-rm -f config.log
-	-rm -f config.status
-	-rm -f Makefile
-	-rm -f *~
-	-rm -f *.bak
-	-rm -f *.lst
-	-rm -f *.bin
-	-rm -f output/*~
-	-rm -f output/*.bak
-	-rm -f test/*.lst
-	-rm -f test/*.bin
-	-rm -f test/*.$(O)
-	-rm -f test/*.bin
-	-rm -f/s autom4te*.cache
-	# cd rdoff && $(MAKE) distclean
-
-cleaner: clean .SYMBOLIC
-	-rm -f $(PERLREQ)
-	-rm -f *.man
-	-rm -f nasm.spec
-	# cd doc && $(MAKE) clean
-
-spotless: distclean cleaner .SYMBOLIC
-	-rm -f doc/Makefile
-	-rm -f doc/*~
-	-rm -f doc/*.bak
-
-strip:
-	$(STRIP) *.exe
-
-rdf:
-	# cd rdoff && $(MAKE)
-
-doc:
-	# cd doc && $(MAKE) all
-
-everything: all doc rdf
-
-#-- Magic hints to mkdep.pl --#
-# @object-ending: ".$(O)"
-# @path-separator: "/"
-# @exclude: "config.h"
-# @continuation: "\"
-#-- Everything below is generated by mkdep.pl - do not edit --#
-asm/assemble.$(O): asm/assemble.c asm/assemble.h asm/directiv.h \
- asm/listing.h asm/pptok.h asm/preproc.h asm/tokens.h config/config.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/disp8.h include/error.h include/iflag.h include/insns.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/directbl.$(O): asm/directbl.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/hashtbl.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/insnsi.h x86/regs.h
-asm/directiv.$(O): asm/directiv.c asm/assemble.h asm/directiv.h asm/eval.h \
- asm/float.h asm/listing.h asm/pptok.h asm/preproc.h asm/stdscan.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/iflag.h include/labels.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h output/outform.h x86/iflaggen.h \
- x86/insnsi.h x86/regs.h
-asm/error.$(O): asm/error.c config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasmint.h \
- include/nasmlib.h
-asm/eval.$(O): asm/eval.c asm/assemble.h asm/directiv.h asm/eval.h \
- asm/float.h asm/pptok.h asm/preproc.h config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/error.h \
- include/iflag.h include/labels.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/exprdump.$(O): asm/exprdump.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/insnsi.h \
- x86/regs.h
-asm/exprlib.$(O): asm/exprlib.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/insnsi.h \
- x86/regs.h
-asm/float.$(O): asm/float.c asm/directiv.h asm/float.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/insnsi.h x86/regs.h
-asm/labels.$(O): asm/labels.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/hashtbl.h include/labels.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/insnsi.h x86/regs.h
-asm/listing.$(O): asm/listing.c asm/directiv.h asm/listing.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/insnsi.h x86/regs.h
-asm/nasm.$(O): asm/nasm.c asm/assemble.h asm/directiv.h asm/eval.h \
- asm/float.h asm/listing.h asm/parser.h asm/pptok.h asm/preproc.h \
- asm/stdscan.h asm/tokens.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/iflag.h \
- include/insns.h include/labels.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/raa.h include/saa.h \
- include/strlist.h include/tables.h include/ver.h output/outform.h \
- x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/parser.$(O): asm/parser.c asm/assemble.h asm/directiv.h asm/eval.h \
- asm/float.h asm/parser.h asm/pptok.h asm/preproc.h asm/stdscan.h \
- asm/tokens.h config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/iflag.h include/insns.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/pptok.$(O): asm/pptok.c asm/pptok.h asm/preproc.h config/config.h \
- config/msvc.h config/unknown.h config/watcom.h include/compiler.h \
- include/hashtbl.h include/nasmint.h include/nasmlib.h
-asm/pragma.$(O): asm/pragma.c asm/assemble.h asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/iflag.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/strlist.h include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/preproc-nop.$(O): asm/preproc-nop.c asm/directiv.h asm/listing.h \
- asm/pptok.h asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/insnsi.h x86/regs.h
-asm/preproc.$(O): asm/preproc.c asm/directiv.h asm/eval.h asm/listing.h \
- asm/pptok.h asm/preproc.h asm/quote.h asm/stdscan.h asm/tokens.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/hashtbl.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/insnsi.h x86/regs.h
-asm/quote.$(O): asm/quote.c asm/quote.h config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-asm/rdstrnum.$(O): asm/rdstrnum.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/insnsi.h \
- x86/regs.h
-asm/segalloc.$(O): asm/segalloc.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/stdscan.$(O): asm/stdscan.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/quote.h asm/stdscan.h asm/tokens.h config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/error.h \
- include/iflag.h include/insns.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/iflaggen.h x86/insnsi.h x86/regs.h
-asm/strfunc.$(O): asm/strfunc.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/insnsi.h \
- x86/regs.h
-asm/tokhash.$(O): asm/tokhash.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/stdscan.h asm/tokens.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/hashtbl.h include/iflag.h \
- include/insns.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/iflaggen.h \
- x86/insnsi.h x86/regs.h
-common/common.$(O): common/common.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-disasm/disasm.$(O): disasm/disasm.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/config.h config/msvc.h config/unknown.h config/watcom.h \
- disasm/disasm.h disasm/sync.h include/compiler.h include/disp8.h \
- include/iflag.h include/insns.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/iflaggen.h x86/insnsi.h x86/regdis.h x86/regs.h
-disasm/ndisasm.$(O): disasm/ndisasm.c asm/directiv.h asm/pptok.h \
- asm/preproc.h asm/tokens.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h disasm/disasm.h disasm/sync.h include/compiler.h \
- include/error.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h include/ver.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-disasm/sync.$(O): disasm/sync.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h disasm/sync.h include/compiler.h \
- include/nasmint.h include/nasmlib.h
-macros/macros.$(O): macros/macros.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/hashtbl.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- output/outform.h x86/insnsi.h x86/regs.h
-nasmlib/bsi.$(O): nasmlib/bsi.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-nasmlib/crc64.$(O): nasmlib/crc64.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/hashtbl.h \
- include/nasmint.h include/nasmlib.h
-nasmlib/file.$(O): nasmlib/file.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/error.h \
- include/nasmint.h include/nasmlib.h nasmlib/file.h
-nasmlib/filename.$(O): nasmlib/filename.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/error.h \
- include/nasmint.h include/nasmlib.h
-nasmlib/hashtbl.$(O): nasmlib/hashtbl.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/hashtbl.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/insnsi.h x86/regs.h
-nasmlib/ilog2.$(O): nasmlib/ilog2.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-nasmlib/malloc.$(O): nasmlib/malloc.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/error.h \
- include/nasmint.h include/nasmlib.h
-nasmlib/md5c.$(O): nasmlib/md5c.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/md5.h \
- include/nasmint.h
-nasmlib/mmap.$(O): nasmlib/mmap.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/error.h \
- include/nasmint.h include/nasmlib.h nasmlib/file.h
-nasmlib/raa.$(O): nasmlib/raa.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h include/raa.h
-nasmlib/rbtree.$(O): nasmlib/rbtree.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/rbtree.h
-nasmlib/readnum.$(O): nasmlib/readnum.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/insnsi.h x86/regs.h
-nasmlib/realpath.$(O): nasmlib/realpath.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-nasmlib/saa.$(O): nasmlib/saa.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h include/saa.h
-nasmlib/srcfile.$(O): nasmlib/srcfile.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/hashtbl.h \
- include/nasmint.h include/nasmlib.h
-nasmlib/string.$(O): nasmlib/string.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-nasmlib/strlist.$(O): nasmlib/strlist.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h include/strlist.h
-nasmlib/ver.$(O): nasmlib/ver.c include/ver.h version.h
-nasmlib/zerobuf.$(O): nasmlib/zerobuf.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-output/codeview.$(O): output/codeview.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/hashtbl.h \
- include/md5.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/saa.h include/strlist.h include/tables.h \
- output/outlib.h output/pecoff.h version.h x86/insnsi.h x86/regs.h
-output/legacy.$(O): output/legacy.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-output/nulldbg.$(O): output/nulldbg.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h output/outlib.h x86/insnsi.h x86/regs.h
-output/nullout.$(O): output/nullout.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h output/outlib.h x86/insnsi.h x86/regs.h
-output/outaout.$(O): output/outaout.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h asm/stdscan.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/raa.h \
- include/saa.h include/strlist.h include/tables.h output/outform.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-output/outas86.$(O): output/outas86.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/raa.h \
- include/saa.h include/strlist.h include/tables.h output/outform.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-output/outbin.$(O): output/outbin.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h asm/stdscan.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/labels.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/saa.h include/strlist.h include/tables.h output/outform.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-output/outcoff.$(O): output/outcoff.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/raa.h \
- include/saa.h include/strlist.h include/tables.h output/outform.h \
- output/outlib.h output/pecoff.h x86/insnsi.h x86/regs.h
-output/outdbg.$(O): output/outdbg.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- output/outform.h output/outlib.h x86/insnsi.h x86/regs.h
-output/outelf.$(O): output/outelf.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h asm/stdscan.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/raa.h \
- include/rbtree.h include/saa.h include/strlist.h include/tables.h \
- include/ver.h output/dwarf.h output/elf.h output/outelf.h output/outform.h \
- output/outlib.h output/stabs.h x86/insnsi.h x86/regs.h
-output/outform.$(O): output/outform.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- output/outform.h x86/insnsi.h x86/regs.h
-output/outieee.$(O): output/outieee.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h include/ver.h output/outform.h output/outlib.h \
- x86/insnsi.h x86/regs.h
-output/outlib.$(O): output/outlib.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/error.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-output/outmacho.$(O): output/outmacho.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/labels.h \
- include/nasm.h include/nasmint.h include/nasmlib.h include/opflags.h \
- include/raa.h include/rbtree.h include/saa.h include/strlist.h \
- include/tables.h output/outform.h output/outlib.h x86/insnsi.h x86/regs.h
-output/outobj.$(O): output/outobj.c asm/directiv.h asm/eval.h asm/pptok.h \
- asm/preproc.h asm/stdscan.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h include/ver.h output/outform.h output/outlib.h \
- x86/insnsi.h x86/regs.h
-output/outrdf2.$(O): output/outrdf2.c asm/directiv.h asm/pptok.h \
- asm/preproc.h config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/error.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/rdoff.h \
- include/saa.h include/strlist.h include/tables.h output/outform.h \
- output/outlib.h x86/insnsi.h x86/regs.h
-stdlib/snprintf.$(O): stdlib/snprintf.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/nasmlib.h
-stdlib/strlcpy.$(O): stdlib/strlcpy.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h
-stdlib/strnlen.$(O): stdlib/strnlen.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h
-stdlib/vsnprintf.$(O): stdlib/vsnprintf.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/error.h \
- include/nasmint.h include/nasmlib.h
-x86/disp8.$(O): x86/disp8.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/disp8.h include/nasm.h include/nasmint.h \
- include/nasmlib.h include/opflags.h include/strlist.h include/tables.h \
- x86/insnsi.h x86/regs.h
-x86/iflag.$(O): x86/iflag.c config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/iflag.h include/nasmint.h \
- x86/iflaggen.h
-x86/insnsa.$(O): x86/insnsa.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-x86/insnsb.$(O): x86/insnsb.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-x86/insnsd.$(O): x86/insnsd.c asm/directiv.h asm/pptok.h asm/preproc.h \
- asm/tokens.h config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/iflag.h include/insns.h include/nasm.h \
- include/nasmint.h include/nasmlib.h include/opflags.h include/strlist.h \
- include/tables.h x86/iflaggen.h x86/insnsi.h x86/regs.h
-x86/insnsn.$(O): x86/insnsn.c config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/tables.h \
- x86/insnsi.h
-x86/regdis.$(O): x86/regdis.c x86/regdis.h x86/regs.h
-x86/regflags.$(O): x86/regflags.c asm/directiv.h asm/pptok.h asm/preproc.h \
- config/config.h config/msvc.h config/unknown.h config/watcom.h \
- include/compiler.h include/nasm.h include/nasmint.h include/nasmlib.h \
- include/opflags.h include/strlist.h include/tables.h x86/insnsi.h \
- x86/regs.h
-x86/regs.$(O): x86/regs.c config/config.h config/msvc.h config/unknown.h \
- config/watcom.h include/compiler.h include/nasmint.h include/tables.h \
- x86/insnsi.h
-x86/regvals.$(O): x86/regvals.c config/config.h config/msvc.h \
- config/unknown.h config/watcom.h include/compiler.h include/nasmint.h \
- include/tables.h x86/insnsi.h
--- a/nasmbuild/nasm-2.13rc9/README	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-              NASM, the Netwide Assembler.
-
-Many many developers all over the net respect NASM for what it is
-- a widespread (thus netwide), portable (thus netwide!), very
-flexible and mature assembler tool with support for many output
-formats (thus netwide!!).
-
-Now we have good news for you: NASM is licensed under the "simplified"
-(2-clause) BSD license.  This means its development is open to even
-wider society of programmers wishing to improve their lovely
-assembler.
-
-The NASM project is now situated at SourceForge.net, the most
-popular Open Source development site on the Internet.
-
-Visit our website at http://nasm.sourceforge.net/ and our
-SourceForge project at http://sourceforge.net/projects/nasm/
-
-See the file CHANGES for the description of changes between revisions,
-and the file AUTHORS for a list of contributors.
-
-                                                   With best regards,
-                                                           NASM crew.
--- a/nasmbuild/nasm-2.13rc9/SubmittingPatches	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-How to submit patches into the NASM
-===================================
-
-Actually the rules are pretty simple
-
-Obtaining the source code
--------------------------
-
-The NASM sources are tracked by Git SCM at http://repo.or.cz/w/nasm.git
-repository. You either could download packed sources or use git tool itself
-
-        git clone git://repo.or.cz/nasm.git
-
-Changin the source code
------------------------
-
-When you change the NASM source code keep in mind -- we prefer tabs and
-indentations to be 4 characters width, space filled.
-
-Other "rules" could be learned from NASM sources -- just make your code
-to look similar.
-
-Producing patch
----------------
-
-There are at least two ways to make it right.
-
- 1) git format-patch
-
-    You might need to read documentation on Git SCM how to prepare patch
-    for mail submission. Take a look on http://book.git-scm.com/ and/or
-    http://git-scm.com/documentation for details. It should not be hard
-    at all.
-
- 2) Use "diff -up"
- 
-    Use "diff -up" or "diff -uprN" to create patches.
-
-Signing your work
------------------
-
-To improve tracking of who did what we've introduced a "sign-off" procedure
-on patches that are being emailed around.
-
-The sign-off is a simple line at the end of the explanation for the
-patch, which certifies that you wrote it or otherwise have the right to
-pass it on as a open-source patch.  The rules are pretty simple: if you
-can certify the below:
-
-        Developer's Certificate of Origin 1.1
-
-        By making a contribution to this project, I certify that:
-
-        (a) The contribution was created in whole or in part by me and I
-            have the right to submit it under the open source license
-            indicated in the file; or
-
-        (b) The contribution is based upon previous work that, to the best
-            of my knowledge, is covered under an appropriate open source
-            license and I have the right under that license to submit that
-            work with modifications, whether created in whole or in part
-            by me, under the same open source license (unless I am
-            permitted to submit under a different license), as indicated
-            in the file; or
-
-        (c) The contribution was provided directly to me by some other
-            person who certified (a), (b) or (c) and I have not modified
-            it.
-
-	(d) I understand and agree that this project and the contribution
-	    are public and that a record of the contribution (including all
-	    personal information I submit with it, including my sign-off) is
-	    maintained indefinitely and may be redistributed consistent with
-	    this project or the open source license(s) involved.
-
-then you just add a line saying
-
-        Signed-off-by: Random J Developer <random@developer.example.org>
-
-using your real name (please, no pseudonyms or anonymous contributions if
-it possible)
-
-An example of patch message
----------------------------
-
-From: Random J Developer <random@developer.example.org>
-Subject: [PATCH] Short patch description
-
-Long patch description (could be skipped if patch
-is trivial enough)
-
-Signed-off-by: Random J Developer <random@developer.example.org>
----
-Patch body here
-
-Mailing patches
----------------
-
-The patches should be sent to NASM development mailing list
-
-    nasm-devel@lists.sourceforge.net
-
-Please make sure the email client you're using doesn't screw
-your patch (line wrapping and so on).
-
-Wait for response
------------------
-
-Be patient. Most NASM developers are pretty busy people so if
-there is no immediate response on your patch -- don't
-be surprised, sometimes a patch may fly around a week(s) before
-gets reviewed. But definitely the patches will not go to /dev/null.
-
-    ---
-    With best regards,
-    NASM-team
--- a/nasmbuild/nasm-2.13rc9/TODO	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,376 +0,0 @@
-NASM TODO list
-==============
-
-This, like the AUTHORS file, is intended for easy readability by both human 
-and machine, thus the format.
-
-  F: feature
-  V: version you should expect it by
-  R: responsible person or - if unassigned
-  C: % complete
-  D: description
-  D: maybe on multiple lines
-  
-Anything that doesn't start with /^[FVRCD]:/ should be ignored.
-
-  F:-line triggers new entry.
-  Empty V,R,C assume: V: ?, R: -, C: 0%
-
-=============
-
-F: Extended x64 Support
-D: Full FPU/MMX/SSE* instruction support for x64
-
-F: ELF64 output format
-D: Support for assembling code to the ELF64 output format
-
-F: NDISASM x64 Support
-D: Ability to disassemble respective x64 code
-
-F: General x64 Support
-V: 0.99.00
-R: Keith Kanios
-C: 99%
-D: Support for assembling 64-bit code to various output formats
-
-F: win64 (x86-64 COFF) output format
-V: 0.99.00
-R: Keith Kanios
-C: 99%
-D: Support for assembling code to the win64 output format
-
-F: c99 data-type compliance
-V: 0.99.00
-R: Keith Kanios
-C: 99%
-D: Revamped entire source-code base data-types for compliance
-D: with c99 (inttypes.h)
-
-F: __BITS__ Standard Macro
-V: 0.99.00
-R: Keith Kanios
-C: 100%
-D: __BITS__ standard macro that returns current [BITS XX] mode
-
-F: i18n via gettext
-D: kkanios: be careful about that, stick to UTF-8 if anything
-
-F: Convert shallow code model to deep code model
-D: Tired of messing between lots of unrelated files (especially .c/.h stuff)
-
-F: Automated dependency generation for Makefile
-D: Current looks awful and will break if anything changes.
-
-F: Move output modules out*.c to output/ subdir
-R: madfire
-C: 100%
-
-== THESE ARE FROM old NASM's Wishlist
-== THEY NEED SEVERE REVISING (seems they weren't updated for a couple of years or so)
-
-F: Check misc/ide.cfg into RCS as Watcom IDE enhancement thingy
-V: 0.98
-D: (nop@dlc.fi)
-
-F: Package the Linux Assembler HOWTO
-V: 0.98
-
-F: 3DNow!, SSE and other extensions need documenting
-V: 0.98
-D: hpa: Does it really make sense to have a whole instruction set
-D: reference packaged with the assembler?
-D: kkanios: Yes, for me it was a great help... and still is.
-
-F: prototypes of lrotate don't match in test/*. Fix.
-V: 0.98
-
-F: Build djgpp binaries for 0.98 onwards. Look into PMODE/W as a stub
-V: 0.98
-D: it might be a lot better than CWSDPMI. It's in PMW133.ZIP.
-
-F: %undef operator that goes along with %define
-V: ?
-C: 100%
-
-F: Fix `%error' giving error messages twice.
-V: 0.99
-D: Not especially important, as changes planned for 1.1x below will make
-D: the preprocessor be only called once.
-
-F: Sort out problems with OBJ
-V: 0.99
-D: * TLINK32 doesn't seem to like SEGDEF32 et al. So for that, we
-D:   should avoid xxx32 records wherever we can.
-D: * However, didn't we change _to_ using xxx32 at some stage? Try
-D:   to remember why and when.
-D: * Apparently Delphi's linker has trouble with two or more
-D:   globals being defined inside a PUBDEF32. Don't even know if it
-D:   _can_ cope with a PUBDEF16.
-D: * Might need extra flags. *sigh*
-
-F: Symbol table output may possibly be useful.
-V: 0.99
-D: Ken Martwick (kenm@efn.org) wants the following format:
-D: 	labelname	type	offset(hex)	repetition count
-D: Possibly include xref addresses after repetition count?
-
-F: ELF fixes
-V: 0.99
-D: There are various other bugs in outelf.c that make certain kinds
-D: of relocation not work. See zbrown.asm. Looks like we may have to do
-D: a major rewrite of parts of it. Compare some NASM code output with
-D: equivalent GAS code output. Look at the ELF spec. Generally fix things.
-
-F: ELF fixes
-V: 0.99
-D: NASM is currently using a kludge in ELF that involves defining
-D: a symbol at a zero absolute offset. This isn't needed, as the
-D: documented solution to the problem that this solves is to use
-D: SHN_UNDEF.
-
-F: Debug information, in all formats it can be usefully done in.
-V: 0.99
-D: * including line-number record support.
-D: * "George C. Lindauer" <gclind01@starbase.spd.louisville.edu>
-D:   wants to have some say in how this goes through.
-D: * Andrew Crabtree <andrewc@rosemail.rose.hp.com> wants to help out.
-
-F: Think about a line-continuation character.
-V: 0.99
-
-F: Consider allowing declaration of two labels on the same line,
-V: 0.99
-D: syntax 'label1[:] label2[:] ... instruction'.
-D: Need to investigate feasibility.
-
-F: Quoting of quotes by doubling them, in string and char constants.
-V: 0.99
-
-F: Two-operand syntax for SEGMENT/SECTION macro to avoid warnings
-D: of ignored section parameters on reissue of __SECT__.
-D: Or maybe skip the warning if the given parameters are identical to
-D: what was actually stored. Investigate.				
-V: 0.99
-
-F: Apparently we are not missing a PSRAQ instruction, because it
-D: doesn't exist.  Check that it doesn't exist as an undocumented
-D: instruction, or something stupid like that.
-V: 0.99
-
-F: Any assembled form starting 0x80 can also start 0x82.
-V: 1.00
-D: ndisasm should know this. New special code in instruction encodings, probably.
-
-F: Pointing an EQU at an external symbol now generates an error.
-V: 1.05
-D: There may be a better way of handling this; we should look into it.
-D: Ideally, the label mechanism should be changed to cope with one
-D: label being declared relative to another - that may work, but could be
-D: a pain to implement (or is it? it may be easy enough that you just
-D: need to declare a new offset in the same segment...) This should be done
-D: before v1.0 is released. There is a comment regarding this in labels.c,
-D: towards the end of the file, which discusses ways of fixing this.
-
-F: nested %rep used to cause a panic.
-V: 1.10
-D: Now a more informative error message is produced. This problem whould
-D: be fixed before v1.0.
-D: See comment in switch() statement block for PP_REP in do_directive()
-D: in preproc.c (line 1585, or thereabouts)
-
-F: Contribution
-D: zgraeme.tar contains improved hash table routines
-D: contributed by Graeme Defty <graeme@HK.Super.NET> for use in the
-D: label manager.
-
-F: Contribution
-D: zsyntax.zip contains a syntax-highlighting mode for
-D: NASM, for use with the Aurora text editor (??).
-
-F: Contribution
-D: zvim.zip contains a syntax-highlighting mode for NASM, for use with vim.
-
-F: Contribution
-D: zkendal1.zip and zkendal2.zip contain Kendall
-D: Bennett's (<KendallB@scitechsoft.com>) alternative syntax stuff,
-D: providing an alternative syntax mode for NASM which allows a macro
-D: set to be written that allows the same source files to be
-D: assembled with NASM and TASM.
-R: Kendall Bennett
-C: 100%
-
-F: Add the UD2 instruction.
-C: 100%
-
-F: Add the four instructions documented in 24368901.pdf (Intel's own document).
-C: 100%
-
-F: Some means of avoiding MOV memoffs,EAX which apparently the
-D: Pentium pairing detector thinks modifies EAX. Similar means of
-D: choosing instruction encodings where necessary.
-V: 1.10?
-
-F: The example of ..@ makes it clear that a ..@ label isn't just
-D: local, but doesn't make it clear that it isn't just global either.
-
-F: hpa wants an evaluator operator for ceil(log2(x)).
-
-F: Extra reloc types in ELF
-D: R_386_16 type 20, PC16 is 21, 8 is 22, PC8 is 23.
-D: Add support for the 16s at least.
-
-F: Lazy section creation or selective section output
-D: in COFF/win32 at least and probably other formats: don't bother to emit a section
-D: if it contains no data. Particularly the default auto-created
-D: section. We believe zero-length sections crash at least WLINK (in win32).
-
-F: Make the flags field in `struct itemplate' in insns.h a long instead of an int.
-C: 100%?
-
-F: Implement %ifref to check whether a single-line macro has ever been expanded since (last re) definition. Or maybe not. We'll see.
-
-F: add pointer to \k{insLEAVE} and \k{insENTER} in chapters about	mixed-language programming.
-
-F: Some equivalent to TASM's GLOBAL directive
-D: ie something which defines a symbol as external if it doesn't end up being defined
-D: but defines it as public if it does end up being defined.
-
-F: Documentation doesn't explain about C++ name mangling.
-
-F: see if BITS can be made to do anything sensible in obj (eg set the default new-segment property to Use32).
-
-F: OBJ: coalesce consecutive offset and segment fixups for the same location into full-32bit-pointer fixups.
-D: This is apparently necessary because some twazzock in the PowerBASIC development
-D: team didn't design to support the OMF spec the way the rest of the
-D: world sees it.
-
-F: Allow % to be separated from the rest of a preproc directive, for	alternative directive indentation styles.
-
-F: __DATE__, __TIME__, and text variants of __NASM_MAJOR__ and __NASM_MINOR__.
-
-F: Warn on TIMES combined with multi-line macros.
-V: 1.00
-D: TIMES gets applied to first line only - should bring to users' attention.
-
-F: Re-work the evaluator, again, with a per-object-format fixup
-D: routine, so as to be able to cope with section offsets "really"
-D: being pure numbers; should be able to allow at _least_ the two
-D: common idioms
-D:   TIMES 510-$ DB 0            ; bootsector
-D:   MOV AX,(PROG_END-100H)/16   ; .COM TSR
-D: Would need to call the fixup throughout the evaluator, and the
-D: fixup would have to be allowed to return UNKNOWN on pass one if it
-D: had to. (_Always_ returning UNKNOWN on pass one, though a lovely
-D: clean design, breaks the first of the above examples.)
-V: 1.10
-
-F: Preprocessor identifier concatenation?
-V: 1.10
-
-F: Arbitrary section names in `bin'.
-V: 0.98.09
-D: Is this necessary? Is it even desirable?
-D: hpa: Desirable, yes.  Necessary?  Probably not, but there are definitely cases where it becomes quite useful.
-R: madfire
-C: 100%
-
-F: Ability to read from a pipe.
-V: 1.10
-D: Obviously not useful under dos, so memory problems with storing
-D: entire input file aren't a problem either.
-
-F: File caching under DOS/32 bit...
-V: 1.10?
-D: maybe even implement discardable buffers that get thrown away
-D: when we get a NULL returned from malloc(). Only really useful under
-D: DOS. Think about it.
-
-F: possibly spool out the pre-processed stuff to a file, to avoid having to re-process it.
-V: 1.10?
-D: Possible problems with preprocessor values not known on pass 1? Have a look...
-
-F: Or maybe we can spool out a pre-parsed version...?
-V: 1.10
-D: Need to investigate feasibility. Does the results from the parser
-D: change from pass 1 to pass 2? Would it be feasible to alter it so that
-D: the parser returns an invariant result, and this is then processed
-D: afterwards to resolve label references, etc?
-
-F: Subsection support?
-
-F: A good ALIGN mechanism, similar to GAS's.
-V: 0.98p1
-D: GAS pads out space by means of the following (32-bit) instructions:
-D:         8DB42600000000    lea esi,[esi+0x0]
-D:         8DB600000000      lea esi,[esi+0x0]
-D:         8D742600          lea esi,[esi+0x0]
-D:         8D7600            lea esi,[esi+0x0]
-D:         8D36              lea esi,[esi]
-D:         90                nop
-D: It uses up to two of these instructions to do up to 14-byte pads;
-D: when more than 14 bytes are needed, it issues a (short) jump to
-D: the end of the padded section and then NOPs the rest. Come up with
-D: a similar scheme for 16 bit mode, and also come up with a way to
-D: use it - internal to the assembler, so that programs using ALIGN
-D: don't knock over preprocess-only mode.
-D:   Also re-work the macro form so that when given one argument in a
-D: code section it calls this feature.
-R: Panos Minos
-C: 100%?
-
-F: Possibly a means whereby FP constants can be specified as immediate operands to non-FP instructions.
-D: * Possible syntax: MOV EAX,FLOAT 1.2 to get a single-precision FP
-D:   constant. Then maybe MOV EAX,HI_FLOAT 1.2 and MOV EAX,LO_FLOAT
-D:   1.2 to get the two halves of a double-precision one. Best to
-D:   ignore extended-precision in case it bites.
-D: * Alternatively, maybe MOV EAX,FLOAT(4,0-4,1.2) to get bytes 0-4
-D:   (ie 0-3) of a 4-byte constant. Then HI_FLOAT is FLOAT(8,4-8,x)
-D:   and LO_FLOAT is FLOAT(8,0-4,x). But this version allows two-byte
-D:   chunks, one-byte chunks, even stranger chunks, and pieces of
-D:   ten-byte reals to be bandied around as well.
-
-F: A UNION macro might be quite cool
-D: now that ABSOLUTE is sane enough to be able to handle it.
-
-F: An equivalent to gcc's ## stringify operator, plus string concatenation
-D: somehow implemented without undue ugliness, so as
-D: to be able to do `%include "/my/path/%1"' in a macro, or something
-D: similar...
-
-F: Actually _do_ something with the processor, privileged and
-D: undocumented flags in the instruction table. When this happens,
-D: consider allowing PMULHRW to map to either of the Cyrix or AMD
-D: versions?
-D: hpa: The -p option to ndisasm now uses this to some extent.
-V: 1.10
-
-F: Maybe NEC V20/V30 instructions?					?
-D: hpa: What are they?  Should be trivial to implement.
-
-F: Yet more object formats.
-D: * Possibly direct support for .EXE files?
-V: 1.10
-
-F: Symbol map in binary format. Format-specific options...
-V: 1.10?
-
-F: REDESIGN: Think about EQU dependency, and about start-point specification in OBJ. Possibly re-think directive support.
-V: 1.20?
-
-F: Think about a wrapper program like gcc?
-V: 2.00?
-D: Possibly invent a _patch_ for gcc so that it can take .asm files on the command line?
-D: If a wrapper happens, think about adding an option to cause the
-D: resulting executable file to be executed immediately, thus
-D: allowing NASM source files to have #!... (probably silly)
-
-F: Multi-platform support?
-D: If so: definitely Alpha; possibly Java byte code;
-D: probably ARM/StrongARM; maybe Sparc; maybe Mips; maybe
-D: Vax. Perhaps Z80 and 6502, just for a laugh?
-
-F: Consider a 'verbose' option that prints information about the resulting object file onto stdout.
-
-F: Line numbers in the .lst file don't match the line numbers in the input.
-D: They probably should, rather than the current matching of the post-preprocessor line numbers.
-
--- a/nasmbuild/nasm-2.13rc9/aclocal.m4	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-dnl --------------------------------------------------------------------------
-dnl PA_ADD_CFLAGS()
-dnl
-dnl Attempt to add the given option to CFLAGS, if it doesn't break compilation
-dnl --------------------------------------------------------------------------
-AC_DEFUN(PA_ADD_CFLAGS,
-[AC_MSG_CHECKING([if $CC accepts $1])
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS $1"
- AC_TRY_LINK([#include <stdio.h>],
- [printf("Hello, World!\n");],
- AC_MSG_RESULT([yes])
- CFLAGS="$pa_add_cflags__old_cflags ifelse([$2],[],[$1],[$2])",
- AC_MSG_RESULT([no])
- CFLAGS="$pa_add_cflags__old_cflags")])
-
-dnl --------------------------------------------------------------------------
-dnl PA_ADD_CLDFLAGS()
-dnl
-dnl Attempt to add the given option to CFLAGS and LDFLAGS,
-dnl if it doesn't break compilation
-dnl --------------------------------------------------------------------------
-AC_DEFUN(PA_ADD_CLDFLAGS,
-[AC_MSG_CHECKING([if $CC accepts $1])
- pa_add_cldflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS $1"
- pa_add_cldflags__old_ldflags="$LDFLAGS"
- LDFLAGS="$LDFLAGS $1"
- AC_TRY_LINK([#include <stdio.h>],
- [printf("Hello, World!\n");],
- AC_MSG_RESULT([yes])
- CFLAGS="$pa_add_cldflags__old_cflags ifelse([$2],[],[$1],[$2])"
- LDFLAGS="$pa_add_cldflags__old_ldflags ifelse([$2],[],[$1],[$2])",
- AC_MSG_RESULT([no])
- CFLAGS="$pa_add_cldflags__old_cflags"
- LDFLAGS="$pa_add_cldflags__old_ldflags")])
-
-dnl --------------------------------------------------------------------------
-dnl PA_HAVE_FUNC
-dnl
-dnl Look for a function with the specified arguments which could be
-dnl a builtin/intrinsic function.
-dnl --------------------------------------------------------------------------
-AC_DEFUN(PA_HAVE_FUNC,
-[AC_MSG_CHECKING([for $1])
-AC_TRY_LINK([], [(void)$1$2;],
-AC_MSG_RESULT([yes])
-AC_DEFINE(m4_toupper([HAVE_$1]), [1],
-  [Define to 1 if you have the `$1' intrinsic function.]),
-AC_MSG_RESULT([no]))])
-
-dnl --------------------------------------------------------------------------
-dnl PA_LIBEXT
-dnl
-dnl Guess the library extension based on the object extension
-dnl --------------------------------------------------------------------------
-AC_DEFUN(PA_LIBEXT,
-[AC_MSG_CHECKING([for suffix of library files])
-if test x"$LIBEXT" = x; then
-  case "$OBJEXT" in
-    obj )
-      LIBEXT=lib
-      ;;
-    *)
-      LIBEXT=a
-      ;;
-  esac
-fi
-AC_MSG_RESULT([$LIBEXT])
-AC_SUBST([LIBEXT])])
-
-dnl --------------------------------------------------------------------------
-dnl PA_FUNC_ATTRIBUTE
-dnl
-dnl See if this compiler supports the equivalent of a specific gcc
-dnl attribute on a function, using the __attribute__(()) syntax.
-dnl All arguments except the attribute name are optional.
-dnl PA_FUNC_ATTRIBUTE(attribute, attribute_opts, return_type,
-dnl                   prototype_args, call_args)
-dnl --------------------------------------------------------------------------
-AC_DEFUN(PA_FUNC_ATTRIBUTE,
-[AC_MSG_CHECKING([if $CC supports the $1 function attribute])
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([
-#include <stdarg.h>
-extern ifelse([$3],[],[void *],[$3])  __attribute__(($1$2))
-  bar(ifelse([$4],[],[int],[$4]));
-void *foo(void);
-void *foo(void)
-{
-	return bar(ifelse([$5],[],[1],[$5]));
-}
- ])],
- [AC_MSG_RESULT([yes])
-  AC_DEFINE(m4_toupper([HAVE_FUNC_ATTRIBUTE_$1]), 1,
-    [Define to 1 if your compiler supports __attribute__(($1)) on functions])],
- [AC_MSG_RESULT([no])])
-])
-
-dnl --------------------------------------------------------------------------
-dnl PA_FUNC_ATTRIBUTE_ERROR
-dnl
-dnl See if this compiler supports __attribute__((error("foo")))
-dnl The generic version of this doesn't work as it makes the compiler
-dnl throw an error by design.
-dnl --------------------------------------------------------------------------
-AC_DEFUN(PA_FUNC_ATTRIBUTE_ERROR,
-[AC_MSG_CHECKING([if $CC supports the error function attribute])
- AC_COMPILE_IFELSE([AC_LANG_SOURCE([
-#include <stdarg.h>
-extern void __attribute__((error("message"))) barf(void);
-void foo(void);
-void foo(void)
-{
-	if (0)
-		barf();
-}
- ])],
- [AC_MSG_RESULT([yes])
-  AC_DEFINE(m4_toupper([HAVE_FUNC_ATTRIBUTE_ERROR]), 1,
-    [Define to 1 if your compiler supports __attribute__((error)) on functions])],
- [AC_MSG_RESULT([no])])
-])
--- a/nasmbuild/nasm-2.13rc9/asm/assemble.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2961 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * assemble.c   code generation for the Netwide Assembler
- *
- * Bytecode specification
- * ----------------------
- *
- *
- * Codes            Mnemonic        Explanation
- *
- * \0                                       terminates the code. (Unless it's a literal of course.)
- * \1..\4                                   that many literal bytes follow in the code stream
- * \5                                       add 4 to the primary operand number (b, low octdigit)
- * \6                                       add 4 to the secondary operand number (a, middle octdigit)
- * \7                                       add 4 to both the primary and the secondary operand number
- * \10..\13                                 a literal byte follows in the code stream, to be added
- *                                          to the register value of operand 0..3
- * \14..\17                                 the position of index register operand in MIB (BND insns)
- * \20..\23         ib                      a byte immediate operand, from operand 0..3
- * \24..\27         ib,u                    a zero-extended byte immediate operand, from operand 0..3
- * \30..\33         iw                      a word immediate operand, from operand 0..3
- * \34..\37         iwd                     select between \3[0-3] and \4[0-3] depending on 16/32 bit
- *                                          assembly mode or the operand-size override on the operand
- * \40..\43         id                      a long immediate operand, from operand 0..3
- * \44..\47         iwdq                    select between \3[0-3], \4[0-3] and \5[4-7]
- *                                          depending on the address size of the instruction.
- * \50..\53         rel8                    a byte relative operand, from operand 0..3
- * \54..\57         iq                      a qword immediate operand, from operand 0..3
- * \60..\63         rel16                   a word relative operand, from operand 0..3
- * \64..\67         rel                     select between \6[0-3] and \7[0-3] depending on 16/32 bit
- *                                          assembly mode or the operand-size override on the operand
- * \70..\73         rel32                   a long relative operand, from operand 0..3
- * \74..\77         seg                     a word constant, from the _segment_ part of operand 0..3
- * \1ab                                     a ModRM, calculated on EA in operand a, with the spare
- *                                          field the register value of operand b.
- * \172\ab                                  the register number from operand a in bits 7..4, with
- *                                          the 4-bit immediate from operand b in bits 3..0.
- * \173\xab                                 the register number from operand a in bits 7..4, with
- *                                          the value b in bits 3..0.
- * \174..\177                               the register number from operand 0..3 in bits 7..4, and
- *                                          an arbitrary value in bits 3..0 (assembled as zero.)
- * \2ab                                     a ModRM, calculated on EA in operand a, with the spare
- *                                          field equal to digit b.
- *
- * \240..\243                               this instruction uses EVEX rather than REX or VEX/XOP, with the
- *                                          V field taken from operand 0..3.
- * \250                                     this instruction uses EVEX rather than REX or VEX/XOP, with the
- *                                          V field set to 1111b.
- *
- * EVEX prefixes are followed by the sequence:
- * \cm\wlp\tup    where cm is:
- *                  cc 00m mmm
- *                  c = 2 for EVEX and mmmm is the M field (EVEX.P0[3:0])
- *                and wlp is:
- *                  00 wwl lpp
- *                  [l0]  ll = 0 (.128, .lz)
- *                  [l1]  ll = 1 (.256)
- *                  [l2]  ll = 2 (.512)
- *                  [lig] ll = 3 for EVEX.L'L don't care (always assembled as 0)
- *
- *                  [w0]  ww = 0 for W = 0
- *                  [w1]  ww = 1 for W = 1
- *                  [wig] ww = 2 for W don't care (always assembled as 0)
- *                  [ww]  ww = 3 for W used as REX.W
- *
- *                  [p0]  pp = 0 for no prefix
- *                  [60]  pp = 1 for legacy prefix 60
- *                  [f3]  pp = 2
- *                  [f2]  pp = 3
- *
- *                tup is tuple type for Disp8*N from %tuple_codes in insns.pl
- *                    (compressed displacement encoding)
- *
- * \254..\257       id,s                        a signed 32-bit operand to be extended to 64 bits.
- * \260..\263                                   this instruction uses VEX/XOP rather than REX, with the
- *                                              V field taken from operand 0..3.
- * \270                                         this instruction uses VEX/XOP rather than REX, with the
- *                                              V field set to 1111b.
- *
- * VEX/XOP prefixes are followed by the sequence:
- * \tmm\wlp        where mm is the M field; and wlp is:
- *                 00 wwl lpp
- *                 [l0]  ll = 0 for L = 0 (.128, .lz)
- *                 [l1]  ll = 1 for L = 1 (.256)
- *                 [lig] ll = 2 for L don't care (always assembled as 0)
- *
- *                 [w0]  ww = 0 for W = 0
- *                 [w1 ] ww = 1 for W = 1
- *                 [wig] ww = 2 for W don't care (always assembled as 0)
- *                 [ww]  ww = 3 for W used as REX.W
- *
- * t = 0 for VEX (C4/C5), t = 1 for XOP (8F).
- *
- * \271             hlexr                       instruction takes XRELEASE (F3) with or without lock
- * \272             hlenl                       instruction takes XACQUIRE/XRELEASE with or without lock
- * \273             hle                         instruction takes XACQUIRE/XRELEASE with lock only
- * \274..\277       ib,s                        a byte immediate operand, from operand 0..3, sign-extended
- *                                              to the operand size (if o16/o32/o64 present) or the bit size
- * \310             a16                         indicates fixed 16-bit address size, i.e. optional 0x67.
- * \311             a32                         indicates fixed 32-bit address size, i.e. optional 0x67.
- * \312             adf                         (disassembler only) invalid with non-default address size.
- * \313             a64                         indicates fixed 64-bit address size, 0x67 invalid.
- * \314             norexb                      (disassembler only) invalid with REX.B
- * \315             norexx                      (disassembler only) invalid with REX.X
- * \316             norexr                      (disassembler only) invalid with REX.R
- * \317             norexw                      (disassembler only) invalid with REX.W
- * \320             o16                         indicates fixed 16-bit operand size, i.e. optional 0x66.
- * \321             o32                         indicates fixed 32-bit operand size, i.e. optional 0x66.
- * \322             odf                         indicates that this instruction is only valid when the
- *                                              operand size is the default (instruction to disassembler,
- *                                              generates no code in the assembler)
- * \323             o64nw                       indicates fixed 64-bit operand size, REX on extensions only.
- * \324             o64                         indicates 64-bit operand size requiring REX prefix.
- * \325             nohi                        instruction which always uses spl/bpl/sil/dil
- * \326             nof3                        instruction not valid with 0xF3 REP prefix.  Hint for
-                                                disassembler only; for SSE instructions.
- * \330                                         a literal byte follows in the code stream, to be added
- *                                              to the condition code value of the instruction.
- * \331             norep                       instruction not valid with REP prefix.  Hint for
- *                                              disassembler only; for SSE instructions.
- * \332             f2i                         REP prefix (0xF2 byte) used as opcode extension.
- * \333             f3i                         REP prefix (0xF3 byte) used as opcode extension.
- * \334             rex.l                       LOCK prefix used as REX.R (used in non-64-bit mode)
- * \335             repe                        disassemble a rep (0xF3 byte) prefix as repe not rep.
- * \336             mustrep                     force a REP(E) prefix (0xF3) even if not specified.
- * \337             mustrepne                   force a REPNE prefix (0xF2) even if not specified.
- *                                              \336-\337 are still listed as prefixes in the disassembler.
- * \340             resb                        reserve <operand 0> bytes of uninitialized storage.
- *                                              Operand 0 had better be a segmentless constant.
- * \341             wait                        this instruction needs a WAIT "prefix"
- * \360             np                          no SSE prefix (== \364\331)
- * \361                                         66 SSE prefix (== \366\331)
- * \364             !osp                        operand-size prefix (0x66) not permitted
- * \365             !asp                        address-size prefix (0x67) not permitted
- * \366                                         operand-size prefix (0x66) used as opcode extension
- * \367                                         address-size prefix (0x67) used as opcode extension
- * \370,\371        jcc8                        match only if operand 0 meets byte jump criteria.
- *                  jmp8                        370 is used for Jcc, 371 is used for JMP.
- * \373             jlen                        assemble 0x03 if bits==16, 0x05 if bits==32;
- *                                              used for conditional jump over longer jump
- * \374             vsibx|vm32x|vm64x           this instruction takes an XMM VSIB memory EA
- * \375             vsiby|vm32y|vm64y           this instruction takes an YMM VSIB memory EA
- * \376             vsibz|vm32z|vm64z           this instruction takes an ZMM VSIB memory EA
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "assemble.h"
-#include "insns.h"
-#include "tables.h"
-#include "disp8.h"
-#include "listing.h"
-
-enum match_result {
-    /*
-     * Matching errors.  These should be sorted so that more specific
-     * errors come later in the sequence.
-     */
-    MERR_INVALOP,
-    MERR_OPSIZEMISSING,
-    MERR_OPSIZEMISMATCH,
-    MERR_BRNUMMISMATCH,
-    MERR_BADCPU,
-    MERR_BADMODE,
-    MERR_BADHLE,
-    MERR_ENCMISMATCH,
-    MERR_BADBND,
-    MERR_BADREPNE,
-    /*
-     * Matching success; the conditional ones first
-     */
-    MOK_JUMP,   /* Matching OK but needs jmp_match() */
-    MOK_GOOD    /* Matching unconditionally OK */
-};
-
-typedef struct {
-    enum ea_type type;            /* what kind of EA is this? */
-    int sib_present;              /* is a SIB byte necessary? */
-    int bytes;                    /* # of bytes of offset needed */
-    int size;                     /* lazy - this is sib+bytes+1 */
-    uint8_t modrm, sib, rex, rip; /* the bytes themselves */
-    int8_t disp8;                  /* compressed displacement for EVEX */
-} ea;
-
-#define GEN_SIB(scale, index, base)                 \
-        (((scale) << 6) | ((index) << 3) | ((base)))
-
-#define GEN_MODRM(mod, reg, rm)                     \
-        (((mod) << 6) | (((reg) & 7) << 3) | ((rm) & 7))
-
-static int64_t calcsize(int32_t, int64_t, int, insn *,
-                        const struct itemplate *);
-static int emit_prefix(struct out_data *data, const int bits, insn *ins);
-static void gencode(struct out_data *data, insn *ins);
-static enum match_result find_match(const struct itemplate **tempp,
-                                    insn *instruction,
-                                    int32_t segment, int64_t offset, int bits);
-static enum match_result matches(const struct itemplate *, insn *, int bits);
-static opflags_t regflag(const operand *);
-static int32_t regval(const operand *);
-static int rexflags(int, opflags_t, int);
-static int op_rexflags(const operand *, int);
-static int op_evexflags(const operand *, int, uint8_t);
-static void add_asp(insn *, int);
-
-static enum ea_type process_ea(operand *, ea *, int, int, opflags_t, insn *);
-
-static inline bool absolute_op(const struct operand *o)
-{
-    return o->segment == NO_SEG && o->wrt == NO_SEG &&
-        !(o->opflags & OPFLAG_RELATIVE);
-}
-
-static int has_prefix(insn * ins, enum prefix_pos pos, int prefix)
-{
-    return ins->prefixes[pos] == prefix;
-}
-
-static void assert_no_prefix(insn * ins, enum prefix_pos pos)
-{
-    if (ins->prefixes[pos])
-        nasm_error(ERR_NONFATAL, "invalid %s prefix",
-		   prefix_name(ins->prefixes[pos]));
-}
-
-static const char *size_name(int size)
-{
-    switch (size) {
-    case 1:
-        return "byte";
-    case 2:
-        return "word";
-    case 4:
-        return "dword";
-    case 8:
-        return "qword";
-    case 10:
-        return "tword";
-    case 16:
-        return "oword";
-    case 32:
-        return "yword";
-    case 64:
-        return "zword";
-    default:
-        return "???";
-    }
-}
-
-static void warn_overflow(int size)
-{
-    nasm_error(ERR_WARNING | ERR_PASS2 | ERR_WARN_NOV,
-            "%s data exceeds bounds", size_name(size));
-}
-
-static void warn_overflow_const(int64_t data, int size)
-{
-    if (overflow_general(data, size))
-        warn_overflow(size);
-}
-
-static void warn_overflow_opd(const struct operand *o, int size)
-{
-    if (absolute_op(o)) {
-        if (overflow_general(o->offset, size))
-            warn_overflow(size);
-    }
-}
-
-static void warn_overflow_out(int64_t data, int size, enum out_sign sign)
-{
-    bool err;
-
-    switch (sign) {
-    case OUT_WRAP:
-        err = overflow_general(data, size);
-        break;
-    case OUT_SIGNED:
-        err = overflow_signed(data, size);
-        break;
-    case OUT_UNSIGNED:
-        err = overflow_unsigned(data, size);
-        break;
-    default:
-        panic();
-        break;
-    }
-
-    if (err)
-        warn_overflow(size);
-}
-
-/*
- * This routine wrappers the real output format's output routine,
- * in order to pass a copy of the data off to the listing file
- * generator at the same time, flatten unnecessary relocations,
- * and verify backend compatibility.
- */
-static void out(struct out_data *data)
-{
-    static int32_t lineno = 0;     /* static!!! */
-    static const char *lnfname = NULL;
-    int asize;
-    const int amax  = ofmt->maxbits >> 3; /* Maximum address size in bytes */
-    union {
-        uint8_t b[8];
-        uint64_t q;
-    } xdata;
-    uint64_t size = data->size;
-    int64_t addrval;
-    int32_t fixseg;             /* Segment for which to produce fixed data */
-
-    if (!data->size)
-        return;                 /* Nothing to do */
-
-    /*
-     * Convert addresses to RAWDATA if possible
-     * XXX: not all backends want this for global symbols!!!!
-     */
-    switch (data->type) {
-    case OUT_ADDRESS:
-        addrval = data->toffset;
-        fixseg = NO_SEG;        /* Absolute address is fixed data */
-        goto address;
-
-    case OUT_RELADDR:
-        addrval = data->toffset - data->relbase;
-        fixseg = data->segment; /* Our own segment is fixed data */
-        goto address;
-
-    address:
-        asize = data->size;
-        nasm_assert(asize <= 8);
-        if (data->tsegment == fixseg && data->twrt == NO_SEG) {
-            uint8_t *q = xdata.b;
-
-            warn_overflow_out(addrval, asize, data->sign);
-
-            WRITEADDR(q, addrval, asize);
-            data->data = xdata.b;
-            data->type = OUT_RAWDATA;
-            asize = 0;              /* No longer an address */
-        }
-        break;
-
-    default:
-        asize = 0;              /* Not an address */
-        break;
-    }
-
-    lfmt->output(data);
-
-    /*
-     * this call to src_get determines when we call the
-     * debug-format-specific "linenum" function
-     * it updates lineno and lnfname to the current values
-     * returning 0 if "same as last time", -2 if lnfname
-     * changed, and the amount by which lineno changed,
-     * if it did. thus, these variables must be static
-     */
-
-    if (src_get(&lineno, &lnfname))
-        dfmt->linenum(lnfname, lineno, data->segment);
-
-    if (asize && asize > amax) {
-        if (data->type != OUT_ADDRESS || data->sign == OUT_SIGNED) {
-            nasm_error(ERR_NONFATAL,
-                    "%d-bit signed relocation unsupported by output format %s\n",
-                    asize << 3, ofmt->shortname);
-        } else {
-            nasm_error(ERR_WARNING | ERR_WARN_ZEXTRELOC,
-                    "%d-bit unsigned relocation zero-extended from %d bits\n",
-                    asize << 3, ofmt->maxbits);
-            data->size = amax;
-            ofmt->output(data);
-            data->insoffs += amax;
-            data->offset += amax;
-            data->size = size = asize - amax;
-        }
-        data->data = zero_buffer;
-        data->type = OUT_RAWDATA;
-    }
-
-    ofmt->output(data);
-    data->offset += size;
-    data->insoffs += size;
-}
-
-static inline void out_rawdata(struct out_data *data, const void *rawdata,
-                               size_t size)
-{
-    data->type = OUT_RAWDATA;
-    data->data = rawdata;
-    data->size = size;
-    out(data);
-}
-
-static void out_rawbyte(struct out_data *data, uint8_t byte)
-{
-    data->type = OUT_RAWDATA;
-    data->data = &byte;
-    data->size = 1;
-    out(data);
-}
-
-static inline void out_reserve(struct out_data *data, uint64_t size)
-{
-    data->type = OUT_RESERVE;
-    data->size = size;
-    out(data);
-}
-
-static inline void out_imm(struct out_data *data, const struct operand *opx,
-                           int size, enum out_sign sign)
-{
-    data->type =
-        (opx->opflags & OPFLAG_RELATIVE) ? OUT_RELADDR : OUT_ADDRESS;
-    data->sign = sign;
-    data->size = size;
-    data->toffset = opx->offset;
-    data->tsegment = opx->segment;
-    data->twrt = opx->wrt;
-    /*
-     * XXX: improve this if at some point in the future we can
-     * distinguish the subtrahend in expressions like [foo - bar]
-     * where bar is a symbol in the current segment.  However, at the
-     * current point, if OPFLAG_RELATIVE is set that subtraction has
-     * already occurred.
-     */
-    data->relbase = 0;
-    out(data);
-}
-
-static void out_reladdr(struct out_data *data, const struct operand *opx,
-                        int size)
-{
-    if (opx->opflags & OPFLAG_RELATIVE)
-        nasm_error(ERR_NONFATAL, "invalid use of self-relative expression");
-
-    data->type = OUT_RELADDR;
-    data->sign = OUT_SIGNED;
-    data->size = size;
-    data->toffset = opx->offset;
-    data->tsegment = opx->segment;
-    data->twrt = opx->wrt;
-    data->relbase = data->offset + (data->inslen - data->insoffs);
-    out(data);
-}
-
-static inline void out_segment(struct out_data *data,
-                               const struct operand *opx)
-{
-    data->type = OUT_SEGMENT;
-    data->sign = OUT_UNSIGNED;
-    data->size = 2;
-    data->toffset = opx->offset;
-    data->tsegment = ofmt->segbase(opx->segment + 1);
-    data->twrt = opx->wrt;
-    out(data);
-}
-
-static bool jmp_match(int32_t segment, int64_t offset, int bits,
-                      insn * ins, const struct itemplate *temp)
-{
-    int64_t isize;
-    const uint8_t *code = temp->code;
-    uint8_t c = code[0];
-    bool is_byte;
-
-    if (((c & ~1) != 0370) || (ins->oprs[0].type & STRICT))
-        return false;
-    if (!optimizing)
-        return false;
-    if (optimizing < 0 && c == 0371)
-        return false;
-
-    isize = calcsize(segment, offset, bits, ins, temp);
-
-    if (ins->oprs[0].opflags & OPFLAG_UNKNOWN)
-        /* Be optimistic in pass 1 */
-        return true;
-
-    if (ins->oprs[0].segment != segment)
-        return false;
-
-    isize = ins->oprs[0].offset - offset - isize; /* isize is delta */
-    is_byte = (isize >= -128 && isize <= 127); /* is it byte size? */
-
-    if (is_byte && c == 0371 && ins->prefixes[PPS_REP] == P_BND) {
-        /* jmp short (opcode eb) cannot be used with bnd prefix. */
-        ins->prefixes[PPS_REP] = P_none;
-        nasm_error(ERR_WARNING | ERR_WARN_BND | ERR_PASS2 ,
-                "jmp short does not init bnd regs - bnd prefix dropped.");
-    }
-
-    return is_byte;
-}
-
-/* This is totally just a wild guess what is reasonable... */
-#define INCBIN_MAX_BUF (ZERO_BUF_SIZE * 16)
-
-int64_t assemble(int32_t segment, int64_t start, int bits, insn *instruction)
-{
-    struct out_data data;
-    const struct itemplate *temp;
-    enum match_result m;
-    int32_t itimes;
-    int64_t wsize;              /* size for DB etc. */
-
-    nasm_zero(&data);
-    data.offset = start;
-    data.segment = segment;
-    data.itemp = NULL;
-    data.sign = OUT_WRAP;
-    data.bits = bits;
-
-    wsize = idata_bytes(instruction->opcode);
-    if (wsize == -1)
-        return 0;
-
-    if (wsize) {
-        extop *e;
-        int32_t t = instruction->times;
-        if (t < 0)
-	    nasm_panic(0, "instruction->times < 0 (%"PRId32") in assemble()", t);
-
-        while (t--) {           /* repeat TIMES times */
-            list_for_each(e, instruction->eops) {
-                if (e->type == EOT_DB_NUMBER) {
-                    if (wsize > 8) {
-                        nasm_error(ERR_NONFATAL,
-                                "integer supplied to a DT, DO or DY"
-                                " instruction");
-                    } else {
-                        data.insoffs = 0;
-                        data.type = e->relative ? OUT_RELADDR : OUT_ADDRESS;
-                        data.inslen = data.size = wsize;
-                        data.toffset = e->offset;
-                        data.tsegment = e->segment;
-                        data.twrt = e->wrt;
-                        data.relbase = 0;
-                        out(&data);
-                    }
-                } else if (e->type == EOT_DB_STRING ||
-                           e->type == EOT_DB_STRING_FREE) {
-                    int align = e->stringlen % wsize;
-                    if (align)
-                        align = wsize - align;
-
-                    data.insoffs = 0;
-                    data.inslen = e->stringlen + align;
-
-                    out_rawdata(&data, e->stringval, e->stringlen);
-                    out_rawdata(&data, zero_buffer, align);
-                }
-            }
-            if (t > 0 && t == instruction->times - 1) {
-                lfmt->set_offset(data.offset);
-                lfmt->uplevel(LIST_TIMES);
-            }
-        }
-        if (instruction->times > 1)
-            lfmt->downlevel(LIST_TIMES);
-    } else if (instruction->opcode == I_INCBIN) {
-        const char *fname = instruction->eops->stringval;
-        FILE *fp;
-        size_t t = instruction->times;
-        off_t base = 0;
-        off_t len;
-        const void *map = NULL;
-        char *buf = NULL;
-        size_t blk = 0;         /* Buffered I/O block size */
-        size_t m = 0;           /* Bytes last read */
-
-        fp = nasm_open_read(fname, NF_BINARY|NF_FORMAP);
-        if (!fp) {
-            nasm_error(ERR_NONFATAL, "`incbin': unable to open file `%s'",
-                  fname);
-            goto done;
-        }
-
-        len = nasm_file_size(fp);
-
-        if (len == (off_t)-1) {
-            nasm_error(ERR_NONFATAL, "`incbin': unable to get length of file `%s'",
-                       fname);
-            goto close_done;
-        }
-
-        if (instruction->eops->next) {
-            base = instruction->eops->next->offset;
-            if (base >= len) {
-                len = 0;
-            } else {
-                len -= base;
-                if (instruction->eops->next->next &&
-                    len > (off_t)instruction->eops->next->next->offset)
-                    len = (off_t)instruction->eops->next->next->offset;
-            }
-        }
-
-        lfmt->set_offset(data.offset);
-        lfmt->uplevel(LIST_INCBIN);
-
-        if (!len)
-            goto end_incbin;
-
-        /* Try to map file data */
-        map = nasm_map_file(fp, base, len);
-        if (!map) {
-            blk = len < (off_t)INCBIN_MAX_BUF ? (size_t)len : INCBIN_MAX_BUF;
-            buf = nasm_malloc(blk);
-        }
-
-        while (t--) {
-            /*
-             * Consider these irrelevant for INCBIN, since it is fully
-             * possible that these might be (way) bigger than an int
-             * can hold; there is, however, no reason to widen these
-             * types just for INCBIN.  data.inslen == 0 signals to the
-             * backend that these fields are meaningless, if at all
-             * needed.
-             */
-            data.insoffs = 0;
-            data.inslen = 0;
-
-            if (map) {
-                out_rawdata(&data, map, len);
-            } else if ((off_t)m == len) {
-                out_rawdata(&data, buf, len);
-            } else {
-                off_t l = len;
-
-                if (fseeko(fp, base, SEEK_SET) < 0 || ferror(fp)) {
-                    nasm_error(ERR_NONFATAL,
-                               "`incbin': unable to seek on file `%s'",
-                               fname);
-                    goto end_incbin;
-                }
-                while (l > 0) {
-                    m = fread(buf, 1, l < (off_t)blk ? (size_t)l : blk, fp);
-                    if (!m || feof(fp)) {
-                        /*
-                         * This shouldn't happen unless the file
-                         * actually changes while we are reading
-                         * it.
-                         */
-                        nasm_error(ERR_NONFATAL,
-                                   "`incbin': unexpected EOF while"
-                                   " reading file `%s'", fname);
-                        goto end_incbin;
-                    }
-                    out_rawdata(&data, buf, m);
-                    l -= m;
-                }
-            }
-        }
-    end_incbin:
-        lfmt->downlevel(LIST_INCBIN);
-        if (instruction->times > 1) {
-            lfmt->set_offset(data.offset);
-            lfmt->uplevel(LIST_TIMES);
-            lfmt->downlevel(LIST_TIMES);
-        }
-        if (ferror(fp)) {
-            nasm_error(ERR_NONFATAL,
-                       "`incbin': error while"
-                       " reading file `%s'", fname);
-        }
-    close_done:
-        if (buf)
-            nasm_free(buf);
-        if (map)
-            nasm_unmap_file(map, len);
-        fclose(fp);
-    done:
-        ;
-    } else {
-        /* "Real" instruction */
-
-        /* Check to see if we need an address-size prefix */
-        add_asp(instruction, bits);
-
-        m = find_match(&temp, instruction, data.segment, data.offset, bits);
-
-        if (m == MOK_GOOD) {
-            /* Matches! */
-            int64_t insn_size = calcsize(data.segment, data.offset,
-                                         bits, instruction, temp);
-            itimes = instruction->times;
-            if (insn_size < 0)  /* shouldn't be, on pass two */
-                nasm_panic(0, "errors made it through from pass one");
-
-            data.itemp = temp;
-            data.bits = bits;
-
-            while (itimes--) {
-                data.insoffs = 0;
-                data.inslen = insn_size;
-
-                gencode(&data, instruction);
-                nasm_assert(data.insoffs == insn_size);
-
-                if (itimes > 0 && itimes == instruction->times - 1) {
-                    lfmt->set_offset(data.offset);
-                    lfmt->uplevel(LIST_TIMES);
-                }
-            }
-            if (instruction->times > 1)
-                lfmt->downlevel(LIST_TIMES);
-        } else {
-            /* No match */
-            switch (m) {
-            case MERR_OPSIZEMISSING:
-                nasm_error(ERR_NONFATAL, "operation size not specified");
-                break;
-            case MERR_OPSIZEMISMATCH:
-                nasm_error(ERR_NONFATAL, "mismatch in operand sizes");
-                break;
-            case MERR_BRNUMMISMATCH:
-                nasm_error(ERR_NONFATAL,
-                           "mismatch in the number of broadcasting elements");
-                break;
-            case MERR_BADCPU:
-                nasm_error(ERR_NONFATAL, "no instruction for this cpu level");
-                break;
-            case MERR_BADMODE:
-                nasm_error(ERR_NONFATAL, "instruction not supported in %d-bit mode",
-                           bits);
-                break;
-            case MERR_ENCMISMATCH:
-                nasm_error(ERR_NONFATAL, "specific encoding scheme not available");
-                break;
-            case MERR_BADBND:
-                nasm_error(ERR_NONFATAL, "bnd prefix is not allowed");
-                break;
-            case MERR_BADREPNE:
-                nasm_error(ERR_NONFATAL, "%s prefix is not allowed",
-                           (has_prefix(instruction, PPS_REP, P_REPNE) ?
-                            "repne" : "repnz"));
-                break;
-            default:
-                nasm_error(ERR_NONFATAL,
-                           "invalid combination of opcode and operands");
-                break;
-            }
-        }
-    }
-    return data.offset - start;
-}
-
-int64_t insn_size(int32_t segment, int64_t offset, int bits, insn *instruction)
-{
-    const struct itemplate *temp;
-    enum match_result m;
-
-    if (instruction->opcode == I_none)
-        return 0;
-
-    if (instruction->opcode == I_DB || instruction->opcode == I_DW ||
-        instruction->opcode == I_DD || instruction->opcode == I_DQ ||
-        instruction->opcode == I_DT || instruction->opcode == I_DO ||
-        instruction->opcode == I_DY) {
-        extop *e;
-        int32_t isize, osize, wsize;
-
-        isize = 0;
-        wsize = idata_bytes(instruction->opcode);
-
-        list_for_each(e, instruction->eops) {
-            int32_t align;
-
-            osize = 0;
-            if (e->type == EOT_DB_NUMBER) {
-                osize = 1;
-                warn_overflow_const(e->offset, wsize);
-            } else if (e->type == EOT_DB_STRING ||
-                       e->type == EOT_DB_STRING_FREE)
-                osize = e->stringlen;
-
-            align = (-osize) % wsize;
-            if (align < 0)
-                align += wsize;
-            isize += osize + align;
-        }
-        return isize;
-    }
-
-    if (instruction->opcode == I_INCBIN) {
-        const char *fname = instruction->eops->stringval;
-        off_t len;
-
-        len = nasm_file_size_by_path(fname);
-        if (len == (off_t)-1) {
-            nasm_error(ERR_NONFATAL, "`incbin': unable to get length of file `%s'",
-                       fname);
-            return 0;
-        }
-
-        if (instruction->eops->next) {
-            if (len <= (off_t)instruction->eops->next->offset) {
-                len = 0;
-            } else {
-                len -= instruction->eops->next->offset;
-                if (instruction->eops->next->next &&
-                    len > (off_t)instruction->eops->next->next->offset) {
-                    len = (off_t)instruction->eops->next->next->offset;
-                }
-            }
-        }
-
-        return len;
-    }
-
-    /* Check to see if we need an address-size prefix */
-    add_asp(instruction, bits);
-
-    m = find_match(&temp, instruction, segment, offset, bits);
-    if (m == MOK_GOOD) {
-        /* we've matched an instruction. */
-        return calcsize(segment, offset, bits, instruction, temp);
-    } else {
-        return -1;                  /* didn't match any instruction */
-    }
-}
-
-static void bad_hle_warn(const insn * ins, uint8_t hleok)
-{
-    enum prefixes rep_pfx = ins->prefixes[PPS_REP];
-    enum whatwarn { w_none, w_lock, w_inval } ww;
-    static const enum whatwarn warn[2][4] =
-    {
-        { w_inval, w_inval, w_none, w_lock }, /* XACQUIRE */
-        { w_inval, w_none,  w_none, w_lock }, /* XRELEASE */
-    };
-    unsigned int n;
-
-    n = (unsigned int)rep_pfx - P_XACQUIRE;
-    if (n > 1)
-        return;                 /* Not XACQUIRE/XRELEASE */
-
-    ww = warn[n][hleok];
-    if (!is_class(MEMORY, ins->oprs[0].type))
-        ww = w_inval;           /* HLE requires operand 0 to be memory */
-
-    switch (ww) {
-    case w_none:
-        break;
-
-    case w_lock:
-        if (ins->prefixes[PPS_LOCK] != P_LOCK) {
-            nasm_error(ERR_WARNING | ERR_WARN_HLE | ERR_PASS2,
-                    "%s with this instruction requires lock",
-                    prefix_name(rep_pfx));
-        }
-        break;
-
-    case w_inval:
-        nasm_error(ERR_WARNING | ERR_WARN_HLE | ERR_PASS2,
-                "%s invalid with this instruction",
-                prefix_name(rep_pfx));
-        break;
-    }
-}
-
-/* Common construct */
-#define case3(x) case (x): case (x)+1: case (x)+2
-#define case4(x) case3(x): case (x)+3
-
-static int64_t calcsize(int32_t segment, int64_t offset, int bits,
-                        insn * ins, const struct itemplate *temp)
-{
-    const uint8_t *codes = temp->code;
-    int64_t length = 0;
-    uint8_t c;
-    int rex_mask = ~0;
-    int op1, op2;
-    struct operand *opx;
-    uint8_t opex = 0;
-    enum ea_type eat;
-    uint8_t hleok = 0;
-    bool lockcheck = true;
-    enum reg_enum mib_index = R_none;   /* For a separate index MIB reg form */
-
-    ins->rex = 0;               /* Ensure REX is reset */
-    eat = EA_SCALAR;            /* Expect a scalar EA */
-    memset(ins->evex_p, 0, 3);  /* Ensure EVEX is reset */
-
-    if (ins->prefixes[PPS_OSIZE] == P_O64)
-        ins->rex |= REX_W;
-
-    (void)segment;              /* Don't warn that this parameter is unused */
-    (void)offset;               /* Don't warn that this parameter is unused */
-
-    while (*codes) {
-        c = *codes++;
-        op1 = (c & 3) + ((opex & 1) << 2);
-        op2 = ((c >> 3) & 3) + ((opex & 2) << 1);
-        opx = &ins->oprs[op1];
-        opex = 0;               /* For the next iteration */
-
-        switch (c) {
-        case4(01):
-            codes += c, length += c;
-            break;
-
-        case3(05):
-            opex = c;
-            break;
-
-        case4(010):
-            ins->rex |=
-                op_rexflags(opx, REX_B|REX_H|REX_P|REX_W);
-            codes++, length++;
-            break;
-
-        case4(014):
-            /* this is an index reg of MIB operand */
-            mib_index = opx->basereg;
-            break;
-
-        case4(020):
-        case4(024):
-            length++;
-            break;
-
-        case4(030):
-            length += 2;
-            break;
-
-        case4(034):
-            if (opx->type & (BITS16 | BITS32 | BITS64))
-                length += (opx->type & BITS16) ? 2 : 4;
-            else
-                length += (bits == 16) ? 2 : 4;
-            break;
-
-        case4(040):
-            length += 4;
-            break;
-
-        case4(044):
-            length += ins->addr_size >> 3;
-            break;
-
-        case4(050):
-            length++;
-            break;
-
-        case4(054):
-            length += 8; /* MOV reg64/imm */
-            break;
-
-        case4(060):
-            length += 2;
-            break;
-
-        case4(064):
-            if (opx->type & (BITS16 | BITS32 | BITS64))
-                length += (opx->type & BITS16) ? 2 : 4;
-            else
-                length += (bits == 16) ? 2 : 4;
-            break;
-
-        case4(070):
-            length += 4;
-            break;
-
-        case4(074):
-            length += 2;
-            break;
-
-        case 0172:
-        case 0173:
-            codes++;
-            length++;
-            break;
-
-        case4(0174):
-            length++;
-            break;
-
-        case4(0240):
-            ins->rex |= REX_EV;
-            ins->vexreg = regval(opx);
-            ins->evex_p[2] |= op_evexflags(opx, EVEX_P2VP, 2); /* High-16 NDS */
-            ins->vex_cm = *codes++;
-            ins->vex_wlp = *codes++;
-            ins->evex_tuple = (*codes++ - 0300);
-            break;
-
-        case 0250:
-            ins->rex |= REX_EV;
-            ins->vexreg = 0;
-            ins->vex_cm = *codes++;
-            ins->vex_wlp = *codes++;
-            ins->evex_tuple = (*codes++ - 0300);
-            break;
-
-        case4(0254):
-            length += 4;
-            break;
-
-        case4(0260):
-            ins->rex |= REX_V;
-            ins->vexreg = regval(opx);
-            ins->vex_cm = *codes++;
-            ins->vex_wlp = *codes++;
-            break;
-
-        case 0270:
-            ins->rex |= REX_V;
-            ins->vexreg = 0;
-            ins->vex_cm = *codes++;
-            ins->vex_wlp = *codes++;
-            break;
-
-        case3(0271):
-            hleok = c & 3;
-            break;
-
-        case4(0274):
-            length++;
-            break;
-
-        case4(0300):
-            break;
-
-        case 0310:
-            if (bits == 64)
-                return -1;
-            length += (bits != 16) && !has_prefix(ins, PPS_ASIZE, P_A16);
-            break;
-
-        case 0311:
-            length += (bits != 32) && !has_prefix(ins, PPS_ASIZE, P_A32);
-            break;
-
-        case 0312:
-            break;
-
-        case 0313:
-            if (bits != 64 || has_prefix(ins, PPS_ASIZE, P_A16) ||
-                has_prefix(ins, PPS_ASIZE, P_A32))
-                return -1;
-            break;
-
-        case4(0314):
-            break;
-
-        case 0320:
-        {
-            enum prefixes pfx = ins->prefixes[PPS_OSIZE];
-            if (pfx == P_O16)
-                break;
-            if (pfx != P_none)
-                nasm_error(ERR_WARNING | ERR_PASS2, "invalid operand size prefix");
-            else
-                ins->prefixes[PPS_OSIZE] = P_O16;
-            break;
-        }
-
-        case 0321:
-        {
-            enum prefixes pfx = ins->prefixes[PPS_OSIZE];
-            if (pfx == P_O32)
-                break;
-            if (pfx != P_none)
-                nasm_error(ERR_WARNING | ERR_PASS2, "invalid operand size prefix");
-            else
-                ins->prefixes[PPS_OSIZE] = P_O32;
-            break;
-        }
-
-        case 0322:
-            break;
-
-        case 0323:
-            rex_mask &= ~REX_W;
-            break;
-
-        case 0324:
-            ins->rex |= REX_W;
-            break;
-
-        case 0325:
-            ins->rex |= REX_NH;
-            break;
-
-        case 0326:
-            break;
-
-        case 0330:
-            codes++, length++;
-            break;
-
-        case 0331:
-            break;
-
-        case 0332:
-        case 0333:
-            length++;
-            break;
-
-        case 0334:
-            ins->rex |= REX_L;
-            break;
-
-        case 0335:
-            break;
-
-        case 0336:
-            if (!ins->prefixes[PPS_REP])
-                ins->prefixes[PPS_REP] = P_REP;
-            break;
-
-        case 0337:
-            if (!ins->prefixes[PPS_REP])
-                ins->prefixes[PPS_REP] = P_REPNE;
-            break;
-
-        case 0340:
-            if (!absolute_op(&ins->oprs[0]))
-                nasm_error(ERR_NONFATAL, "attempt to reserve non-constant"
-                        " quantity of BSS space");
-            else if (ins->oprs[0].opflags & OPFLAG_FORWARD)
-                nasm_error(ERR_WARNING | ERR_PASS1,
-                           "forward reference in RESx can have unpredictable results");
-            else
-                length += ins->oprs[0].offset;
-            break;
-
-        case 0341:
-            if (!ins->prefixes[PPS_WAIT])
-                ins->prefixes[PPS_WAIT] = P_WAIT;
-            break;
-
-        case 0360:
-            break;
-
-        case 0361:
-            length++;
-            break;
-
-        case 0364:
-        case 0365:
-            break;
-
-        case 0366:
-        case 0367:
-            length++;
-            break;
-
-        case 0370:
-        case 0371:
-            break;
-
-        case 0373:
-            length++;
-            break;
-
-        case 0374:
-            eat = EA_XMMVSIB;
-            break;
-
-        case 0375:
-            eat = EA_YMMVSIB;
-            break;
-
-        case 0376:
-            eat = EA_ZMMVSIB;
-            break;
-
-        case4(0100):
-        case4(0110):
-        case4(0120):
-        case4(0130):
-        case4(0200):
-        case4(0204):
-        case4(0210):
-        case4(0214):
-        case4(0220):
-        case4(0224):
-        case4(0230):
-        case4(0234):
-            {
-                ea ea_data;
-                int rfield;
-                opflags_t rflags;
-                struct operand *opy = &ins->oprs[op2];
-                struct operand *op_er_sae;
-
-                ea_data.rex = 0;           /* Ensure ea.REX is initially 0 */
-
-                if (c <= 0177) {
-                    /* pick rfield from operand b (opx) */
-                    rflags = regflag(opx);
-                    rfield = nasm_regvals[opx->basereg];
-                } else {
-                    rflags = 0;
-                    rfield = c & 7;
-                }
-
-                /* EVEX.b1 : evex_brerop contains the operand position */
-                op_er_sae = (ins->evex_brerop >= 0 ?
-                             &ins->oprs[ins->evex_brerop] : NULL);
-
-                if (op_er_sae && (op_er_sae->decoflags & (ER | SAE))) {
-                    /* set EVEX.b */
-                    ins->evex_p[2] |= EVEX_P2B;
-                    if (op_er_sae->decoflags & ER) {
-                        /* set EVEX.RC (rounding control) */
-                        ins->evex_p[2] |= ((ins->evex_rm - BRC_RN) << 5)
-                                          & EVEX_P2RC;
-                    }
-                } else {
-                    /* set EVEX.L'L (vector length) */
-                    ins->evex_p[2] |= ((ins->vex_wlp << (5 - 2)) & EVEX_P2LL);
-                    ins->evex_p[1] |= ((ins->vex_wlp << (7 - 4)) & EVEX_P1W);
-                    if (opy->decoflags & BRDCAST_MASK) {
-                        /* set EVEX.b */
-                        ins->evex_p[2] |= EVEX_P2B;
-                    }
-                }
-
-                if (itemp_has(temp, IF_MIB)) {
-                    opy->eaflags |= EAF_MIB;
-                    /*
-                     * if a separate form of MIB (ICC style) is used,
-                     * the index reg info is merged into mem operand
-                     */
-                    if (mib_index != R_none) {
-                        opy->indexreg = mib_index;
-                        opy->scale = 1;
-                        opy->hintbase = mib_index;
-                        opy->hinttype = EAH_NOTBASE;
-                    }
-                }
-
-                if (process_ea(opy, &ea_data, bits,
-                               rfield, rflags, ins) != eat) {
-                    nasm_error(ERR_NONFATAL, "invalid effective address");
-                    return -1;
-                } else {
-                    ins->rex |= ea_data.rex;
-                    length += ea_data.size;
-                }
-            }
-            break;
-
-        default:
-            nasm_panic(0, "internal instruction table corrupt"
-                    ": instruction code \\%o (0x%02X) given", c, c);
-            break;
-        }
-    }
-
-    ins->rex &= rex_mask;
-
-    if (ins->rex & REX_NH) {
-        if (ins->rex & REX_H) {
-            nasm_error(ERR_NONFATAL, "instruction cannot use high registers");
-            return -1;
-        }
-        ins->rex &= ~REX_P;        /* Don't force REX prefix due to high reg */
-    }
-
-    switch (ins->prefixes[PPS_VEX]) {
-    case P_EVEX:
-        if (!(ins->rex & REX_EV))
-            return -1;
-        break;
-    case P_VEX3:
-    case P_VEX2:
-        if (!(ins->rex & REX_V))
-            return -1;
-        break;
-    default:
-        break;
-    }
-
-    if (ins->rex & (REX_V | REX_EV)) {
-        int bad32 = REX_R|REX_W|REX_X|REX_B;
-
-        if (ins->rex & REX_H) {
-            nasm_error(ERR_NONFATAL, "cannot use high register in AVX instruction");
-            return -1;
-        }
-        switch (ins->vex_wlp & 060) {
-        case 000:
-        case 040:
-            ins->rex &= ~REX_W;
-            break;
-        case 020:
-            ins->rex |= REX_W;
-            bad32 &= ~REX_W;
-            break;
-        case 060:
-            /* Follow REX_W */
-            break;
-        }
-
-        if (bits != 64 && ((ins->rex & bad32) || ins->vexreg > 7)) {
-            nasm_error(ERR_NONFATAL, "invalid operands in non-64-bit mode");
-            return -1;
-        } else if (!(ins->rex & REX_EV) &&
-                   ((ins->vexreg > 15) || (ins->evex_p[0] & 0xf0))) {
-            nasm_error(ERR_NONFATAL, "invalid high-16 register in non-AVX-512");
-            return -1;
-        }
-        if (ins->rex & REX_EV)
-            length += 4;
-        else if (ins->vex_cm != 1 || (ins->rex & (REX_W|REX_X|REX_B)) ||
-                 ins->prefixes[PPS_VEX] == P_VEX3)
-            length += 3;
-        else
-            length += 2;
-    } else if (ins->rex & REX_MASK) {
-        if (ins->rex & REX_H) {
-            nasm_error(ERR_NONFATAL, "cannot use high register in rex instruction");
-            return -1;
-        } else if (bits == 64) {
-            length++;
-        } else if ((ins->rex & REX_L) &&
-                   !(ins->rex & (REX_P|REX_W|REX_X|REX_B)) &&
-                   iflag_ffs(&cpu) >= IF_X86_64) {
-            /* LOCK-as-REX.R */
-            assert_no_prefix(ins, PPS_LOCK);
-            lockcheck = false;  /* Already errored, no need for warning */
-            length++;
-        } else {
-            nasm_error(ERR_NONFATAL, "invalid operands in non-64-bit mode");
-            return -1;
-        }
-    }
-
-    if (has_prefix(ins, PPS_LOCK, P_LOCK) && lockcheck &&
-        (!itemp_has(temp,IF_LOCK) || !is_class(MEMORY, ins->oprs[0].type))) {
-        nasm_error(ERR_WARNING | ERR_WARN_LOCK | ERR_PASS2 ,
-                "instruction is not lockable");
-    }
-
-    bad_hle_warn(ins, hleok);
-
-    /*
-     * when BND prefix is set by DEFAULT directive,
-     * BND prefix is added to every appropriate instruction line
-     * unless it is overridden by NOBND prefix.
-     */
-    if (globalbnd &&
-        (itemp_has(temp, IF_BND) && !has_prefix(ins, PPS_REP, P_NOBND)))
-            ins->prefixes[PPS_REP] = P_BND;
-
-    /*
-     * Add length of legacy prefixes
-     */
-    length += emit_prefix(NULL, bits, ins);
-
-    return length;
-}
-
-static inline void emit_rex(struct out_data *data, insn *ins)
-{
-    if (data->bits == 64) {
-        if ((ins->rex & REX_MASK) &&
-            !(ins->rex & (REX_V | REX_EV)) &&
-            !ins->rex_done) {
-            uint8_t rex = (ins->rex & REX_MASK) | REX_P;
-            out_rawbyte(data, rex);
-            ins->rex_done = true;
-        }
-    }
-}
-
-static int emit_prefix(struct out_data *data, const int bits, insn *ins)
-{
-    int bytes = 0;
-    int j;
-
-    for (j = 0; j < MAXPREFIX; j++) {
-        uint8_t c = 0;
-        switch (ins->prefixes[j]) {
-        case P_WAIT:
-            c = 0x9B;
-            break;
-        case P_LOCK:
-            c = 0xF0;
-            break;
-        case P_REPNE:
-        case P_REPNZ:
-        case P_XACQUIRE:
-        case P_BND:
-            c = 0xF2;
-            break;
-        case P_REPE:
-        case P_REPZ:
-        case P_REP:
-        case P_XRELEASE:
-            c = 0xF3;
-            break;
-        case R_CS:
-            if (bits == 64) {
-                nasm_error(ERR_WARNING | ERR_PASS2,
-                           "cs segment base generated, but will be ignored in 64-bit mode");
-            }
-            c = 0x2E;
-            break;
-        case R_DS:
-            if (bits == 64) {
-                nasm_error(ERR_WARNING | ERR_PASS2,
-                           "ds segment base generated, but will be ignored in 64-bit mode");
-            }
-            c = 0x3E;
-            break;
-        case R_ES:
-            if (bits == 64) {
-                nasm_error(ERR_WARNING | ERR_PASS2,
-                           "es segment base generated, but will be ignored in 64-bit mode");
-            }
-            c = 0x26;
-            break;
-        case R_FS:
-            c = 0x64;
-            break;
-        case R_GS:
-            c = 0x65;
-            break;
-        case R_SS:
-            if (bits == 64) {
-                nasm_error(ERR_WARNING | ERR_PASS2,
-                           "ss segment base generated, but will be ignored in 64-bit mode");
-            }
-            c = 0x36;
-            break;
-        case R_SEGR6:
-        case R_SEGR7:
-            nasm_error(ERR_NONFATAL,
-                       "segr6 and segr7 cannot be used as prefixes");
-            break;
-        case P_A16:
-            if (bits == 64) {
-                nasm_error(ERR_NONFATAL,
-                           "16-bit addressing is not supported "
-                           "in 64-bit mode");
-            } else if (bits != 16)
-                c = 0x67;
-            break;
-        case P_A32:
-            if (bits != 32)
-                c = 0x67;
-            break;
-        case P_A64:
-            if (bits != 64) {
-                nasm_error(ERR_NONFATAL,
-                           "64-bit addressing is only supported "
-                           "in 64-bit mode");
-            }
-            break;
-        case P_ASP:
-            c = 0x67;
-            break;
-        case P_O16:
-            if (bits != 16)
-                c = 0x66;
-            break;
-        case P_O32:
-            if (bits == 16)
-                c = 0x66;
-            break;
-        case P_O64:
-            /* REX.W */
-            break;
-        case P_OSP:
-            c = 0x66;
-            break;
-        case P_EVEX:
-        case P_VEX3:
-        case P_VEX2:
-        case P_NOBND:
-        case P_none:
-            break;
-        default:
-            nasm_panic(0, "invalid instruction prefix");
-        }
-        if (c) {
-            if (data)
-                out_rawbyte(data, c);
-            bytes++;
-        }
-    }
-    return bytes;
-}
-
-static void gencode(struct out_data *data, insn *ins)
-{
-    uint8_t c;
-    uint8_t bytes[4];
-    int64_t size;
-    int op1, op2;
-    struct operand *opx;
-    const uint8_t *codes = data->itemp->code;
-    uint8_t opex = 0;
-    enum ea_type eat = EA_SCALAR;
-    int r;
-    const int bits = data->bits;
-
-    ins->rex_done = false;
-
-    emit_prefix(data, bits, ins);
-
-    while (*codes) {
-        c = *codes++;
-        op1 = (c & 3) + ((opex & 1) << 2);
-        op2 = ((c >> 3) & 3) + ((opex & 2) << 1);
-        opx = &ins->oprs[op1];
-        opex = 0;                /* For the next iteration */
-
-
-        switch (c) {
-        case 01:
-        case 02:
-        case 03:
-        case 04:
-            emit_rex(data, ins);
-            out_rawdata(data, codes, c);
-            codes += c;
-            break;
-
-        case 05:
-        case 06:
-        case 07:
-            opex = c;
-            break;
-
-        case4(010):
-            emit_rex(data, ins);
-            out_rawbyte(data, *codes++ + (regval(opx) & 7));
-            break;
-
-        case4(014):
-            break;
-
-        case4(020):
-            if (opx->offset < -256 || opx->offset > 255)
-                nasm_error(ERR_WARNING | ERR_PASS2 | ERR_WARN_NOV,
-                        "byte value exceeds bounds");
-            out_imm(data, opx, 1, OUT_WRAP);
-            break;
-
-        case4(024):
-            if (opx->offset < 0 || opx->offset > 255)
-                nasm_error(ERR_WARNING | ERR_PASS2 | ERR_WARN_NOV,
-                        "unsigned byte value exceeds bounds");
-            out_imm(data, opx, 1, OUT_UNSIGNED);
-            break;
-
-        case4(030):
-            warn_overflow_opd(opx, 2);
-            out_imm(data, opx, 2, OUT_WRAP);
-            break;
-
-        case4(034):
-            if (opx->type & (BITS16 | BITS32))
-                size = (opx->type & BITS16) ? 2 : 4;
-            else
-                size = (bits == 16) ? 2 : 4;
-            warn_overflow_opd(opx, size);
-            out_imm(data, opx, size, OUT_WRAP);
-            break;
-
-        case4(040):
-            warn_overflow_opd(opx, 4);
-            out_imm(data, opx, 4, OUT_WRAP);
-            break;
-
-        case4(044):
-            size = ins->addr_size >> 3;
-            warn_overflow_opd(opx, size);
-            out_imm(data, opx, size, OUT_WRAP);
-            break;
-
-        case4(050):
-            if (opx->segment == data->segment) {
-                int64_t delta = opx->offset - data->offset
-                    - (data->inslen - data->insoffs);
-                if (delta > 127 || delta < -128)
-                    nasm_error(ERR_NONFATAL, "short jump is out of range");
-            }
-            out_reladdr(data, opx, 1);
-            break;
-
-        case4(054):
-            out_imm(data, opx, 8, OUT_WRAP);
-            break;
-
-        case4(060):
-            out_reladdr(data, opx, 2);
-            break;
-
-        case4(064):
-            if (opx->type & (BITS16 | BITS32 | BITS64))
-                size = (opx->type & BITS16) ? 2 : 4;
-            else
-                size = (bits == 16) ? 2 : 4;
-
-            out_reladdr(data, opx, size);
-            break;
-
-        case4(070):
-            out_reladdr(data, opx, 4);
-            break;
-
-        case4(074):
-            if (opx->segment == NO_SEG)
-                nasm_error(ERR_NONFATAL, "value referenced by FAR is not"
-                        " relocatable");
-            out_segment(data, opx);
-            break;
-
-        case 0172:
-        {
-            int mask = ins->prefixes[PPS_VEX] == P_EVEX ? 7 : 15;
-            const struct operand *opy;
-
-            c = *codes++;
-            opx = &ins->oprs[c >> 3];
-            opy = &ins->oprs[c & 7];
-            if (!absolute_op(opy)) {
-                nasm_error(ERR_NONFATAL,
-                        "non-absolute expression not permitted as argument %d",
-                        c & 7);
-            } else if (opy->offset & ~mask) {
-                nasm_error(ERR_WARNING | ERR_PASS2 | ERR_WARN_NOV,
-                           "is4 argument exceeds bounds");
-            }
-            c = opy->offset & mask;
-            goto emit_is4;
-         }
-
-        case 0173:
-            c = *codes++;
-            opx = &ins->oprs[c >> 4];
-            c &= 15;
-            goto emit_is4;
-
-        case4(0174):
-            c = 0;
-        emit_is4:
-            r = nasm_regvals[opx->basereg];
-            out_rawbyte(data, (r << 4) | ((r & 0x10) >> 1) | c);
-            break;
-
-        case4(0254):
-            if (absolute_op(opx) &&
-                (int32_t)opx->offset != (int64_t)opx->offset) {
-                nasm_error(ERR_WARNING | ERR_PASS2 | ERR_WARN_NOV,
-                        "signed dword immediate exceeds bounds");
-            }
-            out_imm(data, opx, 4, OUT_SIGNED);
-            break;
-
-        case4(0240):
-        case 0250:
-            codes += 3;
-            ins->evex_p[2] |= op_evexflags(&ins->oprs[0],
-                                           EVEX_P2Z | EVEX_P2AAA, 2);
-            ins->evex_p[2] ^= EVEX_P2VP;        /* 1's complement */
-            bytes[0] = 0x62;
-            /* EVEX.X can be set by either REX or EVEX for different reasons */
-            bytes[1] = ((((ins->rex & 7) << 5) |
-                         (ins->evex_p[0] & (EVEX_P0X | EVEX_P0RP))) ^ 0xf0) |
-                       (ins->vex_cm & EVEX_P0MM);
-            bytes[2] = ((ins->rex & REX_W) << (7 - 3)) |
-                       ((~ins->vexreg & 15) << 3) |
-                       (1 << 2) | (ins->vex_wlp & 3);
-            bytes[3] = ins->evex_p[2];
-            out_rawdata(data, bytes, 4);
-            break;
-
-        case4(0260):
-        case 0270:
-            codes += 2;
-            if (ins->vex_cm != 1 || (ins->rex & (REX_W|REX_X|REX_B)) ||
-                ins->prefixes[PPS_VEX] == P_VEX3) {
-                bytes[0] = (ins->vex_cm >> 6) ? 0x8f : 0xc4;
-                bytes[1] = (ins->vex_cm & 31) | ((~ins->rex & 7) << 5);
-                bytes[2] = ((ins->rex & REX_W) << (7-3)) |
-                    ((~ins->vexreg & 15)<< 3) | (ins->vex_wlp & 07);
-                out_rawdata(data, bytes, 3);
-            } else {
-                bytes[0] = 0xc5;
-                bytes[1] = ((~ins->rex & REX_R) << (7-2)) |
-                    ((~ins->vexreg & 15) << 3) | (ins->vex_wlp & 07);
-                out_rawdata(data, bytes, 2);
-            }
-            break;
-
-        case 0271:
-        case 0272:
-        case 0273:
-            break;
-
-        case4(0274):
-        {
-            uint64_t uv, um;
-            int s;
-
-            if (absolute_op(opx)) {
-                if (ins->rex & REX_W)
-                    s = 64;
-                else if (ins->prefixes[PPS_OSIZE] == P_O16)
-                    s = 16;
-                else if (ins->prefixes[PPS_OSIZE] == P_O32)
-                    s = 32;
-                else
-                    s = bits;
-
-                um = (uint64_t)2 << (s-1);
-                uv = opx->offset;
-
-                if (uv > 127 && uv < (uint64_t)-128 &&
-                    (uv < um-128 || uv > um-1)) {
-                    /* If this wasn't explicitly byte-sized, warn as though we
-                     * had fallen through to the imm16/32/64 case.
-                     */
-                    nasm_error(ERR_WARNING | ERR_PASS2 | ERR_WARN_NOV,
-                               "%s value exceeds bounds",
-                               (opx->type & BITS8) ? "signed byte" :
-                               s == 16 ? "word" :
-                               s == 32 ? "dword" :
-                               "signed dword");
-                }
-
-                /* Output as a raw byte to avoid byte overflow check */
-                out_rawbyte(data, (uint8_t)uv);
-            } else {
-                out_imm(data, opx, 1, OUT_WRAP); /* XXX: OUT_SIGNED? */
-            }
-            break;
-        }
-
-        case4(0300):
-            break;
-
-        case 0310:
-            if (bits == 32 && !has_prefix(ins, PPS_ASIZE, P_A16))
-                out_rawbyte(data, 0x67);
-            break;
-
-        case 0311:
-            if (bits != 32 && !has_prefix(ins, PPS_ASIZE, P_A32))
-                out_rawbyte(data, 0x67);
-            break;
-
-        case 0312:
-            break;
-
-        case 0313:
-            ins->rex = 0;
-            break;
-
-        case4(0314):
-            break;
-
-        case 0320:
-        case 0321:
-            break;
-
-        case 0322:
-        case 0323:
-            break;
-
-        case 0324:
-            ins->rex |= REX_W;
-            break;
-
-        case 0325:
-            break;
-
-        case 0326:
-            break;
-
-        case 0330:
-            out_rawbyte(data, *codes++ ^ get_cond_opcode(ins->condition));
-            break;
-
-        case 0331:
-            break;
-
-        case 0332:
-        case 0333:
-            out_rawbyte(data, c - 0332 + 0xF2);
-            break;
-
-        case 0334:
-            if (ins->rex & REX_R)
-                out_rawbyte(data, 0xF0);
-            ins->rex &= ~(REX_L|REX_R);
-            break;
-
-        case 0335:
-            break;
-
-        case 0336:
-        case 0337:
-            break;
-
-        case 0340:
-            if (ins->oprs[0].segment != NO_SEG)
-                nasm_panic(0, "non-constant BSS size in pass two");
-
-            out_reserve(data, ins->oprs[0].offset);
-            break;
-
-        case 0341:
-            break;
-
-        case 0360:
-            break;
-
-        case 0361:
-            out_rawbyte(data, 0x66);
-            break;
-
-        case 0364:
-        case 0365:
-            break;
-
-        case 0366:
-        case 0367:
-            out_rawbyte(data, c - 0366 + 0x66);
-            break;
-
-        case3(0370):
-            break;
-
-        case 0373:
-            out_rawbyte(data, bits == 16 ? 3 : 5);
-            break;
-
-        case 0374:
-            eat = EA_XMMVSIB;
-            break;
-
-        case 0375:
-            eat = EA_YMMVSIB;
-            break;
-
-        case 0376:
-            eat = EA_ZMMVSIB;
-            break;
-
-        case4(0100):
-        case4(0110):
-        case4(0120):
-        case4(0130):
-        case4(0200):
-        case4(0204):
-        case4(0210):
-        case4(0214):
-        case4(0220):
-        case4(0224):
-        case4(0230):
-        case4(0234):
-            {
-                ea ea_data;
-                int rfield;
-                opflags_t rflags;
-                uint8_t *p;
-                struct operand *opy = &ins->oprs[op2];
-
-                if (c <= 0177) {
-                    /* pick rfield from operand b (opx) */
-                    rflags = regflag(opx);
-                    rfield = nasm_regvals[opx->basereg];
-                } else {
-                    /* rfield is constant */
-                    rflags = 0;
-                    rfield = c & 7;
-                }
-
-                if (process_ea(opy, &ea_data, bits,
-                               rfield, rflags, ins) != eat)
-                    nasm_error(ERR_NONFATAL, "invalid effective address");
-
-                p = bytes;
-                *p++ = ea_data.modrm;
-                if (ea_data.sib_present)
-                    *p++ = ea_data.sib;
-                out_rawdata(data, bytes, p - bytes);
-
-                /*
-                 * Make sure the address gets the right offset in case
-                 * the line breaks in the .lst file (BR 1197827)
-                 */
-
-                if (ea_data.bytes) {
-                    /* use compressed displacement, if available */
-                    if (ea_data.disp8) {
-                        out_rawbyte(data, ea_data.disp8);
-                    } else if (ea_data.rip) {
-                        out_reladdr(data, opy, ea_data.bytes);
-                    } else {
-                        int asize = ins->addr_size >> 3;
-
-                        if (overflow_general(opy->offset, asize) ||
-                            signed_bits(opy->offset, ins->addr_size) !=
-                            signed_bits(opy->offset, ea_data.bytes << 3))
-                            warn_overflow(ea_data.bytes);
-
-                        out_imm(data, opy, ea_data.bytes,
-                                (asize > ea_data.bytes)
-                                ? OUT_SIGNED : OUT_WRAP);
-                    }
-                }
-            }
-            break;
-
-        default:
-            nasm_panic(0, "internal instruction table corrupt"
-                    ": instruction code \\%o (0x%02X) given", c, c);
-            break;
-        }
-    }
-}
-
-static opflags_t regflag(const operand * o)
-{
-    if (!is_register(o->basereg))
-        nasm_panic(0, "invalid operand passed to regflag()");
-    return nasm_reg_flags[o->basereg];
-}
-
-static int32_t regval(const operand * o)
-{
-    if (!is_register(o->basereg))
-        nasm_panic(0, "invalid operand passed to regval()");
-    return nasm_regvals[o->basereg];
-}
-
-static int op_rexflags(const operand * o, int mask)
-{
-    opflags_t flags;
-    int val;
-
-    if (!is_register(o->basereg))
-        nasm_panic(0, "invalid operand passed to op_rexflags()");
-
-    flags = nasm_reg_flags[o->basereg];
-    val = nasm_regvals[o->basereg];
-
-    return rexflags(val, flags, mask);
-}
-
-static int rexflags(int val, opflags_t flags, int mask)
-{
-    int rex = 0;
-
-    if (val >= 0 && (val & 8))
-        rex |= REX_B|REX_X|REX_R;
-    if (flags & BITS64)
-        rex |= REX_W;
-    if (!(REG_HIGH & ~flags))                   /* AH, CH, DH, BH */
-        rex |= REX_H;
-    else if (!(REG8 & ~flags) && val >= 4)      /* SPL, BPL, SIL, DIL */
-        rex |= REX_P;
-
-    return rex & mask;
-}
-
-static int evexflags(int val, decoflags_t deco,
-                     int mask, uint8_t byte)
-{
-    int evex = 0;
-
-    switch (byte) {
-    case 0:
-        if (val >= 0 && (val & 16))
-            evex |= (EVEX_P0RP | EVEX_P0X);
-        break;
-    case 2:
-        if (val >= 0 && (val & 16))
-            evex |= EVEX_P2VP;
-        if (deco & Z)
-            evex |= EVEX_P2Z;
-        if (deco & OPMASK_MASK)
-            evex |= deco & EVEX_P2AAA;
-        break;
-    }
-    return evex & mask;
-}
-
-static int op_evexflags(const operand * o, int mask, uint8_t byte)
-{
-    int val;
-
-    val = nasm_regvals[o->basereg];
-
-    return evexflags(val, o->decoflags, mask, byte);
-}
-
-static enum match_result find_match(const struct itemplate **tempp,
-                                    insn *instruction,
-                                    int32_t segment, int64_t offset, int bits)
-{
-    const struct itemplate *temp;
-    enum match_result m, merr;
-    opflags_t xsizeflags[MAX_OPERANDS];
-    bool opsizemissing = false;
-    int8_t broadcast = instruction->evex_brerop;
-    int i;
-
-    /* broadcasting uses a different data element size */
-    for (i = 0; i < instruction->operands; i++)
-        if (i == broadcast)
-            xsizeflags[i] = instruction->oprs[i].decoflags & BRSIZE_MASK;
-        else
-            xsizeflags[i] = instruction->oprs[i].type & SIZE_MASK;
-
-    merr = MERR_INVALOP;
-
-    for (temp = nasm_instructions[instruction->opcode];
-         temp->opcode != I_none; temp++) {
-        m = matches(temp, instruction, bits);
-        if (m == MOK_JUMP) {
-            if (jmp_match(segment, offset, bits, instruction, temp))
-                m = MOK_GOOD;
-            else
-                m = MERR_INVALOP;
-        } else if (m == MERR_OPSIZEMISSING && !itemp_has(temp, IF_SX)) {
-            /*
-             * Missing operand size and a candidate for fuzzy matching...
-             */
-            for (i = 0; i < temp->operands; i++)
-                if (i == broadcast)
-                    xsizeflags[i] |= temp->deco[i] & BRSIZE_MASK;
-                else
-                    xsizeflags[i] |= temp->opd[i] & SIZE_MASK;
-            opsizemissing = true;
-        }
-        if (m > merr)
-            merr = m;
-        if (merr == MOK_GOOD)
-            goto done;
-    }
-
-    /* No match, but see if we can get a fuzzy operand size match... */
-    if (!opsizemissing)
-        goto done;
-
-    for (i = 0; i < instruction->operands; i++) {
-        /*
-         * We ignore extrinsic operand sizes on registers, so we should
-         * never try to fuzzy-match on them.  This also resolves the case
-         * when we have e.g. "xmmrm128" in two different positions.
-         */
-        if (is_class(REGISTER, instruction->oprs[i].type))
-            continue;
-
-        /* This tests if xsizeflags[i] has more than one bit set */
-        if ((xsizeflags[i] & (xsizeflags[i]-1)))
-            goto done;                /* No luck */
-
-        if (i == broadcast) {
-            instruction->oprs[i].decoflags |= xsizeflags[i];
-            instruction->oprs[i].type |= (xsizeflags[i] == BR_BITS32 ?
-                                          BITS32 : BITS64);
-        } else {
-            instruction->oprs[i].type |= xsizeflags[i]; /* Set the size */
-        }
-    }
-
-    /* Try matching again... */
-    for (temp = nasm_instructions[instruction->opcode];
-         temp->opcode != I_none; temp++) {
-        m = matches(temp, instruction, bits);
-        if (m == MOK_JUMP) {
-            if (jmp_match(segment, offset, bits, instruction, temp))
-                m = MOK_GOOD;
-            else
-                m = MERR_INVALOP;
-        }
-        if (m > merr)
-            merr = m;
-        if (merr == MOK_GOOD)
-            goto done;
-    }
-
-done:
-    *tempp = temp;
-    return merr;
-}
-
-static uint8_t get_broadcast_num(opflags_t opflags, opflags_t brsize)
-{
-    unsigned int opsize = (opflags & SIZE_MASK) >> SIZE_SHIFT;
-    uint8_t brcast_num;
-
-    if (brsize > BITS64)
-        nasm_error(ERR_FATAL,
-            "size of broadcasting element is greater than 64 bits");
-
-    /*
-     * The shift term is to take care of the extra BITS80 inserted
-     * between BITS64 and BITS128.
-     */
-    brcast_num = ((opsize / (BITS64 >> SIZE_SHIFT)) * (BITS64 / brsize))
-        >> (opsize > (BITS64 >> SIZE_SHIFT));
-
-    return brcast_num;
-}
-
-static enum match_result matches(const struct itemplate *itemp,
-                                 insn *instruction, int bits)
-{
-    opflags_t size[MAX_OPERANDS], asize;
-    bool opsizemissing = false;
-    int i, oprs;
-
-    /*
-     * Check the opcode
-     */
-    if (itemp->opcode != instruction->opcode)
-        return MERR_INVALOP;
-
-    /*
-     * Count the operands
-     */
-    if (itemp->operands != instruction->operands)
-        return MERR_INVALOP;
-
-    /*
-     * Is it legal?
-     */
-    if (!(optimizing > 0) && itemp_has(itemp, IF_OPT))
-	return MERR_INVALOP;
-
-    /*
-     * {evex} available?
-     */
-    switch (instruction->prefixes[PPS_VEX]) {
-    case P_EVEX:
-        if (!itemp_has(itemp, IF_EVEX))
-            return MERR_ENCMISMATCH;
-        break;
-    case P_VEX3:
-    case P_VEX2:
-        if (!itemp_has(itemp, IF_VEX))
-            return MERR_ENCMISMATCH;
-        break;
-    default:
-        break;
-    }
-
-    /*
-     * Check that no spurious colons or TOs are present
-     */
-    for (i = 0; i < itemp->operands; i++)
-        if (instruction->oprs[i].type & ~itemp->opd[i] & (COLON | TO))
-            return MERR_INVALOP;
-
-    /*
-     * Process size flags
-     */
-    switch (itemp_smask(itemp)) {
-    case IF_GENBIT(IF_SB):
-        asize = BITS8;
-        break;
-    case IF_GENBIT(IF_SW):
-        asize = BITS16;
-        break;
-    case IF_GENBIT(IF_SD):
-        asize = BITS32;
-        break;
-    case IF_GENBIT(IF_SQ):
-        asize = BITS64;
-        break;
-    case IF_GENBIT(IF_SO):
-        asize = BITS128;
-        break;
-    case IF_GENBIT(IF_SY):
-        asize = BITS256;
-        break;
-    case IF_GENBIT(IF_SZ):
-        asize = BITS512;
-        break;
-    case IF_GENBIT(IF_SIZE):
-        switch (bits) {
-        case 16:
-            asize = BITS16;
-            break;
-        case 32:
-            asize = BITS32;
-            break;
-        case 64:
-            asize = BITS64;
-            break;
-        default:
-            asize = 0;
-            break;
-        }
-        break;
-    default:
-        asize = 0;
-        break;
-    }
-
-    if (itemp_armask(itemp)) {
-        /* S- flags only apply to a specific operand */
-        i = itemp_arg(itemp);
-        memset(size, 0, sizeof size);
-        size[i] = asize;
-    } else {
-        /* S- flags apply to all operands */
-        for (i = 0; i < MAX_OPERANDS; i++)
-            size[i] = asize;
-    }
-
-    /*
-     * Check that the operand flags all match up,
-     * it's a bit tricky so lets be verbose:
-     *
-     * 1) Find out the size of operand. If instruction
-     *    doesn't have one specified -- we're trying to
-     *    guess it either from template (IF_S* flag) or
-     *    from code bits.
-     *
-     * 2) If template operand do not match the instruction OR
-     *    template has an operand size specified AND this size differ
-     *    from which instruction has (perhaps we got it from code bits)
-     *    we are:
-     *      a)  Check that only size of instruction and operand is differ
-     *          other characteristics do match
-     *      b)  Perhaps it's a register specified in instruction so
-     *          for such a case we just mark that operand as "size
-     *          missing" and this will turn on fuzzy operand size
-     *          logic facility (handled by a caller)
-     */
-    for (i = 0; i < itemp->operands; i++) {
-        opflags_t type = instruction->oprs[i].type;
-        decoflags_t deco = instruction->oprs[i].decoflags;
-        bool is_broadcast = deco & BRDCAST_MASK;
-        uint8_t brcast_num = 0;
-        opflags_t template_opsize, insn_opsize;
-
-        if (!(type & SIZE_MASK))
-            type |= size[i];
-
-        insn_opsize     = type & SIZE_MASK;
-        if (!is_broadcast) {
-            template_opsize = itemp->opd[i] & SIZE_MASK;
-        } else {
-            decoflags_t deco_brsize = itemp->deco[i] & BRSIZE_MASK;
-            /*
-             * when broadcasting, the element size depends on
-             * the instruction type. decorator flag should match.
-             */
-
-            if (deco_brsize) {
-                template_opsize = (deco_brsize == BR_BITS32 ? BITS32 : BITS64);
-                /* calculate the proper number : {1to<brcast_num>} */
-                brcast_num = get_broadcast_num(itemp->opd[i], template_opsize);
-            } else {
-                template_opsize = 0;
-            }
-        }
-
-        if ((itemp->opd[i] & ~type & ~SIZE_MASK) ||
-            (deco & ~itemp->deco[i] & ~BRNUM_MASK)) {
-            return MERR_INVALOP;
-        } else if (template_opsize) {
-            if (template_opsize != insn_opsize) {
-                if (insn_opsize) {
-                    return MERR_INVALOP;
-                } else if (!is_class(REGISTER, type)) {
-                    /*
-                     * Note: we don't honor extrinsic operand sizes for registers,
-                     * so "missing operand size" for a register should be
-                     * considered a wildcard match rather than an error.
-                     */
-                    opsizemissing = true;
-                }
-            } else if (is_broadcast &&
-                       (brcast_num !=
-                        (2U << ((deco & BRNUM_MASK) >> BRNUM_SHIFT)))) {
-                /*
-                 * broadcasting opsize matches but the number of repeated memory
-                 * element does not match.
-                 * if 64b double precision float is broadcasted to ymm (256b),
-                 * broadcasting decorator must be {1to4}.
-                 */
-                return MERR_BRNUMMISMATCH;
-            }
-        }
-    }
-
-    if (opsizemissing)
-        return MERR_OPSIZEMISSING;
-
-    /*
-     * Check operand sizes
-     */
-    if (itemp_has(itemp, IF_SM) || itemp_has(itemp, IF_SM2)) {
-        oprs = (itemp_has(itemp, IF_SM2) ? 2 : itemp->operands);
-        for (i = 0; i < oprs; i++) {
-            asize = itemp->opd[i] & SIZE_MASK;
-            if (asize) {
-                for (i = 0; i < oprs; i++)
-                    size[i] = asize;
-                break;
-            }
-        }
-    } else {
-        oprs = itemp->operands;
-    }
-
-    for (i = 0; i < itemp->operands; i++) {
-        if (!(itemp->opd[i] & SIZE_MASK) &&
-            (instruction->oprs[i].type & SIZE_MASK & ~size[i]))
-            return MERR_OPSIZEMISMATCH;
-    }
-
-    /*
-     * Check template is okay at the set cpu level
-     */
-    if (iflag_cmp_cpu_level(&insns_flags[itemp->iflag_idx], &cpu) > 0)
-        return MERR_BADCPU;
-
-    /*
-     * Verify the appropriate long mode flag.
-     */
-    if (itemp_has(itemp, (bits == 64 ? IF_NOLONG : IF_LONG)))
-        return MERR_BADMODE;
-
-    /*
-     * If we have a HLE prefix, look for the NOHLE flag
-     */
-    if (itemp_has(itemp, IF_NOHLE) &&
-        (has_prefix(instruction, PPS_REP, P_XACQUIRE) ||
-         has_prefix(instruction, PPS_REP, P_XRELEASE)))
-        return MERR_BADHLE;
-
-    /*
-     * Check if special handling needed for Jumps
-     */
-    if ((itemp->code[0] & ~1) == 0370)
-        return MOK_JUMP;
-
-    /*
-     * Check if BND prefix is allowed.
-     * Other 0xF2 (REPNE/REPNZ) prefix is prohibited.
-     */
-    if (!itemp_has(itemp, IF_BND) &&
-        (has_prefix(instruction, PPS_REP, P_BND) ||
-         has_prefix(instruction, PPS_REP, P_NOBND)))
-        return MERR_BADBND;
-    else if (itemp_has(itemp, IF_BND) &&
-             (has_prefix(instruction, PPS_REP, P_REPNE) ||
-              has_prefix(instruction, PPS_REP, P_REPNZ)))
-        return MERR_BADREPNE;
-
-    return MOK_GOOD;
-}
-
-/*
- * Check if ModR/M.mod should/can be 01.
- * - EAF_BYTEOFFS is set
- * - offset can fit in a byte when EVEX is not used
- * - offset can be compressed when EVEX is used
- */
-#define IS_MOD_01()     (input->eaflags & EAF_BYTEOFFS ||       \
-                         (o >= -128 && o <= 127 &&              \
-                          seg == NO_SEG && !forw_ref &&         \
-                          !(input->eaflags & EAF_WORDOFFS) &&   \
-                          !(ins->rex & REX_EV)) ||              \
-                         (ins->rex & REX_EV &&                  \
-                          is_disp8n(input, ins, &output->disp8)))
-
-static enum ea_type process_ea(operand *input, ea *output, int bits,
-                               int rfield, opflags_t rflags, insn *ins)
-{
-    bool forw_ref = !!(input->opflags & OPFLAG_UNKNOWN);
-    int addrbits = ins->addr_size;
-    int eaflags = input->eaflags;
-
-    output->type    = EA_SCALAR;
-    output->rip     = false;
-    output->disp8   = 0;
-
-    /* REX flags for the rfield operand */
-    output->rex     |= rexflags(rfield, rflags, REX_R | REX_P | REX_W | REX_H);
-    /* EVEX.R' flag for the REG operand */
-    ins->evex_p[0]  |= evexflags(rfield, 0, EVEX_P0RP, 0);
-
-    if (is_class(REGISTER, input->type)) {
-        /*
-         * It's a direct register.
-         */
-        if (!is_register(input->basereg))
-            goto err;
-
-        if (!is_reg_class(REG_EA, input->basereg))
-            goto err;
-
-        /* broadcasting is not available with a direct register operand. */
-        if (input->decoflags & BRDCAST_MASK) {
-            nasm_error(ERR_NONFATAL, "Broadcasting not allowed from a register");
-            goto err;
-        }
-
-        output->rex         |= op_rexflags(input, REX_B | REX_P | REX_W | REX_H);
-        ins->evex_p[0]      |= op_evexflags(input, EVEX_P0X, 0);
-        output->sib_present = false;    /* no SIB necessary */
-        output->bytes       = 0;        /* no offset necessary either */
-        output->modrm       = GEN_MODRM(3, rfield, nasm_regvals[input->basereg]);
-    } else {
-        /*
-         * It's a memory reference.
-         */
-
-        /* Embedded rounding or SAE is not available with a mem ref operand. */
-        if (input->decoflags & (ER | SAE)) {
-            nasm_error(ERR_NONFATAL,
-                       "Embedded rounding is available only with reg-reg op.");
-            return -1;
-        }
-
-        if (input->basereg == -1 &&
-            (input->indexreg == -1 || input->scale == 0)) {
-            /*
-             * It's a pure offset.
-             */
-            if (bits == 64 && ((input->type & IP_REL) == IP_REL)) {
-                if (input->segment == NO_SEG || (input->opflags & OPFLAG_RELATIVE)) {
-                    nasm_error(ERR_WARNING | ERR_PASS2, "absolute address can not be RIP-relative");
-                    input->type &= ~IP_REL;
-                    input->type |= MEMORY;
-                }
-            }
-
-            if (bits == 64 &&
-                !(IP_REL & ~input->type) && (eaflags & EAF_MIB)) {
-                nasm_error(ERR_NONFATAL, "RIP-relative addressing is prohibited for mib.");
-                return -1;
-            }
-
-            if (eaflags & EAF_BYTEOFFS ||
-                (eaflags & EAF_WORDOFFS &&
-                 input->disp_size != (addrbits != 16 ? 32 : 16))) {
-                nasm_error(ERR_WARNING | ERR_PASS1, "displacement size ignored on absolute address");
-            }
-
-            if (bits == 64 && (~input->type & IP_REL)) {
-                output->sib_present = true;
-                output->sib         = GEN_SIB(0, 4, 5);
-                output->bytes       = 4;
-                output->modrm       = GEN_MODRM(0, rfield, 4);
-                output->rip         = false;
-            } else {
-                output->sib_present = false;
-                output->bytes       = (addrbits != 16 ? 4 : 2);
-                output->modrm       = GEN_MODRM(0, rfield, (addrbits != 16 ? 5 : 6));
-                output->rip         = bits == 64;
-            }
-        } else {
-            /*
-             * It's an indirection.
-             */
-            int i = input->indexreg, b = input->basereg, s = input->scale;
-            int32_t seg = input->segment;
-            int hb = input->hintbase, ht = input->hinttype;
-            int t, it, bt;              /* register numbers */
-            opflags_t x, ix, bx;        /* register flags */
-
-            if (s == 0)
-                i = -1;         /* make this easy, at least */
-
-            if (is_register(i)) {
-                it = nasm_regvals[i];
-                ix = nasm_reg_flags[i];
-            } else {
-                it = -1;
-                ix = 0;
-            }
-
-            if (is_register(b)) {
-                bt = nasm_regvals[b];
-                bx = nasm_reg_flags[b];
-            } else {
-                bt = -1;
-                bx = 0;
-            }
-
-            /* if either one are a vector register... */
-            if ((ix|bx) & (XMMREG|YMMREG|ZMMREG) & ~REG_EA) {
-                opflags_t sok = BITS32 | BITS64;
-                int32_t o = input->offset;
-                int mod, scale, index, base;
-
-                /*
-                 * For a vector SIB, one has to be a vector and the other,
-                 * if present, a GPR.  The vector must be the index operand.
-                 */
-                if (it == -1 || (bx & (XMMREG|YMMREG|ZMMREG) & ~REG_EA)) {
-                    if (s == 0)
-                        s = 1;
-                    else if (s != 1)
-                        goto err;
-
-                    t = bt, bt = it, it = t;
-                    x = bx, bx = ix, ix = x;
-                }
-
-                if (bt != -1) {
-                    if (REG_GPR & ~bx)
-                        goto err;
-                    if (!(REG64 & ~bx) || !(REG32 & ~bx))
-                        sok &= bx;
-                    else
-                        goto err;
-                }
-
-                /*
-                 * While we're here, ensure the user didn't specify
-                 * WORD or QWORD
-                 */
-                if (input->disp_size == 16 || input->disp_size == 64)
-                    goto err;
-
-                if (addrbits == 16 ||
-                    (addrbits == 32 && !(sok & BITS32)) ||
-                    (addrbits == 64 && !(sok & BITS64)))
-                    goto err;
-
-                output->type = ((ix & ZMMREG & ~REG_EA) ? EA_ZMMVSIB
-                                : ((ix & YMMREG & ~REG_EA)
-                                ? EA_YMMVSIB : EA_XMMVSIB));
-
-                output->rex    |= rexflags(it, ix, REX_X);
-                output->rex    |= rexflags(bt, bx, REX_B);
-                ins->evex_p[2] |= evexflags(it, 0, EVEX_P2VP, 2);
-
-                index = it & 7; /* it is known to be != -1 */
-
-                switch (s) {
-                case 1:
-                    scale = 0;
-                    break;
-                case 2:
-                    scale = 1;
-                    break;
-                case 4:
-                    scale = 2;
-                    break;
-                case 8:
-                    scale = 3;
-                    break;
-                default:   /* then what the smeg is it? */
-                    goto err;    /* panic */
-                }
-
-                if (bt == -1) {
-                    base = 5;
-                    mod = 0;
-                } else {
-                    base = (bt & 7);
-                    if (base != REG_NUM_EBP && o == 0 &&
-                        seg == NO_SEG && !forw_ref &&
-                        !(eaflags & (EAF_BYTEOFFS | EAF_WORDOFFS)))
-                        mod = 0;
-                    else if (IS_MOD_01())
-                        mod = 1;
-                    else
-                        mod = 2;
-                }
-
-                output->sib_present = true;
-                output->bytes       = (bt == -1 || mod == 2 ? 4 : mod);
-                output->modrm       = GEN_MODRM(mod, rfield, 4);
-                output->sib         = GEN_SIB(scale, index, base);
-            } else if ((ix|bx) & (BITS32|BITS64)) {
-                /*
-                 * it must be a 32/64-bit memory reference. Firstly we have
-                 * to check that all registers involved are type E/Rxx.
-                 */
-                opflags_t sok = BITS32 | BITS64;
-                int32_t o = input->offset;
-
-                if (it != -1) {
-                    if (!(REG64 & ~ix) || !(REG32 & ~ix))
-                        sok &= ix;
-                    else
-                        goto err;
-                }
-
-                if (bt != -1) {
-                    if (REG_GPR & ~bx)
-                        goto err; /* Invalid register */
-                    if (~sok & bx & SIZE_MASK)
-                        goto err; /* Invalid size */
-                    sok &= bx;
-                }
-
-                /*
-                 * While we're here, ensure the user didn't specify
-                 * WORD or QWORD
-                 */
-                if (input->disp_size == 16 || input->disp_size == 64)
-                    goto err;
-
-                if (addrbits == 16 ||
-                    (addrbits == 32 && !(sok & BITS32)) ||
-                    (addrbits == 64 && !(sok & BITS64)))
-                    goto err;
-
-                /* now reorganize base/index */
-                if (s == 1 && bt != it && bt != -1 && it != -1 &&
-                    ((hb == b && ht == EAH_NOTBASE) ||
-                     (hb == i && ht == EAH_MAKEBASE))) {
-                    /* swap if hints say so */
-                    t = bt, bt = it, it = t;
-                    x = bx, bx = ix, ix = x;
-                }
-
-                if (bt == -1 && s == 1 && !(hb == i && ht == EAH_NOTBASE)) {
-                    /* make single reg base, unless hint */
-                    bt = it, bx = ix, it = -1, ix = 0;
-                }
-                if (eaflags & EAF_MIB) {
-                    /* only for mib operands */
-                    if (it == -1 && (hb == b && ht == EAH_NOTBASE)) {
-                        /*
-                         * make a single reg index [reg*1].
-                         * gas uses this form for an explicit index register.
-                         */
-                        it = bt, ix = bx, bt = -1, bx = 0, s = 1;
-                    }
-                    if ((ht == EAH_SUMMED) && bt == -1) {
-                        /* separate once summed index into [base, index] */
-                        bt = it, bx = ix, s--;
-                    }
-                } else {
-                    if (((s == 2 && it != REG_NUM_ESP &&
-                          (!(eaflags & EAF_TIMESTWO) || (ht == EAH_SUMMED))) ||
-                         s == 3 || s == 5 || s == 9) && bt == -1) {
-                        /* convert 3*EAX to EAX+2*EAX */
-                        bt = it, bx = ix, s--;
-                    }
-                    if (it == -1 && (bt & 7) != REG_NUM_ESP &&
-                        (eaflags & EAF_TIMESTWO) &&
-                        (hb == b && ht == EAH_NOTBASE)) {
-                        /*
-                         * convert [NOSPLIT EAX*1]
-                         * to sib format with 0x0 displacement - [EAX*1+0].
-                         */
-                        it = bt, ix = bx, bt = -1, bx = 0, s = 1;
-                    }
-                }
-                if (s == 1 && it == REG_NUM_ESP) {
-                    /* swap ESP into base if scale is 1 */
-                    t = it, it = bt, bt = t;
-                    x = ix, ix = bx, bx = x;
-                }
-                if (it == REG_NUM_ESP ||
-                    (s != 1 && s != 2 && s != 4 && s != 8 && it != -1))
-                    goto err;        /* wrong, for various reasons */
-
-                output->rex |= rexflags(it, ix, REX_X);
-                output->rex |= rexflags(bt, bx, REX_B);
-
-                if (it == -1 && (bt & 7) != REG_NUM_ESP) {
-                    /* no SIB needed */
-                    int mod, rm;
-
-                    if (bt == -1) {
-                        rm = 5;
-                        mod = 0;
-                    } else {
-                        rm = (bt & 7);
-                        if (rm != REG_NUM_EBP && o == 0 &&
-                            seg == NO_SEG && !forw_ref &&
-                            !(eaflags & (EAF_BYTEOFFS | EAF_WORDOFFS)))
-                            mod = 0;
-                        else if (IS_MOD_01())
-                            mod = 1;
-                        else
-                            mod = 2;
-                    }
-
-                    output->sib_present = false;
-                    output->bytes       = (bt == -1 || mod == 2 ? 4 : mod);
-                    output->modrm       = GEN_MODRM(mod, rfield, rm);
-                } else {
-                    /* we need a SIB */
-                    int mod, scale, index, base;
-
-                    if (it == -1)
-                        index = 4, s = 1;
-                    else
-                        index = (it & 7);
-
-                    switch (s) {
-                    case 1:
-                        scale = 0;
-                        break;
-                    case 2:
-                        scale = 1;
-                        break;
-                    case 4:
-                        scale = 2;
-                        break;
-                    case 8:
-                        scale = 3;
-                        break;
-                    default:   /* then what the smeg is it? */
-                        goto err;    /* panic */
-                    }
-
-                    if (bt == -1) {
-                        base = 5;
-                        mod = 0;
-                    } else {
-                        base = (bt & 7);
-                        if (base != REG_NUM_EBP && o == 0 &&
-                            seg == NO_SEG && !forw_ref &&
-                            !(eaflags & (EAF_BYTEOFFS | EAF_WORDOFFS)))
-                            mod = 0;
-                        else if (IS_MOD_01())
-                            mod = 1;
-                        else
-                            mod = 2;
-                    }
-
-                    output->sib_present = true;
-                    output->bytes       = (bt == -1 || mod == 2 ? 4 : mod);
-                    output->modrm       = GEN_MODRM(mod, rfield, 4);
-                    output->sib         = GEN_SIB(scale, index, base);
-                }
-            } else {            /* it's 16-bit */
-                int mod, rm;
-                int16_t o = input->offset;
-
-                /* check for 64-bit long mode */
-                if (addrbits == 64)
-                    goto err;
-
-                /* check all registers are BX, BP, SI or DI */
-                if ((b != -1 && b != R_BP && b != R_BX && b != R_SI && b != R_DI) ||
-                    (i != -1 && i != R_BP && i != R_BX && i != R_SI && i != R_DI))
-                    goto err;
-
-                /* ensure the user didn't specify DWORD/QWORD */
-                if (input->disp_size == 32 || input->disp_size == 64)
-                    goto err;
-
-                if (s != 1 && i != -1)
-                    goto err;        /* no can do, in 16-bit EA */
-                if (b == -1 && i != -1) {
-                    int tmp = b;
-                    b = i;
-                    i = tmp;
-                }               /* swap */
-                if ((b == R_SI || b == R_DI) && i != -1) {
-                    int tmp = b;
-                    b = i;
-                    i = tmp;
-                }
-                /* have BX/BP as base, SI/DI index */
-                if (b == i)
-                    goto err;        /* shouldn't ever happen, in theory */
-                if (i != -1 && b != -1 &&
-                    (i == R_BP || i == R_BX || b == R_SI || b == R_DI))
-                    goto err;        /* invalid combinations */
-                if (b == -1)            /* pure offset: handled above */
-                    goto err;        /* so if it gets to here, panic! */
-
-                rm = -1;
-                if (i != -1)
-                    switch (i * 256 + b) {
-                    case R_SI * 256 + R_BX:
-                        rm = 0;
-                        break;
-                    case R_DI * 256 + R_BX:
-                        rm = 1;
-                        break;
-                    case R_SI * 256 + R_BP:
-                        rm = 2;
-                        break;
-                    case R_DI * 256 + R_BP:
-                        rm = 3;
-                        break;
-                } else
-                    switch (b) {
-                    case R_SI:
-                        rm = 4;
-                        break;
-                    case R_DI:
-                        rm = 5;
-                        break;
-                    case R_BP:
-                        rm = 6;
-                        break;
-                    case R_BX:
-                        rm = 7;
-                        break;
-                    }
-                if (rm == -1)           /* can't happen, in theory */
-                    goto err;        /* so panic if it does */
-
-                if (o == 0 && seg == NO_SEG && !forw_ref && rm != 6 &&
-                    !(eaflags & (EAF_BYTEOFFS | EAF_WORDOFFS)))
-                    mod = 0;
-                else if (IS_MOD_01())
-                    mod = 1;
-                else
-                    mod = 2;
-
-                output->sib_present = false;    /* no SIB - it's 16-bit */
-                output->bytes       = mod;      /* bytes of offset needed */
-                output->modrm       = GEN_MODRM(mod, rfield, rm);
-            }
-        }
-    }
-
-    output->size = 1 + output->sib_present + output->bytes;
-    return output->type;
-
-err:
-    return output->type = EA_INVALID;
-}
-
-static void add_asp(insn *ins, int addrbits)
-{
-    int j, valid;
-    int defdisp;
-
-    valid = (addrbits == 64) ? 64|32 : 32|16;
-
-    switch (ins->prefixes[PPS_ASIZE]) {
-    case P_A16:
-        valid &= 16;
-        break;
-    case P_A32:
-        valid &= 32;
-        break;
-    case P_A64:
-        valid &= 64;
-        break;
-    case P_ASP:
-        valid &= (addrbits == 32) ? 16 : 32;
-        break;
-    default:
-        break;
-    }
-
-    for (j = 0; j < ins->operands; j++) {
-        if (is_class(MEMORY, ins->oprs[j].type)) {
-            opflags_t i, b;
-
-            /* Verify as Register */
-            if (!is_register(ins->oprs[j].indexreg))
-                i = 0;
-            else
-                i = nasm_reg_flags[ins->oprs[j].indexreg];
-
-            /* Verify as Register */
-            if (!is_register(ins->oprs[j].basereg))
-                b = 0;
-            else
-                b = nasm_reg_flags[ins->oprs[j].basereg];
-
-            if (ins->oprs[j].scale == 0)
-                i = 0;
-
-            if (!i && !b) {
-                int ds = ins->oprs[j].disp_size;
-                if ((addrbits != 64 && ds > 8) ||
-                    (addrbits == 64 && ds == 16))
-                    valid &= ds;
-            } else {
-                if (!(REG16 & ~b))
-                    valid &= 16;
-                if (!(REG32 & ~b))
-                    valid &= 32;
-                if (!(REG64 & ~b))
-                    valid &= 64;
-
-                if (!(REG16 & ~i))
-                    valid &= 16;
-                if (!(REG32 & ~i))
-                    valid &= 32;
-                if (!(REG64 & ~i))
-                    valid &= 64;
-            }
-        }
-    }
-
-    if (valid & addrbits) {
-        ins->addr_size = addrbits;
-    } else if (valid & ((addrbits == 32) ? 16 : 32)) {
-        /* Add an address size prefix */
-        ins->prefixes[PPS_ASIZE] = (addrbits == 32) ? P_A16 : P_A32;;
-        ins->addr_size = (addrbits == 32) ? 16 : 32;
-    } else {
-        /* Impossible... */
-        nasm_error(ERR_NONFATAL, "impossible combination of address sizes");
-        ins->addr_size = addrbits; /* Error recovery */
-    }
-
-    defdisp = ins->addr_size == 16 ? 16 : 32;
-
-    for (j = 0; j < ins->operands; j++) {
-        if (!(MEM_OFFS & ~ins->oprs[j].type) &&
-            (ins->oprs[j].disp_size ? ins->oprs[j].disp_size : defdisp) != ins->addr_size) {
-            /*
-             * mem_offs sizes must match the address size; if not,
-             * strip the MEM_OFFS bit and match only EA instructions
-             */
-            ins->oprs[j].type &= ~(MEM_OFFS & ~MEMORY);
-        }
-    }
-}
--- a/nasmbuild/nasm-2.13rc9/asm/assemble.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * assemble.h - header file for stuff private to the assembler
- */
-
-#ifndef NASM_ASSEMBLE_H
-#define NASM_ASSEMBLE_H
-
-#include "nasm.h"
-#include "iflag.h"
-
-extern iflag_t cpu;
-extern bool in_absolute;        /* Are we in an absolute segment? */
-extern struct location absolute;
-
-int64_t insn_size(int32_t segment, int64_t offset, int bits, insn *instruction);
-int64_t assemble(int32_t segment, int64_t offset, int bits, insn *instruction);
-
-bool process_directives(char *);
-void process_pragma(char *);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/asm/directbl.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,134 +0,0 @@
-/*
- * This file is generated from directiv.dat
- * by directiv.pl; do not edit.
- */
-
-#include "compiler.h"
-#include <string.h>
-#include "nasm.h"
-#include "hashtbl.h"
-#include "directiv.h"
-
-const char * const directives[30] =
-{
-    NULL,
-    NULL,
-    NULL,
-    "absolute",
-    "bits",
-    "common",
-    "cpu",
-    "debug",
-    "default",
-    "extern",
-    "float",
-    "global",
-    "list",
-    "section",
-    "segment",
-    "warning",
-    "sectalign",
-    "pragma",
-    "export",
-    "group",
-    "import",
-    "library",
-    "map",
-    "module",
-    "org",
-    "osabi",
-    "safeseh",
-    "uppercase",
-    "subsections_via_symbols",
-    "no_dead_strip"
-};
-
-enum directives find_directive(const char *token)
-{
-#define UNUSED (65535/3)
-    static const int16_t hash1[32] = {
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        0,
-        10,
-        0,
-        11,
-        UNUSED,
-        UNUSED,
-        0,
-        0,
-        0,
-        14,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -9,
-        UNUSED,
-        24,
-        18,
-        3,
-        -16,
-        15,
-        UNUSED,
-        UNUSED,
-        22,
-        -19,
-        15,
-        -6,
-    };
-    static const int16_t hash2[32] = {
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        0,
-        6,
-        0,
-        21,
-        2,
-        0,
-        30,
-        0,
-        0,
-        3,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        8,
-        23,
-        9,
-        10,
-        UNUSED,
-        26,
-        UNUSED,
-        UNUSED,
-        1,
-        5,
-        UNUSED,
-        UNUSED,
-        -4,
-        UNUSED,
-    };
-    uint32_t k1, k2;
-    uint64_t crc;
-    uint16_t ix;
-
-    crc = crc64i(UINT64_C(0x076259c3e291c26c), token);
-    k1 = (uint32_t)crc;
-    k2 = (uint32_t)(crc >> 32);
-
-    ix = hash1[k1 & 0x1f] + hash2[k2 & 0x1f];
-    if (ix >= 27)
-        return D_unknown;
-
-    ix += 3;
-    if (nasm_stricmp(token, directives[ix]))
-        return D_unknown;
-
-    return ix;
-}
--- a/nasmbuild/nasm-2.13rc9/asm/directiv.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,553 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * Parse and handle assembler directives
- */
-
-#include "compiler.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <limits.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "float.h"
-#include "stdscan.h"
-#include "preproc.h"
-#include "eval.h"
-#include "assemble.h"
-#include "outform.h"
-#include "listing.h"
-#include "labels.h"
-#include "iflag.h"
-
-static iflag_t get_cpu(char *value)
-{
-    iflag_t r;
-
-    iflag_clear_all(&r);
-
-    if (!strcmp(value, "8086"))
-        iflag_set(&r, IF_8086);
-    else if (!strcmp(value, "186"))
-        iflag_set(&r, IF_186);
-    else if (!strcmp(value, "286"))
-        iflag_set(&r, IF_286);
-    else if (!strcmp(value, "386"))
-        iflag_set(&r, IF_386);
-    else if (!strcmp(value, "486"))
-        iflag_set(&r, IF_486);
-    else if (!strcmp(value, "586") ||
-             !nasm_stricmp(value, "pentium"))
-        iflag_set(&r, IF_PENT);
-    else if (!strcmp(value, "686")              ||
-             !nasm_stricmp(value, "ppro")       ||
-             !nasm_stricmp(value, "pentiumpro") ||
-             !nasm_stricmp(value, "p2"))
-        iflag_set(&r, IF_P6);
-    else if (!nasm_stricmp(value, "p3") ||
-             !nasm_stricmp(value, "katmai"))
-        iflag_set(&r, IF_KATMAI);
-    else if (!nasm_stricmp(value, "p4") ||   /* is this right? -- jrc */
-             !nasm_stricmp(value, "willamette"))
-        iflag_set(&r, IF_WILLAMETTE);
-    else if (!nasm_stricmp(value, "prescott"))
-        iflag_set(&r, IF_PRESCOTT);
-    else if (!nasm_stricmp(value, "x64") ||
-             !nasm_stricmp(value, "x86-64"))
-        iflag_set(&r, IF_X86_64);
-    else if (!nasm_stricmp(value, "ia64")   ||
-             !nasm_stricmp(value, "ia-64")  ||
-             !nasm_stricmp(value, "itanium")||
-             !nasm_stricmp(value, "itanic") ||
-             !nasm_stricmp(value, "merced"))
-        iflag_set(&r, IF_IA64);
-    else {
-        iflag_set(&r, IF_PLEVEL);
-        nasm_error(pass0 < 2 ? ERR_NONFATAL : ERR_FATAL,
-                   "unknown 'cpu' type");
-    }
-    return r;
-}
-
-static int get_bits(char *value)
-{
-    int i;
-
-    if ((i = atoi(value)) == 16)
-        return i;               /* set for a 16-bit segment */
-    else if (i == 32) {
-        if (iflag_ffs(&cpu) < IF_386) {
-            nasm_error(ERR_NONFATAL,
-                         "cannot specify 32-bit segment on processor below a 386");
-            i = 16;
-        }
-    } else if (i == 64) {
-        if (iflag_ffs(&cpu) < IF_X86_64) {
-            nasm_error(ERR_NONFATAL,
-                         "cannot specify 64-bit segment on processor below an x86-64");
-            i = 16;
-        }
-    } else {
-        nasm_error(pass0 < 2 ? ERR_NONFATAL : ERR_FATAL,
-                     "`%s' is not a valid segment size; must be 16, 32 or 64",
-                     value);
-        i = 16;
-    }
-    return i;
-}
-
-static enum directives parse_directive_line(char **directive, char **value)
-{
-    char *p, *q, *buf;
-
-    buf = nasm_skip_spaces(*directive);
-
-    /*
-     * It should be enclosed in [ ].
-     * XXX: we don't check there is nothing else on the remainder of the
-     * line, except a possible comment.
-     */
-    if (*buf != '[')
-        return D_none;
-    q = strchr(buf, ']');
-    if (!q)
-        return D_corrupt;
-
-    /*
-     * Strip off the comments.  XXX: this doesn't account for quoted
-     * strings inside a directive.  We should really strip the
-     * comments in generic code, not here.  While we're at it, it
-     * would be better to pass the backend a series of tokens instead
-     * of a raw string, and actually process quoted strings for it,
-     * like of like argv is handled in C.
-     */
-    p = strchr(buf, ';');
-    if (p) {
-        if (p < q) /* ouch! somewhere inside */
-            return D_corrupt;
-        *p = '\0';
-    }
-
-    /* no brace, no trailing spaces */
-    *q = '\0';
-    nasm_zap_spaces_rev(--q);
-
-    /* directive */
-    p = nasm_skip_spaces(++buf);
-    q = nasm_skip_word(p);
-    if (!q)
-        return D_corrupt; /* sigh... no value there */
-    *q = '\0';
-    *directive = p;
-
-    /* and value finally */
-    p = nasm_skip_spaces(++q);
-    *value = p;
-
-    return find_directive(*directive);
-}
-
-/*
- * Process a line from the assembler and try to handle it if it
- * is a directive.  Return true if the line was handled (including
- * if it was an error), false otherwise.
- */
-bool process_directives(char *directive)
-{
-    enum directives d;
-    char *value, *p, *q, *special;
-    struct tokenval tokval;
-    bool bad_param = false;
-    int pass2 = passn > 1 ? 2 : 1;
-
-    d = parse_directive_line(&directive, &value);
-
-    switch (d) {
-    case D_none:
-        return D_none;      /* Not a directive */
-
-    case D_corrupt:
-	nasm_error(ERR_NONFATAL, "invalid directive line");
-	break;
-
-    default:			/* It's a backend-specific directive */
-        switch (ofmt->directive(d, value, pass2)) {
-        case DIRR_UNKNOWN:
-            goto unknown;
-        case DIRR_OK:
-        case DIRR_ERROR:
-            break;
-        case DIRR_BADPARAM:
-            bad_param = true;
-            break;
-        default:
-            panic();
-        }
-        break;
-
-    case D_unknown:
-    unknown:
-        nasm_error(pass0 < 2 ? ERR_NONFATAL : ERR_PANIC,
-                   "unrecognised directive [%s]", directive);
-        break;
-
-    case D_SEGMENT:         /* [SEGMENT n] */
-    case D_SECTION:
-    {
-	int sb;
-        int32_t seg = ofmt->section(value, pass2, &sb);
-
-        if (seg == NO_SEG) {
-            nasm_error(pass0 < 2 ? ERR_NONFATAL : ERR_PANIC,
-                       "segment name `%s' not recognized", value);
-        } else {
-            in_absolute = false;
-            location.segment = seg;
-        }
-        break;
-    }
-
-    case D_SECTALIGN:       /* [SECTALIGN n] */
-    {
-	expr *e;
-
-        if (*value) {
-            stdscan_reset();
-            stdscan_set(value);
-            tokval.t_type = TOKEN_INVALID;
-            e = evaluate(stdscan, NULL, &tokval, NULL, pass2, NULL);
-            if (e) {
-                uint64_t align = e->value;
-
-		if (!is_power2(e->value)) {
-                    nasm_error(ERR_NONFATAL,
-                               "segment alignment `%s' is not power of two",
-                               value);
-		} else if (align > UINT64_C(0x7fffffff)) {
-                    /*
-                     * FIXME: Please make some sane message here
-                     * ofmt should have some 'check' method which
-                     * would report segment alignment bounds.
-                     */
-		    nasm_error(ERR_NONFATAL,
-			       "absurdly large segment alignment `%s' (2^%d)",
-			       value, ilog2_64(align));
-                }
-
-                /* callee should be able to handle all details */
-                if (location.segment != NO_SEG)
-                    ofmt->sectalign(location.segment, align);
-            }
-        }
-        break;
-    }
-
-    case D_EXTERN:          /* [EXTERN label:special] */
-        if (*value == '$')
-            value++;        /* skip initial $ if present */
-        if (pass0 == 2) {
-            q = value;
-            while (*q && *q != ':')
-                q++;
-            if (*q == ':') {
-                *q++ = '\0';
-                ofmt->symdef(value, 0L, 0L, 3, q);
-            }
-        } else if (passn == 1) {
-            bool validid = true;
-            q = value;
-            if (!isidstart(*q))
-                validid = false;
-            while (*q && *q != ':') {
-                if (!isidchar(*q))
-                    validid = false;
-                q++;
-            }
-            if (!validid) {
-                nasm_error(ERR_NONFATAL, "identifier expected after EXTERN");
-                break;
-            }
-            if (*q == ':') {
-                *q++ = '\0';
-                special = q;
-            } else
-                special = NULL;
-            if (!is_extern(value)) {        /* allow re-EXTERN to be ignored */
-                int temp = pass0;
-                pass0 = 1;  /* fake pass 1 in labels.c */
-                declare_as_global(value, special);
-                define_label(value, seg_alloc(), 0L, NULL,
-                             false, true);
-                pass0 = temp;
-            }
-        }           /* else  pass0 == 1 */
-        break;
-
-    case D_BITS:            /* [BITS bits] */
-        globalbits = get_bits(value);
-        break;
-
-    case D_GLOBAL:          /* [GLOBAL symbol:special] */
-        if (*value == '$')
-            value++;        /* skip initial $ if present */
-        if (pass0 == 2) {   /* pass 2 */
-            q = value;
-            while (*q && *q != ':')
-                q++;
-            if (*q == ':') {
-                *q++ = '\0';
-                ofmt->symdef(value, 0L, 0L, 3, q);
-            }
-        } else if (pass2 == 1) {    /* pass == 1 */
-            bool validid = true;
-
-            q = value;
-            if (!isidstart(*q))
-                validid = false;
-            while (*q && *q != ':') {
-                if (!isidchar(*q))
-                    validid = false;
-                q++;
-            }
-            if (!validid) {
-                nasm_error(ERR_NONFATAL,
-                           "identifier expected after GLOBAL");
-                break;
-            }
-            if (*q == ':') {
-                *q++ = '\0';
-                special = q;
-            } else
-                special = NULL;
-            declare_as_global(value, special);
-        }           /* pass == 1 */
-        break;
-
-    case D_COMMON:          /* [COMMON symbol size:special] */
-    {
-        int64_t size;
-	bool rn_error;
-	bool validid;
-
-        if (*value == '$')
-            value++;        /* skip initial $ if present */
-        p = value;
-        validid = true;
-        if (!isidstart(*p))
-            validid = false;
-        while (*p && !nasm_isspace(*p)) {
-            if (!isidchar(*p))
-                validid = false;
-            p++;
-        }
-        if (!validid) {
-            nasm_error(ERR_NONFATAL, "identifier expected after COMMON");
-            break;
-        }
-        if (*p) {
-            p = nasm_zap_spaces_fwd(p);
-            q = p;
-            while (*q && *q != ':')
-                q++;
-            if (*q == ':') {
-                *q++ = '\0';
-                special = q;
-            } else {
-                special = NULL;
-            }
-            size = readnum(p, &rn_error);
-            if (rn_error) {
-                nasm_error(ERR_NONFATAL,
-                           "invalid size specified"
-                           " in COMMON declaration");
-                break;
-            }
-        } else {
-            nasm_error(ERR_NONFATAL,
-                       "no size specified in"
-                       " COMMON declaration");
-            break;
-        }
-
-        if (pass0 < 2) {
-            define_common(value, seg_alloc(), size, special);
-        } else if (pass0 == 2) {
-            if (special)
-                ofmt->symdef(value, 0L, 0L, 3, special);
-        }
-        break;
-    }
-
-    case D_ABSOLUTE:        /* [ABSOLUTE address] */
-    {
-	expr *e;
-
-        stdscan_reset();
-        stdscan_set(value);
-        tokval.t_type = TOKEN_INVALID;
-        e = evaluate(stdscan, NULL, &tokval, NULL, pass2, NULL);
-        if (e) {
-            if (!is_reloc(e))
-                nasm_error(pass0 ==
-                           1 ? ERR_NONFATAL : ERR_PANIC,
-                           "cannot use non-relocatable expression as "
-                           "ABSOLUTE address");
-            else {
-                absolute.segment = reloc_seg(e);
-                absolute.offset = reloc_value(e);
-            }
-        } else if (passn == 1)
-            absolute.offset = 0x100;     /* don't go near zero in case of / */
-        else
-            nasm_panic(0, "invalid ABSOLUTE address "
-                       "in pass two");
-        in_absolute = true;
-        location.segment = NO_SEG;
-        break;
-    }
-
-    case D_DEBUG:           /* [DEBUG] */
-    {
-        bool badid, overlong;
-	char debugid[128];
-
-        p = value;
-        q = debugid;
-        badid = overlong = false;
-        if (!isidstart(*p)) {
-            badid = true;
-        } else {
-            while (*p && !nasm_isspace(*p)) {
-                if (q >= debugid + sizeof debugid - 1) {
-                    overlong = true;
-                    break;
-                }
-                if (!isidchar(*p))
-                    badid = true;
-                *q++ = *p++;
-            }
-            *q = 0;
-        }
-        if (badid) {
-            nasm_error(passn == 1 ? ERR_NONFATAL : ERR_PANIC,
-                       "identifier expected after DEBUG");
-            break;
-        }
-        if (overlong) {
-            nasm_error(passn == 1 ? ERR_NONFATAL : ERR_PANIC,
-                       "DEBUG identifier too long");
-            break;
-        }
-        p = nasm_skip_spaces(p);
-        if (pass0 == 2)
-            dfmt->debug_directive(debugid, p);
-        break;
-    }
-
-    case D_WARNING:         /* [WARNING {+|-|*}warn-name] */
-        if (!set_warning_status(value)) {
-            nasm_error(ERR_WARNING|ERR_WARN_UNK_WARNING,
-                       "unknown warning option: %s", value);
-        }
-        break;
-
-    case D_CPU:         /* [CPU] */
-        cpu = get_cpu(value);
-        break;
-
-    case D_LIST:        /* [LIST {+|-}] */
-        value = nasm_skip_spaces(value);
-        if (*value == '+') {
-            user_nolist = false;
-        } else {
-            if (*value == '-') {
-                user_nolist = true;
-            } else {
-                bad_param = true;
-            }
-        }
-        break;
-
-    case D_DEFAULT:         /* [DEFAULT] */
-        stdscan_reset();
-        stdscan_set(value);
-        tokval.t_type = TOKEN_INVALID;
-        if (stdscan(NULL, &tokval) != TOKEN_INVALID) {
-            switch (tokval.t_integer) {
-            case S_REL:
-                globalrel = 1;
-                break;
-            case S_ABS:
-                globalrel = 0;
-                break;
-            case P_BND:
-                globalbnd = 1;
-                break;
-            case P_NOBND:
-                globalbnd = 0;
-                break;
-            default:
-                bad_param = true;
-                break;
-            }
-        } else {
-            bad_param = true;
-        }
-        break;
-
-    case D_FLOAT:
-        if (float_option(value)) {
-            nasm_error(pass0 < 2 ? ERR_NONFATAL : ERR_PANIC,
-                       "unknown 'float' directive: %s", value);
-        }
-        break;
-
-    case D_PRAGMA:
-        process_pragma(value);
-        break;
-    }
-
-
-    /* A common error message */
-    if (bad_param) {
-        nasm_error(ERR_NONFATAL, "invalid parameter to [%s] directive",
-                   directive);
-    }
-
-    return d != D_none;
-}
--- a/nasmbuild/nasm-2.13rc9/asm/directiv.dat	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-;; --------------------------------------------------------------------------
-;;
-;;   Copyright 1996-2017 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-;;
-;; List of global NASM directives and pragma operations codes
-;;
-;; ALL directives, including backend-specific, need to be added here.
-;;
-;; %pragma operation keywords (the second word, after facility) MAY
-;; be added here too to assist in parsing, but it is not required.
-;; See the definition of struct pragma in include/nasm.h.
-;;
-;; The same keyword can be used as a directive and as a pragma
-;; operation, or as pragma operations in different namespaces.  The
-;; same D_ constant will be used for both, and this is perfectly
-;; acceptable.
-;;
-
-; --- Global directives
-absolute
-bits
-common
-cpu
-debug
-default
-extern
-float
-global
-list
-section
-segment
-warning
-sectalign
-pragma
-
-; --- Format-specific directives
-export				; outcoff, outobj
-group				; outobj
-import				; outobj
-library				; outrdf2
-map				; outbin
-module				; outrdf2
-org				; outbin
-osabi				; outelf
-safeseh				; outcoff
-uppercase			; outieee, outobj
-
-; --- Pragma operations
-subsections_via_symbols		; macho
-no_dead_strip			; macho
--- a/nasmbuild/nasm-2.13rc9/asm/directiv.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * This	 file is generated from directiv.dat
- * by directiv.pl; do not edit.
- */
-
-#ifndef NASM_DIRECTIV_H
-#define NASM_DIRECTIV_H
-
-enum directives {
-    D_none,
-    D_unknown,
-    D_corrupt,
-    D_ABSOLUTE,
-    D_BITS,
-    D_COMMON,
-    D_CPU,
-    D_DEBUG,
-    D_DEFAULT,
-    D_EXTERN,
-    D_FLOAT,
-    D_GLOBAL,
-    D_LIST,
-    D_SECTION,
-    D_SEGMENT,
-    D_WARNING,
-    D_SECTALIGN,
-    D_PRAGMA,
-    D_EXPORT,
-    D_GROUP,
-    D_IMPORT,
-    D_LIBRARY,
-    D_MAP,
-    D_MODULE,
-    D_ORG,
-    D_OSABI,
-    D_SAFESEH,
-    D_UPPERCASE,
-    D_SUBSECTIONS_VIA_SYMBOLS,
-    D_NO_DEAD_STRIP
-};
-
-extern const char * const directives[30];
-enum directives find_directive(const char *token);
-
-#endif /* NASM_DIRECTIV_H */
--- a/nasmbuild/nasm-2.13rc9/asm/directiv.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##
-##   Copyright 1996-2017 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# Generate a perfect hash for directive parsing
-#
-# Usage:
-#      directiv.pl h directiv.dat directiv.h (to generate C header)
-#      directiv.pl c directiv.dat directbl.c (to generate C source)
-#
-
-require 'phash.ph';
-
-my($output, $directives_dat, $outfile) = @ARGV;
-
-@directives = ();
-
-# Special values for enum directives.  Note that D_none must be first
-# so D_none == 0.
-@specials   = ('none', 'unknown', 'corrupt');
-
-open(DD, "< ${directives_dat}\0")
-    or die "$0: cannot open: ${directives_dat}: $!\n";
-while (defined($line = <DD>)) {
-    chomp $line;
-    if ($line =~ /^\s*([[:alnum:]_]+)\s*(|[\;\#].*)$/) {
-	push(@directives, $1);
-    }
-}
-close(DD);
-
-if ($output eq 'h') {
-    open(H, "> ${outfile}\0")
-	or die "$0: cannot create: ${outfile}: $!\n";
-
-    print H "/*\n";
-    print H " * This	 file is generated from directiv.dat\n";
-    print H " * by directiv.pl; do not edit.\n";
-    print H " */\n";
-    print H "\n";
-
-    print H "#ifndef NASM_DIRECTIV_H\n";
-    print H "#define NASM_DIRECTIV_H\n";
-    print H "\n";
-
-    $c = '{';
-    print H "enum directives ";
-    foreach $d (@specials) {
-	print H "$c\n    D_$d";
-	$c = ',';
-    }
-    foreach $d (@directives) {
-	print H "$c\n    D_\U$d";
-	$c = ',';
-    }
-    print H "\n};\n\n";
-    printf H "extern const char * const directives[%d];\n",
-        scalar(@directives)+scalar(@specials);
-    print H "enum directives find_directive(const char *token);\n\n";
-    print H "#endif /* NASM_DIRECTIV_H */\n";
-} elsif ($output eq 'c') {
-    %directive = ();
-    $n = 0;
-    foreach $d (@directives) {
-	if (exists($directive{$d})) {
-	    die "$0: $directives_dat: duplicate directive: $d\n";
-	}
-	$directive{$d} = $n++;	# This is zero-based, unlike the enum!
-    }
-
-    @hashinfo = gen_perfect_hash(\%directive);
-    if (!@hashinfo) {
-	die "$0: no hash found\n";
-    }
-
-    # Paranoia...
-    verify_hash_table(\%directive, \@hashinfo);
-
-    ($n, $sv, $g) = @hashinfo;
-
-    die if ($n & ($n-1));
-
-    open(C, "> ${outfile}\0")
-	or die "$0: cannot create: ${directives_c}: $!\n";
-
-    print C "/*\n";
-    print C " * This file is generated from directiv.dat\n";
-    print C " * by directiv.pl; do not edit.\n";
-    print C " */\n";
-    print C "\n";
-
-    print C "#include \"compiler.h\"\n";
-    print C "#include <string.h>\n";
-    print C "#include \"nasm.h\"\n";
-    print C "#include \"hashtbl.h\"\n";
-    print C "#include \"directiv.h\"\n";
-    print C "\n";
-
-    printf C "const char * const directives[%d] =\n",
-        scalar(@directives)+scalar(@specials);
-    $c = '{';
-    foreach $d (@specials) {
-	print C "$c\n    NULL";
-	$c = ',';
-    }
-    foreach $d (@directives) {
-	print C "$c\n    \"$d\"";
-	$c = ',';
-    }
-    print C "\n};\n\n";
-
-    print C "enum directives find_directive(const char *token)\n";
-    print C "{\n";
-
-    # Put a large value in unused slots.  This makes it extremely unlikely
-    # that any combination that involves unused slot will pass the range test.
-    # This speeds up rejection of unrecognized tokens, i.e. identifiers.
-    print C "#define UNUSED (65535/3)\n";
-
-    print C "    static const int16_t hash1[$n] = {\n";
-    for ($i = 0; $i < $n; $i++) {
-	my $h = ${$g}[$i*2+0];
-	print C "        ", defined($h) ? $h : 'UNUSED', ",\n";
-    }
-    print C "    };\n";
-
-    print C "    static const int16_t hash2[$n] = {\n";
-    for ($i = 0; $i < $n; $i++) {
-	my $h = ${$g}[$i*2+1];
-	print C "        ", defined($h) ? $h : 'UNUSED', ",\n";
-    }
-    print C "    };\n";
-
-    print C  "    uint32_t k1, k2;\n";
-    print C  "    uint64_t crc;\n";
-    # For correct overflow behavior, "ix" should be unsigned of the same
-    # width as the hash arrays.
-    print C  "    uint16_t ix;\n";
-    print C  "\n";
-    printf C "    crc = crc64i(UINT64_C(0x%08x%08x), token);\n",
-	$$sv[0], $$sv[1];
-    print C  "    k1 = (uint32_t)crc;\n";
-    print C  "    k2 = (uint32_t)(crc >> 32);\n";
-    print C  "\n";
-    printf C "    ix = hash1[k1 & 0x%x] + hash2[k2 & 0x%x];\n", $n-1, $n-1;
-    printf C "    if (ix >= %d)\n", scalar(@directives);
-    print C  "        return D_unknown;\n";
-    print C  "\n";
-    printf C "    ix += %d;\n", scalar(@specials);
-    print C  "    if (nasm_stricmp(token, directives[ix]))\n";
-    print C  "        return D_unknown;\n";
-    print C  "\n";
-    print C  "    return ix;\n";
-    print C  "}\n";
-}
--- a/nasmbuild/nasm-2.13rc9/asm/error.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,202 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * error.c - error message handling routines for the assembler
- */
-
-#include "compiler.h"
-
-#include <stdlib.h>
-
-#include "nasmlib.h"
-#include "error.h"
-
-/*
- * Description of the suppressible warnings for the command line and
- * the [warning] directive.
- */
-const struct warning warnings[ERR_WARN_ALL+1] = {
-    {"other", "any warning not specifially mentioned below", true},
-    {"macro-params", "macro calls with wrong parameter count", true},
-    {"macro-selfref", "cyclic macro references", false},
-    {"macro-defaults", "macros with more default than optional parameters", true},
-    {"orphan-labels", "labels alone on lines without trailing `:'", true},
-    {"number-overflow", "numeric constant does not fit", true},
-    {"gnu-elf-extensions", "using 8- or 16-bit relocation in ELF32, a GNU extension", false},
-    {"float-overflow", "floating point overflow", true},
-    {"float-denorm", "floating point denormal", false},
-    {"float-underflow", "floating point underflow", false},
-    {"float-toolong", "too many digits in floating-point number", true},
-    {"user", "%warning directives", true},
-    {"lock", "lock prefix on unlockable instructions", true},
-    {"hle", "invalid hle prefixes", true},
-    {"bnd", "invalid bnd prefixes", true},
-    {"zext-reloc", "relocation zero-extended to match output format", true},
-    {"ptr", "non-NASM keyword used in other assemblers", true},
-    {"bad-pragma", "empty or malformed %pragma", false},
-    {"unknown-pragma", "unknown %pragma facility or directive", false},
-    {"not-my-pragma", "%pragma not applicable to this compilation", false},
-    {"unknown-warning", "unknown warning in -W/-w or warning directive", false},
-
-    /* THIS ENTRY MUST COME LAST */
-    {"all", "all possible warnings", false}
-};
-
-uint8_t warning_state[ERR_WARN_ALL];/* Current state */
-uint8_t warning_state_init[ERR_WARN_ALL]; /* Command-line state, for reset */
-
-vefunc nasm_verror;    /* Global error handling function */
-
-void nasm_error(int severity, const char *fmt, ...)
-{
-    va_list ap;
-
-    va_start(ap, fmt);
-    nasm_verror(severity, fmt, ap);
-    va_end(ap);
-}
-
-no_return nasm_fatal(int flags, const char *fmt, ...)
-{
-    va_list ap;
-
-    va_start(ap, fmt);
-    nasm_verror(flags | ERR_FATAL, fmt, ap);
-    abort();			/* We should never get here */
-}
-
-no_return nasm_panic(int flags, const char *fmt, ...)
-{
-    va_list ap;
-
-    va_start(ap, fmt);
-    nasm_verror(flags | ERR_PANIC, fmt, ap);
-    abort();			/* We should never get here */
-}
-
-no_return nasm_panic_from_macro(const char *file, int line)
-{
-    nasm_panic(ERR_NOFILE, "Internal error at %s:%d\n", file, line);
-}
-
-no_return nasm_assert_failed(const char *file, int line, const char *msg)
-{
-    nasm_panic(0, "assertion %s failed at %s:%d", msg, file, line);
-}
-
-/*
- * This is called when processing a -w or -W option, or a warning directive.
- * Returns true if if the action was successful.
- */
-bool set_warning_status(const char *value)
-{
-    enum warn_action { WID_OFF, WID_ON, WID_RESET };
-    enum warn_action action;
-    uint8_t mask;
-    int i;
-    bool ok = false;
-
-    value = nasm_skip_spaces(value);
-    switch (*value) {
-    case '-':
-        action = WID_OFF;
-        value++;
-        break;
-    case '+':
-        action = WID_ON;
-        value++;
-        break;
-    case '*':
-        action = WID_RESET;
-        value++;
-        break;
-    case 'N':
-    case 'n':
-        if (!nasm_strnicmp(value, "no-", 3)) {
-            action = WID_OFF;
-            value += 3;
-            break;
-        } else if (!nasm_stricmp(value, "none")) {
-            action = WID_OFF;
-            value = NULL;
-            break;
-        }
-        /* else fall through */
-    default:
-        action = WID_ON;
-        break;
-    }
-
-    mask = WARN_ST_ENABLED;
-
-    if (value && !nasm_strnicmp(value, "error", 5)) {
-        switch (value[5]) {
-        case '=':
-            mask = WARN_ST_ERROR;
-            value += 6;
-            break;
-        case '\0':
-            mask = WARN_ST_ERROR;
-            value = NULL;
-            break;
-        default:
-            /* Just an accidental prefix? */
-            break;
-        }
-    }
-
-    if (value && !nasm_stricmp(value, "all"))
-        value = NULL;
-
-    /* This is inefficient, but it shouldn't matter... */
-    for (i = 0; i < ERR_WARN_ALL; i++) {
-        if (!value || !nasm_stricmp(value, warnings[i].name)) {
-            ok = true;          /* At least one action taken */
-            switch (action) {
-            case WID_OFF:
-                warning_state[i] &= ~mask;
-                break;
-            case WID_ON:
-                warning_state[i] |= mask;
-                break;
-            case WID_RESET:
-                warning_state[i] &= ~mask;
-                warning_state[i] |= warning_state_init[i] & mask;
-                break;
-            }
-        }
-    }
-
-    return ok;
-}
--- a/nasmbuild/nasm-2.13rc9/asm/eval.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1014 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * eval.c    expression evaluator for the Netwide Assembler
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "eval.h"
-#include "labels.h"
-#include "float.h"
-#include "assemble.h"
-
-#define TEMPEXPRS_DELTA 128
-#define TEMPEXPR_DELTA 8
-
-static scanner scan;            /* Address of scanner routine */
-
-static expr **tempexprs = NULL;
-static int ntempexprs;
-static int tempexprs_size = 0;
-
-static expr *tempexpr;
-static int ntempexpr;
-static int tempexpr_size;
-
-static struct tokenval *tokval; /* The current token */
-static int i;                   /* The t_type of tokval */
-
-static void *scpriv;
-static int *opflags;
-
-static struct eval_hints *hint;
-
-
-/*
- * Unimportant cleanup is done to avoid confusing people who are trying
- * to debug real memory leaks
- */
-void eval_cleanup(void)
-{
-    while (ntempexprs)
-        nasm_free(tempexprs[--ntempexprs]);
-    nasm_free(tempexprs);
-}
-
-/*
- * Construct a temporary expression.
- */
-static void begintemp(void)
-{
-    tempexpr = NULL;
-    tempexpr_size = ntempexpr = 0;
-}
-
-static void addtotemp(int32_t type, int64_t value)
-{
-    while (ntempexpr >= tempexpr_size) {
-        tempexpr_size += TEMPEXPR_DELTA;
-        tempexpr = nasm_realloc(tempexpr,
-                                tempexpr_size * sizeof(*tempexpr));
-    }
-    tempexpr[ntempexpr].type = type;
-    tempexpr[ntempexpr++].value = value;
-}
-
-static expr *finishtemp(void)
-{
-    addtotemp(0L, 0L);          /* terminate */
-    while (ntempexprs >= tempexprs_size) {
-        tempexprs_size += TEMPEXPRS_DELTA;
-        tempexprs = nasm_realloc(tempexprs,
-                                 tempexprs_size * sizeof(*tempexprs));
-    }
-    return tempexprs[ntempexprs++] = tempexpr;
-}
-
-/*
- * Add two vector datatypes. We have some bizarre behaviour on far-
- * absolute segment types: we preserve them during addition _only_
- * if one of the segments is a truly pure scalar.
- */
-static expr *add_vectors(expr * p, expr * q)
-{
-    int preserve;
-
-    preserve = is_really_simple(p) || is_really_simple(q);
-
-    begintemp();
-
-    while (p->type && q->type &&
-           p->type < EXPR_SEGBASE + SEG_ABS &&
-           q->type < EXPR_SEGBASE + SEG_ABS) {
-        int lasttype;
-
-        if (p->type > q->type) {
-            addtotemp(q->type, q->value);
-            lasttype = q++->type;
-        } else if (p->type < q->type) {
-            addtotemp(p->type, p->value);
-            lasttype = p++->type;
-        } else {                /* *p and *q have same type */
-            int64_t sum = p->value + q->value;
-            if (sum) {
-                addtotemp(p->type, sum);
-                if (hint)
-                    hint->type = EAH_SUMMED;
-            }
-            lasttype = p->type;
-            p++, q++;
-        }
-        if (lasttype == EXPR_UNKNOWN) {
-            return finishtemp();
-        }
-    }
-    while (p->type && (preserve || p->type < EXPR_SEGBASE + SEG_ABS)) {
-        addtotemp(p->type, p->value);
-        p++;
-    }
-    while (q->type && (preserve || q->type < EXPR_SEGBASE + SEG_ABS)) {
-        addtotemp(q->type, q->value);
-        q++;
-    }
-
-    return finishtemp();
-}
-
-/*
- * Multiply a vector by a scalar. Strip far-absolute segment part
- * if present.
- *
- * Explicit treatment of UNKNOWN is not required in this routine,
- * since it will silently do the Right Thing anyway.
- *
- * If `affect_hints' is set, we also change the hint type to
- * NOTBASE if a MAKEBASE hint points at a register being
- * multiplied. This allows [eax*1+ebx] to hint EBX rather than EAX
- * as the base register.
- */
-static expr *scalar_mult(expr * vect, int64_t scalar, int affect_hints)
-{
-    expr *p = vect;
-
-    while (p->type && p->type < EXPR_SEGBASE + SEG_ABS) {
-        p->value = scalar * (p->value);
-        if (hint && hint->type == EAH_MAKEBASE &&
-            p->type == hint->base && affect_hints)
-            hint->type = EAH_NOTBASE;
-        p++;
-    }
-    p->type = 0;
-
-    return vect;
-}
-
-static expr *scalarvect(int64_t scalar)
-{
-    begintemp();
-    addtotemp(EXPR_SIMPLE, scalar);
-    return finishtemp();
-}
-
-static expr *unknown_expr(void)
-{
-    begintemp();
-    addtotemp(EXPR_UNKNOWN, 1L);
-    return finishtemp();
-}
-
-/*
- * The SEG operator: calculate the segment part of a relocatable
- * value. Return NULL, as usual, if an error occurs. Report the
- * error too.
- */
-static expr *segment_part(expr * e)
-{
-    int32_t seg;
-
-    if (is_unknown(e))
-        return unknown_expr();
-
-    if (!is_reloc(e)) {
-        nasm_error(ERR_NONFATAL, "cannot apply SEG to a non-relocatable value");
-        return NULL;
-    }
-
-    seg = reloc_seg(e);
-    if (seg == NO_SEG) {
-        nasm_error(ERR_NONFATAL, "cannot apply SEG to a non-relocatable value");
-        return NULL;
-    } else if (seg & SEG_ABS) {
-        return scalarvect(seg & ~SEG_ABS);
-    } else if (seg & 1) {
-        nasm_error(ERR_NONFATAL, "SEG applied to something which"
-              " is already a segment base");
-        return NULL;
-    } else {
-        int32_t base = ofmt->segbase(seg + 1);
-
-        begintemp();
-        addtotemp((base == NO_SEG ? EXPR_UNKNOWN : EXPR_SEGBASE + base),
-                  1L);
-        return finishtemp();
-    }
-}
-
-/*
- * Recursive-descent parser. Called with a single boolean operand,
- * which is true if the evaluation is critical (i.e. unresolved
- * symbols are an error condition). Must update the global `i' to
- * reflect the token after the parsed string. May return NULL.
- *
- * evaluate() should report its own errors: on return it is assumed
- * that if NULL has been returned, the error has already been
- * reported.
- */
-
-/*
- * Grammar parsed is:
- *
- * expr  : bexpr [ WRT expr6 ]
- * bexpr : rexp0 or expr0 depending on relative-mode setting
- * rexp0 : rexp1 [ {||} rexp1...]
- * rexp1 : rexp2 [ {^^} rexp2...]
- * rexp2 : rexp3 [ {&&} rexp3...]
- * rexp3 : expr0 [ {=,==,<>,!=,<,>,<=,>=} expr0 ]
- * expr0 : expr1 [ {|} expr1...]
- * expr1 : expr2 [ {^} expr2...]
- * expr2 : expr3 [ {&} expr3...]
- * expr3 : expr4 [ {<<,>>} expr4...]
- * expr4 : expr5 [ {+,-} expr5...]
- * expr5 : expr6 [ {*,/,%,//,%%} expr6...]
- * expr6 : { ~,+,-,IFUNC,SEG } expr6
- *       | (bexpr)
- *       | symbol
- *       | $
- *       | number
- */
-
-static expr *rexp0(int), *rexp1(int), *rexp2(int), *rexp3(int);
-
-static expr *expr0(int), *expr1(int), *expr2(int), *expr3(int);
-static expr *expr4(int), *expr5(int), *expr6(int);
-
-static expr *(*bexpr) (int);
-
-static expr *rexp0(int critical)
-{
-    expr *e, *f;
-
-    e = rexp1(critical);
-    if (!e)
-        return NULL;
-
-    while (i == TOKEN_DBL_OR) {
-        i = scan(scpriv, tokval);
-        f = rexp1(critical);
-        if (!f)
-            return NULL;
-        if (!(is_simple(e) || is_just_unknown(e)) ||
-            !(is_simple(f) || is_just_unknown(f))) {
-            nasm_error(ERR_NONFATAL, "`|' operator may only be applied to"
-                  " scalar values");
-        }
-
-        if (is_just_unknown(e) || is_just_unknown(f))
-            e = unknown_expr();
-        else
-            e = scalarvect((int64_t)(reloc_value(e) || reloc_value(f)));
-    }
-    return e;
-}
-
-static expr *rexp1(int critical)
-{
-    expr *e, *f;
-
-    e = rexp2(critical);
-    if (!e)
-        return NULL;
-
-    while (i == TOKEN_DBL_XOR) {
-        i = scan(scpriv, tokval);
-        f = rexp2(critical);
-        if (!f)
-            return NULL;
-        if (!(is_simple(e) || is_just_unknown(e)) ||
-            !(is_simple(f) || is_just_unknown(f))) {
-            nasm_error(ERR_NONFATAL, "`^' operator may only be applied to"
-                  " scalar values");
-        }
-
-        if (is_just_unknown(e) || is_just_unknown(f))
-            e = unknown_expr();
-        else
-            e = scalarvect((int64_t)(!reloc_value(e) ^ !reloc_value(f)));
-    }
-    return e;
-}
-
-static expr *rexp2(int critical)
-{
-    expr *e, *f;
-
-    e = rexp3(critical);
-    if (!e)
-        return NULL;
-    while (i == TOKEN_DBL_AND) {
-        i = scan(scpriv, tokval);
-        f = rexp3(critical);
-        if (!f)
-            return NULL;
-        if (!(is_simple(e) || is_just_unknown(e)) ||
-            !(is_simple(f) || is_just_unknown(f))) {
-            nasm_error(ERR_NONFATAL, "`&' operator may only be applied to"
-                  " scalar values");
-        }
-        if (is_just_unknown(e) || is_just_unknown(f))
-            e = unknown_expr();
-        else
-            e = scalarvect((int64_t)(reloc_value(e) && reloc_value(f)));
-    }
-    return e;
-}
-
-static expr *rexp3(int critical)
-{
-    expr *e, *f;
-    int64_t v;
-
-    e = expr0(critical);
-    if (!e)
-        return NULL;
-
-    while (i == TOKEN_EQ || i == TOKEN_LT || i == TOKEN_GT ||
-           i == TOKEN_NE || i == TOKEN_LE || i == TOKEN_GE) {
-        int j = i;
-        i = scan(scpriv, tokval);
-        f = expr0(critical);
-        if (!f)
-            return NULL;
-
-        e = add_vectors(e, scalar_mult(f, -1L, false));
-
-        switch (j) {
-        case TOKEN_EQ:
-        case TOKEN_NE:
-            if (is_unknown(e))
-                v = -1;         /* means unknown */
-            else if (!is_really_simple(e) || reloc_value(e) != 0)
-                v = (j == TOKEN_NE);    /* unequal, so return true if NE */
-            else
-                v = (j == TOKEN_EQ);    /* equal, so return true if EQ */
-            break;
-        default:
-            if (is_unknown(e))
-                v = -1;         /* means unknown */
-            else if (!is_really_simple(e)) {
-                nasm_error(ERR_NONFATAL,
-                      "`%s': operands differ by a non-scalar",
-                      (j == TOKEN_LE ? "<=" : j == TOKEN_LT ? "<" : j ==
-                       TOKEN_GE ? ">=" : ">"));
-                v = 0;          /* must set it to _something_ */
-            } else {
-                int64_t vv = reloc_value(e);
-                if (vv == 0)
-                    v = (j == TOKEN_LE || j == TOKEN_GE);
-                else if (vv > 0)
-                    v = (j == TOKEN_GE || j == TOKEN_GT);
-                else            /* vv < 0 */
-                    v = (j == TOKEN_LE || j == TOKEN_LT);
-            }
-            break;
-        }
-
-        if (v == -1)
-            e = unknown_expr();
-        else
-            e = scalarvect(v);
-    }
-    return e;
-}
-
-static expr *expr0(int critical)
-{
-    expr *e, *f;
-
-    e = expr1(critical);
-    if (!e)
-        return NULL;
-
-    while (i == '|') {
-        i = scan(scpriv, tokval);
-        f = expr1(critical);
-        if (!f)
-            return NULL;
-        if (!(is_simple(e) || is_just_unknown(e)) ||
-            !(is_simple(f) || is_just_unknown(f))) {
-            nasm_error(ERR_NONFATAL, "`|' operator may only be applied to"
-                  " scalar values");
-        }
-        if (is_just_unknown(e) || is_just_unknown(f))
-            e = unknown_expr();
-        else
-            e = scalarvect(reloc_value(e) | reloc_value(f));
-    }
-    return e;
-}
-
-static expr *expr1(int critical)
-{
-    expr *e, *f;
-
-    e = expr2(critical);
-    if (!e)
-        return NULL;
-
-    while (i == '^') {
-        i = scan(scpriv, tokval);
-        f = expr2(critical);
-        if (!f)
-            return NULL;
-        if (!(is_simple(e) || is_just_unknown(e)) ||
-            !(is_simple(f) || is_just_unknown(f))) {
-            nasm_error(ERR_NONFATAL, "`^' operator may only be applied to"
-                  " scalar values");
-        }
-        if (is_just_unknown(e) || is_just_unknown(f))
-            e = unknown_expr();
-        else
-            e = scalarvect(reloc_value(e) ^ reloc_value(f));
-    }
-    return e;
-}
-
-static expr *expr2(int critical)
-{
-    expr *e, *f;
-
-    e = expr3(critical);
-    if (!e)
-        return NULL;
-
-    while (i == '&') {
-        i = scan(scpriv, tokval);
-        f = expr3(critical);
-        if (!f)
-            return NULL;
-        if (!(is_simple(e) || is_just_unknown(e)) ||
-            !(is_simple(f) || is_just_unknown(f))) {
-            nasm_error(ERR_NONFATAL, "`&' operator may only be applied to"
-                  " scalar values");
-        }
-        if (is_just_unknown(e) || is_just_unknown(f))
-            e = unknown_expr();
-        else
-            e = scalarvect(reloc_value(e) & reloc_value(f));
-    }
-    return e;
-}
-
-static expr *expr3(int critical)
-{
-    expr *e, *f;
-
-    e = expr4(critical);
-    if (!e)
-        return NULL;
-
-    while (i == TOKEN_SHL || i == TOKEN_SHR) {
-        int j = i;
-        i = scan(scpriv, tokval);
-        f = expr4(critical);
-        if (!f)
-            return NULL;
-        if (!(is_simple(e) || is_just_unknown(e)) ||
-            !(is_simple(f) || is_just_unknown(f))) {
-            nasm_error(ERR_NONFATAL, "shift operator may only be applied to"
-                  " scalar values");
-        } else if (is_just_unknown(e) || is_just_unknown(f)) {
-            e = unknown_expr();
-        } else
-            switch (j) {
-            case TOKEN_SHL:
-                e = scalarvect(reloc_value(e) << reloc_value(f));
-                break;
-            case TOKEN_SHR:
-                e = scalarvect(((uint64_t)reloc_value(e)) >>
-                               reloc_value(f));
-                break;
-            }
-    }
-    return e;
-}
-
-static expr *expr4(int critical)
-{
-    expr *e, *f;
-
-    e = expr5(critical);
-    if (!e)
-        return NULL;
-    while (i == '+' || i == '-') {
-        int j = i;
-        i = scan(scpriv, tokval);
-        f = expr5(critical);
-        if (!f)
-            return NULL;
-        switch (j) {
-        case '+':
-            e = add_vectors(e, f);
-            break;
-        case '-':
-            e = add_vectors(e, scalar_mult(f, -1L, false));
-            break;
-        }
-    }
-    return e;
-}
-
-static expr *expr5(int critical)
-{
-    expr *e, *f;
-
-    e = expr6(critical);
-    if (!e)
-        return NULL;
-    while (i == '*' || i == '/' || i == '%' ||
-           i == TOKEN_SDIV || i == TOKEN_SMOD) {
-        int j = i;
-        i = scan(scpriv, tokval);
-        f = expr6(critical);
-        if (!f)
-            return NULL;
-        if (j != '*' && (!(is_simple(e) || is_just_unknown(e)) ||
-                         !(is_simple(f) || is_just_unknown(f)))) {
-            nasm_error(ERR_NONFATAL, "division operator may only be applied to"
-                  " scalar values");
-            return NULL;
-        }
-        if (j != '*' && !is_unknown(f) && reloc_value(f) == 0) {
-            nasm_error(ERR_NONFATAL, "division by zero");
-            return NULL;
-        }
-        switch (j) {
-        case '*':
-            if (is_simple(e))
-                e = scalar_mult(f, reloc_value(e), true);
-            else if (is_simple(f))
-                e = scalar_mult(e, reloc_value(f), true);
-            else if (is_just_unknown(e) && is_just_unknown(f))
-                e = unknown_expr();
-            else {
-                nasm_error(ERR_NONFATAL, "unable to multiply two "
-                      "non-scalar objects");
-                return NULL;
-            }
-            break;
-        case '/':
-            if (is_just_unknown(e) || is_just_unknown(f))
-                e = unknown_expr();
-            else
-                e = scalarvect(((uint64_t)reloc_value(e)) /
-                               ((uint64_t)reloc_value(f)));
-            break;
-        case '%':
-            if (is_just_unknown(e) || is_just_unknown(f))
-                e = unknown_expr();
-            else
-                e = scalarvect(((uint64_t)reloc_value(e)) %
-                               ((uint64_t)reloc_value(f)));
-            break;
-        case TOKEN_SDIV:
-            if (is_just_unknown(e) || is_just_unknown(f))
-                e = unknown_expr();
-            else
-                e = scalarvect(((int64_t)reloc_value(e)) /
-                               ((int64_t)reloc_value(f)));
-            break;
-        case TOKEN_SMOD:
-            if (is_just_unknown(e) || is_just_unknown(f))
-                e = unknown_expr();
-            else
-                e = scalarvect(((int64_t)reloc_value(e)) %
-                               ((int64_t)reloc_value(f)));
-            break;
-        }
-    }
-    return e;
-}
-
-static expr *eval_floatize(enum floatize type)
-{
-    uint8_t result[16], *p;     /* Up to 128 bits */
-    static const struct {
-        int bytes, start, len;
-    } formats[] = {
-        {  1, 0, 1 },           /* FLOAT_8 */
-        {  2, 0, 2 },           /* FLOAT_16 */
-        {  4, 0, 4 },           /* FLOAT_32 */
-        {  8, 0, 8 },           /* FLOAT_64 */
-        { 10, 0, 8 },           /* FLOAT_80M */
-        { 10, 8, 2 },           /* FLOAT_80E */
-        { 16, 0, 8 },           /* FLOAT_128L */
-        { 16, 8, 8 },           /* FLOAT_128H */
-    };
-    int sign = 1;
-    int64_t val;
-    int j;
-
-    i = scan(scpriv, tokval);
-    if (i != '(') {
-        nasm_error(ERR_NONFATAL, "expecting `('");
-        return NULL;
-    }
-    i = scan(scpriv, tokval);
-    if (i == '-' || i == '+') {
-        sign = (i == '-') ? -1 : 1;
-        i = scan(scpriv, tokval);
-    }
-    if (i != TOKEN_FLOAT) {
-        nasm_error(ERR_NONFATAL, "expecting floating-point number");
-        return NULL;
-    }
-    if (!float_const(tokval->t_charptr, sign, result, formats[type].bytes))
-        return NULL;
-    i = scan(scpriv, tokval);
-    if (i != ')') {
-        nasm_error(ERR_NONFATAL, "expecting `)'");
-        return NULL;
-    }
-
-    p = result+formats[type].start+formats[type].len;
-    val = 0;
-    for (j = formats[type].len; j; j--) {
-        p--;
-        val = (val << 8) + *p;
-    }
-
-    begintemp();
-    addtotemp(EXPR_SIMPLE, val);
-
-    i = scan(scpriv, tokval);
-    return finishtemp();
-}
-
-static expr *eval_strfunc(enum strfunc type)
-{
-    char *string;
-    size_t string_len;
-    int64_t val;
-    bool parens, rn_warn;
-
-    parens = false;
-    i = scan(scpriv, tokval);
-    if (i == '(') {
-        parens = true;
-        i = scan(scpriv, tokval);
-    }
-    if (i != TOKEN_STR) {
-        nasm_error(ERR_NONFATAL, "expecting string");
-        return NULL;
-    }
-    string_len = string_transform(tokval->t_charptr, tokval->t_inttwo,
-                                  &string, type);
-    if (string_len == (size_t)-1) {
-        nasm_error(ERR_NONFATAL, "invalid string for transform");
-        return NULL;
-    }
-
-    val = readstrnum(string, string_len, &rn_warn);
-    if (parens) {
-        i = scan(scpriv, tokval);
-        if (i != ')') {
-            nasm_error(ERR_NONFATAL, "expecting `)'");
-            return NULL;
-        }
-    }
-
-    if (rn_warn)
-        nasm_error(ERR_WARNING|ERR_PASS1, "character constant too long");
-
-    begintemp();
-    addtotemp(EXPR_SIMPLE, val);
-
-    i = scan(scpriv, tokval);
-    return finishtemp();
-}
-
-static int64_t eval_ifunc(int64_t val, enum ifunc func)
-{
-    int errtype;
-    uint64_t uval = (uint64_t)val;
-    int64_t rv;
-
-    switch (func) {
-    case IFUNC_ILOG2E:
-    case IFUNC_ILOG2W:
-        errtype = (func == IFUNC_ILOG2E) ? ERR_NONFATAL : ERR_WARNING;
-
-        if (!is_power2(uval))
-            nasm_error(errtype, "ilog2 argument is not a power of two");
-        /* fall through */
-    case IFUNC_ILOG2F:
-        rv = ilog2_64(uval);
-        break;
-
-    case IFUNC_ILOG2C:
-        rv = (uval < 2) ? 0 : ilog2_64(uval-1) + 1;
-        break;
-
-    default:
-        nasm_panic(0, "invalid IFUNC token %d", func);
-        rv = 0;
-        break;
-    }
-
-    return rv;
-}
-
-static expr *expr6(int critical)
-{
-    int32_t type;
-    expr *e;
-    int32_t label_seg;
-    int64_t label_ofs;
-    int64_t tmpval;
-    bool rn_warn;
-    char *scope;
-
-    switch (i) {
-    case '-':
-        i = scan(scpriv, tokval);
-        e = expr6(critical);
-        if (!e)
-            return NULL;
-        return scalar_mult(e, -1L, false);
-
-    case '+':
-        i = scan(scpriv, tokval);
-        return expr6(critical);
-
-    case '~':
-        i = scan(scpriv, tokval);
-        e = expr6(critical);
-        if (!e)
-            return NULL;
-        if (is_just_unknown(e))
-            return unknown_expr();
-        else if (!is_simple(e)) {
-            nasm_error(ERR_NONFATAL, "`~' operator may only be applied to"
-                  " scalar values");
-            return NULL;
-        }
-        return scalarvect(~reloc_value(e));
-
-    case '!':
-        i = scan(scpriv, tokval);
-        e = expr6(critical);
-        if (!e)
-            return NULL;
-        if (is_just_unknown(e))
-            return unknown_expr();
-        else if (!is_simple(e)) {
-            nasm_error(ERR_NONFATAL, "`!' operator may only be applied to"
-                  " scalar values");
-            return NULL;
-        }
-        return scalarvect(!reloc_value(e));
-
-    case TOKEN_IFUNC:
-    {
-        enum ifunc func = tokval->t_integer;
-        i = scan(scpriv, tokval);
-        e = expr6(critical);
-        if (!e)
-            return NULL;
-        if (is_just_unknown(e))
-            return unknown_expr();
-        else if (!is_simple(e)) {
-            nasm_error(ERR_NONFATAL, "function may only be applied to"
-                  " scalar values");
-            return NULL;
-        }
-        return scalarvect(eval_ifunc(reloc_value(e), func));
-    }
-
-    case TOKEN_SEG:
-        i = scan(scpriv, tokval);
-        e = expr6(critical);
-        if (!e)
-            return NULL;
-        e = segment_part(e);
-        if (!e)
-            return NULL;
-        if (is_unknown(e) && critical) {
-            nasm_error(ERR_NONFATAL, "unable to determine segment base");
-            return NULL;
-        }
-        return e;
-
-    case TOKEN_FLOATIZE:
-        return eval_floatize(tokval->t_integer);
-
-    case TOKEN_STRFUNC:
-        return eval_strfunc(tokval->t_integer);
-
-    case '(':
-        i = scan(scpriv, tokval);
-        e = bexpr(critical);
-        if (!e)
-            return NULL;
-        if (i != ')') {
-            nasm_error(ERR_NONFATAL, "expecting `)'");
-            return NULL;
-        }
-        i = scan(scpriv, tokval);
-        return e;
-
-    case TOKEN_NUM:
-    case TOKEN_STR:
-    case TOKEN_REG:
-    case TOKEN_ID:
-    case TOKEN_INSN:            /* Opcodes that occur here are really labels */
-    case TOKEN_HERE:
-    case TOKEN_BASE:
-    case TOKEN_DECORATOR:
-        begintemp();
-        switch (i) {
-        case TOKEN_NUM:
-            addtotemp(EXPR_SIMPLE, tokval->t_integer);
-            break;
-        case TOKEN_STR:
-            tmpval = readstrnum(tokval->t_charptr, tokval->t_inttwo, &rn_warn);
-            if (rn_warn)
-                nasm_error(ERR_WARNING|ERR_PASS1, "character constant too long");
-            addtotemp(EXPR_SIMPLE, tmpval);
-            break;
-        case TOKEN_REG:
-            addtotemp(tokval->t_integer, 1L);
-            if (hint && hint->type == EAH_NOHINT)
-                hint->base = tokval->t_integer, hint->type = EAH_MAKEBASE;
-            break;
-        case TOKEN_ID:
-        case TOKEN_INSN:
-        case TOKEN_HERE:
-        case TOKEN_BASE:
-            /*
-             * If !location.known, this indicates that no
-             * symbol, Here or Base references are valid because we
-             * are in preprocess-only mode.
-             */
-            if (!location.known) {
-                nasm_error(ERR_NONFATAL,
-                      "%s not supported in preprocess-only mode",
-                      (i == TOKEN_HERE ? "`$'" :
-                       i == TOKEN_BASE ? "`$$'" :
-                       "symbol references"));
-                addtotemp(EXPR_UNKNOWN, 1L);
-                break;
-            }
-
-            type = EXPR_SIMPLE; /* might get overridden by UNKNOWN */
-            if (i == TOKEN_BASE) {
-                label_seg = in_absolute ? absolute.segment : location.segment;
-                label_ofs = 0;
-            } else if (i == TOKEN_HERE) {
-                label_seg = in_absolute ? absolute.segment : location.segment;
-                label_ofs = in_absolute ? absolute.offset : location.offset;
-            } else {
-                if (!lookup_label(tokval->t_charptr, &label_seg, &label_ofs)) {
-                    scope = local_scope(tokval->t_charptr);
-                    if (critical == 2) {
-                        nasm_error(ERR_NONFATAL, "symbol `%s%s' undefined",
-                              scope,tokval->t_charptr);
-                        return NULL;
-                    } else if (critical == 1) {
-                        nasm_error(ERR_NONFATAL,
-                              "symbol `%s%s' not defined before use",
-                              scope,tokval->t_charptr);
-                        return NULL;
-                    } else {
-                        if (opflags)
-                            *opflags |= OPFLAG_FORWARD;
-                        type = EXPR_UNKNOWN;
-                        label_seg = NO_SEG;
-                        label_ofs = 1;
-                    }
-                }
-                if (opflags && is_extern(tokval->t_charptr))
-                    *opflags |= OPFLAG_EXTERN;
-            }
-            addtotemp(type, label_ofs);
-            if (label_seg != NO_SEG)
-                addtotemp(EXPR_SEGBASE + label_seg, 1L);
-            break;
-        case TOKEN_DECORATOR:
-            addtotemp(EXPR_RDSAE, tokval->t_integer);
-            break;
-        }
-        i = scan(scpriv, tokval);
-        return finishtemp();
-
-    default:
-        nasm_error(ERR_NONFATAL, "expression syntax error");
-        return NULL;
-    }
-}
-
-expr *evaluate(scanner sc, void *scprivate, struct tokenval *tv,
-               int *fwref, int critical, struct eval_hints *hints)
-{
-    expr *e;
-    expr *f = NULL;
-
-    hint = hints;
-    if (hint)
-        hint->type = EAH_NOHINT;
-
-    if (critical & CRITICAL) {
-        critical &= ~CRITICAL;
-        bexpr = rexp0;
-    } else
-        bexpr = expr0;
-
-    scan = sc;
-    scpriv = scprivate;
-    tokval = tv;
-    opflags = fwref;
-
-    if (tokval->t_type == TOKEN_INVALID)
-        i = scan(scpriv, tokval);
-    else
-        i = tokval->t_type;
-
-    while (ntempexprs)          /* initialize temporary storage */
-        nasm_free(tempexprs[--ntempexprs]);
-
-    e = bexpr(critical);
-    if (!e)
-        return NULL;
-
-    if (i == TOKEN_WRT) {
-        i = scan(scpriv, tokval);       /* eat the WRT */
-        f = expr6(critical);
-        if (!f)
-            return NULL;
-    }
-    e = scalar_mult(e, 1L, false);      /* strip far-absolute segment part */
-    if (f) {
-        expr *g;
-        if (is_just_unknown(f))
-            g = unknown_expr();
-        else {
-            int64_t value;
-            begintemp();
-            if (!is_reloc(f)) {
-                nasm_error(ERR_NONFATAL, "invalid right-hand operand to WRT");
-                return NULL;
-            }
-            value = reloc_seg(f);
-            if (value == NO_SEG)
-                value = reloc_value(f) | SEG_ABS;
-            else if (!(value & SEG_ABS) && !(value % 2) && critical) {
-                nasm_error(ERR_NONFATAL, "invalid right-hand operand to WRT");
-                return NULL;
-            }
-            addtotemp(EXPR_WRT, value);
-            g = finishtemp();
-        }
-        e = add_vectors(e, g);
-    }
-    return e;
-}
--- a/nasmbuild/nasm-2.13rc9/asm/eval.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/* 
- * eval.h   header file for eval.c
- */
-
-#ifndef NASM_EVAL_H
-#define NASM_EVAL_H
-
-/*
- * The evaluator itself.
- */
-expr *evaluate(scanner sc, void *scprivate, struct tokenval *tv,
-               int *fwref, int critical, struct eval_hints *hints);
-
-void eval_cleanup(void);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/asm/exprdump.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * exprdump.c
- *
- * Debugging code to dump the contents of an expression vector to stdout
- */
-
-#include "nasm.h"
-
-static const char *expr_type(int32_t type)
-{
-    static char seg_str[64];
-
-    switch (type) {
-    case 0:
-        return "null";
-    case EXPR_UNKNOWN:
-        return "unknown";
-    case EXPR_SIMPLE:
-        return "simple";
-    case EXPR_WRT:
-        return "wrt";
-    case EXPR_RDSAE:
-        return "sae";
-    default:
-        break;
-    }
-
-    if (type >= EXPR_REG_START && type <= EXPR_REG_END) {
-        return nasm_reg_names[type - EXPR_REG_START];
-    } else if (type >= EXPR_SEGBASE) {
-        snprintf(seg_str, sizeof seg_str, "%sseg %d",
-                 (type - EXPR_SEGBASE) == location.segment ? "this " : "",
-                 type - EXPR_SEGBASE);
-        return seg_str;
-    } else {
-        return "ERR";
-    }
-}
-
-void dump_expr(const expr *e)
-{
-    printf("[");
-    for (; e->type; e++)
-        printf("<%s(%d),%"PRId64">", expr_type(e->type), e->type, e->value);
-    printf("]\n");
-}
--- a/nasmbuild/nasm-2.13rc9/asm/exprlib.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * exprlib.c
- *
- * Library routines to manipulate expression data types.
- */
-
-#include "nasm.h"
-
-/*
- * Return true if the argument is a simple scalar. (Or a far-
- * absolute, which counts.)
- */
-bool is_simple(const expr *vect)
-{
-    while (vect->type && !vect->value)
-        vect++;
-    if (!vect->type)
-        return true;
-    if (vect->type != EXPR_SIMPLE)
-        return false;
-    do {
-        vect++;
-    } while (vect->type && !vect->value);
-    if (vect->type && vect->type < EXPR_SEGBASE + SEG_ABS)
-        return false;
-    return true;
-}
-
-/*
- * Return true if the argument is a simple scalar, _NOT_ a far-
- * absolute.
- */
-bool is_really_simple(const expr *vect)
-{
-    while (vect->type && !vect->value)
-        vect++;
-    if (!vect->type)
-        return true;
-    if (vect->type != EXPR_SIMPLE)
-        return false;
-    do {
-        vect++;
-    } while (vect->type && !vect->value);
-    if (vect->type)
-        return false;
-    return true;
-}
-
-/*
- * Return true if the argument is relocatable (i.e. a simple
- * scalar, plus at most one segment-base, possibly a subtraction
- * of the current segment base, plus possibly a WRT).
- */
-bool is_reloc(const expr *vect)
-{
-    bool has_rel = false;       /* Has a self-segment-subtract */
-    bool has_seg = false;       /* Has a segment base */
-
-    for (; vect->type; vect++) {
-        if (!vect->value) {
-            /* skip value-0 terms */
-            continue;
-        } else if (vect->type < EXPR_SIMPLE) {
-            /* false if a register is present */
-            return false;
-        } else if (vect->type == EXPR_SIMPLE) {
-            /* skip over a pure number term... */
-            continue;
-        } else if (vect->type == EXPR_WRT) {
-            /* skip over a WRT term... */
-            continue;
-        } else if (vect->type < EXPR_SEGBASE) {
-            /* other special type -> problem */
-            return false;
-        } else if (vect->value == 1) {
-            if (has_seg)
-                return false;   /* only one segbase allowed */
-            has_seg = true;
-        } else if (vect->value == -1) {
-            if (vect->type != location.segment + EXPR_SEGBASE)
-                return false;   /* can only subtract current segment */
-            if (has_rel)
-                return false;   /* already is relative */
-            has_rel = true;
-        }
-    }
-
-    return true;
-}
-
-/*
- * Return true if the argument contains an `unknown' part.
- */
-bool is_unknown(const expr *vect)
-{
-    while (vect->type && vect->type < EXPR_UNKNOWN)
-        vect++;
-    return (vect->type == EXPR_UNKNOWN);
-}
-
-/*
- * Return true if the argument contains nothing but an `unknown'
- * part.
- */
-bool is_just_unknown(const expr *vect)
-{
-    while (vect->type && !vect->value)
-        vect++;
-    return (vect->type == EXPR_UNKNOWN);
-}
-
-/*
- * Return the scalar part of a relocatable vector. (Including
- * simple scalar vectors - those qualify as relocatable.)
- */
-int64_t reloc_value(const expr *vect)
-{
-    while (vect->type && !vect->value)
-        vect++;
-    if (!vect->type)
-        return 0;
-    if (vect->type == EXPR_SIMPLE)
-        return vect->value;
-    else
-        return 0;
-}
-
-/*
- * Return the segment number of a relocatable vector, or NO_SEG for
- * simple scalars.
- */
-int32_t reloc_seg(const expr *vect)
-{
-    for (; vect->type; vect++) {
-        if (vect->type >= EXPR_SEGBASE && vect->value == 1)
-            return vect->type - EXPR_SEGBASE;
-    }
-
-    return NO_SEG;
-}
-
-/*
- * Return the WRT segment number of a relocatable vector, or NO_SEG
- * if no WRT part is present.
- */
-int32_t reloc_wrt(const expr *vect)
-{
-    while (vect->type && vect->type < EXPR_WRT)
-        vect++;
-    if (vect->type == EXPR_WRT) {
-        return vect->value;
-    } else
-        return NO_SEG;
-}
-
-/*
- * Return true if this expression contains a subtraction of the location
- */
-bool is_self_relative(const expr *vect)
-{
-    for (; vect->type; vect++) {
-        if (vect->type == location.segment + EXPR_SEGBASE && vect->value == -1)
-            return true;
-    }
-
-    return false;
-}
--- a/nasmbuild/nasm-2.13rc9/asm/float.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,952 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * float.c     floating-point constant support for the Netwide Assembler
- */
-
-#include "compiler.h"
-
-#include <ctype.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "nasm.h"
-#include "float.h"
-#include "error.h"
-
-/*
- * -----------------
- *  local variables
- * -----------------
- */
-static bool daz = false;        /* denormals as zero */
-static enum float_round rc = FLOAT_RC_NEAR;     /* rounding control */
-
-/*
- * -----------
- *  constants
- * -----------
- */
-
-/* "A limb is like a digit but bigger */
-typedef uint32_t fp_limb;
-typedef uint64_t fp_2limb;
-
-#define LIMB_BITS       32
-#define LIMB_BYTES      (LIMB_BITS/8)
-#define LIMB_TOP_BIT    ((fp_limb)1 << (LIMB_BITS-1))
-#define LIMB_MASK       ((fp_limb)(~0))
-#define LIMB_ALL_BYTES  ((fp_limb)0x01010101)
-#define LIMB_BYTE(x)    ((x)*LIMB_ALL_BYTES)
-
-/* 112 bits + 64 bits for accuracy + 16 bits for rounding */
-#define MANT_LIMBS 6
-
-/* 52 digits fit in 176 bits because 10^53 > 2^176 > 10^52 */
-#define MANT_DIGITS 52
-
-/* the format and the argument list depend on MANT_LIMBS */
-#define MANT_FMT "%08x_%08x_%08x_%08x_%08x_%08x"
-#define MANT_ARG SOME_ARG(mant, 0)
-
-#define SOME_ARG(a,i) (a)[(i)+0], (a)[(i)+1], (a)[(i)+2], \
-                      (a)[(i)+3], (a)[(i)+4], (a)[(i)+5]
-
-/*
- * ---------------------------------------------------------------------------
- *  emit a printf()-like debug message... but only if DEBUG_FLOAT was defined
- * ---------------------------------------------------------------------------
- */
-
-#ifdef DEBUG_FLOAT
-#define dprintf(x) printf x
-#else
-#define dprintf(x) do { } while (0)
-#endif
-
-/*
- * ---------------------------------------------------------------------------
- *  multiply
- * ---------------------------------------------------------------------------
- */
-static int float_multiply(fp_limb *to, fp_limb *from)
-{
-    fp_2limb temp[MANT_LIMBS * 2];
-    int i, j;
-
-    /*
-     * guaranteed that top bit of 'from' is set -- so we only have
-     * to worry about _one_ bit shift to the left
-     */
-    dprintf(("%s=" MANT_FMT "\n", "mul1", SOME_ARG(to, 0)));
-    dprintf(("%s=" MANT_FMT "\n", "mul2", SOME_ARG(from, 0)));
-
-    memset(temp, 0, sizeof temp);
-
-    for (i = 0; i < MANT_LIMBS; i++) {
-        for (j = 0; j < MANT_LIMBS; j++) {
-            fp_2limb n;
-            n = (fp_2limb) to[i] * (fp_2limb) from[j];
-            temp[i + j] += n >> LIMB_BITS;
-            temp[i + j + 1] += (fp_limb)n;
-        }
-    }
-
-    for (i = MANT_LIMBS * 2; --i;) {
-        temp[i - 1] += temp[i] >> LIMB_BITS;
-        temp[i] &= LIMB_MASK;
-    }
-
-    dprintf(("%s=" MANT_FMT "_" MANT_FMT "\n", "temp", SOME_ARG(temp, 0),
-             SOME_ARG(temp, MANT_LIMBS)));
-
-    if (temp[0] & LIMB_TOP_BIT) {
-        for (i = 0; i < MANT_LIMBS; i++) {
-            to[i] = temp[i] & LIMB_MASK;
-        }
-        dprintf(("%s=" MANT_FMT " (%i)\n", "prod", SOME_ARG(to, 0), 0));
-        return 0;
-    } else {
-        for (i = 0; i < MANT_LIMBS; i++) {
-            to[i] = (temp[i] << 1) + !!(temp[i + 1] & LIMB_TOP_BIT);
-        }
-        dprintf(("%s=" MANT_FMT " (%i)\n", "prod", SOME_ARG(to, 0), -1));
-        return -1;
-    }
-}
-
-/*
- * ---------------------------------------------------------------------------
- *  read an exponent; returns INT32_MAX on error
- * ---------------------------------------------------------------------------
- */
-static int32_t read_exponent(const char *string, int32_t max)
-{
-    int32_t i = 0;
-    bool neg = false;
-
-    if (*string == '+') {
-        string++;
-    } else if (*string == '-') {
-        neg = true;
-        string++;
-    }
-    while (*string) {
-        if (*string >= '0' && *string <= '9') {
-            i = (i * 10) + (*string - '0');
-
-            /*
-             * To ensure that underflows and overflows are
-             * handled properly we must avoid wraparounds of
-             * the signed integer value that is used to hold
-             * the exponent. Therefore we cap the exponent at
-             * +/-5000, which is slightly more/less than
-             * what's required for normal and denormal numbers
-             * in single, double, and extended precision, but
-             * sufficient to avoid signed integer wraparound.
-             */
-            if (i > max)
-                i = max;
-        } else if (*string == '_') {
-            /* do nothing */
-        } else {
-            nasm_error(ERR_NONFATAL|ERR_PASS1,
-                  "invalid character in floating-point constant %s: '%c'",
-                  "exponent", *string);
-            return INT32_MAX;
-        }
-        string++;
-    }
-
-    return neg ? -i : i;
-}
-
-/*
- * ---------------------------------------------------------------------------
- *  convert
- * ---------------------------------------------------------------------------
- */
-static bool ieee_flconvert(const char *string, fp_limb *mant,
-                           int32_t * exponent)
-{
-    char digits[MANT_DIGITS];
-    char *p, *q, *r;
-    fp_limb mult[MANT_LIMBS], bit;
-    fp_limb *m;
-    int32_t tenpwr, twopwr;
-    int32_t extratwos;
-    bool started, seendot, warned;
-
-    warned = false;
-    p = digits;
-    tenpwr = 0;
-    started = seendot = false;
-
-    while (*string && *string != 'E' && *string != 'e') {
-        if (*string == '.') {
-            if (!seendot) {
-                seendot = true;
-            } else {
-                nasm_error(ERR_NONFATAL|ERR_PASS1,
-                      "too many periods in floating-point constant");
-                return false;
-            }
-        } else if (*string >= '0' && *string <= '9') {
-            if (*string == '0' && !started) {
-                if (seendot) {
-                    tenpwr--;
-                }
-            } else {
-                started = true;
-                if (p < digits + sizeof(digits)) {
-                    *p++ = *string - '0';
-                } else {
-                    if (!warned) {
-                        nasm_error(ERR_WARNING|ERR_WARN_FL_TOOLONG|ERR_PASS1,
-                              "floating-point constant significand contains "
-                              "more than %i digits", MANT_DIGITS);
-                        warned = true;
-                    }
-                }
-                if (!seendot) {
-                    tenpwr++;
-                }
-            }
-        } else if (*string == '_') {
-            /* do nothing */
-        } else {
-            nasm_error(ERR_NONFATAL|ERR_PASS1,
-                  "invalid character in floating-point constant %s: '%c'",
-                  "significand", *string);
-            return false;
-        }
-        string++;
-    }
-
-    if (*string) {
-        int32_t e;
-
-        string++;               /* eat the E */
-        e = read_exponent(string, 5000);
-        if (e == INT32_MAX)
-            return false;
-        tenpwr += e;
-    }
-
-    /*
-     * At this point, the memory interval [digits,p) contains a
-     * series of decimal digits zzzzzzz, such that our number X
-     * satisfies X = 0.zzzzzzz * 10^tenpwr.
-     */
-    q = digits;
-    dprintf(("X = 0."));
-    while (q < p) {
-        dprintf(("%c", *q + '0'));
-        q++;
-    }
-    dprintf((" * 10^%i\n", tenpwr));
-
-    /*
-     * Now convert [digits,p) to our internal representation.
-     */
-    bit = LIMB_TOP_BIT;
-    for (m = mant; m < mant + MANT_LIMBS; m++) {
-        *m = 0;
-    }
-    m = mant;
-    q = digits;
-    started = false;
-    twopwr = 0;
-    while (m < mant + MANT_LIMBS) {
-        fp_limb carry = 0;
-        while (p > q && !p[-1]) {
-            p--;
-        }
-        if (p <= q) {
-            break;
-        }
-        for (r = p; r-- > q;) {
-            int32_t i;
-            i = 2 * *r + carry;
-            if (i >= 10) {
-                carry = 1;
-                i -= 10;
-            } else {
-                carry = 0;
-            }
-            *r = i;
-        }
-        if (carry) {
-            *m |= bit;
-            started = true;
-        }
-        if (started) {
-            if (bit == 1) {
-                bit = LIMB_TOP_BIT;
-                m++;
-            } else {
-                bit >>= 1;
-            }
-        } else {
-            twopwr--;
-        }
-    }
-    twopwr += tenpwr;
-
-    /*
-     * At this point, the 'mant' array contains the first frac-
-     * tional places of a base-2^16 real number which when mul-
-     * tiplied by 2^twopwr and 5^tenpwr gives X.
-     */
-    dprintf(("X = " MANT_FMT " * 2^%i * 5^%i\n", MANT_ARG, twopwr,
-             tenpwr));
-
-    /*
-     * Now multiply 'mant' by 5^tenpwr.
-     */
-    if (tenpwr < 0) {           /* mult = 5^-1 = 0.2 */
-        for (m = mult; m < mult + MANT_LIMBS - 1; m++) {
-            *m = LIMB_BYTE(0xcc);
-        }
-        mult[MANT_LIMBS - 1] = LIMB_BYTE(0xcc)+1;
-        extratwos = -2;
-        tenpwr = -tenpwr;
-
-        /*
-         * If tenpwr was 1000...000b, then it becomes 1000...000b. See
-         * the "ANSI C" comment below for more details on that case.
-         *
-         * Because we already truncated tenpwr to +5000...-5000 inside
-         * the exponent parsing code, this shouldn't happen though.
-         */
-    } else if (tenpwr > 0) {    /* mult = 5^+1 = 5.0 */
-        mult[0] = (fp_limb)5 << (LIMB_BITS-3); /* 0xA000... */
-        for (m = mult + 1; m < mult + MANT_LIMBS; m++) {
-            *m = 0;
-        }
-        extratwos = 3;
-    } else {
-        extratwos = 0;
-    }
-    while (tenpwr) {
-        dprintf(("loop=" MANT_FMT " * 2^%i * 5^%i (%i)\n", MANT_ARG,
-                 twopwr, tenpwr, extratwos));
-        if (tenpwr & 1) {
-            dprintf(("mant*mult\n"));
-            twopwr += extratwos + float_multiply(mant, mult);
-        }
-        dprintf(("mult*mult\n"));
-        extratwos = extratwos * 2 + float_multiply(mult, mult);
-        tenpwr >>= 1;
-
-        /*
-         * In ANSI C, the result of right-shifting a signed integer is
-         * considered implementation-specific. To ensure that the loop
-         * terminates even if tenpwr was 1000...000b to begin with, we
-         * manually clear the MSB, in case a 1 was shifted in.
-         *
-         * Because we already truncated tenpwr to +5000...-5000 inside
-         * the exponent parsing code, this shouldn't matter; neverthe-
-         * less it is the right thing to do here.
-         */
-        tenpwr &= (uint32_t) - 1 >> 1;
-    }
-
-    /*
-     * At this point, the 'mant' array contains the first frac-
-     * tional places of a base-2^16 real number in [0.5,1) that
-     * when multiplied by 2^twopwr gives X. Or it contains zero
-     * of course. We are done.
-     */
-    *exponent = twopwr;
-    return true;
-}
-
-/*
- * ---------------------------------------------------------------------------
- *  operations of specific bits
- * ---------------------------------------------------------------------------
- */
-
-/* Set a bit, using *bigendian* bit numbering (0 = MSB) */
-static void set_bit(fp_limb *mant, int bit)
-{
-    mant[bit/LIMB_BITS] |= LIMB_TOP_BIT >> (bit & (LIMB_BITS-1));
-}
-
-/* Test a single bit */
-static int test_bit(const fp_limb *mant, int bit)
-{
-    return (mant[bit/LIMB_BITS] >> (~bit & (LIMB_BITS-1))) & 1;
-}
-
-/* Report if the mantissa value is all zero */
-static bool is_zero(const fp_limb *mant)
-{
-    int i;
-
-    for (i = 0; i < MANT_LIMBS; i++)
-        if (mant[i])
-            return false;
-
-    return true;
-}
-
-/*
- * ---------------------------------------------------------------------------
- *  round a mantissa off after i words
- * ---------------------------------------------------------------------------
- */
-
-#define ROUND_COLLECT_BITS                      \
-    do {                                        \
-        m = mant[i] & (2*bit-1);                \
-        for (j = i+1; j < MANT_LIMBS; j++)      \
-            m = m | mant[j];                    \
-    } while (0)
-
-#define ROUND_ABS_DOWN                          \
-    do {                                        \
-        mant[i] &= ~(bit-1);                    \
-        for (j = i+1; j < MANT_LIMBS; j++)      \
-            mant[j] = 0;                        \
-        return false;                           \
-    } while (0)
-
-#define ROUND_ABS_UP                            \
-    do {                                        \
-        mant[i] = (mant[i] & ~(bit-1)) + bit;   \
-        for (j = i+1; j < MANT_LIMBS; j++)      \
-            mant[j] = 0;                        \
-        while (i > 0 && !mant[i])               \
-            ++mant[--i];                        \
-        return !mant[0];                        \
-    } while (0)
-
-static bool ieee_round(bool minus, fp_limb *mant, int bits)
-{
-    fp_limb m = 0;
-    int32_t j;
-    int i = bits / LIMB_BITS;
-    int p = bits % LIMB_BITS;
-    fp_limb bit = LIMB_TOP_BIT >> p;
-
-    if (rc == FLOAT_RC_NEAR) {
-        if (mant[i] & bit) {
-            mant[i] &= ~bit;
-            ROUND_COLLECT_BITS;
-            mant[i] |= bit;
-            if (m) {
-                ROUND_ABS_UP;
-            } else {
-                if (test_bit(mant, bits-1)) {
-                    ROUND_ABS_UP;
-                } else {
-                    ROUND_ABS_DOWN;
-                }
-            }
-        } else {
-            ROUND_ABS_DOWN;
-        }
-    } else if (rc == FLOAT_RC_ZERO ||
-               rc == (minus ? FLOAT_RC_UP : FLOAT_RC_DOWN)) {
-        ROUND_ABS_DOWN;
-    } else {
-        /* rc == (minus ? FLOAT_RC_DOWN : FLOAT_RC_UP) */
-        /* Round toward +/- infinity */
-        ROUND_COLLECT_BITS;
-        if (m) {
-            ROUND_ABS_UP;
-        } else {
-            ROUND_ABS_DOWN;
-        }
-    }
-    return false;
-}
-
-/* Returns a value >= 16 if not a valid hex digit */
-static unsigned int hexval(char c)
-{
-    unsigned int v = (unsigned char) c;
-
-    if (v >= '0' && v <= '9')
-        return v - '0';
-    else
-        return (v|0x20) - 'a' + 10;
-}
-
-/* Handle floating-point numbers with radix 2^bits and binary exponent */
-static bool ieee_flconvert_bin(const char *string, int bits,
-                               fp_limb *mant, int32_t *exponent)
-{
-    static const int log2tbl[16] =
-        { -1, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3 };
-    fp_limb mult[MANT_LIMBS + 1], *mp;
-    int ms;
-    int32_t twopwr;
-    bool seendot, seendigit;
-    unsigned char c;
-    const int radix = 1 << bits;
-    fp_limb v;
-
-    twopwr = 0;
-    seendot = seendigit = false;
-    ms = 0;
-    mp = NULL;
-
-    memset(mult, 0, sizeof mult);
-
-    while ((c = *string++) != '\0') {
-        if (c == '.') {
-            if (!seendot)
-                seendot = true;
-            else {
-                nasm_error(ERR_NONFATAL|ERR_PASS1,
-                      "too many periods in floating-point constant");
-                return false;
-            }
-        } else if ((v = hexval(c)) < (unsigned int)radix) {
-            if (!seendigit && v) {
-                int l = log2tbl[v];
-
-                seendigit = true;
-                mp = mult;
-                ms = (LIMB_BITS-1)-l;
-
-                twopwr = seendot ? twopwr-bits+l : l+1-bits;
-            }
-
-            if (seendigit) {
-                if (ms <= 0) {
-                    *mp |= v >> -ms;
-                    mp++;
-                    if (mp > &mult[MANT_LIMBS])
-                        mp = &mult[MANT_LIMBS]; /* Guard slot */
-                    ms += LIMB_BITS;
-                }
-                *mp |= v << ms;
-                ms -= bits;
-
-                if (!seendot)
-                    twopwr += bits;
-            } else {
-                if (seendot)
-                    twopwr -= bits;
-            }
-        } else if (c == 'p' || c == 'P') {
-            int32_t e;
-            e = read_exponent(string, 20000);
-            if (e == INT32_MAX)
-                return false;
-            twopwr += e;
-            break;
-        } else if (c == '_') {
-            /* ignore */
-        } else {
-            nasm_error(ERR_NONFATAL|ERR_PASS1,
-                  "floating-point constant: `%c' is invalid character", c);
-            return false;
-        }
-    }
-
-    if (!seendigit) {
-        memset(mant, 0, MANT_LIMBS*sizeof(fp_limb)); /* Zero */
-        *exponent = 0;
-    } else {
-        memcpy(mant, mult, MANT_LIMBS*sizeof(fp_limb));
-        *exponent = twopwr;
-    }
-
-    return true;
-}
-
-/*
- * Shift a mantissa to the right by i bits.
- */
-static void ieee_shr(fp_limb *mant, int i)
-{
-    fp_limb n, m;
-    int j = 0;
-    int sr, sl, offs;
-
-    sr = i % LIMB_BITS; sl = LIMB_BITS-sr;
-    offs = i/LIMB_BITS;
-
-    if (sr == 0) {
-        if (offs)
-            for (j = MANT_LIMBS-1; j >= offs; j--)
-                mant[j] = mant[j-offs];
-    } else {
-        n = mant[MANT_LIMBS-1-offs] >> sr;
-        for (j = MANT_LIMBS-1; j > offs; j--) {
-            m = mant[j-offs-1];
-            mant[j] = (m << sl) | n;
-            n = m >> sr;
-        }
-        mant[j--] = n;
-    }
-    while (j >= 0)
-        mant[j--] = 0;
-}
-
-/* Produce standard IEEE formats, with implicit or explicit integer
-   bit; this makes the following assumptions:
-
-   - the sign bit is the MSB, followed by the exponent,
-     followed by the integer bit if present.
-   - the sign bit plus exponent fit in 16 bits.
-   - the exponent bias is 2^(n-1)-1 for an n-bit exponent */
-
-struct ieee_format {
-    int bytes;
-    int mantissa;               /* Fractional bits in the mantissa */
-    int explicit;               /* Explicit integer */
-    int exponent;               /* Bits in the exponent */
-};
-
-/*
- * The 16- and 128-bit formats are expected to be in IEEE 754r.
- * AMD SSE5 uses the 16-bit format.
- *
- * The 32- and 64-bit formats are the original IEEE 754 formats.
- *
- * The 80-bit format is x87-specific, but widely used.
- *
- * The 8-bit format appears to be the consensus 8-bit floating-point
- * format.  It is apparently used in graphics applications.
- */
-static const struct ieee_format ieee_8   = {  1,   3, 0,  4 };
-static const struct ieee_format ieee_16  = {  2,  10, 0,  5 };
-static const struct ieee_format ieee_32  = {  4,  23, 0,  8 };
-static const struct ieee_format ieee_64  = {  8,  52, 0, 11 };
-static const struct ieee_format ieee_80  = { 10,  63, 1, 15 };
-static const struct ieee_format ieee_128 = { 16, 112, 0, 15 };
-
-/* Types of values we can generate */
-enum floats {
-    FL_ZERO,
-    FL_DENORMAL,
-    FL_NORMAL,
-    FL_INFINITY,
-    FL_QNAN,
-    FL_SNAN
-};
-
-static int to_packed_bcd(const char *str, const char *p,
-                         int s, uint8_t *result,
-                         const struct ieee_format *fmt)
-{
-    int n = 0;
-    char c;
-    int tv = -1;
-
-    if (fmt != &ieee_80) {
-        nasm_error(ERR_NONFATAL|ERR_PASS1,
-              "packed BCD requires an 80-bit format");
-        return 0;
-    }
-
-    while (p >= str) {
-        c = *p--;
-        if (c >= '0' && c <= '9') {
-            if (tv < 0) {
-                if (n == 9) {
-                    nasm_error(ERR_WARNING|ERR_PASS1,
-                          "packed BCD truncated to 18 digits");
-                }
-                tv = c-'0';
-            } else {
-                if (n < 9)
-                    *result++ = tv + ((c-'0') << 4);
-                n++;
-                tv = -1;
-            }
-        } else if (c == '_') {
-            /* do nothing */
-        } else {
-            nasm_error(ERR_NONFATAL|ERR_PASS1,
-                  "invalid character `%c' in packed BCD constant", c);
-            return 0;
-        }
-    }
-    if (tv >= 0) {
-        if (n < 9)
-            *result++ = tv;
-        n++;
-    }
-    while (n < 9) {
-        *result++ = 0;
-        n++;
-    }
-    *result = (s < 0) ? 0x80 : 0;
-
-    return 1;                   /* success */
-}
-
-static int to_float(const char *str, int s, uint8_t *result,
-                    const struct ieee_format *fmt)
-{
-    fp_limb mant[MANT_LIMBS];
-    int32_t exponent = 0;
-    const int32_t expmax = 1 << (fmt->exponent - 1);
-    fp_limb one_mask = LIMB_TOP_BIT >>
-        ((fmt->exponent+fmt->explicit) % LIMB_BITS);
-    const int one_pos = (fmt->exponent+fmt->explicit)/LIMB_BITS;
-    int i;
-    int shift;
-    enum floats type;
-    bool ok;
-    const bool minus = s < 0;
-    const int bits = fmt->bytes * 8;
-    const char *strend;
-
-    if (!str[0]) {
-        nasm_panic(0,
-              "internal errror: empty string passed to float_const");
-        return 0;
-    }
-
-    strend = strchr(str, '\0');
-    if (strend[-1] == 'P' || strend[-1] == 'p')
-        return to_packed_bcd(str, strend-2, s, result, fmt);
-
-    if (str[0] == '_') {
-        /* Special tokens */
-
-        switch (str[2]) {
-        case 'n':              /* __nan__ */
-        case 'N':
-        case 'q':              /* __qnan__ */
-        case 'Q':
-            type = FL_QNAN;
-            break;
-        case 's':              /* __snan__ */
-        case 'S':
-            type = FL_SNAN;
-            break;
-        case 'i':              /* __infinity__ */
-        case 'I':
-            type = FL_INFINITY;
-            break;
-        default:
-            nasm_error(ERR_NONFATAL|ERR_PASS1,
-                  "internal error: unknown FP constant token `%s'\n", str);
-            type = FL_QNAN;
-            break;
-        }
-    } else {
-        if (str[0] == '0') {
-            switch (str[1]) {
-            case 'x': case 'X':
-            case 'h': case 'H':
-                ok = ieee_flconvert_bin(str+2, 4, mant, &exponent);
-                break;
-            case 'o': case 'O':
-            case 'q': case 'Q':
-                ok = ieee_flconvert_bin(str+2, 3, mant, &exponent);
-                break;
-            case 'b': case 'B':
-            case 'y': case 'Y':
-                ok = ieee_flconvert_bin(str+2, 1, mant, &exponent);
-                break;
-            case 'd': case 'D':
-            case 't': case 'T':
-                ok = ieee_flconvert(str+2, mant, &exponent);
-                break;
-            case 'p': case 'P':
-                return to_packed_bcd(str+2, strend-1, s, result, fmt);
-            default:
-                /* Leading zero was just a zero? */
-                ok = ieee_flconvert(str, mant, &exponent);
-                break;
-            }
-        } else if (str[0] == '$') {
-            ok = ieee_flconvert_bin(str+1, 4, mant, &exponent);
-        } else {
-            ok = ieee_flconvert(str, mant, &exponent);
-        }
-
-        if (!ok) {
-            type = FL_QNAN;
-        } else if (mant[0] & LIMB_TOP_BIT) {
-            /*
-             * Non-zero.
-             */
-            exponent--;
-            if (exponent >= 2 - expmax && exponent <= expmax) {
-                type = FL_NORMAL;
-            } else if (exponent > 0) {
-                if (pass0 == 1)
-                    nasm_error(ERR_WARNING|ERR_WARN_FL_OVERFLOW|ERR_PASS1,
-                          "overflow in floating-point constant");
-                type = FL_INFINITY;
-            } else {
-                /* underflow or denormal; the denormal code handles
-                   actual underflow. */
-                type = FL_DENORMAL;
-            }
-        } else {
-            /* Zero */
-            type = FL_ZERO;
-        }
-    }
-
-    switch (type) {
-    case FL_ZERO:
-    zero:
-        memset(mant, 0, sizeof mant);
-        break;
-
-    case FL_DENORMAL:
-    {
-        shift = -(exponent + expmax - 2 - fmt->exponent)
-            + fmt->explicit;
-        ieee_shr(mant, shift);
-        ieee_round(minus, mant, bits);
-        if (mant[one_pos] & one_mask) {
-            /* One's position is set, we rounded up into normal range */
-            exponent = 1;
-            if (!fmt->explicit)
-                mant[one_pos] &= ~one_mask;     /* remove explicit one */
-            mant[0] |= exponent << (LIMB_BITS-1 - fmt->exponent);
-        } else {
-            if (daz || is_zero(mant)) {
-                /* Flush denormals to zero */
-                nasm_error(ERR_WARNING|ERR_WARN_FL_UNDERFLOW|ERR_PASS1,
-                      "underflow in floating-point constant");
-                goto zero;
-            } else {
-                nasm_error(ERR_WARNING|ERR_WARN_FL_DENORM|ERR_PASS1,
-                      "denormal floating-point constant");
-            }
-        }
-        break;
-    }
-
-    case FL_NORMAL:
-        exponent += expmax - 1;
-        ieee_shr(mant, fmt->exponent+fmt->explicit);
-        ieee_round(minus, mant, bits);
-        /* did we scale up by one? */
-        if (test_bit(mant, fmt->exponent+fmt->explicit-1)) {
-            ieee_shr(mant, 1);
-            exponent++;
-            if (exponent >= (expmax << 1)-1) {
-                    nasm_error(ERR_WARNING|ERR_WARN_FL_OVERFLOW|ERR_PASS1,
-                          "overflow in floating-point constant");
-                type = FL_INFINITY;
-                goto overflow;
-            }
-        }
-
-        if (!fmt->explicit)
-            mant[one_pos] &= ~one_mask; /* remove explicit one */
-        mant[0] |= exponent << (LIMB_BITS-1 - fmt->exponent);
-        break;
-
-    case FL_INFINITY:
-    case FL_QNAN:
-    case FL_SNAN:
-    overflow:
-        memset(mant, 0, sizeof mant);
-        mant[0] = (((fp_limb)1 << fmt->exponent)-1)
-            << (LIMB_BITS-1 - fmt->exponent);
-        if (fmt->explicit)
-            mant[one_pos] |= one_mask;
-        if (type == FL_QNAN)
-            set_bit(mant, fmt->exponent+fmt->explicit+1);
-        else if (type == FL_SNAN)
-            set_bit(mant, fmt->exponent+fmt->explicit+fmt->mantissa);
-        break;
-    }
-
-    mant[0] |= minus ? LIMB_TOP_BIT : 0;
-
-    for (i = fmt->bytes - 1; i >= 0; i--)
-        *result++ = mant[i/LIMB_BYTES] >> (((LIMB_BYTES-1)-(i%LIMB_BYTES))*8);
-
-    return 1;                   /* success */
-}
-
-int float_const(const char *number, int sign, uint8_t *result, int bytes)
-{
-    switch (bytes) {
-    case 1:
-        return to_float(number, sign, result, &ieee_8);
-    case 2:
-        return to_float(number, sign, result, &ieee_16);
-    case 4:
-        return to_float(number, sign, result, &ieee_32);
-    case 8:
-        return to_float(number, sign, result, &ieee_64);
-    case 10:
-        return to_float(number, sign, result, &ieee_80);
-    case 16:
-        return to_float(number, sign, result, &ieee_128);
-    default:
-        nasm_panic(0, "strange value %d passed to float_const", bytes);
-        return 0;
-    }
-}
-
-/* Set floating-point options */
-int float_option(const char *option)
-{
-    if (!nasm_stricmp(option, "daz")) {
-        daz = true;
-        return 0;
-    } else if (!nasm_stricmp(option, "nodaz")) {
-        daz = false;
-        return 0;
-    } else if (!nasm_stricmp(option, "near")) {
-        rc = FLOAT_RC_NEAR;
-        return 0;
-    } else if (!nasm_stricmp(option, "down")) {
-        rc = FLOAT_RC_DOWN;
-        return 0;
-    } else if (!nasm_stricmp(option, "up")) {
-        rc = FLOAT_RC_UP;
-        return 0;
-    } else if (!nasm_stricmp(option, "zero")) {
-        rc = FLOAT_RC_ZERO;
-        return 0;
-    } else if (!nasm_stricmp(option, "default")) {
-        rc = FLOAT_RC_NEAR;
-        daz = false;
-        return 0;
-    } else {
-        return -1;              /* Unknown option */
-    }
-}
--- a/nasmbuild/nasm-2.13rc9/asm/float.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/* 
- * float.h   header file for the floating-point constant module of
- *	     the Netwide Assembler
- */
-
-#ifndef NASM_FLOAT_H
-#define NASM_FLOAT_H
-
-#include "nasm.h"
-
-enum float_round {
-    FLOAT_RC_NEAR,
-    FLOAT_RC_ZERO,
-    FLOAT_RC_DOWN,
-    FLOAT_RC_UP
-};
-
-int float_const(const char *string, int sign, uint8_t *result, int bytes);
-int float_option(const char *option);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/asm/labels.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,540 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * labels.c  label handling for the Netwide Assembler
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "hashtbl.h"
-#include "labels.h"
-
-/*
- * A local label is one that begins with exactly one period. Things
- * that begin with _two_ periods are NASM-specific things.
- *
- * If TASM compatibility is enabled, a local label can also begin with
- * @@, so @@local is a TASM compatible local label. Note that we only
- * check for the first @ symbol, although TASM requires both.
- */
-#define islocal(l)                                                      \
-        (tasm_compatible_mode ?                                         \
-                (((l)[0] == '.' || (l)[0] == '@') && (l)[1] != '.') :   \
-                ((l)[0] == '.' && (l)[1] != '.'))
-#define islocalchar(c)                                                  \
-        (tasm_compatible_mode ?                                         \
-                ((c) == '.' || (c) == '@') :                            \
-                ((c) == '.'))
-
-#define LABEL_BLOCK     128     /* no. of labels/block */
-#define LBLK_SIZE       (LABEL_BLOCK * sizeof(union label))
-
-#define END_LIST        -3      /* don't clash with NO_SEG! */
-#define END_BLOCK       -2
-#define BOGUS_VALUE     -4
-
-#define PERMTS_SIZE     16384   /* size of text blocks */
-#if (PERMTS_SIZE < IDLEN_MAX)
- #error "IPERMTS_SIZE must be greater than or equal to IDLEN_MAX"
-#endif
-
-/* values for label.defn.is_global */
-#define DEFINED_BIT     1
-#define GLOBAL_BIT      2
-#define EXTERN_BIT      4
-#define COMMON_BIT      8
-
-#define NOT_DEFINED_YET         0
-#define TYPE_MASK               3
-#define LOCAL_SYMBOL            (DEFINED_BIT)
-#define GLOBAL_PLACEHOLDER      (GLOBAL_BIT)
-#define GLOBAL_SYMBOL           (DEFINED_BIT | GLOBAL_BIT)
-
-union label {                   /* actual label structures */
-    struct {
-        int32_t segment;
-        int64_t offset;
-        char *label, *special;
-        int is_global, is_norm;
-    } defn;
-    struct {
-        int32_t movingon;
-        int64_t dummy;
-        union label *next;
-    } admin;
-};
-
-struct permts {                 /* permanent text storage */
-    struct permts *next;        /* for the linked list */
-    int size, usage;            /* size and used space in ... */
-    char data[PERMTS_SIZE];     /* ... the data block itself */
-};
-
-uint64_t global_offset_changed;		/* counter for global offset changes */
-
-static struct hash_table ltab;          /* labels hash table */
-static union label *ldata;              /* all label data blocks */
-static union label *lfree;              /* labels free block */
-static struct permts *perm_head;        /* start of perm. text storage */
-static struct permts *perm_tail;        /* end of perm. text storage */
-
-static void init_block(union label *blk);
-static char *perm_copy(const char *string);
-
-static char *prevlabel;
-
-static bool initialized = false;
-
-char lprefix[PREFIX_MAX] = { 0 };
-char lpostfix[PREFIX_MAX] = { 0 };
-
-/*
- * Emit a symdef to the output and the debug format backends.
- */
-static void out_symdef(char *name, int32_t segment, int64_t offset,
-                       int is_global, char *special)
-{
-    ofmt->symdef(name, segment, offset, is_global, special);
-
-    /*
-     * NASM special symbols are not passed to the debug format; none
-     * of the current backends want to see them.
-     */
-    if (!(name[0] == '.' && name[1] == '.' && name[2] != '@'))
-        dfmt->debug_deflabel(name, segment, offset, is_global, special);
-}
-
-/*
- * Internal routine: finds the `union label' corresponding to the
- * given label name. Creates a new one, if it isn't found, and if
- * `create' is true.
- */
-static union label *find_label(const char *label, int create, int *created)
-{
-    char *prev;
-    int prevlen, len;
-    union label *lptr, **lpp;
-    char label_str[IDLEN_MAX];
-    struct hash_insert ip;
-
-    if (islocal(label)) {
-        prev = prevlabel;
-        prevlen = strlen(prev);
-        len = strlen(label);
-        if (prevlen + len >= IDLEN_MAX) {
-            nasm_error(ERR_NONFATAL, "identifier length exceed %i bytes",
-                       IDLEN_MAX);
-            return NULL;
-        }
-        memcpy(label_str, prev, prevlen);
-        memcpy(label_str+prevlen, label, len+1);
-        label = label_str;
-    } else {
-        prev = "";
-        prevlen = 0;
-    }
-
-    lpp = (union label **) hash_find(&ltab, label, &ip);
-    lptr = lpp ? *lpp : NULL;
-
-    if (lptr || !create) {
-        if (created)
-            *created = 0;
-        return lptr;
-    }
-
-    /* Create a new label... */
-    if (lfree->admin.movingon == END_BLOCK) {
-        /*
-         * must allocate a new block
-         */
-        lfree->admin.next = (union label *)nasm_malloc(LBLK_SIZE);
-        lfree = lfree->admin.next;
-        init_block(lfree);
-    }
-
-    if (created)
-        *created = 1;
-
-    lfree->admin.movingon = BOGUS_VALUE;
-    lfree->defn.label = perm_copy(label);
-    lfree->defn.special = NULL;
-    lfree->defn.is_global = NOT_DEFINED_YET;
-
-    hash_add(&ip, lfree->defn.label, lfree);
-    return lfree++;
-}
-
-bool lookup_label(const char *label, int32_t *segment, int64_t *offset)
-{
-    union label *lptr;
-
-    if (!initialized)
-        return false;
-
-    lptr = find_label(label, 0, NULL);
-    if (lptr && (lptr->defn.is_global & DEFINED_BIT)) {
-        *segment = lptr->defn.segment;
-        *offset = lptr->defn.offset;
-        return true;
-    }
-
-    return false;
-}
-
-bool is_extern(const char *label)
-{
-    union label *lptr;
-
-    if (!initialized)
-        return false;
-
-    lptr = find_label(label, 0, NULL);
-    return (lptr && (lptr->defn.is_global & EXTERN_BIT));
-}
-
-void redefine_label(char *label, int32_t segment, int64_t offset, char *special,
-                    bool is_norm, bool isextrn)
-{
-    union label *lptr;
-    int exi, created;
-
-    /* This routine possibly ought to check for phase errors.  Most assemblers
-     * check for phase errors at this point.  I don't know whether phase errors
-     * are even possible, nor whether they are checked somewhere else
-     */
-
-    (void)special;              /* Don't warn that this parameter is unused */
-    (void)is_norm;              /* Don't warn that this parameter is unused */
-    (void)isextrn;              /* Don't warn that this parameter is unused */
-
-#ifdef DEBUG
-#if DEBUG < 3
-    if (!strncmp(label, "debugdump", 9))
-#endif
-        nasm_error(ERR_DEBUG, "redefine_label (%s, %"PRIx32", %"PRIx64", %s, %d, %d)",
-              label, segment, offset, special, is_norm, isextrn);
-#endif
-
-    lptr = find_label(label, 1, &created);
-    if (!lptr)
-        nasm_panic(0, "can't find label `%s' on pass two", label);
-
-    if (created)
-	    nasm_error(ERR_WARNING, "label `%s' defined on pass two", label);
-
-    if (!islocal(label)) {
-        if (!islocalchar(*label) && lptr->defn.is_norm)
-            prevlabel = lptr->defn.label;
-    }
-
-    if (lptr->defn.offset != offset)
-        global_offset_changed++;
-
-    lptr->defn.offset = offset;
-    lptr->defn.segment = segment;
-
-    if (pass0 == 1) {
-        exi = !!(lptr->defn.is_global & GLOBAL_BIT);
-        if (exi) {
-            char *xsymbol;
-            int slen;
-            slen = strlen(lprefix);
-            slen += strlen(lptr->defn.label);
-            slen += strlen(lpostfix);
-            slen++;             /* room for that null char */
-            xsymbol = nasm_malloc(slen);
-            snprintf(xsymbol, slen, "%s%s%s", lprefix, lptr->defn.label,
-                     lpostfix);
-
-            out_symdef(xsymbol, segment, offset, exi,
-                       special ? special : lptr->defn.special);
-            /**	nasm_free(xsymbol);  ! outobj.c stores the pointer; ouch!!! **/
-        } else {
-            if ((lptr->defn.is_global & (GLOBAL_BIT | EXTERN_BIT)) != EXTERN_BIT) {
-                out_symdef(lptr->defn.label, segment, offset, exi,
-                           special ? special : lptr->defn.special);
-            }
-        }
-    }   /* if (pass0 == 1) */
-}
-
-void define_label(char *label, int32_t segment, int64_t offset, char *special,
-                  bool is_norm, bool isextrn)
-{
-    union label *lptr;
-    int exi;
-
-#ifdef DEBUG
-#if DEBUG<3
-    if (!strncmp(label, "debugdump", 9))
-#endif
-        nasm_error(ERR_DEBUG, "define_label (%s, %"PRIx32", %"PRIx64", %s, %d, %d)",
-              label, segment, offset, special, is_norm, isextrn);
-#endif
-    lptr = find_label(label, 1, NULL);
-    if (!lptr)
-        return;
-    if (lptr->defn.is_global & DEFINED_BIT) {
-        nasm_error(ERR_NONFATAL, "symbol `%s' redefined", label);
-        return;
-    }
-    lptr->defn.is_global |= DEFINED_BIT;
-    if (isextrn)
-        lptr->defn.is_global |= EXTERN_BIT;
-
-    if (!islocalchar(label[0]) && is_norm) {
-        /* not local, but not special either */
-        prevlabel = lptr->defn.label;
-    } else if (islocal(label) && !*prevlabel) {
-        nasm_error(ERR_NONFATAL, "attempt to define a local label before any"
-              " non-local labels");
-    }
-
-    lptr->defn.segment = segment;
-    lptr->defn.offset = offset;
-    lptr->defn.is_norm = (!islocalchar(label[0]) && is_norm);
-
-    if (pass0 == 1 || (!is_norm && !isextrn && (segment > 0) && (segment & 1))) {
-        exi = !!(lptr->defn.is_global & GLOBAL_BIT);
-        if (exi) {
-            char *xsymbol;
-            int slen;
-            slen = strlen(lprefix);
-            slen += strlen(lptr->defn.label);
-            slen += strlen(lpostfix);
-            slen++;             /* room for that null char */
-            xsymbol = nasm_malloc(slen);
-            snprintf(xsymbol, slen, "%s%s%s", lprefix, lptr->defn.label,
-                     lpostfix);
-
-            out_symdef(xsymbol, segment, offset, exi,
-                       special ? special : lptr->defn.special);
-            /**	nasm_free(xsymbol);  ! outobj.c stores the pointer; ouch!!! **/
-        } else {
-            if ((lptr->defn.is_global & (GLOBAL_BIT | EXTERN_BIT)) != EXTERN_BIT) {
-                out_symdef(lptr->defn.label, segment, offset, exi,
-                           special ? special : lptr->defn.special);
-            }
-        }
-    }   /* if (pass0 == 1) */
-}
-
-void define_common(char *label, int32_t segment, int32_t size, char *special)
-{
-    union label *lptr;
-
-    lptr = find_label(label, 1, NULL);
-    if (!lptr)
-        return;
-    if ((lptr->defn.is_global & DEFINED_BIT) &&
-        (passn == 1 || !(lptr->defn.is_global & COMMON_BIT))) {
-            nasm_error(ERR_NONFATAL, "symbol `%s' redefined", label);
-            return;
-    }
-    lptr->defn.is_global |= DEFINED_BIT|COMMON_BIT;
-
-    if (!islocalchar(label[0])) {
-        prevlabel = lptr->defn.label;
-    } else {
-        nasm_error(ERR_NONFATAL, "attempt to define a local label as a "
-              "common variable");
-        return;
-    }
-
-    lptr->defn.segment = segment;
-    lptr->defn.offset = 0;
-
-    if (pass0 == 0)
-        return;
-
-    out_symdef(lptr->defn.label, segment, size, 2,
-               special ? special : lptr->defn.special);
-}
-
-void declare_as_global(char *label, char *special)
-{
-    union label *lptr;
-
-    if (islocal(label)) {
-        nasm_error(ERR_NONFATAL, "attempt to declare local symbol `%s' as"
-              " global", label);
-        return;
-    }
-    lptr = find_label(label, 1, NULL);
-    if (!lptr)
-        return;
-    switch (lptr->defn.is_global & TYPE_MASK) {
-    case NOT_DEFINED_YET:
-        lptr->defn.is_global = GLOBAL_PLACEHOLDER;
-        lptr->defn.special = special ? perm_copy(special) : NULL;
-        break;
-    case GLOBAL_PLACEHOLDER:   /* already done: silently ignore */
-    case GLOBAL_SYMBOL:
-        break;
-    case LOCAL_SYMBOL:
-        if (!(lptr->defn.is_global & EXTERN_BIT)) {
-            nasm_error(ERR_WARNING, "symbol `%s': GLOBAL directive "
-                  "after symbol definition is an experimental feature", label);
-            lptr->defn.is_global = GLOBAL_SYMBOL;
-        }
-        break;
-    }
-}
-
-int init_labels(void)
-{
-    hash_init(&ltab, HASH_LARGE);
-
-    ldata = lfree = (union label *)nasm_malloc(LBLK_SIZE);
-    init_block(lfree);
-
-    perm_head = perm_tail =
-        (struct permts *)nasm_malloc(sizeof(struct permts));
-
-    perm_head->next = NULL;
-    perm_head->size = PERMTS_SIZE;
-    perm_head->usage = 0;
-
-    prevlabel = "";
-
-    initialized = true;
-
-    return 0;
-}
-
-void cleanup_labels(void)
-{
-    union label *lptr, *lhold;
-
-    initialized = false;
-
-    hash_free(&ltab);
-
-    lptr = lhold = ldata;
-    while (lptr) {
-        lptr = &lptr[LABEL_BLOCK-1];
-        lptr = lptr->admin.next;
-        nasm_free(lhold);
-        lhold = lptr;
-    }
-
-    while (perm_head) {
-        perm_tail = perm_head;
-        perm_head = perm_head->next;
-        nasm_free(perm_tail);
-    }
-}
-
-static void init_block(union label *blk)
-{
-    int j;
-
-    for (j = 0; j < LABEL_BLOCK - 1; j++)
-        blk[j].admin.movingon = END_LIST;
-    blk[LABEL_BLOCK - 1].admin.movingon = END_BLOCK;
-    blk[LABEL_BLOCK - 1].admin.next = NULL;
-}
-
-static char *perm_copy(const char *string)
-{
-    char *p;
-    int len = strlen(string)+1;
-
-    nasm_assert(len <= PERMTS_SIZE);
-
-    if (perm_tail->size - perm_tail->usage < len) {
-        perm_tail->next =
-            (struct permts *)nasm_malloc(sizeof(struct permts));
-        perm_tail = perm_tail->next;
-        perm_tail->next = NULL;
-        perm_tail->size = PERMTS_SIZE;
-        perm_tail->usage = 0;
-    }
-    p = perm_tail->data + perm_tail->usage;
-    memcpy(p, string, len);
-    perm_tail->usage += len;
-
-    return p;
-}
-
-char *local_scope(char *label)
-{
-   return islocal(label) ? prevlabel : "";
-}
-
-/*
- * Notes regarding bug involving redefinition of external segments.
- *
- * Up to and including v0.97, the following code didn't work. From 0.97
- * developers release 2 onwards, it will generate an error.
- *
- * EXTERN extlabel
- * newlabel EQU extlabel + 1
- *
- * The results of allowing this code through are that two import records
- * are generated, one for 'extlabel' and one for 'newlabel'.
- *
- * The reason for this is an inadequacy in the defined interface between
- * the label manager and the output formats. The problem lies in how the
- * output format driver tells that a label is an external label for which
- * a label import record must be produced. Most (all except bin?) produce
- * the record if the segment number of the label is not one of the internal
- * segments that the output driver is producing.
- *
- * A simple fix to this would be to make the output formats keep track of
- * which symbols they've produced import records for, and make them not
- * produce import records for segments that are already defined.
- *
- * The best way, which is slightly harder but reduces duplication of code
- * and should therefore make the entire system smaller and more stable is
- * to change the interface between assembler, define_label(), and
- * the output module. The changes that are needed are:
- *
- * The semantics of the 'isextern' flag passed to define_label() need
- * examining. This information may or may not tell us what we need to
- * know (ie should we be generating an import record at this point for this
- * label). If these aren't the semantics, the semantics should be changed
- * to this.
- *
- * The output module interface needs changing, so that the `isextern' flag
- * is passed to the module, so that it can be easily tested for.
- */
--- a/nasmbuild/nasm-2.13rc9/asm/listing.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,339 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * listing.c    listing file generator for the Netwide Assembler
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "listing.h"
-
-#define LIST_MAX_LEN 216        /* something sensible */
-#define LIST_INDENT  40
-#define LIST_HEXBIT  18
-
-typedef struct MacroInhibit MacroInhibit;
-
-static struct MacroInhibit {
-    MacroInhibit *next;
-    int level;
-    int inhibiting;
-} *mistack;
-
-static char xdigit[] = "0123456789ABCDEF";
-
-#define HEX(a,b) (*(a)=xdigit[((b)>>4)&15],(a)[1]=xdigit[(b)&15]);
-
-static char listline[LIST_MAX_LEN];
-static bool listlinep;
-
-static char listerror[LIST_MAX_LEN];
-
-static char listdata[2 * LIST_INDENT];  /* we need less than that actually */
-static int32_t listoffset;
-
-static int32_t listlineno;
-
-static int32_t listp;
-
-static int suppress;            /* for INCBIN & TIMES special cases */
-
-static int listlevel, listlevel_e;
-
-static FILE *listfp;
-
-static void list_emit(void)
-{
-    int i;
-
-    if (!listlinep && !listdata[0])
-        return;
-
-    fprintf(listfp, "%6"PRId32" ", listlineno);
-
-    if (listdata[0])
-        fprintf(listfp, "%08"PRIX32" %-*s", listoffset, LIST_HEXBIT + 1,
-                listdata);
-    else
-        fprintf(listfp, "%*s", LIST_HEXBIT + 10, "");
-
-    if (listlevel_e)
-        fprintf(listfp, "%s<%d>", (listlevel < 10 ? " " : ""),
-                listlevel_e);
-    else if (listlinep)
-        fprintf(listfp, "    ");
-
-    if (listlinep)
-        fprintf(listfp, " %s", listline);
-
-    putc('\n', listfp);
-    listlinep = false;
-    listdata[0] = '\0';
-
-    if (listerror[0]) {
-	fprintf(listfp, "%6"PRId32"          ", listlineno);
-	for (i = 0; i < LIST_HEXBIT; i++)
-	    putc('*', listfp);
-	
-	if (listlevel_e)
-	    fprintf(listfp, " %s<%d>", (listlevel < 10 ? " " : ""),
-		    listlevel_e);
-	else
-	    fprintf(listfp, "     ");
-
-	fprintf(listfp, "  %s\n", listerror);
-	listerror[0] = '\0';
-    }
-}
-
-static void list_init(const char *fname)
-{
-    if (!fname || fname[0] == '\0') {
-	listfp = NULL;
-	return;
-    }
-
-    listfp = nasm_open_write(fname, NF_TEXT);
-    if (!listfp) {
-	nasm_error(ERR_NONFATAL, "unable to open listing file `%s'",
-		   fname);
-        return;
-    }
-
-    *listline = '\0';
-    listlineno = 0;
-    *listerror = '\0';
-    listp = true;
-    listlevel = 0;
-    suppress = 0;
-    mistack = nasm_malloc(sizeof(MacroInhibit));
-    mistack->next = NULL;
-    mistack->level = 0;
-    mistack->inhibiting = true;
-}
-
-static void list_cleanup(void)
-{
-    if (!listp)
-        return;
-
-    while (mistack) {
-        MacroInhibit *temp = mistack;
-        mistack = temp->next;
-        nasm_free(temp);
-    }
-
-    list_emit();
-    fclose(listfp);
-}
-
-static void list_out(int64_t offset, char *str)
-{
-    if (strlen(listdata) + strlen(str) > LIST_HEXBIT) {
-        strcat(listdata, "-");
-        list_emit();
-    }
-    if (!listdata[0])
-        listoffset = offset;
-    strcat(listdata, str);
-}
-
-static void list_address(int64_t offset, const char *brackets,
-			 int64_t addr, int size)
-{
-    char q[20];
-    char *r = q;
-
-    nasm_assert(size <= 8);
-
-    *r++ = brackets[0];
-    while (size--) {
-	HEX(r, addr);
-	addr >>= 8;
-	r += 2;
-    }
-    *r++ = brackets[1];
-    *r = '\0';
-    list_out(offset, q);
-}
-
-static void list_output(const struct out_data *data)
-{
-    char q[20];
-    uint64_t size = data->size;
-    uint64_t offset = data->offset;
-
-    if (!listp || suppress || user_nolist)
-        return;
-
-    switch (data->type) {
-    case OUT_RAWDATA:
-    {
-        const uint8_t *p = data->data;
-
-	if (size == 0 && !listdata[0])
-	    listoffset = data->offset;
-        while (size--) {
-            HEX(q, *p);
-            q[2] = '\0';
-            list_out(offset++, q);
-            p++;
-        }
-	break;
-    }
-    case OUT_ADDRESS:
-    case OUT_SEGMENT:
-      list_address(offset, "[]", data->toffset, size);
-	break;
-    case OUT_RELADDR:
-	list_address(offset, "()", data->toffset, size);
-	break;
-    case OUT_RESERVE:
-    {
-        snprintf(q, sizeof(q), "<res %08"PRIX64">", size);
-        list_out(offset, q);
-	break;
-    }
-    default:
-        panic();
-    }
-}
-
-static void list_line(int type, char *line)
-{
-    if (!listp)
-        return;
-
-    if (user_nolist)
-      return;
-
-    if (mistack && mistack->inhibiting) {
-        if (type == LIST_MACRO)
-            return;
-        else {                  /* pop the m i stack */
-            MacroInhibit *temp = mistack;
-            mistack = temp->next;
-            nasm_free(temp);
-        }
-    }
-    list_emit();
-    listlineno = src_get_linnum();
-    listlinep = true;
-    strncpy(listline, line, LIST_MAX_LEN - 1);
-    listline[LIST_MAX_LEN - 1] = '\0';
-    listlevel_e = listlevel;
-}
-
-static void list_uplevel(int type)
-{
-    if (!listp)
-        return;
-    if (type == LIST_INCBIN || type == LIST_TIMES) {
-        suppress |= (type == LIST_INCBIN ? 1 : 2);
-        list_out(listoffset, type == LIST_INCBIN ? "<incbin>" : "<rept>");
-        return;
-    }
-
-    listlevel++;
-
-    if (mistack && mistack->inhibiting && type == LIST_INCLUDE) {
-        MacroInhibit *temp = nasm_malloc(sizeof(MacroInhibit));
-        temp->next = mistack;
-        temp->level = listlevel;
-        temp->inhibiting = false;
-        mistack = temp;
-    } else if (type == LIST_MACRO_NOLIST) {
-        MacroInhibit *temp = nasm_malloc(sizeof(MacroInhibit));
-        temp->next = mistack;
-        temp->level = listlevel;
-        temp->inhibiting = true;
-        mistack = temp;
-    }
-}
-
-static void list_downlevel(int type)
-{
-    if (!listp)
-        return;
-
-    if (type == LIST_INCBIN || type == LIST_TIMES) {
-        suppress &= ~(type == LIST_INCBIN ? 1 : 2);
-        return;
-    }
-
-    listlevel--;
-    while (mistack && mistack->level > listlevel) {
-        MacroInhibit *temp = mistack;
-        mistack = temp->next;
-        nasm_free(temp);
-    }
-}
-
-static void list_error(int severity, const char *pfx, const char *msg)
-{
-    if (!listfp)
-	return;
-
-    snprintf(listerror, sizeof listerror, "%s%s", pfx, msg);
-
-    if ((severity & ERR_MASK) >= ERR_FATAL)
-	list_emit();
-}
-
-static void list_set_offset(uint64_t offset)
-{
-    listoffset = offset;
-}
-
-static const struct lfmt nasm_list = {
-    list_init,
-    list_cleanup,
-    list_output,
-    list_line,
-    list_uplevel,
-    list_downlevel,
-    list_error,
-    list_set_offset
-};
-
-const struct lfmt *lfmt = &nasm_list;
--- a/nasmbuild/nasm-2.13rc9/asm/listing.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,113 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/* 
- * listing.h   header file for listing.c
- */
-
-#ifndef NASM_LISTING_H
-#define NASM_LISTING_H
-
-/*
- * List-file generators should look like this:
- */
-struct lfmt {
-    /*
-     * Called to initialize the listing file generator. Before this
-     * is called, the other routines will silently do nothing when
-     * called. The `char *' parameter is the file name to write the
-     * listing to.
-     */
-    void (*init)(const char *fname);
-
-    /*
-     * Called to clear stuff up and close the listing file.
-     */
-    void (*cleanup)(void);
-
-    /*
-     * Called to output binary data. Parameters are: the offset;
-     * the data; the data type. Data types are similar to the
-     * output-format interface, only OUT_ADDRESS will _always_ be
-     * displayed as if it's relocatable, so ensure that any non-
-     * relocatable address has been converted to OUT_RAWDATA by
-     * then.
-     */
-    void (*output)(const struct out_data *data);
-
-    /*
-     * Called to send a text line to the listing generator. The
-     * `int' parameter is LIST_READ or LIST_MACRO depending on
-     * whether the line came directly from an input file or is the
-     * result of a multi-line macro expansion.
-     */
-    void (*line)(int type, char *line);
-
-    /*
-     * Called to change one of the various levelled mechanisms in
-     * the listing generator. LIST_INCLUDE and LIST_MACRO can be
-     * used to increase the nesting level of include files and
-     * macro expansions; LIST_TIMES and LIST_INCBIN switch on the
-     * two binary-output-suppression mechanisms for large-scale
-     * pseudo-instructions.
-     *
-     * LIST_MACRO_NOLIST is synonymous with LIST_MACRO except that
-     * it indicates the beginning of the expansion of a `nolist'
-     * macro, so anything under that level won't be expanded unless
-     * it includes another file.
-     */
-    void (*uplevel)(int type);
-
-    /*
-     * Reverse the effects of uplevel.
-     */
-    void (*downlevel)(int type);
-
-    /*
-     * Called on a warning or error, with the error message.
-     */
-    void (*error)(int severity, const char *pfx, const char *msg);
-
-    /*
-     * Update the current offset.  Used to give the listing generator
-     * an offset to work with when doing things like
-     * uplevel(LIST_TIMES) or uplevel(LIST_INCBIN); see
-     * list_set_offset();
-     */
-    void (*set_offset)(uint64_t offset);
-};
-
-extern const struct lfmt *lfmt;
-extern bool user_nolist;
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/asm/nasm.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1699 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * The Netwide Assembler main program module
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <limits.h>
-#include <time.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "saa.h"
-#include "raa.h"
-#include "float.h"
-#include "stdscan.h"
-#include "insns.h"
-#include "preproc.h"
-#include "parser.h"
-#include "eval.h"
-#include "assemble.h"
-#include "labels.h"
-#include "outform.h"
-#include "listing.h"
-#include "iflag.h"
-#include "ver.h"
-
-/*
- * This is the maximum number of optimization passes to do.  If we ever
- * find a case where the optimizer doesn't naturally converge, we might
- * have to drop this value so the assembler doesn't appear to just hang.
- */
-#define MAX_OPTIMIZE (INT_MAX >> 1)
-
-struct forwrefinfo {            /* info held on forward refs. */
-    int lineno;
-    int operand;
-};
-
-static void parse_cmdline(int, char **, int);
-static void assemble_file(char *, StrList **);
-static bool is_suppressed_warning(int severity);
-static bool skip_this_pass(int severity);
-static void nasm_verror_gnu(int severity, const char *fmt, va_list args);
-static void nasm_verror_vc(int severity, const char *fmt, va_list args);
-static void nasm_verror_common(int severity, const char *fmt, va_list args);
-static void usage(void);
-
-static bool using_debug_info, opt_verbose_info;
-static const char *debug_format;
-
-bool tasm_compatible_mode = false;
-int pass0, passn;
-static int pass1, pass2;	/* XXX: Get rid of these, they are redundant */
-int globalrel = 0;
-int globalbnd = 0;
-
-static time_t official_compile_time;
-
-static char inname[FILENAME_MAX];
-static char outname[FILENAME_MAX];
-static char listname[FILENAME_MAX];
-static char errname[FILENAME_MAX];
-static int globallineno;        /* for forward-reference tracking */
-/* static int pass = 0; */
-const struct ofmt *ofmt = &OF_DEFAULT;
-const struct ofmt_alias *ofmt_alias = NULL;
-const struct dfmt *dfmt;
-
-static FILE *error_file;        /* Where to write error messages */
-
-FILE *ofile = NULL;
-int optimizing = MAX_OPTIMIZE; /* number of optimization passes to take */
-static int cmd_sb = 16;    /* by default */
-
-iflag_t cpu;
-static iflag_t cmd_cpu;
-
-struct location location;
-bool in_absolute;                 /* Flag we are in ABSOLUTE seg */
-struct location absolute;         /* Segment/offset inside ABSOLUTE */
-
-static struct RAA *offsets;
-
-static struct SAA *forwrefs;    /* keep track of forward references */
-static const struct forwrefinfo *forwref;
-
-static const struct preproc_ops *preproc;
-
-#define OP_NORMAL           (1u << 0)
-#define OP_PREPROCESS       (1u << 1)
-#define OP_DEPEND           (1u << 2)
-
-static unsigned int operating_mode;
-
-/* Dependency flags */
-static bool depend_emit_phony = false;
-static bool depend_missing_ok = false;
-static const char *depend_target = NULL;
-static const char *depend_file = NULL;
-
-static bool want_usage;
-static bool terminate_after_phase;
-bool user_nolist = false;
-
-static char *quote_for_make(const char *str);
-
-static int64_t get_curr_offs(void)
-{
-    return in_absolute ? absolute.offset : raa_read(offsets, location.segment);
-}
-
-static void set_curr_offs(int64_t l_off)
-{
-        if (in_absolute)
-            absolute.offset = l_off;
-        else
-            offsets = raa_write(offsets, location.segment, l_off);
-}
-
-static void nasm_fputs(const char *line, FILE * outfile)
-{
-    if (outfile) {
-        fputs(line, outfile);
-        putc('\n', outfile);
-    } else
-        puts(line);
-}
-
-/* Convert a struct tm to a POSIX-style time constant */
-static int64_t make_posix_time(struct tm *tm)
-{
-    int64_t t;
-    int64_t y = tm->tm_year;
-
-    /* See IEEE 1003.1:2004, section 4.14 */
-
-    t = (y-70)*365 + (y-69)/4 - (y-1)/100 + (y+299)/400;
-    t += tm->tm_yday;
-    t *= 24;
-    t += tm->tm_hour;
-    t *= 60;
-    t += tm->tm_min;
-    t *= 60;
-    t += tm->tm_sec;
-
-    return t;
-}
-
-static void define_macros_early(void)
-{
-    char temp[128];
-    struct tm lt, *lt_p, gm, *gm_p;
-    int64_t posix_time;
-
-    lt_p = localtime(&official_compile_time);
-    if (lt_p) {
-        lt = *lt_p;
-
-        strftime(temp, sizeof temp, "__DATE__=\"%Y-%m-%d\"", &lt);
-        preproc->pre_define(temp);
-        strftime(temp, sizeof temp, "__DATE_NUM__=%Y%m%d", &lt);
-        preproc->pre_define(temp);
-        strftime(temp, sizeof temp, "__TIME__=\"%H:%M:%S\"", &lt);
-        preproc->pre_define(temp);
-        strftime(temp, sizeof temp, "__TIME_NUM__=%H%M%S", &lt);
-        preproc->pre_define(temp);
-    }
-
-    gm_p = gmtime(&official_compile_time);
-    if (gm_p) {
-        gm = *gm_p;
-
-        strftime(temp, sizeof temp, "__UTC_DATE__=\"%Y-%m-%d\"", &gm);
-        preproc->pre_define(temp);
-        strftime(temp, sizeof temp, "__UTC_DATE_NUM__=%Y%m%d", &gm);
-        preproc->pre_define(temp);
-        strftime(temp, sizeof temp, "__UTC_TIME__=\"%H:%M:%S\"", &gm);
-        preproc->pre_define(temp);
-        strftime(temp, sizeof temp, "__UTC_TIME_NUM__=%H%M%S", &gm);
-        preproc->pre_define(temp);
-    }
-
-    if (gm_p)
-        posix_time = make_posix_time(&gm);
-    else if (lt_p)
-        posix_time = make_posix_time(&lt);
-    else
-        posix_time = 0;
-
-    if (posix_time) {
-        snprintf(temp, sizeof temp, "__POSIX_TIME__=%"PRId64, posix_time);
-        preproc->pre_define(temp);
-    }
-}
-
-static void define_macros_late(void)
-{
-    char temp[128];
-
-    /*
-     * In case if output format is defined by alias
-     * we have to put shortname of the alias itself here
-     * otherwise ABI backward compatibility gets broken.
-     */
-    snprintf(temp, sizeof(temp), "__OUTPUT_FORMAT__=%s",
-             ofmt_alias ? ofmt_alias->shortname : ofmt->shortname);
-    preproc->pre_define(temp);
-}
-
-static void emit_dependencies(StrList *list)
-{
-    FILE *deps;
-    int linepos, len;
-    StrList *l, *nl;
-
-    if (depend_file && strcmp(depend_file, "-")) {
-        deps = nasm_open_write(depend_file, NF_TEXT);
-        if (!deps) {
-            nasm_error(ERR_NONFATAL|ERR_NOFILE|ERR_USAGE,
-                       "unable to write dependency file `%s'", depend_file);
-            return;
-        }
-    } else {
-        deps = stdout;
-    }
-
-    linepos = fprintf(deps, "%s:", depend_target);
-    list_for_each(l, list) {
-        char *file = quote_for_make(l->str);
-        len = strlen(file);
-        if (linepos + len > 62 && linepos > 1) {
-            fprintf(deps, " \\\n ");
-            linepos = 1;
-        }
-        fprintf(deps, " %s", file);
-        linepos += len+1;
-        nasm_free(file);
-    }
-    fprintf(deps, "\n\n");
-
-    list_for_each_safe(l, nl, list) {
-        if (depend_emit_phony)
-            fprintf(deps, "%s:\n\n", l->str);
-        nasm_free(l);
-    }
-
-    if (deps != stdout)
-        fclose(deps);
-}
-
-int main(int argc, char **argv)
-{
-    StrList *depend_list = NULL, **depend_ptr;
-
-    time(&official_compile_time);
-
-    iflag_set(&cpu, IF_PLEVEL);
-    iflag_set(&cmd_cpu, IF_PLEVEL);
-
-    pass0 = 0;
-    want_usage = terminate_after_phase = false;
-    nasm_set_verror(nasm_verror_gnu);
-
-    error_file = stderr;
-
-    tolower_init();
-    src_init();
-
-    offsets = raa_init();
-    forwrefs = saa_init((int32_t)sizeof(struct forwrefinfo));
-
-    preproc = &nasmpp;
-    operating_mode = OP_NORMAL;
-
-    parse_cmdline(argc, argv, 1);
-    if (terminate_after_phase) {
-        if (want_usage)
-            usage();
-        return 1;
-    }
-
-    /*
-     * Define some macros dependent on the runtime, but not
-     * on the command line (as those are scanned in cmdline pass 2.)
-     */
-    preproc->init();
-    define_macros_early();
-
-    parse_cmdline(argc, argv, 2);
-    if (terminate_after_phase) {
-        if (want_usage)
-            usage();
-        return 1;
-    }
-
-    /* Save away the default state of warnings */
-    memcpy(warning_state_init, warning_state, sizeof warning_state);
-
-    if (!using_debug_info) {
-        /* No debug info, redirect to the null backend (empty stubs) */
-        dfmt = &null_debug_form;
-    } else if (!debug_format) {
-        /* Default debug format for this backend */
-	dfmt = ofmt->default_dfmt;
-    } else {
-        dfmt = dfmt_find(ofmt, debug_format);
-        if (!dfmt) {
-            nasm_fatal(ERR_NOFILE | ERR_USAGE,
-                       "unrecognized debug format `%s' for"
-                       " output format `%s'",
-                       debug_format, ofmt->shortname);
-        }
-    }
-
-    if (ofmt->stdmac)
-        preproc->extra_stdmac(ofmt->stdmac);
-
-    /* define some macros dependent of command-line */
-    define_macros_late();
-
-    depend_ptr = (depend_file || (operating_mode & OP_DEPEND)) ? &depend_list : NULL;
-    if (!depend_target)
-        depend_target = quote_for_make(outname);
-
-    if (operating_mode & OP_DEPEND) {
-            char *line;
-
-            if (depend_missing_ok)
-                preproc->include_path(NULL);    /* "assume generated" */
-
-            preproc->reset(inname, 0, depend_ptr);
-            if (outname[0] == '\0')
-                ofmt->filename(inname, outname);
-            ofile = NULL;
-            while ((line = preproc->getline()))
-                nasm_free(line);
-            preproc->cleanup(0);
-    } else if (operating_mode & OP_PREPROCESS) {
-            char *line;
-            const char *file_name = NULL;
-            int32_t prior_linnum = 0;
-            int lineinc = 0;
-
-            if (*outname) {
-                ofile = nasm_open_write(outname, NF_TEXT);
-                if (!ofile)
-                    nasm_fatal(ERR_NOFILE,
-                                 "unable to open output file `%s'",
-                                 outname);
-            } else
-                ofile = NULL;
-
-            location.known = false;
-
-            /* pass = 1; */
-            preproc->reset(inname, 3, depend_ptr);
-
-	    /* Revert all warnings to the default state */
-	    memcpy(warning_state, warning_state_init, sizeof warning_state);
-
-            while ((line = preproc->getline())) {
-                /*
-                 * We generate %line directives if needed for later programs
-                 */
-                int32_t linnum = prior_linnum += lineinc;
-                int altline = src_get(&linnum, &file_name);
-                if (altline) {
-                    if (altline == 1 && lineinc == 1)
-                        nasm_fputs("", ofile);
-                    else {
-                        lineinc = (altline != -1 || lineinc != 1);
-                        fprintf(ofile ? ofile : stdout,
-                                "%%line %"PRId32"+%d %s\n", linnum, lineinc,
-                                file_name);
-                    }
-                    prior_linnum = linnum;
-                }
-                nasm_fputs(line, ofile);
-                nasm_free(line);
-            }
-            preproc->cleanup(0);
-            if (ofile)
-                fclose(ofile);
-            if (ofile && terminate_after_phase)
-                remove(outname);
-            ofile = NULL;
-    }
-
-    if (operating_mode & OP_NORMAL) {
-        /*
-         * We must call ofmt->filename _anyway_, even if the user
-         * has specified their own output file, because some
-         * formats (eg OBJ and COFF) use ofmt->filename to find out
-         * the name of the input file and then put that inside the
-         * file.
-         */
-        ofmt->filename(inname, outname);
-
-        ofile = nasm_open_write(outname, (ofmt->flags & OFMT_TEXT) ? NF_TEXT : NF_BINARY);
-        if (!ofile)
-            nasm_fatal(ERR_NOFILE,
-                       "unable to open output file `%s'", outname);
-
-        /*
-         * We must call init_labels() before ofmt->init() since
-         * some object formats will want to define labels in their
-         * init routines. (eg OS/2 defines the FLAT group)
-         */
-        init_labels();
-
-        ofmt->init();
-        dfmt->init();
-
-        assemble_file(inname, depend_ptr);
-
-        if (!terminate_after_phase) {
-            ofmt->cleanup();
-            cleanup_labels();
-            fflush(ofile);
-            if (ferror(ofile)) {
-                nasm_error(ERR_NONFATAL|ERR_NOFILE,
-                           "write error on output file `%s'", outname);
-                terminate_after_phase = true;
-            }
-        }
-
-        if (ofile) {
-            fclose(ofile);
-            if (terminate_after_phase)
-                remove(outname);
-            ofile = NULL;
-        }
-    }
-
-    if (depend_list && !terminate_after_phase)
-        emit_dependencies(depend_list);
-
-    if (want_usage)
-        usage();
-
-    raa_free(offsets);
-    saa_free(forwrefs);
-    eval_cleanup();
-    stdscan_cleanup();
-    src_free();
-
-    return terminate_after_phase;
-}
-
-/*
- * Get a parameter for a command line option.
- * First arg must be in the form of e.g. -f...
- */
-static char *get_param(char *p, char *q, bool *advance)
-{
-    *advance = false;
-    if (p[2]) /* the parameter's in the option */
-        return nasm_skip_spaces(p + 2);
-    if (q && q[0]) {
-        *advance = true;
-        return q;
-    }
-    nasm_error(ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
-                 "option `-%c' requires an argument", p[1]);
-    return NULL;
-}
-
-/*
- * Copy a filename
- */
-static void copy_filename(char *dst, const char *src)
-{
-    size_t len = strlen(src);
-
-    if (len >= (size_t)FILENAME_MAX) {
-        nasm_fatal(ERR_NOFILE, "file name too long");
-        return;
-    }
-    strncpy(dst, src, FILENAME_MAX);
-}
-
-/*
- * Convert a string to Make-safe form
- */
-static char *quote_for_make(const char *str)
-{
-    const char *p;
-    char *os, *q;
-
-    size_t n = 1; /* Terminating zero */
-    size_t nbs = 0;
-
-    if (!str)
-        return NULL;
-
-    for (p = str; *p; p++) {
-        switch (*p) {
-        case ' ':
-        case '\t':
-            /* Convert N backslashes + ws -> 2N+1 backslashes + ws */
-            n += nbs + 2;
-            nbs = 0;
-            break;
-        case '$':
-        case '#':
-            nbs = 0;
-            n += 2;
-            break;
-        case '\\':
-            nbs++;
-            n++;
-            break;
-        default:
-            nbs = 0;
-            n++;
-            break;
-        }
-    }
-
-    /* Convert N backslashes at the end of filename to 2N backslashes */
-    if (nbs)
-        n += nbs;
-
-    os = q = nasm_malloc(n);
-
-    nbs = 0;
-    for (p = str; *p; p++) {
-        switch (*p) {
-        case ' ':
-        case '\t':
-            while (nbs--)
-                *q++ = '\\';
-            *q++ = '\\';
-            *q++ = *p;
-            break;
-        case '$':
-            *q++ = *p;
-            *q++ = *p;
-            nbs = 0;
-            break;
-        case '#':
-            *q++ = '\\';
-            *q++ = *p;
-            nbs = 0;
-            break;
-        case '\\':
-            *q++ = *p;
-            nbs++;
-            break;
-        default:
-            *q++ = *p;
-            nbs = 0;
-            break;
-        }
-    }
-    while (nbs--)
-        *q++ = '\\';
-
-    *q = '\0';
-
-    return os;
-}
-
-struct textargs {
-    const char *label;
-    int value;
-};
-
-enum text_options {
-    OPT_PREFIX,
-    OPT_POSTFIX
-};
-static const struct textargs textopts[] = {
-    {"prefix", OPT_PREFIX},
-    {"postfix", OPT_POSTFIX},
-    {NULL, 0}
-};
-
-static void show_version(void)
-{
-    printf("NASM version %s compiled on %s%s\n",
-           nasm_version, nasm_date, nasm_compile_options);
-    exit(0);
-}
-
-static bool stopoptions = false;
-static bool process_arg(char *p, char *q, int pass)
-{
-    char *param;
-    int i;
-    bool advance = false;
-
-    if (!p || !p[0])
-        return false;
-
-    if (p[0] == '-' && !stopoptions) {
-        if (strchr("oOfpPdDiIlFXuUZwW", p[1])) {
-            /* These parameters take values */
-            if (!(param = get_param(p, q, &advance)))
-                return advance;
-        }
-
-        switch (p[1]) {
-        case 's':
-            if (pass == 1)
-                error_file = stdout;
-            break;
-
-        case 'o':       /* output file */
-            if (pass == 2)
-                copy_filename(outname, param);
-            break;
-
-        case 'f':       /* output format */
-            if (pass == 1) {
-                ofmt = ofmt_find(param, &ofmt_alias);
-                if (!ofmt) {
-                    nasm_fatal(ERR_NOFILE | ERR_USAGE,
-                               "unrecognised output format `%s' - "
-                               "use -hf for a list", param);
-                }
-            }
-            break;
-
-        case 'O':       /* Optimization level */
-            if (pass == 2) {
-                int opt;
-
-                if (!*param) {
-                    /* Naked -O == -Ox */
-                    optimizing = MAX_OPTIMIZE;
-                } else {
-                    while (*param) {
-                        switch (*param) {
-                        case '0': case '1': case '2': case '3': case '4':
-                        case '5': case '6': case '7': case '8': case '9':
-                            opt = strtoul(param, &param, 10);
-
-                            /* -O0 -> optimizing == -1, 0.98 behaviour */
-                            /* -O1 -> optimizing == 0, 0.98.09 behaviour */
-                            if (opt < 2)
-                                optimizing = opt - 1;
-                            else
-                                optimizing = opt;
-                            break;
-
-                        case 'v':
-                        case '+':
-                        param++;
-                        opt_verbose_info = true;
-                        break;
-
-                        case 'x':
-                            param++;
-                            optimizing = MAX_OPTIMIZE;
-                            break;
-
-                        default:
-                            nasm_fatal(0,
-                                       "unknown optimization option -O%c\n",
-                                       *param);
-                            break;
-                        }
-                    }
-                    if (optimizing > MAX_OPTIMIZE)
-                        optimizing = MAX_OPTIMIZE;
-                }
-            }
-            break;
-
-        case 'p':       /* pre-include */
-        case 'P':
-            if (pass == 2)
-                preproc->pre_include(param);
-            break;
-
-        case 'd':       /* pre-define */
-        case 'D':
-            if (pass == 2)
-                preproc->pre_define(param);
-            break;
-
-        case 'u':       /* un-define */
-        case 'U':
-            if (pass == 2)
-                preproc->pre_undefine(param);
-            break;
-
-        case 'i':       /* include search path */
-        case 'I':
-            if (pass == 2)
-                preproc->include_path(param);
-            break;
-
-        case 'l':       /* listing file */
-            if (pass == 2)
-                copy_filename(listname, param);
-            break;
-
-        case 'Z':       /* error messages file */
-            if (pass == 1)
-                copy_filename(errname, param);
-            break;
-
-        case 'F':       /* specify debug format */
-            if (pass == 2) {
-                using_debug_info = true;
-                debug_format = param;
-            }
-            break;
-
-        case 'X':       /* specify error reporting format */
-            if (pass == 1) {
-                if (nasm_stricmp("vc", param) == 0)
-                    nasm_set_verror(nasm_verror_vc);
-                else if (nasm_stricmp("gnu", param) == 0)
-                    nasm_set_verror(nasm_verror_gnu);
-                else
-                    nasm_fatal(ERR_NOFILE | ERR_USAGE,
-                               "unrecognized error reporting format `%s'",
-                               param);
-            }
-            break;
-
-        case 'g':
-            if (pass == 2) {
-                using_debug_info = true;
-                if (p[2])
-                    debug_format = nasm_skip_spaces(p + 2);
-            }
-            break;
-
-        case 'h':
-            printf
-                ("usage: nasm [-@ response file] [-o outfile] [-f format] "
-                 "[-l listfile]\n"
-                 "            [options...] [--] filename\n"
-                 "    or nasm -v (or --v) for version info\n\n"
-                 "    -t          assemble in SciTech TASM compatible mode\n");
-            printf
-                ("    -E (or -e)  preprocess only (writes output to stdout by default)\n"
-                 "    -a          don't preprocess (assemble only)\n"
-                 "    -M          generate Makefile dependencies on stdout\n"
-                 "    -MG         d:o, missing files assumed generated\n"
-                 "    -MF <file>  set Makefile dependency file\n"
-                 "    -MD <file>  assemble and generate dependencies\n"
-                 "    -MT <file>  dependency target name\n"
-                 "    -MQ <file>  dependency target name (quoted)\n"
-                 "    -MP         emit phony target\n\n"
-                 "    -Z<file>    redirect error messages to file\n"
-                 "    -s          redirect error messages to stdout\n\n"
-                 "    -g          generate debugging information\n\n"
-                 "    -F format   select a debugging format\n\n"
-                 "    -gformat    same as -g -F format\n\n"
-                 "    -o outfile  write output to an outfile\n\n"
-                 "    -f format   select an output format\n\n"
-                 "    -l listfile write listing to a listfile\n\n"
-                 "    -I<path>    adds a pathname to the include file path\n");
-            printf
-                ("    -O<digit>   optimize branch offsets\n"
-                 "                -O0: No optimization\n"
-                 "                -O1: Minimal optimization\n"
-                 "                -Ox: Multipass optimization (default)\n\n"
-                 "    -P<file>    pre-includes a file\n"
-                 "    -D<macro>[=<value>] pre-defines a macro\n"
-                 "    -U<macro>   undefines a macro\n"
-                 "    -X<format>  specifies error reporting format (gnu or vc)\n"
-                 "    -w+foo      enables warning foo (equiv. -Wfoo)\n"
-                 "    -w-foo      disable warning foo (equiv. -Wno-foo)\n\n"
-                 "    -w[+-]error[=foo] can be used to promote warnings to errors\n"
-                "    -h           show invocation summary and exit\n\n"
-                 "--prefix,--postfix\n"
-                 "                these options prepend or append the given string\n"
-                 "                to all extern and global variables\n"
-		 "\n"
-		 "Response files should contain command line parameters,\n"
-                 "one per line.\n"
-		 "\n"
-                 "Warnings for the -W/-w options:\n");
-            for (i = 0; i <= ERR_WARN_ALL; i++)
-                printf("    %-23s %s%s\n",
-                       warnings[i].name, warnings[i].help,
-		       i == ERR_WARN_ALL ? "\n" :
-                       warnings[i].enabled ? " (default on)" :
-		       " (default off)");
-            if (p[2] == 'f') {
-                printf("valid output formats for -f are"
-                       " (`*' denotes default):\n");
-                ofmt_list(ofmt, stdout);
-            } else {
-                printf("For a list of valid output formats, use -hf.\n");
-                printf("For a list of debug formats, use -f <form> -y.\n");
-            }
-            exit(0);    /* never need usage message here */
-            break;
-
-        case 'y':
-            printf("\nvalid debug formats for '%s' output format are"
-                   " ('*' denotes default):\n", ofmt->shortname);
-            dfmt_list(ofmt, stdout);
-            exit(0);
-            break;
-
-        case 't':
-            if (pass == 2)
-                tasm_compatible_mode = true;
-            break;
-
-        case 'v':
-            show_version();
-            break;
-
-        case 'e':       /* preprocess only */
-        case 'E':
-            if (pass == 1)
-                operating_mode = OP_PREPROCESS;
-            break;
-
-        case 'a':       /* assemble only - don't preprocess */
-            if (pass == 1)
-                preproc = &preproc_nop;
-            break;
-
-        case 'w':
-        case 'W':
-            if (pass == 2) {
-                if (!set_warning_status(param)) {
-                    nasm_error(ERR_WARNING|ERR_NOFILE|ERR_WARN_UNK_WARNING,
-			       "unknown warning option: %s", param);
-                }
-            }
-        break;
-
-        case 'M':
-            if (pass == 2) {
-                switch (p[2]) {
-                case 0:
-                    operating_mode = OP_DEPEND;
-                    break;
-                case 'G':
-                    operating_mode = OP_DEPEND;
-                    depend_missing_ok = true;
-                    break;
-                case 'P':
-                    depend_emit_phony = true;
-                    break;
-                case 'D':
-                    operating_mode = OP_NORMAL;
-                    depend_file = q;
-                    advance = true;
-                    break;
-                case 'F':
-                    depend_file = q;
-                    advance = true;
-                    break;
-                case 'T':
-                    depend_target = q;
-                    advance = true;
-                    break;
-                case 'Q':
-                    depend_target = quote_for_make(q);
-                    advance = true;
-                    break;
-                default:
-                    nasm_error(ERR_NONFATAL|ERR_NOFILE|ERR_USAGE,
-                               "unknown dependency option `-M%c'", p[2]);
-                    break;
-                }
-                if (advance && (!q || !q[0])) {
-                    nasm_error(ERR_NONFATAL|ERR_NOFILE|ERR_USAGE,
-                               "option `-M%c' requires a parameter", p[2]);
-                    break;
-                }
-            }
-            break;
-
-        case '-':
-            {
-                int s;
-
-                if (p[2] == 0) {        /* -- => stop processing options */
-                    stopoptions = 1;
-                    break;
-                }
-
-                if (!nasm_stricmp(p, "--v"))
-                    show_version();
-
-                if (!nasm_stricmp(p, "--version"))
-                    show_version();
-
-                for (s = 0; textopts[s].label; s++) {
-                    if (!nasm_stricmp(p + 2, textopts[s].label)) {
-                        break;
-                    }
-                }
-
-                switch (s) {
-
-                case OPT_PREFIX:
-                case OPT_POSTFIX:
-                    {
-                        if (!q) {
-                            nasm_error(ERR_NONFATAL | ERR_NOFILE |
-                                         ERR_USAGE,
-                                         "option `--%s' requires an argument",
-                                         p + 2);
-                            break;
-                        } else {
-                            advance = 1, param = q;
-                        }
-
-                        switch (s) {
-                        case OPT_PREFIX:
-                            if (pass == 2)
-                                strlcpy(lprefix, param, PREFIX_MAX);
-                            break;
-                        case OPT_POSTFIX:
-                            if (pass == 2)
-                                strlcpy(lpostfix, param, POSTFIX_MAX);
-                            break;
-                        default:
-                            nasm_panic(ERR_NOFILE,
-                                       "internal error");
-                            break;
-                        }
-                        break;
-                    }
-
-                default:
-                    {
-                        nasm_error(ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
-                                     "unrecognised option `--%s'", p + 2);
-                        break;
-                    }
-                }
-                break;
-            }
-
-        default:
-            if (!ofmt->setinfo(GI_SWITCH, &p))
-                nasm_error(ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
-                             "unrecognised option `-%c'", p[1]);
-            break;
-        }
-    } else if (pass == 2) {
-        if (*inname) {
-            nasm_error(ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
-                         "more than one input file specified");
-        } else {
-            copy_filename(inname, p);
-        }
-    }
-
-    return advance;
-}
-
-#define ARG_BUF_DELTA 128
-
-static void process_respfile(FILE * rfile, int pass)
-{
-    char *buffer, *p, *q, *prevarg;
-    int bufsize, prevargsize;
-
-    bufsize = prevargsize = ARG_BUF_DELTA;
-    buffer = nasm_malloc(ARG_BUF_DELTA);
-    prevarg = nasm_malloc(ARG_BUF_DELTA);
-    prevarg[0] = '\0';
-
-    while (1) {                 /* Loop to handle all lines in file */
-        p = buffer;
-        while (1) {             /* Loop to handle long lines */
-            q = fgets(p, bufsize - (p - buffer), rfile);
-            if (!q)
-                break;
-            p += strlen(p);
-            if (p > buffer && p[-1] == '\n')
-                break;
-            if (p - buffer > bufsize - 10) {
-                int offset;
-                offset = p - buffer;
-                bufsize += ARG_BUF_DELTA;
-                buffer = nasm_realloc(buffer, bufsize);
-                p = buffer + offset;
-            }
-        }
-
-        if (!q && p == buffer) {
-            if (prevarg[0])
-                process_arg(prevarg, NULL, pass);
-            nasm_free(buffer);
-            nasm_free(prevarg);
-            return;
-        }
-
-        /*
-         * Play safe: remove CRs, LFs and any spurious ^Zs, if any of
-         * them are present at the end of the line.
-         */
-        *(p = &buffer[strcspn(buffer, "\r\n\032")]) = '\0';
-
-        while (p > buffer && nasm_isspace(p[-1]))
-            *--p = '\0';
-
-        p = nasm_skip_spaces(buffer);
-
-        if (process_arg(prevarg, p, pass))
-            *p = '\0';
-
-        if ((int) strlen(p) > prevargsize - 10) {
-            prevargsize += ARG_BUF_DELTA;
-            prevarg = nasm_realloc(prevarg, prevargsize);
-        }
-        strncpy(prevarg, p, prevargsize);
-    }
-}
-
-/* Function to process args from a string of args, rather than the
- * argv array. Used by the environment variable and response file
- * processing.
- */
-static void process_args(char *args, int pass)
-{
-    char *p, *q, *arg, *prevarg;
-    char separator = ' ';
-
-    p = args;
-    if (*p && *p != '-')
-        separator = *p++;
-    arg = NULL;
-    while (*p) {
-        q = p;
-        while (*p && *p != separator)
-            p++;
-        while (*p == separator)
-            *p++ = '\0';
-        prevarg = arg;
-        arg = q;
-        if (process_arg(prevarg, arg, pass))
-            arg = NULL;
-    }
-    if (arg)
-        process_arg(arg, NULL, pass);
-}
-
-static void process_response_file(const char *file, int pass)
-{
-    char str[2048];
-    FILE *f = nasm_open_read(file, NF_TEXT);
-    if (!f) {
-        perror(file);
-        exit(-1);
-    }
-    while (fgets(str, sizeof str, f)) {
-        process_args(str, pass);
-    }
-    fclose(f);
-}
-
-static void parse_cmdline(int argc, char **argv, int pass)
-{
-    FILE *rfile;
-    char *envreal, *envcopy = NULL, *p;
-    int i;
-
-    *inname = *outname = *listname = *errname = '\0';
-
-    /* Initialize all the warnings to their default state */
-    for (i = 0; i < ERR_WARN_ALL; i++) {
-        warning_state_init[i] = warning_state[i] =
-	    warnings[i].enabled ? WARN_ST_ENABLED : 0;
-    }
-
-    /*
-     * First, process the NASMENV environment variable.
-     */
-    envreal = getenv("NASMENV");
-    if (envreal) {
-        envcopy = nasm_strdup(envreal);
-        process_args(envcopy, pass);
-        nasm_free(envcopy);
-    }
-
-    /*
-     * Now process the actual command line.
-     */
-    while (--argc) {
-        bool advance;
-        argv++;
-        if (argv[0][0] == '@') {
-            /*
-             * We have a response file, so process this as a set of
-             * arguments like the environment variable. This allows us
-             * to have multiple arguments on a single line, which is
-             * different to the -@resp file processing below for regular
-             * NASM.
-             */
-            process_response_file(argv[0]+1, pass);
-            argc--;
-            argv++;
-        }
-        if (!stopoptions && argv[0][0] == '-' && argv[0][1] == '@') {
-            p = get_param(argv[0], argc > 1 ? argv[1] : NULL, &advance);
-            if (p) {
-                rfile = nasm_open_read(p, NF_TEXT);
-                if (rfile) {
-                    process_respfile(rfile, pass);
-                    fclose(rfile);
-                } else
-                    nasm_error(ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
-                                 "unable to open response file `%s'", p);
-            }
-        } else
-            advance = process_arg(argv[0], argc > 1 ? argv[1] : NULL, pass);
-        argv += advance, argc -= advance;
-    }
-
-    /*
-     * Look for basic command line typos. This definitely doesn't
-     * catch all errors, but it might help cases of fumbled fingers.
-     */
-    if (pass != 2)
-        return;
-
-    if (!*inname)
-        nasm_error(ERR_NONFATAL | ERR_NOFILE | ERR_USAGE,
-                   "no input file specified");
-    else if (!strcmp(inname, errname)   ||
-             !strcmp(inname, outname)   ||
-             !strcmp(inname, listname)  ||
-             (depend_file && !strcmp(inname, depend_file)))
-        nasm_fatal(ERR_NOFILE | ERR_USAGE,
-                   "file `%s' is both input and output file",
-                   inname);
-
-    if (*errname) {
-        error_file = nasm_open_write(errname, NF_TEXT);
-        if (!error_file) {
-            error_file = stderr;        /* Revert to default! */
-            nasm_fatal(ERR_NOFILE | ERR_USAGE,
-                       "cannot open file `%s' for error messages",
-                       errname);
-        }
-    }
-}
-
-static void assemble_file(char *fname, StrList **depend_ptr)
-{
-    char *line;
-    insn output_ins;
-    int i;
-    int64_t offs;
-    int pass_max;
-    uint64_t prev_offset_changed;
-    unsigned int stall_count = 0; /* Make sure we make forward progress... */
-
-    if (cmd_sb == 32 && iflag_ffs(&cmd_cpu) < IF_386)
-	nasm_fatal(0, "command line: 32-bit segment size requires a higher cpu");
-
-    pass_max = prev_offset_changed = (INT_MAX >> 1) + 2; /* Almost unlimited */
-    for (passn = 1; pass0 <= 2; passn++) {
-        ldfunc def_label;
-
-        pass1 = pass0 == 2 ? 2 : 1;     /* 1, 1, 1, ..., 1, 2 */
-        pass2 = passn > 1  ? 2 : 1;     /* 1, 2, 2, ..., 2, 2 */
-        /* pass0                           0, 0, 0, ..., 1, 2 */
-
-        def_label = passn > 1 ? redefine_label : define_label;
-
-        globalbits = cmd_sb;  /* set 'bits' to command line default */
-        cpu = cmd_cpu;
-        if (pass0 == 2) {
-	    lfmt->init(listname);
-        }
-        in_absolute = false;
-        global_offset_changed = 0;  /* set by redefine_label */
-        location.segment = ofmt->section(NULL, pass2, &globalbits);
-        if (passn > 1) {
-            saa_rewind(forwrefs);
-            forwref = saa_rstruct(forwrefs);
-            raa_free(offsets);
-            offsets = raa_init();
-        }
-        preproc->reset(fname, pass1, pass1 == 2 ? depend_ptr : NULL);
-
-	/* Revert all warnings to the default state */
-	memcpy(warning_state, warning_state_init, sizeof warning_state);
-
-        globallineno = 0;
-        if (passn == 1)
-            location.known = true;
-        location.offset = offs = get_curr_offs();
-
-        while ((line = preproc->getline())) {
-            globallineno++;
-
-            /*
-             * Here we parse our directives; this is not handled by the
-             * main parser.
-             */
-            if (process_directives(line))
-                goto end_of_line; /* Just do final cleanup */
-
-            /* Not a directive, or even something that starts with [ */
-
-            parse_line(pass1, line, &output_ins, def_label);
-
-            if (optimizing > 0) {
-                if (forwref != NULL && globallineno == forwref->lineno) {
-                    output_ins.forw_ref = true;
-                    do {
-                        output_ins.oprs[forwref->operand].opflags |= OPFLAG_FORWARD;
-                        forwref = saa_rstruct(forwrefs);
-                    } while (forwref != NULL
-                             && forwref->lineno == globallineno);
-                } else
-                    output_ins.forw_ref = false;
-
-                if (output_ins.forw_ref) {
-                    if (passn == 1) {
-                        for (i = 0; i < output_ins.operands; i++) {
-                            if (output_ins.oprs[i].opflags & OPFLAG_FORWARD) {
-                                struct forwrefinfo *fwinf = (struct forwrefinfo *)saa_wstruct(forwrefs);
-                                fwinf->lineno = globallineno;
-                                fwinf->operand = i;
-                            }
-                        }
-                    }
-                }
-            }
-
-            /*  forw_ref */
-            if (output_ins.opcode == I_EQU) {
-                if (pass1 == 1) {
-                    /*
-                     * Special `..' EQUs get processed in pass two,
-                     * except `..@' macro-processor EQUs which are done
-                     * in the normal place.
-                     */
-                    if (!output_ins.label)
-                        nasm_error(ERR_NONFATAL,
-                                   "EQU not preceded by label");
-
-                    else if (output_ins.label[0] != '.' ||
-                             output_ins.label[1] != '.' ||
-                             output_ins.label[2] == '@') {
-                        if (output_ins.operands == 1 &&
-                            (output_ins.oprs[0].type & IMMEDIATE) &&
-                            output_ins.oprs[0].wrt == NO_SEG) {
-                            bool isext = !!(output_ins.oprs[0].opflags & OPFLAG_EXTERN);
-                            def_label(output_ins.label,
-                                      output_ins.oprs[0].segment,
-                                      output_ins.oprs[0].offset, NULL,
-                                      false, isext);
-                        } else if (output_ins.operands == 2
-                                   && (output_ins.oprs[0].type & IMMEDIATE)
-                                   && (output_ins.oprs[0].type & COLON)
-                                   && output_ins.oprs[0].segment == NO_SEG
-                                   && output_ins.oprs[0].wrt == NO_SEG
-                                   && (output_ins.oprs[1].type & IMMEDIATE)
-                                   && output_ins.oprs[1].segment == NO_SEG
-                                   && output_ins.oprs[1].wrt == NO_SEG) {
-                            def_label(output_ins.label,
-                                      output_ins.oprs[0].offset | SEG_ABS,
-                                      output_ins.oprs[1].offset,
-                                      NULL, false, false);
-                        } else
-                            nasm_error(ERR_NONFATAL,
-                                       "bad syntax for EQU");
-                    }
-                } else {
-                    /*
-                     * Special `..' EQUs get processed here, except
-                     * `..@' macro processor EQUs which are done above.
-                     */
-                    if (output_ins.label[0] == '.' &&
-                        output_ins.label[1] == '.' &&
-                        output_ins.label[2] != '@') {
-                        if (output_ins.operands == 1 &&
-                            (output_ins.oprs[0].type & IMMEDIATE)) {
-                            define_label(output_ins.label,
-                                         output_ins.oprs[0].segment,
-                                         output_ins.oprs[0].offset,
-                                         NULL, false, false);
-                        } else if (output_ins.operands == 2
-                                   && (output_ins.oprs[0].type & IMMEDIATE)
-                                   && (output_ins.oprs[0].type & COLON)
-                                   && output_ins.oprs[0].segment == NO_SEG
-                                   && (output_ins.oprs[1].type & IMMEDIATE)
-                                   && output_ins.oprs[1].segment == NO_SEG) {
-                            define_label(output_ins.label,
-                                         output_ins.oprs[0].offset | SEG_ABS,
-                                         output_ins.oprs[1].offset,
-                                         NULL, false, false);
-                        } else
-                            nasm_error(ERR_NONFATAL,
-                                       "bad syntax for EQU");
-                    }
-                }
-            } else {        /* instruction isn't an EQU */
-
-                if (pass1 == 1) {
-                    int64_t l = insn_size(location.segment, offs, globalbits,
-                                          &output_ins);
-                    l *= output_ins.times;
-
-                    /* if (using_debug_info)  && output_ins.opcode != -1) */
-                    if (using_debug_info)
-                    {       /* fbk 03/25/01 */
-                            /* this is done here so we can do debug type info */
-                        int32_t typeinfo =
-                            TYS_ELEMENTS(output_ins.operands);
-                        switch (output_ins.opcode) {
-                        case I_RESB:
-                            typeinfo =
-                                TYS_ELEMENTS(output_ins.oprs[0].offset) | TY_BYTE;
-                            break;
-                        case I_RESW:
-                            typeinfo =
-                                TYS_ELEMENTS(output_ins.oprs[0].offset) | TY_WORD;
-                            break;
-                        case I_RESD:
-                            typeinfo =
-                                TYS_ELEMENTS(output_ins.oprs[0].offset) | TY_DWORD;
-                            break;
-                        case I_RESQ:
-                            typeinfo =
-                                TYS_ELEMENTS(output_ins.oprs[0].offset) | TY_QWORD;
-                            break;
-                        case I_REST:
-                            typeinfo =
-                                TYS_ELEMENTS(output_ins.oprs[0].offset) | TY_TBYTE;
-                            break;
-                        case I_RESO:
-                            typeinfo =
-                                TYS_ELEMENTS(output_ins.oprs[0].offset) | TY_OWORD;
-                            break;
-                        case I_RESY:
-                            typeinfo =
-                                TYS_ELEMENTS(output_ins.oprs[0].offset) | TY_YWORD;
-                            break;
-                        case I_DB:
-                            typeinfo |= TY_BYTE;
-                            break;
-                        case I_DW:
-                            typeinfo |= TY_WORD;
-                            break;
-                        case I_DD:
-                            if (output_ins.eops_float)
-                                typeinfo |= TY_FLOAT;
-                            else
-                                typeinfo |= TY_DWORD;
-                            break;
-                        case I_DQ:
-                            typeinfo |= TY_QWORD;
-                            break;
-                        case I_DT:
-                            typeinfo |= TY_TBYTE;
-                            break;
-                        case I_DO:
-                            typeinfo |= TY_OWORD;
-                            break;
-                        case I_DY:
-                            typeinfo |= TY_YWORD;
-                            break;
-                        default:
-                            typeinfo = TY_LABEL;
-
-                        }
-
-                        dfmt->debug_typevalue(typeinfo);
-                    }
-                    if (l != -1) {
-                        offs += l;
-                        set_curr_offs(offs);
-                    }
-                    /*
-                     * else l == -1 => invalid instruction, which will be
-                     * flagged as an error on pass 2
-                     */
-
-                } else {
-                    offs += assemble(location.segment, offs, globalbits, &output_ins);
-                    set_curr_offs(offs);
-
-                }
-            }               /* not an EQU */
-            cleanup_insn(&output_ins);
-
-        end_of_line:
-            nasm_free(line);
-            location.offset = offs = get_curr_offs();
-        }                       /* end while (line = preproc->getline... */
-
-        if (pass0 == 2 && global_offset_changed && !terminate_after_phase)
-            nasm_error(ERR_NONFATAL,
-                       "phase error detected at end of assembly.");
-
-        if (pass1 == 1)
-            preproc->cleanup(1);
-
-        if ((passn > 1 && !global_offset_changed) || pass0 == 2) {
-            pass0++;
-        } else if (global_offset_changed &&
-                   global_offset_changed < prev_offset_changed) {
-            prev_offset_changed = global_offset_changed;
-            stall_count = 0;
-        } else {
-            stall_count++;
-        }
-
-        if (terminate_after_phase)
-            break;
-
-        if ((stall_count > 997U) || (passn >= pass_max)) {
-            /* We get here if the labels don't converge
-             * Example: FOO equ FOO + 1
-             */
-             nasm_error(ERR_NONFATAL,
-                          "Can't find valid values for all labels "
-                          "after %d passes, giving up.", passn);
-             nasm_error(ERR_NONFATAL,
-                        "Possible causes: recursive EQUs, macro abuse.");
-             break;
-        }
-    }
-
-    preproc->cleanup(0);
-    lfmt->cleanup();
-    if (!terminate_after_phase && opt_verbose_info) {
-        /*  -On and -Ov switches */
-        fprintf(stdout, "info: assembly required 1+%d+1 passes\n", passn-3);
-    }
-}
-
-/**
- * gnu style error reporting
- * This function prints an error message to error_file in the
- * style used by GNU. An example would be:
- * file.asm:50: error: blah blah blah
- * where file.asm is the name of the file, 50 is the line number on
- * which the error occurs (or is detected) and "error:" is one of
- * the possible optional diagnostics -- it can be "error" or "warning"
- * or something else.  Finally the line terminates with the actual
- * error message.
- *
- * @param severity the severity of the warning or error
- * @param fmt the printf style format string
- */
-static void nasm_verror_gnu(int severity, const char *fmt, va_list ap)
-{
-    const char *currentfile = NULL;
-    int32_t lineno = 0;
-
-    if (is_suppressed_warning(severity))
-        return;
-
-    if (!(severity & ERR_NOFILE))
-	src_get(&lineno, &currentfile);
-
-    if (!skip_this_pass(severity)) {
-	if (currentfile) {
-	    fprintf(error_file, "%s:%"PRId32": ", currentfile, lineno);
-	} else {
-	    fputs("nasm: ", error_file);
-	}
-    }
-
-    nasm_verror_common(severity, fmt, ap);
-}
-
-/**
- * MS style error reporting
- * This function prints an error message to error_file in the
- * style used by Visual C and some other Microsoft tools. An example
- * would be:
- * file.asm(50) : error: blah blah blah
- * where file.asm is the name of the file, 50 is the line number on
- * which the error occurs (or is detected) and "error:" is one of
- * the possible optional diagnostics -- it can be "error" or "warning"
- * or something else.  Finally the line terminates with the actual
- * error message.
- *
- * @param severity the severity of the warning or error
- * @param fmt the printf style format string
- */
-static void nasm_verror_vc(int severity, const char *fmt, va_list ap)
-{
-    const char *currentfile = NULL;
-    int32_t lineno = 0;
-
-    if (is_suppressed_warning(severity))
-        return;
-
-    if (!(severity & ERR_NOFILE))
-        src_get(&lineno, &currentfile);
-
-    if (!skip_this_pass(severity)) {
-        if (currentfile) {
-	    fprintf(error_file, "%s(%"PRId32") : ", currentfile, lineno);
-	} else {
-	    fputs("nasm: ", error_file);
-	}
-    }
-
-    nasm_verror_common(severity, fmt, ap);
-}
-
-/*
- * check to see if this is a suppressable warning
- */
-static inline bool is_valid_warning(int severity)
-{
-    /* Not a warning at all */
-    if ((severity & ERR_MASK) != ERR_WARNING)
-        return false;
-
-    return WARN_IDX(severity) < ERR_WARN_ALL;
-}
-
-/**
- * check for suppressed warning
- * checks for suppressed warning or pass one only warning and we're
- * not in pass 1
- *
- * @param severity the severity of the warning or error
- * @return true if we should abort error/warning printing
- */
-static bool is_suppressed_warning(int severity)
-{
-    /* Might be a warning but suppresed explicitly */
-    if (is_valid_warning(severity))
-        return !(warning_state[WARN_IDX(severity)] & WARN_ST_ENABLED);
-    else
-        return false;
-}
-
-static bool warning_is_error(int severity)
-{
-    if (is_valid_warning(severity))
-        return !!(warning_state[WARN_IDX(severity)] & WARN_ST_ERROR);
-    else
-        return false;
-}
-
-static bool skip_this_pass(int severity)
-{
-  /* See if it's a pass-specific warning which should be skipped. */
-
-    if ((severity & ERR_MASK) > ERR_WARNING)
-	return false;
-
-    /*
-     * passn is 1 on the very first pass only.
-     * pass0 is 2 on the code-generation (final) pass only.
-     * These are the passes we care about in this case.
-     */
-    return (((severity & ERR_PASS1) && passn != 1) ||
-	    ((severity & ERR_PASS2) && pass0 != 2));
-}
-
-/**
- * common error reporting
- * This is the common back end of the error reporting schemes currently
- * implemented.  It prints the nature of the warning and then the
- * specific error message to error_file and may or may not return.  It
- * doesn't return if the error severity is a "panic" or "debug" type.
- *
- * @param severity the severity of the warning or error
- * @param fmt the printf style format string
- */
-static void nasm_verror_common(int severity, const char *fmt, va_list args)
-{
-    char msg[1024];
-    const char *pfx;
-
-    switch (severity & (ERR_MASK|ERR_NO_SEVERITY)) {
-    case ERR_WARNING:
-        pfx = "warning: ";
-        break;
-    case ERR_NONFATAL:
-        pfx = "error: ";
-        break;
-    case ERR_FATAL:
-        pfx = "fatal: ";
-        break;
-    case ERR_PANIC:
-        pfx = "panic: ";
-        break;
-    case ERR_DEBUG:
-        pfx = "debug: ";
-        break;
-    default:
-        pfx = "";
-        break;
-    }
-
-    vsnprintf(msg, sizeof msg - 64, fmt, args);
-    if (is_valid_warning(severity) && WARN_IDX(severity) != ERR_WARN_OTHER) {
-        char *p = strchr(msg, '\0');
-	snprintf(p, 64, " [-w+%s]", warnings[WARN_IDX(severity)].name);
-    }
-
-    if (!skip_this_pass(severity))
-	fprintf(error_file, "%s%s\n", pfx, msg);
-
-    /* Are we recursing from error_list_macros? */
-    if (severity & ERR_PP_LISTMACRO)
-	return;
-
-    /*
-     * Don't suppress this with skip_this_pass(), or we don't get
-     * pass1 or preprocessor warnings in the list file
-     */
-    lfmt->error(severity, pfx, msg);
-
-    if (severity & ERR_USAGE)
-        want_usage = true;
-
-    preproc->error_list_macros(severity);
-
-    switch (severity & ERR_MASK) {
-    case ERR_DEBUG:
-        /* no further action, by definition */
-        break;
-    case ERR_WARNING:
-        /* Treat warnings as errors */
-        if (warning_is_error(severity))
-            terminate_after_phase = true;
-        break;
-    case ERR_NONFATAL:
-        terminate_after_phase = true;
-        break;
-    case ERR_FATAL:
-        if (ofile) {
-            fclose(ofile);
-            remove(outname);
-            ofile = NULL;
-        }
-        if (want_usage)
-            usage();
-        exit(1);                /* instantly die */
-        break;                  /* placate silly compilers */
-    case ERR_PANIC:
-        fflush(NULL);
-        /* abort(); */          /* halt, catch fire, and dump core */
-        if (ofile) {
-            fclose(ofile);
-            remove(outname);
-            ofile = NULL;
-        }
-        exit(3);
-        break;
-    }
-}
-
-static void usage(void)
-{
-    fputs("type `nasm -h' for help\n", error_file);
-}
--- a/nasmbuild/nasm-2.13rc9/asm/parser.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1208 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * parser.c   source line parser for the Netwide Assembler
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "nasm.h"
-#include "insns.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "stdscan.h"
-#include "eval.h"
-#include "parser.h"
-#include "float.h"
-#include "assemble.h"
-#include "tables.h"
-
-
-static int is_comma_next(void);
-
-static struct tokenval tokval;
-
-static int prefix_slot(int prefix)
-{
-    switch (prefix) {
-    case P_WAIT:
-        return PPS_WAIT;
-    case R_CS:
-    case R_DS:
-    case R_SS:
-    case R_ES:
-    case R_FS:
-    case R_GS:
-        return PPS_SEG;
-    case P_LOCK:
-        return PPS_LOCK;
-    case P_REP:
-    case P_REPE:
-    case P_REPZ:
-    case P_REPNE:
-    case P_REPNZ:
-    case P_XACQUIRE:
-    case P_XRELEASE:
-    case P_BND:
-    case P_NOBND:
-        return PPS_REP;
-    case P_O16:
-    case P_O32:
-    case P_O64:
-    case P_OSP:
-        return PPS_OSIZE;
-    case P_A16:
-    case P_A32:
-    case P_A64:
-    case P_ASP:
-        return PPS_ASIZE;
-    case P_EVEX:
-    case P_VEX3:
-    case P_VEX2:
-        return PPS_VEX;
-    default:
-        nasm_panic(0, "Invalid value %d passed to prefix_slot()", prefix);
-        return -1;
-    }
-}
-
-static void process_size_override(insn *result, operand *op)
-{
-    if (tasm_compatible_mode) {
-        switch (tokval.t_integer) {
-            /* For TASM compatibility a size override inside the
-             * brackets changes the size of the operand, not the
-             * address type of the operand as it does in standard
-             * NASM syntax. Hence:
-             *
-             *  mov     eax,[DWORD val]
-             *
-             * is valid syntax in TASM compatibility mode. Note that
-             * you lose the ability to override the default address
-             * type for the instruction, but we never use anything
-             * but 32-bit flat model addressing in our code.
-             */
-        case S_BYTE:
-            op->type |= BITS8;
-            break;
-        case S_WORD:
-            op->type |= BITS16;
-            break;
-        case S_DWORD:
-        case S_LONG:
-            op->type |= BITS32;
-            break;
-        case S_QWORD:
-            op->type |= BITS64;
-            break;
-        case S_TWORD:
-            op->type |= BITS80;
-            break;
-        case S_OWORD:
-            op->type |= BITS128;
-            break;
-        default:
-            nasm_error(ERR_NONFATAL,
-                       "invalid operand size specification");
-            break;
-        }
-    } else {
-        /* Standard NASM compatible syntax */
-        switch (tokval.t_integer) {
-        case S_NOSPLIT:
-            op->eaflags |= EAF_TIMESTWO;
-            break;
-        case S_REL:
-            op->eaflags |= EAF_REL;
-            break;
-        case S_ABS:
-            op->eaflags |= EAF_ABS;
-            break;
-        case S_BYTE:
-            op->disp_size = 8;
-            op->eaflags |= EAF_BYTEOFFS;
-            break;
-        case P_A16:
-        case P_A32:
-        case P_A64:
-            if (result->prefixes[PPS_ASIZE] &&
-                result->prefixes[PPS_ASIZE] != tokval.t_integer)
-                nasm_error(ERR_NONFATAL,
-                           "conflicting address size specifications");
-            else
-                result->prefixes[PPS_ASIZE] = tokval.t_integer;
-            break;
-        case S_WORD:
-            op->disp_size = 16;
-            op->eaflags |= EAF_WORDOFFS;
-            break;
-        case S_DWORD:
-        case S_LONG:
-            op->disp_size = 32;
-            op->eaflags |= EAF_WORDOFFS;
-            break;
-        case S_QWORD:
-            op->disp_size = 64;
-            op->eaflags |= EAF_WORDOFFS;
-            break;
-        default:
-            nasm_error(ERR_NONFATAL, "invalid size specification in"
-                       " effective address");
-            break;
-        }
-    }
-}
-
-/*
- * when two or more decorators follow a register operand,
- * consecutive decorators are parsed here.
- * opmask and zeroing decorators can be placed in any order.
- * e.g. zmm1 {k2}{z} or zmm2 {z}{k3}
- * decorator(s) are placed at the end of an operand.
- */
-static bool parse_braces(decoflags_t *decoflags)
-{
-    int i;
-    bool recover = false;
-
-    i = tokval.t_type;
-    do {
-        if (i == TOKEN_OPMASK) {
-            if (*decoflags & OPMASK_MASK) {
-                nasm_error(ERR_NONFATAL, "opmask k%"PRIu64" is already set",
-                           *decoflags & OPMASK_MASK);
-                *decoflags &= ~OPMASK_MASK;
-            }
-            *decoflags |= VAL_OPMASK(nasm_regvals[tokval.t_integer]);
-        } else if (i == TOKEN_DECORATOR) {
-            switch (tokval.t_integer) {
-            case BRC_Z:
-                /*
-                 * according to AVX512 spec, only zeroing/merging decorator
-                 * is supported with opmask
-                 */
-                *decoflags |= GEN_Z(0);
-                break;
-            default:
-                nasm_error(ERR_NONFATAL, "{%s} is not an expected decorator",
-                                         tokval.t_charptr);
-                break;
-            }
-        } else if (i == ',' || i == TOKEN_EOS){
-            break;
-        } else {
-            nasm_error(ERR_NONFATAL, "only a series of valid decorators"
-                                     " expected");
-            recover = true;
-            break;
-        }
-        i = stdscan(NULL, &tokval);
-    } while(1);
-
-    return recover;
-}
-
-static int parse_mref(operand *op, const expr *e)
-{
-    int b, i, s;        /* basereg, indexreg, scale */
-    int64_t o;          /* offset */
-
-    b = i = -1;
-    o = s = 0;
-    op->segment = op->wrt = NO_SEG;
-
-    if (e->type && e->type <= EXPR_REG_END) {   /* this bit's a register */
-        bool is_gpr = is_class(REG_GPR,nasm_reg_flags[e->type]);
-
-        if (is_gpr && e->value == 1)
-            b = e->type;	/* It can be basereg */
-        else			/* No, it has to be indexreg */
-            i = e->type, s = e->value;
-        e++;
-    }
-    if (e->type && e->type <= EXPR_REG_END) {   /* it's a 2nd register */
-        bool is_gpr = is_class(REG_GPR,nasm_reg_flags[e->type]);
-
-        if (b != -1)    /* If the first was the base, ... */
-            i = e->type, s = e->value;  /* second has to be indexreg */
-
-        else if (!is_gpr || e->value != 1) {
-            /* If both want to be index */
-            nasm_error(ERR_NONFATAL,
-                       "invalid effective address: two index registers");
-            return -1;
-        } else
-            b = e->type;
-        e++;
-    }
-
-    if (e->type) {                     /* is there an offset? */
-        if (e->type <= EXPR_REG_END) {  /* in fact, is there an error? */
-            nasm_error(ERR_NONFATAL,
-                       "invalid effective address: impossible register");
-            return -1;
-        } else {
-            if (e->type == EXPR_UNKNOWN) {
-                op->opflags |= OPFLAG_UNKNOWN;
-                o = 0;  /* doesn't matter what */
-                while (e->type)
-                    e++;        /* go to the end of the line */
-            } else {
-                if (e->type == EXPR_SIMPLE) {
-                    o = e->value;
-                    e++;
-                }
-                if (e->type == EXPR_WRT) {
-                    op->wrt = e->value;
-                    e++;
-                }
-                /*
-                 * Look for a segment base type.
-                 */
-                for (; e->type; e++) {
-                    if (!e->value)
-                        continue;
-
-                    if (e->type <= EXPR_REG_END) {
-                        nasm_error(ERR_NONFATAL,
-                                   "invalid effective address: too many registers");
-                        return -1;
-                    } else if (e->type < EXPR_SEGBASE) {
-                        nasm_error(ERR_NONFATAL,
-                                   "invalid effective address: bad subexpression type");
-                        return -1;
-                    } else if (e->value == 1) {
-                        if (op->segment != NO_SEG) {
-                            nasm_error(ERR_NONFATAL,
-                                       "invalid effective address: multiple base segments");
-                            return -1;
-                        }
-                        op->segment = e->type - EXPR_SEGBASE;
-                    } else if (e->value == -1 &&
-                               e->type == location.segment + EXPR_SEGBASE &&
-                               !(op->opflags & OPFLAG_RELATIVE)) {
-                        op->opflags |= OPFLAG_RELATIVE;
-                    } else {
-                        nasm_error(ERR_NONFATAL,
-                                   "invalid effective address: impossible segment base multiplier");
-                        return -1;
-                    }
-                }
-            }
-        }
-    }
-
-    nasm_assert(!e->type);      /* We should be at the end */
-
-    op->basereg = b;
-    op->indexreg = i;
-    op->scale = s;
-    op->offset = o;
-    return 0;
-}
-
-static void mref_set_optype(operand *op)
-{
-    int b = op->basereg;
-    int i = op->indexreg;
-    int s = op->scale;
-
-    /* It is memory, but it can match any r/m operand */
-    op->type |= MEMORY_ANY;
-
-    if (b == -1 && (i == -1 || s == 0)) {
-        int is_rel = globalbits == 64 &&
-            !(op->eaflags & EAF_ABS) &&
-            ((globalrel &&
-              !(op->eaflags & EAF_FSGS)) ||
-             (op->eaflags & EAF_REL));
-
-        op->type |= is_rel ? IP_REL : MEM_OFFS;
-    }
-
-    if (i != -1) {
-        opflags_t iclass = nasm_reg_flags[i];
-
-        if (is_class(XMMREG,iclass))
-            op->type |= XMEM;
-        else if (is_class(YMMREG,iclass))
-            op->type |= YMEM;
-        else if (is_class(ZMMREG,iclass))
-            op->type |= ZMEM;
-    }
-}
-
-/*
- * Convert an expression vector returned from evaluate() into an
- * extop structure.  Return zero on success.
- */
-static int value_to_extop(expr * vect, extop *eop, int32_t myseg)
-{
-    eop->type = EOT_DB_NUMBER;
-    eop->offset = 0;
-    eop->segment = eop->wrt = NO_SEG;
-    eop->relative = false;
-
-    for (; vect->type; vect++) {
-        if (!vect->value)       /* zero term, safe to ignore */
-            continue;
-
-        if (vect->type <= EXPR_REG_END) /* false if a register is present */
-            return -1;
-
-        if (vect->type == EXPR_UNKNOWN) /* something we can't resolve yet */
-            return 0;
-
-        if (vect->type == EXPR_SIMPLE) {
-            /* Simple number expression */
-            eop->offset += vect->value;
-            continue;
-        }
-        if (eop->wrt == NO_SEG && !eop->relative && vect->type == EXPR_WRT) {
-            /* WRT term */
-            eop->wrt = vect->value;
-            continue;
-        }
-
-        if (!eop->relative &&
-            vect->type == EXPR_SEGBASE + myseg && vect->value == -1) {
-            /* Expression of the form: foo - $ */
-            eop->relative = true;
-            continue;
-        }
-
-        if (eop->segment == NO_SEG && vect->type >= EXPR_SEGBASE &&
-            vect->value == 1) {
-            eop->segment = vect->type - EXPR_SEGBASE;
-            continue;
-        }
-
-        /* Otherwise, badness */
-        return -1;
-    }
-
-    /* We got to the end and it was all okay */
-    return 0;
-}
-
-insn *parse_line(int pass, char *buffer, insn *result, ldfunc ldef)
-{
-    bool insn_is_label = false;
-    struct eval_hints hints;
-    int opnum;
-    int critical;
-    bool first;
-    bool recover;
-    int i;
-
-restart_parse:
-    first               = true;
-    result->forw_ref    = false;
-
-    stdscan_reset();
-    stdscan_set(buffer);
-    i = stdscan(NULL, &tokval);
-
-    result->label       = NULL; /* Assume no label */
-    result->eops        = NULL; /* must do this, whatever happens */
-    result->operands    = 0;    /* must initialize this */
-    result->evex_rm     = 0;    /* Ensure EVEX rounding mode is reset */
-    result->evex_brerop = -1;   /* Reset EVEX broadcasting/ER op position */
-
-    /* Ignore blank lines */
-    if (i == TOKEN_EOS)
-        goto fail;
-
-    if (i != TOKEN_ID       &&
-        i != TOKEN_INSN     &&
-        i != TOKEN_PREFIX   &&
-        (i != TOKEN_REG || !IS_SREG(tokval.t_integer))) {
-        nasm_error(ERR_NONFATAL,
-                   "label or instruction expected at start of line");
-        goto fail;
-    }
-
-    if (i == TOKEN_ID || (insn_is_label && i == TOKEN_INSN)) {
-        /* there's a label here */
-        first = false;
-        result->label = tokval.t_charptr;
-        i = stdscan(NULL, &tokval);
-        if (i == ':') {         /* skip over the optional colon */
-            i = stdscan(NULL, &tokval);
-        } else if (i == 0) {
-            nasm_error(ERR_WARNING | ERR_WARN_OL | ERR_PASS1,
-                  "label alone on a line without a colon might be in error");
-        }
-        if (i != TOKEN_INSN || tokval.t_integer != I_EQU) {
-            /*
-             * FIXME: location.segment could be NO_SEG, in which case
-             * it is possible we should be passing 'absolute.segment'. Look into this.
-             * Work out whether that is *really* what we should be doing.
-             * Generally fix things. I think this is right as it is, but
-             * am still not certain.
-             */
-            ldef(result->label, in_absolute ? absolute.segment : location.segment,
-                 location.offset, NULL, true, false);
-        }
-    }
-
-    /* Just a label here */
-    if (i == TOKEN_EOS)
-        goto fail;
-
-    nasm_static_assert(P_none == 0);
-    memset(result->prefixes, P_none, sizeof(result->prefixes));
-    result->times = 1L;
-
-    while (i == TOKEN_PREFIX ||
-           (i == TOKEN_REG && IS_SREG(tokval.t_integer))) {
-        first = false;
-
-        /*
-         * Handle special case: the TIMES prefix.
-         */
-        if (i == TOKEN_PREFIX && tokval.t_integer == P_TIMES) {
-            expr *value;
-
-            i = stdscan(NULL, &tokval);
-            value = evaluate(stdscan, NULL, &tokval, NULL, pass0, NULL);
-            i = tokval.t_type;
-            if (!value)                  /* Error in evaluator */
-                goto fail;
-            if (!is_simple(value)) {
-                nasm_error(ERR_NONFATAL,
-                      "non-constant argument supplied to TIMES");
-                result->times = 1L;
-            } else {
-                result->times = value->value;
-                if (value->value < 0 && pass0 == 2) {
-                    nasm_error(ERR_NONFATAL, "TIMES value %"PRId64" is negative",
-                          value->value);
-                    result->times = 0;
-                }
-            }
-        } else {
-            int slot = prefix_slot(tokval.t_integer);
-            if (result->prefixes[slot]) {
-               if (result->prefixes[slot] == tokval.t_integer)
-                    nasm_error(ERR_WARNING | ERR_PASS1,
-                               "instruction has redundant prefixes");
-               else
-                    nasm_error(ERR_NONFATAL,
-                               "instruction has conflicting prefixes");
-            }
-            result->prefixes[slot] = tokval.t_integer;
-            i = stdscan(NULL, &tokval);
-        }
-    }
-
-    if (i != TOKEN_INSN) {
-        int j;
-        enum prefixes pfx;
-
-        for (j = 0; j < MAXPREFIX; j++) {
-            if ((pfx = result->prefixes[j]) != P_none)
-                break;
-        }
-
-        if (i == 0 && pfx != P_none) {
-            /*
-             * Instruction prefixes are present, but no actual
-             * instruction. This is allowed: at this point we
-             * invent a notional instruction of RESB 0.
-             */
-            result->opcode          = I_RESB;
-            result->operands        = 1;
-            result->oprs[0].type    = IMMEDIATE;
-            result->oprs[0].offset  = 0L;
-            result->oprs[0].segment = result->oprs[0].wrt = NO_SEG;
-            return result;
-        } else {
-            nasm_error(ERR_NONFATAL, "parser: instruction expected");
-            goto fail;
-        }
-    }
-
-    result->opcode = tokval.t_integer;
-    result->condition = tokval.t_inttwo;
-
-    /*
-     * INCBIN cannot be satisfied with incorrectly
-     * evaluated operands, since the correct values _must_ be known
-     * on the first pass. Hence, even in pass one, we set the
-     * `critical' flag on calling evaluate(), so that it will bomb
-     * out on undefined symbols.
-     */
-    if (result->opcode == I_INCBIN) {
-        critical = (pass0 < 2 ? 1 : 2);
-
-    } else
-        critical = (pass == 2 ? 2 : 0);
-
-    if (result->opcode == I_DB || result->opcode == I_DW ||
-        result->opcode == I_DD || result->opcode == I_DQ ||
-        result->opcode == I_DT || result->opcode == I_DO ||
-        result->opcode == I_DY || result->opcode == I_DZ ||
-        result->opcode == I_INCBIN) {
-        extop *eop, **tail = &result->eops, **fixptr;
-        int oper_num = 0;
-        int32_t sign;
-
-        result->eops_float = false;
-
-        /*
-         * Begin to read the DB/DW/DD/DQ/DT/DO/DY/DZ/INCBIN operands.
-         */
-        while (1) {
-            i = stdscan(NULL, &tokval);
-            if (i == TOKEN_EOS)
-                break;
-            else if (first && i == ':') {
-                insn_is_label = true;
-                goto restart_parse;
-            }
-            first = false;
-            fixptr = tail;
-            eop = *tail = nasm_malloc(sizeof(extop));
-            tail = &eop->next;
-            eop->next = NULL;
-            eop->type = EOT_NOTHING;
-            oper_num++;
-            sign = +1;
-
-            /*
-             * is_comma_next() here is to distinguish this from
-             * a string used as part of an expression...
-             */
-            if (i == TOKEN_STR && is_comma_next()) {
-                eop->type       = EOT_DB_STRING;
-                eop->stringval  = tokval.t_charptr;
-                eop->stringlen  = tokval.t_inttwo;
-                i = stdscan(NULL, &tokval);     /* eat the comma */
-            } else if (i == TOKEN_STRFUNC) {
-                bool parens = false;
-                const char *funcname = tokval.t_charptr;
-                enum strfunc func = tokval.t_integer;
-                i = stdscan(NULL, &tokval);
-                if (i == '(') {
-                    parens = true;
-                    i = stdscan(NULL, &tokval);
-                }
-                if (i != TOKEN_STR) {
-                    nasm_error(ERR_NONFATAL,
-                               "%s must be followed by a string constant",
-                               funcname);
-                        eop->type = EOT_NOTHING;
-                } else {
-                    eop->type = EOT_DB_STRING_FREE;
-                    eop->stringlen =
-                        string_transform(tokval.t_charptr, tokval.t_inttwo,
-                                         &eop->stringval, func);
-                    if (eop->stringlen == (size_t)-1) {
-                        nasm_error(ERR_NONFATAL, "invalid string for transform");
-                        eop->type = EOT_NOTHING;
-                    }
-                }
-                if (parens && i && i != ')') {
-                    i = stdscan(NULL, &tokval);
-                    if (i != ')') {
-                        nasm_error(ERR_NONFATAL, "unterminated %s function",
-                                   funcname);
-                    }
-                }
-                if (i && i != ',')
-                    i = stdscan(NULL, &tokval);
-            } else if (i == '-' || i == '+') {
-                char *save = stdscan_get();
-                int token = i;
-                sign = (i == '-') ? -1 : 1;
-                i = stdscan(NULL, &tokval);
-                if (i != TOKEN_FLOAT) {
-                    stdscan_set(save);
-                    i = tokval.t_type = token;
-                    goto is_expression;
-                } else {
-                    goto is_float;
-                }
-            } else if (i == TOKEN_FLOAT) {
-is_float:
-                eop->type = EOT_DB_STRING;
-                result->eops_float = true;
-
-                eop->stringlen = idata_bytes(result->opcode);
-                if (eop->stringlen > 16) {
-                    nasm_error(ERR_NONFATAL, "floating-point constant"
-                               " encountered in DY or DZ instruction");
-                    eop->stringlen = 0;
-                } else if (eop->stringlen < 1) {
-                    nasm_error(ERR_NONFATAL, "floating-point constant"
-                               " encountered in unknown instruction");
-                    /*
-                     * fix suggested by Pedro Gimeno... original line was:
-                     * eop->type = EOT_NOTHING;
-                     */
-                    eop->stringlen = 0;
-                }
-
-                eop = nasm_realloc(eop, sizeof(extop) + eop->stringlen);
-                tail = &eop->next;
-                *fixptr = eop;
-                eop->stringval = (char *)eop + sizeof(extop);
-                if (!eop->stringlen ||
-                    !float_const(tokval.t_charptr, sign,
-                                 (uint8_t *)eop->stringval, eop->stringlen))
-                    eop->type = EOT_NOTHING;
-                i = stdscan(NULL, &tokval); /* eat the comma */
-            } else {
-                /* anything else, assume it is an expression */
-                expr *value;
-
-is_expression:
-                value = evaluate(stdscan, NULL, &tokval, NULL,
-                                 critical, NULL);
-                i = tokval.t_type;
-                if (!value)                  /* Error in evaluator */
-                    goto fail;
-                if (value_to_extop(value, eop, location.segment)) {
-                    nasm_error(ERR_NONFATAL,
-                               "operand %d: expression is not simple or relocatable",
-                               oper_num);
-                }
-            }
-
-            /*
-             * We're about to call stdscan(), which will eat the
-             * comma that we're currently sitting on between
-             * arguments. However, we'd better check first that it
-             * _is_ a comma.
-             */
-            if (i == TOKEN_EOS) /* also could be EOL */
-                break;
-            if (i != ',') {
-                nasm_error(ERR_NONFATAL, "comma expected after operand %d",
-                           oper_num);
-                goto fail;
-            }
-        }
-
-        if (result->opcode == I_INCBIN) {
-            /*
-             * Correct syntax for INCBIN is that there should be
-             * one string operand, followed by one or two numeric
-             * operands.
-             */
-            if (!result->eops || result->eops->type != EOT_DB_STRING)
-                nasm_error(ERR_NONFATAL, "`incbin' expects a file name");
-            else if (result->eops->next &&
-                     result->eops->next->type != EOT_DB_NUMBER)
-                nasm_error(ERR_NONFATAL, "`incbin': second parameter is"
-                           " non-numeric");
-            else if (result->eops->next && result->eops->next->next &&
-                     result->eops->next->next->type != EOT_DB_NUMBER)
-                nasm_error(ERR_NONFATAL, "`incbin': third parameter is"
-                           " non-numeric");
-            else if (result->eops->next && result->eops->next->next &&
-                     result->eops->next->next->next)
-                nasm_error(ERR_NONFATAL,
-                           "`incbin': more than three parameters");
-            else
-                return result;
-            /*
-             * If we reach here, one of the above errors happened.
-             * Throw the instruction away.
-             */
-            goto fail;
-        } else /* DB ... */ if (oper_num == 0)
-            nasm_error(ERR_WARNING | ERR_PASS1,
-                  "no operand for data declaration");
-        else
-            result->operands = oper_num;
-
-        return result;
-    }
-
-    /*
-     * Now we begin to parse the operands. There may be up to four
-     * of these, separated by commas, and terminated by a zero token.
-     */
-
-    for (opnum = 0; opnum < MAX_OPERANDS; opnum++) {
-        operand *op = &result->oprs[opnum];
-        expr *value;            /* used most of the time */
-        bool mref;              /* is this going to be a memory ref? */
-        bool bracket;           /* is it a [] mref, or a & mref? */
-        bool mib;               /* compound (mib) mref? */
-        int setsize = 0;
-        decoflags_t brace_flags = 0;    /* flags for decorators in braces */
-
-        op->disp_size = 0;    /* have to zero this whatever */
-        op->eaflags   = 0;    /* and this */
-        op->opflags   = 0;
-        op->decoflags = 0;
-
-        i = stdscan(NULL, &tokval);
-        if (i == TOKEN_EOS)
-            break;              /* end of operands: get out of here */
-        else if (first && i == ':') {
-            insn_is_label = true;
-            goto restart_parse;
-        }
-        first = false;
-        op->type = 0; /* so far, no override */
-        while (i == TOKEN_SPECIAL) {    /* size specifiers */
-            switch (tokval.t_integer) {
-            case S_BYTE:
-                if (!setsize)   /* we want to use only the first */
-                    op->type |= BITS8;
-                setsize = 1;
-                break;
-            case S_WORD:
-                if (!setsize)
-                    op->type |= BITS16;
-                setsize = 1;
-                break;
-            case S_DWORD:
-            case S_LONG:
-                if (!setsize)
-                    op->type |= BITS32;
-                setsize = 1;
-                break;
-            case S_QWORD:
-                if (!setsize)
-                    op->type |= BITS64;
-                setsize = 1;
-                break;
-            case S_TWORD:
-                if (!setsize)
-                    op->type |= BITS80;
-                setsize = 1;
-                break;
-            case S_OWORD:
-                if (!setsize)
-                    op->type |= BITS128;
-                setsize = 1;
-                break;
-            case S_YWORD:
-                if (!setsize)
-                    op->type |= BITS256;
-                setsize = 1;
-                break;
-            case S_ZWORD:
-                if (!setsize)
-                    op->type |= BITS512;
-                setsize = 1;
-                break;
-            case S_TO:
-                op->type |= TO;
-                break;
-            case S_STRICT:
-                op->type |= STRICT;
-                break;
-            case S_FAR:
-                op->type |= FAR;
-                break;
-            case S_NEAR:
-                op->type |= NEAR;
-                break;
-            case S_SHORT:
-                op->type |= SHORT;
-                break;
-            default:
-                nasm_error(ERR_NONFATAL, "invalid operand size specification");
-            }
-            i = stdscan(NULL, &tokval);
-        }
-
-        if (i == '[' || i == '&') {     /* memory reference */
-            mref = true;
-            bracket = (i == '[');
-            i = stdscan(NULL, &tokval); /* then skip the colon */
-            while (i == TOKEN_SPECIAL || i == TOKEN_PREFIX) {
-                process_size_override(result, op);
-                i = stdscan(NULL, &tokval);
-            }
-            /* when a comma follows an opening bracket - [ , eax*4] */
-            if (i == ',') {
-                /* treat as if there is a zero displacement virtually */
-                tokval.t_type = TOKEN_NUM;
-                tokval.t_integer = 0;
-                stdscan_set(stdscan_get() - 1);     /* rewind the comma */
-            }
-        } else {                /* immediate operand, or register */
-            mref = false;
-            bracket = false;    /* placate optimisers */
-        }
-
-        if ((op->type & FAR) && !mref &&
-            result->opcode != I_JMP && result->opcode != I_CALL) {
-            nasm_error(ERR_NONFATAL, "invalid use of FAR operand specifier");
-        }
-
-        value = evaluate(stdscan, NULL, &tokval,
-                         &op->opflags, critical, &hints);
-        i = tokval.t_type;
-        if (op->opflags & OPFLAG_FORWARD) {
-            result->forw_ref = true;
-        }
-        if (!value)                  /* Error in evaluator */
-            goto fail;
-        if (i == ':' && mref) { /* it was seg:offset */
-            /*
-             * Process the segment override.
-             */
-            if (value[1].type   != 0    ||
-                value->value    != 1    ||
-                !IS_SREG(value->type))
-                nasm_error(ERR_NONFATAL, "invalid segment override");
-            else if (result->prefixes[PPS_SEG])
-                nasm_error(ERR_NONFATAL,
-                      "instruction has conflicting segment overrides");
-            else {
-                result->prefixes[PPS_SEG] = value->type;
-                if (IS_FSGS(value->type))
-                    op->eaflags |= EAF_FSGS;
-            }
-
-            i = stdscan(NULL, &tokval); /* then skip the colon */
-            while (i == TOKEN_SPECIAL || i == TOKEN_PREFIX) {
-                process_size_override(result, op);
-                i = stdscan(NULL, &tokval);
-            }
-            value = evaluate(stdscan, NULL, &tokval,
-                             &op->opflags, critical, &hints);
-            i = tokval.t_type;
-            if (op->opflags & OPFLAG_FORWARD) {
-                result->forw_ref = true;
-            }
-            /* and get the offset */
-            if (!value)                  /* Error in evaluator */
-                goto fail;
-        }
-
-        mib = false;
-        if (mref && bracket && i == ',') {
-            /* [seg:base+offset,index*scale] syntax (mib) */
-
-            operand o1, o2;     /* Partial operands */
-
-            if (parse_mref(&o1, value))
-                goto fail;
-
-            i = stdscan(NULL, &tokval); /* Eat comma */
-            value = evaluate(stdscan, NULL, &tokval, &op->opflags,
-                             critical, &hints);
-            i = tokval.t_type;
-            if (!value)
-                goto fail;
-
-            if (parse_mref(&o2, value))
-                goto fail;
-
-            if (o2.basereg != -1 && o2.indexreg == -1) {
-                o2.indexreg = o2.basereg;
-                o2.scale = 1;
-                o2.basereg = -1;
-            }
-
-            if (o1.indexreg != -1 || o2.basereg != -1 || o2.offset != 0 ||
-                o2.segment != NO_SEG || o2.wrt != NO_SEG) {
-                nasm_error(ERR_NONFATAL, "invalid mib expression");
-                goto fail;
-            }
-
-            op->basereg = o1.basereg;
-            op->indexreg = o2.indexreg;
-            op->scale = o2.scale;
-            op->offset = o1.offset;
-            op->segment = o1.segment;
-            op->wrt = o1.wrt;
-
-            if (op->basereg != -1) {
-                op->hintbase = op->basereg;
-                op->hinttype = EAH_MAKEBASE;
-            } else if (op->indexreg != -1) {
-                op->hintbase = op->indexreg;
-                op->hinttype = EAH_NOTBASE;
-            } else {
-                op->hintbase = -1;
-                op->hinttype = EAH_NOHINT;
-            }
-
-            mib = true;
-        }
-
-        recover = false;
-        if (mref && bracket) {  /* find ] at the end */
-            if (i != ']') {
-                nasm_error(ERR_NONFATAL, "parser: expecting ]");
-                recover = true;
-            } else {            /* we got the required ] */
-                i = stdscan(NULL, &tokval);
-                if ((i == TOKEN_DECORATOR) || (i == TOKEN_OPMASK)) {
-                    /*
-                     * according to AVX512 spec, broacast or opmask decorator
-                     * is expected for memory reference operands
-                     */
-                    if (tokval.t_flag & TFLAG_BRDCAST) {
-                        brace_flags |= GEN_BRDCAST(0) |
-                                       VAL_BRNUM(tokval.t_integer - BRC_1TO2);
-                        i = stdscan(NULL, &tokval);
-                    } else if (i == TOKEN_OPMASK) {
-                        brace_flags |= VAL_OPMASK(nasm_regvals[tokval.t_integer]);
-                        i = stdscan(NULL, &tokval);
-                    } else {
-                        nasm_error(ERR_NONFATAL, "broadcast or opmask "
-                                   "decorator expected inside braces");
-                        recover = true;
-                    }
-                }
-
-                if (i != 0 && i != ',') {
-                    nasm_error(ERR_NONFATAL, "comma or end of line expected");
-                    recover = true;
-                }
-            }
-        } else {                /* immediate operand */
-            if (i != 0 && i != ',' && i != ':' &&
-                i != TOKEN_DECORATOR && i != TOKEN_OPMASK) {
-                nasm_error(ERR_NONFATAL, "comma, colon, decorator or end of "
-                                         "line expected after operand");
-                recover = true;
-            } else if (i == ':') {
-                op->type |= COLON;
-            } else if (i == TOKEN_DECORATOR || i == TOKEN_OPMASK) {
-                /* parse opmask (and zeroing) after an operand */
-                recover = parse_braces(&brace_flags);
-            }
-        }
-        if (recover) {
-            do {                /* error recovery */
-                i = stdscan(NULL, &tokval);
-            } while (i != 0 && i != ',');
-        }
-
-        /*
-         * now convert the exprs returned from evaluate()
-         * into operand descriptions...
-         */
-        op->decoflags |= brace_flags;
-
-        if (mref) {             /* it's a memory reference */
-            /* A mib reference was fully parsed already */
-            if (!mib) {
-                if (parse_mref(op, value))
-                    goto fail;
-                op->hintbase = hints.base;
-                op->hinttype = hints.type;
-            }
-            mref_set_optype(op);
-        } else {                /* it's not a memory reference */
-            if (is_just_unknown(value)) {       /* it's immediate but unknown */
-                op->type      |= IMMEDIATE;
-                op->opflags   |= OPFLAG_UNKNOWN;
-                op->offset    = 0;        /* don't care */
-                op->segment   = NO_SEG;   /* don't care again */
-                op->wrt       = NO_SEG;   /* still don't care */
-
-                if(optimizing >= 0 && !(op->type & STRICT)) {
-                    /* Be optimistic */
-                    op->type |=
-                        UNITY | SBYTEWORD | SBYTEDWORD | UDWORD | SDWORD;
-                }
-            } else if (is_reloc(value)) {       /* it's immediate */
-                uint64_t n = reloc_value(value);
-
-                op->type      |= IMMEDIATE;
-                op->offset    = n;
-                op->segment   = reloc_seg(value);
-                op->wrt       = reloc_wrt(value);
-                op->opflags   |= is_self_relative(value) ? OPFLAG_RELATIVE : 0;
-
-                if (is_simple(value)) {
-                    if (n == 1)
-                        op->type |= UNITY;
-                    if (optimizing >= 0 && !(op->type & STRICT)) {
-                        if ((uint32_t) (n + 128) <= 255)
-                            op->type |= SBYTEDWORD;
-                        if ((uint16_t) (n + 128) <= 255)
-                            op->type |= SBYTEWORD;
-                        if (n <= UINT64_C(0xFFFFFFFF))
-                            op->type |= UDWORD;
-                        if (n + UINT64_C(0x80000000) <= UINT64_C(0xFFFFFFFF))
-                            op->type |= SDWORD;
-                    }
-                }
-            } else if (value->type == EXPR_RDSAE) {
-                /*
-                 * it's not an operand but a rounding or SAE decorator.
-                 * put the decorator information in the (opflag_t) type field
-                 * of previous operand.
-                 */
-                opnum--; op--;
-                switch (value->value) {
-                case BRC_RN:
-                case BRC_RU:
-                case BRC_RD:
-                case BRC_RZ:
-                case BRC_SAE:
-                    op->decoflags |= (value->value == BRC_SAE ? SAE : ER);
-                    result->evex_rm = value->value;
-                    break;
-                default:
-                    nasm_error(ERR_NONFATAL, "invalid decorator");
-                    break;
-                }
-            } else {            /* it's a register */
-                opflags_t rs;
-
-                if (value->type >= EXPR_SIMPLE || value->value != 1) {
-                    nasm_error(ERR_NONFATAL, "invalid operand type");
-                    goto fail;
-                }
-
-                /*
-                 * check that its only 1 register, not an expression...
-                 */
-                for (i = 1; value[i].type; i++)
-                    if (value[i].value) {
-                        nasm_error(ERR_NONFATAL, "invalid operand type");
-                        goto fail;
-                    }
-
-                /* clear overrides, except TO which applies to FPU regs */
-                if (op->type & ~TO) {
-                    /*
-                     * we want to produce a warning iff the specified size
-                     * is different from the register size
-                     */
-                    rs = op->type & SIZE_MASK;
-                } else
-                    rs = 0;
-
-                op->type      &= TO;
-                op->type      |= REGISTER;
-                op->type      |= nasm_reg_flags[value->type];
-                op->decoflags |= brace_flags;
-                op->basereg   = value->type;
-
-                if (rs && (op->type & SIZE_MASK) != rs)
-                    nasm_error(ERR_WARNING | ERR_PASS1,
-                          "register size specification ignored");
-            }
-        }
-
-        /* remember the position of operand having broadcasting/ER mode */
-        if (op->decoflags & (BRDCAST_MASK | ER | SAE))
-            result->evex_brerop = opnum;
-    }
-
-    result->operands = opnum; /* set operand count */
-
-    /* clear remaining operands */
-    while (opnum < MAX_OPERANDS)
-        result->oprs[opnum++].type = 0;
-
-    /*
-     * Transform RESW, RESD, RESQ, REST, RESO, RESY, RESZ into RESB.
-     */
-    switch (result->opcode) {
-    case I_RESW:
-        result->opcode = I_RESB;
-        result->oprs[0].offset *= 2;
-        break;
-    case I_RESD:
-        result->opcode = I_RESB;
-        result->oprs[0].offset *= 4;
-        break;
-    case I_RESQ:
-        result->opcode = I_RESB;
-        result->oprs[0].offset *= 8;
-        break;
-    case I_REST:
-        result->opcode = I_RESB;
-        result->oprs[0].offset *= 10;
-        break;
-    case I_RESO:
-        result->opcode = I_RESB;
-        result->oprs[0].offset *= 16;
-        break;
-    case I_RESY:
-        result->opcode = I_RESB;
-        result->oprs[0].offset *= 32;
-        break;
-    case I_RESZ:
-        result->opcode = I_RESB;
-        result->oprs[0].offset *= 64;
-        break;
-    default:
-        break;
-    }
-
-    return result;
-
-fail:
-    result->opcode = I_none;
-    return result;
-}
-
-static int is_comma_next(void)
-{
-    struct tokenval tv;
-    char *p;
-    int i;
-
-    p = stdscan_get();
-    i = stdscan(NULL, &tv);
-    stdscan_set(p);
-
-    return (i == ',' || i == ';' || !i);
-}
-
-void cleanup_insn(insn * i)
-{
-    extop *e;
-
-    while ((e = i->eops)) {
-        i->eops = e->next;
-        if (e->type == EOT_DB_STRING_FREE)
-            nasm_free(e->stringval);
-        nasm_free(e);
-    }
-}
--- a/nasmbuild/nasm-2.13rc9/asm/parser.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/* 
- * parser.h   header file for the parser module of the Netwide
- *            Assembler
- */
-
-#ifndef NASM_PARSER_H
-#define NASM_PARSER_H
-
-insn *parse_line(int pass, char *buffer, insn *result, ldfunc ldef);
-void cleanup_insn(insn *instruction);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/asm/phash.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,109 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##   
-##   Copyright 1996-2009 the NASM Authors - All rights reserved.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##     
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# Perfect Minimal Hash Generator written in Perl, which produces
-# C output.
-#
-
-require 'phash.ph';
-
-#
-# Read input file
-#
-sub read_input() {
-    my $key,$val;
-    my %out;
-    my $x = 0;
-
-    while (defined($l = <STDIN>)) {
-	chomp $l;
-	$l =~ s/\s*(\#.*|)$//;
-
-	next if ($l eq '');
-
-	if ($l =~ /^([^=]+)\=([^=]+)$/) {
-	    $out{$1} = $2;
-	    $x = $2;
-	} else {
-	    $out{$l} = $x;
-	}
-	$x++;
-    }
-
-    return %out;
-}
-
-#
-# Main program
-#
-sub main() {
-    my $n;
-    my %data;
-    my @hashinfo;
-    my $x, $i;
-
-    %data = read_input();
-    @hashinfo = gen_perfect_hash(\%data);
-
-    if (!@hashinfo) {
-	die "$0: no hash found\n";
-    }
-
-    verify_hash_table(\%data, \@hashinfo);
-
-    ($n, $sv, $f1, $f2, $g) = @hashinfo;
-
-    print "static int HASHNAME_fg1[$n] =\n";
-    print "{\n";
-    for ($i = 0; $i < $n; $i++) {
-	print "\t", ${$g}[${$f1}[$i]], "\n";
-    }
-    print "};\n\n";
-
-    print "static int HASHNAME_fg2[$n] =\n";
-    print "{\n";
-    for ($i = 0; $i < $n; $i++) {
-	print "\t", ${$g}[${$f2}[$i]], "\n";
-    }
-    print "};\n\n";
-
-    print "struct p_hash HASHNAME =\n";
-    print "{\n";
-    print "\t$n\n";
-    print "\t$sv\n";
-    print "\tHASHNAME_fg1,\n";
-    print "\tHASHNAME_fg2,\n";
-    print "};\n";
-}
-
-main();
--- a/nasmbuild/nasm-2.13rc9/asm/pptok.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,511 +0,0 @@
-/* Automatically generated from ./asm/pptok.dat by ./asm/pptok.pl */
-/* Do not edit */
-
-#include "compiler.h"
-#include <ctype.h>
-#include "nasmlib.h"
-#include "hashtbl.h"
-#include "preproc.h"
-
-const char * const pp_directives[109] = {
-    "%elif",
-    "%elifn",
-    "%elifctx",
-    "%elifnctx",
-    "%elifdef",
-    "%elifndef",
-    "%elifempty",
-    "%elifnempty",
-    "%elifenv",
-    "%elifnenv",
-    "%elifid",
-    "%elifnid",
-    "%elifidn",
-    "%elifnidn",
-    "%elifidni",
-    "%elifnidni",
-    "%elifmacro",
-    "%elifnmacro",
-    "%elifnum",
-    "%elifnnum",
-    "%elifstr",
-    "%elifnstr",
-    "%eliftoken",
-    "%elifntoken",
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    "%if",
-    "%ifn",
-    "%ifctx",
-    "%ifnctx",
-    "%ifdef",
-    "%ifndef",
-    "%ifempty",
-    "%ifnempty",
-    "%ifenv",
-    "%ifnenv",
-    "%ifid",
-    "%ifnid",
-    "%ifidn",
-    "%ifnidn",
-    "%ifidni",
-    "%ifnidni",
-    "%ifmacro",
-    "%ifnmacro",
-    "%ifnum",
-    "%ifnnum",
-    "%ifstr",
-    "%ifnstr",
-    "%iftoken",
-    "%ifntoken",
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    NULL,
-    "%arg",
-    "%assign",
-    "%clear",
-    "%define",
-    "%defstr",
-    "%deftok",
-    "%depend",
-    "%else",
-    "%endif",
-    "%endm",
-    "%endmacro",
-    "%endrep",
-    "%error",
-    "%exitmacro",
-    "%exitrep",
-    "%fatal",
-    "%iassign",
-    "%idefine",
-    "%idefstr",
-    "%ideftok",
-    "%imacro",
-    "%include",
-    "%irmacro",
-    "%ixdefine",
-    "%line",
-    "%local",
-    "%macro",
-    "%pathsearch",
-    "%pop",
-    "%pragma",
-    "%push",
-    "%rep",
-    "%repl",
-    "%rmacro",
-    "%rotate",
-    "%stacksize",
-    "%strcat",
-    "%strlen",
-    "%substr",
-    "%undef",
-    "%unimacro",
-    "%unmacro",
-    "%use",
-    "%warning",
-    "%xdefine",
-};
-const uint8_t pp_directives_len[109] = {
-    5,
-    6,
-    8,
-    9,
-    8,
-    9,
-    10,
-    11,
-    8,
-    9,
-    7,
-    8,
-    8,
-    9,
-    9,
-    10,
-    10,
-    11,
-    8,
-    9,
-    8,
-    9,
-    10,
-    11,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    3,
-    4,
-    6,
-    7,
-    6,
-    7,
-    8,
-    9,
-    6,
-    7,
-    5,
-    6,
-    6,
-    7,
-    7,
-    8,
-    8,
-    9,
-    6,
-    7,
-    6,
-    7,
-    8,
-    9,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    0,
-    4,
-    7,
-    6,
-    7,
-    7,
-    7,
-    7,
-    5,
-    6,
-    5,
-    9,
-    7,
-    6,
-    10,
-    8,
-    6,
-    8,
-    8,
-    8,
-    8,
-    7,
-    8,
-    8,
-    9,
-    5,
-    6,
-    6,
-    11,
-    4,
-    7,
-    5,
-    4,
-    5,
-    7,
-    7,
-    10,
-    7,
-    7,
-    7,
-    6,
-    9,
-    8,
-    4,
-    8,
-    8,
-};
-enum preproc_token pp_token_hash(const char *token)
-{
-#define UNUSED (65535/3)
-    static const int16_t hash1[128] = {
-        UNUSED,
-        UNUSED,
-        0,
-        0,
-        0,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        -45,
-        UNUSED,
-        0,
-        UNUSED,
-        -60,
-        0,
-        UNUSED,
-        UNUSED,
-        -42,
-        UNUSED,
-        UNUSED,
-        -49,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        48,
-        UNUSED,
-        UNUSED,
-        49,
-        5,
-        UNUSED,
-        -53,
-        65,
-        UNUSED,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        38,
-        UNUSED,
-        31,
-        0,
-        UNUSED,
-        6,
-        35,
-        UNUSED,
-        UNUSED,
-        60,
-        33,
-        UNUSED,
-        136,
-        UNUSED,
-        -87,
-        -12,
-        42,
-        17,
-        0,
-        130,
-        -85,
-        UNUSED,
-        UNUSED,
-        82,
-        0,
-        UNUSED,
-        16,
-        98,
-        -66,
-        -100,
-        0,
-        -10,
-        -76,
-        UNUSED,
-        84,
-        UNUSED,
-        1,
-        UNUSED,
-        0,
-        12,
-        UNUSED,
-        -145,
-        41,
-        106,
-        UNUSED,
-        85,
-        UNUSED,
-        43,
-        85,
-        UNUSED,
-        23,
-        0,
-        -14,
-        UNUSED,
-        UNUSED,
-        77,
-        -2,
-        UNUSED,
-        UNUSED,
-        11,
-        91,
-        -7,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        107,
-        44,
-        UNUSED,
-    };
-    static const int16_t hash2[128] = {
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        80,
-        0,
-        64,
-        UNUSED,
-        0,
-        0,
-        0,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        64,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        121,
-        0,
-        UNUSED,
-        22,
-        100,
-        63,
-        UNUSED,
-        114,
-        UNUSED,
-        178,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        -40,
-        UNUSED,
-        88,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        87,
-        UNUSED,
-        42,
-        UNUSED,
-        UNUSED,
-        141,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        103,
-        UNUSED,
-        46,
-        106,
-        149,
-        UNUSED,
-        23,
-        53,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        33,
-        0,
-        0,
-        92,
-        UNUSED,
-        50,
-        72,
-        UNUSED,
-        7,
-        43,
-        66,
-        UNUSED,
-        UNUSED,
-        113,
-        52,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        99,
-        101,
-        71,
-        UNUSED,
-        20,
-        63,
-        32,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        97,
-        18,
-        84,
-        132,
-        UNUSED,
-        37,
-        UNUSED,
-        9,
-        20,
-        UNUSED,
-        UNUSED,
-        75,
-        98,
-        UNUSED,
-    };
-    uint32_t k1, k2;
-    uint64_t crc;
-    uint16_t ix;
-
-    crc = crc64i(UINT64_C(0xaee7ac5ccabdec91), token);
-    k1 = (uint32_t)crc;
-    k2 = (uint32_t)(crc >> 32);
-
-    ix = hash1[k1 & 0x7f] + hash2[k2 & 0x7f];
-    if (ix >= 109)
-        return PP_INVALID;
-
-    if (!pp_directives[ix] || nasm_stricmp(pp_directives[ix], token))
-        return PP_INVALID;
-
-    return ix;
-}
--- a/nasmbuild/nasm-2.13rc9/asm/pptok.dat	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-## --------------------------------------------------------------------------
-##   
-##   Copyright 1996-2016 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##     
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# A * at the end indicates a condition; the list of conditions are
-# on lines starting with *; the negatives are auto-generated
-#
-*
-*ctx
-*def
-*empty
-*env
-*id
-*idn
-*idni
-*macro
-*num
-*str
-*token
-%arg
-%assign
-%clear
-%define
-%defstr
-%deftok
-%depend
-%elif*
-%else
-%endif
-%endm
-%endmacro
-%endrep
-%error
-%exitmacro
-%exitrep
-%fatal
-%iassign
-%idefine
-%idefstr
-%ideftok
-%if*
-%imacro
-%irmacro
-%include
-%ixdefine
-%line
-%local
-%macro
-%pathsearch
-%pop
-%pragma
-%push
-%rep
-%repl
-%rmacro
-%rotate
-%stacksize
-%strcat
-%strlen
-%substr
-%undef
-%unimacro
-%unmacro
-%use
-%warning
-%xdefine
--- a/nasmbuild/nasm-2.13rc9/asm/pptok.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/* Automatically generated from ./asm/pptok.dat by ./asm/pptok.pl */
-/* Do not edit */
-
-enum preproc_token {
-    PP_ELIF          =   0,
-    PP_ELIFN         =   1,
-    PP_ELIFCTX       =   2,
-    PP_ELIFNCTX      =   3,
-    PP_ELIFDEF       =   4,
-    PP_ELIFNDEF      =   5,
-    PP_ELIFEMPTY     =   6,
-    PP_ELIFNEMPTY    =   7,
-    PP_ELIFENV       =   8,
-    PP_ELIFNENV      =   9,
-    PP_ELIFID        =  10,
-    PP_ELIFNID       =  11,
-    PP_ELIFIDN       =  12,
-    PP_ELIFNIDN      =  13,
-    PP_ELIFIDNI      =  14,
-    PP_ELIFNIDNI     =  15,
-    PP_ELIFMACRO     =  16,
-    PP_ELIFNMACRO    =  17,
-    PP_ELIFNUM       =  18,
-    PP_ELIFNNUM      =  19,
-    PP_ELIFSTR       =  20,
-    PP_ELIFNSTR      =  21,
-    PP_ELIFTOKEN     =  22,
-    PP_ELIFNTOKEN    =  23,
-    PP_IF            =  32,
-    PP_IFN           =  33,
-    PP_IFCTX         =  34,
-    PP_IFNCTX        =  35,
-    PP_IFDEF         =  36,
-    PP_IFNDEF        =  37,
-    PP_IFEMPTY       =  38,
-    PP_IFNEMPTY      =  39,
-    PP_IFENV         =  40,
-    PP_IFNENV        =  41,
-    PP_IFID          =  42,
-    PP_IFNID         =  43,
-    PP_IFIDN         =  44,
-    PP_IFNIDN        =  45,
-    PP_IFIDNI        =  46,
-    PP_IFNIDNI       =  47,
-    PP_IFMACRO       =  48,
-    PP_IFNMACRO      =  49,
-    PP_IFNUM         =  50,
-    PP_IFNNUM        =  51,
-    PP_IFSTR         =  52,
-    PP_IFNSTR        =  53,
-    PP_IFTOKEN       =  54,
-    PP_IFNTOKEN      =  55,
-    PP_ARG           =  64,
-    PP_ASSIGN        =  65,
-    PP_CLEAR         =  66,
-    PP_DEFINE        =  67,
-    PP_DEFSTR        =  68,
-    PP_DEFTOK        =  69,
-    PP_DEPEND        =  70,
-    PP_ELSE          =  71,
-    PP_ENDIF         =  72,
-    PP_ENDM          =  73,
-    PP_ENDMACRO      =  74,
-    PP_ENDREP        =  75,
-    PP_ERROR         =  76,
-    PP_EXITMACRO     =  77,
-    PP_EXITREP       =  78,
-    PP_FATAL         =  79,
-    PP_IASSIGN       =  80,
-    PP_IDEFINE       =  81,
-    PP_IDEFSTR       =  82,
-    PP_IDEFTOK       =  83,
-    PP_IMACRO        =  84,
-    PP_INCLUDE       =  85,
-    PP_IRMACRO       =  86,
-    PP_IXDEFINE      =  87,
-    PP_LINE          =  88,
-    PP_LOCAL         =  89,
-    PP_MACRO         =  90,
-    PP_PATHSEARCH    =  91,
-    PP_POP           =  92,
-    PP_PRAGMA        =  93,
-    PP_PUSH          =  94,
-    PP_REP           =  95,
-    PP_REPL          =  96,
-    PP_RMACRO        =  97,
-    PP_ROTATE        =  98,
-    PP_STACKSIZE     =  99,
-    PP_STRCAT        = 100,
-    PP_STRLEN        = 101,
-    PP_SUBSTR        = 102,
-    PP_UNDEF         = 103,
-    PP_UNIMACRO      = 104,
-    PP_UNMACRO       = 105,
-    PP_USE           = 106,
-    PP_WARNING       = 107,
-    PP_XDEFINE       = 108,
-    PP_INVALID       =  -1
-};
-
-enum pp_conditional {
-    PPC_IF           =   0,    PPC_IFCTX        =   2,    PPC_IFDEF        =   4,    PPC_IFEMPTY      =   6,    PPC_IFENV        =   8,    PPC_IFID         =  10,    PPC_IFIDN        =  12,    PPC_IFIDNI       =  14,    PPC_IFMACRO      =  16,    PPC_IFNUM        =  18,    PPC_IFSTR        =  20,    PPC_IFTOKEN      =  22
-};
-
-#define PP_COND(x)     ((enum pp_conditional)((x) & 0x1e))
-#define PP_IS_COND(x)  ((unsigned int)(x) < PP_ARG)
-#define PP_NEGATIVE(x) ((x) & 1)
-
-#define CASE_PP_ELIF \
-	case PP_ELIF: \
-	case PP_ELIFN:\
-	case PP_ELIFCTX: \
-	case PP_ELIFNCTX:\
-	case PP_ELIFDEF: \
-	case PP_ELIFNDEF:\
-	case PP_ELIFEMPTY: \
-	case PP_ELIFNEMPTY:\
-	case PP_ELIFENV: \
-	case PP_ELIFNENV:\
-	case PP_ELIFID: \
-	case PP_ELIFNID:\
-	case PP_ELIFIDN: \
-	case PP_ELIFNIDN:\
-	case PP_ELIFIDNI: \
-	case PP_ELIFNIDNI:\
-	case PP_ELIFMACRO: \
-	case PP_ELIFNMACRO:\
-	case PP_ELIFNUM: \
-	case PP_ELIFNNUM:\
-	case PP_ELIFSTR: \
-	case PP_ELIFNSTR:\
-	case PP_ELIFTOKEN: \
-	case PP_ELIFNTOKEN
-#define CASE_PP_IF \
-	case PP_IF: \
-	case PP_IFN:\
-	case PP_IFCTX: \
-	case PP_IFNCTX:\
-	case PP_IFDEF: \
-	case PP_IFNDEF:\
-	case PP_IFEMPTY: \
-	case PP_IFNEMPTY:\
-	case PP_IFENV: \
-	case PP_IFNENV:\
-	case PP_IFID: \
-	case PP_IFNID:\
-	case PP_IFIDN: \
-	case PP_IFNIDN:\
-	case PP_IFIDNI: \
-	case PP_IFNIDNI:\
-	case PP_IFMACRO: \
-	case PP_IFNMACRO:\
-	case PP_IFNUM: \
-	case PP_IFNNUM:\
-	case PP_IFSTR: \
-	case PP_IFNSTR:\
-	case PP_IFTOKEN: \
-	case PP_IFNTOKEN
--- a/nasmbuild/nasm-2.13rc9/asm/pptok.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-# Automatically generated from ./asm/pptok.dat by ./asm/pptok.pl
-# Do not edit
-
-%pptok_hash = (
-    '%elif' => 0,
-    '%elifn' => 1,
-    '%elifctx' => 2,
-    '%elifnctx' => 3,
-    '%elifdef' => 4,
-    '%elifndef' => 5,
-    '%elifempty' => 6,
-    '%elifnempty' => 7,
-    '%elifenv' => 8,
-    '%elifnenv' => 9,
-    '%elifid' => 10,
-    '%elifnid' => 11,
-    '%elifidn' => 12,
-    '%elifnidn' => 13,
-    '%elifidni' => 14,
-    '%elifnidni' => 15,
-    '%elifmacro' => 16,
-    '%elifnmacro' => 17,
-    '%elifnum' => 18,
-    '%elifnnum' => 19,
-    '%elifstr' => 20,
-    '%elifnstr' => 21,
-    '%eliftoken' => 22,
-    '%elifntoken' => 23,
-    '%if' => 32,
-    '%ifn' => 33,
-    '%ifctx' => 34,
-    '%ifnctx' => 35,
-    '%ifdef' => 36,
-    '%ifndef' => 37,
-    '%ifempty' => 38,
-    '%ifnempty' => 39,
-    '%ifenv' => 40,
-    '%ifnenv' => 41,
-    '%ifid' => 42,
-    '%ifnid' => 43,
-    '%ifidn' => 44,
-    '%ifnidn' => 45,
-    '%ifidni' => 46,
-    '%ifnidni' => 47,
-    '%ifmacro' => 48,
-    '%ifnmacro' => 49,
-    '%ifnum' => 50,
-    '%ifnnum' => 51,
-    '%ifstr' => 52,
-    '%ifnstr' => 53,
-    '%iftoken' => 54,
-    '%ifntoken' => 55,
-    '%arg' => 64,
-    '%assign' => 65,
-    '%clear' => 66,
-    '%define' => 67,
-    '%defstr' => 68,
-    '%deftok' => 69,
-    '%depend' => 70,
-    '%else' => 71,
-    '%endif' => 72,
-    '%endm' => 73,
-    '%endmacro' => 74,
-    '%endrep' => 75,
-    '%error' => 76,
-    '%exitmacro' => 77,
-    '%exitrep' => 78,
-    '%fatal' => 79,
-    '%iassign' => 80,
-    '%idefine' => 81,
-    '%idefstr' => 82,
-    '%ideftok' => 83,
-    '%imacro' => 84,
-    '%include' => 85,
-    '%irmacro' => 86,
-    '%ixdefine' => 87,
-    '%line' => 88,
-    '%local' => 89,
-    '%macro' => 90,
-    '%pathsearch' => 91,
-    '%pop' => 92,
-    '%pragma' => 93,
-    '%push' => 94,
-    '%rep' => 95,
-    '%repl' => 96,
-    '%rmacro' => 97,
-    '%rotate' => 98,
-    '%stacksize' => 99,
-    '%strcat' => 100,
-    '%strlen' => 101,
-    '%substr' => 102,
-    '%undef' => 103,
-    '%unimacro' => 104,
-    '%unmacro' => 105,
-    '%use' => 106,
-    '%warning' => 107,
-    '%xdefine' => 108,
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/asm/pptok.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,271 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##   
-##   Copyright 1996-2009 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##     
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# Produce pptok.c, pptok.h and pptok.ph from pptok.dat
-#
-
-require 'phash.ph';
-
-my($what, $in, $out) = @ARGV;
-
-#
-# Read pptok.dat
-#
-open(IN, "< $in") or die "$0: cannot open: $in\n";
-while (defined($line = <IN>)) {
-    $line =~ s/\r?\n$//;	# Remove trailing \r\n or \n
-    $line =~ s/^\s+//;		# Remove leading whitespace
-    $line =~ s/\s*\#.*$//;	# Remove comments and trailing whitespace
-    next if ($line eq '');
-
-    if ($line =~ /^\%(.*)\*$/) {
-	push(@cctok, $1);
-    } elsif ($line =~ /^\%(.*)$/) {
-	push(@pptok, $1);
-    } elsif ($line =~ /^\*(.*)$/) {
-	push(@cond, $1);
-    }
-}
-close(IN);
-
-@cctok = sort @cctok;
-@cond = sort @cond;
-@pptok = sort @pptok;
-
-# Generate the expanded list including conditionals.  The conditionals
-# are at the beginning, padded to a power of 2, with the inverses
-# interspersed; this allows a simple mask to pick out the condition.
-
-while ((scalar @cond) & (scalar @cond)-1) {
-    push(@cond, undef);
-}
-
-@cptok = ();
-foreach $ct (@cctok) {
-    foreach $cc (@cond) {
-	if (defined($cc)) {
-	    push(@cptok, $ct.$cc);
-	    push(@cptok, $ct.'n'.$cc);
-	} else {
-	    push(@cptok, undef, undef);
-	}
-    }
-}
-$first_uncond = $pptok[0];
-@pptok = (@cptok, @pptok);
-
-open(OUT, "> $out") or die "$0: cannot open: $out\n";
-
-#
-# Output pptok.h
-#
-if ($what eq 'h') {
-    print OUT "/* Automatically generated from $in by $0 */\n";
-    print OUT "/* Do not edit */\n";
-    print OUT "\n";
-
-    print OUT "enum preproc_token {\n";
-    $n = 0;
-    foreach $pt (@pptok) {
-	if (defined($pt)) {
-	    printf OUT "    %-16s = %3d,\n", "PP_\U$pt\E", $n;
-	}
-	$n++;
-    }
-    printf OUT "    %-16s = %3d\n", 'PP_INVALID', -1;
-    print OUT "};\n";
-    print OUT "\n";
-
-    print  OUT "enum pp_conditional {\n";
-    $n = 0;
-    $c = '';
-    foreach $cc (@cond) {
-	if (defined($cc)) {
-	    printf OUT "$c    %-16s = %3d", "PPC_IF\U$cc\E", $n;
-	    $c = ',';
-	}
-	$n += 2;
-    }
-    print  OUT "\n};\n\n";
-
-    printf OUT "#define PP_COND(x)     ((enum pp_conditional)((x) & 0x%x))\n",
-	(scalar(@cond)-1) << 1;
-    print  OUT "#define PP_IS_COND(x)  ((unsigned int)(x) < PP_\U$first_uncond\E)\n";
-    print  OUT "#define PP_NEGATIVE(x) ((x) & 1)\n";
-    print  OUT "\n";
-
-    foreach $ct (@cctok) {
-	print OUT "#define CASE_PP_\U$ct\E";
-	$pref = " \\\n";
-	foreach $cc (@cond) {
-	    if (defined($cc)) {
-		print OUT "$pref\tcase PP_\U${ct}${cc}\E: \\\n";
-		print OUT "\tcase PP_\U${ct}N${cc}\E";
-		$pref = ":\\\n";
-	    }
-	}
-	print OUT "\n";		# No colon or newline on the last one
-    }
-}
-
-#
-# Output pptok.c
-#
-if ($what eq 'c') {
-    print OUT "/* Automatically generated from $in by $0 */\n";
-    print OUT "/* Do not edit */\n";
-    print OUT "\n";
-
-    my %tokens = ();
-    my @tokendata = ();
-
-    my $n = 0;
-    foreach $pt (@pptok) {
-	if (defined($pt)) {
-	    $tokens{'%'.$pt} = $n;
-	    if ($pt =~ /[\@\[\]\\_]/) {
-		# Fail on characters which look like upper-case letters
-		# to the quick-and-dirty downcasing in the prehash
-		# (see below)
-		die "$in: invalid character in token: $pt";
-	    }
-	}
-	$n++;
-    }
-
-    my @hashinfo = gen_perfect_hash(\%tokens);
-    if (!@hashinfo) {
-	die "$0: no hash found\n";
-    }
-
-    # Paranoia...
-    verify_hash_table(\%tokens, \@hashinfo);
-
-    ($n, $sv, $g) = @hashinfo;
-    $sv2 = $sv+2;
-
-    die if ($n & ($n-1));
-
-    print OUT "#include \"compiler.h\"\n";
-    print OUT "#include <ctype.h>\n";
-    print OUT "#include \"nasmlib.h\"\n";
-    print OUT "#include \"hashtbl.h\"\n";
-    print OUT "#include \"preproc.h\"\n";
-    print OUT "\n";
-
-    # Note that this is global.
-    printf OUT "const char * const pp_directives[%d] = {\n", scalar(@pptok);
-    foreach $d (@pptok) {
-	if (defined($d)) {
-	    print OUT "    \"%$d\",\n";
-	} else {
-	    print OUT "    NULL,\n";
-	}
-    }
-    print OUT  "};\n";
-
-    printf OUT "const uint8_t pp_directives_len[%d] = {\n", scalar(@pptok);
-    foreach $d (@pptok) {
-	printf OUT "    %d,\n", defined($d) ? length($d)+1 : 0;
-    }
-    print OUT  "};\n";
-
-    print OUT "enum preproc_token pp_token_hash(const char *token)\n";
-    print OUT "{\n";
-
-    # Put a large value in unused slots.  This makes it extremely unlikely
-    # that any combination that involves unused slot will pass the range test.
-    # This speeds up rejection of unrecognized tokens, i.e. identifiers.
-    print OUT "#define UNUSED (65535/3)\n";
-
-    print OUT "    static const int16_t hash1[$n] = {\n";
-    for ($i = 0; $i < $n; $i++) {
-	my $h = ${$g}[$i*2+0];
-	print OUT "        ", defined($h) ? $h : 'UNUSED', ",\n";
-    }
-    print OUT "    };\n";
-
-    print OUT "    static const int16_t hash2[$n] = {\n";
-    for ($i = 0; $i < $n; $i++) {
-	my $h = ${$g}[$i*2+1];
-	print OUT "        ", defined($h) ? $h : 'UNUSED', ",\n";
-    }
-    print OUT "    };\n";
-
-    print OUT  "    uint32_t k1, k2;\n";
-    print OUT  "    uint64_t crc;\n";
-    # For correct overflow behavior, "ix" should be unsigned of the same
-    # width as the hash arrays.
-    print OUT  "    uint16_t ix;\n";
-    print OUT  "\n";
-
-    printf OUT "    crc = crc64i(UINT64_C(0x%08x%08x), token);\n",
-	$$sv[0], $$sv[1];
-    print  OUT "    k1 = (uint32_t)crc;\n";
-    print  OUT "    k2 = (uint32_t)(crc >> 32);\n";
-    print  OUT "\n";
-    printf OUT "    ix = hash1[k1 & 0x%x] + hash2[k2 & 0x%x];\n", $n-1, $n-1;
-    printf OUT "    if (ix >= %d)\n", scalar(@pptok);
-    print OUT  "        return PP_INVALID;\n";
-    print OUT  "\n";
-
-    print OUT  "    if (!pp_directives[ix] || nasm_stricmp(pp_directives[ix], token))\n";
-    print OUT  "        return PP_INVALID;\n";
-    print OUT  "\n";
-    print OUT  "    return ix;\n";
-    print OUT  "}\n";
-}
-
-#
-# Output pptok.ph
-#
-if ($what eq 'ph') {
-    print OUT "# Automatically generated from $in by $0\n";
-    print OUT "# Do not edit\n";
-    print OUT "\n";
-    
-    print OUT "%pptok_hash = (\n";
-    $n = 0;
-    foreach $tok (@pptok) {
-	if (defined($tok)) {
-	    printf OUT "    '%%%s' => %d,\n", $tok, $n;
-	}
-	$n++;
-    }
-    print OUT ");\n";
-    print OUT "1;\n";
-}
-
-    
--- a/nasmbuild/nasm-2.13rc9/asm/pragma.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,218 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * Parse and handle [pragma] directives.  The preprocessor handles
- * %pragma preproc directives separately, all other namespaces are
- * simply converted to [pragma].
- */
-
-#include "compiler.h"
-
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <limits.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "assemble.h"
-#include "error.h"
-
-/*
- * Handle [pragma] directives.  [pragma] is generally produced by
- * the %pragma preprocessor directive, which simply passes on any
- * string that it finds *except* %pragma preproc.  The idea is
- * that pragmas are of the form:
- *
- * %pragma <facility> <opname> [<options>...]
- *
- * ... where "facility" can be either a generic facility or a backend
- * name.
- *
- * The following names are currently reserved for global facilities;
- * so far none of these have any defined pragmas at all:
- *
- * preproc	- preprocessor
- * asm		- assembler
- * list		- listing generator
- * file		- generic file handling
- * input	- input file handling
- * output	- backend-independent output handling
- * debug	- backend-independent debug handling
- * ignore	- dummy pragma (can be used to "comment out")
- *
- * This function should generally not error out if it doesn't understand
- * what a pragma is for, for unknown arguments, etc; the whole point of
- * a pragma is that future releases might add new ones that should be
- * ignored rather than be an error.  Erroring out is acceptable for
- * known pragmas suffering from parsing errors and so on.
- *
- * Adding default-suppressed warnings would, however, be a good idea
- * at some point.
- */
-static struct pragma_facility global_pragmas[] =
-{
-    { "preproc",	NULL }, /* This shouldn't happen... */
-    { "asm",		NULL },
-    { "list",		NULL },
-    { "file",		NULL },
-    { "input",		NULL },
-    { "output",		NULL },
-    { "debug",		NULL },
-    { "ignore",		NULL },
-    { NULL, NULL }
-};
-
-/*
- * Search a pragma list for a known pragma facility and if so, invoke
- * the handler.  Return true if processing is complete.
- * The "default name", if set, matches the final NULL entry (used
- * for backends, so multiple backends can share the same list under
- * some circumstances.)
- */
-static bool search_pragma_list(const struct pragma_facility *list,
-                               const char *default_name,
-			       struct pragma *pragma)
-{
-    const struct pragma_facility *pf;
-    enum directive_result rv;
-
-    if (!list)
-	return false;
-
-    for (pf = list; pf->name; pf++) {
-        if (!nasm_stricmp(pragma->facility_name, pf->name))
-            goto found_it;
-    }
-
-    if (default_name && !nasm_stricmp(pragma->facility_name, default_name))
-        goto found_it;
-
-    return false;
-
-found_it:
-    pragma->facility = pf;
-
-    /* If the handler is NULL all pragmas are unknown... */
-    if (pf->handler)
-        rv = pf->handler(pragma);
-    else
-        rv = DIRR_UNKNOWN;
-
-    switch (rv) {
-    case DIRR_UNKNOWN:
-        switch (pragma->opcode) {
-        case D_none:
-            nasm_error(ERR_WARNING|ERR_PASS2|ERR_WARN_BAD_PRAGMA,
-                       "empty %%pragma %s", pragma->facility_name);
-            break;
-        default:
-            nasm_error(ERR_WARNING|ERR_PASS2|ERR_WARN_UNKNOWN_PRAGMA,
-                       "unknown %%pragma %s %s",
-                       pragma->facility_name, pragma->opname);
-            break;
-        }
-        break;
-
-    case DIRR_OK:
-    case DIRR_ERROR:
-        break;                  /* Nothing to do */
-
-    case DIRR_BADPARAM:
-        /*
-         * This one is an error.  Don't use it if forward compatibility
-         * would be compromised, as opposed to an inherent error.
-         */
-        nasm_error(ERR_NONFATAL, "bad argument to %%pragma %s %s",
-                   pragma->facility_name, pragma->opname);
-        break;
-
-    default:
-        panic();
-    }
-    return true;
-}
-
-void process_pragma(char *str)
-{
-    struct pragma pragma;
-    char *p;
-
-    nasm_zero(&pragma);
-
-    pragma.facility_name = nasm_get_word(str, &p);
-    if (!pragma.facility_name) {
-	nasm_error(ERR_WARNING|ERR_PASS2|ERR_WARN_BAD_PRAGMA,
-		   "empty pragma directive");
-        return;                 /* Empty pragma */
-    }
-
-    /*
-     * The facility "ignore" means just that; don't even complain of
-     * the absence of an operation.
-     */
-    if (!nasm_stricmp(pragma.facility_name, "ignore"))
-        return;
-
-    pragma.opname = nasm_get_word(p, &p);
-    if (!pragma.opname)
-        pragma.opcode = D_none;
-    else
-        pragma.opcode = find_directive(pragma.opname);
-
-    pragma.tail = nasm_skip_spaces(p);
-
-    /* Look for a global pragma namespace */
-    if (search_pragma_list(global_pragmas, NULL, &pragma))
-	return;
-
-    /* Look to see if it is an output backend pragma */
-    if (search_pragma_list(ofmt->pragmas, ofmt->shortname, &pragma))
-	return;
-
-    /* Look to see if it is a debug format pragma */
-    if (search_pragma_list(dfmt->pragmas, dfmt->shortname, &pragma))
-	return;
-
-    /*
-     * Note: it would be nice to warn for an unknown namespace,
-     * but in order to do so we need to walk *ALL* the backends
-     * in order to make sure we aren't dealing with a pragma that
-     * is for another backend.  On the other hand, that could
-     * also be a warning with a separate warning flag.
-     *
-     * Leave this for the future, however, the warning classes are
-     * already defined for future compatibility.
-     */
-}
--- a/nasmbuild/nasm-2.13rc9/asm/preproc-nop.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,188 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * This is a null preprocessor which just copies lines from input
- * to output. It's used when someone explicitly requests that NASM
- * not preprocess their source file.
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <limits.h>
-#include <time.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "preproc.h"
-#include "listing.h"
-
-#define BUF_DELTA 512
-
-static FILE *nop_fp;
-static int32_t nop_lineinc;
-
-static void nop_init(void)
-{
-    /* Nothing to do */
-}
-
-static void nop_reset(char *file, int pass, StrList **deplist)
-{
-    src_set(0, file);
-    nop_lineinc = 1;
-    nop_fp = nasm_open_read(file, NF_TEXT);
-
-    if (!nop_fp)
-	nasm_fatal(ERR_NOFILE, "unable to open input file `%s'", file);
-    (void)pass;                 /* placate compilers */
-
-    nasm_add_string_to_strlist(deplist, file);
-}
-
-static char *nop_getline(void)
-{
-    char *buffer, *p, *q;
-    int bufsize;
-
-    bufsize = BUF_DELTA;
-    buffer = nasm_malloc(BUF_DELTA);
-    src_set_linnum(src_get_linnum() + nop_lineinc);
-
-    while (1) {                 /* Loop to handle %line */
-
-        p = buffer;
-        while (1) {             /* Loop to handle long lines */
-            q = fgets(p, bufsize - (p - buffer), nop_fp);
-            if (!q)
-                break;
-            p += strlen(p);
-            if (p > buffer && p[-1] == '\n')
-                break;
-            if (p - buffer > bufsize - 10) {
-                int offset;
-                offset = p - buffer;
-                bufsize += BUF_DELTA;
-                buffer = nasm_realloc(buffer, bufsize);
-                p = buffer + offset;
-            }
-        }
-
-        if (!q && p == buffer) {
-            nasm_free(buffer);
-            return NULL;
-        }
-
-        /*
-         * Play safe: remove CRs, LFs and any spurious ^Zs, if any of
-         * them are present at the end of the line.
-         */
-        buffer[strcspn(buffer, "\r\n\032")] = '\0';
-
-        if (!nasm_strnicmp(buffer, "%line", 5)) {
-            int32_t ln;
-            int li;
-            char *nm = nasm_malloc(strlen(buffer));
-            if (sscanf(buffer + 5, "%"PRId32"+%d %s", &ln, &li, nm) == 3) {
-                src_set(ln, nm);
-                nop_lineinc = li;
-                nasm_free(nm);
-                continue;
-            }
-            nasm_free(nm);
-        }
-        break;
-    }
-
-    lfmt->line(LIST_READ, buffer);
-
-    return buffer;
-}
-
-static void nop_cleanup(int pass)
-{
-    (void)pass;                     /* placate GCC */
-    if (nop_fp) {
-        fclose(nop_fp);
-        nop_fp = NULL;
-    }
-}
-
-static void nop_extra_stdmac(macros_t *macros)
-{
-    (void)macros;
-}
-
-static void nop_pre_define(char *definition)
-{
-    (void)definition;
-}
-
-static void nop_pre_undefine(char *definition)
-{
-    (void)definition;
-}
-
-static void nop_pre_include(char *fname)
-{
-    (void)fname;
-}
-
-static void nop_include_path(char *path)
-{
-    (void)path;
-}
-
-static void nop_error_list_macros(int severity)
-{
-    (void)severity;
-}
-
-const struct preproc_ops preproc_nop = {
-    nop_init,
-    nop_reset,
-    nop_getline,
-    nop_cleanup,
-    nop_extra_stdmac,
-    nop_pre_define,
-    nop_pre_undefine,
-    nop_pre_include,
-    nop_include_path,
-    nop_error_list_macros,
-};
--- a/nasmbuild/nasm-2.13rc9/asm/preproc.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5422 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * preproc.c   macro preprocessor for the Netwide Assembler
- */
-
-/* Typical flow of text through preproc
- *
- * pp_getline gets tokenized lines, either
- *
- *   from a macro expansion
- *
- * or
- *   {
- *   read_line  gets raw text from stdmacpos, or predef, or current input file
- *   tokenize   converts to tokens
- *   }
- *
- * expand_mmac_params is used to expand %1 etc., unless a macro is being
- * defined or a false conditional is being processed
- * (%0, %1, %+1, %-1, %%foo
- *
- * do_directive checks for directives
- *
- * expand_smacro is used to expand single line macros
- *
- * expand_mmacro is used to expand multi-line macros
- *
- * detoken is used to convert the line back to text
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <stddef.h>
-#include <string.h>
-#include <ctype.h>
-#include <limits.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "preproc.h"
-#include "hashtbl.h"
-#include "quote.h"
-#include "stdscan.h"
-#include "eval.h"
-#include "tokens.h"
-#include "tables.h"
-#include "listing.h"
-
-typedef struct SMacro SMacro;
-typedef struct MMacro MMacro;
-typedef struct MMacroInvocation MMacroInvocation;
-typedef struct Context Context;
-typedef struct Token Token;
-typedef struct Blocks Blocks;
-typedef struct Line Line;
-typedef struct Include Include;
-typedef struct Cond Cond;
-typedef struct IncPath IncPath;
-
-/*
- * Note on the storage of both SMacro and MMacros: the hash table
- * indexes them case-insensitively, and we then have to go through a
- * linked list of potential case aliases (and, for MMacros, parameter
- * ranges); this is to preserve the matching semantics of the earlier
- * code.  If the number of case aliases for a specific macro is a
- * performance issue, you may want to reconsider your coding style.
- */
-
-/*
- * Store the definition of a single-line macro.
- */
-struct SMacro {
-    SMacro *next;
-    char *name;
-    bool casesense;
-    bool in_progress;
-    unsigned int nparam;
-    Token *expansion;
-};
-
-/*
- * Store the definition of a multi-line macro. This is also used to
- * store the interiors of `%rep...%endrep' blocks, which are
- * effectively self-re-invoking multi-line macros which simply
- * don't have a name or bother to appear in the hash tables. %rep
- * blocks are signified by having a NULL `name' field.
- *
- * In a MMacro describing a `%rep' block, the `in_progress' field
- * isn't merely boolean, but gives the number of repeats left to
- * run.
- *
- * The `next' field is used for storing MMacros in hash tables; the
- * `next_active' field is for stacking them on istk entries.
- *
- * When a MMacro is being expanded, `params', `iline', `nparam',
- * `paramlen', `rotate' and `unique' are local to the invocation.
- */
-struct MMacro {
-    MMacro *next;
-    MMacroInvocation *prev;     /* previous invocation */
-    char *name;
-    int nparam_min, nparam_max;
-    bool casesense;
-    bool plus;                  /* is the last parameter greedy? */
-    bool nolist;                /* is this macro listing-inhibited? */
-    int64_t in_progress;        /* is this macro currently being expanded? */
-    int32_t max_depth;          /* maximum number of recursive expansions allowed */
-    Token *dlist;               /* All defaults as one list */
-    Token **defaults;           /* Parameter default pointers */
-    int ndefs;                  /* number of default parameters */
-    Line *expansion;
-
-    MMacro *next_active;
-    MMacro *rep_nest;           /* used for nesting %rep */
-    Token **params;             /* actual parameters */
-    Token *iline;               /* invocation line */
-    unsigned int nparam, rotate;
-    int *paramlen;
-    uint64_t unique;
-    int lineno;                 /* Current line number on expansion */
-    uint64_t condcnt;           /* number of if blocks... */
-
-    const char *fname;		/* File where defined */
-    int32_t xline;		/* First line in macro */
-};
-
-
-/* Store the definition of a multi-line macro, as defined in a
- * previous recursive macro expansion.
- */
-struct MMacroInvocation {
-    MMacroInvocation *prev;     /* previous invocation */
-    Token **params;             /* actual parameters */
-    Token *iline;               /* invocation line */
-    unsigned int nparam, rotate;
-    int *paramlen;
-    uint64_t unique;
-    uint64_t condcnt;
-};
-
-
-/*
- * The context stack is composed of a linked list of these.
- */
-struct Context {
-    Context *next;
-    char *name;
-    struct hash_table localmac;
-    uint32_t number;
-};
-
-/*
- * This is the internal form which we break input lines up into.
- * Typically stored in linked lists.
- *
- * Note that `type' serves a double meaning: TOK_SMAC_PARAM is not
- * necessarily used as-is, but is intended to denote the number of
- * the substituted parameter. So in the definition
- *
- *     %define a(x,y) ( (x) & ~(y) )
- *
- * the token representing `x' will have its type changed to
- * TOK_SMAC_PARAM, but the one representing `y' will be
- * TOK_SMAC_PARAM+1.
- *
- * TOK_INTERNAL_STRING is a dirty hack: it's a single string token
- * which doesn't need quotes around it. Used in the pre-include
- * mechanism as an alternative to trying to find a sensible type of
- * quote to use on the filename we were passed.
- */
-enum pp_token_type {
-    TOK_NONE = 0, TOK_WHITESPACE, TOK_COMMENT, TOK_ID,
-    TOK_PREPROC_ID, TOK_STRING,
-    TOK_NUMBER, TOK_FLOAT, TOK_SMAC_END, TOK_OTHER,
-    TOK_INTERNAL_STRING,
-    TOK_PREPROC_Q, TOK_PREPROC_QQ,
-    TOK_PASTE,              /* %+ */
-    TOK_INDIRECT,           /* %[...] */
-    TOK_SMAC_PARAM,         /* MUST BE LAST IN THE LIST!!! */
-    TOK_MAX = INT_MAX       /* Keep compiler from reducing the range */
-};
-
-#define PP_CONCAT_MASK(x) (1 << (x))
-#define PP_CONCAT_MATCH(t, mask) (PP_CONCAT_MASK((t)->type) & mask)
-
-struct tokseq_match {
-    int mask_head;
-    int mask_tail;
-};
-
-struct Token {
-    Token *next;
-    char *text;
-    union {
-        SMacro *mac;        /* associated macro for TOK_SMAC_END */
-        size_t len;         /* scratch length field */
-    } a;                    /* Auxiliary data */
-    enum pp_token_type type;
-};
-
-/*
- * Multi-line macro definitions are stored as a linked list of
- * these, which is essentially a container to allow several linked
- * lists of Tokens.
- *
- * Note that in this module, linked lists are treated as stacks
- * wherever possible. For this reason, Lines are _pushed_ on to the
- * `expansion' field in MMacro structures, so that the linked list,
- * if walked, would give the macro lines in reverse order; this
- * means that we can walk the list when expanding a macro, and thus
- * push the lines on to the `expansion' field in _istk_ in reverse
- * order (so that when popped back off they are in the right
- * order). It may seem cockeyed, and it relies on my design having
- * an even number of steps in, but it works...
- *
- * Some of these structures, rather than being actual lines, are
- * markers delimiting the end of the expansion of a given macro.
- * This is for use in the cycle-tracking and %rep-handling code.
- * Such structures have `finishes' non-NULL, and `first' NULL. All
- * others have `finishes' NULL, but `first' may still be NULL if
- * the line is blank.
- */
-struct Line {
-    Line *next;
-    MMacro *finishes;
-    Token *first;
-};
-
-/*
- * To handle an arbitrary level of file inclusion, we maintain a
- * stack (ie linked list) of these things.
- */
-struct Include {
-    Include *next;
-    FILE *fp;
-    Cond *conds;
-    Line *expansion;
-    const char *fname;
-    int lineno, lineinc;
-    MMacro *mstk;       /* stack of active macros/reps */
-};
-
-/*
- * Include search path. This is simply a list of strings which get
- * prepended, in turn, to the name of an include file, in an
- * attempt to find the file if it's not in the current directory.
- */
-struct IncPath {
-    IncPath *next;
-    char *path;
-};
-
-/*
- * File real name hash, so we don't have to re-search the include
- * path for every pass (and potentially more than that if a file
- * is used more than once.)
- */
-struct hash_table FileHash;
-
-/*
- * Conditional assembly: we maintain a separate stack of these for
- * each level of file inclusion. (The only reason we keep the
- * stacks separate is to ensure that a stray `%endif' in a file
- * included from within the true branch of a `%if' won't terminate
- * it and cause confusion: instead, rightly, it'll cause an error.)
- */
-struct Cond {
-    Cond *next;
-    int state;
-};
-enum {
-    /*
-     * These states are for use just after %if or %elif: IF_TRUE
-     * means the condition has evaluated to truth so we are
-     * currently emitting, whereas IF_FALSE means we are not
-     * currently emitting but will start doing so if a %else comes
-     * up. In these states, all directives are admissible: %elif,
-     * %else and %endif. (And of course %if.)
-     */
-    COND_IF_TRUE, COND_IF_FALSE,
-    /*
-     * These states come up after a %else: ELSE_TRUE means we're
-     * emitting, and ELSE_FALSE means we're not. In ELSE_* states,
-     * any %elif or %else will cause an error.
-     */
-    COND_ELSE_TRUE, COND_ELSE_FALSE,
-    /*
-     * These states mean that we're not emitting now, and also that
-     * nothing until %endif will be emitted at all. COND_DONE is
-     * used when we've had our moment of emission
-     * and have now started seeing %elifs. COND_NEVER is used when
-     * the condition construct in question is contained within a
-     * non-emitting branch of a larger condition construct,
-     * or if there is an error.
-     */
-    COND_DONE, COND_NEVER
-};
-#define emitting(x) ( (x) == COND_IF_TRUE || (x) == COND_ELSE_TRUE )
-
-/*
- * These defines are used as the possible return values for do_directive
- */
-#define NO_DIRECTIVE_FOUND  0
-#define DIRECTIVE_FOUND     1
-
-/*
- * This define sets the upper limit for smacro and recursive mmacro
- * expansions
- */
-#define DEADMAN_LIMIT (1 << 20)
-
-/* max reps */
-#define REP_LIMIT ((INT64_C(1) << 62))
-
-/*
- * Condition codes. Note that we use c_ prefix not C_ because C_ is
- * used in nasm.h for the "real" condition codes. At _this_ level,
- * we treat CXZ and ECXZ as condition codes, albeit non-invertible
- * ones, so we need a different enum...
- */
-static const char * const conditions[] = {
-    "a", "ae", "b", "be", "c", "cxz", "e", "ecxz", "g", "ge", "l", "le",
-    "na", "nae", "nb", "nbe", "nc", "ne", "ng", "nge", "nl", "nle", "no",
-    "np", "ns", "nz", "o", "p", "pe", "po", "rcxz", "s", "z"
-};
-enum pp_conds {
-    c_A, c_AE, c_B, c_BE, c_C, c_CXZ, c_E, c_ECXZ, c_G, c_GE, c_L, c_LE,
-    c_NA, c_NAE, c_NB, c_NBE, c_NC, c_NE, c_NG, c_NGE, c_NL, c_NLE, c_NO,
-    c_NP, c_NS, c_NZ, c_O, c_P, c_PE, c_PO, c_RCXZ, c_S, c_Z,
-    c_none = -1
-};
-static const enum pp_conds inverse_ccs[] = {
-    c_NA, c_NAE, c_NB, c_NBE, c_NC, -1, c_NE, -1, c_NG, c_NGE, c_NL, c_NLE,
-    c_A, c_AE, c_B, c_BE, c_C, c_E, c_G, c_GE, c_L, c_LE, c_O, c_P, c_S,
-    c_Z, c_NO, c_NP, c_PO, c_PE, -1, c_NS, c_NZ
-};
-
-/*
- * Directive names.
- */
-/* If this is a an IF, ELIF, ELSE or ENDIF keyword */
-static int is_condition(enum preproc_token arg)
-{
-    return PP_IS_COND(arg) || (arg == PP_ELSE) || (arg == PP_ENDIF);
-}
-
-/* For TASM compatibility we need to be able to recognise TASM compatible
- * conditional compilation directives. Using the NASM pre-processor does
- * not work, so we look for them specifically from the following list and
- * then jam in the equivalent NASM directive into the input stream.
- */
-
-enum {
-    TM_ARG, TM_ELIF, TM_ELSE, TM_ENDIF, TM_IF, TM_IFDEF, TM_IFDIFI,
-    TM_IFNDEF, TM_INCLUDE, TM_LOCAL
-};
-
-static const char * const tasm_directives[] = {
-    "arg", "elif", "else", "endif", "if", "ifdef", "ifdifi",
-    "ifndef", "include", "local"
-};
-
-static int StackSize = 4;
-static const char *StackPointer = "ebp";
-static int ArgOffset = 8;
-static int LocalOffset = 0;
-
-static Context *cstk;
-static Include *istk;
-static IncPath *ipath = NULL;
-
-static int pass;            /* HACK: pass 0 = generate dependencies only */
-static StrList **dephead;
-
-static uint64_t unique;     /* unique identifier numbers */
-
-static Line *predef = NULL;
-static bool do_predef;
-
-/*
- * The current set of multi-line macros we have defined.
- */
-static struct hash_table mmacros;
-
-/*
- * The current set of single-line macros we have defined.
- */
-static struct hash_table smacros;
-
-/*
- * The multi-line macro we are currently defining, or the %rep
- * block we are currently reading, if any.
- */
-static MMacro *defining;
-
-static uint64_t nested_mac_count;
-static uint64_t nested_rep_count;
-
-/*
- * The number of macro parameters to allocate space for at a time.
- */
-#define PARAM_DELTA 16
-
-/*
- * The standard macro set: defined in macros.c in a set of arrays.
- * This gives our position in any macro set, while we are processing it.
- * The stdmacset is an array of such macro sets.
- */
-static macros_t *stdmacpos;
-static macros_t **stdmacnext;
-static macros_t *stdmacros[8];
-static macros_t *extrastdmac;
-
-/*
- * Tokens are allocated in blocks to improve speed
- */
-#define TOKEN_BLOCKSIZE 4096
-static Token *freeTokens = NULL;
-struct Blocks {
-    Blocks *next;
-    void *chunk;
-};
-
-static Blocks blocks = { NULL, NULL };
-
-/*
- * Forward declarations.
- */
-static void pp_add_stdmac(macros_t *macros);
-static Token *expand_mmac_params(Token * tline);
-static Token *expand_smacro(Token * tline);
-static Token *expand_id(Token * tline);
-static Context *get_ctx(const char *name, const char **namep);
-static void make_tok_num(Token * tok, int64_t val);
-static void pp_verror(int severity, const char *fmt, va_list ap);
-static vefunc real_verror;
-static void *new_Block(size_t size);
-static void delete_Blocks(void);
-static Token *new_Token(Token * next, enum pp_token_type type,
-                        const char *text, int txtlen);
-static Token *delete_Token(Token * t);
-
-/*
- * Macros for safe checking of token pointers, avoid *(NULL)
- */
-#define tok_type_(x,t)  ((x) && (x)->type == (t))
-#define skip_white_(x)  if (tok_type_((x), TOK_WHITESPACE)) (x)=(x)->next
-#define tok_is_(x,v)    (tok_type_((x), TOK_OTHER) && !strcmp((x)->text,(v)))
-#define tok_isnt_(x,v)  ((x) && ((x)->type!=TOK_OTHER || strcmp((x)->text,(v))))
-
-/*
- * nasm_unquote with error if the string contains NUL characters.
- * If the string contains NUL characters, issue an error and return
- * the C len, i.e. truncate at the NUL.
- */
-static size_t nasm_unquote_cstr(char *qstr, enum preproc_token directive)
-{
-    size_t len = nasm_unquote(qstr, NULL);
-    size_t clen = strlen(qstr);
-
-    if (len != clen)
-        nasm_error(ERR_NONFATAL, "NUL character in `%s' directive",
-              pp_directives[directive]);
-
-    return clen;
-}
-
-/*
- * In-place reverse a list of tokens.
- */
-static Token *reverse_tokens(Token *t)
-{
-    Token *prev = NULL;
-    Token *next;
-
-    while (t) {
-        next = t->next;
-        t->next = prev;
-        prev = t;
-        t = next;
-    }
-
-    return prev;
-}
-
-/*
- * Handle TASM specific directives, which do not contain a % in
- * front of them. We do it here because I could not find any other
- * place to do it for the moment, and it is a hack (ideally it would
- * be nice to be able to use the NASM pre-processor to do it).
- */
-static char *check_tasm_directive(char *line)
-{
-    int32_t i, j, k, m, len;
-    char *p, *q, *oldline, oldchar;
-
-    p = nasm_skip_spaces(line);
-
-    /* Binary search for the directive name */
-    i = -1;
-    j = ARRAY_SIZE(tasm_directives);
-    q = nasm_skip_word(p);
-    len = q - p;
-    if (len) {
-        oldchar = p[len];
-        p[len] = 0;
-        while (j - i > 1) {
-            k = (j + i) / 2;
-            m = nasm_stricmp(p, tasm_directives[k]);
-            if (m == 0) {
-                /* We have found a directive, so jam a % in front of it
-                 * so that NASM will then recognise it as one if it's own.
-                 */
-                p[len] = oldchar;
-                len = strlen(p);
-                oldline = line;
-                line = nasm_malloc(len + 2);
-                line[0] = '%';
-                if (k == TM_IFDIFI) {
-                    /*
-                     * NASM does not recognise IFDIFI, so we convert
-                     * it to %if 0. This is not used in NASM
-                     * compatible code, but does need to parse for the
-                     * TASM macro package.
-                     */
-                    strcpy(line + 1, "if 0");
-                } else {
-                    memcpy(line + 1, p, len + 1);
-                }
-                nasm_free(oldline);
-                return line;
-            } else if (m < 0) {
-                j = k;
-            } else
-                i = k;
-        }
-        p[len] = oldchar;
-    }
-    return line;
-}
-
-/*
- * The pre-preprocessing stage... This function translates line
- * number indications as they emerge from GNU cpp (`# lineno "file"
- * flags') into NASM preprocessor line number indications (`%line
- * lineno file').
- */
-static char *prepreproc(char *line)
-{
-    int lineno, fnlen;
-    char *fname, *oldline;
-
-    if (line[0] == '#' && line[1] == ' ') {
-        oldline = line;
-        fname = oldline + 2;
-        lineno = atoi(fname);
-        fname += strspn(fname, "0123456789 ");
-        if (*fname == '"')
-            fname++;
-        fnlen = strcspn(fname, "\"");
-        line = nasm_malloc(20 + fnlen);
-        snprintf(line, 20 + fnlen, "%%line %d %.*s", lineno, fnlen, fname);
-        nasm_free(oldline);
-    }
-    if (tasm_compatible_mode)
-        return check_tasm_directive(line);
-    return line;
-}
-
-/*
- * Free a linked list of tokens.
- */
-static void free_tlist(Token * list)
-{
-    while (list)
-        list = delete_Token(list);
-}
-
-/*
- * Free a linked list of lines.
- */
-static void free_llist(Line * list)
-{
-    Line *l, *tmp;
-    list_for_each_safe(l, tmp, list) {
-        free_tlist(l->first);
-        nasm_free(l);
-    }
-}
-
-/*
- * Free an MMacro
- */
-static void free_mmacro(MMacro * m)
-{
-    nasm_free(m->name);
-    free_tlist(m->dlist);
-    nasm_free(m->defaults);
-    free_llist(m->expansion);
-    nasm_free(m);
-}
-
-/*
- * Free all currently defined macros, and free the hash tables
- */
-static void free_smacro_table(struct hash_table *smt)
-{
-    SMacro *s, *tmp;
-    const char *key;
-    struct hash_tbl_node *it = NULL;
-
-    while ((s = hash_iterate(smt, &it, &key)) != NULL) {
-        nasm_free((void *)key);
-        list_for_each_safe(s, tmp, s) {
-            nasm_free(s->name);
-            free_tlist(s->expansion);
-            nasm_free(s);
-        }
-    }
-    hash_free(smt);
-}
-
-static void free_mmacro_table(struct hash_table *mmt)
-{
-    MMacro *m, *tmp;
-    const char *key;
-    struct hash_tbl_node *it = NULL;
-
-    it = NULL;
-    while ((m = hash_iterate(mmt, &it, &key)) != NULL) {
-        nasm_free((void *)key);
-        list_for_each_safe(m ,tmp, m)
-            free_mmacro(m);
-    }
-    hash_free(mmt);
-}
-
-static void free_macros(void)
-{
-    free_smacro_table(&smacros);
-    free_mmacro_table(&mmacros);
-}
-
-/*
- * Initialize the hash tables
- */
-static void init_macros(void)
-{
-    hash_init(&smacros, HASH_LARGE);
-    hash_init(&mmacros, HASH_LARGE);
-}
-
-/*
- * Pop the context stack.
- */
-static void ctx_pop(void)
-{
-    Context *c = cstk;
-
-    cstk = cstk->next;
-    free_smacro_table(&c->localmac);
-    nasm_free(c->name);
-    nasm_free(c);
-}
-
-/*
- * Search for a key in the hash index; adding it if necessary
- * (in which case we initialize the data pointer to NULL.)
- */
-static void **
-hash_findi_add(struct hash_table *hash, const char *str)
-{
-    struct hash_insert hi;
-    void **r;
-    char *strx;
-
-    r = hash_findi(hash, str, &hi);
-    if (r)
-        return r;
-
-    strx = nasm_strdup(str);    /* Use a more efficient allocator here? */
-    return hash_add(&hi, strx, NULL);
-}
-
-/*
- * Like hash_findi, but returns the data element rather than a pointer
- * to it.  Used only when not adding a new element, hence no third
- * argument.
- */
-static void *
-hash_findix(struct hash_table *hash, const char *str)
-{
-    void **p;
-
-    p = hash_findi(hash, str, NULL);
-    return p ? *p : NULL;
-}
-
-/*
- * read line from standart macros set,
- * if there no more left -- return NULL
- */
-static char *line_from_stdmac(void)
-{
-    unsigned char c;
-    const unsigned char *p = stdmacpos;
-    char *line, *q;
-    size_t len = 0;
-
-    if (!stdmacpos)
-        return NULL;
-
-    while ((c = *p++)) {
-        if (c >= 0x80)
-            len += pp_directives_len[c - 0x80] + 1;
-        else
-            len++;
-    }
-
-    line = nasm_malloc(len + 1);
-    q = line;
-    while ((c = *stdmacpos++)) {
-        if (c >= 0x80) {
-            memcpy(q, pp_directives[c - 0x80], pp_directives_len[c - 0x80]);
-            q += pp_directives_len[c - 0x80];
-            *q++ = ' ';
-        } else {
-            *q++ = c;
-        }
-    }
-    stdmacpos = p;
-    *q = '\0';
-
-    if (!*stdmacpos) {
-        /* This was the last of this particular macro set */
-        stdmacpos = NULL;
-        if (*stdmacnext) {
-            stdmacpos = *stdmacnext++;
-        } else if (do_predef) {
-            Line *pd, *l;
-            Token *head, **tail, *t;
-
-            /*
-             * Nasty hack: here we push the contents of
-             * `predef' on to the top-level expansion stack,
-             * since this is the most convenient way to
-             * implement the pre-include and pre-define
-             * features.
-             */
-            list_for_each(pd, predef) {
-                head = NULL;
-                tail = &head;
-                list_for_each(t, pd->first) {
-                    *tail = new_Token(NULL, t->type, t->text, 0);
-                    tail = &(*tail)->next;
-                }
-
-                l           = nasm_malloc(sizeof(Line));
-                l->next     = istk->expansion;
-                l->first    = head;
-                l->finishes = NULL;
-
-                istk->expansion = l;
-            }
-            do_predef = false;
-        }
-    }
-
-    return line;
-}
-
-static char *read_line(void)
-{
-    unsigned int size, c, next;
-    const unsigned int delta = 512;
-    const unsigned int pad = 8;
-    unsigned int nr_cont = 0;
-    bool cont = false;
-    char *buffer, *p;
-
-    /* Standart macros set (predefined) goes first */
-    p = line_from_stdmac();
-    if (p)
-        return p;
-
-    size = delta;
-    p = buffer = nasm_malloc(size);
-
-    for (;;) {
-        c = fgetc(istk->fp);
-        if ((int)(c) == EOF) {
-            p[0] = 0;
-            break;
-        }
-
-        switch (c) {
-        case '\r':
-            next = fgetc(istk->fp);
-            if (next != '\n')
-                ungetc(next, istk->fp);
-            if (cont) {
-                cont = false;
-                continue;
-            }
-            break;
-
-        case '\n':
-            if (cont) {
-                cont = false;
-                continue;
-            }
-            break;
-
-        case '\\':
-            next = fgetc(istk->fp);
-            ungetc(next, istk->fp);
-            if (next == '\r' || next == '\n') {
-                cont = true;
-                nr_cont++;
-                continue;
-            }
-            break;
-        }
-
-        if (c == '\r' || c == '\n') {
-            *p++ = 0;
-            break;
-        }
-
-        if (p >= (buffer + size - pad)) {
-            buffer = nasm_realloc(buffer, size + delta);
-            p = buffer + size - pad;
-            size += delta;
-        }
-
-        *p++ = (unsigned char)c;
-    }
-
-    if (p == buffer) {
-        nasm_free(buffer);
-        return NULL;
-    }
-
-    src_set_linnum(src_get_linnum() + istk->lineinc +
-                   (nr_cont * istk->lineinc));
-
-    /*
-     * Handle spurious ^Z, which may be inserted into source files
-     * by some file transfer utilities.
-     */
-    buffer[strcspn(buffer, "\032")] = '\0';
-
-    lfmt->line(LIST_READ, buffer);
-
-    return buffer;
-}
-
-/*
- * Tokenize a line of text. This is a very simple process since we
- * don't need to parse the value out of e.g. numeric tokens: we
- * simply split one string into many.
- */
-static Token *tokenize(char *line)
-{
-    char c, *p = line;
-    enum pp_token_type type;
-    Token *list = NULL;
-    Token *t, **tail = &list;
-
-    while (*line) {
-        p = line;
-        if (*p == '%') {
-            p++;
-            if (*p == '+' && !nasm_isdigit(p[1])) {
-                p++;
-                type = TOK_PASTE;
-            } else if (nasm_isdigit(*p) ||
-                       ((*p == '-' || *p == '+') && nasm_isdigit(p[1]))) {
-                do {
-                    p++;
-                }
-                while (nasm_isdigit(*p));
-                type = TOK_PREPROC_ID;
-            } else if (*p == '{') {
-                p++;
-                while (*p) {
-                    if (*p == '}')
-                        break;
-                    p[-1] = *p;
-                    p++;
-                }
-                if (*p != '}')
-                    nasm_error(ERR_WARNING | ERR_PASS1,
-			       "unterminated %%{ construct");
-                p[-1] = '\0';
-                if (*p)
-                    p++;
-                type = TOK_PREPROC_ID;
-            } else if (*p == '[') {
-                int lvl = 1;
-                line += 2;      /* Skip the leading %[ */
-                p++;
-                while (lvl && (c = *p++)) {
-                    switch (c) {
-                    case ']':
-                        lvl--;
-                        break;
-                    case '%':
-                        if (*p == '[')
-                            lvl++;
-                        break;
-                    case '\'':
-                    case '\"':
-                    case '`':
-                        p = nasm_skip_string(p - 1) + 1;
-                        break;
-                    default:
-                        break;
-                    }
-                }
-                p--;
-                if (*p)
-                    *p++ = '\0';
-                if (lvl)
-                    nasm_error(ERR_NONFATAL|ERR_PASS1,
-			       "unterminated %%[ construct");
-                type = TOK_INDIRECT;
-            } else if (*p == '?') {
-                type = TOK_PREPROC_Q; /* %? */
-                p++;
-                if (*p == '?') {
-                    type = TOK_PREPROC_QQ; /* %?? */
-                    p++;
-                }
-            } else if (*p == '!') {
-                type = TOK_PREPROC_ID;
-                p++;
-                if (isidchar(*p)) {
-                    do {
-                        p++;
-                    }
-                    while (isidchar(*p));
-                } else if (*p == '\'' || *p == '\"' || *p == '`') {
-                    p = nasm_skip_string(p);
-                    if (*p)
-                        p++;
-                    else
-                        nasm_error(ERR_NONFATAL|ERR_PASS1,
-				   "unterminated %%! string");
-                } else {
-                    /* %! without string or identifier */
-                    type = TOK_OTHER; /* Legacy behavior... */
-                }
-            } else if (isidchar(*p) ||
-                       ((*p == '!' || *p == '%' || *p == '$') &&
-                        isidchar(p[1]))) {
-                do {
-                    p++;
-                }
-                while (isidchar(*p));
-                type = TOK_PREPROC_ID;
-            } else {
-                type = TOK_OTHER;
-                if (*p == '%')
-                    p++;
-            }
-        } else if (isidstart(*p) || (*p == '$' && isidstart(p[1]))) {
-            type = TOK_ID;
-            p++;
-            while (*p && isidchar(*p))
-                p++;
-        } else if (*p == '\'' || *p == '"' || *p == '`') {
-            /*
-             * A string token.
-             */
-            type = TOK_STRING;
-            p = nasm_skip_string(p);
-
-            if (*p) {
-                p++;
-            } else {
-                nasm_error(ERR_WARNING|ERR_PASS1, "unterminated string");
-                /* Handling unterminated strings by UNV */
-                /* type = -1; */
-            }
-        } else if (p[0] == '$' && p[1] == '$') {
-            type = TOK_OTHER;   /* TOKEN_BASE */
-            p += 2;
-        } else if (isnumstart(*p)) {
-            bool is_hex = false;
-            bool is_float = false;
-            bool has_e = false;
-            char c, *r;
-
-            /*
-             * A numeric token.
-             */
-
-            if (*p == '$') {
-                p++;
-                is_hex = true;
-            }
-
-            for (;;) {
-                c = *p++;
-
-                if (!is_hex && (c == 'e' || c == 'E')) {
-                    has_e = true;
-                    if (*p == '+' || *p == '-') {
-                        /*
-                         * e can only be followed by +/- if it is either a
-                         * prefixed hex number or a floating-point number
-                         */
-                        p++;
-                        is_float = true;
-                    }
-                } else if (c == 'H' || c == 'h' || c == 'X' || c == 'x') {
-                    is_hex = true;
-                } else if (c == 'P' || c == 'p') {
-                    is_float = true;
-                    if (*p == '+' || *p == '-')
-                        p++;
-                } else if (isnumchar(c))
-                    ; /* just advance */
-                else if (c == '.') {
-                    /*
-                     * we need to deal with consequences of the legacy
-                     * parser, like "1.nolist" being two tokens
-                     * (TOK_NUMBER, TOK_ID) here; at least give it
-                     * a shot for now.  In the future, we probably need
-                     * a flex-based scanner with proper pattern matching
-                     * to do it as well as it can be done.  Nothing in
-                     * the world is going to help the person who wants
-                     * 0x123.p16 interpreted as two tokens, though.
-                     */
-                    r = p;
-                    while (*r == '_')
-                        r++;
-
-                    if (nasm_isdigit(*r) || (is_hex && nasm_isxdigit(*r)) ||
-                        (!is_hex && (*r == 'e' || *r == 'E')) ||
-                        (*r == 'p' || *r == 'P')) {
-                        p = r;
-                        is_float = true;
-                    } else
-                        break;  /* Terminate the token */
-                } else
-                    break;
-            }
-            p--;        /* Point to first character beyond number */
-
-            if (p == line+1 && *line == '$') {
-                type = TOK_OTHER; /* TOKEN_HERE */
-            } else {
-                if (has_e && !is_hex) {
-                    /* 1e13 is floating-point, but 1e13h is not */
-                    is_float = true;
-                }
-
-                type = is_float ? TOK_FLOAT : TOK_NUMBER;
-            }
-        } else if (nasm_isspace(*p)) {
-            type = TOK_WHITESPACE;
-            p = nasm_skip_spaces(p);
-            /*
-             * Whitespace just before end-of-line is discarded by
-             * pretending it's a comment; whitespace just before a
-             * comment gets lumped into the comment.
-             */
-            if (!*p || *p == ';') {
-                type = TOK_COMMENT;
-                while (*p)
-                    p++;
-            }
-        } else if (*p == ';') {
-            type = TOK_COMMENT;
-            while (*p)
-                p++;
-        } else {
-            /*
-             * Anything else is an operator of some kind. We check
-             * for all the double-character operators (>>, <<, //,
-             * %%, <=, >=, ==, !=, <>, &&, ||, ^^), but anything
-             * else is a single-character operator.
-             */
-            type = TOK_OTHER;
-            if ((p[0] == '>' && p[1] == '>') ||
-                (p[0] == '<' && p[1] == '<') ||
-                (p[0] == '/' && p[1] == '/') ||
-                (p[0] == '<' && p[1] == '=') ||
-                (p[0] == '>' && p[1] == '=') ||
-                (p[0] == '=' && p[1] == '=') ||
-                (p[0] == '!' && p[1] == '=') ||
-                (p[0] == '<' && p[1] == '>') ||
-                (p[0] == '&' && p[1] == '&') ||
-                (p[0] == '|' && p[1] == '|') ||
-                (p[0] == '^' && p[1] == '^')) {
-                p++;
-            }
-            p++;
-        }
-
-        /* Handling unterminated string by UNV */
-        /*if (type == -1)
-          {
-          *tail = t = new_Token(NULL, TOK_STRING, line, p-line+1);
-          t->text[p-line] = *line;
-          tail = &t->next;
-          }
-          else */
-        if (type != TOK_COMMENT) {
-            *tail = t = new_Token(NULL, type, line, p - line);
-            tail = &t->next;
-        }
-        line = p;
-    }
-    return list;
-}
-
-/*
- * this function allocates a new managed block of memory and
- * returns a pointer to the block.  The managed blocks are
- * deleted only all at once by the delete_Blocks function.
- */
-static void *new_Block(size_t size)
-{
-    Blocks *b = &blocks;
-
-    /* first, get to the end of the linked list */
-    while (b->next)
-        b = b->next;
-    /* now allocate the requested chunk */
-    b->chunk = nasm_malloc(size);
-
-    /* now allocate a new block for the next request */
-    b->next = nasm_zalloc(sizeof(Blocks));
-    return b->chunk;
-}
-
-/*
- * this function deletes all managed blocks of memory
- */
-static void delete_Blocks(void)
-{
-    Blocks *a, *b = &blocks;
-
-    /*
-     * keep in mind that the first block, pointed to by blocks
-     * is a static and not dynamically allocated, so we don't
-     * free it.
-     */
-    while (b) {
-        if (b->chunk)
-            nasm_free(b->chunk);
-        a = b;
-        b = b->next;
-        if (a != &blocks)
-            nasm_free(a);
-    }
-    memset(&blocks, 0, sizeof(blocks));
-}
-
-/*
- *  this function creates a new Token and passes a pointer to it
- *  back to the caller.  It sets the type and text elements, and
- *  also the a.mac and next elements to NULL.
- */
-static Token *new_Token(Token * next, enum pp_token_type type,
-                        const char *text, int txtlen)
-{
-    Token *t;
-    int i;
-
-    if (!freeTokens) {
-        freeTokens = (Token *) new_Block(TOKEN_BLOCKSIZE * sizeof(Token));
-        for (i = 0; i < TOKEN_BLOCKSIZE - 1; i++)
-            freeTokens[i].next = &freeTokens[i + 1];
-        freeTokens[i].next = NULL;
-    }
-    t = freeTokens;
-    freeTokens = t->next;
-    t->next = next;
-    t->a.mac = NULL;
-    t->type = type;
-    if (type == TOK_WHITESPACE || !text) {
-        t->text = NULL;
-    } else {
-        if (txtlen == 0)
-            txtlen = strlen(text);
-        t->text = nasm_malloc(txtlen+1);
-        memcpy(t->text, text, txtlen);
-        t->text[txtlen] = '\0';
-    }
-    return t;
-}
-
-static Token *delete_Token(Token * t)
-{
-    Token *next = t->next;
-    nasm_free(t->text);
-    t->next = freeTokens;
-    freeTokens = t;
-    return next;
-}
-
-/*
- * Convert a line of tokens back into text.
- * If expand_locals is not zero, identifiers of the form "%$*xxx"
- * will be transformed into ..@ctxnum.xxx
- */
-static char *detoken(Token * tlist, bool expand_locals)
-{
-    Token *t;
-    char *line, *p;
-    const char *q;
-    int len = 0;
-
-    list_for_each(t, tlist) {
-        if (t->type == TOK_PREPROC_ID && t->text[1] == '!') {
-            char *v;
-            char *q = t->text;
-
-            v = t->text + 2;
-            if (*v == '\'' || *v == '\"' || *v == '`') {
-                size_t len = nasm_unquote(v, NULL);
-                size_t clen = strlen(v);
-
-                if (len != clen) {
-                    nasm_error(ERR_NONFATAL | ERR_PASS1,
-                          "NUL character in %%! string");
-                    v = NULL;
-                }
-            }
-
-            if (v) {
-                char *p = getenv(v);
-                if (!p) {
-                    nasm_error(ERR_NONFATAL | ERR_PASS1,
-                          "nonexistent environment variable `%s'", v);
-                    /*
-                     * FIXME We better should investigate if accessing
-                     * ->text[1] without ->text[0] is safe enough.
-                     */
-                    t->text = nasm_zalloc(2);
-                } else
-                    t->text = nasm_strdup(p);
-            }
-            nasm_free(q);
-        }
-
-        /* Expand local macros here and not during preprocessing */
-        if (expand_locals &&
-            t->type == TOK_PREPROC_ID && t->text &&
-            t->text[0] == '%' && t->text[1] == '$') {
-            const char *q;
-            char *p;
-            Context *ctx = get_ctx(t->text, &q);
-            if (ctx) {
-                char buffer[40];
-                snprintf(buffer, sizeof(buffer), "..@%"PRIu32".", ctx->number);
-                p = nasm_strcat(buffer, q);
-                nasm_free(t->text);
-                t->text = p;
-            }
-        }
-        if (t->type == TOK_WHITESPACE)
-            len++;
-        else if (t->text)
-            len += strlen(t->text);
-    }
-
-    p = line = nasm_malloc(len + 1);
-
-    list_for_each(t, tlist) {
-        if (t->type == TOK_WHITESPACE) {
-            *p++ = ' ';
-        } else if (t->text) {
-            q = t->text;
-            while (*q)
-                *p++ = *q++;
-        }
-    }
-    *p = '\0';
-
-    return line;
-}
-
-/*
- * A scanner, suitable for use by the expression evaluator, which
- * operates on a line of Tokens. Expects a pointer to a pointer to
- * the first token in the line to be passed in as its private_data
- * field.
- *
- * FIX: This really needs to be unified with stdscan.
- */
-static int ppscan(void *private_data, struct tokenval *tokval)
-{
-    Token **tlineptr = private_data;
-    Token *tline;
-    char ourcopy[MAX_KEYWORD+1], *p, *r, *s;
-
-    do {
-        tline = *tlineptr;
-        *tlineptr = tline ? tline->next : NULL;
-    } while (tline && (tline->type == TOK_WHITESPACE ||
-                       tline->type == TOK_COMMENT));
-
-    if (!tline)
-        return tokval->t_type = TOKEN_EOS;
-
-    tokval->t_charptr = tline->text;
-
-    if (tline->text[0] == '$' && !tline->text[1])
-        return tokval->t_type = TOKEN_HERE;
-    if (tline->text[0] == '$' && tline->text[1] == '$' && !tline->text[2])
-        return tokval->t_type = TOKEN_BASE;
-
-    if (tline->type == TOK_ID) {
-        p = tokval->t_charptr = tline->text;
-        if (p[0] == '$') {
-            tokval->t_charptr++;
-            return tokval->t_type = TOKEN_ID;
-        }
-
-        for (r = p, s = ourcopy; *r; r++) {
-            if (r >= p+MAX_KEYWORD)
-                return tokval->t_type = TOKEN_ID; /* Not a keyword */
-            *s++ = nasm_tolower(*r);
-        }
-        *s = '\0';
-        /* right, so we have an identifier sitting in temp storage. now,
-         * is it actually a register or instruction name, or what? */
-        return nasm_token_hash(ourcopy, tokval);
-    }
-
-    if (tline->type == TOK_NUMBER) {
-        bool rn_error;
-        tokval->t_integer = readnum(tline->text, &rn_error);
-        tokval->t_charptr = tline->text;
-        if (rn_error)
-            return tokval->t_type = TOKEN_ERRNUM;
-        else
-            return tokval->t_type = TOKEN_NUM;
-    }
-
-    if (tline->type == TOK_FLOAT) {
-        return tokval->t_type = TOKEN_FLOAT;
-    }
-
-    if (tline->type == TOK_STRING) {
-        char bq, *ep;
-
-        bq = tline->text[0];
-        tokval->t_charptr = tline->text;
-        tokval->t_inttwo = nasm_unquote(tline->text, &ep);
-
-        if (ep[0] != bq || ep[1] != '\0')
-            return tokval->t_type = TOKEN_ERRSTR;
-        else
-            return tokval->t_type = TOKEN_STR;
-    }
-
-    if (tline->type == TOK_OTHER) {
-        if (!strcmp(tline->text, "<<"))
-            return tokval->t_type = TOKEN_SHL;
-        if (!strcmp(tline->text, ">>"))
-            return tokval->t_type = TOKEN_SHR;
-        if (!strcmp(tline->text, "//"))
-            return tokval->t_type = TOKEN_SDIV;
-        if (!strcmp(tline->text, "%%"))
-            return tokval->t_type = TOKEN_SMOD;
-        if (!strcmp(tline->text, "=="))
-            return tokval->t_type = TOKEN_EQ;
-        if (!strcmp(tline->text, "<>"))
-            return tokval->t_type = TOKEN_NE;
-        if (!strcmp(tline->text, "!="))
-            return tokval->t_type = TOKEN_NE;
-        if (!strcmp(tline->text, "<="))
-            return tokval->t_type = TOKEN_LE;
-        if (!strcmp(tline->text, ">="))
-            return tokval->t_type = TOKEN_GE;
-        if (!strcmp(tline->text, "&&"))
-            return tokval->t_type = TOKEN_DBL_AND;
-        if (!strcmp(tline->text, "^^"))
-            return tokval->t_type = TOKEN_DBL_XOR;
-        if (!strcmp(tline->text, "||"))
-            return tokval->t_type = TOKEN_DBL_OR;
-    }
-
-    /*
-     * We have no other options: just return the first character of
-     * the token text.
-     */
-    return tokval->t_type = tline->text[0];
-}
-
-/*
- * Compare a string to the name of an existing macro; this is a
- * simple wrapper which calls either strcmp or nasm_stricmp
- * depending on the value of the `casesense' parameter.
- */
-static int mstrcmp(const char *p, const char *q, bool casesense)
-{
-    return casesense ? strcmp(p, q) : nasm_stricmp(p, q);
-}
-
-/*
- * Compare a string to the name of an existing macro; this is a
- * simple wrapper which calls either strcmp or nasm_stricmp
- * depending on the value of the `casesense' parameter.
- */
-static int mmemcmp(const char *p, const char *q, size_t l, bool casesense)
-{
-    return casesense ? memcmp(p, q, l) : nasm_memicmp(p, q, l);
-}
-
-/*
- * Return the Context structure associated with a %$ token. Return
- * NULL, having _already_ reported an error condition, if the
- * context stack isn't deep enough for the supplied number of $
- * signs.
- *
- * If "namep" is non-NULL, set it to the pointer to the macro name
- * tail, i.e. the part beyond %$...
- */
-static Context *get_ctx(const char *name, const char **namep)
-{
-    Context *ctx;
-    int i;
-
-    if (namep)
-        *namep = name;
-
-    if (!name || name[0] != '%' || name[1] != '$')
-        return NULL;
-
-    if (!cstk) {
-        nasm_error(ERR_NONFATAL, "`%s': context stack is empty", name);
-        return NULL;
-    }
-
-    name += 2;
-    ctx = cstk;
-    i = 0;
-    while (ctx && *name == '$') {
-        name++;
-        i++;
-        ctx = ctx->next;
-    }
-    if (!ctx) {
-        nasm_error(ERR_NONFATAL, "`%s': context stack is only"
-              " %d level%s deep", name, i, (i == 1 ? "" : "s"));
-        return NULL;
-    }
-
-    if (namep)
-        *namep = name;
-
-    return ctx;
-}
-
-/*
- * Open an include file. This routine must always return a valid
- * file pointer if it returns - it's responsible for throwing an
- * ERR_FATAL and bombing out completely if not. It should also try
- * the include path one by one until it finds the file or reaches
- * the end of the path.
- *
- * Note: for INC_PROBE the function returns NULL at all times;
- * instead look for the
- */
-enum incopen_mode {
-    INC_NEEDED,                 /* File must exist */
-    INC_OPTIONAL,               /* Missing is OK */
-    INC_PROBE                   /* Only an existence probe */
-};
-
-/* This is conducts a full pathname search */
-static FILE *inc_fopen_search(const char *file, StrList **slpath,
-                              enum incopen_mode omode, enum file_flags fmode)
-{
-    FILE *fp;
-    char *prefix = "";
-    const IncPath *ip = ipath;
-    int len = strlen(file);
-    size_t prefix_len = 0;
-    StrList *sl;
-    size_t path_len;
-    bool found;
-
-    while (1) {
-        path_len = prefix_len + len + 1;
-
-        sl = nasm_malloc(path_len + sizeof sl->next);
-        memcpy(sl->str, prefix, prefix_len);
-        memcpy(sl->str+prefix_len, file, len+1);
-        sl->next = NULL;
-
-        if (omode == INC_PROBE) {
-            fp = NULL;
-            found = nasm_file_exists(sl->str);
-        } else {
-            fp = nasm_open_read(sl->str, fmode);
-            found = (fp != NULL);
-        }
-        if (found) {
-            *slpath = sl;
-            return fp;
-        }
-
-        nasm_free(sl);
-
-        if (!ip)
-            return NULL;
-
-        prefix = ip->path;
-        prefix_len = strlen(prefix);
-        ip = ip->next;
-    }
-}
-
-/*
- * Open a file, or test for the presence of one (depending on omode),
- * considering the include path.
- */
-static FILE *inc_fopen(const char *file,
-                       StrList **dhead,
-                       const char **found_path,
-                       enum incopen_mode omode,
-                       enum file_flags fmode)
-{
-    StrList *sl;
-    struct hash_insert hi;
-    void **hp;
-    char *path;
-    FILE *fp = NULL;
-
-    hp = hash_find(&FileHash, file, &hi);
-    if (hp) {
-        path = *hp;
-    } else {
-        /* Need to do the actual path search */
-        size_t file_len;
-
-        sl = NULL;
-        fp = inc_fopen_search(file, &sl, omode, fmode);
-
-        file_len = strlen(file);
-
-        if (!sl) {
-            /* Store negative result for this file */
-            sl = nasm_malloc(file_len + 1 + sizeof sl->next);
-            memcpy(sl->str, file, file_len+1);
-            sl->next = NULL;
-            file = sl->str;
-            path = NULL;
-        } else  {
-            path = sl->str;
-            file = strchr(path, '\0') - file_len;
-        }
-
-        hash_add(&hi, file, path); /* Positive or negative result */
-
-        /*
-         * Add file to dependency path. The in_list() is needed
-         * in case the file was already added with %depend.
-         */
-        if (path || omode != INC_NEEDED)
-            nasm_add_to_strlist(dhead, sl);
-    }
-
-    if (!path) {
-        if (omode == INC_NEEDED)
-            nasm_fatal(0, "unable to open include file `%s'", file);
-
-        if (found_path)
-            *found_path = NULL;
-
-        return NULL;
-    }
-
-    if (!fp && omode != INC_PROBE)
-        fp = nasm_open_read(path, fmode);
-
-    if (found_path)
-        *found_path = path;
-
-    return fp;
-}
-
-/*
- * Opens an include or input file. Public version, for use by modules
- * that get a file:lineno pair and need to look at the file again
- * (e.g. the CodeView debug backend). Returns NULL on failure.
- */
-FILE *pp_input_fopen(const char *filename, enum file_flags mode)
-{
-    return inc_fopen(filename, NULL, NULL, INC_OPTIONAL, mode);
-}
-
-/*
- * Determine if we should warn on defining a single-line macro of
- * name `name', with `nparam' parameters. If nparam is 0 or -1, will
- * return true if _any_ single-line macro of that name is defined.
- * Otherwise, will return true if a single-line macro with either
- * `nparam' or no parameters is defined.
- *
- * If a macro with precisely the right number of parameters is
- * defined, or nparam is -1, the address of the definition structure
- * will be returned in `defn'; otherwise NULL will be returned. If `defn'
- * is NULL, no action will be taken regarding its contents, and no
- * error will occur.
- *
- * Note that this is also called with nparam zero to resolve
- * `ifdef'.
- *
- * If you already know which context macro belongs to, you can pass
- * the context pointer as first parameter; if you won't but name begins
- * with %$ the context will be automatically computed. If all_contexts
- * is true, macro will be searched in outer contexts as well.
- */
-static bool
-smacro_defined(Context * ctx, const char *name, int nparam, SMacro ** defn,
-               bool nocase)
-{
-    struct hash_table *smtbl;
-    SMacro *m;
-
-    if (ctx) {
-        smtbl = &ctx->localmac;
-    } else if (name[0] == '%' && name[1] == '$') {
-        if (cstk)
-            ctx = get_ctx(name, &name);
-        if (!ctx)
-            return false;       /* got to return _something_ */
-        smtbl = &ctx->localmac;
-    } else {
-        smtbl = &smacros;
-    }
-    m = (SMacro *) hash_findix(smtbl, name);
-
-    while (m) {
-        if (!mstrcmp(m->name, name, m->casesense && nocase) &&
-            (nparam <= 0 || m->nparam == 0 || nparam == (int) m->nparam)) {
-            if (defn) {
-                if (nparam == (int) m->nparam || nparam == -1)
-                    *defn = m;
-                else
-                    *defn = NULL;
-            }
-            return true;
-        }
-        m = m->next;
-    }
-
-    return false;
-}
-
-/*
- * Count and mark off the parameters in a multi-line macro call.
- * This is called both from within the multi-line macro expansion
- * code, and also to mark off the default parameters when provided
- * in a %macro definition line.
- */
-static void count_mmac_params(Token * t, int *nparam, Token *** params)
-{
-    int paramsize, brace;
-
-    *nparam = paramsize = 0;
-    *params = NULL;
-    while (t) {
-        /* +1: we need space for the final NULL */
-        if (*nparam+1 >= paramsize) {
-            paramsize += PARAM_DELTA;
-            *params = nasm_realloc(*params, sizeof(**params) * paramsize);
-        }
-        skip_white_(t);
-        brace = 0;
-        if (tok_is_(t, "{"))
-            brace++;
-        (*params)[(*nparam)++] = t;
-        if (brace) {
-            while (brace && (t = t->next) != NULL) {
-                if (tok_is_(t, "{"))
-                    brace++;
-                else if (tok_is_(t, "}"))
-                    brace--;
-            }
-
-            if (t) {
-                /*
-                 * Now we've found the closing brace, look further
-                 * for the comma.
-                 */
-                t = t->next;
-                skip_white_(t);
-                if (tok_isnt_(t, ",")) {
-                    nasm_error(ERR_NONFATAL,
-                          "braces do not enclose all of macro parameter");
-                    while (tok_isnt_(t, ","))
-                        t = t->next;
-                }
-            }
-        } else {
-            while (tok_isnt_(t, ","))
-                t = t->next;
-        }
-        if (t) {                /* got a comma/brace */
-            t = t->next;        /* eat the comma */
-        }
-    }
-}
-
-/*
- * Determine whether one of the various `if' conditions is true or
- * not.
- *
- * We must free the tline we get passed.
- */
-static bool if_condition(Token * tline, enum preproc_token ct)
-{
-    enum pp_conditional i = PP_COND(ct);
-    bool j;
-    Token *t, *tt, **tptr, *origline;
-    struct tokenval tokval;
-    expr *evalresult;
-    enum pp_token_type needtype;
-    char *p;
-
-    origline = tline;
-
-    switch (i) {
-    case PPC_IFCTX:
-        j = false;              /* have we matched yet? */
-        while (true) {
-            skip_white_(tline);
-            if (!tline)
-                break;
-            if (tline->type != TOK_ID) {
-                nasm_error(ERR_NONFATAL,
-                      "`%s' expects context identifiers", pp_directives[ct]);
-                free_tlist(origline);
-                return -1;
-            }
-            if (cstk && cstk->name && !nasm_stricmp(tline->text, cstk->name))
-                j = true;
-            tline = tline->next;
-        }
-        break;
-
-    case PPC_IFDEF:
-        j = false;              /* have we matched yet? */
-        while (tline) {
-            skip_white_(tline);
-            if (!tline || (tline->type != TOK_ID &&
-                           (tline->type != TOK_PREPROC_ID ||
-                            tline->text[1] != '$'))) {
-                nasm_error(ERR_NONFATAL,
-                      "`%s' expects macro identifiers", pp_directives[ct]);
-                goto fail;
-            }
-            if (smacro_defined(NULL, tline->text, 0, NULL, true))
-                j = true;
-            tline = tline->next;
-        }
-        break;
-
-    case PPC_IFENV:
-        tline = expand_smacro(tline);
-        j = false;              /* have we matched yet? */
-        while (tline) {
-            skip_white_(tline);
-            if (!tline || (tline->type != TOK_ID &&
-                           tline->type != TOK_STRING &&
-                           (tline->type != TOK_PREPROC_ID ||
-                            tline->text[1] != '!'))) {
-                nasm_error(ERR_NONFATAL,
-                      "`%s' expects environment variable names",
-                      pp_directives[ct]);
-                goto fail;
-            }
-            p = tline->text;
-            if (tline->type == TOK_PREPROC_ID)
-                p += 2;         /* Skip leading %! */
-            if (*p == '\'' || *p == '\"' || *p == '`')
-                nasm_unquote_cstr(p, ct);
-            if (getenv(p))
-                j = true;
-            tline = tline->next;
-        }
-        break;
-
-    case PPC_IFIDN:
-    case PPC_IFIDNI:
-        tline = expand_smacro(tline);
-        t = tt = tline;
-        while (tok_isnt_(tt, ","))
-            tt = tt->next;
-        if (!tt) {
-            nasm_error(ERR_NONFATAL,
-                  "`%s' expects two comma-separated arguments",
-                  pp_directives[ct]);
-            goto fail;
-        }
-        tt = tt->next;
-        j = true;               /* assume equality unless proved not */
-        while ((t->type != TOK_OTHER || strcmp(t->text, ",")) && tt) {
-            if (tt->type == TOK_OTHER && !strcmp(tt->text, ",")) {
-                nasm_error(ERR_NONFATAL, "`%s': more than one comma on line",
-                      pp_directives[ct]);
-                goto fail;
-            }
-            if (t->type == TOK_WHITESPACE) {
-                t = t->next;
-                continue;
-            }
-            if (tt->type == TOK_WHITESPACE) {
-                tt = tt->next;
-                continue;
-            }
-            if (tt->type != t->type) {
-                j = false;      /* found mismatching tokens */
-                break;
-            }
-            /* When comparing strings, need to unquote them first */
-            if (t->type == TOK_STRING) {
-                size_t l1 = nasm_unquote(t->text, NULL);
-                size_t l2 = nasm_unquote(tt->text, NULL);
-
-                if (l1 != l2) {
-                    j = false;
-                    break;
-                }
-                if (mmemcmp(t->text, tt->text, l1, i == PPC_IFIDN)) {
-                    j = false;
-                    break;
-                }
-            } else if (mstrcmp(tt->text, t->text, i == PPC_IFIDN) != 0) {
-                j = false;      /* found mismatching tokens */
-                break;
-            }
-
-            t = t->next;
-            tt = tt->next;
-        }
-        if ((t->type != TOK_OTHER || strcmp(t->text, ",")) || tt)
-            j = false;          /* trailing gunk on one end or other */
-        break;
-
-    case PPC_IFMACRO:
-    {
-        bool found = false;
-        MMacro searching, *mmac;
-
-        skip_white_(tline);
-        tline = expand_id(tline);
-        if (!tok_type_(tline, TOK_ID)) {
-            nasm_error(ERR_NONFATAL,
-                  "`%s' expects a macro name", pp_directives[ct]);
-            goto fail;
-        }
-        searching.name = nasm_strdup(tline->text);
-        searching.casesense = true;
-        searching.plus = false;
-        searching.nolist = false;
-        searching.in_progress = 0;
-        searching.max_depth = 0;
-        searching.rep_nest = NULL;
-        searching.nparam_min = 0;
-        searching.nparam_max = INT_MAX;
-        tline = expand_smacro(tline->next);
-        skip_white_(tline);
-        if (!tline) {
-        } else if (!tok_type_(tline, TOK_NUMBER)) {
-            nasm_error(ERR_NONFATAL,
-                  "`%s' expects a parameter count or nothing",
-                  pp_directives[ct]);
-        } else {
-            searching.nparam_min = searching.nparam_max =
-                readnum(tline->text, &j);
-            if (j)
-                nasm_error(ERR_NONFATAL,
-                      "unable to parse parameter count `%s'",
-                      tline->text);
-        }
-        if (tline && tok_is_(tline->next, "-")) {
-            tline = tline->next->next;
-            if (tok_is_(tline, "*"))
-                searching.nparam_max = INT_MAX;
-            else if (!tok_type_(tline, TOK_NUMBER))
-                nasm_error(ERR_NONFATAL,
-                      "`%s' expects a parameter count after `-'",
-                      pp_directives[ct]);
-            else {
-                searching.nparam_max = readnum(tline->text, &j);
-                if (j)
-                    nasm_error(ERR_NONFATAL,
-                          "unable to parse parameter count `%s'",
-                          tline->text);
-                if (searching.nparam_min > searching.nparam_max)
-                    nasm_error(ERR_NONFATAL,
-                          "minimum parameter count exceeds maximum");
-            }
-        }
-        if (tline && tok_is_(tline->next, "+")) {
-            tline = tline->next;
-            searching.plus = true;
-        }
-        mmac = (MMacro *) hash_findix(&mmacros, searching.name);
-        while (mmac) {
-            if (!strcmp(mmac->name, searching.name) &&
-                (mmac->nparam_min <= searching.nparam_max
-                 || searching.plus)
-                && (searching.nparam_min <= mmac->nparam_max
-                    || mmac->plus)) {
-                found = true;
-                break;
-            }
-            mmac = mmac->next;
-        }
-        if (tline && tline->next)
-            nasm_error(ERR_WARNING|ERR_PASS1,
-                  "trailing garbage after %%ifmacro ignored");
-        nasm_free(searching.name);
-        j = found;
-        break;
-    }
-
-    case PPC_IFID:
-        needtype = TOK_ID;
-        goto iftype;
-    case PPC_IFNUM:
-        needtype = TOK_NUMBER;
-        goto iftype;
-    case PPC_IFSTR:
-        needtype = TOK_STRING;
-        goto iftype;
-
-iftype:
-        t = tline = expand_smacro(tline);
-
-        while (tok_type_(t, TOK_WHITESPACE) ||
-               (needtype == TOK_NUMBER &&
-                tok_type_(t, TOK_OTHER) &&
-                (t->text[0] == '-' || t->text[0] == '+') &&
-                !t->text[1]))
-            t = t->next;
-
-        j = tok_type_(t, needtype);
-        break;
-
-    case PPC_IFTOKEN:
-        t = tline = expand_smacro(tline);
-        while (tok_type_(t, TOK_WHITESPACE))
-            t = t->next;
-
-        j = false;
-        if (t) {
-            t = t->next;        /* Skip the actual token */
-            while (tok_type_(t, TOK_WHITESPACE))
-                t = t->next;
-            j = !t;             /* Should be nothing left */
-        }
-        break;
-
-    case PPC_IFEMPTY:
-        t = tline = expand_smacro(tline);
-        while (tok_type_(t, TOK_WHITESPACE))
-            t = t->next;
-
-        j = !t;                 /* Should be empty */
-        break;
-
-    case PPC_IF:
-        t = tline = expand_smacro(tline);
-        tptr = &t;
-        tokval.t_type = TOKEN_INVALID;
-        evalresult = evaluate(ppscan, tptr, &tokval,
-                              NULL, pass | CRITICAL, NULL);
-        if (!evalresult)
-            return -1;
-        if (tokval.t_type)
-            nasm_error(ERR_WARNING|ERR_PASS1,
-                  "trailing garbage after expression ignored");
-        if (!is_simple(evalresult)) {
-            nasm_error(ERR_NONFATAL,
-                  "non-constant value given to `%s'", pp_directives[ct]);
-            goto fail;
-        }
-        j = reloc_value(evalresult) != 0;
-        break;
-
-    default:
-        nasm_error(ERR_FATAL,
-              "preprocessor directive `%s' not yet implemented",
-              pp_directives[ct]);
-        goto fail;
-    }
-
-    free_tlist(origline);
-    return j ^ PP_NEGATIVE(ct);
-
-fail:
-    free_tlist(origline);
-    return -1;
-}
-
-/*
- * Common code for defining an smacro
- */
-static bool define_smacro(Context *ctx, const char *mname, bool casesense,
-                          int nparam, Token *expansion)
-{
-    SMacro *smac, **smhead;
-    struct hash_table *smtbl;
-
-    if (smacro_defined(ctx, mname, nparam, &smac, casesense)) {
-        if (!smac) {
-            nasm_error(ERR_WARNING|ERR_PASS1,
-                  "single-line macro `%s' defined both with and"
-                  " without parameters", mname);
-            /*
-             * Some instances of the old code considered this a failure,
-             * some others didn't.  What is the right thing to do here?
-             */
-            free_tlist(expansion);
-            return false;       /* Failure */
-        } else {
-            /*
-             * We're redefining, so we have to take over an
-             * existing SMacro structure. This means freeing
-             * what was already in it.
-             */
-            nasm_free(smac->name);
-            free_tlist(smac->expansion);
-        }
-    } else {
-        smtbl  = ctx ? &ctx->localmac : &smacros;
-        smhead = (SMacro **) hash_findi_add(smtbl, mname);
-        smac = nasm_malloc(sizeof(SMacro));
-        smac->next = *smhead;
-        *smhead = smac;
-    }
-    smac->name = nasm_strdup(mname);
-    smac->casesense = casesense;
-    smac->nparam = nparam;
-    smac->expansion = expansion;
-    smac->in_progress = false;
-    return true;                /* Success */
-}
-
-/*
- * Undefine an smacro
- */
-static void undef_smacro(Context *ctx, const char *mname)
-{
-    SMacro **smhead, *s, **sp;
-    struct hash_table *smtbl;
-
-    smtbl = ctx ? &ctx->localmac : &smacros;
-    smhead = (SMacro **)hash_findi(smtbl, mname, NULL);
-
-    if (smhead) {
-        /*
-         * We now have a macro name... go hunt for it.
-         */
-        sp = smhead;
-        while ((s = *sp) != NULL) {
-            if (!mstrcmp(s->name, mname, s->casesense)) {
-                *sp = s->next;
-                nasm_free(s->name);
-                free_tlist(s->expansion);
-                nasm_free(s);
-            } else {
-                sp = &s->next;
-            }
-        }
-    }
-}
-
-/*
- * Parse a mmacro specification.
- */
-static bool parse_mmacro_spec(Token *tline, MMacro *def, const char *directive)
-{
-    bool err;
-
-    tline = tline->next;
-    skip_white_(tline);
-    tline = expand_id(tline);
-    if (!tok_type_(tline, TOK_ID)) {
-        nasm_error(ERR_NONFATAL, "`%s' expects a macro name", directive);
-        return false;
-    }
-
-    def->prev = NULL;
-    def->name = nasm_strdup(tline->text);
-    def->plus = false;
-    def->nolist = false;
-    def->in_progress = 0;
-    def->rep_nest = NULL;
-    def->nparam_min = 0;
-    def->nparam_max = 0;
-
-    tline = expand_smacro(tline->next);
-    skip_white_(tline);
-    if (!tok_type_(tline, TOK_NUMBER)) {
-        nasm_error(ERR_NONFATAL, "`%s' expects a parameter count", directive);
-    } else {
-        def->nparam_min = def->nparam_max =
-            readnum(tline->text, &err);
-        if (err)
-            nasm_error(ERR_NONFATAL,
-                  "unable to parse parameter count `%s'", tline->text);
-    }
-    if (tline && tok_is_(tline->next, "-")) {
-        tline = tline->next->next;
-        if (tok_is_(tline, "*")) {
-            def->nparam_max = INT_MAX;
-        } else if (!tok_type_(tline, TOK_NUMBER)) {
-            nasm_error(ERR_NONFATAL,
-                  "`%s' expects a parameter count after `-'", directive);
-        } else {
-            def->nparam_max = readnum(tline->text, &err);
-            if (err) {
-                nasm_error(ERR_NONFATAL, "unable to parse parameter count `%s'",
-                      tline->text);
-            }
-            if (def->nparam_min > def->nparam_max) {
-                nasm_error(ERR_NONFATAL, "minimum parameter count exceeds maximum");
-            }
-        }
-    }
-    if (tline && tok_is_(tline->next, "+")) {
-        tline = tline->next;
-        def->plus = true;
-    }
-    if (tline && tok_type_(tline->next, TOK_ID) &&
-        !nasm_stricmp(tline->next->text, ".nolist")) {
-        tline = tline->next;
-        def->nolist = true;
-    }
-
-    /*
-     * Handle default parameters.
-     */
-    if (tline && tline->next) {
-        def->dlist = tline->next;
-        tline->next = NULL;
-        count_mmac_params(def->dlist, &def->ndefs, &def->defaults);
-    } else {
-        def->dlist = NULL;
-        def->defaults = NULL;
-    }
-    def->expansion = NULL;
-
-    if (def->defaults && def->ndefs > def->nparam_max - def->nparam_min &&
-        !def->plus)
-        nasm_error(ERR_WARNING|ERR_PASS1|ERR_WARN_MDP,
-              "too many default macro parameters");
-
-    return true;
-}
-
-
-/*
- * Decode a size directive
- */
-static int parse_size(const char *str) {
-    static const char *size_names[] =
-        { "byte", "dword", "oword", "qword", "tword", "word", "yword" };
-    static const int sizes[] =
-        { 0, 1, 4, 16, 8, 10, 2, 32 };
-
-    return sizes[bsii(str, size_names, ARRAY_SIZE(size_names))+1];
-}
-
-/*
- * Process a preprocessor %pragma directive.  Currently there are none.
- * Gets passed the token list starting with the "preproc" token from
- * "%pragma preproc".
- */
-static void do_pragma_preproc(Token *tline)
-{
-    /* Skip to the real stuff */
-    tline = tline->next;
-    skip_white_(tline);
-    if (!tline)
-        return;
-
-    (void)tline;                /* Nothing else to do at present */
-}
-
-/**
- * find and process preprocessor directive in passed line
- * Find out if a line contains a preprocessor directive, and deal
- * with it if so.
- *
- * If a directive _is_ found, it is the responsibility of this routine
- * (and not the caller) to free_tlist() the line.
- *
- * @param tline a pointer to the current tokeninzed line linked list
- * @param output if this directive generated output
- * @return DIRECTIVE_FOUND or NO_DIRECTIVE_FOUND
- *
- */
-static int do_directive(Token *tline, char **output)
-{
-    enum preproc_token i;
-    int j;
-    bool err;
-    int nparam;
-    bool nolist;
-    bool casesense;
-    int k, m;
-    int offset;
-    char *p, *pp;
-    const char *found_path;
-    const char *mname;
-    Include *inc;
-    Context *ctx;
-    Cond *cond;
-    MMacro *mmac, **mmhead;
-    Token *t = NULL, *tt, *param_start, *macro_start, *last, **tptr, *origline;
-    Line *l;
-    struct tokenval tokval;
-    expr *evalresult;
-    MMacro *tmp_defining;       /* Used when manipulating rep_nest */
-    int64_t count;
-    size_t len;
-    int severity;
-
-    *output = NULL;             /* No output generated */
-    origline = tline;
-
-    skip_white_(tline);
-    if (!tline || !tok_type_(tline, TOK_PREPROC_ID) ||
-        (tline->text[1] == '%' || tline->text[1] == '$'
-         || tline->text[1] == '!'))
-        return NO_DIRECTIVE_FOUND;
-
-    i = pp_token_hash(tline->text);
-
-    /*
-     * FIXME: We zap execution of PP_RMACRO, PP_IRMACRO, PP_EXITMACRO
-     * since they are known to be buggy at moment, we need to fix them
-     * in future release (2.09-2.10)
-     */
-    if (i == PP_RMACRO || i == PP_IRMACRO || i == PP_EXITMACRO) {
-        nasm_error(ERR_NONFATAL, "unknown preprocessor directive `%s'",
-              tline->text);
-       return NO_DIRECTIVE_FOUND;
-    }
-
-    /*
-     * If we're in a non-emitting branch of a condition construct,
-     * or walking to the end of an already terminated %rep block,
-     * we should ignore all directives except for condition
-     * directives.
-     */
-    if (((istk->conds && !emitting(istk->conds->state)) ||
-         (istk->mstk && !istk->mstk->in_progress)) && !is_condition(i)) {
-        return NO_DIRECTIVE_FOUND;
-    }
-
-    /*
-     * If we're defining a macro or reading a %rep block, we should
-     * ignore all directives except for %macro/%imacro (which nest),
-     * %endm/%endmacro, and (only if we're in a %rep block) %endrep.
-     * If we're in a %rep block, another %rep nests, so should be let through.
-     */
-    if (defining && i != PP_MACRO && i != PP_IMACRO &&
-        i != PP_RMACRO &&  i != PP_IRMACRO &&
-        i != PP_ENDMACRO && i != PP_ENDM &&
-        (defining->name || (i != PP_ENDREP && i != PP_REP))) {
-        return NO_DIRECTIVE_FOUND;
-    }
-
-    if (defining) {
-        if (i == PP_MACRO || i == PP_IMACRO ||
-            i == PP_RMACRO || i == PP_IRMACRO) {
-            nested_mac_count++;
-            return NO_DIRECTIVE_FOUND;
-        } else if (nested_mac_count > 0) {
-            if (i == PP_ENDMACRO) {
-                nested_mac_count--;
-                return NO_DIRECTIVE_FOUND;
-            }
-        }
-        if (!defining->name) {
-            if (i == PP_REP) {
-                nested_rep_count++;
-                return NO_DIRECTIVE_FOUND;
-            } else if (nested_rep_count > 0) {
-                if (i == PP_ENDREP) {
-                    nested_rep_count--;
-                    return NO_DIRECTIVE_FOUND;
-                }
-            }
-        }
-    }
-
-    switch (i) {
-    case PP_INVALID:
-        nasm_error(ERR_NONFATAL, "unknown preprocessor directive `%s'",
-              tline->text);
-        return NO_DIRECTIVE_FOUND;      /* didn't get it */
-
-    case PP_PRAGMA:
-        /*
-         * %pragma namespace options...
-         *
-         * The namespace "preproc" is reserved for the preprocessor;
-         * all other namespaces generate a [pragma] assembly directive.
-         *
-         * Invalid %pragmas are ignored and may have different
-         * meaning in future versions of NASM.
-         */
-        tline = tline->next;
-        skip_white_(tline);
-        tline = expand_smacro(tline);
-        if (tok_type_(tline, TOK_ID)) {
-            if (!nasm_stricmp(tline->text, "preproc")) {
-                /* Preprocessor pragma */
-                do_pragma_preproc(tline);
-            } else {
-                /* Build the assembler directive */
-                t = new_Token(NULL, TOK_OTHER, "[", 1);
-                t->next = new_Token(NULL, TOK_ID, "pragma", 6);
-                t->next->next = new_Token(tline, TOK_WHITESPACE, NULL, 0);
-                tline = t;
-                for (t = tline; t->next; t = t->next)
-                    ;
-                t->next = new_Token(NULL, TOK_OTHER, "]", 1);
-                /* true here can be revisited in the future */
-                *output = detoken(tline, true);
-            }
-        }
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_STACKSIZE:
-        /* Directive to tell NASM what the default stack size is. The
-         * default is for a 16-bit stack, and this can be overriden with
-         * %stacksize large.
-         */
-        tline = tline->next;
-        if (tline && tline->type == TOK_WHITESPACE)
-            tline = tline->next;
-        if (!tline || tline->type != TOK_ID) {
-            nasm_error(ERR_NONFATAL, "`%%stacksize' missing size parameter");
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-        if (nasm_stricmp(tline->text, "flat") == 0) {
-            /* All subsequent ARG directives are for a 32-bit stack */
-            StackSize = 4;
-            StackPointer = "ebp";
-            ArgOffset = 8;
-            LocalOffset = 0;
-        } else if (nasm_stricmp(tline->text, "flat64") == 0) {
-            /* All subsequent ARG directives are for a 64-bit stack */
-            StackSize = 8;
-            StackPointer = "rbp";
-            ArgOffset = 16;
-            LocalOffset = 0;
-        } else if (nasm_stricmp(tline->text, "large") == 0) {
-            /* All subsequent ARG directives are for a 16-bit stack,
-             * far function call.
-             */
-            StackSize = 2;
-            StackPointer = "bp";
-            ArgOffset = 4;
-            LocalOffset = 0;
-        } else if (nasm_stricmp(tline->text, "small") == 0) {
-            /* All subsequent ARG directives are for a 16-bit stack,
-             * far function call. We don't support near functions.
-             */
-            StackSize = 2;
-            StackPointer = "bp";
-            ArgOffset = 6;
-            LocalOffset = 0;
-        } else {
-            nasm_error(ERR_NONFATAL, "`%%stacksize' invalid size type");
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_ARG:
-        /* TASM like ARG directive to define arguments to functions, in
-         * the following form:
-         *
-         *      ARG arg1:WORD, arg2:DWORD, arg4:QWORD
-         */
-        offset = ArgOffset;
-        do {
-            char *arg, directive[256];
-            int size = StackSize;
-
-            /* Find the argument name */
-            tline = tline->next;
-            if (tline && tline->type == TOK_WHITESPACE)
-                tline = tline->next;
-            if (!tline || tline->type != TOK_ID) {
-                nasm_error(ERR_NONFATAL, "`%%arg' missing argument parameter");
-                free_tlist(origline);
-                return DIRECTIVE_FOUND;
-            }
-            arg = tline->text;
-
-            /* Find the argument size type */
-            tline = tline->next;
-            if (!tline || tline->type != TOK_OTHER
-                || tline->text[0] != ':') {
-                nasm_error(ERR_NONFATAL,
-                      "Syntax error processing `%%arg' directive");
-                free_tlist(origline);
-                return DIRECTIVE_FOUND;
-            }
-            tline = tline->next;
-            if (!tline || tline->type != TOK_ID) {
-                nasm_error(ERR_NONFATAL, "`%%arg' missing size type parameter");
-                free_tlist(origline);
-                return DIRECTIVE_FOUND;
-            }
-
-            /* Allow macro expansion of type parameter */
-            tt = tokenize(tline->text);
-            tt = expand_smacro(tt);
-            size = parse_size(tt->text);
-            if (!size) {
-                nasm_error(ERR_NONFATAL,
-                      "Invalid size type for `%%arg' missing directive");
-                free_tlist(tt);
-                free_tlist(origline);
-                return DIRECTIVE_FOUND;
-            }
-            free_tlist(tt);
-
-            /* Round up to even stack slots */
-            size = ALIGN(size, StackSize);
-
-            /* Now define the macro for the argument */
-            snprintf(directive, sizeof(directive), "%%define %s (%s+%d)",
-                     arg, StackPointer, offset);
-            do_directive(tokenize(directive), output);
-            offset += size;
-
-            /* Move to the next argument in the list */
-            tline = tline->next;
-            if (tline && tline->type == TOK_WHITESPACE)
-                tline = tline->next;
-        } while (tline && tline->type == TOK_OTHER && tline->text[0] == ',');
-        ArgOffset = offset;
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_LOCAL:
-        /* TASM like LOCAL directive to define local variables for a
-         * function, in the following form:
-         *
-         *      LOCAL local1:WORD, local2:DWORD, local4:QWORD = LocalSize
-         *
-         * The '= LocalSize' at the end is ignored by NASM, but is
-         * required by TASM to define the local parameter size (and used
-         * by the TASM macro package).
-         */
-        offset = LocalOffset;
-        do {
-            char *local, directive[256];
-            int size = StackSize;
-
-            /* Find the argument name */
-            tline = tline->next;
-            if (tline && tline->type == TOK_WHITESPACE)
-                tline = tline->next;
-            if (!tline || tline->type != TOK_ID) {
-                nasm_error(ERR_NONFATAL,
-                      "`%%local' missing argument parameter");
-                free_tlist(origline);
-                return DIRECTIVE_FOUND;
-            }
-            local = tline->text;
-
-            /* Find the argument size type */
-            tline = tline->next;
-            if (!tline || tline->type != TOK_OTHER
-                || tline->text[0] != ':') {
-                nasm_error(ERR_NONFATAL,
-                      "Syntax error processing `%%local' directive");
-                free_tlist(origline);
-                return DIRECTIVE_FOUND;
-            }
-            tline = tline->next;
-            if (!tline || tline->type != TOK_ID) {
-                nasm_error(ERR_NONFATAL,
-                      "`%%local' missing size type parameter");
-                free_tlist(origline);
-                return DIRECTIVE_FOUND;
-            }
-
-            /* Allow macro expansion of type parameter */
-            tt = tokenize(tline->text);
-            tt = expand_smacro(tt);
-            size = parse_size(tt->text);
-            if (!size) {
-                nasm_error(ERR_NONFATAL,
-                      "Invalid size type for `%%local' missing directive");
-                free_tlist(tt);
-                free_tlist(origline);
-                return DIRECTIVE_FOUND;
-            }
-            free_tlist(tt);
-
-            /* Round up to even stack slots */
-            size = ALIGN(size, StackSize);
-
-            offset += size;     /* Negative offset, increment before */
-
-            /* Now define the macro for the argument */
-            snprintf(directive, sizeof(directive), "%%define %s (%s-%d)",
-                     local, StackPointer, offset);
-            do_directive(tokenize(directive), output);
-
-            /* Now define the assign to setup the enter_c macro correctly */
-            snprintf(directive, sizeof(directive),
-                     "%%assign %%$localsize %%$localsize+%d", size);
-            do_directive(tokenize(directive), output);
-
-            /* Move to the next argument in the list */
-            tline = tline->next;
-            if (tline && tline->type == TOK_WHITESPACE)
-                tline = tline->next;
-        } while (tline && tline->type == TOK_OTHER && tline->text[0] == ',');
-        LocalOffset = offset;
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_CLEAR:
-        if (tline->next)
-            nasm_error(ERR_WARNING|ERR_PASS1,
-                  "trailing garbage after `%%clear' ignored");
-        free_macros();
-        init_macros();
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_DEPEND:
-        t = tline->next = expand_smacro(tline->next);
-        skip_white_(t);
-        if (!t || (t->type != TOK_STRING &&
-                   t->type != TOK_INTERNAL_STRING)) {
-            nasm_error(ERR_NONFATAL, "`%%depend' expects a file name");
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;     /* but we did _something_ */
-        }
-        if (t->next)
-            nasm_error(ERR_WARNING|ERR_PASS1,
-                  "trailing garbage after `%%depend' ignored");
-        p = t->text;
-        if (t->type != TOK_INTERNAL_STRING)
-            nasm_unquote_cstr(p, i);
-        nasm_add_string_to_strlist(dephead, p);
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_INCLUDE:
-        t = tline->next = expand_smacro(tline->next);
-        skip_white_(t);
-
-        if (!t || (t->type != TOK_STRING &&
-                   t->type != TOK_INTERNAL_STRING)) {
-            nasm_error(ERR_NONFATAL, "`%%include' expects a file name");
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;     /* but we did _something_ */
-        }
-        if (t->next)
-            nasm_error(ERR_WARNING|ERR_PASS1,
-                  "trailing garbage after `%%include' ignored");
-        p = t->text;
-        if (t->type != TOK_INTERNAL_STRING)
-            nasm_unquote_cstr(p, i);
-        inc = nasm_malloc(sizeof(Include));
-        inc->next = istk;
-        inc->conds = NULL;
-        found_path = NULL;
-        inc->fp = inc_fopen(p, dephead, &found_path,
-                            pass == 0 ? INC_OPTIONAL : INC_NEEDED, NF_TEXT);
-        if (!inc->fp) {
-            /* -MG given but file not found */
-            nasm_free(inc);
-        } else {
-            inc->fname = src_set_fname(found_path ? found_path : p);
-            inc->lineno = src_set_linnum(0);
-            inc->lineinc = 1;
-            inc->expansion = NULL;
-            inc->mstk = NULL;
-            istk = inc;
-            lfmt->uplevel(LIST_INCLUDE);
-        }
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_USE:
-    {
-        static macros_t *use_pkg;
-        const char *pkg_macro = NULL;
-
-        tline = tline->next;
-        skip_white_(tline);
-        tline = expand_id(tline);
-
-        if (!tline || (tline->type != TOK_STRING &&
-                       tline->type != TOK_INTERNAL_STRING &&
-                       tline->type != TOK_ID)) {
-            nasm_error(ERR_NONFATAL, "`%%use' expects a package name");
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;     /* but we did _something_ */
-        }
-        if (tline->next)
-            nasm_error(ERR_WARNING|ERR_PASS1,
-                  "trailing garbage after `%%use' ignored");
-        if (tline->type == TOK_STRING)
-            nasm_unquote_cstr(tline->text, i);
-        use_pkg = nasm_stdmac_find_package(tline->text);
-        if (!use_pkg)
-            nasm_error(ERR_NONFATAL, "unknown `%%use' package: %s", tline->text);
-        else
-            pkg_macro = (char *)use_pkg + 1; /* The first string will be <%define>__USE_*__ */
-        if (use_pkg && ! smacro_defined(NULL, pkg_macro, 0, NULL, true)) {
-            /* Not already included, go ahead and include it */
-            stdmacpos = use_pkg;
-        }
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-    }
-    case PP_PUSH:
-    case PP_REPL:
-    case PP_POP:
-        tline = tline->next;
-        skip_white_(tline);
-        tline = expand_id(tline);
-        if (tline) {
-            if (!tok_type_(tline, TOK_ID)) {
-                nasm_error(ERR_NONFATAL, "`%s' expects a context identifier",
-                      pp_directives[i]);
-                free_tlist(origline);
-                return DIRECTIVE_FOUND;     /* but we did _something_ */
-            }
-            if (tline->next)
-                nasm_error(ERR_WARNING|ERR_PASS1,
-                      "trailing garbage after `%s' ignored",
-                      pp_directives[i]);
-            p = nasm_strdup(tline->text);
-        } else {
-            p = NULL; /* Anonymous */
-        }
-
-        if (i == PP_PUSH) {
-            ctx = nasm_malloc(sizeof(Context));
-            ctx->next = cstk;
-            hash_init(&ctx->localmac, HASH_SMALL);
-            ctx->name = p;
-            ctx->number = unique++;
-            cstk = ctx;
-        } else {
-            /* %pop or %repl */
-            if (!cstk) {
-                nasm_error(ERR_NONFATAL, "`%s': context stack is empty",
-                      pp_directives[i]);
-            } else if (i == PP_POP) {
-                if (p && (!cstk->name || nasm_stricmp(p, cstk->name)))
-                    nasm_error(ERR_NONFATAL, "`%%pop' in wrong context: %s, "
-                          "expected %s",
-                          cstk->name ? cstk->name : "anonymous", p);
-                else
-                    ctx_pop();
-            } else {
-                /* i == PP_REPL */
-                nasm_free(cstk->name);
-                cstk->name = p;
-                p = NULL;
-            }
-            nasm_free(p);
-        }
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-    case PP_FATAL:
-        severity = ERR_FATAL;
-        goto issue_error;
-    case PP_ERROR:
-        severity = ERR_NONFATAL;
-        goto issue_error;
-    case PP_WARNING:
-        severity = ERR_WARNING|ERR_WARN_USER;
-        goto issue_error;
-
-issue_error:
-    {
-        /* Only error out if this is the final pass */
-        if (pass != 2 && i != PP_FATAL)
-            return DIRECTIVE_FOUND;
-
-        tline->next = expand_smacro(tline->next);
-        tline = tline->next;
-        skip_white_(tline);
-        t = tline ? tline->next : NULL;
-        skip_white_(t);
-        if (tok_type_(tline, TOK_STRING) && !t) {
-            /* The line contains only a quoted string */
-            p = tline->text;
-            nasm_unquote(p, NULL); /* Ignore NUL character truncation */
-            nasm_error(severity, "%s",  p);
-        } else {
-            /* Not a quoted string, or more than a quoted string */
-            p = detoken(tline, false);
-            nasm_error(severity, "%s",  p);
-            nasm_free(p);
-        }
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-    }
-
-    CASE_PP_IF:
-        if (istk->conds && !emitting(istk->conds->state))
-            j = COND_NEVER;
-        else {
-            j = if_condition(tline->next, i);
-            tline->next = NULL; /* it got freed */
-            j = j < 0 ? COND_NEVER : j ? COND_IF_TRUE : COND_IF_FALSE;
-        }
-        cond = nasm_malloc(sizeof(Cond));
-        cond->next = istk->conds;
-        cond->state = j;
-        istk->conds = cond;
-        if(istk->mstk)
-            istk->mstk->condcnt ++;
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    CASE_PP_ELIF:
-        if (!istk->conds)
-            nasm_error(ERR_FATAL, "`%s': no matching `%%if'", pp_directives[i]);
-        switch(istk->conds->state) {
-        case COND_IF_TRUE:
-            istk->conds->state = COND_DONE;
-            break;
-
-        case COND_DONE:
-        case COND_NEVER:
-            break;
-
-        case COND_ELSE_TRUE:
-        case COND_ELSE_FALSE:
-	    nasm_error(ERR_WARNING|ERR_PASS1|ERR_PP_PRECOND,
-		       "`%%elif' after `%%else' ignored");
-            istk->conds->state = COND_NEVER;
-            break;
-
-        case COND_IF_FALSE:
-            /*
-             * IMPORTANT: In the case of %if, we will already have
-             * called expand_mmac_params(); however, if we're
-             * processing an %elif we must have been in a
-             * non-emitting mode, which would have inhibited
-             * the normal invocation of expand_mmac_params().
-             * Therefore, we have to do it explicitly here.
-             */
-            j = if_condition(expand_mmac_params(tline->next), i);
-            tline->next = NULL; /* it got freed */
-            istk->conds->state =
-                j < 0 ? COND_NEVER : j ? COND_IF_TRUE : COND_IF_FALSE;
-            break;
-        }
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_ELSE:
-        if (tline->next)
-            nasm_error(ERR_WARNING|ERR_PASS1|ERR_PP_PRECOND,
-		       "trailing garbage after `%%else' ignored");
-        if (!istk->conds)
-	    nasm_fatal(0, "`%%else: no matching `%%if'");
-        switch(istk->conds->state) {
-        case COND_IF_TRUE:
-        case COND_DONE:
-            istk->conds->state = COND_ELSE_FALSE;
-            break;
-
-        case COND_NEVER:
-            break;
-
-        case COND_IF_FALSE:
-            istk->conds->state = COND_ELSE_TRUE;
-            break;
-
-        case COND_ELSE_TRUE:
-        case COND_ELSE_FALSE:
-            nasm_error(ERR_WARNING|ERR_PASS1|ERR_PP_PRECOND,
-                          "`%%else' after `%%else' ignored.");
-            istk->conds->state = COND_NEVER;
-            break;
-        }
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_ENDIF:
-        if (tline->next)
-            nasm_error(ERR_WARNING|ERR_PASS1|ERR_PP_PRECOND,
-		       "trailing garbage after `%%endif' ignored");
-        if (!istk->conds)
-            nasm_error(ERR_FATAL, "`%%endif': no matching `%%if'");
-        cond = istk->conds;
-        istk->conds = cond->next;
-        nasm_free(cond);
-        if(istk->mstk)
-            istk->mstk->condcnt --;
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_RMACRO:
-    case PP_IRMACRO:
-    case PP_MACRO:
-    case PP_IMACRO:
-        if (defining) {
-            nasm_error(ERR_FATAL, "`%s': already defining a macro",
-                  pp_directives[i]);
-            return DIRECTIVE_FOUND;
-        }
-        defining = nasm_zalloc(sizeof(MMacro));
-        defining->max_depth =
-            (i == PP_RMACRO) || (i == PP_IRMACRO) ? DEADMAN_LIMIT : 0;
-        defining->casesense = (i == PP_MACRO) || (i == PP_RMACRO);
-        if (!parse_mmacro_spec(tline, defining, pp_directives[i])) {
-            nasm_free(defining);
-            defining = NULL;
-            return DIRECTIVE_FOUND;
-        }
-
-	src_get(&defining->xline, &defining->fname);
-
-        mmac = (MMacro *) hash_findix(&mmacros, defining->name);
-        while (mmac) {
-            if (!strcmp(mmac->name, defining->name) &&
-                (mmac->nparam_min <= defining->nparam_max
-                 || defining->plus)
-                && (defining->nparam_min <= mmac->nparam_max
-                    || mmac->plus)) {
-                nasm_error(ERR_WARNING|ERR_PASS1,
-                      "redefining multi-line macro `%s'", defining->name);
-                return DIRECTIVE_FOUND;
-            }
-            mmac = mmac->next;
-        }
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_ENDM:
-    case PP_ENDMACRO:
-        if (! (defining && defining->name)) {
-            nasm_error(ERR_NONFATAL, "`%s': not defining a macro", tline->text);
-            return DIRECTIVE_FOUND;
-        }
-        mmhead = (MMacro **) hash_findi_add(&mmacros, defining->name);
-        defining->next = *mmhead;
-        *mmhead = defining;
-        defining = NULL;
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_EXITMACRO:
-        /*
-         * We must search along istk->expansion until we hit a
-         * macro-end marker for a macro with a name. Then we
-         * bypass all lines between exitmacro and endmacro.
-         */
-        list_for_each(l, istk->expansion)
-            if (l->finishes && l->finishes->name)
-                break;
-
-        if (l) {
-            /*
-             * Remove all conditional entries relative to this
-             * macro invocation. (safe to do in this context)
-             */
-            for ( ; l->finishes->condcnt > 0; l->finishes->condcnt --) {
-                cond = istk->conds;
-                istk->conds = cond->next;
-                nasm_free(cond);
-            }
-            istk->expansion = l;
-        } else {
-            nasm_error(ERR_NONFATAL, "`%%exitmacro' not within `%%macro' block");
-        }
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_UNMACRO:
-    case PP_UNIMACRO:
-    {
-        MMacro **mmac_p;
-        MMacro spec;
-
-        spec.casesense = (i == PP_UNMACRO);
-        if (!parse_mmacro_spec(tline, &spec, pp_directives[i])) {
-            return DIRECTIVE_FOUND;
-        }
-        mmac_p = (MMacro **) hash_findi(&mmacros, spec.name, NULL);
-        while (mmac_p && *mmac_p) {
-            mmac = *mmac_p;
-            if (mmac->casesense == spec.casesense &&
-                !mstrcmp(mmac->name, spec.name, spec.casesense) &&
-                mmac->nparam_min == spec.nparam_min &&
-                mmac->nparam_max == spec.nparam_max &&
-                mmac->plus == spec.plus) {
-                *mmac_p = mmac->next;
-                free_mmacro(mmac);
-            } else {
-                mmac_p = &mmac->next;
-            }
-        }
-        free_tlist(origline);
-        free_tlist(spec.dlist);
-        return DIRECTIVE_FOUND;
-    }
-
-    case PP_ROTATE:
-        if (tline->next && tline->next->type == TOK_WHITESPACE)
-            tline = tline->next;
-        if (!tline->next) {
-            free_tlist(origline);
-            nasm_error(ERR_NONFATAL, "`%%rotate' missing rotate count");
-            return DIRECTIVE_FOUND;
-        }
-        t = expand_smacro(tline->next);
-        tline->next = NULL;
-        free_tlist(origline);
-        tline = t;
-        tptr = &t;
-        tokval.t_type = TOKEN_INVALID;
-        evalresult =
-            evaluate(ppscan, tptr, &tokval, NULL, pass, NULL);
-        free_tlist(tline);
-        if (!evalresult)
-            return DIRECTIVE_FOUND;
-        if (tokval.t_type)
-            nasm_error(ERR_WARNING|ERR_PASS1,
-                  "trailing garbage after expression ignored");
-        if (!is_simple(evalresult)) {
-            nasm_error(ERR_NONFATAL, "non-constant value given to `%%rotate'");
-            return DIRECTIVE_FOUND;
-        }
-        mmac = istk->mstk;
-        while (mmac && !mmac->name)     /* avoid mistaking %reps for macros */
-            mmac = mmac->next_active;
-        if (!mmac) {
-            nasm_error(ERR_NONFATAL, "`%%rotate' invoked outside a macro call");
-        } else if (mmac->nparam == 0) {
-            nasm_error(ERR_NONFATAL,
-                  "`%%rotate' invoked within macro without parameters");
-        } else {
-            int rotate = mmac->rotate + reloc_value(evalresult);
-
-            rotate %= (int)mmac->nparam;
-            if (rotate < 0)
-                rotate += mmac->nparam;
-
-            mmac->rotate = rotate;
-        }
-        return DIRECTIVE_FOUND;
-
-    case PP_REP:
-        nolist = false;
-        do {
-            tline = tline->next;
-        } while (tok_type_(tline, TOK_WHITESPACE));
-
-        if (tok_type_(tline, TOK_ID) &&
-            nasm_stricmp(tline->text, ".nolist") == 0) {
-            nolist = true;
-            do {
-                tline = tline->next;
-            } while (tok_type_(tline, TOK_WHITESPACE));
-        }
-
-        if (tline) {
-            t = expand_smacro(tline);
-            tptr = &t;
-            tokval.t_type = TOKEN_INVALID;
-            evalresult =
-                evaluate(ppscan, tptr, &tokval, NULL, pass, NULL);
-            if (!evalresult) {
-                free_tlist(origline);
-                return DIRECTIVE_FOUND;
-            }
-            if (tokval.t_type)
-                nasm_error(ERR_WARNING|ERR_PASS1,
-                      "trailing garbage after expression ignored");
-            if (!is_simple(evalresult)) {
-                nasm_error(ERR_NONFATAL, "non-constant value given to `%%rep'");
-                return DIRECTIVE_FOUND;
-            }
-            count = reloc_value(evalresult);
-            if (count >= REP_LIMIT) {
-                nasm_error(ERR_NONFATAL, "`%%rep' value exceeds limit");
-                count = 0;
-            } else
-                count++;
-        } else {
-            nasm_error(ERR_NONFATAL, "`%%rep' expects a repeat count");
-            count = 0;
-        }
-        free_tlist(origline);
-
-        tmp_defining = defining;
-        defining = nasm_malloc(sizeof(MMacro));
-        defining->prev = NULL;
-        defining->name = NULL;  /* flags this macro as a %rep block */
-        defining->casesense = false;
-        defining->plus = false;
-        defining->nolist = nolist;
-        defining->in_progress = count;
-        defining->max_depth = 0;
-        defining->nparam_min = defining->nparam_max = 0;
-        defining->defaults = NULL;
-        defining->dlist = NULL;
-        defining->expansion = NULL;
-        defining->next_active = istk->mstk;
-        defining->rep_nest = tmp_defining;
-        return DIRECTIVE_FOUND;
-
-    case PP_ENDREP:
-        if (!defining || defining->name) {
-            nasm_error(ERR_NONFATAL, "`%%endrep': no matching `%%rep'");
-            return DIRECTIVE_FOUND;
-        }
-
-        /*
-         * Now we have a "macro" defined - although it has no name
-         * and we won't be entering it in the hash tables - we must
-         * push a macro-end marker for it on to istk->expansion.
-         * After that, it will take care of propagating itself (a
-         * macro-end marker line for a macro which is really a %rep
-         * block will cause the macro to be re-expanded, complete
-         * with another macro-end marker to ensure the process
-         * continues) until the whole expansion is forcibly removed
-         * from istk->expansion by a %exitrep.
-         */
-        l = nasm_malloc(sizeof(Line));
-        l->next = istk->expansion;
-        l->finishes = defining;
-        l->first = NULL;
-        istk->expansion = l;
-
-        istk->mstk = defining;
-
-        lfmt->uplevel(defining->nolist ? LIST_MACRO_NOLIST : LIST_MACRO);
-        tmp_defining = defining;
-        defining = defining->rep_nest;
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_EXITREP:
-        /*
-         * We must search along istk->expansion until we hit a
-         * macro-end marker for a macro with no name. Then we set
-         * its `in_progress' flag to 0.
-         */
-        list_for_each(l, istk->expansion)
-            if (l->finishes && !l->finishes->name)
-                break;
-
-        if (l)
-            l->finishes->in_progress = 1;
-        else
-            nasm_error(ERR_NONFATAL, "`%%exitrep' not within `%%rep' block");
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_XDEFINE:
-    case PP_IXDEFINE:
-    case PP_DEFINE:
-    case PP_IDEFINE:
-        casesense = (i == PP_DEFINE || i == PP_XDEFINE);
-
-        tline = tline->next;
-        skip_white_(tline);
-        tline = expand_id(tline);
-        if (!tline || (tline->type != TOK_ID &&
-                       (tline->type != TOK_PREPROC_ID ||
-                        tline->text[1] != '$'))) {
-            nasm_error(ERR_NONFATAL, "`%s' expects a macro identifier",
-                  pp_directives[i]);
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-
-        ctx = get_ctx(tline->text, &mname);
-        last = tline;
-        param_start = tline = tline->next;
-        nparam = 0;
-
-        /* Expand the macro definition now for %xdefine and %ixdefine */
-        if ((i == PP_XDEFINE) || (i == PP_IXDEFINE))
-            tline = expand_smacro(tline);
-
-        if (tok_is_(tline, "(")) {
-            /*
-             * This macro has parameters.
-             */
-
-            tline = tline->next;
-            while (1) {
-                skip_white_(tline);
-                if (!tline) {
-                    nasm_error(ERR_NONFATAL, "parameter identifier expected");
-                    free_tlist(origline);
-                    return DIRECTIVE_FOUND;
-                }
-                if (tline->type != TOK_ID) {
-                    nasm_error(ERR_NONFATAL,
-                          "`%s': parameter identifier expected",
-                          tline->text);
-                    free_tlist(origline);
-                    return DIRECTIVE_FOUND;
-                }
-                tline->type = TOK_SMAC_PARAM + nparam++;
-                tline = tline->next;
-                skip_white_(tline);
-                if (tok_is_(tline, ",")) {
-                    tline = tline->next;
-                } else {
-                    if (!tok_is_(tline, ")")) {
-                        nasm_error(ERR_NONFATAL,
-                              "`)' expected to terminate macro template");
-                        free_tlist(origline);
-                        return DIRECTIVE_FOUND;
-                    }
-                    break;
-                }
-            }
-            last = tline;
-            tline = tline->next;
-        }
-        if (tok_type_(tline, TOK_WHITESPACE))
-            last = tline, tline = tline->next;
-        macro_start = NULL;
-        last->next = NULL;
-        t = tline;
-        while (t) {
-            if (t->type == TOK_ID) {
-                list_for_each(tt, param_start)
-                    if (tt->type >= TOK_SMAC_PARAM &&
-                        !strcmp(tt->text, t->text))
-                        t->type = tt->type;
-            }
-            tt = t->next;
-            t->next = macro_start;
-            macro_start = t;
-            t = tt;
-        }
-        /*
-         * Good. We now have a macro name, a parameter count, and a
-         * token list (in reverse order) for an expansion. We ought
-         * to be OK just to create an SMacro, store it, and let
-         * free_tlist have the rest of the line (which we have
-         * carefully re-terminated after chopping off the expansion
-         * from the end).
-         */
-        define_smacro(ctx, mname, casesense, nparam, macro_start);
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_UNDEF:
-        tline = tline->next;
-        skip_white_(tline);
-        tline = expand_id(tline);
-        if (!tline || (tline->type != TOK_ID &&
-                       (tline->type != TOK_PREPROC_ID ||
-                        tline->text[1] != '$'))) {
-            nasm_error(ERR_NONFATAL, "`%%undef' expects a macro identifier");
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-        if (tline->next) {
-            nasm_error(ERR_WARNING|ERR_PASS1,
-                  "trailing garbage after macro name ignored");
-        }
-
-        /* Find the context that symbol belongs to */
-        ctx = get_ctx(tline->text, &mname);
-        undef_smacro(ctx, mname);
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_DEFSTR:
-    case PP_IDEFSTR:
-        casesense = (i == PP_DEFSTR);
-
-        tline = tline->next;
-        skip_white_(tline);
-        tline = expand_id(tline);
-        if (!tline || (tline->type != TOK_ID &&
-                       (tline->type != TOK_PREPROC_ID ||
-                        tline->text[1] != '$'))) {
-            nasm_error(ERR_NONFATAL, "`%s' expects a macro identifier",
-                  pp_directives[i]);
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-
-        ctx = get_ctx(tline->text, &mname);
-        last = tline;
-        tline = expand_smacro(tline->next);
-        last->next = NULL;
-
-        while (tok_type_(tline, TOK_WHITESPACE))
-            tline = delete_Token(tline);
-
-        p = detoken(tline, false);
-        macro_start = nasm_malloc(sizeof(*macro_start));
-        macro_start->next = NULL;
-        macro_start->text = nasm_quote(p, strlen(p));
-        macro_start->type = TOK_STRING;
-        macro_start->a.mac = NULL;
-        nasm_free(p);
-
-        /*
-         * We now have a macro name, an implicit parameter count of
-         * zero, and a string token to use as an expansion. Create
-         * and store an SMacro.
-         */
-        define_smacro(ctx, mname, casesense, 0, macro_start);
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_DEFTOK:
-    case PP_IDEFTOK:
-        casesense = (i == PP_DEFTOK);
-
-        tline = tline->next;
-        skip_white_(tline);
-        tline = expand_id(tline);
-        if (!tline || (tline->type != TOK_ID &&
-                       (tline->type != TOK_PREPROC_ID ||
-                        tline->text[1] != '$'))) {
-            nasm_error(ERR_NONFATAL,
-                  "`%s' expects a macro identifier as first parameter",
-                  pp_directives[i]);
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-        ctx = get_ctx(tline->text, &mname);
-        last = tline;
-        tline = expand_smacro(tline->next);
-        last->next = NULL;
-
-        t = tline;
-        while (tok_type_(t, TOK_WHITESPACE))
-            t = t->next;
-        /* t should now point to the string */
-        if (!tok_type_(t, TOK_STRING)) {
-            nasm_error(ERR_NONFATAL,
-                  "`%s` requires string as second parameter",
-                  pp_directives[i]);
-            free_tlist(tline);
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-
-        /*
-         * Convert the string to a token stream.  Note that smacros
-         * are stored with the token stream reversed, so we have to
-         * reverse the output of tokenize().
-         */
-        nasm_unquote_cstr(t->text, i);
-        macro_start = reverse_tokens(tokenize(t->text));
-
-        /*
-         * We now have a macro name, an implicit parameter count of
-         * zero, and a numeric token to use as an expansion. Create
-         * and store an SMacro.
-         */
-        define_smacro(ctx, mname, casesense, 0, macro_start);
-        free_tlist(tline);
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_PATHSEARCH:
-    {
-        const char *found_path;
-
-        casesense = true;
-
-        tline = tline->next;
-        skip_white_(tline);
-        tline = expand_id(tline);
-        if (!tline || (tline->type != TOK_ID &&
-                       (tline->type != TOK_PREPROC_ID ||
-                        tline->text[1] != '$'))) {
-            nasm_error(ERR_NONFATAL,
-                  "`%%pathsearch' expects a macro identifier as first parameter");
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-        ctx = get_ctx(tline->text, &mname);
-        last = tline;
-        tline = expand_smacro(tline->next);
-        last->next = NULL;
-
-        t = tline;
-        while (tok_type_(t, TOK_WHITESPACE))
-            t = t->next;
-
-        if (!t || (t->type != TOK_STRING &&
-                   t->type != TOK_INTERNAL_STRING)) {
-            nasm_error(ERR_NONFATAL, "`%%pathsearch' expects a file name");
-            free_tlist(tline);
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;     /* but we did _something_ */
-        }
-        if (t->next)
-            nasm_error(ERR_WARNING|ERR_PASS1,
-                  "trailing garbage after `%%pathsearch' ignored");
-        p = t->text;
-        if (t->type != TOK_INTERNAL_STRING)
-            nasm_unquote(p, NULL);
-
-        inc_fopen(p, NULL, &found_path, INC_PROBE, NF_BINARY);
-        if (!found_path)
-            found_path = p;
-        macro_start = nasm_malloc(sizeof(*macro_start));
-        macro_start->next = NULL;
-        macro_start->text = nasm_quote(found_path, strlen(found_path));
-        macro_start->type = TOK_STRING;
-        macro_start->a.mac = NULL;
-
-        /*
-         * We now have a macro name, an implicit parameter count of
-         * zero, and a string token to use as an expansion. Create
-         * and store an SMacro.
-         */
-        define_smacro(ctx, mname, casesense, 0, macro_start);
-        free_tlist(tline);
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-    }
-
-    case PP_STRLEN:
-        casesense = true;
-
-        tline = tline->next;
-        skip_white_(tline);
-        tline = expand_id(tline);
-        if (!tline || (tline->type != TOK_ID &&
-                       (tline->type != TOK_PREPROC_ID ||
-                        tline->text[1] != '$'))) {
-            nasm_error(ERR_NONFATAL,
-                  "`%%strlen' expects a macro identifier as first parameter");
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-        ctx = get_ctx(tline->text, &mname);
-        last = tline;
-        tline = expand_smacro(tline->next);
-        last->next = NULL;
-
-        t = tline;
-        while (tok_type_(t, TOK_WHITESPACE))
-            t = t->next;
-        /* t should now point to the string */
-        if (!tok_type_(t, TOK_STRING)) {
-            nasm_error(ERR_NONFATAL,
-                  "`%%strlen` requires string as second parameter");
-            free_tlist(tline);
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-
-        macro_start = nasm_malloc(sizeof(*macro_start));
-        macro_start->next = NULL;
-        make_tok_num(macro_start, nasm_unquote(t->text, NULL));
-        macro_start->a.mac = NULL;
-
-        /*
-         * We now have a macro name, an implicit parameter count of
-         * zero, and a numeric token to use as an expansion. Create
-         * and store an SMacro.
-         */
-        define_smacro(ctx, mname, casesense, 0, macro_start);
-        free_tlist(tline);
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_STRCAT:
-        casesense = true;
-
-        tline = tline->next;
-        skip_white_(tline);
-        tline = expand_id(tline);
-        if (!tline || (tline->type != TOK_ID &&
-                       (tline->type != TOK_PREPROC_ID ||
-                        tline->text[1] != '$'))) {
-            nasm_error(ERR_NONFATAL,
-                  "`%%strcat' expects a macro identifier as first parameter");
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-        ctx = get_ctx(tline->text, &mname);
-        last = tline;
-        tline = expand_smacro(tline->next);
-        last->next = NULL;
-
-        len = 0;
-        list_for_each(t, tline) {
-            switch (t->type) {
-            case TOK_WHITESPACE:
-                break;
-            case TOK_STRING:
-                len += t->a.len = nasm_unquote(t->text, NULL);
-                break;
-            case TOK_OTHER:
-                if (!strcmp(t->text, ",")) /* permit comma separators */
-                    break;
-                /* else fall through */
-            default:
-                nasm_error(ERR_NONFATAL,
-                      "non-string passed to `%%strcat' (%d)", t->type);
-                free_tlist(tline);
-                free_tlist(origline);
-                return DIRECTIVE_FOUND;
-            }
-        }
-
-        p = pp = nasm_malloc(len);
-        list_for_each(t, tline) {
-            if (t->type == TOK_STRING) {
-                memcpy(p, t->text, t->a.len);
-                p += t->a.len;
-            }
-        }
-
-        /*
-         * We now have a macro name, an implicit parameter count of
-         * zero, and a numeric token to use as an expansion. Create
-         * and store an SMacro.
-         */
-        macro_start = new_Token(NULL, TOK_STRING, NULL, 0);
-        macro_start->text = nasm_quote(pp, len);
-        nasm_free(pp);
-        define_smacro(ctx, mname, casesense, 0, macro_start);
-        free_tlist(tline);
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_SUBSTR:
-    {
-        int64_t start, count;
-        size_t len;
-
-        casesense = true;
-
-        tline = tline->next;
-        skip_white_(tline);
-        tline = expand_id(tline);
-        if (!tline || (tline->type != TOK_ID &&
-                       (tline->type != TOK_PREPROC_ID ||
-                        tline->text[1] != '$'))) {
-            nasm_error(ERR_NONFATAL,
-                  "`%%substr' expects a macro identifier as first parameter");
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-        ctx = get_ctx(tline->text, &mname);
-        last = tline;
-        tline = expand_smacro(tline->next);
-        last->next = NULL;
-
-        if (tline) /* skip expanded id */
-            t = tline->next;
-        while (tok_type_(t, TOK_WHITESPACE))
-            t = t->next;
-
-        /* t should now point to the string */
-        if (!tok_type_(t, TOK_STRING)) {
-            nasm_error(ERR_NONFATAL,
-                  "`%%substr` requires string as second parameter");
-            free_tlist(tline);
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-
-        tt = t->next;
-        tptr = &tt;
-        tokval.t_type = TOKEN_INVALID;
-        evalresult = evaluate(ppscan, tptr, &tokval, NULL, pass, NULL);
-        if (!evalresult) {
-            free_tlist(tline);
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        } else if (!is_simple(evalresult)) {
-            nasm_error(ERR_NONFATAL, "non-constant value given to `%%substr`");
-            free_tlist(tline);
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-        start = evalresult->value - 1;
-
-        while (tok_type_(tt, TOK_WHITESPACE))
-            tt = tt->next;
-        if (!tt) {
-            count = 1;  /* Backwards compatibility: one character */
-        } else {
-            tokval.t_type = TOKEN_INVALID;
-            evalresult = evaluate(ppscan, tptr, &tokval, NULL, pass, NULL);
-            if (!evalresult) {
-                free_tlist(tline);
-                free_tlist(origline);
-                return DIRECTIVE_FOUND;
-            } else if (!is_simple(evalresult)) {
-                nasm_error(ERR_NONFATAL, "non-constant value given to `%%substr`");
-                free_tlist(tline);
-                free_tlist(origline);
-                return DIRECTIVE_FOUND;
-            }
-            count = evalresult->value;
-        }
-
-        len = nasm_unquote(t->text, NULL);
-
-        /* make start and count being in range */
-        if (start < 0)
-            start = 0;
-        if (count < 0)
-            count = len + count + 1 - start;
-        if (start + count > (int64_t)len)
-            count = len - start;
-        if (!len || count < 0 || start >=(int64_t)len)
-            start = -1, count = 0; /* empty string */
-
-        macro_start = nasm_malloc(sizeof(*macro_start));
-        macro_start->next = NULL;
-        macro_start->text = nasm_quote((start < 0) ? "" : t->text + start, count);
-        macro_start->type = TOK_STRING;
-        macro_start->a.mac = NULL;
-
-        /*
-         * We now have a macro name, an implicit parameter count of
-         * zero, and a numeric token to use as an expansion. Create
-         * and store an SMacro.
-         */
-        define_smacro(ctx, mname, casesense, 0, macro_start);
-        free_tlist(tline);
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-    }
-
-    case PP_ASSIGN:
-    case PP_IASSIGN:
-        casesense = (i == PP_ASSIGN);
-
-        tline = tline->next;
-        skip_white_(tline);
-        tline = expand_id(tline);
-        if (!tline || (tline->type != TOK_ID &&
-                       (tline->type != TOK_PREPROC_ID ||
-                        tline->text[1] != '$'))) {
-            nasm_error(ERR_NONFATAL,
-                  "`%%%sassign' expects a macro identifier",
-                  (i == PP_IASSIGN ? "i" : ""));
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-        ctx = get_ctx(tline->text, &mname);
-        last = tline;
-        tline = expand_smacro(tline->next);
-        last->next = NULL;
-
-        t = tline;
-        tptr = &t;
-        tokval.t_type = TOKEN_INVALID;
-        evalresult = evaluate(ppscan, tptr, &tokval, NULL, pass, NULL);
-        free_tlist(tline);
-        if (!evalresult) {
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-
-        if (tokval.t_type)
-            nasm_error(ERR_WARNING|ERR_PASS1,
-                  "trailing garbage after expression ignored");
-
-        if (!is_simple(evalresult)) {
-            nasm_error(ERR_NONFATAL,
-                  "non-constant value given to `%%%sassign'",
-                  (i == PP_IASSIGN ? "i" : ""));
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-
-        macro_start = nasm_malloc(sizeof(*macro_start));
-        macro_start->next = NULL;
-        make_tok_num(macro_start, reloc_value(evalresult));
-        macro_start->a.mac = NULL;
-
-        /*
-         * We now have a macro name, an implicit parameter count of
-         * zero, and a numeric token to use as an expansion. Create
-         * and store an SMacro.
-         */
-        define_smacro(ctx, mname, casesense, 0, macro_start);
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    case PP_LINE:
-        /*
-         * Syntax is `%line nnn[+mmm] [filename]'
-         */
-        tline = tline->next;
-        skip_white_(tline);
-        if (!tok_type_(tline, TOK_NUMBER)) {
-            nasm_error(ERR_NONFATAL, "`%%line' expects line number");
-            free_tlist(origline);
-            return DIRECTIVE_FOUND;
-        }
-        k = readnum(tline->text, &err);
-        m = 1;
-        tline = tline->next;
-        if (tok_is_(tline, "+")) {
-            tline = tline->next;
-            if (!tok_type_(tline, TOK_NUMBER)) {
-                nasm_error(ERR_NONFATAL, "`%%line' expects line increment");
-                free_tlist(origline);
-                return DIRECTIVE_FOUND;
-            }
-            m = readnum(tline->text, &err);
-            tline = tline->next;
-        }
-        skip_white_(tline);
-        src_set_linnum(k);
-        istk->lineinc = m;
-        if (tline) {
-            char *fname = detoken(tline, false);
-            src_set_fname(fname);
-            nasm_free(fname);
-        }
-        free_tlist(origline);
-        return DIRECTIVE_FOUND;
-
-    default:
-        nasm_error(ERR_FATAL,
-              "preprocessor directive `%s' not yet implemented",
-              pp_directives[i]);
-        return DIRECTIVE_FOUND;
-    }
-}
-
-/*
- * Ensure that a macro parameter contains a condition code and
- * nothing else. Return the condition code index if so, or -1
- * otherwise.
- */
-static int find_cc(Token * t)
-{
-    Token *tt;
-
-    if (!t)
-        return -1;              /* Probably a %+ without a space */
-
-    skip_white_(t);
-    if (t->type != TOK_ID)
-        return -1;
-    tt = t->next;
-    skip_white_(tt);
-    if (tt && (tt->type != TOK_OTHER || strcmp(tt->text, ",")))
-        return -1;
-
-    return bsii(t->text, (const char **)conditions,  ARRAY_SIZE(conditions));
-}
-
-/*
- * This routines walks over tokens strem and hadnles tokens
- * pasting, if @handle_explicit passed then explicit pasting
- * term is handled, otherwise -- implicit pastings only.
- */
-static bool paste_tokens(Token **head, const struct tokseq_match *m,
-                         size_t mnum, bool handle_explicit)
-{
-    Token *tok, *next, **prev_next, **prev_nonspace;
-    bool pasted = false;
-    char *buf, *p;
-    size_t len, i;
-
-    /*
-     * The last token before pasting. We need it
-     * to be able to connect new handled tokens.
-     * In other words if there were a tokens stream
-     *
-     * A -> B -> C -> D
-     *
-     * and we've joined tokens B and C, the resulting
-     * stream should be
-     *
-     * A -> BC -> D
-     */
-    tok = *head;
-    prev_next = NULL;
-
-    if (!tok_type_(tok, TOK_WHITESPACE) && !tok_type_(tok, TOK_PASTE))
-        prev_nonspace = head;
-    else
-        prev_nonspace = NULL;
-
-    while (tok && (next = tok->next)) {
-
-        switch (tok->type) {
-        case TOK_WHITESPACE:
-            /* Zap redundant whitespaces */
-            while (tok_type_(next, TOK_WHITESPACE))
-                next = delete_Token(next);
-            tok->next = next;
-            break;
-
-        case TOK_PASTE:
-            /* Explicit pasting */
-            if (!handle_explicit)
-                break;
-            next = delete_Token(tok);
-
-            while (tok_type_(next, TOK_WHITESPACE))
-                next = delete_Token(next);
-
-            if (!pasted)
-                pasted = true;
-
-            /* Left pasting token is start of line */
-            if (!prev_nonspace)
-                nasm_error(ERR_FATAL, "No lvalue found on pasting");
-
-            /*
-             * No ending token, this might happen in two
-             * cases
-             *
-             *  1) There indeed no right token at all
-             *  2) There is a bare "%define ID" statement,
-             *     and @ID does expand to whitespace.
-             *
-             * So technically we need to do a grammar analysis
-             * in another stage of parsing, but for now lets don't
-             * change the behaviour people used to. Simply allow
-             * whitespace after paste token.
-             */
-            if (!next) {
-                /*
-                 * Zap ending space tokens and that's all.
-                 */
-                tok = (*prev_nonspace)->next;
-                while (tok_type_(tok, TOK_WHITESPACE))
-                    tok = delete_Token(tok);
-                tok = *prev_nonspace;
-                tok->next = NULL;
-                break;
-            }
-
-            tok = *prev_nonspace;
-            while (tok_type_(tok, TOK_WHITESPACE))
-                tok = delete_Token(tok);
-            len  = strlen(tok->text);
-            len += strlen(next->text);
-
-            p = buf = nasm_malloc(len + 1);
-            strcpy(p, tok->text);
-            p = strchr(p, '\0');
-            strcpy(p, next->text);
-
-            delete_Token(tok);
-
-            tok = tokenize(buf);
-            nasm_free(buf);
-
-            *prev_nonspace = tok;
-            while (tok && tok->next)
-                tok = tok->next;
-
-            tok->next = delete_Token(next);
-
-            /* Restart from pasted tokens head */
-            tok = *prev_nonspace;
-            break;
-
-        default:
-            /* implicit pasting */
-            for (i = 0; i < mnum; i++) {
-                if (!(PP_CONCAT_MATCH(tok, m[i].mask_head)))
-                    continue;
-
-                len = 0;
-                while (next && PP_CONCAT_MATCH(next, m[i].mask_tail)) {
-                    len += strlen(next->text);
-                    next = next->next;
-                }
-
-                /* No match */
-                if (tok == next)
-                    break;
-
-                len += strlen(tok->text);
-                p = buf = nasm_malloc(len + 1);
-
-                while (tok != next) {
-                    strcpy(p, tok->text);
-                    p = strchr(p, '\0');
-                    tok = delete_Token(tok);
-                }
-
-                tok = tokenize(buf);
-                nasm_free(buf);
-
-                if (prev_next)
-                    *prev_next = tok;
-                else
-                    *head = tok;
-
-                /*
-                 * Connect pasted into original stream,
-                 * ie A -> new-tokens -> B
-                 */
-                while (tok && tok->next)
-                    tok = tok->next;
-                tok->next = next;
-
-                if (!pasted)
-                    pasted = true;
-
-                /* Restart from pasted tokens head */
-                tok = prev_next ? *prev_next : *head;
-            }
-
-            break;
-        }
-
-        prev_next = &tok->next;
-
-        if (tok->next &&
-            !tok_type_(tok->next, TOK_WHITESPACE) &&
-            !tok_type_(tok->next, TOK_PASTE))
-            prev_nonspace = prev_next;
-
-        tok = tok->next;
-    }
-
-    return pasted;
-}
-
-/*
- * expands to a list of tokens from %{x:y}
- */
-static Token *expand_mmac_params_range(MMacro *mac, Token *tline, Token ***last)
-{
-    Token *t = tline, **tt, *tm, *head;
-    char *pos;
-    int fst, lst, j, i;
-
-    pos = strchr(tline->text, ':');
-    nasm_assert(pos);
-
-    lst = atoi(pos + 1);
-    fst = atoi(tline->text + 1);
-
-    /*
-     * only macros params are accounted so
-     * if someone passes %0 -- we reject such
-     * value(s)
-     */
-    if (lst == 0 || fst == 0)
-        goto err;
-
-    /* the values should be sane */
-    if ((fst > (int)mac->nparam || fst < (-(int)mac->nparam)) ||
-        (lst > (int)mac->nparam || lst < (-(int)mac->nparam)))
-        goto err;
-
-    fst = fst < 0 ? fst + (int)mac->nparam + 1: fst;
-    lst = lst < 0 ? lst + (int)mac->nparam + 1: lst;
-
-    /* counted from zero */
-    fst--, lst--;
-
-    /*
-     * It will be at least one token. Note we
-     * need to scan params until separator, otherwise
-     * only first token will be passed.
-     */
-    tm = mac->params[(fst + mac->rotate) % mac->nparam];
-    head = new_Token(NULL, tm->type, tm->text, 0);
-    tt = &head->next, tm = tm->next;
-    while (tok_isnt_(tm, ",")) {
-        t = new_Token(NULL, tm->type, tm->text, 0);
-        *tt = t, tt = &t->next, tm = tm->next;
-    }
-
-    if (fst < lst) {
-        for (i = fst + 1; i <= lst; i++) {
-            t = new_Token(NULL, TOK_OTHER, ",", 0);
-            *tt = t, tt = &t->next;
-            j = (i + mac->rotate) % mac->nparam;
-            tm = mac->params[j];
-            while (tok_isnt_(tm, ",")) {
-                t = new_Token(NULL, tm->type, tm->text, 0);
-                *tt = t, tt = &t->next, tm = tm->next;
-            }
-        }
-    } else {
-        for (i = fst - 1; i >= lst; i--) {
-            t = new_Token(NULL, TOK_OTHER, ",", 0);
-            *tt = t, tt = &t->next;
-            j = (i + mac->rotate) % mac->nparam;
-            tm = mac->params[j];
-            while (tok_isnt_(tm, ",")) {
-                t = new_Token(NULL, tm->type, tm->text, 0);
-                *tt = t, tt = &t->next, tm = tm->next;
-            }
-        }
-    }
-
-    *last = tt;
-    return head;
-
-err:
-    nasm_error(ERR_NONFATAL, "`%%{%s}': macro parameters out of range",
-          &tline->text[1]);
-    return tline;
-}
-
-/*
- * Expand MMacro-local things: parameter references (%0, %n, %+n,
- * %-n) and MMacro-local identifiers (%%foo) as well as
- * macro indirection (%[...]) and range (%{..:..}).
- */
-static Token *expand_mmac_params(Token * tline)
-{
-    Token *t, *tt, **tail, *thead;
-    bool changed = false;
-    char *pos;
-
-    tail = &thead;
-    thead = NULL;
-
-    while (tline) {
-        if (tline->type == TOK_PREPROC_ID &&
-            (((tline->text[1] == '+' || tline->text[1] == '-') && tline->text[2])   ||
-              (tline->text[1] >= '0' && tline->text[1] <= '9')                      ||
-               tline->text[1] == '%')) {
-            char *text = NULL;
-            int type = 0, cc;   /* type = 0 to placate optimisers */
-            char tmpbuf[30];
-            unsigned int n;
-            int i;
-            MMacro *mac;
-
-            t = tline;
-            tline = tline->next;
-
-            mac = istk->mstk;
-            while (mac && !mac->name)   /* avoid mistaking %reps for macros */
-                mac = mac->next_active;
-            if (!mac) {
-                nasm_error(ERR_NONFATAL, "`%s': not in a macro call", t->text);
-            } else {
-                pos = strchr(t->text, ':');
-                if (!pos) {
-                    switch (t->text[1]) {
-                        /*
-                         * We have to make a substitution of one of the
-                         * forms %1, %-1, %+1, %%foo, %0.
-                         */
-                    case '0':
-                        type = TOK_NUMBER;
-                        snprintf(tmpbuf, sizeof(tmpbuf), "%d", mac->nparam);
-                        text = nasm_strdup(tmpbuf);
-                        break;
-                    case '%':
-                        type = TOK_ID;
-                        snprintf(tmpbuf, sizeof(tmpbuf), "..@%"PRIu64".",
-                                 mac->unique);
-                        text = nasm_strcat(tmpbuf, t->text + 2);
-                        break;
-                    case '-':
-                        n = atoi(t->text + 2) - 1;
-                        if (n >= mac->nparam)
-                            tt = NULL;
-                        else {
-                            if (mac->nparam > 1)
-                                n = (n + mac->rotate) % mac->nparam;
-                            tt = mac->params[n];
-                        }
-                        cc = find_cc(tt);
-                        if (cc == -1) {
-                            nasm_error(ERR_NONFATAL,
-                                  "macro parameter %d is not a condition code",
-                                  n + 1);
-                            text = NULL;
-                        } else {
-                            type = TOK_ID;
-                            if (inverse_ccs[cc] == -1) {
-                                nasm_error(ERR_NONFATAL,
-                                      "condition code `%s' is not invertible",
-                                      conditions[cc]);
-                                text = NULL;
-                            } else
-                                text = nasm_strdup(conditions[inverse_ccs[cc]]);
-                        }
-                        break;
-                    case '+':
-                        n = atoi(t->text + 2) - 1;
-                        if (n >= mac->nparam)
-                            tt = NULL;
-                        else {
-                            if (mac->nparam > 1)
-                                n = (n + mac->rotate) % mac->nparam;
-                            tt = mac->params[n];
-                        }
-                        cc = find_cc(tt);
-                        if (cc == -1) {
-                            nasm_error(ERR_NONFATAL,
-                                  "macro parameter %d is not a condition code",
-                                  n + 1);
-                            text = NULL;
-                        } else {
-                            type = TOK_ID;
-                            text = nasm_strdup(conditions[cc]);
-                        }
-                        break;
-                    default:
-                        n = atoi(t->text + 1) - 1;
-                        if (n >= mac->nparam)
-                            tt = NULL;
-                        else {
-                            if (mac->nparam > 1)
-                                n = (n + mac->rotate) % mac->nparam;
-                            tt = mac->params[n];
-                        }
-                        if (tt) {
-                            for (i = 0; i < mac->paramlen[n]; i++) {
-                                *tail = new_Token(NULL, tt->type, tt->text, 0);
-                                tail = &(*tail)->next;
-                                tt = tt->next;
-                            }
-                        }
-                        text = NULL;        /* we've done it here */
-                        break;
-                    }
-                } else {
-                    /*
-                     * seems we have a parameters range here
-                     */
-                    Token *head, **last;
-                    head = expand_mmac_params_range(mac, t, &last);
-                    if (head != t) {
-                        *tail = head;
-                        *last = tline;
-                        tline = head;
-                        text = NULL;
-                    }
-                }
-            }
-            if (!text) {
-                delete_Token(t);
-            } else {
-                *tail = t;
-                tail = &t->next;
-                t->type = type;
-                nasm_free(t->text);
-                t->text = text;
-                t->a.mac = NULL;
-            }
-            changed = true;
-            continue;
-        } else if (tline->type == TOK_INDIRECT) {
-            t = tline;
-            tline = tline->next;
-            tt = tokenize(t->text);
-            tt = expand_mmac_params(tt);
-            tt = expand_smacro(tt);
-            *tail = tt;
-            while (tt) {
-                tt->a.mac = NULL; /* Necessary? */
-                tail = &tt->next;
-                tt = tt->next;
-            }
-            delete_Token(t);
-            changed = true;
-        } else {
-            t = *tail = tline;
-            tline = tline->next;
-            t->a.mac = NULL;
-            tail = &t->next;
-        }
-    }
-    *tail = NULL;
-
-    if (changed) {
-        const struct tokseq_match t[] = {
-            {
-                PP_CONCAT_MASK(TOK_ID)          |
-                PP_CONCAT_MASK(TOK_FLOAT),          /* head */
-                PP_CONCAT_MASK(TOK_ID)          |
-                PP_CONCAT_MASK(TOK_NUMBER)      |
-                PP_CONCAT_MASK(TOK_FLOAT)       |
-                PP_CONCAT_MASK(TOK_OTHER)           /* tail */
-            },
-            {
-                PP_CONCAT_MASK(TOK_NUMBER),         /* head */
-                PP_CONCAT_MASK(TOK_NUMBER)          /* tail */
-            }
-        };
-        paste_tokens(&thead, t, ARRAY_SIZE(t), false);
-    }
-
-    return thead;
-}
-
-/*
- * Expand all single-line macro calls made in the given line.
- * Return the expanded version of the line. The original is deemed
- * to be destroyed in the process. (In reality we'll just move
- * Tokens from input to output a lot of the time, rather than
- * actually bothering to destroy and replicate.)
- */
-
-static Token *expand_smacro(Token * tline)
-{
-    Token *t, *tt, *mstart, **tail, *thead;
-    SMacro *head = NULL, *m;
-    Token **params;
-    int *paramsize;
-    unsigned int nparam, sparam;
-    int brackets;
-    Token *org_tline = tline;
-    Context *ctx;
-    const char *mname;
-    int deadman = DEADMAN_LIMIT;
-    bool expanded;
-
-    /*
-     * Trick: we should avoid changing the start token pointer since it can
-     * be contained in "next" field of other token. Because of this
-     * we allocate a copy of first token and work with it; at the end of
-     * routine we copy it back
-     */
-    if (org_tline) {
-        tline = new_Token(org_tline->next, org_tline->type,
-                          org_tline->text, 0);
-        tline->a.mac = org_tline->a.mac;
-        nasm_free(org_tline->text);
-        org_tline->text = NULL;
-    }
-
-    expanded = true;            /* Always expand %+ at least once */
-
-again:
-    thead = NULL;
-    tail = &thead;
-
-    while (tline) {             /* main token loop */
-        if (!--deadman) {
-            nasm_error(ERR_NONFATAL, "interminable macro recursion");
-            goto err;
-        }
-
-        if ((mname = tline->text)) {
-            /* if this token is a local macro, look in local context */
-            if (tline->type == TOK_ID) {
-                head = (SMacro *)hash_findix(&smacros, mname);
-            } else if (tline->type == TOK_PREPROC_ID) {
-                ctx = get_ctx(mname, &mname);
-                head = ctx ? (SMacro *)hash_findix(&ctx->localmac, mname) : NULL;
-            } else
-                head = NULL;
-
-            /*
-             * We've hit an identifier. As in is_mmacro below, we first
-             * check whether the identifier is a single-line macro at
-             * all, then think about checking for parameters if
-             * necessary.
-             */
-            list_for_each(m, head)
-                if (!mstrcmp(m->name, mname, m->casesense))
-                    break;
-            if (m) {
-                mstart = tline;
-                params = NULL;
-                paramsize = NULL;
-                if (m->nparam == 0) {
-                    /*
-                     * Simple case: the macro is parameterless. Discard the
-                     * one token that the macro call took, and push the
-                     * expansion back on the to-do stack.
-                     */
-                    if (!m->expansion) {
-                        if (!strcmp("__FILE__", m->name)) {
-                            const char *file = src_get_fname();
-                            /* nasm_free(tline->text); here? */
-                            tline->text = nasm_quote(file, strlen(file));
-                            tline->type = TOK_STRING;
-                            continue;
-                        }
-                        if (!strcmp("__LINE__", m->name)) {
-                            nasm_free(tline->text);
-                            make_tok_num(tline, src_get_linnum());
-                            continue;
-                        }
-                        if (!strcmp("__BITS__", m->name)) {
-                            nasm_free(tline->text);
-                            make_tok_num(tline, globalbits);
-                            continue;
-                        }
-                        tline = delete_Token(tline);
-                        continue;
-                    }
-                } else {
-                    /*
-                     * Complicated case: at least one macro with this name
-                     * exists and takes parameters. We must find the
-                     * parameters in the call, count them, find the SMacro
-                     * that corresponds to that form of the macro call, and
-                     * substitute for the parameters when we expand. What a
-                     * pain.
-                     */
-                    /*tline = tline->next;
-                      skip_white_(tline); */
-                    do {
-                        t = tline->next;
-                        while (tok_type_(t, TOK_SMAC_END)) {
-                            t->a.mac->in_progress = false;
-                            t->text = NULL;
-                            t = tline->next = delete_Token(t);
-                        }
-                        tline = t;
-                    } while (tok_type_(tline, TOK_WHITESPACE));
-                    if (!tok_is_(tline, "(")) {
-                        /*
-                         * This macro wasn't called with parameters: ignore
-                         * the call. (Behaviour borrowed from gnu cpp.)
-                         */
-                        tline = mstart;
-                        m = NULL;
-                    } else {
-                        int paren = 0;
-                        int white = 0;
-                        brackets = 0;
-                        nparam = 0;
-                        sparam = PARAM_DELTA;
-                        params = nasm_malloc(sparam * sizeof(Token *));
-                        params[0] = tline->next;
-                        paramsize = nasm_malloc(sparam * sizeof(int));
-                        paramsize[0] = 0;
-                        while (true) {  /* parameter loop */
-                            /*
-                             * For some unusual expansions
-                             * which concatenates function call
-                             */
-                            t = tline->next;
-                            while (tok_type_(t, TOK_SMAC_END)) {
-                                t->a.mac->in_progress = false;
-                                t->text = NULL;
-                                t = tline->next = delete_Token(t);
-                            }
-                            tline = t;
-
-                            if (!tline) {
-                                nasm_error(ERR_NONFATAL,
-                                      "macro call expects terminating `)'");
-                                break;
-                            }
-                            if (tline->type == TOK_WHITESPACE
-                                && brackets <= 0) {
-                                if (paramsize[nparam])
-                                    white++;
-                                else
-                                    params[nparam] = tline->next;
-                                continue;       /* parameter loop */
-                            }
-                            if (tline->type == TOK_OTHER
-                                && tline->text[1] == 0) {
-                                char ch = tline->text[0];
-                                if (ch == ',' && !paren && brackets <= 0) {
-                                    if (++nparam >= sparam) {
-                                        sparam += PARAM_DELTA;
-                                        params = nasm_realloc(params,
-                                                        sparam * sizeof(Token *));
-                                        paramsize = nasm_realloc(paramsize,
-                                                        sparam * sizeof(int));
-                                    }
-                                    params[nparam] = tline->next;
-                                    paramsize[nparam] = 0;
-                                    white = 0;
-                                    continue;   /* parameter loop */
-                                }
-                                if (ch == '{' &&
-                                    (brackets > 0 || (brackets == 0 &&
-                                                      !paramsize[nparam])))
-                                {
-                                    if (!(brackets++)) {
-                                        params[nparam] = tline->next;
-                                        continue;       /* parameter loop */
-                                    }
-                                }
-                                if (ch == '}' && brackets > 0)
-                                    if (--brackets == 0) {
-                                        brackets = -1;
-                                        continue;       /* parameter loop */
-                                    }
-                                if (ch == '(' && !brackets)
-                                    paren++;
-                                if (ch == ')' && brackets <= 0)
-                                    if (--paren < 0)
-                                        break;
-                            }
-                            if (brackets < 0) {
-                                brackets = 0;
-                                nasm_error(ERR_NONFATAL, "braces do not "
-                                      "enclose all of macro parameter");
-                            }
-                            paramsize[nparam] += white + 1;
-                            white = 0;
-                        }       /* parameter loop */
-                        nparam++;
-                        while (m && (m->nparam != nparam ||
-                                     mstrcmp(m->name, mname,
-                                             m->casesense)))
-                            m = m->next;
-                        if (!m)
-                            nasm_error(ERR_WARNING|ERR_PASS1|ERR_WARN_MNP,
-                                  "macro `%s' exists, "
-                                  "but not taking %d parameters",
-                                  mstart->text, nparam);
-                    }
-                }
-                if (m && m->in_progress)
-                    m = NULL;
-                if (!m) {       /* in progess or didn't find '(' or wrong nparam */
-                    /*
-                     * Design question: should we handle !tline, which
-                     * indicates missing ')' here, or expand those
-                     * macros anyway, which requires the (t) test a few
-                     * lines down?
-                     */
-                    nasm_free(params);
-                    nasm_free(paramsize);
-                    tline = mstart;
-                } else {
-                    /*
-                     * Expand the macro: we are placed on the last token of the
-                     * call, so that we can easily split the call from the
-                     * following tokens. We also start by pushing an SMAC_END
-                     * token for the cycle removal.
-                     */
-                    t = tline;
-                    if (t) {
-                        tline = t->next;
-                        t->next = NULL;
-                    }
-                    tt = new_Token(tline, TOK_SMAC_END, NULL, 0);
-                    tt->a.mac = m;
-                    m->in_progress = true;
-                    tline = tt;
-                    list_for_each(t, m->expansion) {
-                        if (t->type >= TOK_SMAC_PARAM) {
-                            Token *pcopy = tline, **ptail = &pcopy;
-                            Token *ttt, *pt;
-                            int i;
-
-                            ttt = params[t->type - TOK_SMAC_PARAM];
-                            i = paramsize[t->type - TOK_SMAC_PARAM];
-                            while (--i >= 0) {
-                                pt = *ptail = new_Token(tline, ttt->type,
-                                                        ttt->text, 0);
-                                ptail = &pt->next;
-                                ttt = ttt->next;
-                            }
-                            tline = pcopy;
-                        } else if (t->type == TOK_PREPROC_Q) {
-                            tt = new_Token(tline, TOK_ID, mname, 0);
-                            tline = tt;
-                        } else if (t->type == TOK_PREPROC_QQ) {
-                            tt = new_Token(tline, TOK_ID, m->name, 0);
-                            tline = tt;
-                        } else {
-                            tt = new_Token(tline, t->type, t->text, 0);
-                            tline = tt;
-                        }
-                    }
-
-                    /*
-                     * Having done that, get rid of the macro call, and clean
-                     * up the parameters.
-                     */
-                    nasm_free(params);
-                    nasm_free(paramsize);
-                    free_tlist(mstart);
-                    expanded = true;
-                    continue;   /* main token loop */
-                }
-            }
-        }
-
-        if (tline->type == TOK_SMAC_END) {
-            tline->a.mac->in_progress = false;
-            tline = delete_Token(tline);
-        } else {
-            t = *tail = tline;
-            tline = tline->next;
-            t->a.mac = NULL;
-            t->next = NULL;
-            tail = &t->next;
-        }
-    }
-
-    /*
-     * Now scan the entire line and look for successive TOK_IDs that resulted
-     * after expansion (they can't be produced by tokenize()). The successive
-     * TOK_IDs should be concatenated.
-     * Also we look for %+ tokens and concatenate the tokens before and after
-     * them (without white spaces in between).
-     */
-    if (expanded) {
-        const struct tokseq_match t[] = {
-            {
-                PP_CONCAT_MASK(TOK_ID)          |
-                PP_CONCAT_MASK(TOK_PREPROC_ID),     /* head */
-                PP_CONCAT_MASK(TOK_ID)          |
-                PP_CONCAT_MASK(TOK_PREPROC_ID)  |
-                PP_CONCAT_MASK(TOK_NUMBER)          /* tail */
-            }
-        };
-        if (paste_tokens(&thead, t, ARRAY_SIZE(t), true)) {
-            /*
-             * If we concatenated something, *and* we had previously expanded
-             * an actual macro, scan the lines again for macros...
-             */
-            tline = thead;
-            expanded = false;
-            goto again;
-        }
-    }
-
-err:
-    if (org_tline) {
-        if (thead) {
-            *org_tline = *thead;
-            /* since we just gave text to org_line, don't free it */
-            thead->text = NULL;
-            delete_Token(thead);
-        } else {
-            /* the expression expanded to empty line;
-               we can't return NULL for some reasons
-               we just set the line to a single WHITESPACE token. */
-            memset(org_tline, 0, sizeof(*org_tline));
-            org_tline->text = NULL;
-            org_tline->type = TOK_WHITESPACE;
-        }
-        thead = org_tline;
-    }
-
-    return thead;
-}
-
-/*
- * Similar to expand_smacro but used exclusively with macro identifiers
- * right before they are fetched in. The reason is that there can be
- * identifiers consisting of several subparts. We consider that if there
- * are more than one element forming the name, user wants a expansion,
- * otherwise it will be left as-is. Example:
- *
- *      %define %$abc cde
- *
- * the identifier %$abc will be left as-is so that the handler for %define
- * will suck it and define the corresponding value. Other case:
- *
- *      %define _%$abc cde
- *
- * In this case user wants name to be expanded *before* %define starts
- * working, so we'll expand %$abc into something (if it has a value;
- * otherwise it will be left as-is) then concatenate all successive
- * PP_IDs into one.
- */
-static Token *expand_id(Token * tline)
-{
-    Token *cur, *oldnext = NULL;
-
-    if (!tline || !tline->next)
-        return tline;
-
-    cur = tline;
-    while (cur->next &&
-           (cur->next->type == TOK_ID ||
-            cur->next->type == TOK_PREPROC_ID
-            || cur->next->type == TOK_NUMBER))
-        cur = cur->next;
-
-    /* If identifier consists of just one token, don't expand */
-    if (cur == tline)
-        return tline;
-
-    if (cur) {
-        oldnext = cur->next;    /* Detach the tail past identifier */
-        cur->next = NULL;       /* so that expand_smacro stops here */
-    }
-
-    tline = expand_smacro(tline);
-
-    if (cur) {
-        /* expand_smacro possibly changhed tline; re-scan for EOL */
-        cur = tline;
-        while (cur && cur->next)
-            cur = cur->next;
-        if (cur)
-            cur->next = oldnext;
-    }
-
-    return tline;
-}
-
-/*
- * Determine whether the given line constitutes a multi-line macro
- * call, and return the MMacro structure called if so. Doesn't have
- * to check for an initial label - that's taken care of in
- * expand_mmacro - but must check numbers of parameters. Guaranteed
- * to be called with tline->type == TOK_ID, so the putative macro
- * name is easy to find.
- */
-static MMacro *is_mmacro(Token * tline, Token *** params_array)
-{
-    MMacro *head, *m;
-    Token **params;
-    int nparam;
-
-    head = (MMacro *) hash_findix(&mmacros, tline->text);
-
-    /*
-     * Efficiency: first we see if any macro exists with the given
-     * name. If not, we can return NULL immediately. _Then_ we
-     * count the parameters, and then we look further along the
-     * list if necessary to find the proper MMacro.
-     */
-    list_for_each(m, head)
-        if (!mstrcmp(m->name, tline->text, m->casesense))
-            break;
-    if (!m)
-        return NULL;
-
-    /*
-     * OK, we have a potential macro. Count and demarcate the
-     * parameters.
-     */
-    count_mmac_params(tline->next, &nparam, &params);
-
-    /*
-     * So we know how many parameters we've got. Find the MMacro
-     * structure that handles this number.
-     */
-    while (m) {
-        if (m->nparam_min <= nparam
-            && (m->plus || nparam <= m->nparam_max)) {
-            /*
-             * This one is right. Just check if cycle removal
-             * prohibits us using it before we actually celebrate...
-             */
-            if (m->in_progress > m->max_depth) {
-                if (m->max_depth > 0) {
-                    nasm_error(ERR_WARNING,
-                          "reached maximum recursion depth of %i",
-                          m->max_depth);
-                }
-                nasm_free(params);
-                return NULL;
-            }
-            /*
-             * It's right, and we can use it. Add its default
-             * parameters to the end of our list if necessary.
-             */
-            if (m->defaults && nparam < m->nparam_min + m->ndefs) {
-                params =
-                    nasm_realloc(params,
-                                 ((m->nparam_min + m->ndefs +
-                                   1) * sizeof(*params)));
-                while (nparam < m->nparam_min + m->ndefs) {
-                    params[nparam] = m->defaults[nparam - m->nparam_min];
-                    nparam++;
-                }
-            }
-            /*
-             * If we've gone over the maximum parameter count (and
-             * we're in Plus mode), ignore parameters beyond
-             * nparam_max.
-             */
-            if (m->plus && nparam > m->nparam_max)
-                nparam = m->nparam_max;
-            /*
-             * Then terminate the parameter list, and leave.
-             */
-            if (!params) {      /* need this special case */
-                params = nasm_malloc(sizeof(*params));
-                nparam = 0;
-            }
-            params[nparam] = NULL;
-            *params_array = params;
-            return m;
-        }
-        /*
-         * This one wasn't right: look for the next one with the
-         * same name.
-         */
-        list_for_each(m, m->next)
-            if (!mstrcmp(m->name, tline->text, m->casesense))
-                break;
-    }
-
-    /*
-     * After all that, we didn't find one with the right number of
-     * parameters. Issue a warning, and fail to expand the macro.
-     */
-    nasm_error(ERR_WARNING|ERR_PASS1|ERR_WARN_MNP,
-          "macro `%s' exists, but not taking %d parameters",
-          tline->text, nparam);
-    nasm_free(params);
-    return NULL;
-}
-
-
-/*
- * Save MMacro invocation specific fields in
- * preparation for a recursive macro expansion
- */
-static void push_mmacro(MMacro *m)
-{
-    MMacroInvocation *i;
-
-    i = nasm_malloc(sizeof(MMacroInvocation));
-    i->prev = m->prev;
-    i->params = m->params;
-    i->iline = m->iline;
-    i->nparam = m->nparam;
-    i->rotate = m->rotate;
-    i->paramlen = m->paramlen;
-    i->unique = m->unique;
-    i->condcnt = m->condcnt;
-    m->prev = i;
-}
-
-
-/*
- * Restore MMacro invocation specific fields that were
- * saved during a previous recursive macro expansion
- */
-static void pop_mmacro(MMacro *m)
-{
-    MMacroInvocation *i;
-
-    if (m->prev) {
-        i = m->prev;
-        m->prev = i->prev;
-        m->params = i->params;
-        m->iline = i->iline;
-        m->nparam = i->nparam;
-        m->rotate = i->rotate;
-        m->paramlen = i->paramlen;
-        m->unique = i->unique;
-        m->condcnt = i->condcnt;
-        nasm_free(i);
-    }
-}
-
-
-/*
- * Expand the multi-line macro call made by the given line, if
- * there is one to be expanded. If there is, push the expansion on
- * istk->expansion and return 1. Otherwise return 0.
- */
-static int expand_mmacro(Token * tline)
-{
-    Token *startline = tline;
-    Token *label = NULL;
-    int dont_prepend = 0;
-    Token **params, *t, *tt;
-    MMacro *m;
-    Line *l, *ll;
-    int i, nparam, *paramlen;
-    const char *mname;
-
-    t = tline;
-    skip_white_(t);
-    /*    if (!tok_type_(t, TOK_ID))  Lino 02/25/02 */
-    if (!tok_type_(t, TOK_ID) && !tok_type_(t, TOK_PREPROC_ID))
-        return 0;
-    m = is_mmacro(t, &params);
-    if (m) {
-        mname = t->text;
-    } else {
-        Token *last;
-        /*
-         * We have an id which isn't a macro call. We'll assume
-         * it might be a label; we'll also check to see if a
-         * colon follows it. Then, if there's another id after
-         * that lot, we'll check it again for macro-hood.
-         */
-        label = last = t;
-        t = t->next;
-        if (tok_type_(t, TOK_WHITESPACE))
-            last = t, t = t->next;
-        if (tok_is_(t, ":")) {
-            dont_prepend = 1;
-            last = t, t = t->next;
-            if (tok_type_(t, TOK_WHITESPACE))
-                last = t, t = t->next;
-        }
-        if (!tok_type_(t, TOK_ID) || !(m = is_mmacro(t, &params)))
-            return 0;
-        last->next = NULL;
-        mname = t->text;
-        tline = t;
-    }
-
-    /*
-     * Fix up the parameters: this involves stripping leading and
-     * trailing whitespace, then stripping braces if they are
-     * present.
-     */
-    for (nparam = 0; params[nparam]; nparam++) ;
-    paramlen = nparam ? nasm_malloc(nparam * sizeof(*paramlen)) : NULL;
-
-    for (i = 0; params[i]; i++) {
-        int brace = 0;
-        int comma = (!m->plus || i < nparam - 1);
-
-        t = params[i];
-        skip_white_(t);
-        if (tok_is_(t, "{"))
-            t = t->next, brace++, comma = false;
-        params[i] = t;
-        paramlen[i] = 0;
-        while (t) {
-            if (comma && t->type == TOK_OTHER && !strcmp(t->text, ","))
-                break;          /* ... because we have hit a comma */
-            if (comma && t->type == TOK_WHITESPACE
-                && tok_is_(t->next, ","))
-                break;          /* ... or a space then a comma */
-            if (brace && t->type == TOK_OTHER) {
-                if (t->text[0] == '{')
-                    brace++;            /* ... or a nested opening brace */
-                else if (t->text[0] == '}')
-                    if (!--brace)
-                        break;          /* ... or a brace */
-            }
-            t = t->next;
-            paramlen[i]++;
-        }
-        if (brace)
-            nasm_error(ERR_NONFATAL, "macro params should be enclosed in braces");
-    }
-
-    /*
-     * OK, we have a MMacro structure together with a set of
-     * parameters. We must now go through the expansion and push
-     * copies of each Line on to istk->expansion. Substitution of
-     * parameter tokens and macro-local tokens doesn't get done
-     * until the single-line macro substitution process; this is
-     * because delaying them allows us to change the semantics
-     * later through %rotate.
-     *
-     * First, push an end marker on to istk->expansion, mark this
-     * macro as in progress, and set up its invocation-specific
-     * variables.
-     */
-    ll = nasm_malloc(sizeof(Line));
-    ll->next = istk->expansion;
-    ll->finishes = m;
-    ll->first = NULL;
-    istk->expansion = ll;
-
-    /*
-     * Save the previous MMacro expansion in the case of
-     * macro recursion
-     */
-    if (m->max_depth && m->in_progress)
-        push_mmacro(m);
-
-    m->in_progress ++;
-    m->params = params;
-    m->iline = tline;
-    m->nparam = nparam;
-    m->rotate = 0;
-    m->paramlen = paramlen;
-    m->unique = unique++;
-    m->lineno = 0;
-    m->condcnt = 0;
-
-    m->next_active = istk->mstk;
-    istk->mstk = m;
-
-    list_for_each(l, m->expansion) {
-        Token **tail;
-
-        ll = nasm_malloc(sizeof(Line));
-        ll->finishes = NULL;
-        ll->next = istk->expansion;
-        istk->expansion = ll;
-        tail = &ll->first;
-
-        list_for_each(t, l->first) {
-            Token *x = t;
-            switch (t->type) {
-            case TOK_PREPROC_Q:
-                tt = *tail = new_Token(NULL, TOK_ID, mname, 0);
-                break;
-            case TOK_PREPROC_QQ:
-                tt = *tail = new_Token(NULL, TOK_ID, m->name, 0);
-                break;
-            case TOK_PREPROC_ID:
-                if (t->text[1] == '0' && t->text[2] == '0') {
-                    dont_prepend = -1;
-                    x = label;
-                    if (!x)
-                        continue;
-                }
-                /* fall through */
-            default:
-                tt = *tail = new_Token(NULL, x->type, x->text, 0);
-                break;
-            }
-            tail = &tt->next;
-        }
-        *tail = NULL;
-    }
-
-    /*
-     * If we had a label, push it on as the first line of
-     * the macro expansion.
-     */
-    if (label) {
-        if (dont_prepend < 0)
-            free_tlist(startline);
-        else {
-            ll = nasm_malloc(sizeof(Line));
-            ll->finishes = NULL;
-            ll->next = istk->expansion;
-            istk->expansion = ll;
-            ll->first = startline;
-            if (!dont_prepend) {
-                while (label->next)
-                    label = label->next;
-                label->next = tt = new_Token(NULL, TOK_OTHER, ":", 0);
-            }
-        }
-    }
-
-    lfmt->uplevel(m->nolist ? LIST_MACRO_NOLIST : LIST_MACRO);
-
-    return 1;
-}
-
-/*
- * This function adds macro names to error messages, and suppresses
- * them if necessary.
- */
-static void pp_verror(int severity, const char *fmt, va_list arg)
-{
-    char buff[BUFSIZ];
-    MMacro *mmac = NULL;
-    int delta = 0;
-
-    /*
-     * If we're in a dead branch of IF or something like it, ignore the error.
-     * However, because %else etc are evaluated in the state context
-     * of the previous branch, errors might get lost:
-     *   %if 0 ... %else trailing garbage ... %endif
-     * So %else etc should set the ERR_PP_PRECOND flag.
-     */
-    if ((severity & ERR_MASK) < ERR_FATAL &&
-	istk && istk->conds &&
-	((severity & ERR_PP_PRECOND) ?
-	 istk->conds->state == COND_NEVER :
-	 !emitting(istk->conds->state)))
-	return;
-
-    /* get %macro name */
-    if (!(severity & ERR_NOFILE) && istk && istk->mstk) {
-        mmac = istk->mstk;
-        /* but %rep blocks should be skipped */
-        while (mmac && !mmac->name)
-            mmac = mmac->next_active, delta++;
-    }
-
-    if (mmac) {
-	vsnprintf(buff, sizeof(buff), fmt, arg);
-
-	nasm_set_verror(real_verror);
-	nasm_error(severity, "(%s:%d) %s",
-		   mmac->name, mmac->lineno - delta, buff);
-	nasm_set_verror(pp_verror);
-    } else {
-        real_verror(severity, fmt, arg);
-    }
-}
-
-static void
-pp_reset(char *file, int apass, StrList **deplist)
-{
-    Token *t;
-
-    cstk = NULL;
-    istk = nasm_malloc(sizeof(Include));
-    istk->next = NULL;
-    istk->conds = NULL;
-    istk->expansion = NULL;
-    istk->mstk = NULL;
-    istk->fp = nasm_open_read(file, NF_TEXT);
-    istk->fname = NULL;
-    src_set(0, file);
-    istk->lineinc = 1;
-    if (!istk->fp)
-	nasm_fatal(ERR_NOFILE, "unable to open input file `%s'", file);
-    defining = NULL;
-    nested_mac_count = 0;
-    nested_rep_count = 0;
-    init_macros();
-    unique = 0;
-
-    if (tasm_compatible_mode)
-        pp_add_stdmac(nasm_stdmac_tasm);
-
-    pp_add_stdmac(nasm_stdmac_nasm);
-    pp_add_stdmac(nasm_stdmac_version);
-
-    if (extrastdmac)
-        pp_add_stdmac(extrastdmac);
-
-    stdmacpos  = stdmacros[0];
-    stdmacnext = &stdmacros[1];
-
-    do_predef = true;
-
-    /*
-     * 0 for dependencies, 1 for preparatory passes, 2 for final pass.
-     * The caller, however, will also pass in 3 for preprocess-only so
-     * we can set __PASS__ accordingly.
-     */
-    pass = apass > 2 ? 2 : apass;
-
-    dephead = deplist;
-    nasm_add_string_to_strlist(dephead, file);
-    
-    /*
-     * Define the __PASS__ macro.  This is defined here unlike
-     * all the other builtins, because it is special -- it varies between
-     * passes.
-     */
-    t = nasm_malloc(sizeof(*t));
-    t->next = NULL;
-    make_tok_num(t, apass);
-    t->a.mac = NULL;
-    define_smacro(NULL, "__PASS__", true, 0, t);
-}
-
-static void pp_init(void)
-{
-    hash_init(&FileHash, HASH_MEDIUM);
-}
-
-static char *pp_getline(void)
-{
-    char *line;
-    Token *tline;
-
-    real_verror = nasm_set_verror(pp_verror);
-
-    while (1) {
-        /*
-         * Fetch a tokenized line, either from the macro-expansion
-         * buffer or from the input file.
-         */
-        tline = NULL;
-        while (istk->expansion && istk->expansion->finishes) {
-            Line *l = istk->expansion;
-            if (!l->finishes->name && l->finishes->in_progress > 1) {
-                Line *ll;
-
-                /*
-                 * This is a macro-end marker for a macro with no
-                 * name, which means it's not really a macro at all
-                 * but a %rep block, and the `in_progress' field is
-                 * more than 1, meaning that we still need to
-                 * repeat. (1 means the natural last repetition; 0
-                 * means termination by %exitrep.) We have
-                 * therefore expanded up to the %endrep, and must
-                 * push the whole block on to the expansion buffer
-                 * again. We don't bother to remove the macro-end
-                 * marker: we'd only have to generate another one
-                 * if we did.
-                 */
-                l->finishes->in_progress--;
-                list_for_each(l, l->finishes->expansion) {
-                    Token *t, *tt, **tail;
-
-                    ll = nasm_malloc(sizeof(Line));
-                    ll->next = istk->expansion;
-                    ll->finishes = NULL;
-                    ll->first = NULL;
-                    tail = &ll->first;
-
-                    list_for_each(t, l->first) {
-                        if (t->text || t->type == TOK_WHITESPACE) {
-                            tt = *tail = new_Token(NULL, t->type, t->text, 0);
-                            tail = &tt->next;
-                        }
-                    }
-
-                    istk->expansion = ll;
-                }
-            } else {
-                /*
-                 * Check whether a `%rep' was started and not ended
-                 * within this macro expansion. This can happen and
-                 * should be detected. It's a fatal error because
-                 * I'm too confused to work out how to recover
-                 * sensibly from it.
-                 */
-                if (defining) {
-                    if (defining->name)
-                        nasm_panic(0, "defining with name in expansion");
-                    else if (istk->mstk->name)
-                        nasm_fatal(0, "`%%rep' without `%%endrep' within"
-				   " expansion of macro `%s'",
-				   istk->mstk->name);
-                }
-
-                /*
-                 * FIXME:  investigate the relationship at this point between
-                 * istk->mstk and l->finishes
-                 */
-                {
-                    MMacro *m = istk->mstk;
-                    istk->mstk = m->next_active;
-                    if (m->name) {
-                        /*
-                         * This was a real macro call, not a %rep, and
-                         * therefore the parameter information needs to
-                         * be freed.
-                         */
-                        if (m->prev) {
-                            pop_mmacro(m);
-                            l->finishes->in_progress --;
-                        } else {
-                            nasm_free(m->params);
-                            free_tlist(m->iline);
-                            nasm_free(m->paramlen);
-                            l->finishes->in_progress = 0;
-                        }
-                    } else
-                        free_mmacro(m);
-                }
-                istk->expansion = l->next;
-                nasm_free(l);
-                lfmt->downlevel(LIST_MACRO);
-            }
-        }
-        while (1) {             /* until we get a line we can use */
-
-            if (istk->expansion) {      /* from a macro expansion */
-                char *p;
-                Line *l = istk->expansion;
-                if (istk->mstk)
-                    istk->mstk->lineno++;
-                tline = l->first;
-                istk->expansion = l->next;
-                nasm_free(l);
-                p = detoken(tline, false);
-                lfmt->line(LIST_MACRO, p);
-                nasm_free(p);
-                break;
-            }
-            line = read_line();
-            if (line) {         /* from the current input file */
-                line = prepreproc(line);
-                tline = tokenize(line);
-                nasm_free(line);
-                break;
-            }
-            /*
-             * The current file has ended; work down the istk
-             */
-            {
-                Include *i = istk;
-                fclose(i->fp);
-                if (i->conds) {
-                    /* nasm_error can't be conditionally suppressed */
-                    nasm_fatal(0,
-                               "expected `%%endif' before end of file");
-                }
-                /* only set line and file name if there's a next node */
-                if (i->next)
-                    src_set(i->lineno, i->fname);
-                istk = i->next;
-                lfmt->downlevel(LIST_INCLUDE);
-                nasm_free(i);
-                if (!istk) {
-		    line = NULL;
-		    goto done;
-		}
-                if (istk->expansion && istk->expansion->finishes)
-                    break;
-            }
-        }
-
-        /*
-         * We must expand MMacro parameters and MMacro-local labels
-         * _before_ we plunge into directive processing, to cope
-         * with things like `%define something %1' such as STRUC
-         * uses. Unless we're _defining_ a MMacro, in which case
-         * those tokens should be left alone to go into the
-         * definition; and unless we're in a non-emitting
-         * condition, in which case we don't want to meddle with
-         * anything.
-         */
-        if (!defining && !(istk->conds && !emitting(istk->conds->state))
-            && !(istk->mstk && !istk->mstk->in_progress)) {
-            tline = expand_mmac_params(tline);
-        }
-
-        /*
-         * Check the line to see if it's a preprocessor directive.
-         */
-        if (do_directive(tline, &line) == DIRECTIVE_FOUND) {
-            if (line)
-                break;          /* Directive generated output */
-            else
-                continue;
-        } else if (defining) {
-            /*
-             * We're defining a multi-line macro. We emit nothing
-             * at all, and just
-             * shove the tokenized line on to the macro definition.
-             */
-            Line *l = nasm_malloc(sizeof(Line));
-            l->next = defining->expansion;
-            l->first = tline;
-            l->finishes = NULL;
-            defining->expansion = l;
-            continue;
-        } else if (istk->conds && !emitting(istk->conds->state)) {
-            /*
-             * We're in a non-emitting branch of a condition block.
-             * Emit nothing at all, not even a blank line: when we
-             * emerge from the condition we'll give a line-number
-             * directive so we keep our place correctly.
-             */
-            free_tlist(tline);
-            continue;
-        } else if (istk->mstk && !istk->mstk->in_progress) {
-            /*
-             * We're in a %rep block which has been terminated, so
-             * we're walking through to the %endrep without
-             * emitting anything. Emit nothing at all, not even a
-             * blank line: when we emerge from the %rep block we'll
-             * give a line-number directive so we keep our place
-             * correctly.
-             */
-            free_tlist(tline);
-            continue;
-        } else {
-            tline = expand_smacro(tline);
-            if (!expand_mmacro(tline)) {
-                /*
-                 * De-tokenize the line again, and emit it.
-                 */
-                line = detoken(tline, true);
-                free_tlist(tline);
-                break;
-            } else {
-                continue;       /* expand_mmacro calls free_tlist */
-            }
-        }
-    }
-
-done:
-    nasm_set_verror(real_verror);
-    return line;
-}
-
-static void pp_cleanup(int pass)
-{
-    real_verror = nasm_set_verror(pp_verror);
-
-    if (defining) {
-        if (defining->name) {
-            nasm_error(ERR_NONFATAL,
-		       "end of file while still defining macro `%s'",
-		       defining->name);
-        } else {
-            nasm_error(ERR_NONFATAL, "end of file while still in %%rep");
-        }
-
-        free_mmacro(defining);
-        defining = NULL;
-    }
-
-    nasm_set_verror(real_verror);
-
-    while (cstk)
-        ctx_pop();
-    free_macros();
-    while (istk) {
-        Include *i = istk;
-        istk = istk->next;
-        fclose(i->fp);
-        nasm_free(i);
-    }
-    while (cstk)
-        ctx_pop();
-    src_set_fname(NULL);
-    if (pass == 0) {
-        IncPath *i;
-        free_llist(predef);
-        predef = NULL;
-        delete_Blocks();
-        freeTokens = NULL;
-        while ((i = ipath)) {
-            ipath = i->next;
-            if (i->path)
-                nasm_free(i->path);
-            nasm_free(i);
-        }
-    }
-}
-
-static void pp_include_path(char *path)
-{
-    IncPath *i;
-
-    i = nasm_malloc(sizeof(IncPath));
-    i->path = path ? nasm_strdup(path) : NULL;
-    i->next = NULL;
-
-    if (ipath) {
-        IncPath *j = ipath;
-        while (j->next)
-            j = j->next;
-        j->next = i;
-    } else {
-        ipath = i;
-    }
-}
-
-static void pp_pre_include(char *fname)
-{
-    Token *inc, *space, *name;
-    Line *l;
-
-    name = new_Token(NULL, TOK_INTERNAL_STRING, fname, 0);
-    space = new_Token(name, TOK_WHITESPACE, NULL, 0);
-    inc = new_Token(space, TOK_PREPROC_ID, "%include", 0);
-
-    l = nasm_malloc(sizeof(Line));
-    l->next = predef;
-    l->first = inc;
-    l->finishes = NULL;
-    predef = l;
-}
-
-static void pp_pre_define(char *definition)
-{
-    Token *def, *space;
-    Line *l;
-    char *equals;
-
-    real_verror = nasm_set_verror(pp_verror);
-
-    equals = strchr(definition, '=');
-    space = new_Token(NULL, TOK_WHITESPACE, NULL, 0);
-    def = new_Token(space, TOK_PREPROC_ID, "%define", 0);
-    if (equals)
-        *equals = ' ';
-    space->next = tokenize(definition);
-    if (equals)
-        *equals = '=';
-
-    if (space->next->type != TOK_PREPROC_ID &&
-        space->next->type != TOK_ID)
-        nasm_error(ERR_WARNING, "pre-defining non ID `%s\'\n", definition);
-
-    l = nasm_malloc(sizeof(Line));
-    l->next = predef;
-    l->first = def;
-    l->finishes = NULL;
-    predef = l;
-
-    nasm_set_verror(real_verror);
-}
-
-static void pp_pre_undefine(char *definition)
-{
-    Token *def, *space;
-    Line *l;
-
-    space = new_Token(NULL, TOK_WHITESPACE, NULL, 0);
-    def = new_Token(space, TOK_PREPROC_ID, "%undef", 0);
-    space->next = tokenize(definition);
-
-    l = nasm_malloc(sizeof(Line));
-    l->next = predef;
-    l->first = def;
-    l->finishes = NULL;
-    predef = l;
-}
-
-static void pp_add_stdmac(macros_t *macros)
-{
-    macros_t **mp;
-
-    /* Find the end of the list and avoid duplicates */
-    for (mp = stdmacros; *mp; mp++) {
-        if (*mp == macros)
-            return;             /* Nothing to do */
-    }
-
-    nasm_assert(mp < &stdmacros[ARRAY_SIZE(stdmacros)-1]);
-
-    *mp = macros;
-}
-
-static void pp_extra_stdmac(macros_t *macros)
-{
-        extrastdmac = macros;
-}
-
-static void make_tok_num(Token * tok, int64_t val)
-{
-    char numbuf[32];
-    snprintf(numbuf, sizeof(numbuf), "%"PRId64"", val);
-    tok->text = nasm_strdup(numbuf);
-    tok->type = TOK_NUMBER;
-}
-
-static void pp_list_one_macro(MMacro *m, int severity)
-{
-    if (!m)
-	return;
-
-    /* We need to print the next_active list in reverse order */
-    pp_list_one_macro(m->next_active, severity);
-
-    if (m->name && !m->nolist) {
-	src_set(m->xline + m->lineno, m->fname);
-	nasm_error(severity, "... from macro `%s' defined here", m->name);
-    }
-}
-
-static void pp_error_list_macros(int severity)
-{
-    int32_t saved_line;
-    const char *saved_fname = NULL;
-
-    severity |= ERR_PP_LISTMACRO | ERR_NO_SEVERITY;
-    src_get(&saved_line, &saved_fname);
-
-    if (istk)
-        pp_list_one_macro(istk->mstk, severity);
-
-    src_set(saved_line, saved_fname);
-}
-
-const struct preproc_ops nasmpp = {
-    pp_init,
-    pp_reset,
-    pp_getline,
-    pp_cleanup,
-    pp_extra_stdmac,
-    pp_pre_define,
-    pp_pre_undefine,
-    pp_pre_include,
-    pp_include_path,
-    pp_error_list_macros,
-};
--- a/nasmbuild/nasm-2.13rc9/asm/preproc.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/* 
- * preproc.h  header file for preproc.c
- */
-
-#ifndef NASM_PREPROC_H
-#define NASM_PREPROC_H
-
-#include "nasmlib.h"
-#include "pptok.h"
-
-extern const char * const pp_directives[];
-extern const uint8_t pp_directives_len[];
-
-/* Pointer to a macro chain */
-typedef const unsigned char macros_t;
-
-enum preproc_token pp_token_hash(const char *token);
-
-/* Opens an include file or input file. This uses the include path. */
-FILE *pp_input_fopen(const char *filename, enum file_flags mode);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/asm/quote.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,479 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * quote.c
- */
-
-#include "compiler.h"
-
-#include <stdlib.h>
-
-#include "nasmlib.h"
-#include "quote.h"
-
-char *nasm_quote(const char *str, size_t len)
-{
-    const char *p, *ep;
-    char c, c1, *q, *nstr;
-    unsigned char uc;
-    bool sq_ok, dq_ok;
-    size_t qlen;
-
-    sq_ok = dq_ok = true;
-    ep = str+len;
-    qlen = 0;			/* Length if we need `...` quotes */
-    for (p = str; p < ep; p++) {
-	c = *p;
-	switch (c) {
-	case '\'':
-	    sq_ok = false;
-	    qlen++;
-	    break;
-	case '\"':
-	    dq_ok = false;
-	    qlen++;
-	    break;
-	case '`':
-	case '\\':
-	    qlen += 2;
-	    break;
-	default:
-	    if (c < ' ' || c > '~') {
-		sq_ok = dq_ok = false;
-		switch (c) {
-		case '\a':
-		case '\b':
-		case '\t':
-		case '\n':
-		case '\v':
-		case '\f':
-		case '\r':
-		case 27:
-		    qlen += 2;
-		    break;
-		default:
-		    c1 = (p+1 < ep) ? p[1] : 0;
-		    if (c1 >= '0' && c1 <= '7')
-			uc = 0377; /* Must use the full form */
-		    else
-			uc = c;
-		    if (uc > 077)
-			qlen++;
-		    if (uc > 07)
-			qlen++;
-		    qlen += 2;
-		    break;
-		}
-	    } else {
-		qlen++;
-	    }
-	    break;
-	}
-    }
-
-    if (sq_ok || dq_ok) {
-	/* Use '...' or "..." */
-	nstr = nasm_malloc(len+3);
-	nstr[0] = nstr[len+1] = sq_ok ? '\'' : '\"';
-	nstr[len+2] = '\0';
-	if (len > 0)
-	    memcpy(nstr+1, str, len);
-    } else {
-	/* Need to use `...` quoted syntax */
-	nstr = nasm_malloc(qlen+3);
-	q = nstr;
-	*q++ = '`';
-	for (p = str; p < ep; p++) {
-	    c = *p;
-	    switch (c) {
-	    case '`':
-	    case '\\':
-		*q++ = '\\';
-		*q++ = c;
-		break;
-	    case 7:
-		*q++ = '\\';
-		*q++ = 'a';
-		break;
-	    case 8:
-		*q++ = '\\';
-		*q++ = 'b';
-		break;
-	    case 9:
-		*q++ = '\\';
-		*q++ = 't';
-		break;
-	    case 10:
-		*q++ = '\\';
-		*q++ = 'n';
-		break;
-	    case 11:
-		*q++ = '\\';
-		*q++ = 'v';
-		break;
-	    case 12:
-		*q++ = '\\';
-		*q++ = 'f';
-		break;
-	    case 13:
-		*q++ = '\\';
-		*q++ = 'r';
-		break;
-	    case 27:
-		*q++ = '\\';
-		*q++ = 'e';
-		break;
-	    default:
-		if (c < ' ' || c > '~') {
-		    c1 = (p+1 < ep) ? p[1] : 0;
-		    if (c1 >= '0' && c1 <= '7')
-			uc = 0377; /* Must use the full form */
-		    else
-			uc = c;
-		    *q++ = '\\';
-		    if (uc > 077)
-			*q++ = ((unsigned char)c >> 6) + '0';
-		    if (uc > 07)
-			*q++ = (((unsigned char)c >> 3) & 7) + '0';
-		    *q++ = ((unsigned char)c & 7) + '0';
-		    break;
-		} else {
-		    *q++ = c;
-		}
-		break;
-	    }
-	}
-	*q++ = '`';
-	*q++ = '\0';
-	nasm_assert((size_t)(q-nstr) == qlen+3);
-    }
-    return nstr;
-}
-
-static char *emit_utf8(char *q, int32_t v)
-{
-    if (v < 0) {
-	/* Impossible - do nothing */
-    } else if (v <= 0x7f) {
-	*q++ = v;
-    } else if (v <= 0x000007ff) {
-	*q++ = 0xc0 | (v >> 6);
-	*q++ = 0x80 | (v & 63);
-    } else if (v <= 0x0000ffff) {
-	*q++ = 0xe0 | (v >> 12);
-	*q++ = 0x80 | ((v >> 6) & 63);
-	*q++ = 0x80 | (v & 63);
-    } else if (v <= 0x001fffff) {
-	*q++ = 0xf0 | (v >> 18);
-	*q++ = 0x80 | ((v >> 12) & 63);
-	*q++ = 0x80 | ((v >> 6) & 63);
-	*q++ = 0x80 | (v & 63);
-    } else if (v <= 0x03ffffff) {
-	*q++ = 0xf8 | (v >> 24);
-	*q++ = 0x80 | ((v >> 18) & 63);
-	*q++ = 0x80 | ((v >> 12) & 63);
-	*q++ = 0x80 | ((v >> 6) & 63);
-	*q++ = 0x80 | (v & 63);
-    } else {
-	*q++ = 0xfc | (v >> 30);
-	*q++ = 0x80 | ((v >> 24) & 63);
-	*q++ = 0x80 | ((v >> 18) & 63);
-	*q++ = 0x80 | ((v >> 12) & 63);
-	*q++ = 0x80 | ((v >> 6) & 63);
-	*q++ = 0x80 | (v & 63);
-    }
-    return q;
-}
-
-/*
- * Do an *in-place* dequoting of the specified string, returning the
- * resulting length (which may be containing embedded nulls.)
- *
- * In-place replacement is possible since the unquoted length is always
- * shorter than or equal to the quoted length.
- *
- * *ep points to the final quote, or to the null if improperly quoted.
- */
-size_t nasm_unquote(char *str, char **ep)
-{
-    char bq;
-    char *p, *q;
-    char *escp = NULL;
-    char c;
-    enum unq_state {
-	st_start,
-	st_backslash,
-	st_hex,
-	st_oct,
-	st_ucs
-    } state;
-    int ndig = 0;
-    int32_t nval = 0;
-
-    p = q = str;
-    
-    bq = *p++;
-    if (!bq)
-	return 0;
-
-    switch (bq) {
-    case '\'':
-    case '\"':
-	/* '...' or "..." string */
-	while ((c = *p) && c != bq) {
-	    p++;
-	    *q++ = c;
-	}
-	*q = '\0';
-	break;
-
-    case '`':
-	/* `...` string */
-	state = st_start;
-
-	while ((c = *p)) {
-	    p++;
-	    switch (state) {
-	    case st_start:
-		switch (c) {
-		case '\\':
-		    state = st_backslash;
-		    break;
-		case '`':
-		    p--;
-		    goto out;
-		default:
-		    *q++ = c;
-		    break;
-		}
-		break;
-
-	    case st_backslash:
-		state = st_start;
-		escp = p;	/* Beginning of argument sequence */
-		nval = 0;
-		switch (c) {
-		case 'a':
-		    *q++ = 7;
-		    break;
-		case 'b':
-		    *q++ = 8;
-		    break;
-		case 'e':
-		    *q++ = 27;
-		    break;
-		case 'f':
-		    *q++ = 12;
-		    break;
-		case 'n':
-		    *q++ = 10;
-		    break;
-		case 'r':
-		    *q++ = 13;
-		    break;
-		case 't':
-		    *q++ = 9;
-		    break;
-		case 'u':
-		    state = st_ucs;
-		    ndig = 4;
-		    break;
-		case 'U':
-		    state = st_ucs;
-		    ndig = 8;
-		    break;
-		case 'v':
-		    *q++ = 11;
-		    break;
-		case 'x':
-		case 'X':
-		    state = st_hex;
-		    ndig = 2;
-		    break;
-		case '0':
-		case '1':
-		case '2':
-		case '3':
-		case '4':
-		case '5':
-		case '6':
-		case '7':
-		    state = st_oct;
-		    ndig = 2;	/* Up to two more digits */
-		    nval = c - '0';
-		    break;
-		default:
-		    *q++ = c;
-		    break;
-		}
-		break;
-
-	    case st_oct:
-		if (c >= '0' && c <= '7') {
-		    nval = (nval << 3) + (c - '0');
-		    if (!--ndig) {
-			*q++ = nval;
-			state = st_start;
-		    }
-		} else {
-		    p--;	/* Process this character again */
-		    *q++ = nval;
-		    state = st_start;
-		}
-		break;
-
-	    case st_hex:
-		if ((c >= '0' && c <= '9') ||
-		    (c >= 'A' && c <= 'F') ||
-		    (c >= 'a' && c <= 'f')) {
-		    nval = (nval << 4) + numvalue(c);
-		    if (!--ndig) {
-			*q++ = nval;
-			state = st_start;
-		    }
-		} else {
-		    p--;	/* Process this character again */
-		    *q++ = (p > escp) ? nval : escp[-1];
-		    state = st_start;
-		}
-		break;
-
-	    case st_ucs:
-		if ((c >= '0' && c <= '9') ||
-		    (c >= 'A' && c <= 'F') ||
-		    (c >= 'a' && c <= 'f')) {
-		    nval = (nval << 4) + numvalue(c);
-		    if (!--ndig) {
-			q = emit_utf8(q, nval);
-			state = st_start;
-		    }
-		} else {
-		    p--;	/* Process this character again */
-		    if (p > escp)
-			q = emit_utf8(q, nval);
-		    else
-			*q++ = escp[-1];
-		    state = st_start;
-		}
-		break;
-	    }
-	}
-	switch (state) {
-	case st_start:
-	case st_backslash:
-	    break;
-	case st_oct:
-	    *q++ = nval;
-	    break;
-	case st_hex:
-	    *q++ = (p > escp) ? nval : escp[-1];
-	    break;
-	case st_ucs:
-	    if (p > escp)
-		q = emit_utf8(q, nval);
-	    else
-		*q++ = escp[-1];
-	    break;
-	}
-    out:
-	break;
-
-    default:
-	/* Not a quoted string, just return the input... */
-	p = q = strchr(str, '\0');
-	break;
-    }
-
-    if (ep)
-	*ep = p;
-    return q-str;
-}
-
-/*
- * Find the end of a quoted string; returns the pointer to the terminating
- * character (either the ending quote or the null character, if unterminated.)
- */
-char *nasm_skip_string(char *str)
-{
-    char bq;
-    char *p;
-    char c;
-    enum unq_state {
-	st_start,
-	st_backslash
-    } state;
-
-    bq = str[0];
-    if (bq == '\'' || bq == '\"') {
-	/* '...' or "..." string */
-	for (p = str+1; *p && *p != bq; p++)
-	    ;
-	return p;
-    } else if (bq == '`') {
-	/* `...` string */
-	state = st_start;
-	p = str+1;
-	if (!*p)
-		return p;
-
-	while ((c = *p++)) {
-	    switch (state) {
-	    case st_start:
-		switch (c) {
-		case '\\':
-		    state = st_backslash;
-		    break;
-		case '`':
-		    return p-1;	/* Found the end */
-		default:
-		    break;
-		}
-		break;
-
-	    case st_backslash:
-		/*
-		 * Note: for the purpose of finding the end of the string,
-		 * all successor states to st_backslash are functionally
-		 * equivalent to st_start, since either a backslash or
-		 * a backquote will force a return to the st_start state.
-		 */
-		state = st_start;
-		break;
-	    }
-	}
-	return p-1;		/* Unterminated string... */
-    } else {
-	return str;		/* Not a string... */
-    }
-}
--- a/nasmbuild/nasm-2.13rc9/asm/quote.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#ifndef NASM_QUOTE_H
-#define NASM_QUOTE_H
-
-#include "compiler.h"
-
-char *nasm_quote(const char *str, size_t len);
-size_t nasm_unquote(char *str, char **endptr);
-char *nasm_skip_string(char *str);
-
-#endif /* NASM_QUOTE_H */
-
--- a/nasmbuild/nasm-2.13rc9/asm/rdstrnum.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * rdstrnum.c
- *
- * This converts a NASM string to an integer, used when a string
- * is used in an integer constant context.  This is a binary conversion,
- * not a conversion from a numeric constant in text form.
- */
-
-#include "compiler.h"
-#include "nasmlib.h"
-#include "nasm.h"
-
-int64_t readstrnum(char *str, int length, bool *warn)
-{
-    int64_t charconst = 0;
-    int i;
-
-    *warn = false;
-
-    str += length;
-    if (globalbits == 64) {
-        for (i = 0; i < length; i++) {
-            if (charconst & UINT64_C(0xFF00000000000000))
-                *warn = true;
-            charconst = (charconst << 8) + (uint8_t)*--str;
-        }
-    } else {
-        for (i = 0; i < length; i++) {
-            if (charconst & 0xFF000000UL)
-                *warn = true;
-            charconst = (charconst << 8) + (uint8_t)*--str;
-        }
-    }
-    return charconst;
-}
--- a/nasmbuild/nasm-2.13rc9/asm/segalloc.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * nasmlib.c	library routines for the Netwide Assembler
- */
-
-#include "compiler.h"
-#include "nasm.h"
-#include "nasmlib.h"
-#include "insns.h"
-
-int32_t seg_alloc(void)
-{
-    static int32_t next_seg = 0;
-    int32_t this_seg = next_seg;
-
-    next_seg += 2;
-
-    return this_seg;
-}
--- a/nasmbuild/nasm-2.13rc9/asm/stdscan.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,345 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "quote.h"
-#include "stdscan.h"
-#include "insns.h"
-
-/*
- * Standard scanner routine used by parser.c and some output
- * formats. It keeps a succession of temporary-storage strings in
- * stdscan_tempstorage, which can be cleared using stdscan_reset.
- */
-static char *stdscan_bufptr = NULL;
-static char **stdscan_tempstorage = NULL;
-static int stdscan_tempsize = 0, stdscan_templen = 0;
-#define STDSCAN_TEMP_DELTA 256
-
-void stdscan_set(char *str)
-{
-        stdscan_bufptr = str;
-}
-
-char *stdscan_get(void)
-{
-        return stdscan_bufptr;
-}
-
-static void stdscan_pop(void)
-{
-    nasm_free(stdscan_tempstorage[--stdscan_templen]);
-}
-
-void stdscan_reset(void)
-{
-    while (stdscan_templen > 0)
-        stdscan_pop();
-}
-
-/*
- * Unimportant cleanup is done to avoid confusing people who are trying
- * to debug real memory leaks
- */
-void stdscan_cleanup(void)
-{
-    stdscan_reset();
-    nasm_free(stdscan_tempstorage);
-}
-
-static char *stdscan_copy(char *p, int len)
-{
-    char *text;
-
-    text = nasm_malloc(len + 1);
-    memcpy(text, p, len);
-    text[len] = '\0';
-
-    if (stdscan_templen >= stdscan_tempsize) {
-        stdscan_tempsize += STDSCAN_TEMP_DELTA;
-        stdscan_tempstorage = nasm_realloc(stdscan_tempstorage,
-                                           stdscan_tempsize *
-                                           sizeof(char *));
-    }
-    stdscan_tempstorage[stdscan_templen++] = text;
-
-    return text;
-}
-
-/*
- * a token is enclosed with braces. proper token type will be assigned
- * accordingly with the token flag.
- */
-static int stdscan_handle_brace(struct tokenval *tv)
-{
-    if (!(tv->t_flag & TFLAG_BRC_ANY)) {
-        /* invalid token is put inside braces */
-        nasm_error(ERR_NONFATAL,
-                    "`%s' is not a valid decorator with braces", tv->t_charptr);
-        tv->t_type = TOKEN_INVALID;
-    } else if (tv->t_flag & TFLAG_BRC_OPT) {
-        if (is_reg_class(OPMASKREG, tv->t_integer)) {
-            /* within braces, opmask register is now used as a mask */
-            tv->t_type = TOKEN_OPMASK;
-        }
-    }
-
-    return tv->t_type;
-}
-
-int stdscan(void *private_data, struct tokenval *tv)
-{
-    char ourcopy[MAX_KEYWORD + 1], *r, *s;
-
-    (void)private_data;         /* Don't warn that this parameter is unused */
-
-    stdscan_bufptr = nasm_skip_spaces(stdscan_bufptr);
-    if (!*stdscan_bufptr)
-        return tv->t_type = TOKEN_EOS;
-
-    /* we have a token; either an id, a number or a char */
-    if (isidstart(*stdscan_bufptr) ||
-        (*stdscan_bufptr == '$' && isidstart(stdscan_bufptr[1]))) {
-        /* now we've got an identifier */
-        bool is_sym = false;
-        int token_type;
-
-        if (*stdscan_bufptr == '$') {
-            is_sym = true;
-            stdscan_bufptr++;
-        }
-
-        r = stdscan_bufptr++;
-        /* read the entire buffer to advance the buffer pointer but... */
-        while (isidchar(*stdscan_bufptr))
-            stdscan_bufptr++;
-
-        /* ... copy only up to IDLEN_MAX-1 characters */
-        tv->t_charptr = stdscan_copy(r, stdscan_bufptr - r < IDLEN_MAX ?
-                                     stdscan_bufptr - r : IDLEN_MAX - 1);
-
-        if (is_sym || stdscan_bufptr - r > MAX_KEYWORD)
-            return tv->t_type = TOKEN_ID;       /* bypass all other checks */
-
-        for (s = tv->t_charptr, r = ourcopy; *s; s++)
-            *r++ = nasm_tolower(*s);
-        *r = '\0';
-        /* right, so we have an identifier sitting in temp storage. now,
-         * is it actually a register or instruction name, or what? */
-        token_type = nasm_token_hash(ourcopy, tv);
-
-	if (unlikely(tv->t_flag & TFLAG_WARN)) {
-	    nasm_error(ERR_WARNING|ERR_PASS1|ERR_WARN_PTR,
-		       "`%s' is not a NASM keyword", tv->t_charptr);
-	}
-
-        if (likely(!(tv->t_flag & TFLAG_BRC))) {
-            /* most of the tokens fall into this case */
-            return token_type;
-        } else {
-            return tv->t_type = TOKEN_ID;
-        }
-    } else if (*stdscan_bufptr == '$' && !isnumchar(stdscan_bufptr[1])) {
-        /*
-         * It's a $ sign with no following hex number; this must
-         * mean it's a Here token ($), evaluating to the current
-         * assembly location, or a Base token ($$), evaluating to
-         * the base of the current segment.
-         */
-        stdscan_bufptr++;
-        if (*stdscan_bufptr == '$') {
-            stdscan_bufptr++;
-            return tv->t_type = TOKEN_BASE;
-        }
-        return tv->t_type = TOKEN_HERE;
-    } else if (isnumstart(*stdscan_bufptr)) {   /* now we've got a number */
-        bool rn_error;
-        bool is_hex = false;
-        bool is_float = false;
-        bool has_e = false;
-        char c;
-
-        r = stdscan_bufptr;
-
-        if (*stdscan_bufptr == '$') {
-            stdscan_bufptr++;
-            is_hex = true;
-        }
-
-        for (;;) {
-            c = *stdscan_bufptr++;
-
-            if (!is_hex && (c == 'e' || c == 'E')) {
-                has_e = true;
-                if (*stdscan_bufptr == '+' || *stdscan_bufptr == '-') {
-                    /*
-                     * e can only be followed by +/- if it is either a
-                     * prefixed hex number or a floating-point number
-                     */
-                    is_float = true;
-                    stdscan_bufptr++;
-                }
-            } else if (c == 'H' || c == 'h' || c == 'X' || c == 'x') {
-                is_hex = true;
-            } else if (c == 'P' || c == 'p') {
-                is_float = true;
-                if (*stdscan_bufptr == '+' || *stdscan_bufptr == '-')
-                    stdscan_bufptr++;
-            } else if (isnumchar(c))
-                ; /* just advance */
-            else if (c == '.')
-                is_float = true;
-            else
-                break;
-        }
-        stdscan_bufptr--;       /* Point to first character beyond number */
-
-        if (has_e && !is_hex) {
-            /* 1e13 is floating-point, but 1e13h is not */
-            is_float = true;
-        }
-
-        if (is_float) {
-            tv->t_charptr = stdscan_copy(r, stdscan_bufptr - r);
-            return tv->t_type = TOKEN_FLOAT;
-        } else {
-            r = stdscan_copy(r, stdscan_bufptr - r);
-            tv->t_integer = readnum(r, &rn_error);
-            stdscan_pop();
-            if (rn_error) {
-                /* some malformation occurred */
-                return tv->t_type = TOKEN_ERRNUM;
-            }
-            tv->t_charptr = NULL;
-            return tv->t_type = TOKEN_NUM;
-        }
-    } else if (*stdscan_bufptr == '\'' || *stdscan_bufptr == '"' ||
-               *stdscan_bufptr == '`') {
-        /* a quoted string */
-        char start_quote = *stdscan_bufptr;
-        tv->t_charptr = stdscan_bufptr;
-        tv->t_inttwo = nasm_unquote(tv->t_charptr, &stdscan_bufptr);
-        if (*stdscan_bufptr != start_quote)
-            return tv->t_type = TOKEN_ERRSTR;
-        stdscan_bufptr++;       /* Skip final quote */
-        return tv->t_type = TOKEN_STR;
-    } else if (*stdscan_bufptr == '{') {
-        /* now we've got a decorator */
-        int token_len;
-
-        stdscan_bufptr = nasm_skip_spaces(stdscan_bufptr);
-
-        r = ++stdscan_bufptr;
-        /*
-         * read the entire buffer to advance the buffer pointer
-         * {rn-sae}, {rd-sae}, {ru-sae}, {rz-sae} contain '-' in tokens.
-         */
-        while (isbrcchar(*stdscan_bufptr))
-            stdscan_bufptr++;
-
-        token_len = stdscan_bufptr - r;
-
-        /* ... copy only up to DECOLEN_MAX-1 characters */
-        tv->t_charptr = stdscan_copy(r, token_len < DECOLEN_MAX ?
-                                        token_len : DECOLEN_MAX - 1);
-
-        stdscan_bufptr = nasm_skip_spaces(stdscan_bufptr);
-        /* if brace is not closed properly or token is too long  */
-        if ((*stdscan_bufptr != '}') || (token_len > MAX_KEYWORD)) {
-            nasm_error(ERR_NONFATAL,
-                       "invalid decorator token inside braces");
-            return tv->t_type = TOKEN_INVALID;
-        }
-
-        stdscan_bufptr++;       /* skip closing brace */
-
-        for (s = tv->t_charptr, r = ourcopy; *s; s++)
-            *r++ = nasm_tolower(*s);
-        *r = '\0';
-
-        /* right, so we have a decorator sitting in temp storage. */
-        nasm_token_hash(ourcopy, tv);
-
-        /* handle tokens inside braces */
-        return stdscan_handle_brace(tv);
-    } else if (*stdscan_bufptr == ';') {
-        /* a comment has happened - stay */
-        return tv->t_type = TOKEN_EOS;
-    } else if (stdscan_bufptr[0] == '>' && stdscan_bufptr[1] == '>') {
-        stdscan_bufptr += 2;
-        return tv->t_type = TOKEN_SHR;
-    } else if (stdscan_bufptr[0] == '<' && stdscan_bufptr[1] == '<') {
-        stdscan_bufptr += 2;
-        return tv->t_type = TOKEN_SHL;
-    } else if (stdscan_bufptr[0] == '/' && stdscan_bufptr[1] == '/') {
-        stdscan_bufptr += 2;
-        return tv->t_type = TOKEN_SDIV;
-    } else if (stdscan_bufptr[0] == '%' && stdscan_bufptr[1] == '%') {
-        stdscan_bufptr += 2;
-        return tv->t_type = TOKEN_SMOD;
-    } else if (stdscan_bufptr[0] == '=' && stdscan_bufptr[1] == '=') {
-        stdscan_bufptr += 2;
-        return tv->t_type = TOKEN_EQ;
-    } else if (stdscan_bufptr[0] == '<' && stdscan_bufptr[1] == '>') {
-        stdscan_bufptr += 2;
-        return tv->t_type = TOKEN_NE;
-    } else if (stdscan_bufptr[0] == '!' && stdscan_bufptr[1] == '=') {
-        stdscan_bufptr += 2;
-        return tv->t_type = TOKEN_NE;
-    } else if (stdscan_bufptr[0] == '<' && stdscan_bufptr[1] == '=') {
-        stdscan_bufptr += 2;
-        return tv->t_type = TOKEN_LE;
-    } else if (stdscan_bufptr[0] == '>' && stdscan_bufptr[1] == '=') {
-        stdscan_bufptr += 2;
-        return tv->t_type = TOKEN_GE;
-    } else if (stdscan_bufptr[0] == '&' && stdscan_bufptr[1] == '&') {
-        stdscan_bufptr += 2;
-        return tv->t_type = TOKEN_DBL_AND;
-    } else if (stdscan_bufptr[0] == '^' && stdscan_bufptr[1] == '^') {
-        stdscan_bufptr += 2;
-        return tv->t_type = TOKEN_DBL_XOR;
-    } else if (stdscan_bufptr[0] == '|' && stdscan_bufptr[1] == '|') {
-        stdscan_bufptr += 2;
-        return tv->t_type = TOKEN_DBL_OR;
-    } else                      /* just an ordinary char */
-        return tv->t_type = (uint8_t)(*stdscan_bufptr++);
-}
--- a/nasmbuild/nasm-2.13rc9/asm/stdscan.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/* 
- * stdscan.h	header file for stdscan.c
- */
-
-#ifndef NASM_STDSCAN_H
-#define NASM_STDSCAN_H
-
-/* Standard scanner */
-void stdscan_set(char *str);
-char *stdscan_get(void);
-void stdscan_reset(void);
-int stdscan(void *private_data, struct tokenval *tv);
-int nasm_token_hash(const char *token, struct tokenval *tv);
-void stdscan_cleanup(void);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/asm/strfunc.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,359 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * strfunc.c
- *
- * String transformation functions
- */
-
-#include "nasmlib.h"
-#include "nasm.h"
-
-/*
- * Convert a string in UTF-8 format to UTF-16LE
- */
-static size_t utf8_to_16le(uint8_t *str, size_t len, char *op)
-{
-#define EMIT(x) do { if (op) { WRITESHORT(op,x); } outlen++; } while(0)
-
-    size_t outlen = 0;
-    int expect = 0;
-    uint8_t c;
-    uint32_t v = 0, vmin = 0;
-
-    while (len--) {
-        c = *str++;
-
-        if (expect) {
-            if ((c & 0xc0) != 0x80) {
-                expect = 0;
-                return -1;
-            } else {
-                v = (v << 6) | (c & 0x3f);
-                if (!--expect) {
-                    if (v < vmin || v > 0x10ffff ||
-                        (v >= 0xd800 && v <= 0xdfff)) {
-                        return -1;
-                    } else if (v > 0xffff) {
-                        v -= 0x10000;
-                        EMIT(0xd800 | (v >> 10));
-                        EMIT(0xdc00 | (v & 0x3ff));
-                    } else {
-                        EMIT(v);
-                    }
-                }
-                continue;
-            }
-        }
-
-        if (c < 0x80) {
-            EMIT(c);
-        } else if (c < 0xc0 || c >= 0xfe) {
-            /* Invalid UTF-8 */
-            return -1;
-        } else if (c < 0xe0) {
-            v = c & 0x1f;
-            expect = 1;
-            vmin = 0x80;
-        } else if (c < 0xf0) {
-            v = c & 0x0f;
-            expect = 2;
-            vmin = 0x800;
-        } else if (c < 0xf8) {
-            v = c & 0x07;
-            expect = 3;
-            vmin = 0x10000;
-        } else if (c < 0xfc) {
-            v = c & 0x03;
-            expect = 4;
-            vmin = 0x200000;
-        } else {
-            v = c & 0x01;
-            expect = 5;
-            vmin = 0x4000000;
-        }
-    }
-
-    return expect ? (size_t)-1 : outlen << 1;
-
-#undef EMIT
-}
-
-/*
- * Convert a string in UTF-8 format to UTF-16BE
- */
-static size_t utf8_to_16be(uint8_t *str, size_t len, char *op)
-{
-#define EMIT(x)                                 \
-    do {                                        \
-        uint16_t _y = (x);                      \
-        if (op) {                               \
-            WRITECHAR(op, _y >> 8);             \
-            WRITECHAR(op, _y);                  \
-        }                                       \
-        outlen++;                               \
-    } while (0)                                 \
-
-    size_t outlen = 0;
-    int expect = 0;
-    uint8_t c;
-    uint32_t v = 0, vmin = 0;
-
-    while (len--) {
-        c = *str++;
-
-        if (expect) {
-            if ((c & 0xc0) != 0x80) {
-                expect = 0;
-                return -1;
-            } else {
-                v = (v << 6) | (c & 0x3f);
-                if (!--expect) {
-                    if (v < vmin || v > 0x10ffff ||
-                        (v >= 0xd800 && v <= 0xdfff)) {
-                        return -1;
-                    } else if (v > 0xffff) {
-                        v -= 0x10000;
-                        EMIT(0xdc00 | (v & 0x3ff));
-                        EMIT(0xd800 | (v >> 10));
-                    } else {
-                        EMIT(v);
-                    }
-                }
-                continue;
-            }
-        }
-
-        if (c < 0x80) {
-            EMIT(c);
-        } else if (c < 0xc0 || c >= 0xfe) {
-            /* Invalid UTF-8 */
-            return -1;
-        } else if (c < 0xe0) {
-            v = c & 0x1f;
-            expect = 1;
-            vmin = 0x80;
-        } else if (c < 0xf0) {
-            v = c & 0x0f;
-            expect = 2;
-            vmin = 0x800;
-        } else if (c < 0xf8) {
-            v = c & 0x07;
-            expect = 3;
-            vmin = 0x10000;
-        } else if (c < 0xfc) {
-            v = c & 0x03;
-            expect = 4;
-            vmin = 0x200000;
-        } else {
-            v = c & 0x01;
-            expect = 5;
-            vmin = 0x4000000;
-        }
-    }
-
-    return expect ? (size_t)-1 : outlen << 1;
-
-#undef EMIT
-}
-
-/*
- * Convert a string in UTF-8 format to UTF-32LE
- */
-static size_t utf8_to_32le(uint8_t *str, size_t len, char *op)
-{
-#define EMIT(x) do { if (op) { WRITELONG(op,x); } outlen++; } while(0)
-
-    size_t outlen = 0;
-    int expect = 0;
-    uint8_t c;
-    uint32_t v = 0, vmin = 0;
-
-    while (len--) {
-        c = *str++;
-
-        if (expect) {
-            if ((c & 0xc0) != 0x80) {
-                return -1;
-            } else {
-                v = (v << 6) | (c & 0x3f);
-                if (!--expect) {
-                    if (v < vmin || (v >= 0xd800 && v <= 0xdfff)) {
-                        return -1;
-                    } else {
-                        EMIT(v);
-                    }
-                }
-                continue;
-            }
-        }
-
-        if (c < 0x80) {
-            EMIT(c);
-        } else if (c < 0xc0 || c >= 0xfe) {
-            /* Invalid UTF-8 */
-            return -1;
-        } else if (c < 0xe0) {
-            v = c & 0x1f;
-            expect = 1;
-            vmin = 0x80;
-        } else if (c < 0xf0) {
-            v = c & 0x0f;
-            expect = 2;
-            vmin = 0x800;
-        } else if (c < 0xf8) {
-            v = c & 0x07;
-            expect = 3;
-            vmin = 0x10000;
-        } else if (c < 0xfc) {
-            v = c & 0x03;
-            expect = 4;
-            vmin = 0x200000;
-        } else {
-            v = c & 0x01;
-            expect = 5;
-            vmin = 0x4000000;
-        }
-    }
-
-    return expect ? (size_t)-1 : outlen << 2;
-
-#undef EMIT
-}
-
-/*
- * Convert a string in UTF-8 format to UTF-32BE
- */
-static size_t utf8_to_32be(uint8_t *str, size_t len, char *op)
-{
-#define EMIT(x)                                         \
-    do {                                                \
-        uint32_t _y = (x);                              \
-        if (op) {                                       \
-            WRITECHAR(op,_y >> 24);                     \
-            WRITECHAR(op,_y >> 16);                     \
-            WRITECHAR(op,_y >> 8);                      \
-            WRITECHAR(op,_y);                           \
-        }                                               \
-        outlen++;                                       \
-    } while (0)
-
-    size_t outlen = 0;
-    int expect = 0;
-    uint8_t c;
-    uint32_t v = 0, vmin = 0;
-
-    while (len--) {
-        c = *str++;
-
-        if (expect) {
-            if ((c & 0xc0) != 0x80) {
-                return -1;
-            } else {
-                v = (v << 6) | (c & 0x3f);
-                if (!--expect) {
-                    if (v < vmin || (v >= 0xd800 && v <= 0xdfff)) {
-                        return -1;
-                    } else {
-                        EMIT(v);
-                    }
-                }
-                continue;
-            }
-        }
-
-        if (c < 0x80) {
-            EMIT(c);
-        } else if (c < 0xc0 || c >= 0xfe) {
-            /* Invalid UTF-8 */
-            return -1;
-        } else if (c < 0xe0) {
-            v = c & 0x1f;
-            expect = 1;
-            vmin = 0x80;
-        } else if (c < 0xf0) {
-            v = c & 0x0f;
-            expect = 2;
-            vmin = 0x800;
-        } else if (c < 0xf8) {
-            v = c & 0x07;
-            expect = 3;
-            vmin = 0x10000;
-        } else if (c < 0xfc) {
-            v = c & 0x03;
-            expect = 4;
-            vmin = 0x200000;
-        } else {
-            v = c & 0x01;
-            expect = 5;
-            vmin = 0x4000000;
-        }
-    }
-
-    return expect ? (size_t)-1 : outlen << 2;
-
-#undef EMIT
-}
-
-typedef size_t (*transform_func)(uint8_t *, size_t, char *);
-
-/*
- * Apply a specific string transform and return it in a nasm_malloc'd
- * buffer, returning the length.  On error, returns (size_t)-1 and no
- * buffer is allocated.
- */
-size_t string_transform(char *str, size_t len, char **out, enum strfunc func)
-{
-    /* This should match enum strfunc in nasm.h */
-    static const transform_func str_transforms[] = {
-        utf8_to_16le,
-        utf8_to_16le,
-        utf8_to_16be,
-        utf8_to_32le,
-        utf8_to_32le,
-        utf8_to_32be,
-    };
-    transform_func transform = str_transforms[func];
-    size_t outlen;
-    uint8_t *s = (uint8_t *)str;
-    char *buf;
-
-    outlen = transform(s, len, NULL);
-    if (outlen == (size_t)-1)
-        return -1;
-
-    *out = buf = nasm_malloc(outlen+1);
-    buf[outlen] = '\0'; /* Forcibly null-terminate the buffer */
-    return transform(s, len, buf);
-}
--- a/nasmbuild/nasm-2.13rc9/asm/tokens.dat	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-## --------------------------------------------------------------------------
-##   
-##   Copyright 1996-2016 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##     
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# Tokens other than instructions and registers
-#
-
-% TOKEN_PREFIX, 0, 0, P_*
-a16
-a32
-a64
-asp
-lock
-o16
-o32
-o64
-osp
-rep
-repe
-repne
-repnz
-repz
-times
-wait
-xacquire
-xrelease
-bnd
-nobnd
-
-% TOKEN_SPECIAL, 0, 0, S_*
-abs
-byte
-dword
-far
-long
-near
-nosplit
-oword
-qword
-rel
-short
-strict
-to
-tword
-word
-yword
-zword
-
-% TOKEN_ID, 0, TFLAG_WARN, 0
-ptr
-
-% TOKEN_FLOAT, 0, 0, 0
-__infinity__
-__nan__
-__qnan__
-__snan__
-
-% TOKEN_FLOATIZE, 0, 0, FLOAT_{__float*__}
-__float8__
-__float16__
-__float32__
-__float64__
-__float80m__
-__float80e__
-__float128l__
-__float128h__
-
-% TOKEN_STRFUNC, 0, 0, STRFUNC_{__*__}
-__utf16__
-__utf16le__
-__utf16be__
-__utf32__
-__utf32le__
-__utf32be__
-
-% TOKEN_IFUNC, 0, 0, IFUNC_{__*__}
-__ilog2e__
-__ilog2w__
-__ilog2f__
-__ilog2c__
-
-% TOKEN_*, 0, 0, 0
-seg
-wrt
-
-% TOKEN_DECORATOR, 0, TFLAG_BRC | TFLAG_BRDCAST , BRC_1TO{1to*}
-1to2
-1to4
-1to8
-1to16
-
-% TOKEN_DECORATOR, 0, TFLAG_BRC, BRC_{*-sae}
-rn-sae
-rd-sae
-ru-sae
-rz-sae
-
-% TOKEN_DECORATOR, 0, TFLAG_BRC, BRC_*
-sae
-z
-
-% TOKEN_PREFIX, 0, TFLAG_BRC, P_*
-evex
-vex3
-vex2
--- a/nasmbuild/nasm-2.13rc9/asm/tokens.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-/*
- * This file is generated from insns.dat, regs.dat and token.dat
- * by tokhash.pl; do not edit.
- */
-
-#ifndef NASM_TOKENS_H
-#define NASM_TOKENS_H
-
-#define MAX_KEYWORD 16 /* length of longest keyword */
-
-#endif /* NASM_TOKENS_H */
--- a/nasmbuild/nasm-2.13rc9/asm/tokhash.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6373 +0,0 @@
-/*
- * This file is generated from insns.dat, regs.dat and token.dat
- * by tokhash.pl; do not edit.
- */
-
-#include "compiler.h"
-#include <string.h>
-#include "nasm.h"
-#include "hashtbl.h"
-#include "insns.h"
-#include "stdscan.h"
-
-struct tokendata {
-    const char *string;
-    int16_t tokentype;
-    int8_t aux;
-    int8_t tokflag;
-    int32_t num;
-};
-
-int nasm_token_hash(const char *token, struct tokenval *tv)
-{
-#define UNUSED (65535/3)
-    static const int16_t hash1[2048] = {
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        0,
-        -3307,
-        UNUSED,
-        0,
-        0,
-        -1040,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        0,
-        -3663,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        -117,
-        -823,
-        -1221,
-        0,
-        0,
-        0,
-        4725,
-        UNUSED,
-        0,
-        -325,
-        0,
-        0,
-        UNUSED,
-        198,
-        160,
-        0,
-        1894,
-        0,
-        0,
-        4386,
-        0,
-        -1467,
-        UNUSED,
-        0,
-        0,
-        0,
-        0,
-        0,
-        0,
-        UNUSED,
-        0,
-        0,
-        2153,
-        UNUSED,
-        0,
-        1976,
-        3663,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        -469,
-        0,
-        1299,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        1378,
-        0,
-        0,
-        UNUSED,
-        0,
-        921,
-        4120,
-        0,
-        0,
-        UNUSED,
-        2036,
-        0,
-        2678,
-        1344,
-        1550,
-        2001,
-        UNUSED,
-        586,
-        0,
-        UNUSED,
-        -4243,
-        0,
-        2109,
-        3620,
-        1852,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        846,
-        UNUSED,
-        -276,
-        0,
-        0,
-        0,
-        UNUSED,
-        1566,
-        0,
-        UNUSED,
-        354,
-        1857,
-        -858,
-        706,
-        1989,
-        0,
-        0,
-        463,
-        4458,
-        -13,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        424,
-        446,
-        272,
-        UNUSED,
-        4612,
-        0,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1974,
-        UNUSED,
-        -811,
-        117,
-        UNUSED,
-        -1589,
-        UNUSED,
-        687,
-        0,
-        0,
-        181,
-        -3802,
-        0,
-        2682,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        442,
-        -4183,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1055,
-        1440,
-        113,
-        0,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        0,
-        0,
-        335,
-        -526,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        -272,
-        0,
-        1655,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        406,
-        UNUSED,
-        36,
-        UNUSED,
-        UNUSED,
-        -3916,
-        0,
-        0,
-        0,
-        UNUSED,
-        -2097,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        0,
-        349,
-        0,
-        UNUSED,
-        UNUSED,
-        0,
-        -2069,
-        0,
-        1507,
-        0,
-        0,
-        66,
-        2089,
-        UNUSED,
-        0,
-        -589,
-        UNUSED,
-        -2025,
-        0,
-        0,
-        1765,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        UNUSED,
-        2417,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        639,
-        1966,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        721,
-        835,
-        -1942,
-        0,
-        UNUSED,
-        838,
-        1112,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1384,
-        UNUSED,
-        0,
-        UNUSED,
-        -1368,
-        UNUSED,
-        -631,
-        -2180,
-        UNUSED,
-        UNUSED,
-        873,
-        UNUSED,
-        829,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        UNUSED,
-        2143,
-        UNUSED,
-        811,
-        0,
-        871,
-        1184,
-        UNUSED,
-        1581,
-        2550,
-        UNUSED,
-        0,
-        -1193,
-        601,
-        1256,
-        UNUSED,
-        1549,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        -2171,
-        0,
-        3395,
-        -4612,
-        544,
-        106,
-        0,
-        UNUSED,
-        0,
-        0,
-        -6411,
-        0,
-        -389,
-        1289,
-        0,
-        UNUSED,
-        0,
-        -1190,
-        0,
-        UNUSED,
-        0,
-        463,
-        2091,
-        -547,
-        UNUSED,
-        1150,
-        -3542,
-        0,
-        62,
-        0,
-        1877,
-        4258,
-        0,
-        -1180,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        -403,
-        795,
-        UNUSED,
-        2324,
-        680,
-        -4453,
-        0,
-        68,
-        -4386,
-        1273,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        1694,
-        -944,
-        2757,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        -1970,
-        UNUSED,
-        UNUSED,
-        -542,
-        2007,
-        2569,
-        UNUSED,
-        2028,
-        -3037,
-        2405,
-        1714,
-        732,
-        3215,
-        0,
-        -5725,
-        1786,
-        UNUSED,
-        0,
-        UNUSED,
-        523,
-        0,
-        -5603,
-        0,
-        0,
-        -3283,
-        4121,
-        -809,
-        UNUSED,
-        UNUSED,
-        1089,
-        347,
-        371,
-        307,
-        UNUSED,
-        800,
-        -2806,
-        0,
-        UNUSED,
-        851,
-        UNUSED,
-        UNUSED,
-        -2103,
-        0,
-        UNUSED,
-        0,
-        3699,
-        464,
-        0,
-        0,
-        2955,
-        -375,
-        -182,
-        UNUSED,
-        UNUSED,
-        -5352,
-        UNUSED,
-        1133,
-        UNUSED,
-        -3151,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        3755,
-        -4303,
-        UNUSED,
-        UNUSED,
-        201,
-        599,
-        UNUSED,
-        1292,
-        1215,
-        UNUSED,
-        302,
-        3024,
-        1096,
-        -695,
-        1242,
-        1907,
-        1166,
-        UNUSED,
-        3454,
-        UNUSED,
-        -2293,
-        693,
-        2888,
-        UNUSED,
-        -5347,
-        UNUSED,
-        92,
-        UNUSED,
-        2247,
-        UNUSED,
-        3433,
-        -2106,
-        1637,
-        -217,
-        446,
-        -124,
-        0,
-        UNUSED,
-        UNUSED,
-        -3065,
-        655,
-        474,
-        -121,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1563,
-        21,
-        -6645,
-        1693,
-        0,
-        -919,
-        840,
-        450,
-        UNUSED,
-        2646,
-        3516,
-        -918,
-        603,
-        305,
-        UNUSED,
-        0,
-        1161,
-        -2202,
-        UNUSED,
-        0,
-        0,
-        3397,
-        1768,
-        UNUSED,
-        3977,
-        -2345,
-        0,
-        0,
-        1304,
-        UNUSED,
-        0,
-        1652,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        1491,
-        1447,
-        -1077,
-        UNUSED,
-        3524,
-        0,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        751,
-        385,
-        -392,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        1315,
-        UNUSED,
-        -2891,
-        UNUSED,
-        0,
-        0,
-        1598,
-        0,
-        219,
-        UNUSED,
-        UNUSED,
-        1880,
-        -1787,
-        126,
-        533,
-        0,
-        865,
-        -5180,
-        891,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -1615,
-        -990,
-        -612,
-        0,
-        858,
-        UNUSED,
-        912,
-        UNUSED,
-        UNUSED,
-        2765,
-        1473,
-        UNUSED,
-        UNUSED,
-        1482,
-        -1419,
-        4256,
-        0,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        1374,
-        0,
-        3696,
-        0,
-        1041,
-        UNUSED,
-        2444,
-        UNUSED,
-        -288,
-        UNUSED,
-        UNUSED,
-        17,
-        UNUSED,
-        0,
-        -1405,
-        UNUSED,
-        -3035,
-        UNUSED,
-        -416,
-        UNUSED,
-        641,
-        UNUSED,
-        -2339,
-        0,
-        1028,
-        -545,
-        -13,
-        501,
-        -270,
-        UNUSED,
-        -1537,
-        -246,
-        UNUSED,
-        2902,
-        UNUSED,
-        UNUSED,
-        -130,
-        2054,
-        2026,
-        UNUSED,
-        3154,
-        0,
-        -258,
-        2089,
-        911,
-        1616,
-        118,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1198,
-        UNUSED,
-        -2503,
-        UNUSED,
-        -5704,
-        631,
-        UNUSED,
-        1688,
-        -1785,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1262,
-        4318,
-        UNUSED,
-        660,
-        -495,
-        1805,
-        -932,
-        UNUSED,
-        -1156,
-        UNUSED,
-        UNUSED,
-        0,
-        1261,
-        2720,
-        UNUSED,
-        0,
-        550,
-        -506,
-        UNUSED,
-        0,
-        UNUSED,
-        25,
-        0,
-        190,
-        2032,
-        UNUSED,
-        1572,
-        1988,
-        1084,
-        1146,
-        0,
-        -623,
-        2144,
-        -265,
-        0,
-        156,
-        4129,
-        UNUSED,
-        947,
-        -433,
-        -1292,
-        3618,
-        4236,
-        UNUSED,
-        -6498,
-        -1201,
-        -3295,
-        715,
-        UNUSED,
-        UNUSED,
-        1843,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        -1775,
-        UNUSED,
-        -978,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        1783,
-        0,
-        UNUSED,
-        1267,
-        2976,
-        1145,
-        426,
-        230,
-        -280,
-        0,
-        UNUSED,
-        976,
-        -3682,
-        -1244,
-        -472,
-        0,
-        833,
-        0,
-        4,
-        0,
-        UNUSED,
-        -94,
-        -1178,
-        754,
-        1800,
-        UNUSED,
-        835,
-        3632,
-        UNUSED,
-        1009,
-        UNUSED,
-        1469,
-        0,
-        -4201,
-        2409,
-        0,
-        1183,
-        0,
-        UNUSED,
-        UNUSED,
-        -4071,
-        0,
-        -1845,
-        2220,
-        0,
-        0,
-        0,
-        0,
-        -1041,
-        892,
-        924,
-        2842,
-        UNUSED,
-        1510,
-        UNUSED,
-        0,
-        1570,
-        -3488,
-        -1060,
-        0,
-        UNUSED,
-        UNUSED,
-        267,
-        0,
-        825,
-        UNUSED,
-        832,
-        2975,
-        2321,
-        1680,
-        UNUSED,
-        0,
-        0,
-        421,
-        -4633,
-        -4825,
-        3721,
-        -4292,
-        -148,
-        UNUSED,
-        2670,
-        7766,
-        1898,
-        269,
-        3424,
-        -4425,
-        1198,
-        -125,
-        UNUSED,
-        1079,
-        UNUSED,
-        UNUSED,
-        2013,
-        UNUSED,
-        771,
-        UNUSED,
-        UNUSED,
-        382,
-        -3010,
-        -797,
-        1282,
-        0,
-        2080,
-        0,
-        898,
-        1909,
-        1517,
-        UNUSED,
-        0,
-        1010,
-        UNUSED,
-        2228,
-        91,
-        UNUSED,
-        329,
-        UNUSED,
-        UNUSED,
-        182,
-        0,
-        2896,
-        2856,
-        -822,
-        UNUSED,
-        -648,
-        UNUSED,
-        UNUSED,
-        20,
-        0,
-        UNUSED,
-        203,
-        0,
-        -276,
-        243,
-        342,
-        175,
-        2372,
-        -1199,
-        1779,
-        -1189,
-        UNUSED,
-        2268,
-        -94,
-        456,
-        UNUSED,
-        888,
-        UNUSED,
-        UNUSED,
-        -2356,
-        -1873,
-        UNUSED,
-        1100,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        242,
-        117,
-        1494,
-        UNUSED,
-        -253,
-        1926,
-        UNUSED,
-        0,
-        2106,
-        1550,
-        UNUSED,
-        UNUSED,
-        211,
-        1699,
-        -1044,
-        UNUSED,
-        2594,
-        UNUSED,
-        UNUSED,
-        4184,
-        -1103,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        870,
-        1835,
-        UNUSED,
-        -655,
-        UNUSED,
-        518,
-        1925,
-        UNUSED,
-        UNUSED,
-        2679,
-        399,
-        UNUSED,
-        -1679,
-        1487,
-        632,
-        UNUSED,
-        UNUSED,
-        1071,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        1052,
-        0,
-        UNUSED,
-        UNUSED,
-        0,
-        -835,
-        503,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -5090,
-        UNUSED,
-        -5019,
-        UNUSED,
-        996,
-        UNUSED,
-        1885,
-        958,
-        374,
-        2675,
-        794,
-        2026,
-        UNUSED,
-        UNUSED,
-        5353,
-        1157,
-        UNUSED,
-        2319,
-        147,
-        1429,
-        UNUSED,
-        UNUSED,
-        1611,
-        UNUSED,
-        -444,
-        900,
-        -1248,
-        0,
-        1679,
-        3538,
-        1512,
-        0,
-        1659,
-        0,
-        -823,
-        UNUSED,
-        -975,
-        1543,
-        UNUSED,
-        1260,
-        UNUSED,
-        0,
-        UNUSED,
-        1866,
-        2351,
-        1018,
-        708,
-        1690,
-        391,
-        2650,
-        2224,
-        1157,
-        807,
-        -1065,
-        3921,
-        UNUSED,
-        UNUSED,
-        120,
-        UNUSED,
-        UNUSED,
-        5431,
-        UNUSED,
-        1710,
-        -1326,
-        493,
-        1488,
-        -1688,
-        71,
-        -1421,
-        0,
-        -99,
-        0,
-        UNUSED,
-        -6797,
-        1139,
-        501,
-        6,
-        2095,
-        UNUSED,
-        -891,
-        0,
-        2036,
-        UNUSED,
-        -2819,
-        UNUSED,
-        1486,
-        257,
-        1301,
-        UNUSED,
-        -3106,
-        225,
-        UNUSED,
-        -958,
-        UNUSED,
-        1795,
-        -3344,
-        3605,
-        UNUSED,
-        0,
-        -88,
-        0,
-        UNUSED,
-        -4397,
-        530,
-        0,
-        41,
-        2540,
-        UNUSED,
-        UNUSED,
-        380,
-        4103,
-        -5242,
-        775,
-        UNUSED,
-        UNUSED,
-        1872,
-        1904,
-        676,
-        UNUSED,
-        1863,
-        211,
-        577,
-        UNUSED,
-        -1666,
-        UNUSED,
-        224,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1331,
-        0,
-        2408,
-        -1303,
-        0,
-        UNUSED,
-        380,
-        -1024,
-        UNUSED,
-        414,
-        463,
-        -1884,
-        UNUSED,
-        0,
-        UNUSED,
-        3094,
-        -2319,
-        -452,
-        375,
-        1284,
-        1370,
-        UNUSED,
-        -120,
-        0,
-        -411,
-        -1099,
-        981,
-        3526,
-        572,
-        2344,
-        0,
-        629,
-        UNUSED,
-        861,
-        2445,
-        1291,
-        465,
-        UNUSED,
-        1290,
-        UNUSED,
-        UNUSED,
-        1312,
-        0,
-        1191,
-        128,
-        933,
-        1553,
-        UNUSED,
-        -5827,
-        UNUSED,
-        0,
-        1958,
-        UNUSED,
-        UNUSED,
-        1521,
-        2073,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -3768,
-        UNUSED,
-        2009,
-        655,
-        4997,
-        UNUSED,
-        UNUSED,
-        2164,
-        -1693,
-        1494,
-        UNUSED,
-        0,
-        1149,
-        UNUSED,
-        -82,
-        609,
-        UNUSED,
-        UNUSED,
-        463,
-        UNUSED,
-        1274,
-        0,
-        1458,
-        -1305,
-        UNUSED,
-        -851,
-        0,
-        1887,
-        73,
-        UNUSED,
-        648,
-        -857,
-        -168,
-        UNUSED,
-        UNUSED,
-        512,
-        451,
-        UNUSED,
-        240,
-        UNUSED,
-        UNUSED,
-        2209,
-        UNUSED,
-        2150,
-        UNUSED,
-        1144,
-        UNUSED,
-        1395,
-        -4526,
-        993,
-        3121,
-        UNUSED,
-        921,
-        -611,
-        646,
-        -340,
-        825,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1954,
-        -1241,
-        0,
-        UNUSED,
-        UNUSED,
-        -3282,
-        165,
-        UNUSED,
-        1461,
-        2053,
-        UNUSED,
-        239,
-        383,
-        UNUSED,
-        -1008,
-        0,
-        1154,
-        -11,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        2138,
-        UNUSED,
-        UNUSED,
-        1587,
-        2825,
-        -1969,
-        0,
-        -232,
-        422,
-        2049,
-        UNUSED,
-        -1470,
-        UNUSED,
-        1237,
-        UNUSED,
-        1179,
-        2003,
-        0,
-        308,
-        761,
-        323,
-        UNUSED,
-        198,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        -425,
-        UNUSED,
-        UNUSED,
-        -5610,
-        1555,
-        1571,
-        585,
-        UNUSED,
-        UNUSED,
-        -21,
-        UNUSED,
-        -36,
-        UNUSED,
-        0,
-        UNUSED,
-        -3035,
-        2699,
-        2677,
-        1900,
-        1791,
-        UNUSED,
-        -1150,
-        0,
-        UNUSED,
-        2647,
-        UNUSED,
-        UNUSED,
-        2972,
-        0,
-        UNUSED,
-        1267,
-        676,
-        UNUSED,
-        1570,
-        1818,
-        UNUSED,
-        260,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        910,
-        2249,
-        UNUSED,
-        -41,
-        UNUSED,
-        95,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -4684,
-        6339,
-        0,
-        1632,
-        3269,
-        4550,
-        115,
-        1549,
-        UNUSED,
-        -652,
-        2216,
-        0,
-        1324,
-        2449,
-        1041,
-        0,
-        0,
-        -4819,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        71,
-        -2989,
-        0,
-        1448,
-        UNUSED,
-        UNUSED,
-        -5777,
-        0,
-        1017,
-        2238,
-        UNUSED,
-        UNUSED,
-        -19,
-        -373,
-        -26,
-        -4491,
-        UNUSED,
-        869,
-        1875,
-        1381,
-        UNUSED,
-        1345,
-        1110,
-        UNUSED,
-        3096,
-        1688,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        3386,
-        -697,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        125,
-        997,
-        -34,
-        UNUSED,
-        UNUSED,
-        630,
-        2217,
-        680,
-        1730,
-        112,
-        UNUSED,
-        1063,
-        65,
-        UNUSED,
-        1915,
-        246,
-        -196,
-        0,
-        895,
-        1400,
-        -17,
-        1468,
-        -362,
-        0,
-        678,
-        884,
-        5106,
-        UNUSED,
-        -891,
-        2339,
-        3041,
-        UNUSED,
-        2141,
-        739,
-        UNUSED,
-        -2731,
-        1862,
-        1139,
-        UNUSED,
-        591,
-        0,
-        UNUSED,
-        620,
-        792,
-        859,
-        UNUSED,
-        0,
-        0,
-        1245,
-        UNUSED,
-        2907,
-        UNUSED,
-        3002,
-        UNUSED,
-        1347,
-        946,
-        UNUSED,
-        UNUSED,
-        2352,
-        2421,
-        354,
-        975,
-        4563,
-        763,
-        UNUSED,
-        -842,
-        -231,
-        595,
-        -1985,
-        0,
-        UNUSED,
-        582,
-        UNUSED,
-        -6485,
-        UNUSED,
-        -219,
-        1798,
-        741,
-        UNUSED,
-        -1297,
-        1008,
-        -282,
-        -5415,
-        UNUSED,
-        342,
-        -1968,
-        3409,
-        -565,
-        UNUSED,
-        1005,
-        3391,
-        1393,
-        2199,
-        1901,
-        1026,
-        UNUSED,
-        1558,
-        675,
-        2527,
-        UNUSED,
-        314,
-        1146,
-        655,
-        UNUSED,
-        1058,
-        1121,
-        UNUSED,
-        -1087,
-        UNUSED,
-        UNUSED,
-        894,
-        -681,
-        1603,
-        471,
-        UNUSED,
-        UNUSED,
-        870,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -1023,
-        2882,
-        148,
-        367,
-        2067,
-        UNUSED,
-        2275,
-        14,
-        UNUSED,
-        UNUSED,
-        441,
-        155,
-        0,
-        UNUSED,
-        -1487,
-        UNUSED,
-        0,
-        UNUSED,
-        -5069,
-        674,
-        -320,
-        UNUSED,
-        -727,
-        UNUSED,
-        1384,
-        UNUSED,
-        -430,
-        1163,
-        UNUSED,
-        1766,
-        1725,
-        1966,
-        UNUSED,
-        UNUSED,
-        -1925,
-        UNUSED,
-        UNUSED,
-        1386,
-        -2145,
-        -924,
-        1177,
-        717,
-        221,
-        UNUSED,
-        UNUSED,
-        -387,
-        -5158,
-        1586,
-        259,
-        0,
-        -88,
-        -517,
-        1394,
-        -3,
-        -1801,
-        1920,
-        -658,
-        106,
-        UNUSED,
-        UNUSED,
-        1048,
-        0,
-        -1653,
-        UNUSED,
-        1476,
-        -951,
-        833,
-        248,
-        -371,
-        940,
-        2757,
-        2409,
-        UNUSED,
-        UNUSED,
-        781,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -3582,
-        -891,
-        4094,
-        UNUSED,
-        663,
-        1647,
-        UNUSED,
-        UNUSED,
-        1789,
-        1031,
-        UNUSED,
-        UNUSED,
-        1902,
-        UNUSED,
-        -1696,
-        -2731,
-        4754,
-        UNUSED,
-        947,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        621,
-        5295,
-        UNUSED,
-        524,
-        UNUSED,
-        -1568,
-        362,
-        UNUSED,
-        0,
-        -210,
-        1994,
-        -1074,
-        660,
-        706,
-        785,
-        -1258,
-        1689,
-        2011,
-        -2149,
-        1592,
-        UNUSED,
-        UNUSED,
-        -4171,
-        -24,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        582,
-        15,
-        0,
-        1651,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        377,
-        UNUSED,
-        1329,
-        2769,
-        -526,
-        1347,
-        704,
-        -332,
-        1238,
-        UNUSED,
-        1293,
-        107,
-        264,
-        UNUSED,
-        UNUSED,
-        1708,
-        UNUSED,
-        -547,
-        UNUSED,
-        -829,
-        662,
-        838,
-        UNUSED,
-        UNUSED,
-        2596,
-        3975,
-        103,
-        365,
-        1028,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -610,
-        1738,
-        UNUSED,
-        -3315,
-        625,
-        -1474,
-        UNUSED,
-        -283,
-        -1941,
-        UNUSED,
-        UNUSED,
-        0,
-        0,
-        550,
-        1639,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -1578,
-        2442,
-        206,
-        0,
-        UNUSED,
-        -166,
-        UNUSED,
-        UNUSED,
-        1432,
-        UNUSED,
-        -1,
-        UNUSED,
-        -177,
-        -772,
-        799,
-        -4429,
-        4175,
-        1767,
-        1197,
-        UNUSED,
-        1344,
-        695,
-        UNUSED,
-        UNUSED,
-        3271,
-        UNUSED,
-        UNUSED,
-        -1042,
-        UNUSED,
-        1641,
-        185,
-        659,
-        1889,
-        UNUSED,
-        -1812,
-        -3952,
-        UNUSED,
-        1919,
-        UNUSED,
-        1992,
-        -3578,
-        UNUSED,
-        -465,
-        -120,
-        UNUSED,
-        1722,
-        -1333,
-        UNUSED,
-        UNUSED,
-        -139,
-        UNUSED,
-        2000,
-        2084,
-        -1363,
-        UNUSED,
-        UNUSED,
-        1687,
-        1584,
-        231,
-        105,
-        565,
-        UNUSED,
-        1413,
-        UNUSED,
-        2182,
-        804,
-        118,
-        -1655,
-        1104,
-        UNUSED,
-        448,
-        1959,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -5,
-        1650,
-        2007,
-        608,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -1678,
-        UNUSED,
-        4676,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -4968,
-        -5865,
-        437,
-        UNUSED,
-        1936,
-        1586,
-        UNUSED,
-        1797,
-        -1791,
-        96,
-        1016,
-        -4861,
-        UNUSED,
-        1511,
-        231,
-        -1567,
-        UNUSED,
-        UNUSED,
-        21,
-        2192,
-        3600,
-        -111,
-        UNUSED,
-        2182,
-        181,
-        1634,
-        1271,
-        0,
-        643,
-        423,
-        1861,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        600,
-        1946,
-        UNUSED,
-        1711,
-        UNUSED,
-        1561,
-        UNUSED,
-        -275,
-        UNUSED,
-        -4991,
-        UNUSED,
-        195,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        3377,
-        2130,
-        171,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        162,
-        377,
-        22,
-        803,
-        1607,
-        411,
-        UNUSED,
-        3388,
-        -5514,
-        1548,
-        -3181,
-        -115,
-        51,
-        959,
-        UNUSED,
-        497,
-        0,
-        1307,
-        688,
-        1503,
-        987,
-        414,
-        UNUSED,
-        -1469,
-        UNUSED,
-        148,
-        0,
-        UNUSED,
-        290,
-        1339,
-        1733,
-        1437,
-        UNUSED,
-        UNUSED,
-        1648,
-        972,
-        355,
-        4280,
-        682,
-        UNUSED,
-        1879,
-        UNUSED,
-        250,
-        348,
-        UNUSED,
-        -710,
-        1099,
-        UNUSED,
-        UNUSED,
-        2212,
-        916,
-        -933,
-        -921,
-        2168,
-        1096,
-        1588,
-        2175,
-        46,
-        UNUSED,
-        UNUSED,
-        31,
-        366,
-        1356,
-        994,
-        -267,
-        1138,
-        -5148,
-        2069,
-        -3555,
-        UNUSED,
-        UNUSED,
-        546,
-        -5732,
-        2074,
-        4098,
-        UNUSED,
-        UNUSED,
-        -1088,
-        1438,
-        UNUSED,
-        -433,
-        UNUSED,
-        UNUSED,
-        -568,
-        633,
-        1786,
-        -2402,
-        2727,
-        -4246,
-        459,
-        -787,
-        -140,
-        UNUSED,
-        962,
-        1128,
-        UNUSED,
-        UNUSED,
-        -779,
-        0,
-        1662,
-        26,
-        3605,
-        2300,
-        UNUSED,
-        5241,
-        381,
-        UNUSED,
-        1258,
-        UNUSED,
-        -448,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1894,
-        UNUSED,
-        UNUSED,
-        1119,
-        -387,
-        -2776,
-        834,
-        507,
-        1701,
-        1350,
-        -296,
-        UNUSED,
-        874,
-        -1086,
-        UNUSED,
-        868,
-        1546,
-        -287,
-        UNUSED,
-        1036,
-        UNUSED,
-        UNUSED,
-        950,
-        1970,
-        -297,
-        1370,
-        UNUSED,
-        1101,
-        -1988,
-        375,
-        -782,
-        3045,
-        352,
-        1115,
-        357,
-        1086,
-        UNUSED,
-        -4768,
-        -190,
-        UNUSED,
-        3648,
-        2413,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -2987,
-        -1216,
-        UNUSED,
-        1991,
-        UNUSED,
-        1016,
-        217,
-        -603,
-        -18,
-        3736,
-        UNUSED,
-        -5842,
-        UNUSED,
-        UNUSED,
-        1409,
-        UNUSED,
-        1248,
-        349,
-        UNUSED,
-        UNUSED,
-        1493,
-        UNUSED,
-        951,
-        1315,
-        UNUSED,
-        2488,
-        UNUSED,
-        UNUSED,
-        2979,
-        -2179,
-        -6354,
-        -3562,
-        2030,
-        UNUSED,
-        -11,
-        UNUSED,
-        1602,
-        5427,
-        1428,
-        765,
-        347,
-        2855,
-        1057,
-        1140,
-        0,
-        UNUSED,
-        1089,
-        2287,
-        -1653,
-        1886,
-        -706,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1773,
-        2001,
-        UNUSED,
-        UNUSED,
-        532,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -677,
-        UNUSED,
-        1100,
-        UNUSED,
-        261,
-        UNUSED,
-        UNUSED,
-        1748,
-        UNUSED,
-        -307,
-        533,
-        535,
-        2828,
-        992,
-        UNUSED,
-        UNUSED,
-        1682,
-        UNUSED,
-        UNUSED,
-        1888,
-        UNUSED,
-        -2380,
-        1501,
-        572,
-        UNUSED,
-        -3454,
-        161,
-        1285,
-        1753,
-    };
-    static const int16_t hash2[2048] = {
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        UNUSED,
-        0,
-        1468,
-        -976,
-        0,
-        UNUSED,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        -2391,
-        0,
-        0,
-        UNUSED,
-        0,
-        4289,
-        UNUSED,
-        UNUSED,
-        0,
-        -266,
-        0,
-        UNUSED,
-        UNUSED,
-        3993,
-        UNUSED,
-        -1932,
-        UNUSED,
-        0,
-        0,
-        4911,
-        UNUSED,
-        UNUSED,
-        6634,
-        0,
-        0,
-        6192,
-        0,
-        0,
-        0,
-        UNUSED,
-        4596,
-        -20,
-        1966,
-        0,
-        917,
-        0,
-        UNUSED,
-        0,
-        0,
-        0,
-        2532,
-        1290,
-        UNUSED,
-        UNUSED,
-        1111,
-        -3689,
-        0,
-        0,
-        0,
-        0,
-        UNUSED,
-        987,
-        UNUSED,
-        0,
-        42,
-        0,
-        6688,
-        498,
-        0,
-        6744,
-        2364,
-        UNUSED,
-        UNUSED,
-        500,
-        0,
-        0,
-        UNUSED,
-        1720,
-        2157,
-        651,
-        2490,
-        UNUSED,
-        -66,
-        -249,
-        0,
-        1544,
-        0,
-        0,
-        UNUSED,
-        551,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1505,
-        0,
-        -179,
-        -989,
-        0,
-        1341,
-        5372,
-        -117,
-        0,
-        0,
-        0,
-        6424,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        -1276,
-        3600,
-        UNUSED,
-        399,
-        UNUSED,
-        786,
-        UNUSED,
-        0,
-        0,
-        485,
-        5877,
-        UNUSED,
-        3694,
-        0,
-        UNUSED,
-        UNUSED,
-        -3396,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        0,
-        867,
-        UNUSED,
-        0,
-        UNUSED,
-        -259,
-        -4177,
-        0,
-        UNUSED,
-        0,
-        UNUSED,
-        -2137,
-        5918,
-        -2013,
-        UNUSED,
-        2317,
-        0,
-        0,
-        0,
-        UNUSED,
-        427,
-        0,
-        1537,
-        0,
-        0,
-        1271,
-        0,
-        UNUSED,
-        UNUSED,
-        24,
-        UNUSED,
-        188,
-        UNUSED,
-        UNUSED,
-        2091,
-        UNUSED,
-        -451,
-        0,
-        1314,
-        0,
-        0,
-        UNUSED,
-        UNUSED,
-        2091,
-        0,
-        1125,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        0,
-        0,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        106,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        0,
-        0,
-        352,
-        0,
-        UNUSED,
-        0,
-        UNUSED,
-        6589,
-        -1341,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        -536,
-        4,
-        3025,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        6570,
-        UNUSED,
-        0,
-        UNUSED,
-        732,
-        0,
-        -1475,
-        0,
-        -241,
-        0,
-        207,
-        0,
-        -228,
-        -502,
-        74,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        -617,
-        UNUSED,
-        0,
-        -1741,
-        963,
-        6080,
-        -1240,
-        UNUSED,
-        4558,
-        1882,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        4834,
-        -439,
-        0,
-        0,
-        0,
-        219,
-        UNUSED,
-        0,
-        2459,
-        UNUSED,
-        UNUSED,
-        0,
-        5260,
-        1195,
-        0,
-        0,
-        1871,
-        UNUSED,
-        -1703,
-        0,
-        -340,
-        UNUSED,
-        -679,
-        2548,
-        87,
-        UNUSED,
-        UNUSED,
-        -922,
-        UNUSED,
-        6087,
-        0,
-        UNUSED,
-        0,
-        221,
-        1978,
-        99,
-        -4392,
-        UNUSED,
-        1810,
-        0,
-        762,
-        UNUSED,
-        678,
-        1025,
-        UNUSED,
-        953,
-        164,
-        -1254,
-        UNUSED,
-        904,
-        0,
-        0,
-        UNUSED,
-        490,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -690,
-        UNUSED,
-        350,
-        0,
-        2213,
-        -1771,
-        401,
-        0,
-        0,
-        UNUSED,
-        2877,
-        305,
-        UNUSED,
-        0,
-        6757,
-        1906,
-        3452,
-        UNUSED,
-        1397,
-        UNUSED,
-        881,
-        1458,
-        UNUSED,
-        UNUSED,
-        0,
-        -3329,
-        0,
-        -200,
-        UNUSED,
-        0,
-        822,
-        1118,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        1313,
-        403,
-        0,
-        0,
-        -4211,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        0,
-        0,
-        142,
-        0,
-        UNUSED,
-        3029,
-        -1099,
-        UNUSED,
-        UNUSED,
-        0,
-        1986,
-        6043,
-        5711,
-        UNUSED,
-        0,
-        UNUSED,
-        -169,
-        0,
-        UNUSED,
-        7,
-        0,
-        UNUSED,
-        -1651,
-        UNUSED,
-        1678,
-        0,
-        UNUSED,
-        0,
-        758,
-        UNUSED,
-        0,
-        UNUSED,
-        -1586,
-        UNUSED,
-        1127,
-        1530,
-        UNUSED,
-        1007,
-        1490,
-        0,
-        2151,
-        UNUSED,
-        0,
-        596,
-        UNUSED,
-        2792,
-        451,
-        UNUSED,
-        801,
-        0,
-        1647,
-        1041,
-        -880,
-        0,
-        UNUSED,
-        -770,
-        UNUSED,
-        1559,
-        UNUSED,
-        -2423,
-        1393,
-        7361,
-        0,
-        2584,
-        -2666,
-        UNUSED,
-        803,
-        UNUSED,
-        805,
-        0,
-        1836,
-        UNUSED,
-        UNUSED,
-        0,
-        1567,
-        0,
-        1514,
-        1767,
-        1321,
-        -748,
-        311,
-        781,
-        -364,
-        -2509,
-        25,
-        UNUSED,
-        4461,
-        1883,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        2192,
-        262,
-        0,
-        -1494,
-        UNUSED,
-        1068,
-        733,
-        UNUSED,
-        0,
-        7517,
-        0,
-        482,
-        UNUSED,
-        0,
-        8698,
-        UNUSED,
-        -767,
-        2038,
-        0,
-        3311,
-        UNUSED,
-        2160,
-        1068,
-        0,
-        UNUSED,
-        5086,
-        UNUSED,
-        3765,
-        0,
-        UNUSED,
-        1263,
-        UNUSED,
-        -1414,
-        518,
-        2012,
-        0,
-        -129,
-        UNUSED,
-        UNUSED,
-        0,
-        940,
-        1988,
-        UNUSED,
-        UNUSED,
-        -167,
-        -1475,
-        0,
-        UNUSED,
-        UNUSED,
-        84,
-        3093,
-        UNUSED,
-        UNUSED,
-        1491,
-        1988,
-        1978,
-        UNUSED,
-        -4121,
-        396,
-        0,
-        -5798,
-        UNUSED,
-        3840,
-        UNUSED,
-        3774,
-        1787,
-        298,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        1139,
-        -1923,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        3515,
-        -1384,
-        516,
-        UNUSED,
-        UNUSED,
-        2734,
-        6579,
-        1705,
-        UNUSED,
-        0,
-        1191,
-        -2220,
-        1538,
-        640,
-        UNUSED,
-        UNUSED,
-        430,
-        0,
-        -7711,
-        887,
-        5388,
-        1698,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -498,
-        3677,
-        UNUSED,
-        232,
-        UNUSED,
-        0,
-        -2899,
-        0,
-        UNUSED,
-        -645,
-        UNUSED,
-        6018,
-        0,
-        UNUSED,
-        UNUSED,
-        -435,
-        192,
-        -715,
-        205,
-        UNUSED,
-        UNUSED,
-        -1170,
-        -670,
-        UNUSED,
-        1500,
-        0,
-        1209,
-        0,
-        -72,
-        0,
-        -687,
-        UNUSED,
-        -311,
-        -91,
-        UNUSED,
-        -1204,
-        1040,
-        UNUSED,
-        0,
-        0,
-        0,
-        UNUSED,
-        479,
-        UNUSED,
-        0,
-        1764,
-        UNUSED,
-        0,
-        0,
-        1642,
-        UNUSED,
-        0,
-        UNUSED,
-        2207,
-        -1323,
-        861,
-        UNUSED,
-        472,
-        UNUSED,
-        -3467,
-        UNUSED,
-        0,
-        -1644,
-        -13,
-        UNUSED,
-        0,
-        -977,
-        UNUSED,
-        UNUSED,
-        0,
-        285,
-        UNUSED,
-        -351,
-        -845,
-        UNUSED,
-        2688,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        2452,
-        1221,
-        884,
-        1855,
-        0,
-        UNUSED,
-        911,
-        UNUSED,
-        UNUSED,
-        678,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -1334,
-        1490,
-        UNUSED,
-        2022,
-        UNUSED,
-        UNUSED,
-        6449,
-        347,
-        UNUSED,
-        1418,
-        UNUSED,
-        0,
-        1261,
-        810,
-        1735,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -2507,
-        -800,
-        3135,
-        0,
-        UNUSED,
-        0,
-        -6,
-        UNUSED,
-        -2326,
-        UNUSED,
-        1241,
-        1320,
-        105,
-        790,
-        2081,
-        556,
-        -647,
-        675,
-        1709,
-        1320,
-        5037,
-        UNUSED,
-        1389,
-        1814,
-        3219,
-        -949,
-        2008,
-        566,
-        668,
-        UNUSED,
-        UNUSED,
-        1137,
-        UNUSED,
-        3276,
-        3182,
-        1806,
-        0,
-        UNUSED,
-        -3952,
-        0,
-        495,
-        1223,
-        124,
-        UNUSED,
-        0,
-        5162,
-        480,
-        1586,
-        5205,
-        UNUSED,
-        1715,
-        UNUSED,
-        779,
-        UNUSED,
-        -1223,
-        UNUSED,
-        0,
-        -1034,
-        -1455,
-        2083,
-        UNUSED,
-        -768,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        -456,
-        -427,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -1389,
-        0,
-        UNUSED,
-        -3927,
-        -260,
-        -3387,
-        -103,
-        UNUSED,
-        0,
-        0,
-        UNUSED,
-        -649,
-        UNUSED,
-        132,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1838,
-        -638,
-        5,
-        UNUSED,
-        372,
-        0,
-        UNUSED,
-        0,
-        868,
-        UNUSED,
-        2656,
-        210,
-        UNUSED,
-        4693,
-        UNUSED,
-        UNUSED,
-        2246,
-        0,
-        -949,
-        440,
-        0,
-        873,
-        -672,
-        UNUSED,
-        2373,
-        UNUSED,
-        -1143,
-        UNUSED,
-        0,
-        -2772,
-        -177,
-        UNUSED,
-        -384,
-        2079,
-        UNUSED,
-        0,
-        871,
-        UNUSED,
-        UNUSED,
-        -2795,
-        1562,
-        UNUSED,
-        -756,
-        -3210,
-        1877,
-        1498,
-        UNUSED,
-        -1294,
-        0,
-        -61,
-        0,
-        UNUSED,
-        UNUSED,
-        -1448,
-        UNUSED,
-        UNUSED,
-        1936,
-        -1037,
-        2105,
-        195,
-        -2824,
-        6082,
-        UNUSED,
-        UNUSED,
-        -1794,
-        1637,
-        3295,
-        UNUSED,
-        -1967,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -798,
-        0,
-        1496,
-        0,
-        1047,
-        1842,
-        UNUSED,
-        3834,
-        UNUSED,
-        -3769,
-        UNUSED,
-        UNUSED,
-        85,
-        -431,
-        0,
-        0,
-        2147,
-        1607,
-        1990,
-        -563,
-        5452,
-        519,
-        0,
-        -1019,
-        -1805,
-        UNUSED,
-        UNUSED,
-        4636,
-        1348,
-        0,
-        1253,
-        UNUSED,
-        -2008,
-        0,
-        UNUSED,
-        UNUSED,
-        -1519,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1472,
-        UNUSED,
-        798,
-        UNUSED,
-        -865,
-        914,
-        4339,
-        1792,
-        79,
-        2206,
-        UNUSED,
-        306,
-        1911,
-        0,
-        857,
-        0,
-        6962,
-        UNUSED,
-        1506,
-        -1759,
-        1379,
-        1868,
-        UNUSED,
-        2046,
-        378,
-        -4990,
-        2118,
-        1498,
-        UNUSED,
-        0,
-        UNUSED,
-        -2094,
-        0,
-        -1020,
-        418,
-        6362,
-        1316,
-        UNUSED,
-        UNUSED,
-        217,
-        UNUSED,
-        UNUSED,
-        2092,
-        800,
-        1087,
-        58,
-        UNUSED,
-        UNUSED,
-        0,
-        1149,
-        UNUSED,
-        -86,
-        846,
-        65,
-        UNUSED,
-        862,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        194,
-        1462,
-        1656,
-        0,
-        847,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        6504,
-        UNUSED,
-        325,
-        1941,
-        -368,
-        -2159,
-        UNUSED,
-        UNUSED,
-        753,
-        UNUSED,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        839,
-        866,
-        1504,
-        UNUSED,
-        UNUSED,
-        0,
-        404,
-        -1819,
-        1084,
-        2116,
-        UNUSED,
-        UNUSED,
-        -1726,
-        8071,
-        UNUSED,
-        880,
-        UNUSED,
-        -61,
-        -1797,
-        0,
-        -104,
-        UNUSED,
-        0,
-        -649,
-        0,
-        1337,
-        1626,
-        UNUSED,
-        UNUSED,
-        412,
-        UNUSED,
-        3629,
-        -358,
-        1141,
-        -1064,
-        146,
-        982,
-        348,
-        1757,
-        1337,
-        216,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        692,
-        700,
-        -2433,
-        0,
-        1251,
-        -2219,
-        2465,
-        0,
-        385,
-        396,
-        1465,
-        0,
-        1296,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        2434,
-        -371,
-        -844,
-        5148,
-        UNUSED,
-        389,
-        UNUSED,
-        1170,
-        UNUSED,
-        -202,
-        528,
-        927,
-        UNUSED,
-        1729,
-        0,
-        UNUSED,
-        2325,
-        253,
-        UNUSED,
-        -1765,
-        UNUSED,
-        430,
-        UNUSED,
-        1747,
-        883,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        547,
-        UNUSED,
-        -308,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        275,
-        UNUSED,
-        -740,
-        -83,
-        897,
-        UNUSED,
-        6061,
-        -268,
-        UNUSED,
-        UNUSED,
-        0,
-        1057,
-        0,
-        UNUSED,
-        -3499,
-        -709,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1863,
-        UNUSED,
-        330,
-        5892,
-        UNUSED,
-        UNUSED,
-        2487,
-        UNUSED,
-        1733,
-        UNUSED,
-        UNUSED,
-        0,
-        418,
-        UNUSED,
-        1856,
-        2387,
-        -318,
-        1725,
-        -314,
-        0,
-        1391,
-        261,
-        0,
-        UNUSED,
-        344,
-        1982,
-        3556,
-        2126,
-        UNUSED,
-        -2282,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1453,
-        0,
-        -932,
-        -172,
-        UNUSED,
-        0,
-        -3441,
-        -2931,
-        -1953,
-        UNUSED,
-        4787,
-        1997,
-        0,
-        -1035,
-        UNUSED,
-        -579,
-        UNUSED,
-        850,
-        UNUSED,
-        0,
-        1463,
-        UNUSED,
-        -718,
-        952,
-        1539,
-        -738,
-        1177,
-        UNUSED,
-        -747,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        137,
-        -2325,
-        -252,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        28,
-        209,
-        260,
-        0,
-        2551,
-        UNUSED,
-        2129,
-        UNUSED,
-        1763,
-        601,
-        UNUSED,
-        50,
-        UNUSED,
-        -1526,
-        UNUSED,
-        UNUSED,
-        853,
-        876,
-        UNUSED,
-        4738,
-        UNUSED,
-        44,
-        1895,
-        UNUSED,
-        0,
-        4069,
-        828,
-        -974,
-        1011,
-        UNUSED,
-        535,
-        UNUSED,
-        99,
-        1162,
-        0,
-        UNUSED,
-        0,
-        -4221,
-        702,
-        UNUSED,
-        UNUSED,
-        -1548,
-        1798,
-        UNUSED,
-        -1076,
-        UNUSED,
-        -4558,
-        UNUSED,
-        479,
-        639,
-        805,
-        UNUSED,
-        5864,
-        0,
-        388,
-        116,
-        -1057,
-        -2740,
-        -5088,
-        UNUSED,
-        1673,
-        2101,
-        1722,
-        UNUSED,
-        1741,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -1444,
-        UNUSED,
-        1693,
-        1893,
-        UNUSED,
-        -988,
-        1162,
-        UNUSED,
-        785,
-        UNUSED,
-        1934,
-        -70,
-        UNUSED,
-        -1939,
-        -1837,
-        -1414,
-        -696,
-        UNUSED,
-        0,
-        328,
-        227,
-        1711,
-        0,
-        1663,
-        2243,
-        UNUSED,
-        UNUSED,
-        -371,
-        0,
-        UNUSED,
-        -2027,
-        UNUSED,
-        977,
-        -172,
-        1343,
-        UNUSED,
-        -72,
-        -1349,
-        UNUSED,
-        1488,
-        3073,
-        0,
-        299,
-        500,
-        -197,
-        577,
-        -283,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1838,
-        0,
-        UNUSED,
-        1432,
-        6241,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1594,
-        637,
-        0,
-        482,
-        UNUSED,
-        -1,
-        828,
-        UNUSED,
-        -1885,
-        598,
-        1151,
-        UNUSED,
-        0,
-        3282,
-        UNUSED,
-        899,
-        UNUSED,
-        4654,
-        UNUSED,
-        -303,
-        -2077,
-        2139,
-        UNUSED,
-        UNUSED,
-        193,
-        1292,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        11,
-        56,
-        -7669,
-        2227,
-        1160,
-        1492,
-        -1238,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -495,
-        UNUSED,
-        UNUSED,
-        -1611,
-        755,
-        2104,
-        520,
-        1604,
-        878,
-        -1591,
-        UNUSED,
-        1561,
-        155,
-        UNUSED,
-        -1332,
-        1994,
-        UNUSED,
-        559,
-        4650,
-        0,
-        5107,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        386,
-        UNUSED,
-        UNUSED,
-        5141,
-        UNUSED,
-        UNUSED,
-        5385,
-        750,
-        1560,
-        -34,
-        UNUSED,
-        -21,
-        0,
-        UNUSED,
-        UNUSED,
-        1993,
-        UNUSED,
-        -700,
-        1832,
-        -2876,
-        396,
-        1581,
-        1891,
-        927,
-        269,
-        UNUSED,
-        2172,
-        7837,
-        UNUSED,
-        -264,
-        677,
-        UNUSED,
-        359,
-        548,
-        -5398,
-        691,
-        1737,
-        1780,
-        1727,
-        UNUSED,
-        UNUSED,
-        -374,
-        5030,
-        -2200,
-        1887,
-        UNUSED,
-        UNUSED,
-        2157,
-        815,
-        -381,
-        -298,
-        4600,
-        827,
-        963,
-        UNUSED,
-        1174,
-        -1251,
-        UNUSED,
-        387,
-        UNUSED,
-        UNUSED,
-        2190,
-        1686,
-        2170,
-        1951,
-        UNUSED,
-        0,
-        UNUSED,
-        0,
-        187,
-        321,
-        303,
-        1515,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1491,
-        365,
-        UNUSED,
-        1894,
-        1633,
-        UNUSED,
-        2011,
-        791,
-        2718,
-        3016,
-        2151,
-        1058,
-        346,
-        199,
-        -3084,
-        2101,
-        UNUSED,
-        UNUSED,
-        258,
-        0,
-        -238,
-        1624,
-        1817,
-        1769,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1164,
-        UNUSED,
-        -2124,
-        1355,
-        551,
-        -3460,
-        828,
-        1530,
-        980,
-        UNUSED,
-        7081,
-        1568,
-        1204,
-        1122,
-        1327,
-        -671,
-        -990,
-        UNUSED,
-        UNUSED,
-        -597,
-        440,
-        1326,
-        110,
-        -985,
-        0,
-        UNUSED,
-        1345,
-        UNUSED,
-        -653,
-        UNUSED,
-        -2332,
-        381,
-        768,
-        1880,
-        UNUSED,
-        1536,
-        0,
-        UNUSED,
-        1916,
-        8655,
-        UNUSED,
-        474,
-        265,
-        -2311,
-        574,
-        UNUSED,
-        UNUSED,
-        349,
-        415,
-        900,
-        2149,
-        -1786,
-        1553,
-        UNUSED,
-        373,
-        UNUSED,
-        0,
-        UNUSED,
-        UNUSED,
-        -769,
-        UNUSED,
-        0,
-        -218,
-        533,
-        1969,
-        UNUSED,
-        UNUSED,
-        582,
-        -619,
-        7018,
-        2506,
-        956,
-        986,
-        87,
-        UNUSED,
-        2105,
-        5301,
-        559,
-        782,
-        UNUSED,
-        UNUSED,
-        -543,
-        UNUSED,
-        943,
-        1497,
-        UNUSED,
-        607,
-        -3026,
-        UNUSED,
-        68,
-        160,
-        1762,
-        UNUSED,
-        UNUSED,
-        48,
-        -1185,
-        -1039,
-        -712,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -658,
-        -1661,
-        47,
-        -1389,
-        UNUSED,
-        UNUSED,
-        1565,
-        UNUSED,
-        4810,
-        UNUSED,
-        1447,
-        -1136,
-        UNUSED,
-        1520,
-        642,
-        -992,
-        832,
-        314,
-        408,
-        5110,
-        1833,
-        UNUSED,
-        2009,
-        -746,
-        86,
-        -561,
-        1249,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        -1053,
-        2145,
-        6841,
-        1583,
-        UNUSED,
-        783,
-        1808,
-        0,
-        UNUSED,
-        695,
-        2963,
-        2100,
-        2163,
-        4026,
-        206,
-        1682,
-        UNUSED,
-        UNUSED,
-        545,
-        UNUSED,
-        569,
-        853,
-        UNUSED,
-        604,
-        UNUSED,
-        UNUSED,
-        2177,
-        -476,
-        -3032,
-        981,
-        123,
-        UNUSED,
-        447,
-        2075,
-        120,
-        1935,
-        -1204,
-        -88,
-        UNUSED,
-        549,
-        UNUSED,
-        -1323,
-        1084,
-        696,
-        2710,
-        -28,
-        1523,
-        UNUSED,
-        UNUSED,
-        921,
-        816,
-        -10,
-        164,
-        -3080,
-        873,
-        1009,
-        174,
-        UNUSED,
-        1770,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        5561,
-        250,
-        -1526,
-        836,
-        -1323,
-        -363,
-        -1607,
-        -130,
-        UNUSED,
-        1231,
-        UNUSED,
-        43,
-        UNUSED,
-        -1901,
-        UNUSED,
-        -1188,
-        -433,
-        UNUSED,
-        UNUSED,
-        1577,
-        UNUSED,
-        -266,
-        1261,
-        -784,
-        423,
-        -78,
-        -4462,
-        780,
-        UNUSED,
-        -669,
-        5393,
-        UNUSED,
-        UNUSED,
-        2079,
-        145,
-        -5157,
-        206,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        4063,
-        449,
-        0,
-        -3015,
-        UNUSED,
-        UNUSED,
-        1803,
-        1374,
-        5742,
-        -2092,
-        -722,
-        0,
-        -193,
-        102,
-        -282,
-        0,
-        UNUSED,
-        -824,
-        624,
-        -4103,
-        -109,
-        2074,
-        2985,
-        3674,
-        2605,
-        553,
-        -1121,
-        UNUSED,
-        1798,
-        1816,
-        93,
-        UNUSED,
-        -284,
-        UNUSED,
-        488,
-        UNUSED,
-        523,
-        1387,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1539,
-        39,
-        1278,
-        1395,
-        0,
-        UNUSED,
-        762,
-        692,
-        -307,
-        2064,
-        -1526,
-        395,
-        UNUSED,
-        1325,
-        1727,
-        UNUSED,
-        UNUSED,
-        745,
-        247,
-        1344,
-        6582,
-        UNUSED,
-        1363,
-        UNUSED,
-        -428,
-        2101,
-        UNUSED,
-        UNUSED,
-        -1016,
-        5169,
-        1086,
-        217,
-        UNUSED,
-        -1046,
-        UNUSED,
-        0,
-        UNUSED,
-        1453,
-        824,
-        6678,
-        -459,
-        2070,
-        UNUSED,
-        -1906,
-        1706,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1285,
-        52,
-        UNUSED,
-        751,
-        477,
-        463,
-        -3263,
-        UNUSED,
-        -1984,
-        UNUSED,
-        UNUSED,
-        5932,
-        3061,
-        UNUSED,
-        UNUSED,
-        -354,
-        49,
-        1967,
-        733,
-        319,
-        -199,
-        UNUSED,
-        242,
-        1295,
-        UNUSED,
-        -2090,
-        UNUSED,
-        UNUSED,
-        655,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1849,
-        2026,
-        317,
-        UNUSED,
-        UNUSED,
-        -278,
-        152,
-        UNUSED,
-        -142,
-        1642,
-        UNUSED,
-        UNUSED,
-        166,
-        434,
-        254,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1768,
-        -1343,
-        UNUSED,
-        755,
-        UNUSED,
-        1233,
-        3820,
-        1545,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        2116,
-        1781,
-        616,
-        3822,
-        -3041,
-        867,
-        UNUSED,
-        1999,
-        1037,
-        UNUSED,
-        2062,
-        4885,
-        1167,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1358,
-        7897,
-        1451,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        616,
-        1924,
-        707,
-        -671,
-        UNUSED,
-        889,
-        1161,
-        1920,
-        469,
-        -2355,
-        932,
-        0,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        1445,
-        1502,
-        1126,
-        -386,
-        1554,
-        UNUSED,
-        520,
-        706,
-        -1964,
-        UNUSED,
-        UNUSED,
-        1681,
-        2049,
-        UNUSED,
-        1904,
-        -1615,
-        2180,
-        1657,
-        UNUSED,
-        356,
-        2006,
-        698,
-        3054,
-        6032,
-        10,
-        -1054,
-        UNUSED,
-        -1193,
-        1024,
-        -103,
-        UNUSED,
-        1425,
-        544,
-        351,
-        1158,
-        899,
-        830,
-        UNUSED,
-        537,
-        1490,
-        UNUSED,
-        1165,
-        1257,
-        1355,
-        66,
-        459,
-        UNUSED,
-        46,
-        UNUSED,
-        UNUSED,
-        -1891,
-        1471,
-        2413,
-        1203,
-        1949,
-        UNUSED,
-        UNUSED,
-        1337,
-        UNUSED,
-        UNUSED,
-        1894,
-        UNUSED,
-        1154,
-        879,
-        796,
-        UNUSED,
-        UNUSED,
-        -1670,
-        5607,
-        475,
-        501,
-        644,
-        UNUSED,
-        1449,
-        529,
-        2536,
-        323,
-        UNUSED,
-        59,
-        1010,
-        406,
-        34,
-        2887,
-        -1590,
-        UNUSED,
-        1008,
-        UNUSED,
-        764,
-        1073,
-        1443,
-        UNUSED,
-        -1422,
-        -1689,
-        UNUSED,
-        3060,
-        UNUSED,
-        UNUSED,
-        UNUSED,
-        294,
-        1126,
-        -289,
-        2077,
-        257,
-        UNUSED,
-        -1168,
-        652,
-        UNUSED,
-        792,
-        1218,
-        -69,
-        -1264,
-        UNUSED,
-        1666,
-        1947,
-        1897,
-        -1829,
-        -209,
-        UNUSED,
-        UNUSED,
-        444,
-        UNUSED,
-        -836,
-        2167,
-        1580,
-        820,
-        -1917,
-        -3684,
-        1505,
-        528,
-        UNUSED,
-        793,
-        UNUSED,
-        1334,
-        811,
-        845,
-        -47,
-        UNUSED,
-        UNUSED,
-        -2157,
-        211,
-        -1182,
-        398,
-        UNUSED,
-        1029,
-        1649,
-        101,
-        UNUSED,
-        UNUSED,
-        136,
-        -2631,
-        UNUSED,
-        UNUSED,
-        -2428,
-        1811,
-        1050,
-        921,
-        UNUSED,
-        2357,
-        UNUSED,
-    };
-    static const struct tokendata tokendata[2225] = {
-        { "db", TOKEN_INSN, C_none, 0, I_DB },
-        { "dw", TOKEN_INSN, C_none, 0, I_DW },
-        { "dd", TOKEN_INSN, C_none, 0, I_DD },
-        { "dq", TOKEN_INSN, C_none, 0, I_DQ },
-        { "dt", TOKEN_INSN, C_none, 0, I_DT },
-        { "do", TOKEN_INSN, C_none, 0, I_DO },
-        { "dy", TOKEN_INSN, C_none, 0, I_DY },
-        { "dz", TOKEN_INSN, C_none, 0, I_DZ },
-        { "resb", TOKEN_INSN, C_none, 0, I_RESB },
-        { "resw", TOKEN_INSN, C_none, 0, I_RESW },
-        { "resd", TOKEN_INSN, C_none, 0, I_RESD },
-        { "resq", TOKEN_INSN, C_none, 0, I_RESQ },
-        { "rest", TOKEN_INSN, C_none, 0, I_REST },
-        { "reso", TOKEN_INSN, C_none, 0, I_RESO },
-        { "resy", TOKEN_INSN, C_none, 0, I_RESY },
-        { "resz", TOKEN_INSN, C_none, 0, I_RESZ },
-        { "aaa", TOKEN_INSN, C_none, 0, I_AAA },
-        { "aad", TOKEN_INSN, C_none, 0, I_AAD },
-        { "aam", TOKEN_INSN, C_none, 0, I_AAM },
-        { "aas", TOKEN_INSN, C_none, 0, I_AAS },
-        { "adc", TOKEN_INSN, C_none, 0, I_ADC },
-        { "add", TOKEN_INSN, C_none, 0, I_ADD },
-        { "and", TOKEN_INSN, C_none, 0, I_AND },
-        { "arpl", TOKEN_INSN, C_none, 0, I_ARPL },
-        { "bb0_reset", TOKEN_INSN, C_none, 0, I_BB0_RESET },
-        { "bb1_reset", TOKEN_INSN, C_none, 0, I_BB1_RESET },
-        { "bound", TOKEN_INSN, C_none, 0, I_BOUND },
-        { "bsf", TOKEN_INSN, C_none, 0, I_BSF },
-        { "bsr", TOKEN_INSN, C_none, 0, I_BSR },
-        { "bswap", TOKEN_INSN, C_none, 0, I_BSWAP },
-        { "bt", TOKEN_INSN, C_none, 0, I_BT },
-        { "btc", TOKEN_INSN, C_none, 0, I_BTC },
-        { "btr", TOKEN_INSN, C_none, 0, I_BTR },
-        { "bts", TOKEN_INSN, C_none, 0, I_BTS },
-        { "call", TOKEN_INSN, C_none, 0, I_CALL },
-        { "cbw", TOKEN_INSN, C_none, 0, I_CBW },
-        { "cdq", TOKEN_INSN, C_none, 0, I_CDQ },
-        { "cdqe", TOKEN_INSN, C_none, 0, I_CDQE },
-        { "clc", TOKEN_INSN, C_none, 0, I_CLC },
-        { "cld", TOKEN_INSN, C_none, 0, I_CLD },
-        { "cli", TOKEN_INSN, C_none, 0, I_CLI },
-        { "clts", TOKEN_INSN, C_none, 0, I_CLTS },
-        { "cmc", TOKEN_INSN, C_none, 0, I_CMC },
-        { "cmp", TOKEN_INSN, C_none, 0, I_CMP },
-        { "cmpsb", TOKEN_INSN, C_none, 0, I_CMPSB },
-        { "cmpsd", TOKEN_INSN, C_none, 0, I_CMPSD },
-        { "cmpsq", TOKEN_INSN, C_none, 0, I_CMPSQ },
-        { "cmpsw", TOKEN_INSN, C_none, 0, I_CMPSW },
-        { "cmpxchg", TOKEN_INSN, C_none, 0, I_CMPXCHG },
-        { "cmpxchg486", TOKEN_INSN, C_none, 0, I_CMPXCHG486 },
-        { "cmpxchg8b", TOKEN_INSN, C_none, 0, I_CMPXCHG8B },
-        { "cmpxchg16b", TOKEN_INSN, C_none, 0, I_CMPXCHG16B },
-        { "cpuid", TOKEN_INSN, C_none, 0, I_CPUID },
-        { "cpu_read", TOKEN_INSN, C_none, 0, I_CPU_READ },
-        { "cpu_write", TOKEN_INSN, C_none, 0, I_CPU_WRITE },
-        { "cqo", TOKEN_INSN, C_none, 0, I_CQO },
-        { "cwd", TOKEN_INSN, C_none, 0, I_CWD },
-        { "cwde", TOKEN_INSN, C_none, 0, I_CWDE },
-        { "daa", TOKEN_INSN, C_none, 0, I_DAA },
-        { "das", TOKEN_INSN, C_none, 0, I_DAS },
-        { "dec", TOKEN_INSN, C_none, 0, I_DEC },
-        { "div", TOKEN_INSN, C_none, 0, I_DIV },
-        { "dmint", TOKEN_INSN, C_none, 0, I_DMINT },
-        { "emms", TOKEN_INSN, C_none, 0, I_EMMS },
-        { "enter", TOKEN_INSN, C_none, 0, I_ENTER },
-        { "equ", TOKEN_INSN, C_none, 0, I_EQU },
-        { "f2xm1", TOKEN_INSN, C_none, 0, I_F2XM1 },
-        { "fabs", TOKEN_INSN, C_none, 0, I_FABS },
-        { "fadd", TOKEN_INSN, C_none, 0, I_FADD },
-        { "faddp", TOKEN_INSN, C_none, 0, I_FADDP },
-        { "fbld", TOKEN_INSN, C_none, 0, I_FBLD },
-        { "fbstp", TOKEN_INSN, C_none, 0, I_FBSTP },
-        { "fchs", TOKEN_INSN, C_none, 0, I_FCHS },
-        { "fclex", TOKEN_INSN, C_none, 0, I_FCLEX },
-        { "fcmovb", TOKEN_INSN, C_none, 0, I_FCMOVB },
-        { "fcmovbe", TOKEN_INSN, C_none, 0, I_FCMOVBE },
-        { "fcmove", TOKEN_INSN, C_none, 0, I_FCMOVE },
-        { "fcmovnb", TOKEN_INSN, C_none, 0, I_FCMOVNB },
-        { "fcmovnbe", TOKEN_INSN, C_none, 0, I_FCMOVNBE },
-        { "fcmovne", TOKEN_INSN, C_none, 0, I_FCMOVNE },
-        { "fcmovnu", TOKEN_INSN, C_none, 0, I_FCMOVNU },
-        { "fcmovu", TOKEN_INSN, C_none, 0, I_FCMOVU },
-        { "fcom", TOKEN_INSN, C_none, 0, I_FCOM },
-        { "fcomi", TOKEN_INSN, C_none, 0, I_FCOMI },
-        { "fcomip", TOKEN_INSN, C_none, 0, I_FCOMIP },
-        { "fcomp", TOKEN_INSN, C_none, 0, I_FCOMP },
-        { "fcompp", TOKEN_INSN, C_none, 0, I_FCOMPP },
-        { "fcos", TOKEN_INSN, C_none, 0, I_FCOS },
-        { "fdecstp", TOKEN_INSN, C_none, 0, I_FDECSTP },
-        { "fdisi", TOKEN_INSN, C_none, 0, I_FDISI },
-        { "fdiv", TOKEN_INSN, C_none, 0, I_FDIV },
-        { "fdivp", TOKEN_INSN, C_none, 0, I_FDIVP },
-        { "fdivr", TOKEN_INSN, C_none, 0, I_FDIVR },
-        { "fdivrp", TOKEN_INSN, C_none, 0, I_FDIVRP },
-        { "femms", TOKEN_INSN, C_none, 0, I_FEMMS },
-        { "feni", TOKEN_INSN, C_none, 0, I_FENI },
-        { "ffree", TOKEN_INSN, C_none, 0, I_FFREE },
-        { "ffreep", TOKEN_INSN, C_none, 0, I_FFREEP },
-        { "fiadd", TOKEN_INSN, C_none, 0, I_FIADD },
-        { "ficom", TOKEN_INSN, C_none, 0, I_FICOM },
-        { "ficomp", TOKEN_INSN, C_none, 0, I_FICOMP },
-        { "fidiv", TOKEN_INSN, C_none, 0, I_FIDIV },
-        { "fidivr", TOKEN_INSN, C_none, 0, I_FIDIVR },
-        { "fild", TOKEN_INSN, C_none, 0, I_FILD },
-        { "fimul", TOKEN_INSN, C_none, 0, I_FIMUL },
-        { "fincstp", TOKEN_INSN, C_none, 0, I_FINCSTP },
-        { "finit", TOKEN_INSN, C_none, 0, I_FINIT },
-        { "fist", TOKEN_INSN, C_none, 0, I_FIST },
-        { "fistp", TOKEN_INSN, C_none, 0, I_FISTP },
-        { "fisttp", TOKEN_INSN, C_none, 0, I_FISTTP },
-        { "fisub", TOKEN_INSN, C_none, 0, I_FISUB },
-        { "fisubr", TOKEN_INSN, C_none, 0, I_FISUBR },
-        { "fld", TOKEN_INSN, C_none, 0, I_FLD },
-        { "fld1", TOKEN_INSN, C_none, 0, I_FLD1 },
-        { "fldcw", TOKEN_INSN, C_none, 0, I_FLDCW },
-        { "fldenv", TOKEN_INSN, C_none, 0, I_FLDENV },
-        { "fldl2e", TOKEN_INSN, C_none, 0, I_FLDL2E },
-        { "fldl2t", TOKEN_INSN, C_none, 0, I_FLDL2T },
-        { "fldlg2", TOKEN_INSN, C_none, 0, I_FLDLG2 },
-        { "fldln2", TOKEN_INSN, C_none, 0, I_FLDLN2 },
-        { "fldpi", TOKEN_INSN, C_none, 0, I_FLDPI },
-        { "fldz", TOKEN_INSN, C_none, 0, I_FLDZ },
-        { "fmul", TOKEN_INSN, C_none, 0, I_FMUL },
-        { "fmulp", TOKEN_INSN, C_none, 0, I_FMULP },
-        { "fnclex", TOKEN_INSN, C_none, 0, I_FNCLEX },
-        { "fndisi", TOKEN_INSN, C_none, 0, I_FNDISI },
-        { "fneni", TOKEN_INSN, C_none, 0, I_FNENI },
-        { "fninit", TOKEN_INSN, C_none, 0, I_FNINIT },
-        { "fnop", TOKEN_INSN, C_none, 0, I_FNOP },
-        { "fnsave", TOKEN_INSN, C_none, 0, I_FNSAVE },
-        { "fnstcw", TOKEN_INSN, C_none, 0, I_FNSTCW },
-        { "fnstenv", TOKEN_INSN, C_none, 0, I_FNSTENV },
-        { "fnstsw", TOKEN_INSN, C_none, 0, I_FNSTSW },
-        { "fpatan", TOKEN_INSN, C_none, 0, I_FPATAN },
-        { "fprem", TOKEN_INSN, C_none, 0, I_FPREM },
-        { "fprem1", TOKEN_INSN, C_none, 0, I_FPREM1 },
-        { "fptan", TOKEN_INSN, C_none, 0, I_FPTAN },
-        { "frndint", TOKEN_INSN, C_none, 0, I_FRNDINT },
-        { "frstor", TOKEN_INSN, C_none, 0, I_FRSTOR },
-        { "fsave", TOKEN_INSN, C_none, 0, I_FSAVE },
-        { "fscale", TOKEN_INSN, C_none, 0, I_FSCALE },
-        { "fsetpm", TOKEN_INSN, C_none, 0, I_FSETPM },
-        { "fsin", TOKEN_INSN, C_none, 0, I_FSIN },
-        { "fsincos", TOKEN_INSN, C_none, 0, I_FSINCOS },
-        { "fsqrt", TOKEN_INSN, C_none, 0, I_FSQRT },
-        { "fst", TOKEN_INSN, C_none, 0, I_FST },
-        { "fstcw", TOKEN_INSN, C_none, 0, I_FSTCW },
-        { "fstenv", TOKEN_INSN, C_none, 0, I_FSTENV },
-        { "fstp", TOKEN_INSN, C_none, 0, I_FSTP },
-        { "fstsw", TOKEN_INSN, C_none, 0, I_FSTSW },
-        { "fsub", TOKEN_INSN, C_none, 0, I_FSUB },
-        { "fsubp", TOKEN_INSN, C_none, 0, I_FSUBP },
-        { "fsubr", TOKEN_INSN, C_none, 0, I_FSUBR },
-        { "fsubrp", TOKEN_INSN, C_none, 0, I_FSUBRP },
-        { "ftst", TOKEN_INSN, C_none, 0, I_FTST },
-        { "fucom", TOKEN_INSN, C_none, 0, I_FUCOM },
-        { "fucomi", TOKEN_INSN, C_none, 0, I_FUCOMI },
-        { "fucomip", TOKEN_INSN, C_none, 0, I_FUCOMIP },
-        { "fucomp", TOKEN_INSN, C_none, 0, I_FUCOMP },
-        { "fucompp", TOKEN_INSN, C_none, 0, I_FUCOMPP },
-        { "fxam", TOKEN_INSN, C_none, 0, I_FXAM },
-        { "fxch", TOKEN_INSN, C_none, 0, I_FXCH },
-        { "fxtract", TOKEN_INSN, C_none, 0, I_FXTRACT },
-        { "fyl2x", TOKEN_INSN, C_none, 0, I_FYL2X },
-        { "fyl2xp1", TOKEN_INSN, C_none, 0, I_FYL2XP1 },
-        { "hlt", TOKEN_INSN, C_none, 0, I_HLT },
-        { "ibts", TOKEN_INSN, C_none, 0, I_IBTS },
-        { "icebp", TOKEN_INSN, C_none, 0, I_ICEBP },
-        { "idiv", TOKEN_INSN, C_none, 0, I_IDIV },
-        { "imul", TOKEN_INSN, C_none, 0, I_IMUL },
-        { "in", TOKEN_INSN, C_none, 0, I_IN },
-        { "inc", TOKEN_INSN, C_none, 0, I_INC },
-        { "incbin", TOKEN_INSN, C_none, 0, I_INCBIN },
-        { "insb", TOKEN_INSN, C_none, 0, I_INSB },
-        { "insd", TOKEN_INSN, C_none, 0, I_INSD },
-        { "insw", TOKEN_INSN, C_none, 0, I_INSW },
-        { "int", TOKEN_INSN, C_none, 0, I_INT },
-        { "int01", TOKEN_INSN, C_none, 0, I_INT01 },
-        { "int1", TOKEN_INSN, C_none, 0, I_INT1 },
-        { "int03", TOKEN_INSN, C_none, 0, I_INT03 },
-        { "int3", TOKEN_INSN, C_none, 0, I_INT3 },
-        { "into", TOKEN_INSN, C_none, 0, I_INTO },
-        { "invd", TOKEN_INSN, C_none, 0, I_INVD },
-        { "invpcid", TOKEN_INSN, C_none, 0, I_INVPCID },
-        { "invlpg", TOKEN_INSN, C_none, 0, I_INVLPG },
-        { "invlpga", TOKEN_INSN, C_none, 0, I_INVLPGA },
-        { "iret", TOKEN_INSN, C_none, 0, I_IRET },
-        { "iretd", TOKEN_INSN, C_none, 0, I_IRETD },
-        { "iretq", TOKEN_INSN, C_none, 0, I_IRETQ },
-        { "iretw", TOKEN_INSN, C_none, 0, I_IRETW },
-        { "jcxz", TOKEN_INSN, C_none, 0, I_JCXZ },
-        { "jecxz", TOKEN_INSN, C_none, 0, I_JECXZ },
-        { "jrcxz", TOKEN_INSN, C_none, 0, I_JRCXZ },
-        { "jmp", TOKEN_INSN, C_none, 0, I_JMP },
-        { "jmpe", TOKEN_INSN, C_none, 0, I_JMPE },
-        { "lahf", TOKEN_INSN, C_none, 0, I_LAHF },
-        { "lar", TOKEN_INSN, C_none, 0, I_LAR },
-        { "lds", TOKEN_INSN, C_none, 0, I_LDS },
-        { "lea", TOKEN_INSN, C_none, 0, I_LEA },
-        { "leave", TOKEN_INSN, C_none, 0, I_LEAVE },
-        { "les", TOKEN_INSN, C_none, 0, I_LES },
-        { "lfence", TOKEN_INSN, C_none, 0, I_LFENCE },
-        { "lfs", TOKEN_INSN, C_none, 0, I_LFS },
-        { "lgdt", TOKEN_INSN, C_none, 0, I_LGDT },
-        { "lgs", TOKEN_INSN, C_none, 0, I_LGS },
-        { "lidt", TOKEN_INSN, C_none, 0, I_LIDT },
-        { "lldt", TOKEN_INSN, C_none, 0, I_LLDT },
-        { "lmsw", TOKEN_INSN, C_none, 0, I_LMSW },
-        { "loadall", TOKEN_INSN, C_none, 0, I_LOADALL },
-        { "loadall286", TOKEN_INSN, C_none, 0, I_LOADALL286 },
-        { "lodsb", TOKEN_INSN, C_none, 0, I_LODSB },
-        { "lodsd", TOKEN_INSN, C_none, 0, I_LODSD },
-        { "lodsq", TOKEN_INSN, C_none, 0, I_LODSQ },
-        { "lodsw", TOKEN_INSN, C_none, 0, I_LODSW },
-        { "loop", TOKEN_INSN, C_none, 0, I_LOOP },
-        { "loope", TOKEN_INSN, C_none, 0, I_LOOPE },
-        { "loopne", TOKEN_INSN, C_none, 0, I_LOOPNE },
-        { "loopnz", TOKEN_INSN, C_none, 0, I_LOOPNZ },
-        { "loopz", TOKEN_INSN, C_none, 0, I_LOOPZ },
-        { "lsl", TOKEN_INSN, C_none, 0, I_LSL },
-        { "lss", TOKEN_INSN, C_none, 0, I_LSS },
-        { "ltr", TOKEN_INSN, C_none, 0, I_LTR },
-        { "mfence", TOKEN_INSN, C_none, 0, I_MFENCE },
-        { "monitor", TOKEN_INSN, C_none, 0, I_MONITOR },
-        { "monitorx", TOKEN_INSN, C_none, 0, I_MONITORX },
-        { "mov", TOKEN_INSN, C_none, 0, I_MOV },
-        { "movd", TOKEN_INSN, C_none, 0, I_MOVD },
-        { "movq", TOKEN_INSN, C_none, 0, I_MOVQ },
-        { "movsb", TOKEN_INSN, C_none, 0, I_MOVSB },
-        { "movsd", TOKEN_INSN, C_none, 0, I_MOVSD },
-        { "movsq", TOKEN_INSN, C_none, 0, I_MOVSQ },
-        { "movsw", TOKEN_INSN, C_none, 0, I_MOVSW },
-        { "movsx", TOKEN_INSN, C_none, 0, I_MOVSX },
-        { "movsxd", TOKEN_INSN, C_none, 0, I_MOVSXD },
-        { "movzx", TOKEN_INSN, C_none, 0, I_MOVZX },
-        { "mul", TOKEN_INSN, C_none, 0, I_MUL },
-        { "mwait", TOKEN_INSN, C_none, 0, I_MWAIT },
-        { "mwaitx", TOKEN_INSN, C_none, 0, I_MWAITX },
-        { "neg", TOKEN_INSN, C_none, 0, I_NEG },
-        { "nop", TOKEN_INSN, C_none, 0, I_NOP },
-        { "not", TOKEN_INSN, C_none, 0, I_NOT },
-        { "or", TOKEN_INSN, C_none, 0, I_OR },
-        { "out", TOKEN_INSN, C_none, 0, I_OUT },
-        { "outsb", TOKEN_INSN, C_none, 0, I_OUTSB },
-        { "outsd", TOKEN_INSN, C_none, 0, I_OUTSD },
-        { "outsw", TOKEN_INSN, C_none, 0, I_OUTSW },
-        { "packssdw", TOKEN_INSN, C_none, 0, I_PACKSSDW },
-        { "packsswb", TOKEN_INSN, C_none, 0, I_PACKSSWB },
-        { "packuswb", TOKEN_INSN, C_none, 0, I_PACKUSWB },
-        { "paddb", TOKEN_INSN, C_none, 0, I_PADDB },
-        { "paddd", TOKEN_INSN, C_none, 0, I_PADDD },
-        { "paddsb", TOKEN_INSN, C_none, 0, I_PADDSB },
-        { "paddsiw", TOKEN_INSN, C_none, 0, I_PADDSIW },
-        { "paddsw", TOKEN_INSN, C_none, 0, I_PADDSW },
-        { "paddusb", TOKEN_INSN, C_none, 0, I_PADDUSB },
-        { "paddusw", TOKEN_INSN, C_none, 0, I_PADDUSW },
-        { "paddw", TOKEN_INSN, C_none, 0, I_PADDW },
-        { "pand", TOKEN_INSN, C_none, 0, I_PAND },
-        { "pandn", TOKEN_INSN, C_none, 0, I_PANDN },
-        { "pause", TOKEN_INSN, C_none, 0, I_PAUSE },
-        { "paveb", TOKEN_INSN, C_none, 0, I_PAVEB },
-        { "pavgusb", TOKEN_INSN, C_none, 0, I_PAVGUSB },
-        { "pcmpeqb", TOKEN_INSN, C_none, 0, I_PCMPEQB },
-        { "pcmpeqd", TOKEN_INSN, C_none, 0, I_PCMPEQD },
-        { "pcmpeqw", TOKEN_INSN, C_none, 0, I_PCMPEQW },
-        { "pcmpgtb", TOKEN_INSN, C_none, 0, I_PCMPGTB },
-        { "pcmpgtd", TOKEN_INSN, C_none, 0, I_PCMPGTD },
-        { "pcmpgtw", TOKEN_INSN, C_none, 0, I_PCMPGTW },
-        { "pdistib", TOKEN_INSN, C_none, 0, I_PDISTIB },
-        { "pf2id", TOKEN_INSN, C_none, 0, I_PF2ID },
-        { "pfacc", TOKEN_INSN, C_none, 0, I_PFACC },
-        { "pfadd", TOKEN_INSN, C_none, 0, I_PFADD },
-        { "pfcmpeq", TOKEN_INSN, C_none, 0, I_PFCMPEQ },
-        { "pfcmpge", TOKEN_INSN, C_none, 0, I_PFCMPGE },
-        { "pfcmpgt", TOKEN_INSN, C_none, 0, I_PFCMPGT },
-        { "pfmax", TOKEN_INSN, C_none, 0, I_PFMAX },
-        { "pfmin", TOKEN_INSN, C_none, 0, I_PFMIN },
-        { "pfmul", TOKEN_INSN, C_none, 0, I_PFMUL },
-        { "pfrcp", TOKEN_INSN, C_none, 0, I_PFRCP },
-        { "pfrcpit1", TOKEN_INSN, C_none, 0, I_PFRCPIT1 },
-        { "pfrcpit2", TOKEN_INSN, C_none, 0, I_PFRCPIT2 },
-        { "pfrsqit1", TOKEN_INSN, C_none, 0, I_PFRSQIT1 },
-        { "pfrsqrt", TOKEN_INSN, C_none, 0, I_PFRSQRT },
-        { "pfsub", TOKEN_INSN, C_none, 0, I_PFSUB },
-        { "pfsubr", TOKEN_INSN, C_none, 0, I_PFSUBR },
-        { "pi2fd", TOKEN_INSN, C_none, 0, I_PI2FD },
-        { "pmachriw", TOKEN_INSN, C_none, 0, I_PMACHRIW },
-        { "pmaddwd", TOKEN_INSN, C_none, 0, I_PMADDWD },
-        { "pmagw", TOKEN_INSN, C_none, 0, I_PMAGW },
-        { "pmulhriw", TOKEN_INSN, C_none, 0, I_PMULHRIW },
-        { "pmulhrwa", TOKEN_INSN, C_none, 0, I_PMULHRWA },
-        { "pmulhrwc", TOKEN_INSN, C_none, 0, I_PMULHRWC },
-        { "pmulhw", TOKEN_INSN, C_none, 0, I_PMULHW },
-        { "pmullw", TOKEN_INSN, C_none, 0, I_PMULLW },
-        { "pmvgezb", TOKEN_INSN, C_none, 0, I_PMVGEZB },
-        { "pmvlzb", TOKEN_INSN, C_none, 0, I_PMVLZB },
-        { "pmvnzb", TOKEN_INSN, C_none, 0, I_PMVNZB },
-        { "pmvzb", TOKEN_INSN, C_none, 0, I_PMVZB },
-        { "pop", TOKEN_INSN, C_none, 0, I_POP },
-        { "popa", TOKEN_INSN, C_none, 0, I_POPA },
-        { "popad", TOKEN_INSN, C_none, 0, I_POPAD },
-        { "popaw", TOKEN_INSN, C_none, 0, I_POPAW },
-        { "popf", TOKEN_INSN, C_none, 0, I_POPF },
-        { "popfd", TOKEN_INSN, C_none, 0, I_POPFD },
-        { "popfq", TOKEN_INSN, C_none, 0, I_POPFQ },
-        { "popfw", TOKEN_INSN, C_none, 0, I_POPFW },
-        { "por", TOKEN_INSN, C_none, 0, I_POR },
-        { "prefetch", TOKEN_INSN, C_none, 0, I_PREFETCH },
-        { "prefetchw", TOKEN_INSN, C_none, 0, I_PREFETCHW },
-        { "pslld", TOKEN_INSN, C_none, 0, I_PSLLD },
-        { "psllq", TOKEN_INSN, C_none, 0, I_PSLLQ },
-        { "psllw", TOKEN_INSN, C_none, 0, I_PSLLW },
-        { "psrad", TOKEN_INSN, C_none, 0, I_PSRAD },
-        { "psraw", TOKEN_INSN, C_none, 0, I_PSRAW },
-        { "psrld", TOKEN_INSN, C_none, 0, I_PSRLD },
-        { "psrlq", TOKEN_INSN, C_none, 0, I_PSRLQ },
-        { "psrlw", TOKEN_INSN, C_none, 0, I_PSRLW },
-        { "psubb", TOKEN_INSN, C_none, 0, I_PSUBB },
-        { "psubd", TOKEN_INSN, C_none, 0, I_PSUBD },
-        { "psubsb", TOKEN_INSN, C_none, 0, I_PSUBSB },
-        { "psubsiw", TOKEN_INSN, C_none, 0, I_PSUBSIW },
-        { "psubsw", TOKEN_INSN, C_none, 0, I_PSUBSW },
-        { "psubusb", TOKEN_INSN, C_none, 0, I_PSUBUSB },
-        { "psubusw", TOKEN_INSN, C_none, 0, I_PSUBUSW },
-        { "psubw", TOKEN_INSN, C_none, 0, I_PSUBW },
-        { "punpckhbw", TOKEN_INSN, C_none, 0, I_PUNPCKHBW },
-        { "punpckhdq", TOKEN_INSN, C_none, 0, I_PUNPCKHDQ },
-        { "punpckhwd", TOKEN_INSN, C_none, 0, I_PUNPCKHWD },
-        { "punpcklbw", TOKEN_INSN, C_none, 0, I_PUNPCKLBW },
-        { "punpckldq", TOKEN_INSN, C_none, 0, I_PUNPCKLDQ },
-        { "punpcklwd", TOKEN_INSN, C_none, 0, I_PUNPCKLWD },
-        { "push", TOKEN_INSN, C_none, 0, I_PUSH },
-        { "pusha", TOKEN_INSN, C_none, 0, I_PUSHA },
-        { "pushad", TOKEN_INSN, C_none, 0, I_PUSHAD },
-        { "pushaw", TOKEN_INSN, C_none, 0, I_PUSHAW },
-        { "pushf", TOKEN_INSN, C_none, 0, I_PUSHF },
-        { "pushfd", TOKEN_INSN, C_none, 0, I_PUSHFD },
-        { "pushfq", TOKEN_INSN, C_none, 0, I_PUSHFQ },
-        { "pushfw", TOKEN_INSN, C_none, 0, I_PUSHFW },
-        { "pxor", TOKEN_INSN, C_none, 0, I_PXOR },
-        { "rcl", TOKEN_INSN, C_none, 0, I_RCL },
-        { "rcr", TOKEN_INSN, C_none, 0, I_RCR },
-        { "rdshr", TOKEN_INSN, C_none, 0, I_RDSHR },
-        { "rdmsr", TOKEN_INSN, C_none, 0, I_RDMSR },
-        { "rdpmc", TOKEN_INSN, C_none, 0, I_RDPMC },
-        { "rdtsc", TOKEN_INSN, C_none, 0, I_RDTSC },
-        { "rdtscp", TOKEN_INSN, C_none, 0, I_RDTSCP },
-        { "ret", TOKEN_INSN, C_none, 0, I_RET },
-        { "retf", TOKEN_INSN, C_none, 0, I_RETF },
-        { "retn", TOKEN_INSN, C_none, 0, I_RETN },
-        { "rol", TOKEN_INSN, C_none, 0, I_ROL },
-        { "ror", TOKEN_INSN, C_none, 0, I_ROR },
-        { "rdm", TOKEN_INSN, C_none, 0, I_RDM },
-        { "rsdc", TOKEN_INSN, C_none, 0, I_RSDC },
-        { "rsldt", TOKEN_INSN, C_none, 0, I_RSLDT },
-        { "rsm", TOKEN_INSN, C_none, 0, I_RSM },
-        { "rsts", TOKEN_INSN, C_none, 0, I_RSTS },
-        { "sahf", TOKEN_INSN, C_none, 0, I_SAHF },
-        { "sal", TOKEN_INSN, C_none, 0, I_SAL },
-        { "salc", TOKEN_INSN, C_none, 0, I_SALC },
-        { "sar", TOKEN_INSN, C_none, 0, I_SAR },
-        { "sbb", TOKEN_INSN, C_none, 0, I_SBB },
-        { "scasb", TOKEN_INSN, C_none, 0, I_SCASB },
-        { "scasd", TOKEN_INSN, C_none, 0, I_SCASD },
-        { "scasq", TOKEN_INSN, C_none, 0, I_SCASQ },
-        { "scasw", TOKEN_INSN, C_none, 0, I_SCASW },
-        { "sfence", TOKEN_INSN, C_none, 0, I_SFENCE },
-        { "sgdt", TOKEN_INSN, C_none, 0, I_SGDT },
-        { "shl", TOKEN_INSN, C_none, 0, I_SHL },
-        { "shld", TOKEN_INSN, C_none, 0, I_SHLD },
-        { "shr", TOKEN_INSN, C_none, 0, I_SHR },
-        { "shrd", TOKEN_INSN, C_none, 0, I_SHRD },
-        { "sidt", TOKEN_INSN, C_none, 0, I_SIDT },
-        { "sldt", TOKEN_INSN, C_none, 0, I_SLDT },
-        { "skinit", TOKEN_INSN, C_none, 0, I_SKINIT },
-        { "smi", TOKEN_INSN, C_none, 0, I_SMI },
-        { "smint", TOKEN_INSN, C_none, 0, I_SMINT },
-        { "smintold", TOKEN_INSN, C_none, 0, I_SMINTOLD },
-        { "smsw", TOKEN_INSN, C_none, 0, I_SMSW },
-        { "stc", TOKEN_INSN, C_none, 0, I_STC },
-        { "std", TOKEN_INSN, C_none, 0, I_STD },
-        { "sti", TOKEN_INSN, C_none, 0, I_STI },
-        { "stosb", TOKEN_INSN, C_none, 0, I_STOSB },
-        { "stosd", TOKEN_INSN, C_none, 0, I_STOSD },
-        { "stosq", TOKEN_INSN, C_none, 0, I_STOSQ },
-        { "stosw", TOKEN_INSN, C_none, 0, I_STOSW },
-        { "str", TOKEN_INSN, C_none, 0, I_STR },
-        { "sub", TOKEN_INSN, C_none, 0, I_SUB },
-        { "svdc", TOKEN_INSN, C_none, 0, I_SVDC },
-        { "svldt", TOKEN_INSN, C_none, 0, I_SVLDT },
-        { "svts", TOKEN_INSN, C_none, 0, I_SVTS },
-        { "swapgs", TOKEN_INSN, C_none, 0, I_SWAPGS },
-        { "syscall", TOKEN_INSN, C_none, 0, I_SYSCALL },
-        { "sysenter", TOKEN_INSN, C_none, 0, I_SYSENTER },
-        { "sysexit", TOKEN_INSN, C_none, 0, I_SYSEXIT },
-        { "sysret", TOKEN_INSN, C_none, 0, I_SYSRET },
-        { "test", TOKEN_INSN, C_none, 0, I_TEST },
-        { "ud0", TOKEN_INSN, C_none, 0, I_UD0 },
-        { "ud1", TOKEN_INSN, C_none, 0, I_UD1 },
-        { "ud2b", TOKEN_INSN, C_none, 0, I_UD2B },
-        { "ud2", TOKEN_INSN, C_none, 0, I_UD2 },
-        { "ud2a", TOKEN_INSN, C_none, 0, I_UD2A },
-        { "umov", TOKEN_INSN, C_none, 0, I_UMOV },
-        { "verr", TOKEN_INSN, C_none, 0, I_VERR },
-        { "verw", TOKEN_INSN, C_none, 0, I_VERW },
-        { "fwait", TOKEN_INSN, C_none, 0, I_FWAIT },
-        { "wbinvd", TOKEN_INSN, C_none, 0, I_WBINVD },
-        { "wrshr", TOKEN_INSN, C_none, 0, I_WRSHR },
-        { "wrmsr", TOKEN_INSN, C_none, 0, I_WRMSR },
-        { "xadd", TOKEN_INSN, C_none, 0, I_XADD },
-        { "xbts", TOKEN_INSN, C_none, 0, I_XBTS },
-        { "xchg", TOKEN_INSN, C_none, 0, I_XCHG },
-        { "xlatb", TOKEN_INSN, C_none, 0, I_XLATB },
-        { "xlat", TOKEN_INSN, C_none, 0, I_XLAT },
-        { "xor", TOKEN_INSN, C_none, 0, I_XOR },
-        { "cmova", TOKEN_INSN, C_A, 0, I_CMOVcc },
-        { "cmovae", TOKEN_INSN, C_AE, 0, I_CMOVcc },
-        { "cmovb", TOKEN_INSN, C_B, 0, I_CMOVcc },
-        { "cmovbe", TOKEN_INSN, C_BE, 0, I_CMOVcc },
-        { "cmovc", TOKEN_INSN, C_C, 0, I_CMOVcc },
-        { "cmove", TOKEN_INSN, C_E, 0, I_CMOVcc },
-        { "cmovg", TOKEN_INSN, C_G, 0, I_CMOVcc },
-        { "cmovge", TOKEN_INSN, C_GE, 0, I_CMOVcc },
-        { "cmovl", TOKEN_INSN, C_L, 0, I_CMOVcc },
-        { "cmovle", TOKEN_INSN, C_LE, 0, I_CMOVcc },
-        { "cmovna", TOKEN_INSN, C_NA, 0, I_CMOVcc },
-        { "cmovnae", TOKEN_INSN, C_NAE, 0, I_CMOVcc },
-        { "cmovnb", TOKEN_INSN, C_NB, 0, I_CMOVcc },
-        { "cmovnbe", TOKEN_INSN, C_NBE, 0, I_CMOVcc },
-        { "cmovnc", TOKEN_INSN, C_NC, 0, I_CMOVcc },
-        { "cmovne", TOKEN_INSN, C_NE, 0, I_CMOVcc },
-        { "cmovng", TOKEN_INSN, C_NG, 0, I_CMOVcc },
-        { "cmovnge", TOKEN_INSN, C_NGE, 0, I_CMOVcc },
-        { "cmovnl", TOKEN_INSN, C_NL, 0, I_CMOVcc },
-        { "cmovnle", TOKEN_INSN, C_NLE, 0, I_CMOVcc },
-        { "cmovno", TOKEN_INSN, C_NO, 0, I_CMOVcc },
-        { "cmovnp", TOKEN_INSN, C_NP, 0, I_CMOVcc },
-        { "cmovns", TOKEN_INSN, C_NS, 0, I_CMOVcc },
-        { "cmovnz", TOKEN_INSN, C_NZ, 0, I_CMOVcc },
-        { "cmovo", TOKEN_INSN, C_O, 0, I_CMOVcc },
-        { "cmovp", TOKEN_INSN, C_P, 0, I_CMOVcc },
-        { "cmovpe", TOKEN_INSN, C_PE, 0, I_CMOVcc },
-        { "cmovpo", TOKEN_INSN, C_PO, 0, I_CMOVcc },
-        { "cmovs", TOKEN_INSN, C_S, 0, I_CMOVcc },
-        { "cmovz", TOKEN_INSN, C_Z, 0, I_CMOVcc },
-        { "ja", TOKEN_INSN, C_A, 0, I_Jcc },
-        { "jae", TOKEN_INSN, C_AE, 0, I_Jcc },
-        { "jb", TOKEN_INSN, C_B, 0, I_Jcc },
-        { "jbe", TOKEN_INSN, C_BE, 0, I_Jcc },
-        { "jc", TOKEN_INSN, C_C, 0, I_Jcc },
-        { "je", TOKEN_INSN, C_E, 0, I_Jcc },
-        { "jg", TOKEN_INSN, C_G, 0, I_Jcc },
-        { "jge", TOKEN_INSN, C_GE, 0, I_Jcc },
-        { "jl", TOKEN_INSN, C_L, 0, I_Jcc },
-        { "jle", TOKEN_INSN, C_LE, 0, I_Jcc },
-        { "jna", TOKEN_INSN, C_NA, 0, I_Jcc },
-        { "jnae", TOKEN_INSN, C_NAE, 0, I_Jcc },
-        { "jnb", TOKEN_INSN, C_NB, 0, I_Jcc },
-        { "jnbe", TOKEN_INSN, C_NBE, 0, I_Jcc },
-        { "jnc", TOKEN_INSN, C_NC, 0, I_Jcc },
-        { "jne", TOKEN_INSN, C_NE, 0, I_Jcc },
-        { "jng", TOKEN_INSN, C_NG, 0, I_Jcc },
-        { "jnge", TOKEN_INSN, C_NGE, 0, I_Jcc },
-        { "jnl", TOKEN_INSN, C_NL, 0, I_Jcc },
-        { "jnle", TOKEN_INSN, C_NLE, 0, I_Jcc },
-        { "jno", TOKEN_INSN, C_NO, 0, I_Jcc },
-        { "jnp", TOKEN_INSN, C_NP, 0, I_Jcc },
-        { "jns", TOKEN_INSN, C_NS, 0, I_Jcc },
-        { "jnz", TOKEN_INSN, C_NZ, 0, I_Jcc },
-        { "jo", TOKEN_INSN, C_O, 0, I_Jcc },
-        { "jp", TOKEN_INSN, C_P, 0, I_Jcc },
-        { "jpe", TOKEN_INSN, C_PE, 0, I_Jcc },
-        { "jpo", TOKEN_INSN, C_PO, 0, I_Jcc },
-        { "js", TOKEN_INSN, C_S, 0, I_Jcc },
-        { "jz", TOKEN_INSN, C_Z, 0, I_Jcc },
-        { "seta", TOKEN_INSN, C_A, 0, I_SETcc },
-        { "setae", TOKEN_INSN, C_AE, 0, I_SETcc },
-        { "setb", TOKEN_INSN, C_B, 0, I_SETcc },
-        { "setbe", TOKEN_INSN, C_BE, 0, I_SETcc },
-        { "setc", TOKEN_INSN, C_C, 0, I_SETcc },
-        { "sete", TOKEN_INSN, C_E, 0, I_SETcc },
-        { "setg", TOKEN_INSN, C_G, 0, I_SETcc },
-        { "setge", TOKEN_INSN, C_GE, 0, I_SETcc },
-        { "setl", TOKEN_INSN, C_L, 0, I_SETcc },
-        { "setle", TOKEN_INSN, C_LE, 0, I_SETcc },
-        { "setna", TOKEN_INSN, C_NA, 0, I_SETcc },
-        { "setnae", TOKEN_INSN, C_NAE, 0, I_SETcc },
-        { "setnb", TOKEN_INSN, C_NB, 0, I_SETcc },
-        { "setnbe", TOKEN_INSN, C_NBE, 0, I_SETcc },
-        { "setnc", TOKEN_INSN, C_NC, 0, I_SETcc },
-        { "setne", TOKEN_INSN, C_NE, 0, I_SETcc },
-        { "setng", TOKEN_INSN, C_NG, 0, I_SETcc },
-        { "setnge", TOKEN_INSN, C_NGE, 0, I_SETcc },
-        { "setnl", TOKEN_INSN, C_NL, 0, I_SETcc },
-        { "setnle", TOKEN_INSN, C_NLE, 0, I_SETcc },
-        { "setno", TOKEN_INSN, C_NO, 0, I_SETcc },
-        { "setnp", TOKEN_INSN, C_NP, 0, I_SETcc },
-        { "setns", TOKEN_INSN, C_NS, 0, I_SETcc },
-        { "setnz", TOKEN_INSN, C_NZ, 0, I_SETcc },
-        { "seto", TOKEN_INSN, C_O, 0, I_SETcc },
-        { "setp", TOKEN_INSN, C_P, 0, I_SETcc },
-        { "setpe", TOKEN_INSN, C_PE, 0, I_SETcc },
-        { "setpo", TOKEN_INSN, C_PO, 0, I_SETcc },
-        { "sets", TOKEN_INSN, C_S, 0, I_SETcc },
-        { "setz", TOKEN_INSN, C_Z, 0, I_SETcc },
-        { "addps", TOKEN_INSN, C_none, 0, I_ADDPS },
-        { "addss", TOKEN_INSN, C_none, 0, I_ADDSS },
-        { "andnps", TOKEN_INSN, C_none, 0, I_ANDNPS },
-        { "andps", TOKEN_INSN, C_none, 0, I_ANDPS },
-        { "cmpeqps", TOKEN_INSN, C_none, 0, I_CMPEQPS },
-        { "cmpeqss", TOKEN_INSN, C_none, 0, I_CMPEQSS },
-        { "cmpleps", TOKEN_INSN, C_none, 0, I_CMPLEPS },
-        { "cmpless", TOKEN_INSN, C_none, 0, I_CMPLESS },
-        { "cmpltps", TOKEN_INSN, C_none, 0, I_CMPLTPS },
-        { "cmpltss", TOKEN_INSN, C_none, 0, I_CMPLTSS },
-        { "cmpneqps", TOKEN_INSN, C_none, 0, I_CMPNEQPS },
-        { "cmpneqss", TOKEN_INSN, C_none, 0, I_CMPNEQSS },
-        { "cmpnleps", TOKEN_INSN, C_none, 0, I_CMPNLEPS },
-        { "cmpnless", TOKEN_INSN, C_none, 0, I_CMPNLESS },
-        { "cmpnltps", TOKEN_INSN, C_none, 0, I_CMPNLTPS },
-        { "cmpnltss", TOKEN_INSN, C_none, 0, I_CMPNLTSS },
-        { "cmpordps", TOKEN_INSN, C_none, 0, I_CMPORDPS },
-        { "cmpordss", TOKEN_INSN, C_none, 0, I_CMPORDSS },
-        { "cmpunordps", TOKEN_INSN, C_none, 0, I_CMPUNORDPS },
-        { "cmpunordss", TOKEN_INSN, C_none, 0, I_CMPUNORDSS },
-        { "cmpps", TOKEN_INSN, C_none, 0, I_CMPPS },
-        { "cmpss", TOKEN_INSN, C_none, 0, I_CMPSS },
-        { "comiss", TOKEN_INSN, C_none, 0, I_COMISS },
-        { "cvtpi2ps", TOKEN_INSN, C_none, 0, I_CVTPI2PS },
-        { "cvtps2pi", TOKEN_INSN, C_none, 0, I_CVTPS2PI },
-        { "cvtsi2ss", TOKEN_INSN, C_none, 0, I_CVTSI2SS },
-        { "cvtss2si", TOKEN_INSN, C_none, 0, I_CVTSS2SI },
-        { "cvttps2pi", TOKEN_INSN, C_none, 0, I_CVTTPS2PI },
-        { "cvttss2si", TOKEN_INSN, C_none, 0, I_CVTTSS2SI },
-        { "divps", TOKEN_INSN, C_none, 0, I_DIVPS },
-        { "divss", TOKEN_INSN, C_none, 0, I_DIVSS },
-        { "ldmxcsr", TOKEN_INSN, C_none, 0, I_LDMXCSR },
-        { "maxps", TOKEN_INSN, C_none, 0, I_MAXPS },
-        { "maxss", TOKEN_INSN, C_none, 0, I_MAXSS },
-        { "minps", TOKEN_INSN, C_none, 0, I_MINPS },
-        { "minss", TOKEN_INSN, C_none, 0, I_MINSS },
-        { "movaps", TOKEN_INSN, C_none, 0, I_MOVAPS },
-        { "movhps", TOKEN_INSN, C_none, 0, I_MOVHPS },
-        { "movlhps", TOKEN_INSN, C_none, 0, I_MOVLHPS },
-        { "movlps", TOKEN_INSN, C_none, 0, I_MOVLPS },
-        { "movhlps", TOKEN_INSN, C_none, 0, I_MOVHLPS },
-        { "movmskps", TOKEN_INSN, C_none, 0, I_MOVMSKPS },
-        { "movntps", TOKEN_INSN, C_none, 0, I_MOVNTPS },
-        { "movss", TOKEN_INSN, C_none, 0, I_MOVSS },
-        { "movups", TOKEN_INSN, C_none, 0, I_MOVUPS },
-        { "mulps", TOKEN_INSN, C_none, 0, I_MULPS },
-        { "mulss", TOKEN_INSN, C_none, 0, I_MULSS },
-        { "orps", TOKEN_INSN, C_none, 0, I_ORPS },
-        { "rcpps", TOKEN_INSN, C_none, 0, I_RCPPS },
-        { "rcpss", TOKEN_INSN, C_none, 0, I_RCPSS },
-        { "rsqrtps", TOKEN_INSN, C_none, 0, I_RSQRTPS },
-        { "rsqrtss", TOKEN_INSN, C_none, 0, I_RSQRTSS },
-        { "shufps", TOKEN_INSN, C_none, 0, I_SHUFPS },
-        { "sqrtps", TOKEN_INSN, C_none, 0, I_SQRTPS },
-        { "sqrtss", TOKEN_INSN, C_none, 0, I_SQRTSS },
-        { "stmxcsr", TOKEN_INSN, C_none, 0, I_STMXCSR },
-        { "subps", TOKEN_INSN, C_none, 0, I_SUBPS },
-        { "subss", TOKEN_INSN, C_none, 0, I_SUBSS },
-        { "ucomiss", TOKEN_INSN, C_none, 0, I_UCOMISS },
-        { "unpckhps", TOKEN_INSN, C_none, 0, I_UNPCKHPS },
-        { "unpcklps", TOKEN_INSN, C_none, 0, I_UNPCKLPS },
-        { "xorps", TOKEN_INSN, C_none, 0, I_XORPS },
-        { "fxrstor", TOKEN_INSN, C_none, 0, I_FXRSTOR },
-        { "fxrstor64", TOKEN_INSN, C_none, 0, I_FXRSTOR64 },
-        { "fxsave", TOKEN_INSN, C_none, 0, I_FXSAVE },
-        { "fxsave64", TOKEN_INSN, C_none, 0, I_FXSAVE64 },
-        { "xgetbv", TOKEN_INSN, C_none, 0, I_XGETBV },
-        { "xsetbv", TOKEN_INSN, C_none, 0, I_XSETBV },
-        { "xsave", TOKEN_INSN, C_none, 0, I_XSAVE },
-        { "xsave64", TOKEN_INSN, C_none, 0, I_XSAVE64 },
-        { "xsavec", TOKEN_INSN, C_none, 0, I_XSAVEC },
-        { "xsavec64", TOKEN_INSN, C_none, 0, I_XSAVEC64 },
-        { "xsaveopt", TOKEN_INSN, C_none, 0, I_XSAVEOPT },
-        { "xsaveopt64", TOKEN_INSN, C_none, 0, I_XSAVEOPT64 },
-        { "xsaves", TOKEN_INSN, C_none, 0, I_XSAVES },
-        { "xsaves64", TOKEN_INSN, C_none, 0, I_XSAVES64 },
-        { "xrstor", TOKEN_INSN, C_none, 0, I_XRSTOR },
-        { "xrstor64", TOKEN_INSN, C_none, 0, I_XRSTOR64 },
-        { "xrstors", TOKEN_INSN, C_none, 0, I_XRSTORS },
-        { "xrstors64", TOKEN_INSN, C_none, 0, I_XRSTORS64 },
-        { "prefetchnta", TOKEN_INSN, C_none, 0, I_PREFETCHNTA },
-        { "prefetcht0", TOKEN_INSN, C_none, 0, I_PREFETCHT0 },
-        { "prefetcht1", TOKEN_INSN, C_none, 0, I_PREFETCHT1 },
-        { "prefetcht2", TOKEN_INSN, C_none, 0, I_PREFETCHT2 },
-        { "maskmovq", TOKEN_INSN, C_none, 0, I_MASKMOVQ },
-        { "movntq", TOKEN_INSN, C_none, 0, I_MOVNTQ },
-        { "pavgb", TOKEN_INSN, C_none, 0, I_PAVGB },
-        { "pavgw", TOKEN_INSN, C_none, 0, I_PAVGW },
-        { "pextrw", TOKEN_INSN, C_none, 0, I_PEXTRW },
-        { "pinsrw", TOKEN_INSN, C_none, 0, I_PINSRW },
-        { "pmaxsw", TOKEN_INSN, C_none, 0, I_PMAXSW },
-        { "pmaxub", TOKEN_INSN, C_none, 0, I_PMAXUB },
-        { "pminsw", TOKEN_INSN, C_none, 0, I_PMINSW },
-        { "pminub", TOKEN_INSN, C_none, 0, I_PMINUB },
-        { "pmovmskb", TOKEN_INSN, C_none, 0, I_PMOVMSKB },
-        { "pmulhuw", TOKEN_INSN, C_none, 0, I_PMULHUW },
-        { "psadbw", TOKEN_INSN, C_none, 0, I_PSADBW },
-        { "pshufw", TOKEN_INSN, C_none, 0, I_PSHUFW },
-        { "pf2iw", TOKEN_INSN, C_none, 0, I_PF2IW },
-        { "pfnacc", TOKEN_INSN, C_none, 0, I_PFNACC },
-        { "pfpnacc", TOKEN_INSN, C_none, 0, I_PFPNACC },
-        { "pi2fw", TOKEN_INSN, C_none, 0, I_PI2FW },
-        { "pswapd", TOKEN_INSN, C_none, 0, I_PSWAPD },
-        { "maskmovdqu", TOKEN_INSN, C_none, 0, I_MASKMOVDQU },
-        { "clflush", TOKEN_INSN, C_none, 0, I_CLFLUSH },
-        { "movntdq", TOKEN_INSN, C_none, 0, I_MOVNTDQ },
-        { "movnti", TOKEN_INSN, C_none, 0, I_MOVNTI },
-        { "movntpd", TOKEN_INSN, C_none, 0, I_MOVNTPD },
-        { "movdqa", TOKEN_INSN, C_none, 0, I_MOVDQA },
-        { "movdqu", TOKEN_INSN, C_none, 0, I_MOVDQU },
-        { "movdq2q", TOKEN_INSN, C_none, 0, I_MOVDQ2Q },
-        { "movq2dq", TOKEN_INSN, C_none, 0, I_MOVQ2DQ },
-        { "paddq", TOKEN_INSN, C_none, 0, I_PADDQ },
-        { "pmuludq", TOKEN_INSN, C_none, 0, I_PMULUDQ },
-        { "pshufd", TOKEN_INSN, C_none, 0, I_PSHUFD },
-        { "pshufhw", TOKEN_INSN, C_none, 0, I_PSHUFHW },
-        { "pshuflw", TOKEN_INSN, C_none, 0, I_PSHUFLW },
-        { "pslldq", TOKEN_INSN, C_none, 0, I_PSLLDQ },
-        { "psrldq", TOKEN_INSN, C_none, 0, I_PSRLDQ },
-        { "psubq", TOKEN_INSN, C_none, 0, I_PSUBQ },
-        { "punpckhqdq", TOKEN_INSN, C_none, 0, I_PUNPCKHQDQ },
-        { "punpcklqdq", TOKEN_INSN, C_none, 0, I_PUNPCKLQDQ },
-        { "addpd", TOKEN_INSN, C_none, 0, I_ADDPD },
-        { "addsd", TOKEN_INSN, C_none, 0, I_ADDSD },
-        { "andnpd", TOKEN_INSN, C_none, 0, I_ANDNPD },
-        { "andpd", TOKEN_INSN, C_none, 0, I_ANDPD },
-        { "cmpeqpd", TOKEN_INSN, C_none, 0, I_CMPEQPD },
-        { "cmpeqsd", TOKEN_INSN, C_none, 0, I_CMPEQSD },
-        { "cmplepd", TOKEN_INSN, C_none, 0, I_CMPLEPD },
-        { "cmplesd", TOKEN_INSN, C_none, 0, I_CMPLESD },
-        { "cmpltpd", TOKEN_INSN, C_none, 0, I_CMPLTPD },
-        { "cmpltsd", TOKEN_INSN, C_none, 0, I_CMPLTSD },
-        { "cmpneqpd", TOKEN_INSN, C_none, 0, I_CMPNEQPD },
-        { "cmpneqsd", TOKEN_INSN, C_none, 0, I_CMPNEQSD },
-        { "cmpnlepd", TOKEN_INSN, C_none, 0, I_CMPNLEPD },
-        { "cmpnlesd", TOKEN_INSN, C_none, 0, I_CMPNLESD },
-        { "cmpnltpd", TOKEN_INSN, C_none, 0, I_CMPNLTPD },
-        { "cmpnltsd", TOKEN_INSN, C_none, 0, I_CMPNLTSD },
-        { "cmpordpd", TOKEN_INSN, C_none, 0, I_CMPORDPD },
-        { "cmpordsd", TOKEN_INSN, C_none, 0, I_CMPORDSD },
-        { "cmpunordpd", TOKEN_INSN, C_none, 0, I_CMPUNORDPD },
-        { "cmpunordsd", TOKEN_INSN, C_none, 0, I_CMPUNORDSD },
-        { "cmppd", TOKEN_INSN, C_none, 0, I_CMPPD },
-        { "comisd", TOKEN_INSN, C_none, 0, I_COMISD },
-        { "cvtdq2pd", TOKEN_INSN, C_none, 0, I_CVTDQ2PD },
-        { "cvtdq2ps", TOKEN_INSN, C_none, 0, I_CVTDQ2PS },
-        { "cvtpd2dq", TOKEN_INSN, C_none, 0, I_CVTPD2DQ },
-        { "cvtpd2pi", TOKEN_INSN, C_none, 0, I_CVTPD2PI },
-        { "cvtpd2ps", TOKEN_INSN, C_none, 0, I_CVTPD2PS },
-        { "cvtpi2pd", TOKEN_INSN, C_none, 0, I_CVTPI2PD },
-        { "cvtps2dq", TOKEN_INSN, C_none, 0, I_CVTPS2DQ },
-        { "cvtps2pd", TOKEN_INSN, C_none, 0, I_CVTPS2PD },
-        { "cvtsd2si", TOKEN_INSN, C_none, 0, I_CVTSD2SI },
-        { "cvtsd2ss", TOKEN_INSN, C_none, 0, I_CVTSD2SS },
-        { "cvtsi2sd", TOKEN_INSN, C_none, 0, I_CVTSI2SD },
-        { "cvtss2sd", TOKEN_INSN, C_none, 0, I_CVTSS2SD },
-        { "cvttpd2pi", TOKEN_INSN, C_none, 0, I_CVTTPD2PI },
-        { "cvttpd2dq", TOKEN_INSN, C_none, 0, I_CVTTPD2DQ },
-        { "cvttps2dq", TOKEN_INSN, C_none, 0, I_CVTTPS2DQ },
-        { "cvttsd2si", TOKEN_INSN, C_none, 0, I_CVTTSD2SI },
-        { "divpd", TOKEN_INSN, C_none, 0, I_DIVPD },
-        { "divsd", TOKEN_INSN, C_none, 0, I_DIVSD },
-        { "maxpd", TOKEN_INSN, C_none, 0, I_MAXPD },
-        { "maxsd", TOKEN_INSN, C_none, 0, I_MAXSD },
-        { "minpd", TOKEN_INSN, C_none, 0, I_MINPD },
-        { "minsd", TOKEN_INSN, C_none, 0, I_MINSD },
-        { "movapd", TOKEN_INSN, C_none, 0, I_MOVAPD },
-        { "movhpd", TOKEN_INSN, C_none, 0, I_MOVHPD },
-        { "movlpd", TOKEN_INSN, C_none, 0, I_MOVLPD },
-        { "movmskpd", TOKEN_INSN, C_none, 0, I_MOVMSKPD },
-        { "movupd", TOKEN_INSN, C_none, 0, I_MOVUPD },
-        { "mulpd", TOKEN_INSN, C_none, 0, I_MULPD },
-        { "mulsd", TOKEN_INSN, C_none, 0, I_MULSD },
-        { "orpd", TOKEN_INSN, C_none, 0, I_ORPD },
-        { "shufpd", TOKEN_INSN, C_none, 0, I_SHUFPD },
-        { "sqrtpd", TOKEN_INSN, C_none, 0, I_SQRTPD },
-        { "sqrtsd", TOKEN_INSN, C_none, 0, I_SQRTSD },
-        { "subpd", TOKEN_INSN, C_none, 0, I_SUBPD },
-        { "subsd", TOKEN_INSN, C_none, 0, I_SUBSD },
-        { "ucomisd", TOKEN_INSN, C_none, 0, I_UCOMISD },
-        { "unpckhpd", TOKEN_INSN, C_none, 0, I_UNPCKHPD },
-        { "unpcklpd", TOKEN_INSN, C_none, 0, I_UNPCKLPD },
-        { "xorpd", TOKEN_INSN, C_none, 0, I_XORPD },
-        { "addsubpd", TOKEN_INSN, C_none, 0, I_ADDSUBPD },
-        { "addsubps", TOKEN_INSN, C_none, 0, I_ADDSUBPS },
-        { "haddpd", TOKEN_INSN, C_none, 0, I_HADDPD },
-        { "haddps", TOKEN_INSN, C_none, 0, I_HADDPS },
-        { "hsubpd", TOKEN_INSN, C_none, 0, I_HSUBPD },
-        { "hsubps", TOKEN_INSN, C_none, 0, I_HSUBPS },
-        { "lddqu", TOKEN_INSN, C_none, 0, I_LDDQU },
-        { "movddup", TOKEN_INSN, C_none, 0, I_MOVDDUP },
-        { "movshdup", TOKEN_INSN, C_none, 0, I_MOVSHDUP },
-        { "movsldup", TOKEN_INSN, C_none, 0, I_MOVSLDUP },
-        { "clgi", TOKEN_INSN, C_none, 0, I_CLGI },
-        { "stgi", TOKEN_INSN, C_none, 0, I_STGI },
-        { "vmcall", TOKEN_INSN, C_none, 0, I_VMCALL },
-        { "vmclear", TOKEN_INSN, C_none, 0, I_VMCLEAR },
-        { "vmfunc", TOKEN_INSN, C_none, 0, I_VMFUNC },
-        { "vmlaunch", TOKEN_INSN, C_none, 0, I_VMLAUNCH },
-        { "vmload", TOKEN_INSN, C_none, 0, I_VMLOAD },
-        { "vmmcall", TOKEN_INSN, C_none, 0, I_VMMCALL },
-        { "vmptrld", TOKEN_INSN, C_none, 0, I_VMPTRLD },
-        { "vmptrst", TOKEN_INSN, C_none, 0, I_VMPTRST },
-        { "vmread", TOKEN_INSN, C_none, 0, I_VMREAD },
-        { "vmresume", TOKEN_INSN, C_none, 0, I_VMRESUME },
-        { "vmrun", TOKEN_INSN, C_none, 0, I_VMRUN },
-        { "vmsave", TOKEN_INSN, C_none, 0, I_VMSAVE },
-        { "vmwrite", TOKEN_INSN, C_none, 0, I_VMWRITE },
-        { "vmxoff", TOKEN_INSN, C_none, 0, I_VMXOFF },
-        { "vmxon", TOKEN_INSN, C_none, 0, I_VMXON },
-        { "invept", TOKEN_INSN, C_none, 0, I_INVEPT },
-        { "invvpid", TOKEN_INSN, C_none, 0, I_INVVPID },
-        { "pabsb", TOKEN_INSN, C_none, 0, I_PABSB },
-        { "pabsw", TOKEN_INSN, C_none, 0, I_PABSW },
-        { "pabsd", TOKEN_INSN, C_none, 0, I_PABSD },
-        { "palignr", TOKEN_INSN, C_none, 0, I_PALIGNR },
-        { "phaddw", TOKEN_INSN, C_none, 0, I_PHADDW },
-        { "phaddd", TOKEN_INSN, C_none, 0, I_PHADDD },
-        { "phaddsw", TOKEN_INSN, C_none, 0, I_PHADDSW },
-        { "phsubw", TOKEN_INSN, C_none, 0, I_PHSUBW },
-        { "phsubd", TOKEN_INSN, C_none, 0, I_PHSUBD },
-        { "phsubsw", TOKEN_INSN, C_none, 0, I_PHSUBSW },
-        { "pmaddubsw", TOKEN_INSN, C_none, 0, I_PMADDUBSW },
-        { "pmulhrsw", TOKEN_INSN, C_none, 0, I_PMULHRSW },
-        { "pshufb", TOKEN_INSN, C_none, 0, I_PSHUFB },
-        { "psignb", TOKEN_INSN, C_none, 0, I_PSIGNB },
-        { "psignw", TOKEN_INSN, C_none, 0, I_PSIGNW },
-        { "psignd", TOKEN_INSN, C_none, 0, I_PSIGND },
-        { "extrq", TOKEN_INSN, C_none, 0, I_EXTRQ },
-        { "insertq", TOKEN_INSN, C_none, 0, I_INSERTQ },
-        { "movntsd", TOKEN_INSN, C_none, 0, I_MOVNTSD },
-        { "movntss", TOKEN_INSN, C_none, 0, I_MOVNTSS },
-        { "lzcnt", TOKEN_INSN, C_none, 0, I_LZCNT },
-        { "blendpd", TOKEN_INSN, C_none, 0, I_BLENDPD },
-        { "blendps", TOKEN_INSN, C_none, 0, I_BLENDPS },
-        { "blendvpd", TOKEN_INSN, C_none, 0, I_BLENDVPD },
-        { "blendvps", TOKEN_INSN, C_none, 0, I_BLENDVPS },
-        { "dppd", TOKEN_INSN, C_none, 0, I_DPPD },
-        { "dpps", TOKEN_INSN, C_none, 0, I_DPPS },
-        { "extractps", TOKEN_INSN, C_none, 0, I_EXTRACTPS },
-        { "insertps", TOKEN_INSN, C_none, 0, I_INSERTPS },
-        { "movntdqa", TOKEN_INSN, C_none, 0, I_MOVNTDQA },
-        { "mpsadbw", TOKEN_INSN, C_none, 0, I_MPSADBW },
-        { "packusdw", TOKEN_INSN, C_none, 0, I_PACKUSDW },
-        { "pblendvb", TOKEN_INSN, C_none, 0, I_PBLENDVB },
-        { "pblendw", TOKEN_INSN, C_none, 0, I_PBLENDW },
-        { "pcmpeqq", TOKEN_INSN, C_none, 0, I_PCMPEQQ },
-        { "pextrb", TOKEN_INSN, C_none, 0, I_PEXTRB },
-        { "pextrd", TOKEN_INSN, C_none, 0, I_PEXTRD },
-        { "pextrq", TOKEN_INSN, C_none, 0, I_PEXTRQ },
-        { "phminposuw", TOKEN_INSN, C_none, 0, I_PHMINPOSUW },
-        { "pinsrb", TOKEN_INSN, C_none, 0, I_PINSRB },
-        { "pinsrd", TOKEN_INSN, C_none, 0, I_PINSRD },
-        { "pinsrq", TOKEN_INSN, C_none, 0, I_PINSRQ },
-        { "pmaxsb", TOKEN_INSN, C_none, 0, I_PMAXSB },
-        { "pmaxsd", TOKEN_INSN, C_none, 0, I_PMAXSD },
-        { "pmaxud", TOKEN_INSN, C_none, 0, I_PMAXUD },
-        { "pmaxuw", TOKEN_INSN, C_none, 0, I_PMAXUW },
-        { "pminsb", TOKEN_INSN, C_none, 0, I_PMINSB },
-        { "pminsd", TOKEN_INSN, C_none, 0, I_PMINSD },
-        { "pminud", TOKEN_INSN, C_none, 0, I_PMINUD },
-        { "pminuw", TOKEN_INSN, C_none, 0, I_PMINUW },
-        { "pmovsxbw", TOKEN_INSN, C_none, 0, I_PMOVSXBW },
-        { "pmovsxbd", TOKEN_INSN, C_none, 0, I_PMOVSXBD },
-        { "pmovsxbq", TOKEN_INSN, C_none, 0, I_PMOVSXBQ },
-        { "pmovsxwd", TOKEN_INSN, C_none, 0, I_PMOVSXWD },
-        { "pmovsxwq", TOKEN_INSN, C_none, 0, I_PMOVSXWQ },
-        { "pmovsxdq", TOKEN_INSN, C_none, 0, I_PMOVSXDQ },
-        { "pmovzxbw", TOKEN_INSN, C_none, 0, I_PMOVZXBW },
-        { "pmovzxbd", TOKEN_INSN, C_none, 0, I_PMOVZXBD },
-        { "pmovzxbq", TOKEN_INSN, C_none, 0, I_PMOVZXBQ },
-        { "pmovzxwd", TOKEN_INSN, C_none, 0, I_PMOVZXWD },
-        { "pmovzxwq", TOKEN_INSN, C_none, 0, I_PMOVZXWQ },
-        { "pmovzxdq", TOKEN_INSN, C_none, 0, I_PMOVZXDQ },
-        { "pmuldq", TOKEN_INSN, C_none, 0, I_PMULDQ },
-        { "pmulld", TOKEN_INSN, C_none, 0, I_PMULLD },
-        { "ptest", TOKEN_INSN, C_none, 0, I_PTEST },
-        { "roundpd", TOKEN_INSN, C_none, 0, I_ROUNDPD },
-        { "roundps", TOKEN_INSN, C_none, 0, I_ROUNDPS },
-        { "roundsd", TOKEN_INSN, C_none, 0, I_ROUNDSD },
-        { "roundss", TOKEN_INSN, C_none, 0, I_ROUNDSS },
-        { "crc32", TOKEN_INSN, C_none, 0, I_CRC32 },
-        { "pcmpestri", TOKEN_INSN, C_none, 0, I_PCMPESTRI },
-        { "pcmpestrm", TOKEN_INSN, C_none, 0, I_PCMPESTRM },
-        { "pcmpistri", TOKEN_INSN, C_none, 0, I_PCMPISTRI },
-        { "pcmpistrm", TOKEN_INSN, C_none, 0, I_PCMPISTRM },
-        { "pcmpgtq", TOKEN_INSN, C_none, 0, I_PCMPGTQ },
-        { "popcnt", TOKEN_INSN, C_none, 0, I_POPCNT },
-        { "getsec", TOKEN_INSN, C_none, 0, I_GETSEC },
-        { "pfrcpv", TOKEN_INSN, C_none, 0, I_PFRCPV },
-        { "pfrsqrtv", TOKEN_INSN, C_none, 0, I_PFRSQRTV },
-        { "movbe", TOKEN_INSN, C_none, 0, I_MOVBE },
-        { "aesenc", TOKEN_INSN, C_none, 0, I_AESENC },
-        { "aesenclast", TOKEN_INSN, C_none, 0, I_AESENCLAST },
-        { "aesdec", TOKEN_INSN, C_none, 0, I_AESDEC },
-        { "aesdeclast", TOKEN_INSN, C_none, 0, I_AESDECLAST },
-        { "aesimc", TOKEN_INSN, C_none, 0, I_AESIMC },
-        { "aeskeygenassist", TOKEN_INSN, C_none, 0, I_AESKEYGENASSIST },
-        { "vaesenc", TOKEN_INSN, C_none, 0, I_VAESENC },
-        { "vaesenclast", TOKEN_INSN, C_none, 0, I_VAESENCLAST },
-        { "vaesdec", TOKEN_INSN, C_none, 0, I_VAESDEC },
-        { "vaesdeclast", TOKEN_INSN, C_none, 0, I_VAESDECLAST },
-        { "vaesimc", TOKEN_INSN, C_none, 0, I_VAESIMC },
-        { "vaeskeygenassist", TOKEN_INSN, C_none, 0, I_VAESKEYGENASSIST },
-        { "vaddpd", TOKEN_INSN, C_none, 0, I_VADDPD },
-        { "vaddps", TOKEN_INSN, C_none, 0, I_VADDPS },
-        { "vaddsd", TOKEN_INSN, C_none, 0, I_VADDSD },
-        { "vaddss", TOKEN_INSN, C_none, 0, I_VADDSS },
-        { "vaddsubpd", TOKEN_INSN, C_none, 0, I_VADDSUBPD },
-        { "vaddsubps", TOKEN_INSN, C_none, 0, I_VADDSUBPS },
-        { "vandpd", TOKEN_INSN, C_none, 0, I_VANDPD },
-        { "vandps", TOKEN_INSN, C_none, 0, I_VANDPS },
-        { "vandnpd", TOKEN_INSN, C_none, 0, I_VANDNPD },
-        { "vandnps", TOKEN_INSN, C_none, 0, I_VANDNPS },
-        { "vblendpd", TOKEN_INSN, C_none, 0, I_VBLENDPD },
-        { "vblendps", TOKEN_INSN, C_none, 0, I_VBLENDPS },
-        { "vblendvpd", TOKEN_INSN, C_none, 0, I_VBLENDVPD },
-        { "vblendvps", TOKEN_INSN, C_none, 0, I_VBLENDVPS },
-        { "vbroadcastss", TOKEN_INSN, C_none, 0, I_VBROADCASTSS },
-        { "vbroadcastsd", TOKEN_INSN, C_none, 0, I_VBROADCASTSD },
-        { "vbroadcastf128", TOKEN_INSN, C_none, 0, I_VBROADCASTF128 },
-        { "vcmpeq_ospd", TOKEN_INSN, C_none, 0, I_VCMPEQ_OSPD },
-        { "vcmpeqpd", TOKEN_INSN, C_none, 0, I_VCMPEQPD },
-        { "vcmplt_ospd", TOKEN_INSN, C_none, 0, I_VCMPLT_OSPD },
-        { "vcmpltpd", TOKEN_INSN, C_none, 0, I_VCMPLTPD },
-        { "vcmple_ospd", TOKEN_INSN, C_none, 0, I_VCMPLE_OSPD },
-        { "vcmplepd", TOKEN_INSN, C_none, 0, I_VCMPLEPD },
-        { "vcmpunord_qpd", TOKEN_INSN, C_none, 0, I_VCMPUNORD_QPD },
-        { "vcmpunordpd", TOKEN_INSN, C_none, 0, I_VCMPUNORDPD },
-        { "vcmpneq_uqpd", TOKEN_INSN, C_none, 0, I_VCMPNEQ_UQPD },
-        { "vcmpneqpd", TOKEN_INSN, C_none, 0, I_VCMPNEQPD },
-        { "vcmpnlt_uspd", TOKEN_INSN, C_none, 0, I_VCMPNLT_USPD },
-        { "vcmpnltpd", TOKEN_INSN, C_none, 0, I_VCMPNLTPD },
-        { "vcmpnle_uspd", TOKEN_INSN, C_none, 0, I_VCMPNLE_USPD },
-        { "vcmpnlepd", TOKEN_INSN, C_none, 0, I_VCMPNLEPD },
-        { "vcmpord_qpd", TOKEN_INSN, C_none, 0, I_VCMPORD_QPD },
-        { "vcmpordpd", TOKEN_INSN, C_none, 0, I_VCMPORDPD },
-        { "vcmpeq_uqpd", TOKEN_INSN, C_none, 0, I_VCMPEQ_UQPD },
-        { "vcmpnge_uspd", TOKEN_INSN, C_none, 0, I_VCMPNGE_USPD },
-        { "vcmpngepd", TOKEN_INSN, C_none, 0, I_VCMPNGEPD },
-        { "vcmpngt_uspd", TOKEN_INSN, C_none, 0, I_VCMPNGT_USPD },
-        { "vcmpngtpd", TOKEN_INSN, C_none, 0, I_VCMPNGTPD },
-        { "vcmpfalse_oqpd", TOKEN_INSN, C_none, 0, I_VCMPFALSE_OQPD },
-        { "vcmpfalsepd", TOKEN_INSN, C_none, 0, I_VCMPFALSEPD },
-        { "vcmpneq_oqpd", TOKEN_INSN, C_none, 0, I_VCMPNEQ_OQPD },
-        { "vcmpge_ospd", TOKEN_INSN, C_none, 0, I_VCMPGE_OSPD },
-        { "vcmpgepd", TOKEN_INSN, C_none, 0, I_VCMPGEPD },
-        { "vcmpgt_ospd", TOKEN_INSN, C_none, 0, I_VCMPGT_OSPD },
-        { "vcmpgtpd", TOKEN_INSN, C_none, 0, I_VCMPGTPD },
-        { "vcmptrue_uqpd", TOKEN_INSN, C_none, 0, I_VCMPTRUE_UQPD },
-        { "vcmptruepd", TOKEN_INSN, C_none, 0, I_VCMPTRUEPD },
-        { "vcmplt_oqpd", TOKEN_INSN, C_none, 0, I_VCMPLT_OQPD },
-        { "vcmple_oqpd", TOKEN_INSN, C_none, 0, I_VCMPLE_OQPD },
-        { "vcmpunord_spd", TOKEN_INSN, C_none, 0, I_VCMPUNORD_SPD },
-        { "vcmpneq_uspd", TOKEN_INSN, C_none, 0, I_VCMPNEQ_USPD },
-        { "vcmpnlt_uqpd", TOKEN_INSN, C_none, 0, I_VCMPNLT_UQPD },
-        { "vcmpnle_uqpd", TOKEN_INSN, C_none, 0, I_VCMPNLE_UQPD },
-        { "vcmpord_spd", TOKEN_INSN, C_none, 0, I_VCMPORD_SPD },
-        { "vcmpeq_uspd", TOKEN_INSN, C_none, 0, I_VCMPEQ_USPD },
-        { "vcmpnge_uqpd", TOKEN_INSN, C_none, 0, I_VCMPNGE_UQPD },
-        { "vcmpngt_uqpd", TOKEN_INSN, C_none, 0, I_VCMPNGT_UQPD },
-        { "vcmpfalse_ospd", TOKEN_INSN, C_none, 0, I_VCMPFALSE_OSPD },
-        { "vcmpneq_ospd", TOKEN_INSN, C_none, 0, I_VCMPNEQ_OSPD },
-        { "vcmpge_oqpd", TOKEN_INSN, C_none, 0, I_VCMPGE_OQPD },
-        { "vcmpgt_oqpd", TOKEN_INSN, C_none, 0, I_VCMPGT_OQPD },
-        { "vcmptrue_uspd", TOKEN_INSN, C_none, 0, I_VCMPTRUE_USPD },
-        { "vcmppd", TOKEN_INSN, C_none, 0, I_VCMPPD },
-        { "vcmpeq_osps", TOKEN_INSN, C_none, 0, I_VCMPEQ_OSPS },
-        { "vcmpeqps", TOKEN_INSN, C_none, 0, I_VCMPEQPS },
-        { "vcmplt_osps", TOKEN_INSN, C_none, 0, I_VCMPLT_OSPS },
-        { "vcmpltps", TOKEN_INSN, C_none, 0, I_VCMPLTPS },
-        { "vcmple_osps", TOKEN_INSN, C_none, 0, I_VCMPLE_OSPS },
-        { "vcmpleps", TOKEN_INSN, C_none, 0, I_VCMPLEPS },
-        { "vcmpunord_qps", TOKEN_INSN, C_none, 0, I_VCMPUNORD_QPS },
-        { "vcmpunordps", TOKEN_INSN, C_none, 0, I_VCMPUNORDPS },
-        { "vcmpneq_uqps", TOKEN_INSN, C_none, 0, I_VCMPNEQ_UQPS },
-        { "vcmpneqps", TOKEN_INSN, C_none, 0, I_VCMPNEQPS },
-        { "vcmpnlt_usps", TOKEN_INSN, C_none, 0, I_VCMPNLT_USPS },
-        { "vcmpnltps", TOKEN_INSN, C_none, 0, I_VCMPNLTPS },
-        { "vcmpnle_usps", TOKEN_INSN, C_none, 0, I_VCMPNLE_USPS },
-        { "vcmpnleps", TOKEN_INSN, C_none, 0, I_VCMPNLEPS },
-        { "vcmpord_qps", TOKEN_INSN, C_none, 0, I_VCMPORD_QPS },
-        { "vcmpordps", TOKEN_INSN, C_none, 0, I_VCMPORDPS },
-        { "vcmpeq_uqps", TOKEN_INSN, C_none, 0, I_VCMPEQ_UQPS },
-        { "vcmpnge_usps", TOKEN_INSN, C_none, 0, I_VCMPNGE_USPS },
-        { "vcmpngeps", TOKEN_INSN, C_none, 0, I_VCMPNGEPS },
-        { "vcmpngt_usps", TOKEN_INSN, C_none, 0, I_VCMPNGT_USPS },
-        { "vcmpngtps", TOKEN_INSN, C_none, 0, I_VCMPNGTPS },
-        { "vcmpfalse_oqps", TOKEN_INSN, C_none, 0, I_VCMPFALSE_OQPS },
-        { "vcmpfalseps", TOKEN_INSN, C_none, 0, I_VCMPFALSEPS },
-        { "vcmpneq_oqps", TOKEN_INSN, C_none, 0, I_VCMPNEQ_OQPS },
-        { "vcmpge_osps", TOKEN_INSN, C_none, 0, I_VCMPGE_OSPS },
-        { "vcmpgeps", TOKEN_INSN, C_none, 0, I_VCMPGEPS },
-        { "vcmpgt_osps", TOKEN_INSN, C_none, 0, I_VCMPGT_OSPS },
-        { "vcmpgtps", TOKEN_INSN, C_none, 0, I_VCMPGTPS },
-        { "vcmptrue_uqps", TOKEN_INSN, C_none, 0, I_VCMPTRUE_UQPS },
-        { "vcmptrueps", TOKEN_INSN, C_none, 0, I_VCMPTRUEPS },
-        { "vcmplt_oqps", TOKEN_INSN, C_none, 0, I_VCMPLT_OQPS },
-        { "vcmple_oqps", TOKEN_INSN, C_none, 0, I_VCMPLE_OQPS },
-        { "vcmpunord_sps", TOKEN_INSN, C_none, 0, I_VCMPUNORD_SPS },
-        { "vcmpneq_usps", TOKEN_INSN, C_none, 0, I_VCMPNEQ_USPS },
-        { "vcmpnlt_uqps", TOKEN_INSN, C_none, 0, I_VCMPNLT_UQPS },
-        { "vcmpnle_uqps", TOKEN_INSN, C_none, 0, I_VCMPNLE_UQPS },
-        { "vcmpord_sps", TOKEN_INSN, C_none, 0, I_VCMPORD_SPS },
-        { "vcmpeq_usps", TOKEN_INSN, C_none, 0, I_VCMPEQ_USPS },
-        { "vcmpnge_uqps", TOKEN_INSN, C_none, 0, I_VCMPNGE_UQPS },
-        { "vcmpngt_uqps", TOKEN_INSN, C_none, 0, I_VCMPNGT_UQPS },
-        { "vcmpfalse_osps", TOKEN_INSN, C_none, 0, I_VCMPFALSE_OSPS },
-        { "vcmpneq_osps", TOKEN_INSN, C_none, 0, I_VCMPNEQ_OSPS },
-        { "vcmpge_oqps", TOKEN_INSN, C_none, 0, I_VCMPGE_OQPS },
-        { "vcmpgt_oqps", TOKEN_INSN, C_none, 0, I_VCMPGT_OQPS },
-        { "vcmptrue_usps", TOKEN_INSN, C_none, 0, I_VCMPTRUE_USPS },
-        { "vcmpps", TOKEN_INSN, C_none, 0, I_VCMPPS },
-        { "vcmpeq_ossd", TOKEN_INSN, C_none, 0, I_VCMPEQ_OSSD },
-        { "vcmpeqsd", TOKEN_INSN, C_none, 0, I_VCMPEQSD },
-        { "vcmplt_ossd", TOKEN_INSN, C_none, 0, I_VCMPLT_OSSD },
-        { "vcmpltsd", TOKEN_INSN, C_none, 0, I_VCMPLTSD },
-        { "vcmple_ossd", TOKEN_INSN, C_none, 0, I_VCMPLE_OSSD },
-        { "vcmplesd", TOKEN_INSN, C_none, 0, I_VCMPLESD },
-        { "vcmpunord_qsd", TOKEN_INSN, C_none, 0, I_VCMPUNORD_QSD },
-        { "vcmpunordsd", TOKEN_INSN, C_none, 0, I_VCMPUNORDSD },
-        { "vcmpneq_uqsd", TOKEN_INSN, C_none, 0, I_VCMPNEQ_UQSD },
-        { "vcmpneqsd", TOKEN_INSN, C_none, 0, I_VCMPNEQSD },
-        { "vcmpnlt_ussd", TOKEN_INSN, C_none, 0, I_VCMPNLT_USSD },
-        { "vcmpnltsd", TOKEN_INSN, C_none, 0, I_VCMPNLTSD },
-        { "vcmpnle_ussd", TOKEN_INSN, C_none, 0, I_VCMPNLE_USSD },
-        { "vcmpnlesd", TOKEN_INSN, C_none, 0, I_VCMPNLESD },
-        { "vcmpord_qsd", TOKEN_INSN, C_none, 0, I_VCMPORD_QSD },
-        { "vcmpordsd", TOKEN_INSN, C_none, 0, I_VCMPORDSD },
-        { "vcmpeq_uqsd", TOKEN_INSN, C_none, 0, I_VCMPEQ_UQSD },
-        { "vcmpnge_ussd", TOKEN_INSN, C_none, 0, I_VCMPNGE_USSD },
-        { "vcmpngesd", TOKEN_INSN, C_none, 0, I_VCMPNGESD },
-        { "vcmpngt_ussd", TOKEN_INSN, C_none, 0, I_VCMPNGT_USSD },
-        { "vcmpngtsd", TOKEN_INSN, C_none, 0, I_VCMPNGTSD },
-        { "vcmpfalse_oqsd", TOKEN_INSN, C_none, 0, I_VCMPFALSE_OQSD },
-        { "vcmpfalsesd", TOKEN_INSN, C_none, 0, I_VCMPFALSESD },
-        { "vcmpneq_oqsd", TOKEN_INSN, C_none, 0, I_VCMPNEQ_OQSD },
-        { "vcmpge_ossd", TOKEN_INSN, C_none, 0, I_VCMPGE_OSSD },
-        { "vcmpgesd", TOKEN_INSN, C_none, 0, I_VCMPGESD },
-        { "vcmpgt_ossd", TOKEN_INSN, C_none, 0, I_VCMPGT_OSSD },
-        { "vcmpgtsd", TOKEN_INSN, C_none, 0, I_VCMPGTSD },
-        { "vcmptrue_uqsd", TOKEN_INSN, C_none, 0, I_VCMPTRUE_UQSD },
-        { "vcmptruesd", TOKEN_INSN, C_none, 0, I_VCMPTRUESD },
-        { "vcmplt_oqsd", TOKEN_INSN, C_none, 0, I_VCMPLT_OQSD },
-        { "vcmple_oqsd", TOKEN_INSN, C_none, 0, I_VCMPLE_OQSD },
-        { "vcmpunord_ssd", TOKEN_INSN, C_none, 0, I_VCMPUNORD_SSD },
-        { "vcmpneq_ussd", TOKEN_INSN, C_none, 0, I_VCMPNEQ_USSD },
-        { "vcmpnlt_uqsd", TOKEN_INSN, C_none, 0, I_VCMPNLT_UQSD },
-        { "vcmpnle_uqsd", TOKEN_INSN, C_none, 0, I_VCMPNLE_UQSD },
-        { "vcmpord_ssd", TOKEN_INSN, C_none, 0, I_VCMPORD_SSD },
-        { "vcmpeq_ussd", TOKEN_INSN, C_none, 0, I_VCMPEQ_USSD },
-        { "vcmpnge_uqsd", TOKEN_INSN, C_none, 0, I_VCMPNGE_UQSD },
-        { "vcmpngt_uqsd", TOKEN_INSN, C_none, 0, I_VCMPNGT_UQSD },
-        { "vcmpfalse_ossd", TOKEN_INSN, C_none, 0, I_VCMPFALSE_OSSD },
-        { "vcmpneq_ossd", TOKEN_INSN, C_none, 0, I_VCMPNEQ_OSSD },
-        { "vcmpge_oqsd", TOKEN_INSN, C_none, 0, I_VCMPGE_OQSD },
-        { "vcmpgt_oqsd", TOKEN_INSN, C_none, 0, I_VCMPGT_OQSD },
-        { "vcmptrue_ussd", TOKEN_INSN, C_none, 0, I_VCMPTRUE_USSD },
-        { "vcmpsd", TOKEN_INSN, C_none, 0, I_VCMPSD },
-        { "vcmpeq_osss", TOKEN_INSN, C_none, 0, I_VCMPEQ_OSSS },
-        { "vcmpeqss", TOKEN_INSN, C_none, 0, I_VCMPEQSS },
-        { "vcmplt_osss", TOKEN_INSN, C_none, 0, I_VCMPLT_OSSS },
-        { "vcmpltss", TOKEN_INSN, C_none, 0, I_VCMPLTSS },
-        { "vcmple_osss", TOKEN_INSN, C_none, 0, I_VCMPLE_OSSS },
-        { "vcmpless", TOKEN_INSN, C_none, 0, I_VCMPLESS },
-        { "vcmpunord_qss", TOKEN_INSN, C_none, 0, I_VCMPUNORD_QSS },
-        { "vcmpunordss", TOKEN_INSN, C_none, 0, I_VCMPUNORDSS },
-        { "vcmpneq_uqss", TOKEN_INSN, C_none, 0, I_VCMPNEQ_UQSS },
-        { "vcmpneqss", TOKEN_INSN, C_none, 0, I_VCMPNEQSS },
-        { "vcmpnlt_usss", TOKEN_INSN, C_none, 0, I_VCMPNLT_USSS },
-        { "vcmpnltss", TOKEN_INSN, C_none, 0, I_VCMPNLTSS },
-        { "vcmpnle_usss", TOKEN_INSN, C_none, 0, I_VCMPNLE_USSS },
-        { "vcmpnless", TOKEN_INSN, C_none, 0, I_VCMPNLESS },
-        { "vcmpord_qss", TOKEN_INSN, C_none, 0, I_VCMPORD_QSS },
-        { "vcmpordss", TOKEN_INSN, C_none, 0, I_VCMPORDSS },
-        { "vcmpeq_uqss", TOKEN_INSN, C_none, 0, I_VCMPEQ_UQSS },
-        { "vcmpnge_usss", TOKEN_INSN, C_none, 0, I_VCMPNGE_USSS },
-        { "vcmpngess", TOKEN_INSN, C_none, 0, I_VCMPNGESS },
-        { "vcmpngt_usss", TOKEN_INSN, C_none, 0, I_VCMPNGT_USSS },
-        { "vcmpngtss", TOKEN_INSN, C_none, 0, I_VCMPNGTSS },
-        { "vcmpfalse_oqss", TOKEN_INSN, C_none, 0, I_VCMPFALSE_OQSS },
-        { "vcmpfalsess", TOKEN_INSN, C_none, 0, I_VCMPFALSESS },
-        { "vcmpneq_oqss", TOKEN_INSN, C_none, 0, I_VCMPNEQ_OQSS },
-        { "vcmpge_osss", TOKEN_INSN, C_none, 0, I_VCMPGE_OSSS },
-        { "vcmpgess", TOKEN_INSN, C_none, 0, I_VCMPGESS },
-        { "vcmpgt_osss", TOKEN_INSN, C_none, 0, I_VCMPGT_OSSS },
-        { "vcmpgtss", TOKEN_INSN, C_none, 0, I_VCMPGTSS },
-        { "vcmptrue_uqss", TOKEN_INSN, C_none, 0, I_VCMPTRUE_UQSS },
-        { "vcmptruess", TOKEN_INSN, C_none, 0, I_VCMPTRUESS },
-        { "vcmplt_oqss", TOKEN_INSN, C_none, 0, I_VCMPLT_OQSS },
-        { "vcmple_oqss", TOKEN_INSN, C_none, 0, I_VCMPLE_OQSS },
-        { "vcmpunord_sss", TOKEN_INSN, C_none, 0, I_VCMPUNORD_SSS },
-        { "vcmpneq_usss", TOKEN_INSN, C_none, 0, I_VCMPNEQ_USSS },
-        { "vcmpnlt_uqss", TOKEN_INSN, C_none, 0, I_VCMPNLT_UQSS },
-        { "vcmpnle_uqss", TOKEN_INSN, C_none, 0, I_VCMPNLE_UQSS },
-        { "vcmpord_sss", TOKEN_INSN, C_none, 0, I_VCMPORD_SSS },
-        { "vcmpeq_usss", TOKEN_INSN, C_none, 0, I_VCMPEQ_USSS },
-        { "vcmpnge_uqss", TOKEN_INSN, C_none, 0, I_VCMPNGE_UQSS },
-        { "vcmpngt_uqss", TOKEN_INSN, C_none, 0, I_VCMPNGT_UQSS },
-        { "vcmpfalse_osss", TOKEN_INSN, C_none, 0, I_VCMPFALSE_OSSS },
-        { "vcmpneq_osss", TOKEN_INSN, C_none, 0, I_VCMPNEQ_OSSS },
-        { "vcmpge_oqss", TOKEN_INSN, C_none, 0, I_VCMPGE_OQSS },
-        { "vcmpgt_oqss", TOKEN_INSN, C_none, 0, I_VCMPGT_OQSS },
-        { "vcmptrue_usss", TOKEN_INSN, C_none, 0, I_VCMPTRUE_USSS },
-        { "vcmpss", TOKEN_INSN, C_none, 0, I_VCMPSS },
-        { "vcomisd", TOKEN_INSN, C_none, 0, I_VCOMISD },
-        { "vcomiss", TOKEN_INSN, C_none, 0, I_VCOMISS },
-        { "vcvtdq2pd", TOKEN_INSN, C_none, 0, I_VCVTDQ2PD },
-        { "vcvtdq2ps", TOKEN_INSN, C_none, 0, I_VCVTDQ2PS },
-        { "vcvtpd2dq", TOKEN_INSN, C_none, 0, I_VCVTPD2DQ },
-        { "vcvtpd2ps", TOKEN_INSN, C_none, 0, I_VCVTPD2PS },
-        { "vcvtps2dq", TOKEN_INSN, C_none, 0, I_VCVTPS2DQ },
-        { "vcvtps2pd", TOKEN_INSN, C_none, 0, I_VCVTPS2PD },
-        { "vcvtsd2si", TOKEN_INSN, C_none, 0, I_VCVTSD2SI },
-        { "vcvtsd2ss", TOKEN_INSN, C_none, 0, I_VCVTSD2SS },
-        { "vcvtsi2sd", TOKEN_INSN, C_none, 0, I_VCVTSI2SD },
-        { "vcvtsi2ss", TOKEN_INSN, C_none, 0, I_VCVTSI2SS },
-        { "vcvtss2sd", TOKEN_INSN, C_none, 0, I_VCVTSS2SD },
-        { "vcvtss2si", TOKEN_INSN, C_none, 0, I_VCVTSS2SI },
-        { "vcvttpd2dq", TOKEN_INSN, C_none, 0, I_VCVTTPD2DQ },
-        { "vcvttps2dq", TOKEN_INSN, C_none, 0, I_VCVTTPS2DQ },
-        { "vcvttsd2si", TOKEN_INSN, C_none, 0, I_VCVTTSD2SI },
-        { "vcvttss2si", TOKEN_INSN, C_none, 0, I_VCVTTSS2SI },
-        { "vdivpd", TOKEN_INSN, C_none, 0, I_VDIVPD },
-        { "vdivps", TOKEN_INSN, C_none, 0, I_VDIVPS },
-        { "vdivsd", TOKEN_INSN, C_none, 0, I_VDIVSD },
-        { "vdivss", TOKEN_INSN, C_none, 0, I_VDIVSS },
-        { "vdppd", TOKEN_INSN, C_none, 0, I_VDPPD },
-        { "vdpps", TOKEN_INSN, C_none, 0, I_VDPPS },
-        { "vextractf128", TOKEN_INSN, C_none, 0, I_VEXTRACTF128 },
-        { "vextractps", TOKEN_INSN, C_none, 0, I_VEXTRACTPS },
-        { "vhaddpd", TOKEN_INSN, C_none, 0, I_VHADDPD },
-        { "vhaddps", TOKEN_INSN, C_none, 0, I_VHADDPS },
-        { "vhsubpd", TOKEN_INSN, C_none, 0, I_VHSUBPD },
-        { "vhsubps", TOKEN_INSN, C_none, 0, I_VHSUBPS },
-        { "vinsertf128", TOKEN_INSN, C_none, 0, I_VINSERTF128 },
-        { "vinsertps", TOKEN_INSN, C_none, 0, I_VINSERTPS },
-        { "vlddqu", TOKEN_INSN, C_none, 0, I_VLDDQU },
-        { "vldqqu", TOKEN_INSN, C_none, 0, I_VLDQQU },
-        { "vldmxcsr", TOKEN_INSN, C_none, 0, I_VLDMXCSR },
-        { "vmaskmovdqu", TOKEN_INSN, C_none, 0, I_VMASKMOVDQU },
-        { "vmaskmovps", TOKEN_INSN, C_none, 0, I_VMASKMOVPS },
-        { "vmaskmovpd", TOKEN_INSN, C_none, 0, I_VMASKMOVPD },
-        { "vmaxpd", TOKEN_INSN, C_none, 0, I_VMAXPD },
-        { "vmaxps", TOKEN_INSN, C_none, 0, I_VMAXPS },
-        { "vmaxsd", TOKEN_INSN, C_none, 0, I_VMAXSD },
-        { "vmaxss", TOKEN_INSN, C_none, 0, I_VMAXSS },
-        { "vminpd", TOKEN_INSN, C_none, 0, I_VMINPD },
-        { "vminps", TOKEN_INSN, C_none, 0, I_VMINPS },
-        { "vminsd", TOKEN_INSN, C_none, 0, I_VMINSD },
-        { "vminss", TOKEN_INSN, C_none, 0, I_VMINSS },
-        { "vmovapd", TOKEN_INSN, C_none, 0, I_VMOVAPD },
-        { "vmovaps", TOKEN_INSN, C_none, 0, I_VMOVAPS },
-        { "vmovd", TOKEN_INSN, C_none, 0, I_VMOVD },
-        { "vmovq", TOKEN_INSN, C_none, 0, I_VMOVQ },
-        { "vmovddup", TOKEN_INSN, C_none, 0, I_VMOVDDUP },
-        { "vmovdqa", TOKEN_INSN, C_none, 0, I_VMOVDQA },
-        { "vmovqqa", TOKEN_INSN, C_none, 0, I_VMOVQQA },
-        { "vmovdqu", TOKEN_INSN, C_none, 0, I_VMOVDQU },
-        { "vmovqqu", TOKEN_INSN, C_none, 0, I_VMOVQQU },
-        { "vmovhlps", TOKEN_INSN, C_none, 0, I_VMOVHLPS },
-        { "vmovhpd", TOKEN_INSN, C_none, 0, I_VMOVHPD },
-        { "vmovhps", TOKEN_INSN, C_none, 0, I_VMOVHPS },
-        { "vmovlhps", TOKEN_INSN, C_none, 0, I_VMOVLHPS },
-        { "vmovlpd", TOKEN_INSN, C_none, 0, I_VMOVLPD },
-        { "vmovlps", TOKEN_INSN, C_none, 0, I_VMOVLPS },
-        { "vmovmskpd", TOKEN_INSN, C_none, 0, I_VMOVMSKPD },
-        { "vmovmskps", TOKEN_INSN, C_none, 0, I_VMOVMSKPS },
-        { "vmovntdq", TOKEN_INSN, C_none, 0, I_VMOVNTDQ },
-        { "vmovntqq", TOKEN_INSN, C_none, 0, I_VMOVNTQQ },
-        { "vmovntdqa", TOKEN_INSN, C_none, 0, I_VMOVNTDQA },
-        { "vmovntpd", TOKEN_INSN, C_none, 0, I_VMOVNTPD },
-        { "vmovntps", TOKEN_INSN, C_none, 0, I_VMOVNTPS },
-        { "vmovsd", TOKEN_INSN, C_none, 0, I_VMOVSD },
-        { "vmovshdup", TOKEN_INSN, C_none, 0, I_VMOVSHDUP },
-        { "vmovsldup", TOKEN_INSN, C_none, 0, I_VMOVSLDUP },
-        { "vmovss", TOKEN_INSN, C_none, 0, I_VMOVSS },
-        { "vmovupd", TOKEN_INSN, C_none, 0, I_VMOVUPD },
-        { "vmovups", TOKEN_INSN, C_none, 0, I_VMOVUPS },
-        { "vmpsadbw", TOKEN_INSN, C_none, 0, I_VMPSADBW },
-        { "vmulpd", TOKEN_INSN, C_none, 0, I_VMULPD },
-        { "vmulps", TOKEN_INSN, C_none, 0, I_VMULPS },
-        { "vmulsd", TOKEN_INSN, C_none, 0, I_VMULSD },
-        { "vmulss", TOKEN_INSN, C_none, 0, I_VMULSS },
-        { "vorpd", TOKEN_INSN, C_none, 0, I_VORPD },
-        { "vorps", TOKEN_INSN, C_none, 0, I_VORPS },
-        { "vpabsb", TOKEN_INSN, C_none, 0, I_VPABSB },
-        { "vpabsw", TOKEN_INSN, C_none, 0, I_VPABSW },
-        { "vpabsd", TOKEN_INSN, C_none, 0, I_VPABSD },
-        { "vpacksswb", TOKEN_INSN, C_none, 0, I_VPACKSSWB },
-        { "vpackssdw", TOKEN_INSN, C_none, 0, I_VPACKSSDW },
-        { "vpackuswb", TOKEN_INSN, C_none, 0, I_VPACKUSWB },
-        { "vpackusdw", TOKEN_INSN, C_none, 0, I_VPACKUSDW },
-        { "vpaddb", TOKEN_INSN, C_none, 0, I_VPADDB },
-        { "vpaddw", TOKEN_INSN, C_none, 0, I_VPADDW },
-        { "vpaddd", TOKEN_INSN, C_none, 0, I_VPADDD },
-        { "vpaddq", TOKEN_INSN, C_none, 0, I_VPADDQ },
-        { "vpaddsb", TOKEN_INSN, C_none, 0, I_VPADDSB },
-        { "vpaddsw", TOKEN_INSN, C_none, 0, I_VPADDSW },
-        { "vpaddusb", TOKEN_INSN, C_none, 0, I_VPADDUSB },
-        { "vpaddusw", TOKEN_INSN, C_none, 0, I_VPADDUSW },
-        { "vpalignr", TOKEN_INSN, C_none, 0, I_VPALIGNR },
-        { "vpand", TOKEN_INSN, C_none, 0, I_VPAND },
-        { "vpandn", TOKEN_INSN, C_none, 0, I_VPANDN },
-        { "vpavgb", TOKEN_INSN, C_none, 0, I_VPAVGB },
-        { "vpavgw", TOKEN_INSN, C_none, 0, I_VPAVGW },
-        { "vpblendvb", TOKEN_INSN, C_none, 0, I_VPBLENDVB },
-        { "vpblendw", TOKEN_INSN, C_none, 0, I_VPBLENDW },
-        { "vpcmpestri", TOKEN_INSN, C_none, 0, I_VPCMPESTRI },
-        { "vpcmpestrm", TOKEN_INSN, C_none, 0, I_VPCMPESTRM },
-        { "vpcmpistri", TOKEN_INSN, C_none, 0, I_VPCMPISTRI },
-        { "vpcmpistrm", TOKEN_INSN, C_none, 0, I_VPCMPISTRM },
-        { "vpcmpeqb", TOKEN_INSN, C_none, 0, I_VPCMPEQB },
-        { "vpcmpeqw", TOKEN_INSN, C_none, 0, I_VPCMPEQW },
-        { "vpcmpeqd", TOKEN_INSN, C_none, 0, I_VPCMPEQD },
-        { "vpcmpeqq", TOKEN_INSN, C_none, 0, I_VPCMPEQQ },
-        { "vpcmpgtb", TOKEN_INSN, C_none, 0, I_VPCMPGTB },
-        { "vpcmpgtw", TOKEN_INSN, C_none, 0, I_VPCMPGTW },
-        { "vpcmpgtd", TOKEN_INSN, C_none, 0, I_VPCMPGTD },
-        { "vpcmpgtq", TOKEN_INSN, C_none, 0, I_VPCMPGTQ },
-        { "vpermilpd", TOKEN_INSN, C_none, 0, I_VPERMILPD },
-        { "vpermilps", TOKEN_INSN, C_none, 0, I_VPERMILPS },
-        { "vperm2f128", TOKEN_INSN, C_none, 0, I_VPERM2F128 },
-        { "vpextrb", TOKEN_INSN, C_none, 0, I_VPEXTRB },
-        { "vpextrw", TOKEN_INSN, C_none, 0, I_VPEXTRW },
-        { "vpextrd", TOKEN_INSN, C_none, 0, I_VPEXTRD },
-        { "vpextrq", TOKEN_INSN, C_none, 0, I_VPEXTRQ },
-        { "vphaddw", TOKEN_INSN, C_none, 0, I_VPHADDW },
-        { "vphaddd", TOKEN_INSN, C_none, 0, I_VPHADDD },
-        { "vphaddsw", TOKEN_INSN, C_none, 0, I_VPHADDSW },
-        { "vphminposuw", TOKEN_INSN, C_none, 0, I_VPHMINPOSUW },
-        { "vphsubw", TOKEN_INSN, C_none, 0, I_VPHSUBW },
-        { "vphsubd", TOKEN_INSN, C_none, 0, I_VPHSUBD },
-        { "vphsubsw", TOKEN_INSN, C_none, 0, I_VPHSUBSW },
-        { "vpinsrb", TOKEN_INSN, C_none, 0, I_VPINSRB },
-        { "vpinsrw", TOKEN_INSN, C_none, 0, I_VPINSRW },
-        { "vpinsrd", TOKEN_INSN, C_none, 0, I_VPINSRD },
-        { "vpinsrq", TOKEN_INSN, C_none, 0, I_VPINSRQ },
-        { "vpmaddwd", TOKEN_INSN, C_none, 0, I_VPMADDWD },
-        { "vpmaddubsw", TOKEN_INSN, C_none, 0, I_VPMADDUBSW },
-        { "vpmaxsb", TOKEN_INSN, C_none, 0, I_VPMAXSB },
-        { "vpmaxsw", TOKEN_INSN, C_none, 0, I_VPMAXSW },
-        { "vpmaxsd", TOKEN_INSN, C_none, 0, I_VPMAXSD },
-        { "vpmaxub", TOKEN_INSN, C_none, 0, I_VPMAXUB },
-        { "vpmaxuw", TOKEN_INSN, C_none, 0, I_VPMAXUW },
-        { "vpmaxud", TOKEN_INSN, C_none, 0, I_VPMAXUD },
-        { "vpminsb", TOKEN_INSN, C_none, 0, I_VPMINSB },
-        { "vpminsw", TOKEN_INSN, C_none, 0, I_VPMINSW },
-        { "vpminsd", TOKEN_INSN, C_none, 0, I_VPMINSD },
-        { "vpminub", TOKEN_INSN, C_none, 0, I_VPMINUB },
-        { "vpminuw", TOKEN_INSN, C_none, 0, I_VPMINUW },
-        { "vpminud", TOKEN_INSN, C_none, 0, I_VPMINUD },
-        { "vpmovmskb", TOKEN_INSN, C_none, 0, I_VPMOVMSKB },
-        { "vpmovsxbw", TOKEN_INSN, C_none, 0, I_VPMOVSXBW },
-        { "vpmovsxbd", TOKEN_INSN, C_none, 0, I_VPMOVSXBD },
-        { "vpmovsxbq", TOKEN_INSN, C_none, 0, I_VPMOVSXBQ },
-        { "vpmovsxwd", TOKEN_INSN, C_none, 0, I_VPMOVSXWD },
-        { "vpmovsxwq", TOKEN_INSN, C_none, 0, I_VPMOVSXWQ },
-        { "vpmovsxdq", TOKEN_INSN, C_none, 0, I_VPMOVSXDQ },
-        { "vpmovzxbw", TOKEN_INSN, C_none, 0, I_VPMOVZXBW },
-        { "vpmovzxbd", TOKEN_INSN, C_none, 0, I_VPMOVZXBD },
-        { "vpmovzxbq", TOKEN_INSN, C_none, 0, I_VPMOVZXBQ },
-        { "vpmovzxwd", TOKEN_INSN, C_none, 0, I_VPMOVZXWD },
-        { "vpmovzxwq", TOKEN_INSN, C_none, 0, I_VPMOVZXWQ },
-        { "vpmovzxdq", TOKEN_INSN, C_none, 0, I_VPMOVZXDQ },
-        { "vpmulhuw", TOKEN_INSN, C_none, 0, I_VPMULHUW },
-        { "vpmulhrsw", TOKEN_INSN, C_none, 0, I_VPMULHRSW },
-        { "vpmulhw", TOKEN_INSN, C_none, 0, I_VPMULHW },
-        { "vpmullw", TOKEN_INSN, C_none, 0, I_VPMULLW },
-        { "vpmulld", TOKEN_INSN, C_none, 0, I_VPMULLD },
-        { "vpmuludq", TOKEN_INSN, C_none, 0, I_VPMULUDQ },
-        { "vpmuldq", TOKEN_INSN, C_none, 0, I_VPMULDQ },
-        { "vpor", TOKEN_INSN, C_none, 0, I_VPOR },
-        { "vpsadbw", TOKEN_INSN, C_none, 0, I_VPSADBW },
-        { "vpshufb", TOKEN_INSN, C_none, 0, I_VPSHUFB },
-        { "vpshufd", TOKEN_INSN, C_none, 0, I_VPSHUFD },
-        { "vpshufhw", TOKEN_INSN, C_none, 0, I_VPSHUFHW },
-        { "vpshuflw", TOKEN_INSN, C_none, 0, I_VPSHUFLW },
-        { "vpsignb", TOKEN_INSN, C_none, 0, I_VPSIGNB },
-        { "vpsignw", TOKEN_INSN, C_none, 0, I_VPSIGNW },
-        { "vpsignd", TOKEN_INSN, C_none, 0, I_VPSIGND },
-        { "vpslldq", TOKEN_INSN, C_none, 0, I_VPSLLDQ },
-        { "vpsrldq", TOKEN_INSN, C_none, 0, I_VPSRLDQ },
-        { "vpsllw", TOKEN_INSN, C_none, 0, I_VPSLLW },
-        { "vpslld", TOKEN_INSN, C_none, 0, I_VPSLLD },
-        { "vpsllq", TOKEN_INSN, C_none, 0, I_VPSLLQ },
-        { "vpsraw", TOKEN_INSN, C_none, 0, I_VPSRAW },
-        { "vpsrad", TOKEN_INSN, C_none, 0, I_VPSRAD },
-        { "vpsrlw", TOKEN_INSN, C_none, 0, I_VPSRLW },
-        { "vpsrld", TOKEN_INSN, C_none, 0, I_VPSRLD },
-        { "vpsrlq", TOKEN_INSN, C_none, 0, I_VPSRLQ },
-        { "vptest", TOKEN_INSN, C_none, 0, I_VPTEST },
-        { "vpsubb", TOKEN_INSN, C_none, 0, I_VPSUBB },
-        { "vpsubw", TOKEN_INSN, C_none, 0, I_VPSUBW },
-        { "vpsubd", TOKEN_INSN, C_none, 0, I_VPSUBD },
-        { "vpsubq", TOKEN_INSN, C_none, 0, I_VPSUBQ },
-        { "vpsubsb", TOKEN_INSN, C_none, 0, I_VPSUBSB },
-        { "vpsubsw", TOKEN_INSN, C_none, 0, I_VPSUBSW },
-        { "vpsubusb", TOKEN_INSN, C_none, 0, I_VPSUBUSB },
-        { "vpsubusw", TOKEN_INSN, C_none, 0, I_VPSUBUSW },
-        { "vpunpckhbw", TOKEN_INSN, C_none, 0, I_VPUNPCKHBW },
-        { "vpunpckhwd", TOKEN_INSN, C_none, 0, I_VPUNPCKHWD },
-        { "vpunpckhdq", TOKEN_INSN, C_none, 0, I_VPUNPCKHDQ },
-        { "vpunpckhqdq", TOKEN_INSN, C_none, 0, I_VPUNPCKHQDQ },
-        { "vpunpcklbw", TOKEN_INSN, C_none, 0, I_VPUNPCKLBW },
-        { "vpunpcklwd", TOKEN_INSN, C_none, 0, I_VPUNPCKLWD },
-        { "vpunpckldq", TOKEN_INSN, C_none, 0, I_VPUNPCKLDQ },
-        { "vpunpcklqdq", TOKEN_INSN, C_none, 0, I_VPUNPCKLQDQ },
-        { "vpxor", TOKEN_INSN, C_none, 0, I_VPXOR },
-        { "vrcpps", TOKEN_INSN, C_none, 0, I_VRCPPS },
-        { "vrcpss", TOKEN_INSN, C_none, 0, I_VRCPSS },
-        { "vrsqrtps", TOKEN_INSN, C_none, 0, I_VRSQRTPS },
-        { "vrsqrtss", TOKEN_INSN, C_none, 0, I_VRSQRTSS },
-        { "vroundpd", TOKEN_INSN, C_none, 0, I_VROUNDPD },
-        { "vroundps", TOKEN_INSN, C_none, 0, I_VROUNDPS },
-        { "vroundsd", TOKEN_INSN, C_none, 0, I_VROUNDSD },
-        { "vroundss", TOKEN_INSN, C_none, 0, I_VROUNDSS },
-        { "vshufpd", TOKEN_INSN, C_none, 0, I_VSHUFPD },
-        { "vshufps", TOKEN_INSN, C_none, 0, I_VSHUFPS },
-        { "vsqrtpd", TOKEN_INSN, C_none, 0, I_VSQRTPD },
-        { "vsqrtps", TOKEN_INSN, C_none, 0, I_VSQRTPS },
-        { "vsqrtsd", TOKEN_INSN, C_none, 0, I_VSQRTSD },
-        { "vsqrtss", TOKEN_INSN, C_none, 0, I_VSQRTSS },
-        { "vstmxcsr", TOKEN_INSN, C_none, 0, I_VSTMXCSR },
-        { "vsubpd", TOKEN_INSN, C_none, 0, I_VSUBPD },
-        { "vsubps", TOKEN_INSN, C_none, 0, I_VSUBPS },
-        { "vsubsd", TOKEN_INSN, C_none, 0, I_VSUBSD },
-        { "vsubss", TOKEN_INSN, C_none, 0, I_VSUBSS },
-        { "vtestps", TOKEN_INSN, C_none, 0, I_VTESTPS },
-        { "vtestpd", TOKEN_INSN, C_none, 0, I_VTESTPD },
-        { "vucomisd", TOKEN_INSN, C_none, 0, I_VUCOMISD },
-        { "vucomiss", TOKEN_INSN, C_none, 0, I_VUCOMISS },
-        { "vunpckhpd", TOKEN_INSN, C_none, 0, I_VUNPCKHPD },
-        { "vunpckhps", TOKEN_INSN, C_none, 0, I_VUNPCKHPS },
-        { "vunpcklpd", TOKEN_INSN, C_none, 0, I_VUNPCKLPD },
-        { "vunpcklps", TOKEN_INSN, C_none, 0, I_VUNPCKLPS },
-        { "vxorpd", TOKEN_INSN, C_none, 0, I_VXORPD },
-        { "vxorps", TOKEN_INSN, C_none, 0, I_VXORPS },
-        { "vzeroall", TOKEN_INSN, C_none, 0, I_VZEROALL },
-        { "vzeroupper", TOKEN_INSN, C_none, 0, I_VZEROUPPER },
-        { "pclmullqlqdq", TOKEN_INSN, C_none, 0, I_PCLMULLQLQDQ },
-        { "pclmulhqlqdq", TOKEN_INSN, C_none, 0, I_PCLMULHQLQDQ },
-        { "pclmullqhqdq", TOKEN_INSN, C_none, 0, I_PCLMULLQHQDQ },
-        { "pclmulhqhqdq", TOKEN_INSN, C_none, 0, I_PCLMULHQHQDQ },
-        { "pclmulqdq", TOKEN_INSN, C_none, 0, I_PCLMULQDQ },
-        { "vpclmullqlqdq", TOKEN_INSN, C_none, 0, I_VPCLMULLQLQDQ },
-        { "vpclmulhqlqdq", TOKEN_INSN, C_none, 0, I_VPCLMULHQLQDQ },
-        { "vpclmullqhqdq", TOKEN_INSN, C_none, 0, I_VPCLMULLQHQDQ },
-        { "vpclmulhqhqdq", TOKEN_INSN, C_none, 0, I_VPCLMULHQHQDQ },
-        { "vpclmulqdq", TOKEN_INSN, C_none, 0, I_VPCLMULQDQ },
-        { "vfmadd132ps", TOKEN_INSN, C_none, 0, I_VFMADD132PS },
-        { "vfmadd132pd", TOKEN_INSN, C_none, 0, I_VFMADD132PD },
-        { "vfmadd312ps", TOKEN_INSN, C_none, 0, I_VFMADD312PS },
-        { "vfmadd312pd", TOKEN_INSN, C_none, 0, I_VFMADD312PD },
-        { "vfmadd213ps", TOKEN_INSN, C_none, 0, I_VFMADD213PS },
-        { "vfmadd213pd", TOKEN_INSN, C_none, 0, I_VFMADD213PD },
-        { "vfmadd123ps", TOKEN_INSN, C_none, 0, I_VFMADD123PS },
-        { "vfmadd123pd", TOKEN_INSN, C_none, 0, I_VFMADD123PD },
-        { "vfmadd231ps", TOKEN_INSN, C_none, 0, I_VFMADD231PS },
-        { "vfmadd231pd", TOKEN_INSN, C_none, 0, I_VFMADD231PD },
-        { "vfmadd321ps", TOKEN_INSN, C_none, 0, I_VFMADD321PS },
-        { "vfmadd321pd", TOKEN_INSN, C_none, 0, I_VFMADD321PD },
-        { "vfmaddsub132ps", TOKEN_INSN, C_none, 0, I_VFMADDSUB132PS },
-        { "vfmaddsub132pd", TOKEN_INSN, C_none, 0, I_VFMADDSUB132PD },
-        { "vfmaddsub312ps", TOKEN_INSN, C_none, 0, I_VFMADDSUB312PS },
-        { "vfmaddsub312pd", TOKEN_INSN, C_none, 0, I_VFMADDSUB312PD },
-        { "vfmaddsub213ps", TOKEN_INSN, C_none, 0, I_VFMADDSUB213PS },
-        { "vfmaddsub213pd", TOKEN_INSN, C_none, 0, I_VFMADDSUB213PD },
-        { "vfmaddsub123ps", TOKEN_INSN, C_none, 0, I_VFMADDSUB123PS },
-        { "vfmaddsub123pd", TOKEN_INSN, C_none, 0, I_VFMADDSUB123PD },
-        { "vfmaddsub231ps", TOKEN_INSN, C_none, 0, I_VFMADDSUB231PS },
-        { "vfmaddsub231pd", TOKEN_INSN, C_none, 0, I_VFMADDSUB231PD },
-        { "vfmaddsub321ps", TOKEN_INSN, C_none, 0, I_VFMADDSUB321PS },
-        { "vfmaddsub321pd", TOKEN_INSN, C_none, 0, I_VFMADDSUB321PD },
-        { "vfmsub132ps", TOKEN_INSN, C_none, 0, I_VFMSUB132PS },
-        { "vfmsub132pd", TOKEN_INSN, C_none, 0, I_VFMSUB132PD },
-        { "vfmsub312ps", TOKEN_INSN, C_none, 0, I_VFMSUB312PS },
-        { "vfmsub312pd", TOKEN_INSN, C_none, 0, I_VFMSUB312PD },
-        { "vfmsub213ps", TOKEN_INSN, C_none, 0, I_VFMSUB213PS },
-        { "vfmsub213pd", TOKEN_INSN, C_none, 0, I_VFMSUB213PD },
-        { "vfmsub123ps", TOKEN_INSN, C_none, 0, I_VFMSUB123PS },
-        { "vfmsub123pd", TOKEN_INSN, C_none, 0, I_VFMSUB123PD },
-        { "vfmsub231ps", TOKEN_INSN, C_none, 0, I_VFMSUB231PS },
-        { "vfmsub231pd", TOKEN_INSN, C_none, 0, I_VFMSUB231PD },
-        { "vfmsub321ps", TOKEN_INSN, C_none, 0, I_VFMSUB321PS },
-        { "vfmsub321pd", TOKEN_INSN, C_none, 0, I_VFMSUB321PD },
-        { "vfmsubadd132ps", TOKEN_INSN, C_none, 0, I_VFMSUBADD132PS },
-        { "vfmsubadd132pd", TOKEN_INSN, C_none, 0, I_VFMSUBADD132PD },
-        { "vfmsubadd312ps", TOKEN_INSN, C_none, 0, I_VFMSUBADD312PS },
-        { "vfmsubadd312pd", TOKEN_INSN, C_none, 0, I_VFMSUBADD312PD },
-        { "vfmsubadd213ps", TOKEN_INSN, C_none, 0, I_VFMSUBADD213PS },
-        { "vfmsubadd213pd", TOKEN_INSN, C_none, 0, I_VFMSUBADD213PD },
-        { "vfmsubadd123ps", TOKEN_INSN, C_none, 0, I_VFMSUBADD123PS },
-        { "vfmsubadd123pd", TOKEN_INSN, C_none, 0, I_VFMSUBADD123PD },
-        { "vfmsubadd231ps", TOKEN_INSN, C_none, 0, I_VFMSUBADD231PS },
-        { "vfmsubadd231pd", TOKEN_INSN, C_none, 0, I_VFMSUBADD231PD },
-        { "vfmsubadd321ps", TOKEN_INSN, C_none, 0, I_VFMSUBADD321PS },
-        { "vfmsubadd321pd", TOKEN_INSN, C_none, 0, I_VFMSUBADD321PD },
-        { "vfnmadd132ps", TOKEN_INSN, C_none, 0, I_VFNMADD132PS },
-        { "vfnmadd132pd", TOKEN_INSN, C_none, 0, I_VFNMADD132PD },
-        { "vfnmadd312ps", TOKEN_INSN, C_none, 0, I_VFNMADD312PS },
-        { "vfnmadd312pd", TOKEN_INSN, C_none, 0, I_VFNMADD312PD },
-        { "vfnmadd213ps", TOKEN_INSN, C_none, 0, I_VFNMADD213PS },
-        { "vfnmadd213pd", TOKEN_INSN, C_none, 0, I_VFNMADD213PD },
-        { "vfnmadd123ps", TOKEN_INSN, C_none, 0, I_VFNMADD123PS },
-        { "vfnmadd123pd", TOKEN_INSN, C_none, 0, I_VFNMADD123PD },
-        { "vfnmadd231ps", TOKEN_INSN, C_none, 0, I_VFNMADD231PS },
-        { "vfnmadd231pd", TOKEN_INSN, C_none, 0, I_VFNMADD231PD },
-        { "vfnmadd321ps", TOKEN_INSN, C_none, 0, I_VFNMADD321PS },
-        { "vfnmadd321pd", TOKEN_INSN, C_none, 0, I_VFNMADD321PD },
-        { "vfnmsub132ps", TOKEN_INSN, C_none, 0, I_VFNMSUB132PS },
-        { "vfnmsub132pd", TOKEN_INSN, C_none, 0, I_VFNMSUB132PD },
-        { "vfnmsub312ps", TOKEN_INSN, C_none, 0, I_VFNMSUB312PS },
-        { "vfnmsub312pd", TOKEN_INSN, C_none, 0, I_VFNMSUB312PD },
-        { "vfnmsub213ps", TOKEN_INSN, C_none, 0, I_VFNMSUB213PS },
-        { "vfnmsub213pd", TOKEN_INSN, C_none, 0, I_VFNMSUB213PD },
-        { "vfnmsub123ps", TOKEN_INSN, C_none, 0, I_VFNMSUB123PS },
-        { "vfnmsub123pd", TOKEN_INSN, C_none, 0, I_VFNMSUB123PD },
-        { "vfnmsub231ps", TOKEN_INSN, C_none, 0, I_VFNMSUB231PS },
-        { "vfnmsub231pd", TOKEN_INSN, C_none, 0, I_VFNMSUB231PD },
-        { "vfnmsub321ps", TOKEN_INSN, C_none, 0, I_VFNMSUB321PS },
-        { "vfnmsub321pd", TOKEN_INSN, C_none, 0, I_VFNMSUB321PD },
-        { "vfmadd132ss", TOKEN_INSN, C_none, 0, I_VFMADD132SS },
-        { "vfmadd132sd", TOKEN_INSN, C_none, 0, I_VFMADD132SD },
-        { "vfmadd312ss", TOKEN_INSN, C_none, 0, I_VFMADD312SS },
-        { "vfmadd312sd", TOKEN_INSN, C_none, 0, I_VFMADD312SD },
-        { "vfmadd213ss", TOKEN_INSN, C_none, 0, I_VFMADD213SS },
-        { "vfmadd213sd", TOKEN_INSN, C_none, 0, I_VFMADD213SD },
-        { "vfmadd123ss", TOKEN_INSN, C_none, 0, I_VFMADD123SS },
-        { "vfmadd123sd", TOKEN_INSN, C_none, 0, I_VFMADD123SD },
-        { "vfmadd231ss", TOKEN_INSN, C_none, 0, I_VFMADD231SS },
-        { "vfmadd231sd", TOKEN_INSN, C_none, 0, I_VFMADD231SD },
-        { "vfmadd321ss", TOKEN_INSN, C_none, 0, I_VFMADD321SS },
-        { "vfmadd321sd", TOKEN_INSN, C_none, 0, I_VFMADD321SD },
-        { "vfmsub132ss", TOKEN_INSN, C_none, 0, I_VFMSUB132SS },
-        { "vfmsub132sd", TOKEN_INSN, C_none, 0, I_VFMSUB132SD },
-        { "vfmsub312ss", TOKEN_INSN, C_none, 0, I_VFMSUB312SS },
-        { "vfmsub312sd", TOKEN_INSN, C_none, 0, I_VFMSUB312SD },
-        { "vfmsub213ss", TOKEN_INSN, C_none, 0, I_VFMSUB213SS },
-        { "vfmsub213sd", TOKEN_INSN, C_none, 0, I_VFMSUB213SD },
-        { "vfmsub123ss", TOKEN_INSN, C_none, 0, I_VFMSUB123SS },
-        { "vfmsub123sd", TOKEN_INSN, C_none, 0, I_VFMSUB123SD },
-        { "vfmsub231ss", TOKEN_INSN, C_none, 0, I_VFMSUB231SS },
-        { "vfmsub231sd", TOKEN_INSN, C_none, 0, I_VFMSUB231SD },
-        { "vfmsub321ss", TOKEN_INSN, C_none, 0, I_VFMSUB321SS },
-        { "vfmsub321sd", TOKEN_INSN, C_none, 0, I_VFMSUB321SD },
-        { "vfnmadd132ss", TOKEN_INSN, C_none, 0, I_VFNMADD132SS },
-        { "vfnmadd132sd", TOKEN_INSN, C_none, 0, I_VFNMADD132SD },
-        { "vfnmadd312ss", TOKEN_INSN, C_none, 0, I_VFNMADD312SS },
-        { "vfnmadd312sd", TOKEN_INSN, C_none, 0, I_VFNMADD312SD },
-        { "vfnmadd213ss", TOKEN_INSN, C_none, 0, I_VFNMADD213SS },
-        { "vfnmadd213sd", TOKEN_INSN, C_none, 0, I_VFNMADD213SD },
-        { "vfnmadd123ss", TOKEN_INSN, C_none, 0, I_VFNMADD123SS },
-        { "vfnmadd123sd", TOKEN_INSN, C_none, 0, I_VFNMADD123SD },
-        { "vfnmadd231ss", TOKEN_INSN, C_none, 0, I_VFNMADD231SS },
-        { "vfnmadd231sd", TOKEN_INSN, C_none, 0, I_VFNMADD231SD },
-        { "vfnmadd321ss", TOKEN_INSN, C_none, 0, I_VFNMADD321SS },
-        { "vfnmadd321sd", TOKEN_INSN, C_none, 0, I_VFNMADD321SD },
-        { "vfnmsub132ss", TOKEN_INSN, C_none, 0, I_VFNMSUB132SS },
-        { "vfnmsub132sd", TOKEN_INSN, C_none, 0, I_VFNMSUB132SD },
-        { "vfnmsub312ss", TOKEN_INSN, C_none, 0, I_VFNMSUB312SS },
-        { "vfnmsub312sd", TOKEN_INSN, C_none, 0, I_VFNMSUB312SD },
-        { "vfnmsub213ss", TOKEN_INSN, C_none, 0, I_VFNMSUB213SS },
-        { "vfnmsub213sd", TOKEN_INSN, C_none, 0, I_VFNMSUB213SD },
-        { "vfnmsub123ss", TOKEN_INSN, C_none, 0, I_VFNMSUB123SS },
-        { "vfnmsub123sd", TOKEN_INSN, C_none, 0, I_VFNMSUB123SD },
-        { "vfnmsub231ss", TOKEN_INSN, C_none, 0, I_VFNMSUB231SS },
-        { "vfnmsub231sd", TOKEN_INSN, C_none, 0, I_VFNMSUB231SD },
-        { "vfnmsub321ss", TOKEN_INSN, C_none, 0, I_VFNMSUB321SS },
-        { "vfnmsub321sd", TOKEN_INSN, C_none, 0, I_VFNMSUB321SD },
-        { "rdfsbase", TOKEN_INSN, C_none, 0, I_RDFSBASE },
-        { "rdgsbase", TOKEN_INSN, C_none, 0, I_RDGSBASE },
-        { "rdrand", TOKEN_INSN, C_none, 0, I_RDRAND },
-        { "wrfsbase", TOKEN_INSN, C_none, 0, I_WRFSBASE },
-        { "wrgsbase", TOKEN_INSN, C_none, 0, I_WRGSBASE },
-        { "vcvtph2ps", TOKEN_INSN, C_none, 0, I_VCVTPH2PS },
-        { "vcvtps2ph", TOKEN_INSN, C_none, 0, I_VCVTPS2PH },
-        { "adcx", TOKEN_INSN, C_none, 0, I_ADCX },
-        { "adox", TOKEN_INSN, C_none, 0, I_ADOX },
-        { "rdseed", TOKEN_INSN, C_none, 0, I_RDSEED },
-        { "clac", TOKEN_INSN, C_none, 0, I_CLAC },
-        { "stac", TOKEN_INSN, C_none, 0, I_STAC },
-        { "xstore", TOKEN_INSN, C_none, 0, I_XSTORE },
-        { "xcryptecb", TOKEN_INSN, C_none, 0, I_XCRYPTECB },
-        { "xcryptcbc", TOKEN_INSN, C_none, 0, I_XCRYPTCBC },
-        { "xcryptctr", TOKEN_INSN, C_none, 0, I_XCRYPTCTR },
-        { "xcryptcfb", TOKEN_INSN, C_none, 0, I_XCRYPTCFB },
-        { "xcryptofb", TOKEN_INSN, C_none, 0, I_XCRYPTOFB },
-        { "montmul", TOKEN_INSN, C_none, 0, I_MONTMUL },
-        { "xsha1", TOKEN_INSN, C_none, 0, I_XSHA1 },
-        { "xsha256", TOKEN_INSN, C_none, 0, I_XSHA256 },
-        { "llwpcb", TOKEN_INSN, C_none, 0, I_LLWPCB },
-        { "slwpcb", TOKEN_INSN, C_none, 0, I_SLWPCB },
-        { "lwpval", TOKEN_INSN, C_none, 0, I_LWPVAL },
-        { "lwpins", TOKEN_INSN, C_none, 0, I_LWPINS },
-        { "vfmaddpd", TOKEN_INSN, C_none, 0, I_VFMADDPD },
-        { "vfmaddps", TOKEN_INSN, C_none, 0, I_VFMADDPS },
-        { "vfmaddsd", TOKEN_INSN, C_none, 0, I_VFMADDSD },
-        { "vfmaddss", TOKEN_INSN, C_none, 0, I_VFMADDSS },
-        { "vfmaddsubpd", TOKEN_INSN, C_none, 0, I_VFMADDSUBPD },
-        { "vfmaddsubps", TOKEN_INSN, C_none, 0, I_VFMADDSUBPS },
-        { "vfmsubaddpd", TOKEN_INSN, C_none, 0, I_VFMSUBADDPD },
-        { "vfmsubaddps", TOKEN_INSN, C_none, 0, I_VFMSUBADDPS },
-        { "vfmsubpd", TOKEN_INSN, C_none, 0, I_VFMSUBPD },
-        { "vfmsubps", TOKEN_INSN, C_none, 0, I_VFMSUBPS },
-        { "vfmsubsd", TOKEN_INSN, C_none, 0, I_VFMSUBSD },
-        { "vfmsubss", TOKEN_INSN, C_none, 0, I_VFMSUBSS },
-        { "vfnmaddpd", TOKEN_INSN, C_none, 0, I_VFNMADDPD },
-        { "vfnmaddps", TOKEN_INSN, C_none, 0, I_VFNMADDPS },
-        { "vfnmaddsd", TOKEN_INSN, C_none, 0, I_VFNMADDSD },
-        { "vfnmaddss", TOKEN_INSN, C_none, 0, I_VFNMADDSS },
-        { "vfnmsubpd", TOKEN_INSN, C_none, 0, I_VFNMSUBPD },
-        { "vfnmsubps", TOKEN_INSN, C_none, 0, I_VFNMSUBPS },
-        { "vfnmsubsd", TOKEN_INSN, C_none, 0, I_VFNMSUBSD },
-        { "vfnmsubss", TOKEN_INSN, C_none, 0, I_VFNMSUBSS },
-        { "vfrczpd", TOKEN_INSN, C_none, 0, I_VFRCZPD },
-        { "vfrczps", TOKEN_INSN, C_none, 0, I_VFRCZPS },
-        { "vfrczsd", TOKEN_INSN, C_none, 0, I_VFRCZSD },
-        { "vfrczss", TOKEN_INSN, C_none, 0, I_VFRCZSS },
-        { "vpcmov", TOKEN_INSN, C_none, 0, I_VPCMOV },
-        { "vpcomb", TOKEN_INSN, C_none, 0, I_VPCOMB },
-        { "vpcomd", TOKEN_INSN, C_none, 0, I_VPCOMD },
-        { "vpcomq", TOKEN_INSN, C_none, 0, I_VPCOMQ },
-        { "vpcomub", TOKEN_INSN, C_none, 0, I_VPCOMUB },
-        { "vpcomud", TOKEN_INSN, C_none, 0, I_VPCOMUD },
-        { "vpcomuq", TOKEN_INSN, C_none, 0, I_VPCOMUQ },
-        { "vpcomuw", TOKEN_INSN, C_none, 0, I_VPCOMUW },
-        { "vpcomw", TOKEN_INSN, C_none, 0, I_VPCOMW },
-        { "vphaddbd", TOKEN_INSN, C_none, 0, I_VPHADDBD },
-        { "vphaddbq", TOKEN_INSN, C_none, 0, I_VPHADDBQ },
-        { "vphaddbw", TOKEN_INSN, C_none, 0, I_VPHADDBW },
-        { "vphadddq", TOKEN_INSN, C_none, 0, I_VPHADDDQ },
-        { "vphaddubd", TOKEN_INSN, C_none, 0, I_VPHADDUBD },
-        { "vphaddubq", TOKEN_INSN, C_none, 0, I_VPHADDUBQ },
-        { "vphaddubw", TOKEN_INSN, C_none, 0, I_VPHADDUBW },
-        { "vphaddudq", TOKEN_INSN, C_none, 0, I_VPHADDUDQ },
-        { "vphadduwd", TOKEN_INSN, C_none, 0, I_VPHADDUWD },
-        { "vphadduwq", TOKEN_INSN, C_none, 0, I_VPHADDUWQ },
-        { "vphaddwd", TOKEN_INSN, C_none, 0, I_VPHADDWD },
-        { "vphaddwq", TOKEN_INSN, C_none, 0, I_VPHADDWQ },
-        { "vphsubbw", TOKEN_INSN, C_none, 0, I_VPHSUBBW },
-        { "vphsubdq", TOKEN_INSN, C_none, 0, I_VPHSUBDQ },
-        { "vphsubwd", TOKEN_INSN, C_none, 0, I_VPHSUBWD },
-        { "vpmacsdd", TOKEN_INSN, C_none, 0, I_VPMACSDD },
-        { "vpmacsdqh", TOKEN_INSN, C_none, 0, I_VPMACSDQH },
-        { "vpmacsdql", TOKEN_INSN, C_none, 0, I_VPMACSDQL },
-        { "vpmacssdd", TOKEN_INSN, C_none, 0, I_VPMACSSDD },
-        { "vpmacssdqh", TOKEN_INSN, C_none, 0, I_VPMACSSDQH },
-        { "vpmacssdql", TOKEN_INSN, C_none, 0, I_VPMACSSDQL },
-        { "vpmacsswd", TOKEN_INSN, C_none, 0, I_VPMACSSWD },
-        { "vpmacssww", TOKEN_INSN, C_none, 0, I_VPMACSSWW },
-        { "vpmacswd", TOKEN_INSN, C_none, 0, I_VPMACSWD },
-        { "vpmacsww", TOKEN_INSN, C_none, 0, I_VPMACSWW },
-        { "vpmadcsswd", TOKEN_INSN, C_none, 0, I_VPMADCSSWD },
-        { "vpmadcswd", TOKEN_INSN, C_none, 0, I_VPMADCSWD },
-        { "vpperm", TOKEN_INSN, C_none, 0, I_VPPERM },
-        { "vprotb", TOKEN_INSN, C_none, 0, I_VPROTB },
-        { "vprotd", TOKEN_INSN, C_none, 0, I_VPROTD },
-        { "vprotq", TOKEN_INSN, C_none, 0, I_VPROTQ },
-        { "vprotw", TOKEN_INSN, C_none, 0, I_VPROTW },
-        { "vpshab", TOKEN_INSN, C_none, 0, I_VPSHAB },
-        { "vpshad", TOKEN_INSN, C_none, 0, I_VPSHAD },
-        { "vpshaq", TOKEN_INSN, C_none, 0, I_VPSHAQ },
-        { "vpshaw", TOKEN_INSN, C_none, 0, I_VPSHAW },
-        { "vpshlb", TOKEN_INSN, C_none, 0, I_VPSHLB },
-        { "vpshld", TOKEN_INSN, C_none, 0, I_VPSHLD },
-        { "vpshlq", TOKEN_INSN, C_none, 0, I_VPSHLQ },
-        { "vpshlw", TOKEN_INSN, C_none, 0, I_VPSHLW },
-        { "vbroadcasti128", TOKEN_INSN, C_none, 0, I_VBROADCASTI128 },
-        { "vpblendd", TOKEN_INSN, C_none, 0, I_VPBLENDD },
-        { "vpbroadcastb", TOKEN_INSN, C_none, 0, I_VPBROADCASTB },
-        { "vpbroadcastw", TOKEN_INSN, C_none, 0, I_VPBROADCASTW },
-        { "vpbroadcastd", TOKEN_INSN, C_none, 0, I_VPBROADCASTD },
-        { "vpbroadcastq", TOKEN_INSN, C_none, 0, I_VPBROADCASTQ },
-        { "vpermd", TOKEN_INSN, C_none, 0, I_VPERMD },
-        { "vpermpd", TOKEN_INSN, C_none, 0, I_VPERMPD },
-        { "vpermps", TOKEN_INSN, C_none, 0, I_VPERMPS },
-        { "vpermq", TOKEN_INSN, C_none, 0, I_VPERMQ },
-        { "vperm2i128", TOKEN_INSN, C_none, 0, I_VPERM2I128 },
-        { "vextracti128", TOKEN_INSN, C_none, 0, I_VEXTRACTI128 },
-        { "vinserti128", TOKEN_INSN, C_none, 0, I_VINSERTI128 },
-        { "vpmaskmovd", TOKEN_INSN, C_none, 0, I_VPMASKMOVD },
-        { "vpmaskmovq", TOKEN_INSN, C_none, 0, I_VPMASKMOVQ },
-        { "vpsllvd", TOKEN_INSN, C_none, 0, I_VPSLLVD },
-        { "vpsllvq", TOKEN_INSN, C_none, 0, I_VPSLLVQ },
-        { "vpsravd", TOKEN_INSN, C_none, 0, I_VPSRAVD },
-        { "vpsrlvd", TOKEN_INSN, C_none, 0, I_VPSRLVD },
-        { "vpsrlvq", TOKEN_INSN, C_none, 0, I_VPSRLVQ },
-        { "vgatherdpd", TOKEN_INSN, C_none, 0, I_VGATHERDPD },
-        { "vgatherqpd", TOKEN_INSN, C_none, 0, I_VGATHERQPD },
-        { "vgatherdps", TOKEN_INSN, C_none, 0, I_VGATHERDPS },
-        { "vgatherqps", TOKEN_INSN, C_none, 0, I_VGATHERQPS },
-        { "vpgatherdd", TOKEN_INSN, C_none, 0, I_VPGATHERDD },
-        { "vpgatherqd", TOKEN_INSN, C_none, 0, I_VPGATHERQD },
-        { "vpgatherdq", TOKEN_INSN, C_none, 0, I_VPGATHERDQ },
-        { "vpgatherqq", TOKEN_INSN, C_none, 0, I_VPGATHERQQ },
-        { "xabort", TOKEN_INSN, C_none, 0, I_XABORT },
-        { "xbegin", TOKEN_INSN, C_none, 0, I_XBEGIN },
-        { "xend", TOKEN_INSN, C_none, 0, I_XEND },
-        { "xtest", TOKEN_INSN, C_none, 0, I_XTEST },
-        { "andn", TOKEN_INSN, C_none, 0, I_ANDN },
-        { "bextr", TOKEN_INSN, C_none, 0, I_BEXTR },
-        { "blci", TOKEN_INSN, C_none, 0, I_BLCI },
-        { "blcic", TOKEN_INSN, C_none, 0, I_BLCIC },
-        { "blsi", TOKEN_INSN, C_none, 0, I_BLSI },
-        { "blsic", TOKEN_INSN, C_none, 0, I_BLSIC },
-        { "blcfill", TOKEN_INSN, C_none, 0, I_BLCFILL },
-        { "blsfill", TOKEN_INSN, C_none, 0, I_BLSFILL },
-        { "blcmsk", TOKEN_INSN, C_none, 0, I_BLCMSK },
-        { "blsmsk", TOKEN_INSN, C_none, 0, I_BLSMSK },
-        { "blsr", TOKEN_INSN, C_none, 0, I_BLSR },
-        { "blcs", TOKEN_INSN, C_none, 0, I_BLCS },
-        { "bzhi", TOKEN_INSN, C_none, 0, I_BZHI },
-        { "mulx", TOKEN_INSN, C_none, 0, I_MULX },
-        { "pdep", TOKEN_INSN, C_none, 0, I_PDEP },
-        { "pext", TOKEN_INSN, C_none, 0, I_PEXT },
-        { "rorx", TOKEN_INSN, C_none, 0, I_RORX },
-        { "sarx", TOKEN_INSN, C_none, 0, I_SARX },
-        { "shlx", TOKEN_INSN, C_none, 0, I_SHLX },
-        { "shrx", TOKEN_INSN, C_none, 0, I_SHRX },
-        { "tzcnt", TOKEN_INSN, C_none, 0, I_TZCNT },
-        { "tzmsk", TOKEN_INSN, C_none, 0, I_TZMSK },
-        { "t1mskc", TOKEN_INSN, C_none, 0, I_T1MSKC },
-        { "prefetchwt1", TOKEN_INSN, C_none, 0, I_PREFETCHWT1 },
-        { "bndmk", TOKEN_INSN, C_none, 0, I_BNDMK },
-        { "bndcl", TOKEN_INSN, C_none, 0, I_BNDCL },
-        { "bndcu", TOKEN_INSN, C_none, 0, I_BNDCU },
-        { "bndcn", TOKEN_INSN, C_none, 0, I_BNDCN },
-        { "bndmov", TOKEN_INSN, C_none, 0, I_BNDMOV },
-        { "bndldx", TOKEN_INSN, C_none, 0, I_BNDLDX },
-        { "bndstx", TOKEN_INSN, C_none, 0, I_BNDSTX },
-        { "kaddb", TOKEN_INSN, C_none, 0, I_KADDB },
-        { "kaddd", TOKEN_INSN, C_none, 0, I_KADDD },
-        { "kaddq", TOKEN_INSN, C_none, 0, I_KADDQ },
-        { "kaddw", TOKEN_INSN, C_none, 0, I_KADDW },
-        { "kandb", TOKEN_INSN, C_none, 0, I_KANDB },
-        { "kandd", TOKEN_INSN, C_none, 0, I_KANDD },
-        { "kandnb", TOKEN_INSN, C_none, 0, I_KANDNB },
-        { "kandnd", TOKEN_INSN, C_none, 0, I_KANDND },
-        { "kandnq", TOKEN_INSN, C_none, 0, I_KANDNQ },
-        { "kandnw", TOKEN_INSN, C_none, 0, I_KANDNW },
-        { "kandq", TOKEN_INSN, C_none, 0, I_KANDQ },
-        { "kandw", TOKEN_INSN, C_none, 0, I_KANDW },
-        { "kmovb", TOKEN_INSN, C_none, 0, I_KMOVB },
-        { "kmovd", TOKEN_INSN, C_none, 0, I_KMOVD },
-        { "kmovq", TOKEN_INSN, C_none, 0, I_KMOVQ },
-        { "kmovw", TOKEN_INSN, C_none, 0, I_KMOVW },
-        { "knotb", TOKEN_INSN, C_none, 0, I_KNOTB },
-        { "knotd", TOKEN_INSN, C_none, 0, I_KNOTD },
-        { "knotq", TOKEN_INSN, C_none, 0, I_KNOTQ },
-        { "knotw", TOKEN_INSN, C_none, 0, I_KNOTW },
-        { "korb", TOKEN_INSN, C_none, 0, I_KORB },
-        { "kord", TOKEN_INSN, C_none, 0, I_KORD },
-        { "korq", TOKEN_INSN, C_none, 0, I_KORQ },
-        { "kortestb", TOKEN_INSN, C_none, 0, I_KORTESTB },
-        { "kortestd", TOKEN_INSN, C_none, 0, I_KORTESTD },
-        { "kortestq", TOKEN_INSN, C_none, 0, I_KORTESTQ },
-        { "kortestw", TOKEN_INSN, C_none, 0, I_KORTESTW },
-        { "korw", TOKEN_INSN, C_none, 0, I_KORW },
-        { "kshiftlb", TOKEN_INSN, C_none, 0, I_KSHIFTLB },
-        { "kshiftld", TOKEN_INSN, C_none, 0, I_KSHIFTLD },
-        { "kshiftlq", TOKEN_INSN, C_none, 0, I_KSHIFTLQ },
-        { "kshiftlw", TOKEN_INSN, C_none, 0, I_KSHIFTLW },
-        { "kshiftrb", TOKEN_INSN, C_none, 0, I_KSHIFTRB },
-        { "kshiftrd", TOKEN_INSN, C_none, 0, I_KSHIFTRD },
-        { "kshiftrq", TOKEN_INSN, C_none, 0, I_KSHIFTRQ },
-        { "kshiftrw", TOKEN_INSN, C_none, 0, I_KSHIFTRW },
-        { "ktestb", TOKEN_INSN, C_none, 0, I_KTESTB },
-        { "ktestd", TOKEN_INSN, C_none, 0, I_KTESTD },
-        { "ktestq", TOKEN_INSN, C_none, 0, I_KTESTQ },
-        { "ktestw", TOKEN_INSN, C_none, 0, I_KTESTW },
-        { "kunpckbw", TOKEN_INSN, C_none, 0, I_KUNPCKBW },
-        { "kunpckdq", TOKEN_INSN, C_none, 0, I_KUNPCKDQ },
-        { "kunpckwd", TOKEN_INSN, C_none, 0, I_KUNPCKWD },
-        { "kxnorb", TOKEN_INSN, C_none, 0, I_KXNORB },
-        { "kxnord", TOKEN_INSN, C_none, 0, I_KXNORD },
-        { "kxnorq", TOKEN_INSN, C_none, 0, I_KXNORQ },
-        { "kxnorw", TOKEN_INSN, C_none, 0, I_KXNORW },
-        { "kxorb", TOKEN_INSN, C_none, 0, I_KXORB },
-        { "kxord", TOKEN_INSN, C_none, 0, I_KXORD },
-        { "kxorq", TOKEN_INSN, C_none, 0, I_KXORQ },
-        { "kxorw", TOKEN_INSN, C_none, 0, I_KXORW },
-        { "sha1msg1", TOKEN_INSN, C_none, 0, I_SHA1MSG1 },
-        { "sha1msg2", TOKEN_INSN, C_none, 0, I_SHA1MSG2 },
-        { "sha1nexte", TOKEN_INSN, C_none, 0, I_SHA1NEXTE },
-        { "sha1rnds4", TOKEN_INSN, C_none, 0, I_SHA1RNDS4 },
-        { "sha256msg1", TOKEN_INSN, C_none, 0, I_SHA256MSG1 },
-        { "sha256msg2", TOKEN_INSN, C_none, 0, I_SHA256MSG2 },
-        { "sha256rnds2", TOKEN_INSN, C_none, 0, I_SHA256RNDS2 },
-        { "valignd", TOKEN_INSN, C_none, 0, I_VALIGND },
-        { "valignq", TOKEN_INSN, C_none, 0, I_VALIGNQ },
-        { "vblendmpd", TOKEN_INSN, C_none, 0, I_VBLENDMPD },
-        { "vblendmps", TOKEN_INSN, C_none, 0, I_VBLENDMPS },
-        { "vbroadcastf32x2", TOKEN_INSN, C_none, 0, I_VBROADCASTF32X2 },
-        { "vbroadcastf32x4", TOKEN_INSN, C_none, 0, I_VBROADCASTF32X4 },
-        { "vbroadcastf32x8", TOKEN_INSN, C_none, 0, I_VBROADCASTF32X8 },
-        { "vbroadcastf64x2", TOKEN_INSN, C_none, 0, I_VBROADCASTF64X2 },
-        { "vbroadcastf64x4", TOKEN_INSN, C_none, 0, I_VBROADCASTF64X4 },
-        { "vbroadcasti32x2", TOKEN_INSN, C_none, 0, I_VBROADCASTI32X2 },
-        { "vbroadcasti32x4", TOKEN_INSN, C_none, 0, I_VBROADCASTI32X4 },
-        { "vbroadcasti32x8", TOKEN_INSN, C_none, 0, I_VBROADCASTI32X8 },
-        { "vbroadcasti64x2", TOKEN_INSN, C_none, 0, I_VBROADCASTI64X2 },
-        { "vbroadcasti64x4", TOKEN_INSN, C_none, 0, I_VBROADCASTI64X4 },
-        { "vcompresspd", TOKEN_INSN, C_none, 0, I_VCOMPRESSPD },
-        { "vcompressps", TOKEN_INSN, C_none, 0, I_VCOMPRESSPS },
-        { "vcvtpd2qq", TOKEN_INSN, C_none, 0, I_VCVTPD2QQ },
-        { "vcvtpd2udq", TOKEN_INSN, C_none, 0, I_VCVTPD2UDQ },
-        { "vcvtpd2uqq", TOKEN_INSN, C_none, 0, I_VCVTPD2UQQ },
-        { "vcvtps2qq", TOKEN_INSN, C_none, 0, I_VCVTPS2QQ },
-        { "vcvtps2udq", TOKEN_INSN, C_none, 0, I_VCVTPS2UDQ },
-        { "vcvtps2uqq", TOKEN_INSN, C_none, 0, I_VCVTPS2UQQ },
-        { "vcvtqq2pd", TOKEN_INSN, C_none, 0, I_VCVTQQ2PD },
-        { "vcvtqq2ps", TOKEN_INSN, C_none, 0, I_VCVTQQ2PS },
-        { "vcvtsd2usi", TOKEN_INSN, C_none, 0, I_VCVTSD2USI },
-        { "vcvtss2usi", TOKEN_INSN, C_none, 0, I_VCVTSS2USI },
-        { "vcvttpd2qq", TOKEN_INSN, C_none, 0, I_VCVTTPD2QQ },
-        { "vcvttpd2udq", TOKEN_INSN, C_none, 0, I_VCVTTPD2UDQ },
-        { "vcvttpd2uqq", TOKEN_INSN, C_none, 0, I_VCVTTPD2UQQ },
-        { "vcvttps2qq", TOKEN_INSN, C_none, 0, I_VCVTTPS2QQ },
-        { "vcvttps2udq", TOKEN_INSN, C_none, 0, I_VCVTTPS2UDQ },
-        { "vcvttps2uqq", TOKEN_INSN, C_none, 0, I_VCVTTPS2UQQ },
-        { "vcvttsd2usi", TOKEN_INSN, C_none, 0, I_VCVTTSD2USI },
-        { "vcvttss2usi", TOKEN_INSN, C_none, 0, I_VCVTTSS2USI },
-        { "vcvtudq2pd", TOKEN_INSN, C_none, 0, I_VCVTUDQ2PD },
-        { "vcvtudq2ps", TOKEN_INSN, C_none, 0, I_VCVTUDQ2PS },
-        { "vcvtuqq2pd", TOKEN_INSN, C_none, 0, I_VCVTUQQ2PD },
-        { "vcvtuqq2ps", TOKEN_INSN, C_none, 0, I_VCVTUQQ2PS },
-        { "vcvtusi2sd", TOKEN_INSN, C_none, 0, I_VCVTUSI2SD },
-        { "vcvtusi2ss", TOKEN_INSN, C_none, 0, I_VCVTUSI2SS },
-        { "vdbpsadbw", TOKEN_INSN, C_none, 0, I_VDBPSADBW },
-        { "vexp2pd", TOKEN_INSN, C_none, 0, I_VEXP2PD },
-        { "vexp2ps", TOKEN_INSN, C_none, 0, I_VEXP2PS },
-        { "vexpandpd", TOKEN_INSN, C_none, 0, I_VEXPANDPD },
-        { "vexpandps", TOKEN_INSN, C_none, 0, I_VEXPANDPS },
-        { "vextractf32x4", TOKEN_INSN, C_none, 0, I_VEXTRACTF32X4 },
-        { "vextractf32x8", TOKEN_INSN, C_none, 0, I_VEXTRACTF32X8 },
-        { "vextractf64x2", TOKEN_INSN, C_none, 0, I_VEXTRACTF64X2 },
-        { "vextractf64x4", TOKEN_INSN, C_none, 0, I_VEXTRACTF64X4 },
-        { "vextracti32x4", TOKEN_INSN, C_none, 0, I_VEXTRACTI32X4 },
-        { "vextracti32x8", TOKEN_INSN, C_none, 0, I_VEXTRACTI32X8 },
-        { "vextracti64x2", TOKEN_INSN, C_none, 0, I_VEXTRACTI64X2 },
-        { "vextracti64x4", TOKEN_INSN, C_none, 0, I_VEXTRACTI64X4 },
-        { "vfixupimmpd", TOKEN_INSN, C_none, 0, I_VFIXUPIMMPD },
-        { "vfixupimmps", TOKEN_INSN, C_none, 0, I_VFIXUPIMMPS },
-        { "vfixupimmsd", TOKEN_INSN, C_none, 0, I_VFIXUPIMMSD },
-        { "vfixupimmss", TOKEN_INSN, C_none, 0, I_VFIXUPIMMSS },
-        { "vfpclasspd", TOKEN_INSN, C_none, 0, I_VFPCLASSPD },
-        { "vfpclassps", TOKEN_INSN, C_none, 0, I_VFPCLASSPS },
-        { "vfpclasssd", TOKEN_INSN, C_none, 0, I_VFPCLASSSD },
-        { "vfpclassss", TOKEN_INSN, C_none, 0, I_VFPCLASSSS },
-        { "vgatherpf0dpd", TOKEN_INSN, C_none, 0, I_VGATHERPF0DPD },
-        { "vgatherpf0dps", TOKEN_INSN, C_none, 0, I_VGATHERPF0DPS },
-        { "vgatherpf0qpd", TOKEN_INSN, C_none, 0, I_VGATHERPF0QPD },
-        { "vgatherpf0qps", TOKEN_INSN, C_none, 0, I_VGATHERPF0QPS },
-        { "vgatherpf1dpd", TOKEN_INSN, C_none, 0, I_VGATHERPF1DPD },
-        { "vgatherpf1dps", TOKEN_INSN, C_none, 0, I_VGATHERPF1DPS },
-        { "vgatherpf1qpd", TOKEN_INSN, C_none, 0, I_VGATHERPF1QPD },
-        { "vgatherpf1qps", TOKEN_INSN, C_none, 0, I_VGATHERPF1QPS },
-        { "vgetexppd", TOKEN_INSN, C_none, 0, I_VGETEXPPD },
-        { "vgetexpps", TOKEN_INSN, C_none, 0, I_VGETEXPPS },
-        { "vgetexpsd", TOKEN_INSN, C_none, 0, I_VGETEXPSD },
-        { "vgetexpss", TOKEN_INSN, C_none, 0, I_VGETEXPSS },
-        { "vgetmantpd", TOKEN_INSN, C_none, 0, I_VGETMANTPD },
-        { "vgetmantps", TOKEN_INSN, C_none, 0, I_VGETMANTPS },
-        { "vgetmantsd", TOKEN_INSN, C_none, 0, I_VGETMANTSD },
-        { "vgetmantss", TOKEN_INSN, C_none, 0, I_VGETMANTSS },
-        { "vinsertf32x4", TOKEN_INSN, C_none, 0, I_VINSERTF32X4 },
-        { "vinsertf32x8", TOKEN_INSN, C_none, 0, I_VINSERTF32X8 },
-        { "vinsertf64x2", TOKEN_INSN, C_none, 0, I_VINSERTF64X2 },
-        { "vinsertf64x4", TOKEN_INSN, C_none, 0, I_VINSERTF64X4 },
-        { "vinserti32x4", TOKEN_INSN, C_none, 0, I_VINSERTI32X4 },
-        { "vinserti32x8", TOKEN_INSN, C_none, 0, I_VINSERTI32X8 },
-        { "vinserti64x2", TOKEN_INSN, C_none, 0, I_VINSERTI64X2 },
-        { "vinserti64x4", TOKEN_INSN, C_none, 0, I_VINSERTI64X4 },
-        { "vmovdqa32", TOKEN_INSN, C_none, 0, I_VMOVDQA32 },
-        { "vmovdqa64", TOKEN_INSN, C_none, 0, I_VMOVDQA64 },
-        { "vmovdqu16", TOKEN_INSN, C_none, 0, I_VMOVDQU16 },
-        { "vmovdqu32", TOKEN_INSN, C_none, 0, I_VMOVDQU32 },
-        { "vmovdqu64", TOKEN_INSN, C_none, 0, I_VMOVDQU64 },
-        { "vmovdqu8", TOKEN_INSN, C_none, 0, I_VMOVDQU8 },
-        { "vpabsq", TOKEN_INSN, C_none, 0, I_VPABSQ },
-        { "vpandd", TOKEN_INSN, C_none, 0, I_VPANDD },
-        { "vpandnd", TOKEN_INSN, C_none, 0, I_VPANDND },
-        { "vpandnq", TOKEN_INSN, C_none, 0, I_VPANDNQ },
-        { "vpandq", TOKEN_INSN, C_none, 0, I_VPANDQ },
-        { "vpblendmb", TOKEN_INSN, C_none, 0, I_VPBLENDMB },
-        { "vpblendmd", TOKEN_INSN, C_none, 0, I_VPBLENDMD },
-        { "vpblendmq", TOKEN_INSN, C_none, 0, I_VPBLENDMQ },
-        { "vpblendmw", TOKEN_INSN, C_none, 0, I_VPBLENDMW },
-        { "vpbroadcastmb2q", TOKEN_INSN, C_none, 0, I_VPBROADCASTMB2Q },
-        { "vpbroadcastmw2d", TOKEN_INSN, C_none, 0, I_VPBROADCASTMW2D },
-        { "vpcmpb", TOKEN_INSN, C_none, 0, I_VPCMPB },
-        { "vpcmpd", TOKEN_INSN, C_none, 0, I_VPCMPD },
-        { "vpcmpq", TOKEN_INSN, C_none, 0, I_VPCMPQ },
-        { "vpcmpub", TOKEN_INSN, C_none, 0, I_VPCMPUB },
-        { "vpcmpud", TOKEN_INSN, C_none, 0, I_VPCMPUD },
-        { "vpcmpuq", TOKEN_INSN, C_none, 0, I_VPCMPUQ },
-        { "vpcmpuw", TOKEN_INSN, C_none, 0, I_VPCMPUW },
-        { "vpcmpw", TOKEN_INSN, C_none, 0, I_VPCMPW },
-        { "vpcompressd", TOKEN_INSN, C_none, 0, I_VPCOMPRESSD },
-        { "vpcompressq", TOKEN_INSN, C_none, 0, I_VPCOMPRESSQ },
-        { "vpconflictd", TOKEN_INSN, C_none, 0, I_VPCONFLICTD },
-        { "vpconflictq", TOKEN_INSN, C_none, 0, I_VPCONFLICTQ },
-        { "vpermb", TOKEN_INSN, C_none, 0, I_VPERMB },
-        { "vpermi2b", TOKEN_INSN, C_none, 0, I_VPERMI2B },
-        { "vpermi2d", TOKEN_INSN, C_none, 0, I_VPERMI2D },
-        { "vpermi2pd", TOKEN_INSN, C_none, 0, I_VPERMI2PD },
-        { "vpermi2ps", TOKEN_INSN, C_none, 0, I_VPERMI2PS },
-        { "vpermi2q", TOKEN_INSN, C_none, 0, I_VPERMI2Q },
-        { "vpermi2w", TOKEN_INSN, C_none, 0, I_VPERMI2W },
-        { "vpermt2b", TOKEN_INSN, C_none, 0, I_VPERMT2B },
-        { "vpermt2d", TOKEN_INSN, C_none, 0, I_VPERMT2D },
-        { "vpermt2pd", TOKEN_INSN, C_none, 0, I_VPERMT2PD },
-        { "vpermt2ps", TOKEN_INSN, C_none, 0, I_VPERMT2PS },
-        { "vpermt2q", TOKEN_INSN, C_none, 0, I_VPERMT2Q },
-        { "vpermt2w", TOKEN_INSN, C_none, 0, I_VPERMT2W },
-        { "vpermw", TOKEN_INSN, C_none, 0, I_VPERMW },
-        { "vpexpandd", TOKEN_INSN, C_none, 0, I_VPEXPANDD },
-        { "vpexpandq", TOKEN_INSN, C_none, 0, I_VPEXPANDQ },
-        { "vplzcntd", TOKEN_INSN, C_none, 0, I_VPLZCNTD },
-        { "vplzcntq", TOKEN_INSN, C_none, 0, I_VPLZCNTQ },
-        { "vpmadd52huq", TOKEN_INSN, C_none, 0, I_VPMADD52HUQ },
-        { "vpmadd52luq", TOKEN_INSN, C_none, 0, I_VPMADD52LUQ },
-        { "vpmaxsq", TOKEN_INSN, C_none, 0, I_VPMAXSQ },
-        { "vpmaxuq", TOKEN_INSN, C_none, 0, I_VPMAXUQ },
-        { "vpminsq", TOKEN_INSN, C_none, 0, I_VPMINSQ },
-        { "vpminuq", TOKEN_INSN, C_none, 0, I_VPMINUQ },
-        { "vpmovb2m", TOKEN_INSN, C_none, 0, I_VPMOVB2M },
-        { "vpmovd2m", TOKEN_INSN, C_none, 0, I_VPMOVD2M },
-        { "vpmovdb", TOKEN_INSN, C_none, 0, I_VPMOVDB },
-        { "vpmovdw", TOKEN_INSN, C_none, 0, I_VPMOVDW },
-        { "vpmovm2b", TOKEN_INSN, C_none, 0, I_VPMOVM2B },
-        { "vpmovm2d", TOKEN_INSN, C_none, 0, I_VPMOVM2D },
-        { "vpmovm2q", TOKEN_INSN, C_none, 0, I_VPMOVM2Q },
-        { "vpmovm2w", TOKEN_INSN, C_none, 0, I_VPMOVM2W },
-        { "vpmovq2m", TOKEN_INSN, C_none, 0, I_VPMOVQ2M },
-        { "vpmovqb", TOKEN_INSN, C_none, 0, I_VPMOVQB },
-        { "vpmovqd", TOKEN_INSN, C_none, 0, I_VPMOVQD },
-        { "vpmovqw", TOKEN_INSN, C_none, 0, I_VPMOVQW },
-        { "vpmovsdb", TOKEN_INSN, C_none, 0, I_VPMOVSDB },
-        { "vpmovsdw", TOKEN_INSN, C_none, 0, I_VPMOVSDW },
-        { "vpmovsqb", TOKEN_INSN, C_none, 0, I_VPMOVSQB },
-        { "vpmovsqd", TOKEN_INSN, C_none, 0, I_VPMOVSQD },
-        { "vpmovsqw", TOKEN_INSN, C_none, 0, I_VPMOVSQW },
-        { "vpmovswb", TOKEN_INSN, C_none, 0, I_VPMOVSWB },
-        { "vpmovusdb", TOKEN_INSN, C_none, 0, I_VPMOVUSDB },
-        { "vpmovusdw", TOKEN_INSN, C_none, 0, I_VPMOVUSDW },
-        { "vpmovusqb", TOKEN_INSN, C_none, 0, I_VPMOVUSQB },
-        { "vpmovusqd", TOKEN_INSN, C_none, 0, I_VPMOVUSQD },
-        { "vpmovusqw", TOKEN_INSN, C_none, 0, I_VPMOVUSQW },
-        { "vpmovuswb", TOKEN_INSN, C_none, 0, I_VPMOVUSWB },
-        { "vpmovw2m", TOKEN_INSN, C_none, 0, I_VPMOVW2M },
-        { "vpmovwb", TOKEN_INSN, C_none, 0, I_VPMOVWB },
-        { "vpmullq", TOKEN_INSN, C_none, 0, I_VPMULLQ },
-        { "vpmultishiftqb", TOKEN_INSN, C_none, 0, I_VPMULTISHIFTQB },
-        { "vpord", TOKEN_INSN, C_none, 0, I_VPORD },
-        { "vporq", TOKEN_INSN, C_none, 0, I_VPORQ },
-        { "vprold", TOKEN_INSN, C_none, 0, I_VPROLD },
-        { "vprolq", TOKEN_INSN, C_none, 0, I_VPROLQ },
-        { "vprolvd", TOKEN_INSN, C_none, 0, I_VPROLVD },
-        { "vprolvq", TOKEN_INSN, C_none, 0, I_VPROLVQ },
-        { "vprord", TOKEN_INSN, C_none, 0, I_VPRORD },
-        { "vprorq", TOKEN_INSN, C_none, 0, I_VPRORQ },
-        { "vprorvd", TOKEN_INSN, C_none, 0, I_VPRORVD },
-        { "vprorvq", TOKEN_INSN, C_none, 0, I_VPRORVQ },
-        { "vpscatterdd", TOKEN_INSN, C_none, 0, I_VPSCATTERDD },
-        { "vpscatterdq", TOKEN_INSN, C_none, 0, I_VPSCATTERDQ },
-        { "vpscatterqd", TOKEN_INSN, C_none, 0, I_VPSCATTERQD },
-        { "vpscatterqq", TOKEN_INSN, C_none, 0, I_VPSCATTERQQ },
-        { "vpsllvw", TOKEN_INSN, C_none, 0, I_VPSLLVW },
-        { "vpsraq", TOKEN_INSN, C_none, 0, I_VPSRAQ },
-        { "vpsravq", TOKEN_INSN, C_none, 0, I_VPSRAVQ },
-        { "vpsravw", TOKEN_INSN, C_none, 0, I_VPSRAVW },
-        { "vpsrlvw", TOKEN_INSN, C_none, 0, I_VPSRLVW },
-        { "vpternlogd", TOKEN_INSN, C_none, 0, I_VPTERNLOGD },
-        { "vpternlogq", TOKEN_INSN, C_none, 0, I_VPTERNLOGQ },
-        { "vptestmb", TOKEN_INSN, C_none, 0, I_VPTESTMB },
-        { "vptestmd", TOKEN_INSN, C_none, 0, I_VPTESTMD },
-        { "vptestmq", TOKEN_INSN, C_none, 0, I_VPTESTMQ },
-        { "vptestmw", TOKEN_INSN, C_none, 0, I_VPTESTMW },
-        { "vptestnmb", TOKEN_INSN, C_none, 0, I_VPTESTNMB },
-        { "vptestnmd", TOKEN_INSN, C_none, 0, I_VPTESTNMD },
-        { "vptestnmq", TOKEN_INSN, C_none, 0, I_VPTESTNMQ },
-        { "vptestnmw", TOKEN_INSN, C_none, 0, I_VPTESTNMW },
-        { "vpxord", TOKEN_INSN, C_none, 0, I_VPXORD },
-        { "vpxorq", TOKEN_INSN, C_none, 0, I_VPXORQ },
-        { "vrangepd", TOKEN_INSN, C_none, 0, I_VRANGEPD },
-        { "vrangeps", TOKEN_INSN, C_none, 0, I_VRANGEPS },
-        { "vrangesd", TOKEN_INSN, C_none, 0, I_VRANGESD },
-        { "vrangess", TOKEN_INSN, C_none, 0, I_VRANGESS },
-        { "vrcp14pd", TOKEN_INSN, C_none, 0, I_VRCP14PD },
-        { "vrcp14ps", TOKEN_INSN, C_none, 0, I_VRCP14PS },
-        { "vrcp14sd", TOKEN_INSN, C_none, 0, I_VRCP14SD },
-        { "vrcp14ss", TOKEN_INSN, C_none, 0, I_VRCP14SS },
-        { "vrcp28pd", TOKEN_INSN, C_none, 0, I_VRCP28PD },
-        { "vrcp28ps", TOKEN_INSN, C_none, 0, I_VRCP28PS },
-        { "vrcp28sd", TOKEN_INSN, C_none, 0, I_VRCP28SD },
-        { "vrcp28ss", TOKEN_INSN, C_none, 0, I_VRCP28SS },
-        { "vreducepd", TOKEN_INSN, C_none, 0, I_VREDUCEPD },
-        { "vreduceps", TOKEN_INSN, C_none, 0, I_VREDUCEPS },
-        { "vreducesd", TOKEN_INSN, C_none, 0, I_VREDUCESD },
-        { "vreducess", TOKEN_INSN, C_none, 0, I_VREDUCESS },
-        { "vrndscalepd", TOKEN_INSN, C_none, 0, I_VRNDSCALEPD },
-        { "vrndscaleps", TOKEN_INSN, C_none, 0, I_VRNDSCALEPS },
-        { "vrndscalesd", TOKEN_INSN, C_none, 0, I_VRNDSCALESD },
-        { "vrndscaless", TOKEN_INSN, C_none, 0, I_VRNDSCALESS },
-        { "vrsqrt14pd", TOKEN_INSN, C_none, 0, I_VRSQRT14PD },
-        { "vrsqrt14ps", TOKEN_INSN, C_none, 0, I_VRSQRT14PS },
-        { "vrsqrt14sd", TOKEN_INSN, C_none, 0, I_VRSQRT14SD },
-        { "vrsqrt14ss", TOKEN_INSN, C_none, 0, I_VRSQRT14SS },
-        { "vrsqrt28pd", TOKEN_INSN, C_none, 0, I_VRSQRT28PD },
-        { "vrsqrt28ps", TOKEN_INSN, C_none, 0, I_VRSQRT28PS },
-        { "vrsqrt28sd", TOKEN_INSN, C_none, 0, I_VRSQRT28SD },
-        { "vrsqrt28ss", TOKEN_INSN, C_none, 0, I_VRSQRT28SS },
-        { "vscalefpd", TOKEN_INSN, C_none, 0, I_VSCALEFPD },
-        { "vscalefps", TOKEN_INSN, C_none, 0, I_VSCALEFPS },
-        { "vscalefsd", TOKEN_INSN, C_none, 0, I_VSCALEFSD },
-        { "vscalefss", TOKEN_INSN, C_none, 0, I_VSCALEFSS },
-        { "vscatterdpd", TOKEN_INSN, C_none, 0, I_VSCATTERDPD },
-        { "vscatterdps", TOKEN_INSN, C_none, 0, I_VSCATTERDPS },
-        { "vscatterpf0dpd", TOKEN_INSN, C_none, 0, I_VSCATTERPF0DPD },
-        { "vscatterpf0dps", TOKEN_INSN, C_none, 0, I_VSCATTERPF0DPS },
-        { "vscatterpf0qpd", TOKEN_INSN, C_none, 0, I_VSCATTERPF0QPD },
-        { "vscatterpf0qps", TOKEN_INSN, C_none, 0, I_VSCATTERPF0QPS },
-        { "vscatterpf1dpd", TOKEN_INSN, C_none, 0, I_VSCATTERPF1DPD },
-        { "vscatterpf1dps", TOKEN_INSN, C_none, 0, I_VSCATTERPF1DPS },
-        { "vscatterpf1qpd", TOKEN_INSN, C_none, 0, I_VSCATTERPF1QPD },
-        { "vscatterpf1qps", TOKEN_INSN, C_none, 0, I_VSCATTERPF1QPS },
-        { "vscatterqpd", TOKEN_INSN, C_none, 0, I_VSCATTERQPD },
-        { "vscatterqps", TOKEN_INSN, C_none, 0, I_VSCATTERQPS },
-        { "vshuff32x4", TOKEN_INSN, C_none, 0, I_VSHUFF32X4 },
-        { "vshuff64x2", TOKEN_INSN, C_none, 0, I_VSHUFF64X2 },
-        { "vshufi32x4", TOKEN_INSN, C_none, 0, I_VSHUFI32X4 },
-        { "vshufi64x2", TOKEN_INSN, C_none, 0, I_VSHUFI64X2 },
-        { "rdpkru", TOKEN_INSN, C_none, 0, I_RDPKRU },
-        { "wrpkru", TOKEN_INSN, C_none, 0, I_WRPKRU },
-        { "rdpid", TOKEN_INSN, C_none, 0, I_RDPID },
-        { "clflushopt", TOKEN_INSN, C_none, 0, I_CLFLUSHOPT },
-        { "clwb", TOKEN_INSN, C_none, 0, I_CLWB },
-        { "pcommit", TOKEN_INSN, C_none, 0, I_PCOMMIT },
-        { "clzero", TOKEN_INSN, C_none, 0, I_CLZERO },
-        { "hint_nop0", TOKEN_INSN, C_none, 0, I_HINT_NOP0 },
-        { "hint_nop1", TOKEN_INSN, C_none, 0, I_HINT_NOP1 },
-        { "hint_nop2", TOKEN_INSN, C_none, 0, I_HINT_NOP2 },
-        { "hint_nop3", TOKEN_INSN, C_none, 0, I_HINT_NOP3 },
-        { "hint_nop4", TOKEN_INSN, C_none, 0, I_HINT_NOP4 },
-        { "hint_nop5", TOKEN_INSN, C_none, 0, I_HINT_NOP5 },
-        { "hint_nop6", TOKEN_INSN, C_none, 0, I_HINT_NOP6 },
-        { "hint_nop7", TOKEN_INSN, C_none, 0, I_HINT_NOP7 },
-        { "hint_nop8", TOKEN_INSN, C_none, 0, I_HINT_NOP8 },
-        { "hint_nop9", TOKEN_INSN, C_none, 0, I_HINT_NOP9 },
-        { "hint_nop10", TOKEN_INSN, C_none, 0, I_HINT_NOP10 },
-        { "hint_nop11", TOKEN_INSN, C_none, 0, I_HINT_NOP11 },
-        { "hint_nop12", TOKEN_INSN, C_none, 0, I_HINT_NOP12 },
-        { "hint_nop13", TOKEN_INSN, C_none, 0, I_HINT_NOP13 },
-        { "hint_nop14", TOKEN_INSN, C_none, 0, I_HINT_NOP14 },
-        { "hint_nop15", TOKEN_INSN, C_none, 0, I_HINT_NOP15 },
-        { "hint_nop16", TOKEN_INSN, C_none, 0, I_HINT_NOP16 },
-        { "hint_nop17", TOKEN_INSN, C_none, 0, I_HINT_NOP17 },
-        { "hint_nop18", TOKEN_INSN, C_none, 0, I_HINT_NOP18 },
-        { "hint_nop19", TOKEN_INSN, C_none, 0, I_HINT_NOP19 },
-        { "hint_nop20", TOKEN_INSN, C_none, 0, I_HINT_NOP20 },
-        { "hint_nop21", TOKEN_INSN, C_none, 0, I_HINT_NOP21 },
-        { "hint_nop22", TOKEN_INSN, C_none, 0, I_HINT_NOP22 },
-        { "hint_nop23", TOKEN_INSN, C_none, 0, I_HINT_NOP23 },
-        { "hint_nop24", TOKEN_INSN, C_none, 0, I_HINT_NOP24 },
-        { "hint_nop25", TOKEN_INSN, C_none, 0, I_HINT_NOP25 },
-        { "hint_nop26", TOKEN_INSN, C_none, 0, I_HINT_NOP26 },
-        { "hint_nop27", TOKEN_INSN, C_none, 0, I_HINT_NOP27 },
-        { "hint_nop28", TOKEN_INSN, C_none, 0, I_HINT_NOP28 },
-        { "hint_nop29", TOKEN_INSN, C_none, 0, I_HINT_NOP29 },
-        { "hint_nop30", TOKEN_INSN, C_none, 0, I_HINT_NOP30 },
-        { "hint_nop31", TOKEN_INSN, C_none, 0, I_HINT_NOP31 },
-        { "hint_nop32", TOKEN_INSN, C_none, 0, I_HINT_NOP32 },
-        { "hint_nop33", TOKEN_INSN, C_none, 0, I_HINT_NOP33 },
-        { "hint_nop34", TOKEN_INSN, C_none, 0, I_HINT_NOP34 },
-        { "hint_nop35", TOKEN_INSN, C_none, 0, I_HINT_NOP35 },
-        { "hint_nop36", TOKEN_INSN, C_none, 0, I_HINT_NOP36 },
-        { "hint_nop37", TOKEN_INSN, C_none, 0, I_HINT_NOP37 },
-        { "hint_nop38", TOKEN_INSN, C_none, 0, I_HINT_NOP38 },
-        { "hint_nop39", TOKEN_INSN, C_none, 0, I_HINT_NOP39 },
-        { "hint_nop40", TOKEN_INSN, C_none, 0, I_HINT_NOP40 },
-        { "hint_nop41", TOKEN_INSN, C_none, 0, I_HINT_NOP41 },
-        { "hint_nop42", TOKEN_INSN, C_none, 0, I_HINT_NOP42 },
-        { "hint_nop43", TOKEN_INSN, C_none, 0, I_HINT_NOP43 },
-        { "hint_nop44", TOKEN_INSN, C_none, 0, I_HINT_NOP44 },
-        { "hint_nop45", TOKEN_INSN, C_none, 0, I_HINT_NOP45 },
-        { "hint_nop46", TOKEN_INSN, C_none, 0, I_HINT_NOP46 },
-        { "hint_nop47", TOKEN_INSN, C_none, 0, I_HINT_NOP47 },
-        { "hint_nop48", TOKEN_INSN, C_none, 0, I_HINT_NOP48 },
-        { "hint_nop49", TOKEN_INSN, C_none, 0, I_HINT_NOP49 },
-        { "hint_nop50", TOKEN_INSN, C_none, 0, I_HINT_NOP50 },
-        { "hint_nop51", TOKEN_INSN, C_none, 0, I_HINT_NOP51 },
-        { "hint_nop52", TOKEN_INSN, C_none, 0, I_HINT_NOP52 },
-        { "hint_nop53", TOKEN_INSN, C_none, 0, I_HINT_NOP53 },
-        { "hint_nop54", TOKEN_INSN, C_none, 0, I_HINT_NOP54 },
-        { "hint_nop55", TOKEN_INSN, C_none, 0, I_HINT_NOP55 },
-        { "hint_nop56", TOKEN_INSN, C_none, 0, I_HINT_NOP56 },
-        { "hint_nop57", TOKEN_INSN, C_none, 0, I_HINT_NOP57 },
-        { "hint_nop58", TOKEN_INSN, C_none, 0, I_HINT_NOP58 },
-        { "hint_nop59", TOKEN_INSN, C_none, 0, I_HINT_NOP59 },
-        { "hint_nop60", TOKEN_INSN, C_none, 0, I_HINT_NOP60 },
-        { "hint_nop61", TOKEN_INSN, C_none, 0, I_HINT_NOP61 },
-        { "hint_nop62", TOKEN_INSN, C_none, 0, I_HINT_NOP62 },
-        { "hint_nop63", TOKEN_INSN, C_none, 0, I_HINT_NOP63 },
-        { "al", TOKEN_REG, 0, 0, R_AL },
-        { "ah", TOKEN_REG, 0, 0, R_AH },
-        { "ax", TOKEN_REG, 0, 0, R_AX },
-        { "eax", TOKEN_REG, 0, 0, R_EAX },
-        { "rax", TOKEN_REG, 0, 0, R_RAX },
-        { "bl", TOKEN_REG, 0, 0, R_BL },
-        { "bh", TOKEN_REG, 0, 0, R_BH },
-        { "bx", TOKEN_REG, 0, 0, R_BX },
-        { "ebx", TOKEN_REG, 0, 0, R_EBX },
-        { "rbx", TOKEN_REG, 0, 0, R_RBX },
-        { "cl", TOKEN_REG, 0, 0, R_CL },
-        { "ch", TOKEN_REG, 0, 0, R_CH },
-        { "cx", TOKEN_REG, 0, 0, R_CX },
-        { "ecx", TOKEN_REG, 0, 0, R_ECX },
-        { "rcx", TOKEN_REG, 0, 0, R_RCX },
-        { "dl", TOKEN_REG, 0, 0, R_DL },
-        { "dh", TOKEN_REG, 0, 0, R_DH },
-        { "dx", TOKEN_REG, 0, 0, R_DX },
-        { "edx", TOKEN_REG, 0, 0, R_EDX },
-        { "rdx", TOKEN_REG, 0, 0, R_RDX },
-        { "spl", TOKEN_REG, 0, 0, R_SPL },
-        { "sp", TOKEN_REG, 0, 0, R_SP },
-        { "esp", TOKEN_REG, 0, 0, R_ESP },
-        { "rsp", TOKEN_REG, 0, 0, R_RSP },
-        { "bpl", TOKEN_REG, 0, 0, R_BPL },
-        { "bp", TOKEN_REG, 0, 0, R_BP },
-        { "ebp", TOKEN_REG, 0, 0, R_EBP },
-        { "rbp", TOKEN_REG, 0, 0, R_RBP },
-        { "sil", TOKEN_REG, 0, 0, R_SIL },
-        { "si", TOKEN_REG, 0, 0, R_SI },
-        { "esi", TOKEN_REG, 0, 0, R_ESI },
-        { "rsi", TOKEN_REG, 0, 0, R_RSI },
-        { "dil", TOKEN_REG, 0, 0, R_DIL },
-        { "di", TOKEN_REG, 0, 0, R_DI },
-        { "edi", TOKEN_REG, 0, 0, R_EDI },
-        { "rdi", TOKEN_REG, 0, 0, R_RDI },
-        { "r8b", TOKEN_REG, 0, 0, R_R8B },
-        { "r9b", TOKEN_REG, 0, 0, R_R9B },
-        { "r10b", TOKEN_REG, 0, 0, R_R10B },
-        { "r11b", TOKEN_REG, 0, 0, R_R11B },
-        { "r12b", TOKEN_REG, 0, 0, R_R12B },
-        { "r13b", TOKEN_REG, 0, 0, R_R13B },
-        { "r14b", TOKEN_REG, 0, 0, R_R14B },
-        { "r15b", TOKEN_REG, 0, 0, R_R15B },
-        { "r8w", TOKEN_REG, 0, 0, R_R8W },
-        { "r9w", TOKEN_REG, 0, 0, R_R9W },
-        { "r10w", TOKEN_REG, 0, 0, R_R10W },
-        { "r11w", TOKEN_REG, 0, 0, R_R11W },
-        { "r12w", TOKEN_REG, 0, 0, R_R12W },
-        { "r13w", TOKEN_REG, 0, 0, R_R13W },
-        { "r14w", TOKEN_REG, 0, 0, R_R14W },
-        { "r15w", TOKEN_REG, 0, 0, R_R15W },
-        { "r8d", TOKEN_REG, 0, 0, R_R8D },
-        { "r9d", TOKEN_REG, 0, 0, R_R9D },
-        { "r10d", TOKEN_REG, 0, 0, R_R10D },
-        { "r11d", TOKEN_REG, 0, 0, R_R11D },
-        { "r12d", TOKEN_REG, 0, 0, R_R12D },
-        { "r13d", TOKEN_REG, 0, 0, R_R13D },
-        { "r14d", TOKEN_REG, 0, 0, R_R14D },
-        { "r15d", TOKEN_REG, 0, 0, R_R15D },
-        { "r8", TOKEN_REG, 0, 0, R_R8 },
-        { "r9", TOKEN_REG, 0, 0, R_R9 },
-        { "r10", TOKEN_REG, 0, 0, R_R10 },
-        { "r11", TOKEN_REG, 0, 0, R_R11 },
-        { "r12", TOKEN_REG, 0, 0, R_R12 },
-        { "r13", TOKEN_REG, 0, 0, R_R13 },
-        { "r14", TOKEN_REG, 0, 0, R_R14 },
-        { "r15", TOKEN_REG, 0, 0, R_R15 },
-        { "es", TOKEN_REG, 0, 0, R_ES },
-        { "cs", TOKEN_REG, 0, 0, R_CS },
-        { "ss", TOKEN_REG, 0, 0, R_SS },
-        { "ds", TOKEN_REG, 0, 0, R_DS },
-        { "fs", TOKEN_REG, 0, 0, R_FS },
-        { "gs", TOKEN_REG, 0, 0, R_GS },
-        { "segr6", TOKEN_REG, 0, 0, R_SEGR6 },
-        { "segr7", TOKEN_REG, 0, 0, R_SEGR7 },
-        { "cr0", TOKEN_REG, 0, 0, R_CR0 },
-        { "cr1", TOKEN_REG, 0, 0, R_CR1 },
-        { "cr2", TOKEN_REG, 0, 0, R_CR2 },
-        { "cr3", TOKEN_REG, 0, 0, R_CR3 },
-        { "cr4", TOKEN_REG, 0, 0, R_CR4 },
-        { "cr5", TOKEN_REG, 0, 0, R_CR5 },
-        { "cr6", TOKEN_REG, 0, 0, R_CR6 },
-        { "cr7", TOKEN_REG, 0, 0, R_CR7 },
-        { "cr8", TOKEN_REG, 0, 0, R_CR8 },
-        { "cr9", TOKEN_REG, 0, 0, R_CR9 },
-        { "cr10", TOKEN_REG, 0, 0, R_CR10 },
-        { "cr11", TOKEN_REG, 0, 0, R_CR11 },
-        { "cr12", TOKEN_REG, 0, 0, R_CR12 },
-        { "cr13", TOKEN_REG, 0, 0, R_CR13 },
-        { "cr14", TOKEN_REG, 0, 0, R_CR14 },
-        { "cr15", TOKEN_REG, 0, 0, R_CR15 },
-        { "dr0", TOKEN_REG, 0, 0, R_DR0 },
-        { "dr1", TOKEN_REG, 0, 0, R_DR1 },
-        { "dr2", TOKEN_REG, 0, 0, R_DR2 },
-        { "dr3", TOKEN_REG, 0, 0, R_DR3 },
-        { "dr4", TOKEN_REG, 0, 0, R_DR4 },
-        { "dr5", TOKEN_REG, 0, 0, R_DR5 },
-        { "dr6", TOKEN_REG, 0, 0, R_DR6 },
-        { "dr7", TOKEN_REG, 0, 0, R_DR7 },
-        { "dr8", TOKEN_REG, 0, 0, R_DR8 },
-        { "dr9", TOKEN_REG, 0, 0, R_DR9 },
-        { "dr10", TOKEN_REG, 0, 0, R_DR10 },
-        { "dr11", TOKEN_REG, 0, 0, R_DR11 },
-        { "dr12", TOKEN_REG, 0, 0, R_DR12 },
-        { "dr13", TOKEN_REG, 0, 0, R_DR13 },
-        { "dr14", TOKEN_REG, 0, 0, R_DR14 },
-        { "dr15", TOKEN_REG, 0, 0, R_DR15 },
-        { "tr0", TOKEN_REG, 0, 0, R_TR0 },
-        { "tr1", TOKEN_REG, 0, 0, R_TR1 },
-        { "tr2", TOKEN_REG, 0, 0, R_TR2 },
-        { "tr3", TOKEN_REG, 0, 0, R_TR3 },
-        { "tr4", TOKEN_REG, 0, 0, R_TR4 },
-        { "tr5", TOKEN_REG, 0, 0, R_TR5 },
-        { "tr6", TOKEN_REG, 0, 0, R_TR6 },
-        { "tr7", TOKEN_REG, 0, 0, R_TR7 },
-        { "st0", TOKEN_REG, 0, 0, R_ST0 },
-        { "st1", TOKEN_REG, 0, 0, R_ST1 },
-        { "st2", TOKEN_REG, 0, 0, R_ST2 },
-        { "st3", TOKEN_REG, 0, 0, R_ST3 },
-        { "st4", TOKEN_REG, 0, 0, R_ST4 },
-        { "st5", TOKEN_REG, 0, 0, R_ST5 },
-        { "st6", TOKEN_REG, 0, 0, R_ST6 },
-        { "st7", TOKEN_REG, 0, 0, R_ST7 },
-        { "mm0", TOKEN_REG, 0, 0, R_MM0 },
-        { "mm1", TOKEN_REG, 0, 0, R_MM1 },
-        { "mm2", TOKEN_REG, 0, 0, R_MM2 },
-        { "mm3", TOKEN_REG, 0, 0, R_MM3 },
-        { "mm4", TOKEN_REG, 0, 0, R_MM4 },
-        { "mm5", TOKEN_REG, 0, 0, R_MM5 },
-        { "mm6", TOKEN_REG, 0, 0, R_MM6 },
-        { "mm7", TOKEN_REG, 0, 0, R_MM7 },
-        { "xmm0", TOKEN_REG, 0, 0, R_XMM0 },
-        { "xmm1", TOKEN_REG, 0, 0, R_XMM1 },
-        { "xmm2", TOKEN_REG, 0, 0, R_XMM2 },
-        { "xmm3", TOKEN_REG, 0, 0, R_XMM3 },
-        { "xmm4", TOKEN_REG, 0, 0, R_XMM4 },
-        { "xmm5", TOKEN_REG, 0, 0, R_XMM5 },
-        { "xmm6", TOKEN_REG, 0, 0, R_XMM6 },
-        { "xmm7", TOKEN_REG, 0, 0, R_XMM7 },
-        { "xmm8", TOKEN_REG, 0, 0, R_XMM8 },
-        { "xmm9", TOKEN_REG, 0, 0, R_XMM9 },
-        { "xmm10", TOKEN_REG, 0, 0, R_XMM10 },
-        { "xmm11", TOKEN_REG, 0, 0, R_XMM11 },
-        { "xmm12", TOKEN_REG, 0, 0, R_XMM12 },
-        { "xmm13", TOKEN_REG, 0, 0, R_XMM13 },
-        { "xmm14", TOKEN_REG, 0, 0, R_XMM14 },
-        { "xmm15", TOKEN_REG, 0, 0, R_XMM15 },
-        { "xmm16", TOKEN_REG, 0, 0, R_XMM16 },
-        { "xmm17", TOKEN_REG, 0, 0, R_XMM17 },
-        { "xmm18", TOKEN_REG, 0, 0, R_XMM18 },
-        { "xmm19", TOKEN_REG, 0, 0, R_XMM19 },
-        { "xmm20", TOKEN_REG, 0, 0, R_XMM20 },
-        { "xmm21", TOKEN_REG, 0, 0, R_XMM21 },
-        { "xmm22", TOKEN_REG, 0, 0, R_XMM22 },
-        { "xmm23", TOKEN_REG, 0, 0, R_XMM23 },
-        { "xmm24", TOKEN_REG, 0, 0, R_XMM24 },
-        { "xmm25", TOKEN_REG, 0, 0, R_XMM25 },
-        { "xmm26", TOKEN_REG, 0, 0, R_XMM26 },
-        { "xmm27", TOKEN_REG, 0, 0, R_XMM27 },
-        { "xmm28", TOKEN_REG, 0, 0, R_XMM28 },
-        { "xmm29", TOKEN_REG, 0, 0, R_XMM29 },
-        { "xmm30", TOKEN_REG, 0, 0, R_XMM30 },
-        { "xmm31", TOKEN_REG, 0, 0, R_XMM31 },
-        { "ymm0", TOKEN_REG, 0, 0, R_YMM0 },
-        { "ymm1", TOKEN_REG, 0, 0, R_YMM1 },
-        { "ymm2", TOKEN_REG, 0, 0, R_YMM2 },
-        { "ymm3", TOKEN_REG, 0, 0, R_YMM3 },
-        { "ymm4", TOKEN_REG, 0, 0, R_YMM4 },
-        { "ymm5", TOKEN_REG, 0, 0, R_YMM5 },
-        { "ymm6", TOKEN_REG, 0, 0, R_YMM6 },
-        { "ymm7", TOKEN_REG, 0, 0, R_YMM7 },
-        { "ymm8", TOKEN_REG, 0, 0, R_YMM8 },
-        { "ymm9", TOKEN_REG, 0, 0, R_YMM9 },
-        { "ymm10", TOKEN_REG, 0, 0, R_YMM10 },
-        { "ymm11", TOKEN_REG, 0, 0, R_YMM11 },
-        { "ymm12", TOKEN_REG, 0, 0, R_YMM12 },
-        { "ymm13", TOKEN_REG, 0, 0, R_YMM13 },
-        { "ymm14", TOKEN_REG, 0, 0, R_YMM14 },
-        { "ymm15", TOKEN_REG, 0, 0, R_YMM15 },
-        { "ymm16", TOKEN_REG, 0, 0, R_YMM16 },
-        { "ymm17", TOKEN_REG, 0, 0, R_YMM17 },
-        { "ymm18", TOKEN_REG, 0, 0, R_YMM18 },
-        { "ymm19", TOKEN_REG, 0, 0, R_YMM19 },
-        { "ymm20", TOKEN_REG, 0, 0, R_YMM20 },
-        { "ymm21", TOKEN_REG, 0, 0, R_YMM21 },
-        { "ymm22", TOKEN_REG, 0, 0, R_YMM22 },
-        { "ymm23", TOKEN_REG, 0, 0, R_YMM23 },
-        { "ymm24", TOKEN_REG, 0, 0, R_YMM24 },
-        { "ymm25", TOKEN_REG, 0, 0, R_YMM25 },
-        { "ymm26", TOKEN_REG, 0, 0, R_YMM26 },
-        { "ymm27", TOKEN_REG, 0, 0, R_YMM27 },
-        { "ymm28", TOKEN_REG, 0, 0, R_YMM28 },
-        { "ymm29", TOKEN_REG, 0, 0, R_YMM29 },
-        { "ymm30", TOKEN_REG, 0, 0, R_YMM30 },
-        { "ymm31", TOKEN_REG, 0, 0, R_YMM31 },
-        { "zmm0", TOKEN_REG, 0, 0, R_ZMM0 },
-        { "zmm1", TOKEN_REG, 0, 0, R_ZMM1 },
-        { "zmm2", TOKEN_REG, 0, 0, R_ZMM2 },
-        { "zmm3", TOKEN_REG, 0, 0, R_ZMM3 },
-        { "zmm4", TOKEN_REG, 0, 0, R_ZMM4 },
-        { "zmm5", TOKEN_REG, 0, 0, R_ZMM5 },
-        { "zmm6", TOKEN_REG, 0, 0, R_ZMM6 },
-        { "zmm7", TOKEN_REG, 0, 0, R_ZMM7 },
-        { "zmm8", TOKEN_REG, 0, 0, R_ZMM8 },
-        { "zmm9", TOKEN_REG, 0, 0, R_ZMM9 },
-        { "zmm10", TOKEN_REG, 0, 0, R_ZMM10 },
-        { "zmm11", TOKEN_REG, 0, 0, R_ZMM11 },
-        { "zmm12", TOKEN_REG, 0, 0, R_ZMM12 },
-        { "zmm13", TOKEN_REG, 0, 0, R_ZMM13 },
-        { "zmm14", TOKEN_REG, 0, 0, R_ZMM14 },
-        { "zmm15", TOKEN_REG, 0, 0, R_ZMM15 },
-        { "zmm16", TOKEN_REG, 0, 0, R_ZMM16 },
-        { "zmm17", TOKEN_REG, 0, 0, R_ZMM17 },
-        { "zmm18", TOKEN_REG, 0, 0, R_ZMM18 },
-        { "zmm19", TOKEN_REG, 0, 0, R_ZMM19 },
-        { "zmm20", TOKEN_REG, 0, 0, R_ZMM20 },
-        { "zmm21", TOKEN_REG, 0, 0, R_ZMM21 },
-        { "zmm22", TOKEN_REG, 0, 0, R_ZMM22 },
-        { "zmm23", TOKEN_REG, 0, 0, R_ZMM23 },
-        { "zmm24", TOKEN_REG, 0, 0, R_ZMM24 },
-        { "zmm25", TOKEN_REG, 0, 0, R_ZMM25 },
-        { "zmm26", TOKEN_REG, 0, 0, R_ZMM26 },
-        { "zmm27", TOKEN_REG, 0, 0, R_ZMM27 },
-        { "zmm28", TOKEN_REG, 0, 0, R_ZMM28 },
-        { "zmm29", TOKEN_REG, 0, 0, R_ZMM29 },
-        { "zmm30", TOKEN_REG, 0, 0, R_ZMM30 },
-        { "zmm31", TOKEN_REG, 0, 0, R_ZMM31 },
-        { "k0", TOKEN_REG, 0, 0, R_K0 },
-        { "k1", TOKEN_REG, 0, TFLAG_BRC_OPT, R_K1 },
-        { "k2", TOKEN_REG, 0, TFLAG_BRC_OPT, R_K2 },
-        { "k3", TOKEN_REG, 0, TFLAG_BRC_OPT, R_K3 },
-        { "k4", TOKEN_REG, 0, TFLAG_BRC_OPT, R_K4 },
-        { "k5", TOKEN_REG, 0, TFLAG_BRC_OPT, R_K5 },
-        { "k6", TOKEN_REG, 0, TFLAG_BRC_OPT, R_K6 },
-        { "k7", TOKEN_REG, 0, TFLAG_BRC_OPT, R_K7 },
-        { "bnd0", TOKEN_REG, 0, 0, R_BND0 },
-        { "bnd1", TOKEN_REG, 0, 0, R_BND1 },
-        { "bnd2", TOKEN_REG, 0, 0, R_BND2 },
-        { "bnd3", TOKEN_REG, 0, 0, R_BND3 },
-        { "a16", TOKEN_PREFIX, 0, 0, P_A16 },
-        { "a32", TOKEN_PREFIX, 0, 0, P_A32 },
-        { "a64", TOKEN_PREFIX, 0, 0, P_A64 },
-        { "asp", TOKEN_PREFIX, 0, 0, P_ASP },
-        { "lock", TOKEN_PREFIX, 0, 0, P_LOCK },
-        { "o16", TOKEN_PREFIX, 0, 0, P_O16 },
-        { "o32", TOKEN_PREFIX, 0, 0, P_O32 },
-        { "o64", TOKEN_PREFIX, 0, 0, P_O64 },
-        { "osp", TOKEN_PREFIX, 0, 0, P_OSP },
-        { "rep", TOKEN_PREFIX, 0, 0, P_REP },
-        { "repe", TOKEN_PREFIX, 0, 0, P_REPE },
-        { "repne", TOKEN_PREFIX, 0, 0, P_REPNE },
-        { "repnz", TOKEN_PREFIX, 0, 0, P_REPNZ },
-        { "repz", TOKEN_PREFIX, 0, 0, P_REPZ },
-        { "times", TOKEN_PREFIX, 0, 0, P_TIMES },
-        { "wait", TOKEN_PREFIX, 0, 0, P_WAIT },
-        { "xacquire", TOKEN_PREFIX, 0, 0, P_XACQUIRE },
-        { "xrelease", TOKEN_PREFIX, 0, 0, P_XRELEASE },
-        { "bnd", TOKEN_PREFIX, 0, 0, P_BND },
-        { "nobnd", TOKEN_PREFIX, 0, 0, P_NOBND },
-        { "abs", TOKEN_SPECIAL, 0, 0, S_ABS },
-        { "byte", TOKEN_SPECIAL, 0, 0, S_BYTE },
-        { "dword", TOKEN_SPECIAL, 0, 0, S_DWORD },
-        { "far", TOKEN_SPECIAL, 0, 0, S_FAR },
-        { "long", TOKEN_SPECIAL, 0, 0, S_LONG },
-        { "near", TOKEN_SPECIAL, 0, 0, S_NEAR },
-        { "nosplit", TOKEN_SPECIAL, 0, 0, S_NOSPLIT },
-        { "oword", TOKEN_SPECIAL, 0, 0, S_OWORD },
-        { "qword", TOKEN_SPECIAL, 0, 0, S_QWORD },
-        { "rel", TOKEN_SPECIAL, 0, 0, S_REL },
-        { "short", TOKEN_SPECIAL, 0, 0, S_SHORT },
-        { "strict", TOKEN_SPECIAL, 0, 0, S_STRICT },
-        { "to", TOKEN_SPECIAL, 0, 0, S_TO },
-        { "tword", TOKEN_SPECIAL, 0, 0, S_TWORD },
-        { "word", TOKEN_SPECIAL, 0, 0, S_WORD },
-        { "yword", TOKEN_SPECIAL, 0, 0, S_YWORD },
-        { "zword", TOKEN_SPECIAL, 0, 0, S_ZWORD },
-        { "ptr", TOKEN_ID, 0, TFLAG_WARN, 0 },
-        { "__infinity__", TOKEN_FLOAT, 0, 0, 0 },
-        { "__nan__", TOKEN_FLOAT, 0, 0, 0 },
-        { "__qnan__", TOKEN_FLOAT, 0, 0, 0 },
-        { "__snan__", TOKEN_FLOAT, 0, 0, 0 },
-        { "__float8__", TOKEN_FLOATIZE, 0, 0, FLOAT_8 },
-        { "__float16__", TOKEN_FLOATIZE, 0, 0, FLOAT_16 },
-        { "__float32__", TOKEN_FLOATIZE, 0, 0, FLOAT_32 },
-        { "__float64__", TOKEN_FLOATIZE, 0, 0, FLOAT_64 },
-        { "__float80m__", TOKEN_FLOATIZE, 0, 0, FLOAT_80M },
-        { "__float80e__", TOKEN_FLOATIZE, 0, 0, FLOAT_80E },
-        { "__float128l__", TOKEN_FLOATIZE, 0, 0, FLOAT_128L },
-        { "__float128h__", TOKEN_FLOATIZE, 0, 0, FLOAT_128H },
-        { "__utf16__", TOKEN_STRFUNC, 0, 0, STRFUNC_UTF16 },
-        { "__utf16le__", TOKEN_STRFUNC, 0, 0, STRFUNC_UTF16LE },
-        { "__utf16be__", TOKEN_STRFUNC, 0, 0, STRFUNC_UTF16BE },
-        { "__utf32__", TOKEN_STRFUNC, 0, 0, STRFUNC_UTF32 },
-        { "__utf32le__", TOKEN_STRFUNC, 0, 0, STRFUNC_UTF32LE },
-        { "__utf32be__", TOKEN_STRFUNC, 0, 0, STRFUNC_UTF32BE },
-        { "__ilog2e__", TOKEN_IFUNC, 0, 0, IFUNC_ILOG2E },
-        { "__ilog2w__", TOKEN_IFUNC, 0, 0, IFUNC_ILOG2W },
-        { "__ilog2f__", TOKEN_IFUNC, 0, 0, IFUNC_ILOG2F },
-        { "__ilog2c__", TOKEN_IFUNC, 0, 0, IFUNC_ILOG2C },
-        { "seg", TOKEN_SEG, 0, 0, 0 },
-        { "wrt", TOKEN_WRT, 0, 0, 0 },
-        { "1to2", TOKEN_DECORATOR, 0, TFLAG_BRC | TFLAG_BRDCAST , BRC_1TO2 },
-        { "1to4", TOKEN_DECORATOR, 0, TFLAG_BRC | TFLAG_BRDCAST , BRC_1TO4 },
-        { "1to8", TOKEN_DECORATOR, 0, TFLAG_BRC | TFLAG_BRDCAST , BRC_1TO8 },
-        { "1to16", TOKEN_DECORATOR, 0, TFLAG_BRC | TFLAG_BRDCAST , BRC_1TO16 },
-        { "rn-sae", TOKEN_DECORATOR, 0, TFLAG_BRC, BRC_RN },
-        { "rd-sae", TOKEN_DECORATOR, 0, TFLAG_BRC, BRC_RD },
-        { "ru-sae", TOKEN_DECORATOR, 0, TFLAG_BRC, BRC_RU },
-        { "rz-sae", TOKEN_DECORATOR, 0, TFLAG_BRC, BRC_RZ },
-        { "sae", TOKEN_DECORATOR, 0, TFLAG_BRC, BRC_SAE },
-        { "z", TOKEN_DECORATOR, 0, TFLAG_BRC, BRC_Z },
-        { "evex", TOKEN_PREFIX, 0, TFLAG_BRC, P_EVEX },
-        { "vex3", TOKEN_PREFIX, 0, TFLAG_BRC, P_VEX3 },
-        { "vex2", TOKEN_PREFIX, 0, TFLAG_BRC, P_VEX2 },
-    };
-    uint32_t k1, k2;
-    uint64_t crc;
-    uint16_t ix;
-    const struct tokendata *data;
-
-    tv->t_flag = 0;
-    crc = crc64(UINT64_C(0xace2d0e480575791), token);
-    k1 = (uint32_t)crc;
-    k2 = (uint32_t)(crc >> 32);
-
-    ix = hash1[k1 & 0x7ff] + hash2[k2 & 0x7ff];
-    if (ix >= 2225)
-        return tv->t_type = TOKEN_ID;
-
-    data = &tokendata[ix];
-    if (strcmp(data->string, token))
-        return tv->t_type = TOKEN_ID;
-
-    tv->t_integer = data->num;
-    tv->t_inttwo  = data->aux;
-    tv->t_flag    = data->tokflag;
-    return tv->t_type = data->tokentype;
-}
--- a/nasmbuild/nasm-2.13rc9/asm/tokhash.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,284 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##   
-##   Copyright 1996-2014 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##     
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# Generate a perfect hash for token parsing
-#
-# Usage: tokenhash.pl insns.dat regs.dat tokens.dat
-#
-
-require 'phash.ph';
-
-my($output, $insns_dat, $regs_dat, $tokens_dat) = @ARGV;
-
-%tokens = ();
-@tokendata = ();
-
-#
-# List of condition codes
-#
-@conditions = ('a', 'ae', 'b', 'be', 'c', 'e', 'g', 'ge', 'l', 'le',
-	       'na', 'nae', 'nb', 'nbe', 'nc', 'ne', 'ng', 'nge', 'nl',
-	       'nle', 'no', 'np', 'ns', 'nz', 'o', 'p', 'pe', 'po', 's', 'z');
-
-#
-# Read insns.dat
-#
-open(ID, "< ${insns_dat}") or die "$0: cannot open $insns_dat: $!\n";
-while (defined($line = <ID>)) {
-    if ($line =~ /^([A-Z0-9_]+)(|cc)\s/) {
-	$insn = $1.$2;
-	($token = $1) =~ tr/A-Z/a-z/;
-
-	if ($2 eq '') {
-	    # Single instruction token
-	    if (!defined($tokens{$token})) {
-		$tokens{$token} = scalar @tokendata;
-		push(@tokendata, "\"${token}\", TOKEN_INSN, C_none, 0, I_${insn}");
-	    }
-	} else {
-	    # Conditional instruction
-	    foreach $cc (@conditions) {
-		if (!defined($tokens{$token.$cc})) {
-		    $tokens{$token.$cc} = scalar @tokendata;
-		    push(@tokendata, "\"${token}${cc}\", TOKEN_INSN, C_\U$cc\E, 0, I_${insn}");
-		}
-	    }
-	}
-    }
-}
-close(ID);
-
-#
-# Read regs.dat
-#
-open(RD, "< ${regs_dat}") or die "$0: cannot open $regs_dat: $!\n";
-while (defined($line = <RD>)) {
-    if ($line =~ /^([a-z0-9_-]+)\s*\S+\s*\S+\s*[0-9]+\s*(\S*)/) {
-	$reg = $1;
-	$reg_flag = $2;
-
-	if ($reg =~ /^(.*[^0-9])([0-9]+)\-([0-9]+)(|[^0-9].*)$/) {
-	    $nregs = $3-$2+1;
-	    $reg = $1.$2.$4;
-	    $reg_nr = $2;
-	    $reg_prefix = $1;
-	    $reg_suffix = $4;
-	} else {
-	    $nregs = 1;
-	    undef $reg_prefix, $reg_suffix;
-	}
-
-	while ($nregs--) {
-	    if (defined($tokens{$reg})) {
-		die "Duplicate definition: $reg\n";
-	    }
-	    $tokens{$reg} = scalar @tokendata;
-	    if ($reg_flag eq '') {
-	        push(@tokendata, "\"${reg}\", TOKEN_REG, 0, 0, R_\U${reg}\E");
-	    } else {
-	        push(@tokendata, "\"${reg}\", TOKEN_REG, 0, ${reg_flag}, R_\U${reg}\E");
-	    }
-
-	    if (defined($reg_prefix)) {
-		$reg_nr++;
-		$reg = sprintf("%s%u%s", $reg_prefix, $reg_nr, $reg_suffix);
-	    } else {
-		# Not a dashed sequence
-		die if ($nregs);
-	    }
-	}
-    }
-}
-close(RD);
-
-#
-# Read tokens.dat
-#
-open(TD, "< ${tokens_dat}") or die "$0: cannot open $tokens_dat: $!\n";
-while (defined($line = <TD>)) {
-    if ($line =~ /^\%\s+(.*)$/) {
-	$pattern = $1;
-    } elsif ($line =~ /^([a-z0-9_-]+)/) {
-	$token = $1;
-
-	if (defined($tokens{$token})) {
-	    die "Duplicate definition: $token\n";
-	}
-	$tokens{$token} = scalar @tokendata;
-
-	$data = $pattern;
-	if ($data =~ /^(.*)\{(.*)\}(.*)$/) {
-	    my $head = $1, $tail = $3;
-	    my $px = $2;
-
-	    $px =~ s/\*/(.*)/g;
-	    if ($token =~ /$px/i) {
-		$data = $head."\U$1".$tail;
-	    } else {
-		die "$0: token $token doesn't match $px\n";
-	    }
-	}
-
-	$data =~ s/\*/\U$token/g;
-
-	push(@tokendata, "\"$token\", $data");
-    }
-}
-close(TD);
-
-if ($output eq 'h') {
-    #
-    # tokens.h
-    #
-
-    $max_len = 0;
-    foreach $token (keys(%tokens)) {
-	if (length($token) > $max_len) {
-	    $max_len = length($token);
-	}
-    }
-
-    print "/*\n";
-    print " * This file is generated from insns.dat, regs.dat and token.dat\n";
-    print " * by tokhash.pl; do not edit.\n";
-    print " */\n";
-    print "\n";
-
-    print "#ifndef NASM_TOKENS_H\n";
-    print "#define NASM_TOKENS_H\n";
-    print "\n";
-    print "#define MAX_KEYWORD $max_len /* length of longest keyword */\n";
-    print "\n";
-    print "#endif /* NASM_TOKENS_H */\n";
-} elsif ($output eq 'c') {
-    #
-    # tokhash.c
-    #
-
-    @hashinfo = gen_perfect_hash(\%tokens);
-    if (!@hashinfo) {
-	die "$0: no hash found\n";
-    }
-
-    # Paranoia...
-    verify_hash_table(\%tokens, \@hashinfo);
-
-    ($n, $sv, $g) = @hashinfo;
-    $sv2 = $sv+2;
-
-    die if ($n & ($n-1));
-
-    print "/*\n";
-    print " * This file is generated from insns.dat, regs.dat and token.dat\n";
-    print " * by tokhash.pl; do not edit.\n";
-    print " */\n";
-    print "\n";
-
-    print "#include \"compiler.h\"\n";
-    print "#include <string.h>\n";
-    print "#include \"nasm.h\"\n";
-    print "#include \"hashtbl.h\"\n";
-    print "#include \"insns.h\"\n";
-    print "#include \"stdscan.h\"\n";
-    print "\n";
-
-    # These somewhat odd sizes and ordering thereof are due to the
-    # relative ranges of the types; this makes it fit in 16 bytes on
-    # 64-bit machines and 12 bytes on 32-bit machines.
-    print "struct tokendata {\n";
-    print "    const char *string;\n";
-    print "    int16_t tokentype;\n";
-    print "    int8_t aux;\n";
-    print "    int8_t tokflag;\n";
-    print "    int32_t num;\n";
-    print "};\n";
-    print "\n";
-
-    print "int nasm_token_hash(const char *token, struct tokenval *tv)\n";
-    print "{\n";
-
-    # Put a large value in unused slots.  This makes it extremely unlikely
-    # that any combination that involves unused slot will pass the range test.
-    # This speeds up rejection of unrecognized tokens, i.e. identifiers.
-    print "#define UNUSED (65535/3)\n";
-
-    print "    static const int16_t hash1[$n] = {\n";
-    for ($i = 0; $i < $n; $i++) {
-	my $h = ${$g}[$i*2+0];
-	print "        ", defined($h) ? $h : 'UNUSED', ",\n";
-    }
-    print "    };\n";
-
-    print "    static const int16_t hash2[$n] = {\n";
-    for ($i = 0; $i < $n; $i++) {
-	my $h = ${$g}[$i*2+1];
-	print "        ", defined($h) ? $h : 'UNUSED', ",\n";
-    }
-    print "    };\n";
-
-    printf "    static const struct tokendata tokendata[%d] = {\n", scalar(@tokendata);
-    foreach $d (@tokendata) {
-	print "        { ", $d, " },\n";
-    }
-    print  "    };\n";
-
-    print  "    uint32_t k1, k2;\n";
-    print  "    uint64_t crc;\n";
-    # For correct overflow behavior, "ix" should be unsigned of the same
-    # width as the hash arrays.
-    print  "    uint16_t ix;\n";
-    print  "    const struct tokendata *data;\n";
-    print  "\n";
-    printf "    tv->t_flag = 0;\n";
-    printf "    crc = crc64(UINT64_C(0x%08x%08x), token);\n",
-	$$sv[0], $$sv[1];
-    print  "    k1 = (uint32_t)crc;\n";
-    print  "    k2 = (uint32_t)(crc >> 32);\n";
-    print  "\n";
-    printf "    ix = hash1[k1 & 0x%x] + hash2[k2 & 0x%x];\n", $n-1, $n-1;
-    printf "    if (ix >= %d)\n", scalar(@tokendata);
-    print  "        return tv->t_type = TOKEN_ID;\n";
-    print  "\n";
-    print  "    data = &tokendata[ix];\n";
-
-    print  "    if (strcmp(data->string, token))\n";
-    print  "        return tv->t_type = TOKEN_ID;\n";
-    print  "\n";
-    print  "    tv->t_integer = data->num;\n";
-    print  "    tv->t_inttwo  = data->aux;\n";
-    print  "    tv->t_flag    = data->tokflag;\n";
-    print  "    return tv->t_type = data->tokentype;\n";
-    print  "}\n";
-}
--- a/nasmbuild/nasm-2.13rc9/autogen.sh	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-#!/bin/sh -xe
-#
-# Simple script to run the appropriate autotools from a repository.
-#
-autoheader
-autoconf
-rm -rf autom4te.cache config.log config.status
-rm -f Makefile rdoff/Makefile doc/Makefile
-rm -f config.h.in config.h config/config.h
--- a/nasmbuild/nasm-2.13rc9/common/common.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * common.c - code common to nasm and ndisasm
- */
-
-#include "compiler.h"
-#include "nasm.h"
-#include "nasmlib.h"
-#include "insns.h"
-
-/*
- * The current bit size of the CPU
- */
-int globalbits = 0;
-/*
- * Common list of prefix names; ideally should be auto-generated
- * from tokens.dat
- */
-const char *prefix_name(int token)
-{
-    static const char *prefix_names[] = {
-        "a16", "a32", "a64", "asp", "lock", "o16", "o32", "o64", "osp",
-        "rep", "repe", "repne", "repnz", "repz", "times", "wait",
-        "xacquire", "xrelease", "bnd"
-    };
-    unsigned int prefix = token-PREFIX_ENUM_START;
-
-    if (prefix >= ARRAY_SIZE(prefix_names))
-	return NULL;
-
-    return prefix_names[prefix];
-}
-
-/*
- * initialized data bytes length from opcode
- */
-int idata_bytes(int opcode)
-{
-    switch (opcode) {
-    case I_DB:
-        return 1;
-    case I_DW:
-        return 2;
-    case I_DD:
-        return 4;
-    case I_DQ:
-        return 8;
-    case I_DT:
-        return 10;
-    case I_DO:
-        return 16;
-    case I_DY:
-        return 32;
-    case I_DZ:
-        return 64;
-    case I_none:
-        return -1;
-    default:
-        return 0;
-    }
-}
--- a/nasmbuild/nasm-2.13rc9/confdefs.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/* confdefs.h */
-#define PACKAGE_NAME ""
-#define PACKAGE_TARNAME ""
-#define PACKAGE_VERSION ""
-#define PACKAGE_STRING ""
-#define PACKAGE_BUGREPORT ""
-#define PACKAGE_URL ""
-#define STDC_HEADERS 1
-#define HAVE_SYS_TYPES_H 1
-#define HAVE_SYS_STAT_H 1
-#define HAVE_STDLIB_H 1
-#define HAVE_STRING_H 1
-#define HAVE_MEMORY_H 1
-#define HAVE_STRINGS_H 1
-#define HAVE_INTTYPES_H 1
-#define HAVE_STDINT_H 1
-#define HAVE_UNISTD_H 1
-#define __EXTENSIONS__ 1
-#define _ALL_SOURCE 1
-#define _GNU_SOURCE 1
-#define _POSIX_PTHREAD_SEMANTICS 1
-#define _TANDEM_SOURCE 1
-#define restrict __restrict
-#define WORDS_LITTLEENDIAN 1
-#define STDC_HEADERS 1
-#define HAVE_INTTYPES_H 1
-#define HAVE_STRINGS_H 1
-#define HAVE__BOOL 1
-#define HAVE_STDBOOL_H 1
-#define HAVE_STDNORETURN_H 1
-#define HAVE_FCNTL_H 1
-#define HAVE_UNISTD_H 1
-#define HAVE_SYS_PARAM_H 1
-#define HAVE_SYS_MMAN_H 1
-#define HAVE_SYS_STAT_H 1
-#define HAVE_SYS_TYPES_H 1
-#define HAVE_STRCASECMP 1
-#define HAVE_STRNCASECMP 1
-#define HAVE_STRSEP 1
-#define HAVE_STRNLEN 1
-#define HAVE_GETUID 1
-#define HAVE_GETGID 1
-#define HAVE_REALPATH 1
--- a/nasmbuild/nasm-2.13rc9/config.log	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1187 +0,0 @@
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by configure, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
-
-  $ ./configure 
-
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = umlbox
-uname -m = x86_64
-uname -r = 3.13.0-umlbox
-uname -s = Linux
-uname -v = #1 Wed Jan 29 12:56:45 UTC 2014
-
-/usr/bin/uname -p = unknown
-/bin/uname -X     = unknown
-
-/bin/arch              = unknown
-/usr/bin/arch -k       = unknown
-/usr/convex/getsysinfo = unknown
-/usr/bin/hostinfo      = unknown
-/bin/machine           = unknown
-/usr/bin/oslevel       = unknown
-/bin/universe          = unknown
-
-PATH: /hackenv/bin
-PATH: /opt/python27/bin
-PATH: /opt/ghc/bin
-PATH: /usr/bin
-PATH: /bin
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-configure:2221: checking for nasm
-configure:2254: result: no
-configure:2360: checking for gcc
-configure:2376: found /usr/bin/gcc
-configure:2387: result: gcc
-configure:2616: checking for C compiler version
-configure:2625: gcc --version >&5
-gcc (Debian 4.9.2-10) 4.9.2
-Copyright (C) 2014 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-configure:2636: $? = 0
-configure:2625: gcc -v >&5
-Using built-in specs.
-COLLECT_GCC=gcc
-COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
-Target: x86_64-linux-gnu
-Configured with: ../src/configure -v --with-pkgversion='Debian 4.9.2-10' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
-Thread model: posix
-gcc version 4.9.2 (Debian 4.9.2-10) 
-configure:2636: $? = 0
-configure:2625: gcc -V >&5
-gcc: error: unrecognized command line option '-V'
-gcc: fatal error: no input files
-compilation terminated.
-configure:2636: $? = 4
-configure:2625: gcc -qversion >&5
-gcc: error: unrecognized command line option '-qversion'
-gcc: fatal error: no input files
-compilation terminated.
-configure:2636: $? = 4
-configure:2656: checking whether the C compiler works
-configure:2678: gcc    conftest.c  >&5
-configure:2682: $? = 0
-configure:2730: result: yes
-configure:2733: checking for C compiler default output file name
-configure:2735: result: a.out
-configure:2741: checking for suffix of executables
-configure:2748: gcc -o conftest    conftest.c  >&5
-configure:2752: $? = 0
-configure:2774: result: 
-configure:2796: checking whether we are cross compiling
-configure:2804: gcc -o conftest    conftest.c  >&5
-configure:2808: $? = 0
-configure:2815: ./conftest
-configure:2819: $? = 0
-configure:2834: result: no
-configure:2839: checking for suffix of object files
-configure:2861: gcc -c   conftest.c >&5
-configure:2865: $? = 0
-configure:2886: result: o
-configure:2890: checking whether we are using the GNU C compiler
-configure:2909: gcc -c   conftest.c >&5
-configure:2909: $? = 0
-configure:2918: result: yes
-configure:2927: checking whether gcc accepts -g
-configure:2947: gcc -c -g  conftest.c >&5
-configure:2947: $? = 0
-configure:2988: result: yes
-configure:3005: checking for gcc option to accept ISO C89
-configure:3068: gcc  -c -g -O2  conftest.c >&5
-configure:3068: $? = 0
-configure:3081: result: none needed
-configure:3107: checking how to run the C preprocessor
-configure:3138: gcc -E  conftest.c
-configure:3138: $? = 0
-configure:3152: gcc -E  conftest.c
-conftest.c:9:28: fatal error: ac_nonexistent.h: No such file or directory
- #include <ac_nonexistent.h>
-                            ^
-compilation terminated.
-configure:3152: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME ""
-| #define PACKAGE_TARNAME ""
-| #define PACKAGE_VERSION ""
-| #define PACKAGE_STRING ""
-| #define PACKAGE_BUGREPORT ""
-| #define PACKAGE_URL ""
-| /* end confdefs.h.  */
-| #include <ac_nonexistent.h>
-configure:3177: result: gcc -E
-configure:3197: gcc -E  conftest.c
-configure:3197: $? = 0
-configure:3211: gcc -E  conftest.c
-conftest.c:9:28: fatal error: ac_nonexistent.h: No such file or directory
- #include <ac_nonexistent.h>
-                            ^
-compilation terminated.
-configure:3211: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME ""
-| #define PACKAGE_TARNAME ""
-| #define PACKAGE_VERSION ""
-| #define PACKAGE_STRING ""
-| #define PACKAGE_BUGREPORT ""
-| #define PACKAGE_URL ""
-| /* end confdefs.h.  */
-| #include <ac_nonexistent.h>
-configure:3240: checking for grep that handles long lines and -e
-configure:3298: result: /bin/grep
-configure:3303: checking for egrep
-configure:3365: result: /bin/grep -E
-configure:3370: checking for ANSI C header files
-configure:3390: gcc -c -g -O2  conftest.c >&5
-configure:3390: $? = 0
-configure:3463: gcc -o conftest -g -O2   conftest.c  >&5
-configure:3463: $? = 0
-configure:3463: ./conftest
-configure:3463: $? = 0
-configure:3474: result: yes
-configure:3487: checking for sys/types.h
-configure:3487: gcc -c -g -O2  conftest.c >&5
-configure:3487: $? = 0
-configure:3487: result: yes
-configure:3487: checking for sys/stat.h
-configure:3487: gcc -c -g -O2  conftest.c >&5
-configure:3487: $? = 0
-configure:3487: result: yes
-configure:3487: checking for stdlib.h
-configure:3487: gcc -c -g -O2  conftest.c >&5
-configure:3487: $? = 0
-configure:3487: result: yes
-configure:3487: checking for string.h
-configure:3487: gcc -c -g -O2  conftest.c >&5
-configure:3487: $? = 0
-configure:3487: result: yes
-configure:3487: checking for memory.h
-configure:3487: gcc -c -g -O2  conftest.c >&5
-configure:3487: $? = 0
-configure:3487: result: yes
-configure:3487: checking for strings.h
-configure:3487: gcc -c -g -O2  conftest.c >&5
-configure:3487: $? = 0
-configure:3487: result: yes
-configure:3487: checking for inttypes.h
-configure:3487: gcc -c -g -O2  conftest.c >&5
-configure:3487: $? = 0
-configure:3487: result: yes
-configure:3487: checking for stdint.h
-configure:3487: gcc -c -g -O2  conftest.c >&5
-configure:3487: $? = 0
-configure:3487: result: yes
-configure:3487: checking for unistd.h
-configure:3487: gcc -c -g -O2  conftest.c >&5
-configure:3487: $? = 0
-configure:3487: result: yes
-configure:3500: checking minix/config.h usability
-configure:3500: gcc -c -g -O2  conftest.c >&5
-conftest.c:52:26: fatal error: minix/config.h: No such file or directory
- #include <minix/config.h>
-                          ^
-compilation terminated.
-configure:3500: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME ""
-| #define PACKAGE_TARNAME ""
-| #define PACKAGE_VERSION ""
-| #define PACKAGE_STRING ""
-| #define PACKAGE_BUGREPORT ""
-| #define PACKAGE_URL ""
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| /* end confdefs.h.  */
-| #include <stdio.h>
-| #ifdef HAVE_SYS_TYPES_H
-| # include <sys/types.h>
-| #endif
-| #ifdef HAVE_SYS_STAT_H
-| # include <sys/stat.h>
-| #endif
-| #ifdef STDC_HEADERS
-| # include <stdlib.h>
-| # include <stddef.h>
-| #else
-| # ifdef HAVE_STDLIB_H
-| #  include <stdlib.h>
-| # endif
-| #endif
-| #ifdef HAVE_STRING_H
-| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-| #  include <memory.h>
-| # endif
-| # include <string.h>
-| #endif
-| #ifdef HAVE_STRINGS_H
-| # include <strings.h>
-| #endif
-| #ifdef HAVE_INTTYPES_H
-| # include <inttypes.h>
-| #endif
-| #ifdef HAVE_STDINT_H
-| # include <stdint.h>
-| #endif
-| #ifdef HAVE_UNISTD_H
-| # include <unistd.h>
-| #endif
-| #include <minix/config.h>
-configure:3500: result: no
-configure:3500: checking minix/config.h presence
-configure:3500: gcc -E  conftest.c
-conftest.c:19:26: fatal error: minix/config.h: No such file or directory
- #include <minix/config.h>
-                          ^
-compilation terminated.
-configure:3500: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME ""
-| #define PACKAGE_TARNAME ""
-| #define PACKAGE_VERSION ""
-| #define PACKAGE_STRING ""
-| #define PACKAGE_BUGREPORT ""
-| #define PACKAGE_URL ""
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| /* end confdefs.h.  */
-| #include <minix/config.h>
-configure:3500: result: no
-configure:3500: checking for minix/config.h
-configure:3500: result: no
-configure:3521: checking whether it is safe to define __EXTENSIONS__
-configure:3539: gcc -c -g -O2  conftest.c >&5
-configure:3539: $? = 0
-configure:3546: result: yes
-configure:3567: checking for special C compiler options needed for large files
-configure:3612: result: no
-configure:3618: checking for _FILE_OFFSET_BITS value needed for large files
-configure:3643: gcc -c -g -O2  conftest.c >&5
-configure:3643: $? = 0
-configure:3675: result: no
-configure:3808: checking for gcc
-configure:3835: result: gcc
-configure:4064: checking for C compiler version
-configure:4073: gcc --version >&5
-gcc (Debian 4.9.2-10) 4.9.2
-Copyright (C) 2014 Free Software Foundation, Inc.
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-configure:4084: $? = 0
-configure:4073: gcc -v >&5
-Using built-in specs.
-COLLECT_GCC=gcc
-COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/4.9/lto-wrapper
-Target: x86_64-linux-gnu
-Configured with: ../src/configure -v --with-pkgversion='Debian 4.9.2-10' --with-bugurl=file:///usr/share/doc/gcc-4.9/README.Bugs --enable-languages=c,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.9 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.9 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-4.9-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-4.9-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --with-arch-32=i586 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
-Thread model: posix
-gcc version 4.9.2 (Debian 4.9.2-10) 
-configure:4084: $? = 0
-configure:4073: gcc -V >&5
-gcc: error: unrecognized command line option '-V'
-gcc: fatal error: no input files
-compilation terminated.
-configure:4084: $? = 4
-configure:4073: gcc -qversion >&5
-gcc: error: unrecognized command line option '-qversion'
-gcc: fatal error: no input files
-compilation terminated.
-configure:4084: $? = 4
-configure:4088: checking whether we are using the GNU C compiler
-configure:4116: result: yes
-configure:4125: checking whether gcc accepts -g
-configure:4186: result: yes
-configure:4203: checking for gcc option to accept ISO C89
-configure:4279: result: none needed
-configure:4303: checking for gcc option to accept ISO C99
-configure:4452: gcc  -c -g -O2  conftest.c >&5
-conftest.c:74:29: error: expected ';', ',' or ')' before 'text'
- test_restrict (ccp restrict text)
-                             ^
-conftest.c: In function 'main':
-conftest.c:128:18: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'newvar'
-   char *restrict newvar = "Another string";
-                  ^
-conftest.c:128:18: error: 'newvar' undeclared (first use in this function)
-conftest.c:128:18: note: each undeclared identifier is reported only once for each function it appears in
-conftest.c:138:3: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
-   for (int i = 0; i < ia->datasize; ++i)
-   ^
-conftest.c:138:3: note: use option -std=c99, -std=gnu99, -std=c11 or -std=gnu11 to compile your code
-configure:4452: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME ""
-| #define PACKAGE_TARNAME ""
-| #define PACKAGE_VERSION ""
-| #define PACKAGE_STRING ""
-| #define PACKAGE_BUGREPORT ""
-| #define PACKAGE_URL ""
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define __EXTENSIONS__ 1
-| #define _ALL_SOURCE 1
-| #define _GNU_SOURCE 1
-| #define _POSIX_PTHREAD_SEMANTICS 1
-| #define _TANDEM_SOURCE 1
-| /* end confdefs.h.  */
-| #include <stdarg.h>
-| #include <stdbool.h>
-| #include <stdlib.h>
-| #include <wchar.h>
-| #include <stdio.h>
-| 
-| // Check varargs macros.  These examples are taken from C99 6.10.3.5.
-| #define debug(...) fprintf (stderr, __VA_ARGS__)
-| #define showlist(...) puts (#__VA_ARGS__)
-| #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
-| static void
-| test_varargs_macros (void)
-| {
-|   int x = 1234;
-|   int y = 5678;
-|   debug ("Flag");
-|   debug ("X = %d\n", x);
-|   showlist (The first, second, and third items.);
-|   report (x>y, "x is %d but y is %d", x, y);
-| }
-| 
-| // Check long long types.
-| #define BIG64 18446744073709551615ull
-| #define BIG32 4294967295ul
-| #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
-| #if !BIG_OK
-|   your preprocessor is broken;
-| #endif
-| #if BIG_OK
-| #else
-|   your preprocessor is broken;
-| #endif
-| static long long int bignum = -9223372036854775807LL;
-| static unsigned long long int ubignum = BIG64;
-| 
-| struct incomplete_array
-| {
-|   int datasize;
-|   double data[];
-| };
-| 
-| struct named_init {
-|   int number;
-|   const wchar_t *name;
-|   double average;
-| };
-| 
-| typedef const char *ccp;
-| 
-| static inline int
-| test_restrict (ccp restrict text)
-| {
-|   // See if C++-style comments work.
-|   // Iterate through items via the restricted pointer.
-|   // Also check for declarations in for loops.
-|   for (unsigned int i = 0; *(text+i) != '\0'; ++i)
-|     continue;
-|   return 0;
-| }
-| 
-| // Check varargs and va_copy.
-| static void
-| test_varargs (const char *format, ...)
-| {
-|   va_list args;
-|   va_start (args, format);
-|   va_list args_copy;
-|   va_copy (args_copy, args);
-| 
-|   const char *str;
-|   int number;
-|   float fnumber;
-| 
-|   while (*format)
-|     {
-|       switch (*format++)
-| 	{
-| 	case 's': // string
-| 	  str = va_arg (args_copy, const char *);
-| 	  break;
-| 	case 'd': // int
-| 	  number = va_arg (args_copy, int);
-| 	  break;
-| 	case 'f': // float
-| 	  fnumber = va_arg (args_copy, double);
-| 	  break;
-| 	default:
-| 	  break;
-| 	}
-|     }
-|   va_end (args_copy);
-|   va_end (args);
-| }
-| 
-| int
-| main ()
-| {
-| 
-|   // Check bool.
-|   _Bool success = false;
-| 
-|   // Check restrict.
-|   if (test_restrict ("String literal") == 0)
-|     success = true;
-|   char *restrict newvar = "Another string";
-| 
-|   // Check varargs.
-|   test_varargs ("s, d' f .", "string", 65, 34.234);
-|   test_varargs_macros ();
-| 
-|   // Check flexible array members.
-|   struct incomplete_array *ia =
-|     malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
-|   ia->datasize = 10;
-|   for (int i = 0; i < ia->datasize; ++i)
-|     ia->data[i] = i * 1.234;
-| 
-|   // Check named initializers.
-|   struct named_init ni = {
-|     .number = 34,
-|     .name = L"Test wide string",
-|     .average = 543.34343,
-|   };
-| 
-|   ni.number = 58;
-| 
-|   int dynamic_array[ni.number];
-|   dynamic_array[ni.number - 1] = 543;
-| 
-|   // work around unused variable warnings
-|   return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
-| 	  || dynamic_array[ni.number - 1] != 543);
-| 
-|   ;
-|   return 0;
-| }
-configure:4452: gcc -std=gnu99 -c -g -O2  conftest.c >&5
-configure:4452: $? = 0
-configure:4472: result: -std=gnu99
-configure:4573: checking for gcc -std=gnu99 option to accept ISO Standard C
-configure:4587: result: -std=gnu99
-configure:4591: checking whether ln -s works
-configure:4595: result: yes
-configure:4602: checking whether make sets $(MAKE)
-configure:4624: result: yes
-configure:4676: checking for a BSD-compatible install
-configure:4744: result: /usr/bin/install -c
-configure:4760: checking for suffix of library files
-configure:4772: result: a
-configure:4776: checking for an ANSI C-conforming const
-configure:4842: gcc -std=gnu99 -c -g -O3  conftest.c >&5
-configure:4842: $? = 0
-configure:4849: result: yes
-configure:4857: checking for inline
-configure:4873: gcc -std=gnu99 -c -g -O3  conftest.c >&5
-configure:4873: $? = 0
-configure:4881: result: inline
-configure:4899: checking for C/C++ restrict keyword
-configure:4924: gcc -std=gnu99 -c -g -O3  conftest.c >&5
-configure:4924: $? = 0
-configure:4932: result: __restrict
-configure:4945: checking for size_t
-configure:4945: gcc -std=gnu99 -c -g -O3  conftest.c >&5
-configure:4945: $? = 0
-configure:4945: gcc -std=gnu99 -c -g -O3  conftest.c >&5
-conftest.c: In function 'main':
-conftest.c:61:21: error: expected expression before ')' token
- if (sizeof ((size_t)))
-                     ^
-configure:4945: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME ""
-| #define PACKAGE_TARNAME ""
-| #define PACKAGE_VERSION ""
-| #define PACKAGE_STRING ""
-| #define PACKAGE_BUGREPORT ""
-| #define PACKAGE_URL ""
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define __EXTENSIONS__ 1
-| #define _ALL_SOURCE 1
-| #define _GNU_SOURCE 1
-| #define _POSIX_PTHREAD_SEMANTICS 1
-| #define _TANDEM_SOURCE 1
-| #define restrict __restrict
-| /* end confdefs.h.  */
-| #include <stdio.h>
-| #ifdef HAVE_SYS_TYPES_H
-| # include <sys/types.h>
-| #endif
-| #ifdef HAVE_SYS_STAT_H
-| # include <sys/stat.h>
-| #endif
-| #ifdef STDC_HEADERS
-| # include <stdlib.h>
-| # include <stddef.h>
-| #else
-| # ifdef HAVE_STDLIB_H
-| #  include <stdlib.h>
-| # endif
-| #endif
-| #ifdef HAVE_STRING_H
-| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-| #  include <memory.h>
-| # endif
-| # include <string.h>
-| #endif
-| #ifdef HAVE_STRINGS_H
-| # include <strings.h>
-| #endif
-| #ifdef HAVE_INTTYPES_H
-| # include <inttypes.h>
-| #endif
-| #ifdef HAVE_STDINT_H
-| # include <stdint.h>
-| #endif
-| #ifdef HAVE_UNISTD_H
-| # include <unistd.h>
-| #endif
-| int
-| main ()
-| {
-| if (sizeof ((size_t)))
-| 	    return 0;
-|   ;
-|   return 0;
-| }
-configure:4945: result: yes
-configure:4956: checking whether byte ordering is bigendian
-configure:4971: gcc -std=gnu99 -c -g -O3  conftest.c >&5
-conftest.c:26:9: error: unknown type name 'not'
-         not a universal capable compiler
-         ^
-conftest.c:26:15: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'universal'
-         not a universal capable compiler
-               ^
-conftest.c:26:15: error: unknown type name 'universal'
-configure:4971: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME ""
-| #define PACKAGE_TARNAME ""
-| #define PACKAGE_VERSION ""
-| #define PACKAGE_STRING ""
-| #define PACKAGE_BUGREPORT ""
-| #define PACKAGE_URL ""
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define __EXTENSIONS__ 1
-| #define _ALL_SOURCE 1
-| #define _GNU_SOURCE 1
-| #define _POSIX_PTHREAD_SEMANTICS 1
-| #define _TANDEM_SOURCE 1
-| #define restrict __restrict
-| /* end confdefs.h.  */
-| #ifndef __APPLE_CC__
-| 	       not a universal capable compiler
-| 	     #endif
-| 	     typedef int dummy;
-| 
-configure:5016: gcc -std=gnu99 -c -g -O3  conftest.c >&5
-configure:5016: $? = 0
-configure:5034: gcc -std=gnu99 -c -g -O3  conftest.c >&5
-conftest.c: In function 'main':
-conftest.c:32:4: error: unknown type name 'not'
-    not big endian
-    ^
-conftest.c:32:12: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'endian'
-    not big endian
-            ^
-configure:5034: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME ""
-| #define PACKAGE_TARNAME ""
-| #define PACKAGE_VERSION ""
-| #define PACKAGE_STRING ""
-| #define PACKAGE_BUGREPORT ""
-| #define PACKAGE_URL ""
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define __EXTENSIONS__ 1
-| #define _ALL_SOURCE 1
-| #define _GNU_SOURCE 1
-| #define _POSIX_PTHREAD_SEMANTICS 1
-| #define _TANDEM_SOURCE 1
-| #define restrict __restrict
-| /* end confdefs.h.  */
-| #include <sys/types.h>
-| 		#include <sys/param.h>
-| 
-| int
-| main ()
-| {
-| #if BYTE_ORDER != BIG_ENDIAN
-| 		 not big endian
-| 		#endif
-| 
-|   ;
-|   return 0;
-| }
-configure:5162: result: no
-configure:5184: checking if gcc -std=gnu99 accepts -fwrapv
-configure:5199: gcc -std=gnu99 -o conftest -g -O3 -fwrapv   conftest.c  >&5
-configure:5199: $? = 0
-configure:5200: result: yes
-configure:5211: checking if gcc -std=gnu99 accepts -U__STRICT_ANSI__
-configure:5226: gcc -std=gnu99 -o conftest -g -O3 -fwrapv -U__STRICT_ANSI__   conftest.c  >&5
-configure:5226: $? = 0
-configure:5227: result: yes
-configure:5238: checking if gcc -std=gnu99 accepts -fno-common
-configure:5253: gcc -std=gnu99 -o conftest -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common   conftest.c  >&5
-configure:5253: $? = 0
-configure:5254: result: yes
-configure:5269: checking for nroff
-configure:5285: found /usr/bin/nroff
-configure:5296: result: nroff
-configure:5312: checking for asciidoc
-configure:5342: result: no
-configure:5355: checking for xmlto
-configure:5385: result: no
-configure:5398: checking for acrodist
-configure:5428: result: no
-configure:5441: checking for ps2pdf
-configure:5471: result: no
-configure:5484: checking for pstopdf
-configure:5514: result: no
-configure:5525: WARNING: No asciidoc package found
-configure:5529: WARNING: No xmlto package found
-configure:5576: checking for ar
-configure:5592: found /usr/bin/ar
-configure:5603: result: ar
-configure:5668: checking for ranlib
-configure:5684: found /usr/bin/ranlib
-configure:5695: result: ranlib
-configure:5760: checking for strip
-configure:5776: found /usr/bin/strip
-configure:5787: result: strip
-configure:5810: checking for ANSI C header files
-configure:5914: result: yes
-configure:5924: checking for inttypes.h
-configure:5924: result: yes
-configure:5936: checking for strings.h
-configure:5936: result: yes
-configure:5946: checking for stdbool.h that conforms to C99
-configure:6013: gcc -std=gnu99 -c -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common  conftest.c >&5
-configure:6013: $? = 0
-configure:6020: result: yes
-configure:6022: checking for _Bool
-configure:6022: gcc -std=gnu99 -c -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common  conftest.c >&5
-configure:6022: $? = 0
-configure:6022: gcc -std=gnu99 -c -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common  conftest.c >&5
-conftest.c: In function 'main':
-conftest.c:65:20: error: expected expression before ')' token
- if (sizeof ((_Bool)))
-                    ^
-configure:6022: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME ""
-| #define PACKAGE_TARNAME ""
-| #define PACKAGE_VERSION ""
-| #define PACKAGE_STRING ""
-| #define PACKAGE_BUGREPORT ""
-| #define PACKAGE_URL ""
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define __EXTENSIONS__ 1
-| #define _ALL_SOURCE 1
-| #define _GNU_SOURCE 1
-| #define _POSIX_PTHREAD_SEMANTICS 1
-| #define _TANDEM_SOURCE 1
-| #define restrict __restrict
-| #define WORDS_LITTLEENDIAN 1
-| #define STDC_HEADERS 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STRINGS_H 1
-| /* end confdefs.h.  */
-| #include <stdio.h>
-| #ifdef HAVE_SYS_TYPES_H
-| # include <sys/types.h>
-| #endif
-| #ifdef HAVE_SYS_STAT_H
-| # include <sys/stat.h>
-| #endif
-| #ifdef STDC_HEADERS
-| # include <stdlib.h>
-| # include <stddef.h>
-| #else
-| # ifdef HAVE_STDLIB_H
-| #  include <stdlib.h>
-| # endif
-| #endif
-| #ifdef HAVE_STRING_H
-| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-| #  include <memory.h>
-| # endif
-| # include <string.h>
-| #endif
-| #ifdef HAVE_STRINGS_H
-| # include <strings.h>
-| #endif
-| #ifdef HAVE_INTTYPES_H
-| # include <inttypes.h>
-| #endif
-| #ifdef HAVE_STDINT_H
-| # include <stdint.h>
-| #endif
-| #ifdef HAVE_UNISTD_H
-| # include <unistd.h>
-| #endif
-| int
-| main ()
-| {
-| if (sizeof ((_Bool)))
-| 	    return 0;
-|   ;
-|   return 0;
-| }
-configure:6022: result: yes
-configure:6041: checking stdnoreturn.h usability
-configure:6041: gcc -std=gnu99 -c -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common  conftest.c >&5
-configure:6041: $? = 0
-configure:6041: result: yes
-configure:6041: checking stdnoreturn.h presence
-configure:6041: gcc -E  conftest.c
-configure:6041: $? = 0
-configure:6041: result: yes
-configure:6041: checking for stdnoreturn.h
-configure:6041: result: yes
-configure:6053: checking io.h usability
-configure:6053: gcc -std=gnu99 -c -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common  conftest.c >&5
-conftest.c:65:16: fatal error: io.h: No such file or directory
- #include <io.h>
-                ^
-compilation terminated.
-configure:6053: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME ""
-| #define PACKAGE_TARNAME ""
-| #define PACKAGE_VERSION ""
-| #define PACKAGE_STRING ""
-| #define PACKAGE_BUGREPORT ""
-| #define PACKAGE_URL ""
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define __EXTENSIONS__ 1
-| #define _ALL_SOURCE 1
-| #define _GNU_SOURCE 1
-| #define _POSIX_PTHREAD_SEMANTICS 1
-| #define _TANDEM_SOURCE 1
-| #define restrict __restrict
-| #define WORDS_LITTLEENDIAN 1
-| #define STDC_HEADERS 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE__BOOL 1
-| #define HAVE_STDBOOL_H 1
-| #define HAVE_STDNORETURN_H 1
-| /* end confdefs.h.  */
-| #include <stdio.h>
-| #ifdef HAVE_SYS_TYPES_H
-| # include <sys/types.h>
-| #endif
-| #ifdef HAVE_SYS_STAT_H
-| # include <sys/stat.h>
-| #endif
-| #ifdef STDC_HEADERS
-| # include <stdlib.h>
-| # include <stddef.h>
-| #else
-| # ifdef HAVE_STDLIB_H
-| #  include <stdlib.h>
-| # endif
-| #endif
-| #ifdef HAVE_STRING_H
-| # if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-| #  include <memory.h>
-| # endif
-| # include <string.h>
-| #endif
-| #ifdef HAVE_STRINGS_H
-| # include <strings.h>
-| #endif
-| #ifdef HAVE_INTTYPES_H
-| # include <inttypes.h>
-| #endif
-| #ifdef HAVE_STDINT_H
-| # include <stdint.h>
-| #endif
-| #ifdef HAVE_UNISTD_H
-| # include <unistd.h>
-| #endif
-| #include <io.h>
-configure:6053: result: no
-configure:6053: checking io.h presence
-configure:6053: gcc -E  conftest.c
-conftest.c:32:16: fatal error: io.h: No such file or directory
- #include <io.h>
-                ^
-compilation terminated.
-configure:6053: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME ""
-| #define PACKAGE_TARNAME ""
-| #define PACKAGE_VERSION ""
-| #define PACKAGE_STRING ""
-| #define PACKAGE_BUGREPORT ""
-| #define PACKAGE_URL ""
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define __EXTENSIONS__ 1
-| #define _ALL_SOURCE 1
-| #define _GNU_SOURCE 1
-| #define _POSIX_PTHREAD_SEMANTICS 1
-| #define _TANDEM_SOURCE 1
-| #define restrict __restrict
-| #define WORDS_LITTLEENDIAN 1
-| #define STDC_HEADERS 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE__BOOL 1
-| #define HAVE_STDBOOL_H 1
-| #define HAVE_STDNORETURN_H 1
-| /* end confdefs.h.  */
-| #include <io.h>
-configure:6053: result: no
-configure:6053: checking for io.h
-configure:6053: result: no
-configure:6065: checking fcntl.h usability
-configure:6065: gcc -std=gnu99 -c -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common  conftest.c >&5
-configure:6065: $? = 0
-configure:6065: result: yes
-configure:6065: checking fcntl.h presence
-configure:6065: gcc -E  conftest.c
-configure:6065: $? = 0
-configure:6065: result: yes
-configure:6065: checking for fcntl.h
-configure:6065: result: yes
-configure:6077: checking for unistd.h
-configure:6077: result: yes
-configure:6089: checking sys/param.h usability
-configure:6089: gcc -std=gnu99 -c -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common  conftest.c >&5
-configure:6089: $? = 0
-configure:6089: result: yes
-configure:6089: checking sys/param.h presence
-configure:6089: gcc -E  conftest.c
-configure:6089: $? = 0
-configure:6089: result: yes
-configure:6089: checking for sys/param.h
-configure:6089: result: yes
-configure:6101: checking sys/mman.h usability
-configure:6101: gcc -std=gnu99 -c -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common  conftest.c >&5
-configure:6101: $? = 0
-configure:6101: result: yes
-configure:6101: checking sys/mman.h presence
-configure:6101: gcc -E  conftest.c
-configure:6101: $? = 0
-configure:6101: result: yes
-configure:6101: checking for sys/mman.h
-configure:6101: result: yes
-configure:6113: checking for sys/stat.h
-configure:6113: result: yes
-configure:6125: checking for sys/types.h
-configure:6125: result: yes
-configure:6139: checking for strcasecmp
-configure:6139: gcc -std=gnu99 -o conftest -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common   conftest.c  >&5
-conftest.c:61:6: warning: conflicting types for built-in function 'strcasecmp'
- char strcasecmp ();
-      ^
-configure:6139: $? = 0
-configure:6139: result: yes
-configure:6139: checking for stricmp
-configure:6139: gcc -std=gnu99 -o conftest -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common   conftest.c  >&5
-/tmp/ccMhA8JI.o: In function `main':
-/hackenv/nasmbuild/nasm-2.13rc9/conftest.c:73: undefined reference to `stricmp'
-collect2: error: ld returned 1 exit status
-configure:6139: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME ""
-| #define PACKAGE_TARNAME ""
-| #define PACKAGE_VERSION ""
-| #define PACKAGE_STRING ""
-| #define PACKAGE_BUGREPORT ""
-| #define PACKAGE_URL ""
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define __EXTENSIONS__ 1
-| #define _ALL_SOURCE 1
-| #define _GNU_SOURCE 1
-| #define _POSIX_PTHREAD_SEMANTICS 1
-| #define _TANDEM_SOURCE 1
-| #define restrict __restrict
-| #define WORDS_LITTLEENDIAN 1
-| #define STDC_HEADERS 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE__BOOL 1
-| #define HAVE_STDBOOL_H 1
-| #define HAVE_STDNORETURN_H 1
-| #define HAVE_FCNTL_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_SYS_PARAM_H 1
-| #define HAVE_SYS_MMAN_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_STRCASECMP 1
-| /* end confdefs.h.  */
-| /* Define stricmp to an innocuous variant, in case <limits.h> declares stricmp.
-|    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-| #define stricmp innocuous_stricmp
-| 
-| /* System header to define __stub macros and hopefully few prototypes,
-|     which can conflict with char stricmp (); below.
-|     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-|     <limits.h> exists even on freestanding compilers.  */
-| 
-| #ifdef __STDC__
-| # include <limits.h>
-| #else
-| # include <assert.h>
-| #endif
-| 
-| #undef stricmp
-| 
-| /* Override any GCC internal prototype to avoid an error.
-|    Use char because int might match the return type of a GCC
-|    builtin and then its argument prototype would still apply.  */
-| #ifdef __cplusplus
-| extern "C"
-| #endif
-| char stricmp ();
-| /* The GNU C library defines this for functions which it implements
-|     to always fail with ENOSYS.  Some functions are actually named
-|     something starting with __ and the normal name is an alias.  */
-| #if defined __stub_stricmp || defined __stub___stricmp
-| choke me
-| #endif
-| 
-| int
-| main ()
-| {
-| return stricmp ();
-|   ;
-|   return 0;
-| }
-configure:6139: result: no
-configure:6151: checking for strncasecmp
-configure:6151: gcc -std=gnu99 -o conftest -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common   conftest.c  >&5
-conftest.c:62:6: warning: conflicting types for built-in function 'strncasecmp'
- char strncasecmp ();
-      ^
-configure:6151: $? = 0
-configure:6151: result: yes
-configure:6151: checking for strnicmp
-configure:6151: gcc -std=gnu99 -o conftest -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common   conftest.c  >&5
-/tmp/ccbQZw6g.o: In function `main':
-/hackenv/nasmbuild/nasm-2.13rc9/conftest.c:74: undefined reference to `strnicmp'
-collect2: error: ld returned 1 exit status
-configure:6151: $? = 1
-configure: failed program was:
-| /* confdefs.h */
-| #define PACKAGE_NAME ""
-| #define PACKAGE_TARNAME ""
-| #define PACKAGE_VERSION ""
-| #define PACKAGE_STRING ""
-| #define PACKAGE_BUGREPORT ""
-| #define PACKAGE_URL ""
-| #define STDC_HEADERS 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_STDLIB_H 1
-| #define HAVE_STRING_H 1
-| #define HAVE_MEMORY_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STDINT_H 1
-| #define HAVE_UNISTD_H 1
-| #define __EXTENSIONS__ 1
-| #define _ALL_SOURCE 1
-| #define _GNU_SOURCE 1
-| #define _POSIX_PTHREAD_SEMANTICS 1
-| #define _TANDEM_SOURCE 1
-| #define restrict __restrict
-| #define WORDS_LITTLEENDIAN 1
-| #define STDC_HEADERS 1
-| #define HAVE_INTTYPES_H 1
-| #define HAVE_STRINGS_H 1
-| #define HAVE__BOOL 1
-| #define HAVE_STDBOOL_H 1
-| #define HAVE_STDNORETURN_H 1
-| #define HAVE_FCNTL_H 1
-| #define HAVE_UNISTD_H 1
-| #define HAVE_SYS_PARAM_H 1
-| #define HAVE_SYS_MMAN_H 1
-| #define HAVE_SYS_STAT_H 1
-| #define HAVE_SYS_TYPES_H 1
-| #define HAVE_STRCASECMP 1
-| #define HAVE_STRNCASECMP 1
-| /* end confdefs.h.  */
-| /* Define strnicmp to an innocuous variant, in case <limits.h> declares strnicmp.
-|    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-| #define strnicmp innocuous_strnicmp
-| 
-| /* System header to define __stub macros and hopefully few prototypes,
-|     which can conflict with char strnicmp (); below.
-|     Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-|     <limits.h> exists even on freestanding compilers.  */
-| 
-| #ifdef __STDC__
-| # include <limits.h>
-| #else
-| # include <assert.h>
-| #endif
-| 
-| #undef strnicmp
-| 
-| /* Override any GCC internal prototype to avoid an error.
-|    Use char because int might match the return type of a GCC
-|    builtin and then its argument prototype would still apply.  */
-| #ifdef __cplusplus
-| extern "C"
-| #endif
-| char strnicmp ();
-| /* The GNU C library defines this for functions which it implements
-|     to always fail with ENOSYS.  Some functions are actually named
-|     something starting with __ and the normal name is an alias.  */
-| #if defined __stub_strnicmp || defined __stub___strnicmp
-| choke me
-| #endif
-| 
-| int
-| main ()
-| {
-| return strnicmp ();
-|   ;
-|   return 0;
-| }
-configure:6151: result: no
-configure:6162: checking for strsep
-configure:6162: gcc -std=gnu99 -o conftest -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common   conftest.c  >&5
-configure:6162: $? = 0
-configure:6162: result: yes
-configure:6173: checking for strnlen
-configure:6173: gcc -std=gnu99 -o conftest -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common   conftest.c  >&5
-configure:6173: $? = 0
-configure:6173: result: yes
-configure:6185: checking for getuid
-configure:6185: gcc -std=gnu99 -o conftest -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common   conftest.c  >&5
-configure:6185: $? = 0
-configure:6185: result: yes
-configure:6196: checking for getgid
-configure:6196: gcc -std=gnu99 -o conftest -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common   conftest.c  >&5
-configure:6196: $? = 0
-configure:6196: result: yes
-configure:6208: checking for realpath
-configure:6208: gcc -std=gnu99 -o conftest -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common   conftest.c  >&5
-configure:6208: $? = 0
-configure:6208: result: yes
-configure:6219: checking for canonicalize_file_name
-configure:6219: gcc -std=gnu99 -o conftest -g -O3 -fwrapv -U__STRICT_ANSI__ -fno-common   conftest.c  >&5
--- a/nasmbuild/nasm-2.13rc9/config/config.h.in	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,333 +0,0 @@
-/* config/config.h.in.  Generated from configure.ac by autoheader.  */
-
-/* Define if building universal (internal helper macro) */
-#undef AC_APPLE_UNIVERSAL_BUILD
-
-/* Define to 1 if you have the `access' function. */
-#undef HAVE_ACCESS
-
-/* Define to 1 if you have the `canonicalize_file_name' function. */
-#undef HAVE_CANONICALIZE_FILE_NAME
-
-/* Define to 1 if you have the declaration of `strcasecmp', and to 0 if you
-   don't. */
-#undef HAVE_DECL_STRCASECMP
-
-/* Define to 1 if you have the declaration of `stricmp', and to 0 if you
-   don't. */
-#undef HAVE_DECL_STRICMP
-
-/* Define to 1 if you have the declaration of `strlcpy', and to 0 if you
-   don't. */
-#undef HAVE_DECL_STRLCPY
-
-/* Define to 1 if you have the declaration of `strncasecmp', and to 0 if you
-   don't. */
-#undef HAVE_DECL_STRNCASECMP
-
-/* Define to 1 if you have the declaration of `strnicmp', and to 0 if you
-   don't. */
-#undef HAVE_DECL_STRNICMP
-
-/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
-   don't. */
-#undef HAVE_DECL_STRNLEN
-
-/* Define to 1 if you have the declaration of `strsep', and to 0 if you don't.
-   */
-#undef HAVE_DECL_STRSEP
-
-/* Define to 1 if you have the `faccessat' function. */
-#undef HAVE_FACCESSAT
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#undef HAVE_FCNTL_H
-
-/* Define to 1 if you have the `fileno' function. */
-#undef HAVE_FILENO
-
-/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
-#undef HAVE_FSEEKO
-
-/* Define to 1 if you have the `fstat' function. */
-#undef HAVE_FSTAT
-
-/* Define to 1 if you have the `ftruncate' function. */
-#undef HAVE_FTRUNCATE
-
-/* Define to 1 if your compiler supports __attribute__((alloc_size)) on
-   functions */
-#undef HAVE_FUNC_ATTRIBUTE_ALLOC_SIZE
-
-/* Define to 1 if your compiler supports __attribute__((const)) on functions
-   */
-#undef HAVE_FUNC_ATTRIBUTE_CONST
-
-/* Define to 1 if your compiler supports __attribute__((error)) on functions
-   */
-#undef HAVE_FUNC_ATTRIBUTE_ERROR
-
-/* Define to 1 if your compiler supports __attribute__((format)) on functions
-   */
-#undef HAVE_FUNC_ATTRIBUTE_FORMAT
-
-/* Define to 1 if your compiler supports __attribute__((malloc)) on functions
-   */
-#undef HAVE_FUNC_ATTRIBUTE_MALLOC
-
-/* Define to 1 if your compiler supports __attribute__((noreturn)) on
-   functions */
-#undef HAVE_FUNC_ATTRIBUTE_NORETURN
-
-/* Define to 1 if your compiler supports __attribute__((pure)) on functions */
-#undef HAVE_FUNC_ATTRIBUTE_PURE
-
-/* Define to 1 if your compiler supports __attribute__((returns_nonnull)) on
-   functions */
-#undef HAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL
-
-/* Define to 1 if you have the `getgid' function. */
-#undef HAVE_GETGID
-
-/* Define to 1 if you have the `getpagesize' function. */
-#undef HAVE_GETPAGESIZE
-
-/* Define to 1 if you have the `getuid' function. */
-#undef HAVE_GETUID
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the <io.h> header file. */
-#undef HAVE_IO_H
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have a working `mmap' system call. */
-#undef HAVE_MMAP
-
-/* Define to 1 if you have the `pathconf' function. */
-#undef HAVE_PATHCONF
-
-/* Define to 1 if you have the `realpath' function. */
-#undef HAVE_REALPATH
-
-/* Define to 1 if you have the `snprintf' function. */
-#undef HAVE_SNPRINTF
-
-/* Define to 1 if you have the `stat' function. */
-#undef HAVE_STAT
-
-/* Define to 1 if stdbool.h conforms to C99. */
-#undef HAVE_STDBOOL_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <stdnoreturn.h> header file. */
-#undef HAVE_STDNORETURN_H
-
-/* Define to 1 if you have the `strcasecmp' function. */
-#undef HAVE_STRCASECMP
-
-/* Define to 1 if you have the `stricmp' function. */
-#undef HAVE_STRICMP
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the `strlcpy' function. */
-#undef HAVE_STRLCPY
-
-/* Define to 1 if you have the `strncasecmp' function. */
-#undef HAVE_STRNCASECMP
-
-/* Define to 1 if you have the `strnicmp' function. */
-#undef HAVE_STRNICMP
-
-/* Define to 1 if you have the `strnlen' function. */
-#undef HAVE_STRNLEN
-
-/* Define to 1 if you have the `strsep' function. */
-#undef HAVE_STRSEP
-
-/* Define to 1 if you have the `sysconf' function. */
-#undef HAVE_SYSCONF
-
-/* Define to 1 if you have the <sys/mman.h> header file. */
-#undef HAVE_SYS_MMAN_H
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if the system has the type `uintptr_t'. */
-#undef HAVE_UINTPTR_T
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the `vsnprintf' function. */
-#undef HAVE_VSNPRINTF
-
-/* Define to 1 if you have the `_access' function. */
-#undef HAVE__ACCESS
-
-/* Define to 1 if the system has the type `_Bool'. */
-#undef HAVE__BOOL
-
-/* Define to 1 if you have the `_chsize' function. */
-#undef HAVE__CHSIZE
-
-/* Define to 1 if you have the `_chsize_s' function. */
-#undef HAVE__CHSIZE_S
-
-/* Define to 1 if you have the `_filelengthi64' function. */
-#undef HAVE__FILELENGTHI64
-
-/* Define to 1 if you have the `_fileno' function. */
-#undef HAVE__FILENO
-
-/* Define to 1 if you have the `_fseeki64' function. */
-#undef HAVE__FSEEKI64
-
-/* Define to 1 if you have the `_fullpath' function. */
-#undef HAVE__FULLPATH
-
-/* Define to 1 if you have the `_snprintf' function. */
-#undef HAVE__SNPRINTF
-
-/* Define to 1 if you have the `_stati64' function. */
-#undef HAVE__STATI64
-
-/* Define to 1 if you have the `_vsnprintf' function. */
-#undef HAVE__VSNPRINTF
-
-/* Define to 1 if you have the `__builtin_clz' intrinsic function. */
-#undef HAVE___BUILTIN_CLZ
-
-/* Define to 1 if you have the `__builtin_clzl' intrinsic function. */
-#undef HAVE___BUILTIN_CLZL
-
-/* Define to 1 if you have the `__builtin_clzll' intrinsic function. */
-#undef HAVE___BUILTIN_CLZLL
-
-/* Define to 1 if you have the `__builtin_expect' intrinsic function. */
-#undef HAVE___BUILTIN_EXPECT
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the home page for this package. */
-#undef PACKAGE_URL
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* Enable extensions on AIX 3, Interix.  */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
-/* Enable GNU extensions on systems that have them.  */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Enable threading extensions on Solaris.  */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop.  */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable general extensions on Solaris.  */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
-
-
-/* Define to 1 if your processor stores words with the most significant byte
-   first (like Motorola and SPARC, unlike Intel and VAX). */
-#undef WORDS_BIGENDIAN
-
-/* Define to 1 if your processor stores words with the least significant byte
-   first (like Intel and VAX, unlike Motorola and SPARC). */
-#undef WORDS_LITTLEENDIAN
-
-/* Enable large inode numbers on Mac OS X 10.5.  */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-#undef _FILE_OFFSET_BITS
-
-/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
-#undef _LARGEFILE_SOURCE
-
-/* Define for large files, on AIX-style hosts. */
-#undef _LARGE_FILES
-
-/* Define to 1 if on MINIX. */
-#undef _MINIX
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
-   this defined. */
-#undef _POSIX_1_SOURCE
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-#undef _POSIX_SOURCE
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#ifndef __cplusplus
-#undef inline
-#endif
-
-/* Define to the equivalent of the C99 'restrict' keyword, or to
-   nothing if this is not supported.  Do not define if restrict is
-   supported directly.  */
-#undef restrict
-/* Work around a bug in Sun C++: it does not support _Restrict or
-   __restrict__, even though the corresponding Sun C compiler ends up with
-   "#define restrict _Restrict" or "#define restrict __restrict__" in the
-   previous line.  Perhaps some future version of Sun C++ will work with
-   restrict; if so, hopefully it defines __RESTRICT like Sun C does.  */
-#if defined __SUNPRO_CC && !defined __RESTRICT
-# define _Restrict
-# define __restrict__
-#endif
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#undef size_t
-
-/* Define to the type of an unsigned integer type wide enough to hold a
-   pointer, if such a type exists, and if the system does not define it. */
-#undef uintptr_t
--- a/nasmbuild/nasm-2.13rc9/config/msvc.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * config/msvc.h
- *
- * Compiler definitions for Microsoft Visual C++;
- * instead of config.h.in.  See config.h.in for the
- * variables which can be defined here.
- *
- * MSDN seems to have information back to Visual Studio 2003, so aim
- * for compatibility that far back.
- *
- * Relevant _MSC_VER values:
- * 1310 - Visual Studio 2003
- * 1400 - Visual Studio 2005
- * 1500 - Visual Studio 2008
- * 1600 - Visual Studio 2010
- * 1700 - Visual Studio 2012
- * 1800 - Visual Studio 2013
- * 1900 - Visual Studio 2015
- */
-
-#ifndef NASM_CONFIG_MSVC_H
-#define NASM_CONFIG_MSVC_H
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#if _MSC_VER >= 1800
-# define HAVE_INTTYPES_H 1
-#endif
-
-/* Define to 1 if you have the <io.h> header file. */
-#define HAVE_IO_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the `access' function. */
-#define HAVE_ACCESS 1
-#if _MSC_VER < 1400
-# define access _access
-#endif
-
-/* Define to 1 if you have the `fileno' function. */
-#define HAVE_FILENO 1
-#if _MSC_VER < 1400
-# define fileno _fileno
-#endif
-
-/* Define to 1 if you have the `snprintf' function. */
-#define HAVE_SNPRINTF 1
-#if _MSC_VER < 1900
-# define snprintf _snprinf
-#endif
-
-/* Define to 1 if you have the `_chsize' function. */
-#define HAVE__CHSIZE 1
-
-/* Define to 1 if you have the `_chsize_s' function. */
-#if _MSC_VER >= 1400
-# define HAVE__CHSIZE_S 1
-#endif
-
-/* Define to 1 if you have the `_filelengthi64' function. */
-#define HAVE__FILELENGTHI64 1
-
-/* Define to 1 if you have the `_fseeki64' function. */
-#define HAVE__FSEEKI64 1
-
-/* Define to 1 if you have the `_fullpath' function. */
-#define HAVE__FULLPATH 1
-
-/* Define to 1 if you have the `stat' function. */
-#define HAVE_STAT 1
-#define stat _stati64
-
-/* Define to 1 if stdbool.h conforms to C99. */
-#if _MSC_VER >= 1800
-# define HAVE_STDBOOL_H 1
-#endif
-
-/* Define to 1 if you have the `stricmp' function. */
-#define HAVE_STRICMP 1
-/* Define to 1 if you have the declaration of `stricmp', and to 0 if you
-   don't. */
-#define HAVE_DECL_STRICMP 1
-#if _MSC_VER < 1400
-# define stricmp _stricmp
-#endif
-
-/* Define to 1 if you have the `strnicmp' function. */
-#define HAVE_STRNICMP 1
-/* Define to 1 if you have the declaration of `strnicmp', and to 0 if you
-   don't. */
-#define HAVE_DECL_STRNICMP 1
-#if _MSC_VER < 1400
-# define strnicmp _strnicmp
-#endif
-
-#if _MSC_VER >= 1400
-/* Define to 1 if you have the `strnlen' function. */
-# define HAVE_STRNLEN 1
-/* Define to 1 if you have the declaration of `strnlen', and to 0 if you
-   don't. */
-# define HAVE_DECL_STRNLEN 1
-#endif
-
-/* Define to 1 if the system has the type `uintptr_t'. */
-#if _MSC_VER >= 1900
-# define HAVE_UINTPTR_T 1
-#else
-/* Define to the type of an unsigned integer type wide enough to hold a
-   pointer, if such a type exists, and if the system does not define it. */
-# define uintptr_t size_t
-#endif
-
-/* Define to 1 if you have the `vsnprintf' function. */
-#define HAVE_VSNPRINTF 1
-#if _MSC_VER < 1400
-# define vsnprint _vsnprintf
-#endif
-
-/* Define to 1 if the system has the type `_Bool'. */
-#if _MSC_VER >= 1900
-# define HAVE__BOOL 1
-#endif
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define to 1 if your processor stores words with the least significant byte
-   first (like Intel and VAX, unlike Motorola and SPARC). */
-#define WORDS_LITTLEENDIAN 1
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#define inline __inline
-
-/* Define to the equivalent of the C99 'restrict' keyword, or to
-   nothing if this is not supported.  Do not define if restrict is
-   supported directly.  */
-#define restrict __restrict
-
-#endif /* NASM_CONFIG_MSVC_H */
--- a/nasmbuild/nasm-2.13rc9/config/unknown.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * config/unknown.h
- *
- * Compiler definitions for an unknown compiler.  Assume the worst.
- */
-
-#ifndef NASM_CONFIG_UNKNOWN_H
-#define NASM_CONFIG_UNKNOWN_H
-
-/* Assume these don't exist */
-#ifndef inline
-# define inline
-#endif
-#ifndef restrict
-# define restrict
-#endif
-
-#endif /* NASM_CONFIG_UNKNOWN_H */
--- a/nasmbuild/nasm-2.13rc9/config/watcom.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * config/watcom.h
- *
- * Compiler definitions for OpenWatcom instead of config.h.in.
- *  See config.h.in for the variables which can be defined here.
- *
- * This was taken from openwcom.mak and needs to be actually validated.
- */
-
-#ifndef NASM_CONFIG_WATCOM_H
-#define NASM_CONFIG_WATCOM_H
-
-#define HAVE_DECL_STRCASECMP 1
-#define HAVE_DECL_STRICMP 1
-#define HAVE_DECL_STRLCPY 1
-#define HAVE_DECL_STRNCASECMP 1
-#define HAVE_DECL_STRNICMP 1
-#define HAVE_INTTYPES_H 1
-#define HAVE_LIMITS_H 1
-#define HAVE_MEMORY_H 1
-#define HAVE_SNPRINTF 1
-#define HAVE_STDBOOL_H 1
-#define HAVE_STDINT_H 1
-#define HAVE_STDLIB_H 1
-#define HAVE_STRCASECMP 1
-#define HAVE_STRCSPN 1
-#define HAVE_STRICMP 1
-#define HAVE_STRINGS_H 1
-#define HAVE_STRING_H 1
-#define HAVE_STRLCPY 1
-#define HAVE_STRNCASECMP 1
-#define HAVE_STRNICMP 1
-#define HAVE_STRSPN 1
-#define HAVE_SYS_STAT_H 1
-#define HAVE_SYS_TYPES_H 1
-#define HAVE_UNISTD_H 1
-#define HAVE_VSNPRINTF 1
-#define STDC_HEADERS 1
-#define inline __inline
-
-#endif /* NASM_CONFIG_WATCOM_H */
--- a/nasmbuild/nasm-2.13rc9/configure	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9081 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69.
-#
-#
-# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-# Use a proper internal environment variable to ensure we don't fall
-  # into an infinite loop, continuously re-executing ourselves.
-  if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
-    _as_can_reexec=no; export _as_can_reexec;
-    # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-as_fn_exit 255
-  fi
-  # We don't want this to propagate to other subprocesses.
-          { _as_can_reexec=; unset _as_can_reexec;}
-if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-"
-  as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
-  exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1
-test -x / || exit 1"
-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  as_found=:
-  case $as_dir in #(
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  break 2
-fi
-fi
-	   done;;
-       esac
-  as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
-      if test "x$CONFIG_SHELL" != x; then :
-  export CONFIG_SHELL
-             # We cannot yet assume a decent shell, so we have to provide a
-# neutralization value for shells without unset; and this also
-# works around shells that cannot unset nonexistent variables.
-# Preserve -v and -x to the replacement shell.
-BASH_ENV=/dev/null
-ENV=/dev/null
-(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-case $- in # ((((
-  *v*x* | *x*v* ) as_opts=-vx ;;
-  *v* ) as_opts=-v ;;
-  *x* ) as_opts=-x ;;
-  * ) as_opts= ;;
-esac
-exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
-# Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
-$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2
-exit 255
-fi
-
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
-  else
-    $as_echo "$0: Please tell bug-autoconf@gnu.org about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
-  fi
-  exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
-  # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
-  # already done that, so ensure we don't try to do so again and fall
-  # in an infinite loop.  This has already happened in practice.
-  _as_can_reexec=no; export _as_can_reexec
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -pR'
-  fi
-else
-  as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-PACKAGE_URL=
-
-ac_unique_file="config/config.h.in"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_header_list=
-ac_subst_vars='LTLIBOBJS
-LIBOBJS
-CC_RANLIB
-CC_AR
-STRIP
-RANLIB
-AR
-PSTOPDF
-PS2PDF
-ACRODIST
-XMLTO
-ASCIIDOC
-NROFF
-LIBEXT
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-SET_MAKE
-LN_S
-EGREP
-GREP
-CPP
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-ac_prefix_program
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_largefile
-enable_sections
-enable_lto
-enable_werror
-enable_ccache
-'
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval $ac_prev=\$ac_option
-    ac_prev=
-    continue
-  fi
-
-  case $ac_option in
-  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *=)   ac_optarg= ;;
-  *)    ac_optarg=yes ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_dashdash$ac_option in
-  --)
-    ac_dashdash=yes ;;
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=*)
-    datadir=$ac_optarg ;;
-
-  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-  | --dataroo | --dataro | --datar)
-    ac_prev=datarootdir ;;
-  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-    datarootdir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=no ;;
-
-  -docdir | --docdir | --docdi | --doc | --do)
-    ac_prev=docdir ;;
-  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
-    docdir=$ac_optarg ;;
-
-  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
-    ac_prev=dvidir ;;
-  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
-    dvidir=$ac_optarg ;;
-
-  -enable-* | --enable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=\$ac_optarg ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
-    ac_prev=htmldir ;;
-  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
-  | --ht=*)
-    htmldir=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localedir | --localedir | --localedi | --localed | --locale)
-    ac_prev=localedir ;;
-  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
-    localedir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst | --locals)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
-    ac_prev=pdfdir ;;
-  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
-    pdfdir=$ac_optarg ;;
-
-  -psdir | --psdir | --psdi | --psd | --ps)
-    ac_prev=psdir ;;
-  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
-    psdir=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=\$ac_optarg ;;
-
-  -without-* | --without-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=no ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    case $ac_envvar in #(
-      '' | [0-9]* | *[!_$as_cr_alnum]* )
-      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
-    esac
-    eval $ac_envvar=\$ac_optarg
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
-  case $enable_option_checking in
-    no) ;;
-    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
-  esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
-		datadir sysconfdir sharedstatedir localstatedir includedir \
-		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
-do
-  eval ac_val=\$$ac_var
-  # Remove trailing slashes.
-  case $ac_val in
-    */ )
-      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
-      eval $ac_var=\$ac_val;;
-  esac
-  # Be sure to have absolute directory names.
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* )  continue;;
-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
-  esac
-  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_myself" : 'X\(//\)[^/]' \| \
-	 X"$as_myself" : 'X\(//\)$' \| \
-	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r "$srcdir/$ac_unique_file"; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
-  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
-	pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
-  srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
-  eval ac_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_env_${ac_var}_value=\$${ac_var}
-  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking ...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR            user executables [EPREFIX/bin]
-  --sbindir=DIR           system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR        program executables [EPREFIX/libexec]
-  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --libdir=DIR            object code libraries [EPREFIX/lib]
-  --includedir=DIR        C header files [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
-  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR           info documentation [DATAROOTDIR/info]
-  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR            man documentation [DATAROOTDIR/man]
-  --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
-  --htmldir=DIR           html documentation [DOCDIR]
-  --dvidir=DIR            dvi documentation [DOCDIR]
-  --pdfdir=DIR            pdf documentation [DOCDIR]
-  --psdir=DIR             ps documentation [DOCDIR]
-_ACEOF
-
-  cat <<\_ACEOF
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
-  cat <<\_ACEOF
-
-Optional Features:
-  --disable-option-checking  ignore unrecognized --enable/--with options
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --disable-largefile     omit support for large files
-  --enable-sections       compile with function/data section support
-  --enable-lto            compile with gcc link time optimization
-  --enable-werror         compile with -Werror to error out on any warning
-  --enable-ccache         compile with ccache
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  LIBS        libraries to pass to the linker, e.g. -l<library>
-  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
-              you have headers in a nonstandard directory <include dir>
-  CPP         C preprocessor
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to the package provider.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d "$ac_dir" ||
-      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
-      continue
-    ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-    cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
-    if test -f "$ac_srcdir/configure.gnu"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
-    elif test -f "$ac_srcdir/configure"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure" --help=recursive
-    else
-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi || ac_status=$?
-    cd "$ac_pwd" || { ac_status=$?; break; }
-  done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
-  cat <<\_ACEOF
-configure
-generated by GNU Autoconf 2.69
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval \${$3+:} false; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_header_compiler=yes
-else
-  ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  ac_header_preproc=yes
-else
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
-  yes:no: )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
-# -------------------------------------------
-# Tests whether TYPE exists after having included INCLUDES, setting cache
-# variable VAR accordingly.
-ac_fn_c_check_type ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=no"
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-if (sizeof ($2))
-	 return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-if (sizeof (($2)))
-	    return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  eval "$3=yes"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_type
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 test -x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $2 (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_func
-
-# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES
-# ---------------------------------------------
-# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
-# accordingly.
-ac_fn_c_check_decl ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  as_decl_name=`echo $2|sed 's/ *(.*//'`
-  as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
-$as_echo_n "checking whether $as_decl_name is declared... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-int
-main ()
-{
-#ifndef $as_decl_name
-#ifdef __cplusplus
-  (void) $as_decl_use;
-#else
-  (void) $as_decl_name;
-#endif
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_decl
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
-  done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
-    2)
-      as_fn_append ac_configure_args1 " '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      as_fn_append ac_configure_args " '$ac_arg'"
-      ;;
-    esac
-  done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-(
-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-  (set) 2>&1 |
-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      sed -n \
-	"s/'\''/'\''\\\\'\'''\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-      ;; #(
-    *)
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-)
-    echo
-
-    $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      $as_echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=\$$ac_var
-	case $ac_val in
-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-	esac
-	$as_echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core core.conftest.* &&
-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in #((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
-elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
-else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
-  test "x$ac_site_file" = xNONE && continue
-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special files
-  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
-  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-as_fn_append ac_header_list " stdlib.h"
-as_fn_append ac_header_list " unistd.h"
-as_fn_append ac_header_list " sys/param.h"
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	# differences in whitespace do not lead to failure.
-	ac_old_val_w=`echo x $ac_old_val`
-	ac_new_val_w=`echo x $ac_new_val`
-	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	  ac_cache_corrupted=:
-	else
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
-	  eval $ac_var=\$ac_old_val
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-ac_config_headers="$ac_config_headers config/config.h"
-
-
-if test "x$prefix" = xNONE; then
-  $as_echo_n "checking for prefix by " >&6
-  # Extract the first word of "nasm", so it can be a program name with args.
-set dummy nasm; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_ac_prefix_program+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $ac_prefix_program in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_ac_prefix_program="$ac_prefix_program" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_path_ac_prefix_program="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-ac_prefix_program=$ac_cv_path_ac_prefix_program
-if test -n "$ac_prefix_program"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prefix_program" >&5
-$as_echo "$ac_prefix_program" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  if test -n "$ac_prefix_program"; then
-    prefix=`$as_dirname -- "$ac_prefix_program" ||
-$as_expr X"$ac_prefix_program" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_prefix_program" : 'X\(//\)[^/]' \| \
-	 X"$ac_prefix_program" : 'X\(//\)$' \| \
-	 X"$ac_prefix_program" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_prefix_program" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-    prefix=`$as_dirname -- "$prefix" ||
-$as_expr X"$prefix" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$prefix" : 'X\(//\)[^/]' \| \
-	 X"$prefix" : 'X\(//\)$' \| \
-	 X"$prefix" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$prefix" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  fi
-fi
-
-
-pa_init_cflags="$CFLAGS"
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-  esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link_default") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile.  We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
-	;;
-    [ab].out )
-	# We found the default executable, but exeext='' is most
-	# certainly right.
-	break;;
-    *.* )
-	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-	then :; else
-	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	fi
-	# We set ac_cv_exeext here because the later test for it is not
-	# safe: cross compilers may not add the suffix if given an `-o'
-	# argument, so we may need to know it at that point already.
-	# Even if this section looks crufty: it has the advantage of
-	# actually working.
-	break;;
-    * )
-	break;;
-  esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
-  ac_file=''
-fi
-if test -z "$ac_file"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  break;;
-    * ) break;;
-  esac
-done
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
-  { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-  if { ac_try='./conftest$ac_cv_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
-    fi
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-else
-  CFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if ${ac_cv_prog_CPP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_GREP" || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      as_fn_executable_p "$ac_path_EGREP" || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-  ac_fn_c_check_header_mongrel "$LINENO" "minix/config.h" "ac_cv_header_minix_config_h" "$ac_includes_default"
-if test "x$ac_cv_header_minix_config_h" = xyes; then :
-  MINIX=yes
-else
-  MINIX=
-fi
-
-
-  if test "$MINIX" = yes; then
-
-$as_echo "#define _POSIX_SOURCE 1" >>confdefs.h
-
-
-$as_echo "#define _POSIX_1_SOURCE 2" >>confdefs.h
-
-
-$as_echo "#define _MINIX 1" >>confdefs.h
-
-  fi
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
-$as_echo_n "checking whether it is safe to define __EXTENSIONS__... " >&6; }
-if ${ac_cv_safe_to_define___extensions__+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#         define __EXTENSIONS__ 1
-          $ac_includes_default
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_safe_to_define___extensions__=yes
-else
-  ac_cv_safe_to_define___extensions__=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
-$as_echo "$ac_cv_safe_to_define___extensions__" >&6; }
-  test $ac_cv_safe_to_define___extensions__ = yes &&
-    $as_echo "#define __EXTENSIONS__ 1" >>confdefs.h
-
-  $as_echo "#define _ALL_SOURCE 1" >>confdefs.h
-
-  $as_echo "#define _GNU_SOURCE 1" >>confdefs.h
-
-  $as_echo "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
-
-  $as_echo "#define _TANDEM_SOURCE 1" >>confdefs.h
-
-
-# Check whether --enable-largefile was given.
-if test "${enable_largefile+set}" = set; then :
-  enableval=$enable_largefile;
-fi
-
-if test "$enable_largefile" != no; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
-$as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if ${ac_cv_sys_largefile_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_sys_largefile_CC=no
-     if test "$GCC" != yes; then
-       ac_save_CC=$CC
-       while :; do
-	 # IRIX 6.2 and later do not support large files by default,
-	 # so use the C compiler's -n32 option if that helps.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-    since some C++ compilers masquerading as C compilers
-    incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-		       && LARGE_OFF_T % 2147483647 == 1)
-		      ? 1 : -1];
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-	 if ac_fn_c_try_compile "$LINENO"; then :
-  break
-fi
-rm -f core conftest.err conftest.$ac_objext
-	 CC="$CC -n32"
-	 if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_sys_largefile_CC=' -n32'; break
-fi
-rm -f core conftest.err conftest.$ac_objext
-	 break
-       done
-       CC=$ac_save_CC
-       rm -f conftest.$ac_ext
-    fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
-$as_echo "$ac_cv_sys_largefile_CC" >&6; }
-  if test "$ac_cv_sys_largefile_CC" != no; then
-    CC=$CC$ac_cv_sys_largefile_CC
-  fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-$as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if ${ac_cv_sys_file_offset_bits+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  while :; do
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-    since some C++ compilers masquerading as C compilers
-    incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-		       && LARGE_OFF_T % 2147483647 == 1)
-		      ? 1 : -1];
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_sys_file_offset_bits=no; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#define _FILE_OFFSET_BITS 64
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-    since some C++ compilers masquerading as C compilers
-    incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-		       && LARGE_OFF_T % 2147483647 == 1)
-		      ? 1 : -1];
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_sys_file_offset_bits=64; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  ac_cv_sys_file_offset_bits=unknown
-  break
-done
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
-$as_echo "$ac_cv_sys_file_offset_bits" >&6; }
-case $ac_cv_sys_file_offset_bits in #(
-  no | unknown) ;;
-  *)
-cat >>confdefs.h <<_ACEOF
-#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits
-_ACEOF
-;;
-esac
-rm -rf conftest*
-  if test $ac_cv_sys_file_offset_bits = unknown; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
-$as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-if ${ac_cv_sys_large_files+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  while :; do
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-    since some C++ compilers masquerading as C compilers
-    incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-		       && LARGE_OFF_T % 2147483647 == 1)
-		      ? 1 : -1];
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_sys_large_files=no; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#define _LARGE_FILES 1
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-    since some C++ compilers masquerading as C compilers
-    incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-		       && LARGE_OFF_T % 2147483647 == 1)
-		      ? 1 : -1];
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_sys_large_files=1; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  ac_cv_sys_large_files=unknown
-  break
-done
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
-$as_echo "$ac_cv_sys_large_files" >&6; }
-case $ac_cv_sys_large_files in #(
-  no | unknown) ;;
-  *)
-cat >>confdefs.h <<_ACEOF
-#define _LARGE_FILES $ac_cv_sys_large_files
-_ACEOF
-;;
-esac
-rm -rf conftest*
-  fi
-
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-else
-  CFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-   case $ac_cv_prog_cc_stdc in #(
-  no) :
-    ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #(
-  *) :
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5
-$as_echo_n "checking for $CC option to accept ISO C99... " >&6; }
-if ${ac_cv_prog_cc_c99+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c99=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdbool.h>
-#include <stdlib.h>
-#include <wchar.h>
-#include <stdio.h>
-
-// Check varargs macros.  These examples are taken from C99 6.10.3.5.
-#define debug(...) fprintf (stderr, __VA_ARGS__)
-#define showlist(...) puts (#__VA_ARGS__)
-#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
-static void
-test_varargs_macros (void)
-{
-  int x = 1234;
-  int y = 5678;
-  debug ("Flag");
-  debug ("X = %d\n", x);
-  showlist (The first, second, and third items.);
-  report (x>y, "x is %d but y is %d", x, y);
-}
-
-// Check long long types.
-#define BIG64 18446744073709551615ull
-#define BIG32 4294967295ul
-#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
-#if !BIG_OK
-  your preprocessor is broken;
-#endif
-#if BIG_OK
-#else
-  your preprocessor is broken;
-#endif
-static long long int bignum = -9223372036854775807LL;
-static unsigned long long int ubignum = BIG64;
-
-struct incomplete_array
-{
-  int datasize;
-  double data[];
-};
-
-struct named_init {
-  int number;
-  const wchar_t *name;
-  double average;
-};
-
-typedef const char *ccp;
-
-static inline int
-test_restrict (ccp restrict text)
-{
-  // See if C++-style comments work.
-  // Iterate through items via the restricted pointer.
-  // Also check for declarations in for loops.
-  for (unsigned int i = 0; *(text+i) != '\0'; ++i)
-    continue;
-  return 0;
-}
-
-// Check varargs and va_copy.
-static void
-test_varargs (const char *format, ...)
-{
-  va_list args;
-  va_start (args, format);
-  va_list args_copy;
-  va_copy (args_copy, args);
-
-  const char *str;
-  int number;
-  float fnumber;
-
-  while (*format)
-    {
-      switch (*format++)
-	{
-	case 's': // string
-	  str = va_arg (args_copy, const char *);
-	  break;
-	case 'd': // int
-	  number = va_arg (args_copy, int);
-	  break;
-	case 'f': // float
-	  fnumber = va_arg (args_copy, double);
-	  break;
-	default:
-	  break;
-	}
-    }
-  va_end (args_copy);
-  va_end (args);
-}
-
-int
-main ()
-{
-
-  // Check bool.
-  _Bool success = false;
-
-  // Check restrict.
-  if (test_restrict ("String literal") == 0)
-    success = true;
-  char *restrict newvar = "Another string";
-
-  // Check varargs.
-  test_varargs ("s, d' f .", "string", 65, 34.234);
-  test_varargs_macros ();
-
-  // Check flexible array members.
-  struct incomplete_array *ia =
-    malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
-  ia->datasize = 10;
-  for (int i = 0; i < ia->datasize; ++i)
-    ia->data[i] = i * 1.234;
-
-  // Check named initializers.
-  struct named_init ni = {
-    .number = 34,
-    .name = L"Test wide string",
-    .average = 543.34343,
-  };
-
-  ni.number = 58;
-
-  int dynamic_array[ni.number];
-  dynamic_array[ni.number - 1] = 543;
-
-  // work around unused variable warnings
-  return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x'
-	  || dynamic_array[ni.number - 1] != 543);
-
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_c99=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c99" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c99" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c99"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
-$as_echo "$ac_cv_prog_cc_c99" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c99" != xno; then :
-  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-struct stat;
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-  ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
-else
-  ac_cv_prog_cc_stdc=no
-fi
-
-fi
- ;;
-esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5
-$as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; }
-  if ${ac_cv_prog_cc_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
-fi
-
-  case $ac_cv_prog_cc_stdc in #(
-  no) :
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;; #(
-  '') :
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;; #(
-  *) :
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5
-$as_echo "$ac_cv_prog_cc_stdc" >&6; } ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
-set x ${MAKE-make}
-ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.make <<\_ACEOF
-SHELL = /bin/sh
-all:
-	@echo '@@@%%%=$(MAKE)=@@@%%%'
-_ACEOF
-# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
-case `${MAKE-make} -f conftest.make 2>/dev/null` in
-  *@@@%%%=?*=@@@%%%*)
-    eval ac_cv_prog_make_${ac_make}_set=yes;;
-  *)
-    eval ac_cv_prog_make_${ac_make}_set=no;;
-esac
-rm -f conftest.make
-fi
-if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  SET_MAKE=
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  SET_MAKE="MAKE=${MAKE-make}"
-fi
-
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
-  ./ | .// | /[cC]/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-	if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
-	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    rm -rf conftest.one conftest.two conftest.dir
-	    echo one > conftest.one
-	    echo two > conftest.two
-	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-	      test -s conftest.one && test -s conftest.two &&
-	      test -s conftest.dir/conftest.one &&
-	      test -s conftest.dir/conftest.two
-	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	      break 3
-	    fi
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
-
-  done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
-if test x"$pa_init_cflags" = x; then
-   CFLAGS=`echo "$CFLAGS" | sed -e 's/-O2/-O3/'`
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of library files" >&5
-$as_echo_n "checking for suffix of library files... " >&6; }
-if test x"$LIBEXT" = x; then
-  case "$OBJEXT" in
-    obj )
-      LIBEXT=lib
-      ;;
-    *)
-      LIBEXT=a
-      ;;
-  esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBEXT" >&5
-$as_echo "$LIBEXT" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5
-$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
-if ${ac_cv_c_const+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-#ifndef __cplusplus
-  /* Ultrix mips cc rejects this sort of thing.  */
-  typedef int charset[2];
-  const charset cs = { 0, 0 };
-  /* SunOS 4.1.1 cc rejects this.  */
-  char const *const *pcpcc;
-  char **ppc;
-  /* NEC SVR4.0.2 mips cc rejects this.  */
-  struct point {int x, y;};
-  static struct point const zero = {0,0};
-  /* AIX XL C 1.02.0.0 rejects this.
-     It does not let you subtract one const X* pointer from another in
-     an arm of an if-expression whose if-part is not a constant
-     expression */
-  const char *g = "string";
-  pcpcc = &g + (g ? g-g : 0);
-  /* HPUX 7.0 cc rejects these. */
-  ++pcpcc;
-  ppc = (char**) pcpcc;
-  pcpcc = (char const *const *) ppc;
-  { /* SCO 3.2v4 cc rejects this sort of thing.  */
-    char tx;
-    char *t = &tx;
-    char const *s = 0 ? (char *) 0 : (char const *) 0;
-
-    *t++ = 0;
-    if (s) return 0;
-  }
-  { /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
-    int x[] = {25, 17};
-    const int *foo = &x[0];
-    ++foo;
-  }
-  { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
-    typedef const int *iptr;
-    iptr p = 0;
-    ++p;
-  }
-  { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying
-       "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
-    struct s { int j; const int *ap[3]; } bx;
-    struct s *b = &bx; b->j = 5;
-  }
-  { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
-    const int foo = 10;
-    if (!foo) return 0;
-  }
-  return !cs[0] && !zero.x;
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_const=yes
-else
-  ac_cv_c_const=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5
-$as_echo "$ac_cv_c_const" >&6; }
-if test $ac_cv_c_const = no; then
-
-$as_echo "#define const /**/" >>confdefs.h
-
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
-$as_echo_n "checking for inline... " >&6; }
-if ${ac_cv_c_inline+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_c_inline=no
-for ac_kw in inline __inline__ __inline; do
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __cplusplus
-typedef int foo_t;
-static $ac_kw foo_t static_foo () {return 0; }
-$ac_kw foo_t foo () {return 0; }
-#endif
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_inline=$ac_kw
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  test "$ac_cv_c_inline" != no && break
-done
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
-$as_echo "$ac_cv_c_inline" >&6; }
-
-case $ac_cv_c_inline in
-  inline | yes) ;;
-  *)
-    case $ac_cv_c_inline in
-      no) ac_val=;;
-      *) ac_val=$ac_cv_c_inline;;
-    esac
-    cat >>confdefs.h <<_ACEOF
-#ifndef __cplusplus
-#define inline $ac_val
-#endif
-_ACEOF
-    ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
-$as_echo_n "checking for C/C++ restrict keyword... " >&6; }
-if ${ac_cv_c_restrict+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_c_restrict=no
-   # The order here caters to the fact that C++ does not require restrict.
-   for ac_kw in __restrict __restrict__ _Restrict restrict; do
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-typedef int * int_ptr;
-	int foo (int_ptr $ac_kw ip) {
-	return ip[0];
-       }
-int
-main ()
-{
-int s[1];
-	int * $ac_kw t = s;
-	t[0] = 0;
-	return foo(t)
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_restrict=$ac_kw
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-     test "$ac_cv_c_restrict" != no && break
-   done
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
-$as_echo "$ac_cv_c_restrict" >&6; }
-
- case $ac_cv_c_restrict in
-   restrict) ;;
-   no) $as_echo "#define restrict /**/" >>confdefs.h
- ;;
-   *)  cat >>confdefs.h <<_ACEOF
-#define restrict $ac_cv_c_restrict
-_ACEOF
- ;;
- esac
-
-ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
-if test "x$ac_cv_type_size_t" = xyes; then :
-
-else
-
-cat >>confdefs.h <<_ACEOF
-#define size_t unsigned int
-_ACEOF
-
-fi
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5
-$as_echo_n "checking whether byte ordering is bigendian... " >&6; }
-if ${ac_cv_c_bigendian+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_c_bigendian=unknown
-    # See if we're dealing with a universal compiler.
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifndef __APPLE_CC__
-	       not a universal capable compiler
-	     #endif
-	     typedef int dummy;
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-	# Check for potential -arch flags.  It is not universal unless
-	# there are at least two -arch flags with different values.
-	ac_arch=
-	ac_prev=
-	for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do
-	 if test -n "$ac_prev"; then
-	   case $ac_word in
-	     i?86 | x86_64 | ppc | ppc64)
-	       if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then
-		 ac_arch=$ac_word
-	       else
-		 ac_cv_c_bigendian=universal
-		 break
-	       fi
-	       ;;
-	   esac
-	   ac_prev=
-	 elif test "x$ac_word" = "x-arch"; then
-	   ac_prev=arch
-	 fi
-       done
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if sys/param.h defines the BYTE_ORDER macro.
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-	     #include <sys/param.h>
-
-int
-main ()
-{
-#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \
-		     && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \
-		     && LITTLE_ENDIAN)
-	      bogus endian macros
-	     #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to BIG_ENDIAN or not.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-		#include <sys/param.h>
-
-int
-main ()
-{
-#if BYTE_ORDER != BIG_ENDIAN
-		 not big endian
-		#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
-else
-  ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # See if <limits.h> defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris).
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
-
-int
-main ()
-{
-#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN)
-	      bogus endian macros
-	     #endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  # It does; now see whether it defined to _BIG_ENDIAN or not.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <limits.h>
-
-int
-main ()
-{
-#ifndef _BIG_ENDIAN
-		 not big endian
-		#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_c_bigendian=yes
-else
-  ac_cv_c_bigendian=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    fi
-    if test $ac_cv_c_bigendian = unknown; then
-      # Compile a test program.
-      if test "$cross_compiling" = yes; then :
-  # Try to guess by grepping values from an object file.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-short int ascii_mm[] =
-		  { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 };
-		short int ascii_ii[] =
-		  { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 };
-		int use_ascii (int i) {
-		  return ascii_mm[i] + ascii_ii[i];
-		}
-		short int ebcdic_ii[] =
-		  { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 };
-		short int ebcdic_mm[] =
-		  { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 };
-		int use_ebcdic (int i) {
-		  return ebcdic_mm[i] + ebcdic_ii[i];
-		}
-		extern int foo;
-
-int
-main ()
-{
-return use_ascii (foo) == use_ebcdic (foo);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then
-	      ac_cv_c_bigendian=yes
-	    fi
-	    if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then
-	      if test "$ac_cv_c_bigendian" = unknown; then
-		ac_cv_c_bigendian=no
-	      else
-		# finding both strings is unlikely to happen, but who knows?
-		ac_cv_c_bigendian=unknown
-	      fi
-	    fi
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-
-	     /* Are we little or big endian?  From Harbison&Steele.  */
-	     union
-	     {
-	       long int l;
-	       char c[sizeof (long int)];
-	     } u;
-	     u.l = 1;
-	     return u.c[sizeof (long int) - 1] == 1;
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_c_bigendian=no
-else
-  ac_cv_c_bigendian=yes
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-    fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5
-$as_echo "$ac_cv_c_bigendian" >&6; }
- case $ac_cv_c_bigendian in #(
-   yes)
-     $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h
-;; #(
-   no)
-     $as_echo "#define WORDS_LITTLEENDIAN 1" >>confdefs.h
- ;; #(
-   universal)
-
-$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h
-
-     ;; #(
-   *)
-     as_fn_error $? "unknown endianness
- presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;;
- esac
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -fwrapv" >&5
-$as_echo_n "checking if $CC accepts -fwrapv... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -fwrapv"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -fwrapv"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -U__STRICT_ANSI__" >&5
-$as_echo_n "checking if $CC accepts -U__STRICT_ANSI__... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -U__STRICT_ANSI__"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -U__STRICT_ANSI__"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -fno-common" >&5
-$as_echo_n "checking if $CC accepts -fno-common... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -fno-common"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -fno-common"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
-for ac_prog in nroff
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NROFF+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$NROFF"; then
-  ac_cv_prog_NROFF="$NROFF" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_NROFF="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-NROFF=$ac_cv_prog_NROFF
-if test -n "$NROFF"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NROFF" >&5
-$as_echo "$NROFF" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$NROFF" && break
-done
-test -n "$NROFF" || NROFF="false"
-
-for ac_prog in asciidoc
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ASCIIDOC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ASCIIDOC"; then
-  ac_cv_prog_ASCIIDOC="$ASCIIDOC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ASCIIDOC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ASCIIDOC=$ac_cv_prog_ASCIIDOC
-if test -n "$ASCIIDOC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ASCIIDOC" >&5
-$as_echo "$ASCIIDOC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ASCIIDOC" && break
-done
-test -n "$ASCIIDOC" || ASCIIDOC="false"
-
-for ac_prog in xmlto
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_XMLTO+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$XMLTO"; then
-  ac_cv_prog_XMLTO="$XMLTO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_XMLTO="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-XMLTO=$ac_cv_prog_XMLTO
-if test -n "$XMLTO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XMLTO" >&5
-$as_echo "$XMLTO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$XMLTO" && break
-done
-test -n "$XMLTO" || XMLTO="false"
-
-for ac_prog in acrodist
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ACRODIST+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ACRODIST"; then
-  ac_cv_prog_ACRODIST="$ACRODIST" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ACRODIST="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ACRODIST=$ac_cv_prog_ACRODIST
-if test -n "$ACRODIST"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ACRODIST" >&5
-$as_echo "$ACRODIST" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ACRODIST" && break
-done
-test -n "$ACRODIST" || ACRODIST="false"
-
-for ac_prog in ps2pdf
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_PS2PDF+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$PS2PDF"; then
-  ac_cv_prog_PS2PDF="$PS2PDF" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_PS2PDF="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-PS2PDF=$ac_cv_prog_PS2PDF
-if test -n "$PS2PDF"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PS2PDF" >&5
-$as_echo "$PS2PDF" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$PS2PDF" && break
-done
-test -n "$PS2PDF" || PS2PDF="false"
-
-for ac_prog in pstopdf
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_PSTOPDF+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$PSTOPDF"; then
-  ac_cv_prog_PSTOPDF="$PSTOPDF" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_PSTOPDF="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-PSTOPDF=$ac_cv_prog_PSTOPDF
-if test -n "$PSTOPDF"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PSTOPDF" >&5
-$as_echo "$PSTOPDF" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$PSTOPDF" && break
-done
-test -n "$PSTOPDF" || PSTOPDF="false"
-
-
-if test $ASCIIDOC = false; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No asciidoc package found" >&5
-$as_echo "$as_me: WARNING: No asciidoc package found" >&2;}
-fi
-if test $XMLTO = false; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No xmlto package found" >&5
-$as_echo "$as_me: WARNING: No xmlto package found" >&2;}
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_AR="${ac_tool_prefix}ar"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_AR"; then
-  ac_ct_AR=$AR
-  # Extract the first word of "ar", so it can be a program name with args.
-set dummy ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_AR="ar"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_AR" = x; then
-    AR=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    AR=$ac_ct_AR
-  fi
-else
-  AR="$ac_cv_prog_AR"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-for ac_header in inttypes.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "inttypes.h" "ac_cv_header_inttypes_h" "$ac_includes_default"
-if test "x$ac_cv_header_inttypes_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_INTTYPES_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in strings.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "strings.h" "ac_cv_header_strings_h" "$ac_includes_default"
-if test "x$ac_cv_header_strings_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_STRINGS_H 1
-_ACEOF
-
-fi
-
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
-$as_echo_n "checking for stdbool.h that conforms to C99... " >&6; }
-if ${ac_cv_header_stdbool_h+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-             #include <stdbool.h>
-             #ifndef bool
-              "error: bool is not defined"
-             #endif
-             #ifndef false
-              "error: false is not defined"
-             #endif
-             #if false
-              "error: false is not 0"
-             #endif
-             #ifndef true
-              "error: true is not defined"
-             #endif
-             #if true != 1
-              "error: true is not 1"
-             #endif
-             #ifndef __bool_true_false_are_defined
-              "error: __bool_true_false_are_defined is not defined"
-             #endif
-
-             struct s { _Bool s: 1; _Bool t; } s;
-
-             char a[true == 1 ? 1 : -1];
-             char b[false == 0 ? 1 : -1];
-             char c[__bool_true_false_are_defined == 1 ? 1 : -1];
-             char d[(bool) 0.5 == true ? 1 : -1];
-             /* See body of main program for 'e'.  */
-             char f[(_Bool) 0.0 == false ? 1 : -1];
-             char g[true];
-             char h[sizeof (_Bool)];
-             char i[sizeof s.t];
-             enum { j = false, k = true, l = false * true, m = true * 256 };
-             /* The following fails for
-                HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
-             _Bool n[m];
-             char o[sizeof n == m * sizeof n[0] ? 1 : -1];
-             char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1];
-             /* Catch a bug in an HP-UX C compiler.  See
-                http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-                http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
-              */
-             _Bool q = true;
-             _Bool *pq = &q;
-
-int
-main ()
-{
-
-             bool e = &s;
-             *pq |= q;
-             *pq |= ! q;
-             /* Refer to every declared value, to avoid compiler optimizations.  */
-             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l
-                     + !m + !n + !o + !p + !q + !pq);
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdbool_h=yes
-else
-  ac_cv_header_stdbool_h=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
-$as_echo "$ac_cv_header_stdbool_h" >&6; }
-   ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
-if test "x$ac_cv_type__Bool" = xyes; then :
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE__BOOL 1
-_ACEOF
-
-
-fi
-
-
-if test $ac_cv_header_stdbool_h = yes; then
-
-$as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h
-
-fi
-
-for ac_header in stdnoreturn.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "stdnoreturn.h" "ac_cv_header_stdnoreturn_h" "$ac_includes_default"
-if test "x$ac_cv_header_stdnoreturn_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_STDNORETURN_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in io.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "io.h" "ac_cv_header_io_h" "$ac_includes_default"
-if test "x$ac_cv_header_io_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_IO_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in fcntl.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default"
-if test "x$ac_cv_header_fcntl_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_FCNTL_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in unistd.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
-if test "x$ac_cv_header_unistd_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_UNISTD_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in sys/param.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_param_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_PARAM_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in sys/mman.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_mman_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_MMAN_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in sys/stat.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/stat.h" "ac_cv_header_sys_stat_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_stat_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_STAT_H 1
-_ACEOF
-
-fi
-
-done
-
-for ac_header in sys/types.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default"
-if test "x$ac_cv_header_sys_types_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYS_TYPES_H 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_func in strcasecmp stricmp
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-for ac_func in strncasecmp strnicmp
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-for ac_func in strsep
-do :
-  ac_fn_c_check_func "$LINENO" "strsep" "ac_cv_func_strsep"
-if test "x$ac_cv_func_strsep" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_STRSEP 1
-_ACEOF
-
-fi
-done
-
-for ac_func in strnlen
-do :
-  ac_fn_c_check_func "$LINENO" "strnlen" "ac_cv_func_strnlen"
-if test "x$ac_cv_func_strnlen" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_STRNLEN 1
-_ACEOF
-
-fi
-done
-
-
-for ac_func in getuid
-do :
-  ac_fn_c_check_func "$LINENO" "getuid" "ac_cv_func_getuid"
-if test "x$ac_cv_func_getuid" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_GETUID 1
-_ACEOF
-
-fi
-done
-
-for ac_func in getgid
-do :
-  ac_fn_c_check_func "$LINENO" "getgid" "ac_cv_func_getgid"
-if test "x$ac_cv_func_getgid" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_GETGID 1
-_ACEOF
-
-fi
-done
-
-
-for ac_func in realpath
-do :
-  ac_fn_c_check_func "$LINENO" "realpath" "ac_cv_func_realpath"
-if test "x$ac_cv_func_realpath" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_REALPATH 1
-_ACEOF
-
-fi
-done
-
-for ac_func in canonicalize_file_name
-do :
-  ac_fn_c_check_func "$LINENO" "canonicalize_file_name" "ac_cv_func_canonicalize_file_name"
-if test "x$ac_cv_func_canonicalize_file_name" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_CANONICALIZE_FILE_NAME 1
-_ACEOF
-
-fi
-done
-
-for ac_func in _fullpath
-do :
-  ac_fn_c_check_func "$LINENO" "_fullpath" "ac_cv_func__fullpath"
-if test "x$ac_cv_func__fullpath" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE__FULLPATH 1
-_ACEOF
-
-fi
-done
-
-for ac_func in pathconf
-do :
-  ac_fn_c_check_func "$LINENO" "pathconf" "ac_cv_func_pathconf"
-if test "x$ac_cv_func_pathconf" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_PATHCONF 1
-_ACEOF
-
-fi
-done
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGEFILE_SOURCE value needed for large files" >&5
-$as_echo_n "checking for _LARGEFILE_SOURCE value needed for large files... " >&6; }
-if ${ac_cv_sys_largefile_source+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  while :; do
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h> /* for off_t */
-     #include <stdio.h>
-int
-main ()
-{
-int (*fp) (FILE *, off_t, int) = fseeko;
-     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_sys_largefile_source=no; break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#define _LARGEFILE_SOURCE 1
-#include <sys/types.h> /* for off_t */
-     #include <stdio.h>
-int
-main ()
-{
-int (*fp) (FILE *, off_t, int) = fseeko;
-     return fseeko (stdin, 0, 0) && fp (stdin, 0, 0);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_sys_largefile_source=1; break
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  ac_cv_sys_largefile_source=unknown
-  break
-done
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_source" >&5
-$as_echo "$ac_cv_sys_largefile_source" >&6; }
-case $ac_cv_sys_largefile_source in #(
-  no | unknown) ;;
-  *)
-cat >>confdefs.h <<_ACEOF
-#define _LARGEFILE_SOURCE $ac_cv_sys_largefile_source
-_ACEOF
-;;
-esac
-rm -rf conftest*
-
-# We used to try defining _XOPEN_SOURCE=500 too, to work around a bug
-# in glibc 2.1.3, but that breaks too many other things.
-# If you want fseeko and ftello with glibc, upgrade to a fixed glibc.
-if test $ac_cv_sys_largefile_source != unknown; then
-
-$as_echo "#define HAVE_FSEEKO 1" >>confdefs.h
-
-fi
-
-for ac_func in _fseeki64
-do :
-  ac_fn_c_check_func "$LINENO" "_fseeki64" "ac_cv_func__fseeki64"
-if test "x$ac_cv_func__fseeki64" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE__FSEEKI64 1
-_ACEOF
-
-fi
-done
-
-for ac_func in ftruncate _chsize _chsize_s
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-for ac_func in fileno _fileno
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-for ac_func in _filelengthi64
-do :
-  ac_fn_c_check_func "$LINENO" "_filelengthi64" "ac_cv_func__filelengthi64"
-if test "x$ac_cv_func__filelengthi64" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE__FILELENGTHI64 1
-_ACEOF
-
-fi
-done
-
-for ac_func in stat _stati64
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-for ac_func in fstat
-do :
-  ac_fn_c_check_func "$LINENO" "fstat" "ac_cv_func_fstat"
-if test "x$ac_cv_func_fstat" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_FSTAT 1
-_ACEOF
-
-fi
-done
-
-
-
-
-  for ac_header in $ac_header_list
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-
-
-
-for ac_func in getpagesize
-do :
-  ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
-if test "x$ac_cv_func_getpagesize" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_GETPAGESIZE 1
-_ACEOF
-
-fi
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5
-$as_echo_n "checking for working mmap... " >&6; }
-if ${ac_cv_func_mmap_fixed_mapped+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "$cross_compiling" = yes; then :
-  ac_cv_func_mmap_fixed_mapped=no
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-/* malloc might have been renamed as rpl_malloc. */
-#undef malloc
-
-/* Thanks to Mike Haertel and Jim Avera for this test.
-   Here is a matrix of mmap possibilities:
-	mmap private not fixed
-	mmap private fixed at somewhere currently unmapped
-	mmap private fixed at somewhere already mapped
-	mmap shared not fixed
-	mmap shared fixed at somewhere currently unmapped
-	mmap shared fixed at somewhere already mapped
-   For private mappings, we should verify that changes cannot be read()
-   back from the file, nor mmap's back from the file at a different
-   address.  (There have been systems where private was not correctly
-   implemented like the infamous i386 svr4.0, and systems where the
-   VM page cache was not coherent with the file system buffer cache
-   like early versions of FreeBSD and possibly contemporary NetBSD.)
-   For shared mappings, we should conversely verify that changes get
-   propagated back to all the places they're supposed to be.
-
-   Grep wants private fixed already mapped.
-   The main things grep needs to know about mmap are:
-   * does it exist and is it safe to write into the mmap'd area
-   * how to use it (BSD variants)  */
-
-#include <fcntl.h>
-#include <sys/mman.h>
-
-#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H
-char *malloc ();
-#endif
-
-/* This mess was copied from the GNU getpagesize.h.  */
-#ifndef HAVE_GETPAGESIZE
-# ifdef _SC_PAGESIZE
-#  define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
-#  ifdef HAVE_SYS_PARAM_H
-#   include <sys/param.h>
-#   ifdef EXEC_PAGESIZE
-#    define getpagesize() EXEC_PAGESIZE
-#   else /* no EXEC_PAGESIZE */
-#    ifdef NBPG
-#     define getpagesize() NBPG * CLSIZE
-#     ifndef CLSIZE
-#      define CLSIZE 1
-#     endif /* no CLSIZE */
-#    else /* no NBPG */
-#     ifdef NBPC
-#      define getpagesize() NBPC
-#     else /* no NBPC */
-#      ifdef PAGESIZE
-#       define getpagesize() PAGESIZE
-#      endif /* PAGESIZE */
-#     endif /* no NBPC */
-#    endif /* no NBPG */
-#   endif /* no EXEC_PAGESIZE */
-#  else /* no HAVE_SYS_PARAM_H */
-#   define getpagesize() 8192	/* punt totally */
-#  endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
-
-int
-main ()
-{
-  char *data, *data2, *data3;
-  const char *cdata2;
-  int i, pagesize;
-  int fd, fd2;
-
-  pagesize = getpagesize ();
-
-  /* First, make a file with some known garbage in it. */
-  data = (char *) malloc (pagesize);
-  if (!data)
-    return 1;
-  for (i = 0; i < pagesize; ++i)
-    *(data + i) = rand ();
-  umask (0);
-  fd = creat ("conftest.mmap", 0600);
-  if (fd < 0)
-    return 2;
-  if (write (fd, data, pagesize) != pagesize)
-    return 3;
-  close (fd);
-
-  /* Next, check that the tail of a page is zero-filled.  File must have
-     non-zero length, otherwise we risk SIGBUS for entire page.  */
-  fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600);
-  if (fd2 < 0)
-    return 4;
-  cdata2 = "";
-  if (write (fd2, cdata2, 1) != 1)
-    return 5;
-  data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L);
-  if (data2 == MAP_FAILED)
-    return 6;
-  for (i = 0; i < pagesize; ++i)
-    if (*(data2 + i))
-      return 7;
-  close (fd2);
-  if (munmap (data2, pagesize))
-    return 8;
-
-  /* Next, try to mmap the file at a fixed address which already has
-     something else allocated at it.  If we can, also make sure that
-     we see the same garbage.  */
-  fd = open ("conftest.mmap", O_RDWR);
-  if (fd < 0)
-    return 9;
-  if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
-		     MAP_PRIVATE | MAP_FIXED, fd, 0L))
-    return 10;
-  for (i = 0; i < pagesize; ++i)
-    if (*(data + i) != *(data2 + i))
-      return 11;
-
-  /* Finally, make sure that changes to the mapped area do not
-     percolate back to the file as seen by read().  (This is a bug on
-     some variants of i386 svr4.0.)  */
-  for (i = 0; i < pagesize; ++i)
-    *(data2 + i) = *(data2 + i) + 1;
-  data3 = (char *) malloc (pagesize);
-  if (!data3)
-    return 12;
-  if (read (fd, data3, pagesize) != pagesize)
-    return 13;
-  for (i = 0; i < pagesize; ++i)
-    if (*(data + i) != *(data3 + i))
-      return 14;
-  close (fd);
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-  ac_cv_func_mmap_fixed_mapped=yes
-else
-  ac_cv_func_mmap_fixed_mapped=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5
-$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; }
-if test $ac_cv_func_mmap_fixed_mapped = yes; then
-
-$as_echo "#define HAVE_MMAP 1" >>confdefs.h
-
-fi
-rm -f conftest.mmap conftest.txt
-
-for ac_func in getpagesize
-do :
-  ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
-if test "x$ac_cv_func_getpagesize" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_GETPAGESIZE 1
-_ACEOF
-
-fi
-done
-
-for ac_func in sysconf
-do :
-  ac_fn_c_check_func "$LINENO" "sysconf" "ac_cv_func_sysconf"
-if test "x$ac_cv_func_sysconf" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_SYSCONF 1
-_ACEOF
-
-fi
-done
-
-
-for ac_func in access _access faccessat
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_clz" >&5
-$as_echo_n "checking for __builtin_clz... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-(void)__builtin_clz(0U);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE___BUILTIN_CLZ 1" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_clzl" >&5
-$as_echo_n "checking for __builtin_clzl... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-(void)__builtin_clzl(0UL);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE___BUILTIN_CLZL 1" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_clzll" >&5
-$as_echo_n "checking for __builtin_clzll... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-(void)__builtin_clzll(0ULL);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE___BUILTIN_CLZLL 1" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __builtin_expect" >&5
-$as_echo_n "checking for __builtin_expect... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-(void)__builtin_expect(1,1);
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE___BUILTIN_EXPECT 1" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-
-for ac_func in vsnprintf _vsnprintf
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-for ac_func in snprintf _snprintf
-do :
-  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
-if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-for ac_func in strlcpy
-do :
-  ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy"
-if test "x$ac_cv_func_strlcpy" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_STRLCPY 1
-_ACEOF
-
-fi
-done
-
-
-ac_fn_c_check_decl "$LINENO" "strcasecmp" "ac_cv_have_decl_strcasecmp" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strcasecmp" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRCASECMP $ac_have_decl
-_ACEOF
-
-ac_fn_c_check_decl "$LINENO" "stricmp" "ac_cv_have_decl_stricmp" "$ac_includes_default"
-if test "x$ac_cv_have_decl_stricmp" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRICMP $ac_have_decl
-_ACEOF
-
-ac_fn_c_check_decl "$LINENO" "strncasecmp" "ac_cv_have_decl_strncasecmp" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strncasecmp" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRNCASECMP $ac_have_decl
-_ACEOF
-
-ac_fn_c_check_decl "$LINENO" "strnicmp" "ac_cv_have_decl_strnicmp" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strnicmp" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRNICMP $ac_have_decl
-_ACEOF
-
-ac_fn_c_check_decl "$LINENO" "strsep" "ac_cv_have_decl_strsep" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strsep" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRSEP $ac_have_decl
-_ACEOF
-
-ac_fn_c_check_decl "$LINENO" "strlcpy" "ac_cv_have_decl_strlcpy" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strlcpy" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRLCPY $ac_have_decl
-_ACEOF
-
-ac_fn_c_check_decl "$LINENO" "strnlen" "ac_cv_have_decl_strnlen" "$ac_includes_default"
-if test "x$ac_cv_have_decl_strnlen" = xyes; then :
-  ac_have_decl=1
-else
-  ac_have_decl=0
-fi
-
-cat >>confdefs.h <<_ACEOF
-#define HAVE_DECL_STRNLEN $ac_have_decl
-_ACEOF
-
-
-
-  ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default"
-if test "x$ac_cv_type_uintptr_t" = xyes; then :
-
-$as_echo "#define HAVE_UINTPTR_T 1" >>confdefs.h
-
-else
-  for ac_type in 'unsigned int' 'unsigned long int' \
-	'unsigned long long int'; do
-       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))];
-test_array [0] = 0;
-return test_array [0];
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-cat >>confdefs.h <<_ACEOF
-#define uintptr_t $ac_type
-_ACEOF
-
-	  ac_type=
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-       test -z "$ac_type" && break
-     done
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=attributes" >&5
-$as_echo_n "checking if $CC accepts -Werror=attributes... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Werror=attributes"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Werror=attributes"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports the noreturn function attribute" >&5
-$as_echo_n "checking if $CC supports the noreturn function attribute... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdarg.h>
-extern void *  __attribute__((noreturn))
-  bar(int);
-void *foo(void);
-void *foo(void)
-{
-	return bar(1);
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE_FUNC_ATTRIBUTE_NORETURN 1" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports the returns_nonnull function attribute" >&5
-$as_echo_n "checking if $CC supports the returns_nonnull function attribute... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdarg.h>
-extern void *  __attribute__((returns_nonnull))
-  bar(int);
-void *foo(void);
-void *foo(void)
-{
-	return bar(1);
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL 1" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports the malloc function attribute" >&5
-$as_echo_n "checking if $CC supports the malloc function attribute... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdarg.h>
-extern void *  __attribute__((malloc))
-  bar(int);
-void *foo(void);
-void *foo(void)
-{
-	return bar(1);
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE_FUNC_ATTRIBUTE_MALLOC 1" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports the alloc_size function attribute" >&5
-$as_echo_n "checking if $CC supports the alloc_size function attribute... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdarg.h>
-extern void *  __attribute__((alloc_size(1)))
-  bar(int);
-void *foo(void);
-void *foo(void)
-{
-	return bar(1);
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE_FUNC_ATTRIBUTE_ALLOC_SIZE 1" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports the format function attribute" >&5
-$as_echo_n "checking if $CC supports the format function attribute... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdarg.h>
-extern int  __attribute__((format(printf,1,2)))
-  bar(const char *, ...);
-void *foo(void);
-void *foo(void)
-{
-	return bar("%d",1);
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE_FUNC_ATTRIBUTE_FORMAT 1" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports the const function attribute" >&5
-$as_echo_n "checking if $CC supports the const function attribute... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdarg.h>
-extern void *  __attribute__((const))
-  bar(int);
-void *foo(void);
-void *foo(void)
-{
-	return bar(1);
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE_FUNC_ATTRIBUTE_CONST 1" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports the pure function attribute" >&5
-$as_echo_n "checking if $CC supports the pure function attribute... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdarg.h>
-extern void *  __attribute__((pure))
-  bar(int);
-void *foo(void);
-void *foo(void)
-{
-	return bar(1);
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE_FUNC_ATTRIBUTE_PURE 1" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC supports the error function attribute" >&5
-$as_echo_n "checking if $CC supports the error function attribute... " >&6; }
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-#include <stdarg.h>
-extern void __attribute__((error("message"))) barf(void);
-void foo(void);
-void foo(void)
-{
-	if (0)
-		barf();
-}
-
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-$as_echo "#define HAVE_FUNC_ATTRIBUTE_ERROR 1" >>confdefs.h
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-
-# Check whether --enable-sections was given.
-if test "${enable_sections+set}" = set; then :
-  enableval=$enable_sections; { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -ffunction-sections" >&5
-$as_echo_n "checking if $CC accepts -ffunction-sections... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -ffunction-sections"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -ffunction-sections"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext,
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -fdata-sections" >&5
-$as_echo_n "checking if $CC accepts -fdata-sections... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -fdata-sections"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -fdata-sections"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-
-
-# Check whether --enable-lto was given.
-if test "${enable_lto+set}" = set; then :
-  enableval=$enable_lto; { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -flto" >&5
-$as_echo_n "checking if $CC accepts -flto... " >&6; }
- pa_add_cldflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -flto"
- pa_add_cldflags__old_ldflags="$LDFLAGS"
- LDFLAGS="$LDFLAGS -flto"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cldflags__old_cflags -flto"
- LDFLAGS="$pa_add_cldflags__old_ldflags -flto"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cldflags__old_cflags"
- LDFLAGS="$pa_add_cldflags__old_ldflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-ccbase=`echo "$CC" | awk '{ print $1; }'`
-# Extract the first word of "${ccbase}-ar", so it can be a program name with args.
-set dummy ${ccbase}-ar; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC_AR"; then
-  ac_cv_prog_CC_AR="$CC_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC_AR="${ccbase}-ar"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_CC_AR" && ac_cv_prog_CC_AR="$ac_cv_prog_AR"
-fi
-fi
-CC_AR=$ac_cv_prog_CC_AR
-if test -n "$CC_AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_AR" >&5
-$as_echo "$CC_AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-AR="$CC_AR"
-# Extract the first word of "${ccbase}-ranlib", so it can be a program name with args.
-set dummy ${ccbase}-ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC_RANLIB"; then
-  ac_cv_prog_CC_RANLIB="$CC_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
-    ac_cv_prog_CC_RANLIB="${ccbase}-ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_prog_CC_RANLIB" && ac_cv_prog_CC_RANLIB="$ac_cv_prog_RANLIB"
-fi
-fi
-CC_RANLIB=$ac_cv_prog_CC_RANLIB
-if test -n "$CC_RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC_RANLIB" >&5
-$as_echo "$CC_RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-RANLIB="$CC_RANLIB"
-
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -W" >&5
-$as_echo_n "checking if $CC accepts -W... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -W"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -W"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Wall" >&5
-$as_echo_n "checking if $CC accepts -Wall... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Wall"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Wall"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -pedantic" >&5
-$as_echo_n "checking if $CC accepts -pedantic... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -pedantic"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -pedantic"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=unknown-warning-option" >&5
-$as_echo_n "checking if $CC accepts -Werror=unknown-warning-option... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Werror=unknown-warning-option"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Werror=unknown-warning-option"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Wpedantic-ms-format" >&5
-$as_echo_n "checking if $CC accepts -Wpedantic-ms-format... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Wpedantic-ms-format"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Wno-pedantic-ms-format"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Wc90-c99-compat" >&5
-$as_echo_n "checking if $CC accepts -Wc90-c99-compat... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Wc90-c99-compat"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Wc90-c99-compat"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Wlong-long" >&5
-$as_echo_n "checking if $CC accepts -Wlong-long... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Wlong-long"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Wno-long-long"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-# Check whether --enable-werror was given.
-if test "${enable_werror+set}" = set; then :
-  enableval=$enable_werror;
-else
-  enable_werror=no
-fi
-
-if test x"$enable_werror" != xno; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror" >&5
-$as_echo_n "checking if $CC accepts -Werror... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Werror"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Werror"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=implicit" >&5
-$as_echo_n "checking if $CC accepts -Werror=implicit... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Werror=implicit"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Werror=implicit"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=missing-braces" >&5
-$as_echo_n "checking if $CC accepts -Werror=missing-braces... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Werror=missing-braces"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Werror=missing-braces"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=return-type" >&5
-$as_echo_n "checking if $CC accepts -Werror=return-type... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Werror=return-type"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Werror=return-type"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=trigraphs" >&5
-$as_echo_n "checking if $CC accepts -Werror=trigraphs... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Werror=trigraphs"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Werror=trigraphs"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=pointer-arith" >&5
-$as_echo_n "checking if $CC accepts -Werror=pointer-arith... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Werror=pointer-arith"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Werror=pointer-arith"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=strict-prototypes" >&5
-$as_echo_n "checking if $CC accepts -Werror=strict-prototypes... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Werror=strict-prototypes"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Werror=strict-prototypes"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=missing-prototypes" >&5
-$as_echo_n "checking if $CC accepts -Werror=missing-prototypes... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Werror=missing-prototypes"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Werror=missing-prototypes"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=missing-declarations" >&5
-$as_echo_n "checking if $CC accepts -Werror=missing-declarations... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Werror=missing-declarations"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Werror=missing-declarations"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=comment" >&5
-$as_echo_n "checking if $CC accepts -Werror=comment... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Werror=comment"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Werror=comment"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC accepts -Werror=vla" >&5
-$as_echo_n "checking if $CC accepts -Werror=vla... " >&6; }
- pa_add_cflags__old_cflags="$CFLAGS"
- CFLAGS="$CFLAGS -Werror=vla"
- cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-printf("Hello, World!\n");
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags -Werror=vla"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- CFLAGS="$pa_add_cflags__old_cflags"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-
-# Check whether --enable-ccache was given.
-if test "${enable_ccache+set}" = set; then :
-  enableval=$enable_ccache; CC="ccache $CC"
-fi
-
-
-ac_config_commands="$ac_config_commands default-1"
-
-ac_config_files="$ac_config_files Makefile rdoff/Makefile doc/Makefile"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-      if test ! -f "$cache_file" || test -h "$cache_file"; then
-	cat confcache >"$cache_file"
-      else
-        case $cache_file in #(
-        */* | ?:*)
-	  mv -f confcache "$cache_file"$$ &&
-	  mv -f "$cache_file"$$ "$cache_file" ;; #(
-        *)
-	  mv -f confcache "$cache_file" ;;
-	esac
-      fi
-    fi
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-DEFS=-DHAVE_CONFIG_H
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -pR'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -pR'
-  fi
-else
-  as_ln_s='cp -pR'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-
-# as_fn_executable_p FILE
-# -----------------------
-# Test if FILE is an executable regular file.
-as_fn_executable_p ()
-{
-  test -f "$1" && test -x "$1"
-} # as_fn_executable_p
-as_test_x='test -x'
-as_executable_p=as_fn_executable_p
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.69.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-case $ac_config_headers in *"
-"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
-esac
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_headers="$ac_config_headers"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration.  Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number and configuration settings, then exit
-      --config     print configuration, then exit
-  -q, --quiet, --silent
-                   do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-      --file=FILE[:TEMPLATE]
-                   instantiate the configuration file FILE
-      --header=FILE[:TEMPLATE]
-                   instantiate the configuration header FILE
-
-Configuration files:
-$config_files
-
-Configuration headers:
-$config_headers
-
-Configuration commands:
-$config_commands
-
-Report bugs to the package provider."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.69,
-  with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2012 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=?*)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  --*=)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=
-    ac_shift=:
-    ;;
-  *)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    $as_echo "$ac_cs_version"; exit ;;
-  --config | --confi | --conf | --con | --co | --c )
-    $as_echo "$ac_cs_config"; exit ;;
-  --debug | --debu | --deb | --de | --d | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    '') as_fn_error $? "missing file argument" ;;
-    esac
-    as_fn_append CONFIG_FILES " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --header | --heade | --head | --hea )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --he | --h)
-    # Conflict between --help and --header
-    as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
-  --help | --hel | -h )
-    $as_echo "$ac_cs_usage"; exit ;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
-  *) as_fn_append ac_config_targets " $1"
-     ac_need_defaults=false ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
-  set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-  shift
-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
-  CONFIG_SHELL='$SHELL'
-  export CONFIG_SHELL
-  exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-  $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
-  case $ac_config_target in
-    "config/config.h") CONFIG_HEADERS="$CONFIG_HEADERS config/config.h" ;;
-    "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "rdoff/Makefile") CONFIG_FILES="$CONFIG_FILES rdoff/Makefile" ;;
-    "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
-
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
-  esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
-  tmp= ac_tmp=
-  trap 'exit_status=$?
-  : "${ac_tmp:=$tmp}"
-  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
-  trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -d "$tmp"
-}  ||
-{
-  tmp=./conf$$-$RANDOM
-  (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
-  eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
-if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\\r'
-else
-  ac_cs_awk_cr=$ac_cr
-fi
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
-  echo "cat >conf$$subs.awk <<_ACEOF" &&
-  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
-  echo "_ACEOF"
-} >conf$$subs.sh ||
-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  . ./conf$$subs.sh ||
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
-  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
-  if test $ac_delim_n = $ac_delim_num; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <conf$$subs.awk | sed '
-/^[^""]/{
-  N
-  s/\n//
-}
-' >>$CONFIG_STATUS || ac_write_fail=1
-rm -f conf$$subs.awk
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-_ACAWK
-cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
-  for (key in S) S_is_set[key] = 1
-  FS = ""
-
-}
-{
-  line = $ 0
-  nfields = split(line, field, "@")
-  substed = 0
-  len = length(field[1])
-  for (i = 2; i < nfields; i++) {
-    key = field[i]
-    keylen = length(key)
-    if (S_is_set[key]) {
-      value = S[key]
-      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
-      len += length(value) + length(field[++i])
-      substed = 1
-    } else
-      len += 1 + keylen
-  }
-
-  print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
-  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
-  cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
-  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
-h
-s///
-s/^/:/
-s/[	 ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[	 ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[	 ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-# Set up the scripts for CONFIG_HEADERS section.
-# No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
-if test -n "$CONFIG_HEADERS"; then
-cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
-BEGIN {
-_ACEOF
-
-# Transform confdefs.h into an awk script `defines.awk', embedded as
-# here-document in config.status, that substitutes the proper values into
-# config.h.in to produce config.h.
-
-# Create a delimiter string that does not exist in confdefs.h, to ease
-# handling of long lines.
-ac_delim='%!_!# '
-for ac_last_try in false false :; do
-  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_tt"; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-# For the awk script, D is an array of macro values keyed by name,
-# likewise P contains macro parameters if any.  Preserve backslash
-# newline sequences.
-
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-sed -n '
-s/.\{148\}/&'"$ac_delim"'/g
-t rset
-:rset
-s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
-t def
-d
-:def
-s/\\$//
-t bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3"/p
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
-d
-:bsnl
-s/["\\]/\\&/g
-s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
-D["\1"]=" \3\\\\\\n"\\/p
-t cont
-s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
-t cont
-d
-:cont
-n
-s/.\{148\}/&'"$ac_delim"'/g
-t clear
-:clear
-s/\\$//
-t bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/"/p
-d
-:bsnlc
-s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
-b cont
-' <confdefs.h | sed '
-s/'"$ac_delim"'/"\\\
-"/g' >>$CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  for (key in D) D_is_set[key] = 1
-  FS = ""
-}
-/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
-  line = \$ 0
-  split(line, arg, " ")
-  if (arg[1] == "#") {
-    defundef = arg[2]
-    mac1 = arg[3]
-  } else {
-    defundef = substr(arg[1], 2)
-    mac1 = arg[2]
-  }
-  split(mac1, mac2, "(") #)
-  macro = mac2[1]
-  prefix = substr(line, 1, index(line, defundef) - 1)
-  if (D_is_set[macro]) {
-    # Preserve the white space surrounding the "#".
-    print prefix "define", macro P[macro] D[macro]
-    next
-  } else {
-    # Replace #undef with comments.  This is necessary, for example,
-    # in the case of _POSIX_SOURCE, which is predefined and required
-    # on some systems where configure will not decide to define it.
-    if (defundef == "undef") {
-      print "/*", prefix defundef, macro, "*/"
-      next
-    }
-  }
-}
-{ print }
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
-fi # test -n "$CONFIG_HEADERS"
-
-
-eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
-  case $ac_tag in
-  :[FHLC]) ac_mode=$ac_tag; continue;;
-  esac
-  case $ac_mode$ac_tag in
-  :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
-  :[FH]-) ac_tag=-:-;;
-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-  esac
-  ac_save_IFS=$IFS
-  IFS=:
-  set x $ac_tag
-  IFS=$ac_save_IFS
-  shift
-  ac_file=$1
-  shift
-
-  case $ac_mode in
-  :L) ac_source=$1;;
-  :[FH])
-    ac_file_inputs=
-    for ac_f
-    do
-      case $ac_f in
-      -) ac_f="$ac_tmp/stdin";;
-      *) # Look for the file first in the build tree, then in the source tree
-	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
-	 # because $ac_f cannot contain `:'.
-	 test -f "$ac_f" ||
-	   case $ac_f in
-	   [\\/$]*) false;;
-	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
-      esac
-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      as_fn_append ac_file_inputs " '$ac_f'"
-    done
-
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
-    # use $as_me), people would be surprised to read:
-    #    /* config.h.  Generated by config.status.  */
-    configure_input='Generated from '`
-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
-	`' by configure.'
-    if test x"$ac_file" != x-; then
-      configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
-    fi
-    # Neutralize special characters interpreted by sed in replacement strings.
-    case $configure_input in #(
-    *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`$as_echo "$configure_input" |
-       sed 's/[\\\\&|]/\\\\&/g'`;; #(
-    *) ac_sed_conf_input=$configure_input;;
-    esac
-
-    case $ac_tag in
-    *:-:* | *:-) cat >"$ac_tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
-    esac
-    ;;
-  esac
-
-  ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  as_dir="$ac_dir"; as_fn_mkdir_p
-  ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
-  case $ac_mode in
-  :F)
-  #
-  # CONFIG_FILE
-  #
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
-  esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
-  p
-  q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  ac_datarootdir_hack='
-  s&@datadir@&$datadir&g
-  s&@docdir@&$docdir&g
-  s&@infodir@&$infodir&g
-  s&@localedir@&$localedir&g
-  s&@mandir@&$mandir&g
-  s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
-  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
-      "$ac_tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&2;}
-
-  rm -f "$ac_tmp/stdin"
-  case $ac_file in
-  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
-  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
-  esac \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
-  :H)
-  #
-  # CONFIG_HEADER
-  #
-  if test x"$ac_file" != x-; then
-    {
-      $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
-    } >"$ac_tmp/config.h" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
-$as_echo "$as_me: $ac_file is unchanged" >&6;}
-    else
-      rm -f "$ac_file"
-      mv "$ac_tmp/config.h" "$ac_file" \
-	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    fi
-  else
-    $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
-      || as_fn_error $? "could not create -" "$LINENO" 5
-  fi
- ;;
-
-  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
-  esac
-
-
-  case $ac_file$ac_mode in
-    "default-1":C) mkdir -p config nasmlib nsis output stdlib x86 asm disasm ;;
-
-  esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
-  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
--- a/nasmbuild/nasm-2.13rc9/configure.ac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,220 +0,0 @@
-dnl Process this file with autoconf 2.63 or later to produce
-dnl a configure script.
-AC_PREREQ(2.63)
-AC_INIT(config/config.h.in)
-AC_CONFIG_HEADERS(config/config.h)
-
-AC_PREFIX_PROGRAM(nasm)
-
-dnl Save initial CFLAGS, to see if -g -O2 came from configure or not
-pa_init_cflags="$CFLAGS"
-
-dnl Checks for programs and enable necessary CC extensions
-AC_USE_SYSTEM_EXTENSIONS
-AC_SYS_LARGEFILE
-AC_PROG_CC
-AC_PROG_CC_STDC
-AC_PROG_LN_S
-AC_PROG_MAKE_SET
-AC_PROG_INSTALL
-
-dnl If the user did not specify a CFLAGS default, change default -O2 to -O3
-if test x"$pa_init_cflags" = x; then
-   CFLAGS=`echo "$CFLAGS" | sed -e 's/-O2/-O3/'`
-fi
-
-dnl Check for library extension
-PA_LIBEXT
-
-dnl Checks for typedefs, structures, and compiler characteristics.
-AC_C_CONST
-AC_C_INLINE
-AC_C_RESTRICT
-AC_TYPE_SIZE_T
-AC_C_BIGENDIAN(AC_DEFINE(WORDS_BIGENDIAN),AC_DEFINE(WORDS_LITTLEENDIAN),,)
-AH_TEMPLATE(WORDS_BIGENDIAN,
-[Define to 1 if your processor stores words with the most significant
-byte first (like Motorola and SPARC, unlike Intel and VAX).])
-AH_TEMPLATE(WORDS_LITTLEENDIAN,
-[Define to 1 if your processor stores words with the least significant
-byte first (like Intel and VAX, unlike Motorola and SPARC).])
-
-dnl Force gcc and gcc-compatible compilers treat signed integers
-dnl as 2's complement
-PA_ADD_CFLAGS([-fwrapv])
-
-dnl Some environments abuse __STRICT_ANSI__ to disable some
-dnl function declarations
-PA_ADD_CFLAGS([-U__STRICT_ANSI__])
-
-dnl Don't put things in common if we can avoid it.  We don't want to
-dnl assume all compilers support common, and this will help find those
-dnl problems.  This also works around an OSX linker problem.
-PA_ADD_CFLAGS([-fno-common])
-
-dnl Look for programs...
-AC_CHECK_PROGS(NROFF,    nroff,    false)
-AC_CHECK_PROGS(ASCIIDOC, asciidoc, false)
-AC_CHECK_PROGS(XMLTO,    xmlto,    false)
-AC_CHECK_PROGS(ACRODIST, acrodist, false)
-AC_CHECK_PROGS(PS2PDF,   ps2pdf,   false)
-AC_CHECK_PROGS(PSTOPDF,  pstopdf,  false)
-
-dnl Check for progs needed for manpage generation
-if test $ASCIIDOC = false; then
-  AC_MSG_WARN([No asciidoc package found])
-fi
-if test $XMLTO = false; then
-  AC_MSG_WARN([No xmlto package found])
-fi
-
-dnl Check for host compiler tools
-AC_CHECK_TOOL(AR, ar)
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-AC_CHECK_TOOL(STRIP, strip)
-
-dnl Checks for header files.
-AC_HEADER_STDC
-AC_CHECK_HEADERS(inttypes.h)
-AC_CHECK_HEADERS(strings.h)
-AC_HEADER_STDBOOL
-AC_CHECK_HEADERS(stdnoreturn.h)
-AC_CHECK_HEADERS(io.h)
-AC_CHECK_HEADERS(fcntl.h)
-AC_CHECK_HEADERS(unistd.h)
-AC_CHECK_HEADERS(sys/param.h)
-AC_CHECK_HEADERS(sys/mman.h)
-AC_CHECK_HEADERS(sys/stat.h)
-AC_CHECK_HEADERS(sys/types.h)
-
-dnl Checks for library functions.
-AC_CHECK_FUNCS(strcasecmp stricmp)
-AC_CHECK_FUNCS(strncasecmp strnicmp)
-AC_CHECK_FUNCS(strsep)
-AC_CHECK_FUNCS(strnlen)
-
-AC_CHECK_FUNCS(getuid)
-AC_CHECK_FUNCS(getgid)
-
-AC_CHECK_FUNCS(realpath)
-AC_CHECK_FUNCS(canonicalize_file_name)
-AC_CHECK_FUNCS(_fullpath)
-AC_CHECK_FUNCS(pathconf)
-
-AC_FUNC_FSEEKO
-AC_CHECK_FUNCS([_fseeki64])
-AC_CHECK_FUNCS([ftruncate _chsize _chsize_s])
-AC_CHECK_FUNCS([fileno _fileno])
-
-AC_CHECK_FUNCS(_filelengthi64)
-AC_CHECK_FUNCS([stat _stati64])
-AC_CHECK_FUNCS(fstat)
-AC_FUNC_MMAP
-AC_CHECK_FUNCS(getpagesize)
-AC_CHECK_FUNCS(sysconf)
-
-AC_CHECK_FUNCS([access _access faccessat])
-
-PA_HAVE_FUNC(__builtin_clz, (0U))
-PA_HAVE_FUNC(__builtin_clzl, (0UL))
-PA_HAVE_FUNC(__builtin_clzll, (0ULL))
-PA_HAVE_FUNC(__builtin_expect, (1,1))
-
-dnl Functions for which we have replacements available in lib/
-AC_CHECK_FUNCS([vsnprintf _vsnprintf])
-AC_CHECK_FUNCS([snprintf _snprintf])
-AC_CHECK_FUNCS([strlcpy])
-
-dnl Check for functions that might not be declared in the headers for
-dnl various idiotic reasons (mostly because of library authors
-dnl abusing the meaning of __STRICT_ANSI__)
-AC_CHECK_DECLS(strcasecmp)
-AC_CHECK_DECLS(stricmp)
-AC_CHECK_DECLS(strncasecmp)
-AC_CHECK_DECLS(strnicmp)
-AC_CHECK_DECLS(strsep)
-AC_CHECK_DECLS(strlcpy)
-AC_CHECK_DECLS(strnlen)
-
-dnl Check for missing types
-AC_TYPE_UINTPTR_T
-
-dnl
-dnl Check for supported gcc attributes; some compilers (e.g. Sun CC)
-dnl support these, but don't define __GNUC__ as they don't support
-dnl some other features of gcc.
-dnl
-PA_ADD_CFLAGS([-Werror=attributes])
-PA_FUNC_ATTRIBUTE(noreturn)
-PA_FUNC_ATTRIBUTE(returns_nonnull)
-PA_FUNC_ATTRIBUTE(malloc)
-PA_FUNC_ATTRIBUTE(alloc_size, (1))
-PA_FUNC_ATTRIBUTE(format, [(printf,1,2)], int, [const char *, ...], ["%d",1])
-PA_FUNC_ATTRIBUTE(const)
-PA_FUNC_ATTRIBUTE(pure)
-PA_FUNC_ATTRIBUTE_ERROR
-
-dnl
-dnl support function sections
-dnl
-AC_ARG_ENABLE([sections],
-[AC_HELP_STRING([--enable-sections], [compile with function/data section support])],
-[PA_ADD_CFLAGS([-ffunction-sections]),
-PA_ADD_CFLAGS([-fdata-sections])],
-[])
-
-dnl
-dnl support LTO
-dnl
-AC_ARG_ENABLE([lto],
-[AC_HELP_STRING([--enable-lto], [compile with gcc link time optimization])],
-[PA_ADD_CLDFLAGS([-flto])
-dnl Note: we use _PROG rather than _TOOL since we are prepending the full
-dnl CC name which ought to already contain the host triplet if needed
-ccbase=`echo "$CC" | awk '{ print $1; }'`
-AC_CHECK_PROG(CC_AR, [${ccbase}-ar], [${ccbase}-ar], [$ac_cv_prog_AR])
-AR="$CC_AR"
-AC_CHECK_PROG(CC_RANLIB, [${ccbase}-ranlib], [${ccbase}-ranlib], [$ac_cv_prog_RANLIB])
-RANLIB="$CC_RANLIB"
-], [])
-
-dnl If we have gcc, add appropriate code cleanliness options
-PA_ADD_CFLAGS([-W])
-PA_ADD_CFLAGS([-Wall])
-PA_ADD_CFLAGS([-pedantic])
-dnl LLVM doesn't error out on invalid -W options unless this option is
-dnl specified first.  Enable this so this script can actually discover
-dnl which -W options are possible for this compiler.
-PA_ADD_CFLAGS([-Werror=unknown-warning-option])
-dnl Suppress format warning on Windows targets due to their <inttypes.h>
-PA_ADD_CFLAGS([-Wpedantic-ms-format],[-Wno-pedantic-ms-format])
-PA_ADD_CFLAGS([-Wc90-c99-compat])
-PA_ADD_CFLAGS([-Wlong-long],[-Wno-long-long])
-dnl PA_ADD_CFLAGS([-Wwrite-strings])
-AC_ARG_ENABLE([werror],
-[AC_HELP_STRING([--enable-werror],
-[compile with -Werror to error out on any warning])],
-[], [enable_werror=no])
-AS_IF([test x"$enable_werror" != xno],
-[PA_ADD_CFLAGS([-Werror])],
-[PA_ADD_CFLAGS([-Werror=implicit])
-PA_ADD_CFLAGS([-Werror=missing-braces])
-PA_ADD_CFLAGS([-Werror=return-type])
-PA_ADD_CFLAGS([-Werror=trigraphs])
-PA_ADD_CFLAGS([-Werror=pointer-arith])
-PA_ADD_CFLAGS([-Werror=strict-prototypes])
-PA_ADD_CFLAGS([-Werror=missing-prototypes])
-PA_ADD_CFLAGS([-Werror=missing-declarations])
-PA_ADD_CFLAGS([-Werror=comment])
-PA_ADD_CFLAGS([-Werror=vla])])
-
-dnl
-dnl support ccache
-dnl
-AC_ARG_ENABLE([ccache],
-[AC_HELP_STRING([--enable-ccache], [compile with ccache])],
-[CC="ccache $CC"],
-[])
-
-AC_OUTPUT_COMMANDS([mkdir -p config nasmlib nsis output stdlib x86 asm disasm])
-AC_OUTPUT(Makefile rdoff/Makefile doc/Makefile)
--- a/nasmbuild/nasm-2.13rc9/confoutput	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-checking for prefix by checking for nasm... no
-checking for gcc... gcc
-checking whether the C compiler works... yes
-checking for C compiler default output file name... a.out
-checking for suffix of executables... 
-checking whether we are cross compiling... no
-checking for suffix of object files... o
-checking whether we are using the GNU C compiler... yes
-checking whether gcc accepts -g... yes
-checking for gcc option to accept ISO C89... none needed
-checking how to run the C preprocessor... gcc -E
-checking for grep that handles long lines and -e... /bin/grep
-checking for egrep... /bin/grep -E
-checking for ANSI C header files... yes
-checking for sys/types.h... yes
-checking for sys/stat.h... yes
-checking for stdlib.h... yes
-checking for string.h... yes
-checking for memory.h... yes
-checking for strings.h... yes
-checking for inttypes.h... yes
-checking for stdint.h... yes
-checking for unistd.h... yes
-checking minix/config.h usability... no
-checking minix/config.h presence... no
-checking for minix/config.h... no
-checking whether it is safe to define __EXTENSIONS__... yes
-checking for special C compiler options needed for large files... no
-checking for _FILE_OFFSET_BITS value needed for large files... no
-checking for gcc... (cached) gcc
-checking whether we are using the GNU C compiler... (cached) yes
-checking whether gcc accepts -g... (cached) yes
-checking for gcc option to accept ISO C89... (cached) none needed
-checking for gcc option to accept ISO C99... -std=gnu99
-checking for gcc -std=gnu99 option to accept ISO Standard C... (cached) -std=gnu99
-checking whether ln -s works... yes
-checking whether make sets $(MAKE)... yes
-checking for a BSD-compatible install... /usr/bin/install -c
-checking for suffix of library files... a
-checking for an ANSI C-conforming const... yes
-checking for inline... inline
-checking for C/C++ restrict keyword... __restrict
-checking for size_t... yes
-checking whether byte ordering is bigendian... no
-checking if gcc -std=gnu99 accepts -fwrapv... yes
-checking if gcc -std=gnu99 accepts -U__STRICT_ANSI__... yes
-checking if gcc -std=gnu99 accepts -fno-common... yes
-checking for nroff... nroff
-checking for asciidoc... no
-checking for xmlto... no
-checking for acrodist... no
-checking for ps2pdf... no
-checking for pstopdf... no
-checking for ar... ar
-checking for ranlib... ranlib
-checking for strip... strip
-checking for ANSI C header files... (cached) yes
-checking for inttypes.h... (cached) yes
-checking for strings.h... (cached) yes
-checking for stdbool.h that conforms to C99... yes
-checking for _Bool... yes
-checking stdnoreturn.h usability... yes
-checking stdnoreturn.h presence... yes
-checking for stdnoreturn.h... yes
-checking io.h usability... no
-checking io.h presence... no
-checking for io.h... no
-checking fcntl.h usability... yes
-checking fcntl.h presence... yes
-checking for fcntl.h... yes
-checking for unistd.h... (cached) yes
-checking sys/param.h usability... yes
-checking sys/param.h presence... yes
-checking for sys/param.h... yes
-checking sys/mman.h usability... yes
-checking sys/mman.h presence... yes
-checking for sys/mman.h... yes
-checking for sys/stat.h... (cached) yes
-checking for sys/types.h... (cached) yes
-checking for strcasecmp... yes
-checking for stricmp... no
-checking for strncasecmp... yes
-checking for strnicmp... no
-checking for strsep... yes
-checking for strnlen... yes
-checking for getuid... yes
-checking for getgid... yes
-checking for realpath... yes
-checking for canonicalize_file_name... 
\ No newline at end of file
--- a/nasmbuild/nasm-2.13rc9/conftest.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/* confdefs.h */
-#define PACKAGE_NAME ""
-#define PACKAGE_TARNAME ""
-#define PACKAGE_VERSION ""
-#define PACKAGE_STRING ""
-#define PACKAGE_BUGREPORT ""
-#define PACKAGE_URL ""
-#define STDC_HEADERS 1
-#define HAVE_SYS_TYPES_H 1
-#define HAVE_SYS_STAT_H 1
-#define HAVE_STDLIB_H 1
-#define HAVE_STRING_H 1
-#define HAVE_MEMORY_H 1
-#define HAVE_STRINGS_H 1
-#define HAVE_INTTYPES_H 1
-#define HAVE_STDINT_H 1
-#define HAVE_UNISTD_H 1
-#define __EXTENSIONS__ 1
-#define _ALL_SOURCE 1
-#define _GNU_SOURCE 1
-#define _POSIX_PTHREAD_SEMANTICS 1
-#define _TANDEM_SOURCE 1
-#define restrict __restrict
-#define WORDS_LITTLEENDIAN 1
-#define STDC_HEADERS 1
-#define HAVE_INTTYPES_H 1
-#define HAVE_STRINGS_H 1
-#define HAVE__BOOL 1
-#define HAVE_STDBOOL_H 1
-#define HAVE_STDNORETURN_H 1
-#define HAVE_FCNTL_H 1
-#define HAVE_UNISTD_H 1
-#define HAVE_SYS_PARAM_H 1
-#define HAVE_SYS_MMAN_H 1
-#define HAVE_SYS_STAT_H 1
-#define HAVE_SYS_TYPES_H 1
-#define HAVE_STRCASECMP 1
-#define HAVE_STRNCASECMP 1
-#define HAVE_STRSEP 1
-#define HAVE_STRNLEN 1
-#define HAVE_GETUID 1
-#define HAVE_GETGID 1
-#define HAVE_REALPATH 1
-/* end confdefs.h.  */
-/* Define canonicalize_file_name to an innocuous variant, in case <limits.h> declares canonicalize_file_name.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define canonicalize_file_name innocuous_canonicalize_file_name
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char canonicalize_file_name (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef canonicalize_file_name
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char canonicalize_file_name ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_canonicalize_file_name || defined __stub___canonicalize_file_name
-choke me
-#endif
-
-int
-main ()
-{
-return canonicalize_file_name ();
-  ;
-  return 0;
-}
--- a/nasmbuild/nasm-2.13rc9/contrib/MSVC6.txt	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-Compilation with Nasm on MSVC 6.0, with usage of Custom Build step.
-
-1) Open your project in MSVC.
-
-2) Add .asm at the list of source files.
-
-3) Click on it with the right button, further press Settings...
-
-4) In General tab, flags "Always use custom build step" and "Exclude file
-   from build" should be disabled.
-
-5) In "Custom Build" tab it is necessary to define "Commands" and "Outputs"
-   (By "Outputs" build system checks if it has reached a necessary result.
-    This parameter is mandatory and without it MSVC will not let you close
-    the window by OK button).
-
-   The "Commands" should be set to
-
-        nasmw.exe -fwin -o $(OUTDIR)\$(InputName).obj $(InputName).asm
-
-   And "Outputs" to
-
-        $(OUTDIR)\$(InputName).obj
-
-Have fun!
--- a/nasmbuild/nasm-2.13rc9/contrib/VSrules/nasm.README	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-			Visual Studio 2008 NASM integration
-
-
-In order to use nasm seamlessly in your VS2k8, follow the steps below. 
-
-1. First install nasm by running its installer
-2. copy nasm.rules to c:\Program Files\Microsoft Visual Studio 2008\VC\VCProjectDefaults
-3. Start Visual Studio 2008
-4. go to Tools->Options->VC++ Directories
-5. click on Show Directories for Executables
-6. add C:\Program Files\NASM to the list of paths
-7. Open a solution that you want to use NASM with
-8. Right click on the project name and select Custom Build Rules
-9. Check the box next to the NASM line
-10. Add any .asm files to the project
-11. click on build to test
--- a/nasmbuild/nasm-2.13rc9/contrib/VSrules/nasm.rules	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<VisualStudioToolFile
-	Name="Netwide Macro Assembler"
-	Version="8.00"
-	>
-	<Rules>
-		<CustomBuildRule
-			Name="NASM"
-			DisplayName="Netwide Macro Assembler"
-			CommandLine="nasm.exe -f win32 -Xvc [AllOptions] [AdditionalOptions] [Inputs]"
-			Outputs="[$ObjectFileName]"
-			FileExtensions="*.asm"
-			ExecutionDescription="Assembling..."
-			>
-			<Properties>
-				<StringProperty
-					Name="ObjectFileName"
-					DisplayName="Object File Name"
-					PropertyPageName="Object File"
-					Description="Specifies the name of the output object file.     (-o [file])"
-					HelpURL="http://www.nasm.us/doc/"
-					Switch="-o &quot;[value]&quot;"
-					DefaultValue="$(IntDir)\$(InputName).obj"
-				/>
-				<StringProperty
-					Name="PreprocessorDefinitions"
-					DisplayName="Preprocessor Definitions"
-					Description="Defines a text macro with the given name.     (-D[symbol])"
-					HelpURL="http://www.nasm.us/doc/"
-					Switch="-D[value]"
-					Delimited="false"
-					Inheritable="true"
-				/>
-				<StringProperty
-					Name="UndefinePreprocessorDefinitions"
-					DisplayName="Undefine Preprocessor Definitions"
-					Description="Undefines a text macro with the given name.     (-U[symbol])"
-					HelpURL="http://www.nasm.us/doc/"
-					Switch="-U[value]"
-					Delimited="false"
-					Inheritable="true"
-				/>
-				<StringProperty
-					Name="AssembledCodeListingFile"
-					DisplayName="Assembled Code Listing File"
-					PropertyPageName="Listing File"
-					Description="Generates an assembled code listing file.     (-l [file])"
-					HelpURL="http://www.nasm.us/doc/"
-					Switch="-l &quot;[value]&quot;"
-				/>
-				<StringProperty
-					Name="IncludePaths"
-					DisplayName="Include Paths"
-					Description="Sets path for include file.     (-I[path])"
-					HelpURL="http://www.nasm.us/doc/"
-					Switch="-I[value]"
-					Delimited="false"
-					Inheritable="true"
-				/>
-				<BooleanProperty
-					Name="TreatWarningsAsErrors"
-					DisplayName="Treat Warnings As Errors"
-					Description="Returns an error code if warnings are generated.     (-Werror)"
-					HelpURL="http://www.nasm.us/doc/"
-					Switch="-Werror"
-				/>
-				<BooleanProperty
-					Name="GenerateDebugInformation"
-					DisplayName="Generate Debug Information"
-					Description="Generates Debug Information.     (-g)"
-					HelpURL="http://www.nasm.us/doc/"
-					Switch="-g"
-					DefaultValue="true"
-				/>
-				
-			</Properties>
-		</CustomBuildRule>
-	</Rules>
-</VisualStudioToolFile>
--- a/nasmbuild/nasm-2.13rc9/disasm/disasm.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1735 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2012 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/* 
- * disasm.c   where all the _work_ gets done in the Netwide Disassembler
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <string.h>
-#include <limits.h>
-
-#include "nasm.h"
-#include "disasm.h"
-#include "sync.h"
-#include "insns.h"
-#include "tables.h"
-#include "regdis.h"
-#include "disp8.h"
-
-/*
- * Flags that go into the `segment' field of `insn' structures
- * during disassembly.
- */
-#define SEG_RELATIVE    1
-#define SEG_32BIT       2
-#define SEG_RMREG       4
-#define SEG_DISP8       8
-#define SEG_DISP16     16
-#define SEG_DISP32     32
-#define SEG_NODISP     64
-#define SEG_SIGNED    128
-#define SEG_64BIT     256
-
-/*
- * Prefix information
- */
-struct prefix_info {
-    uint8_t osize;      /* Operand size */
-    uint8_t asize;      /* Address size */
-    uint8_t osp;        /* Operand size prefix present */
-    uint8_t asp;        /* Address size prefix present */
-    uint8_t rep;        /* Rep prefix present */
-    uint8_t seg;        /* Segment override prefix present */
-    uint8_t wait;       /* WAIT "prefix" present */
-    uint8_t lock;       /* Lock prefix present */
-    uint8_t vex[3];     /* VEX prefix present */
-    uint8_t vex_c;      /* VEX "class" (VEX, XOP, ...) */
-    uint8_t vex_m;      /* VEX.M field */
-    uint8_t vex_v;
-    uint8_t vex_lp;     /* VEX.LP fields */
-    uint32_t rex;       /* REX prefix present */
-    uint8_t evex[3];    /* EVEX prefix present */
-};
-
-#define getu8(x) (*(uint8_t *)(x))
-#if X86_MEMORY
-/* Littleendian CPU which can handle unaligned references */
-#define getu16(x) (*(uint16_t *)(x))
-#define getu32(x) (*(uint32_t *)(x))
-#define getu64(x) (*(uint64_t *)(x))
-#else
-static uint16_t getu16(uint8_t *data)
-{
-    return (uint16_t)data[0] + ((uint16_t)data[1] << 8);
-}
-static uint32_t getu32(uint8_t *data)
-{
-    return (uint32_t)getu16(data) + ((uint32_t)getu16(data+2) << 16);
-}
-static uint64_t getu64(uint8_t *data)
-{
-    return (uint64_t)getu32(data) + ((uint64_t)getu32(data+4) << 32);
-}
-#endif
-
-#define gets8(x) ((int8_t)getu8(x))
-#define gets16(x) ((int16_t)getu16(x))
-#define gets32(x) ((int32_t)getu32(x))
-#define gets64(x) ((int64_t)getu64(x))
-
-/* Important: regval must already have been adjusted for rex extensions */
-static enum reg_enum whichreg(opflags_t regflags, int regval, int rex)
-{
-    size_t i;
-
-    static const struct {
-        opflags_t       flags;
-        enum reg_enum   reg;
-    } specific_registers[] = {
-        {REG_AL,  R_AL},
-        {REG_AX,  R_AX},
-        {REG_EAX, R_EAX},
-        {REG_RAX, R_RAX},
-        {REG_DL,  R_DL},
-        {REG_DX,  R_DX},
-        {REG_EDX, R_EDX},
-        {REG_RDX, R_RDX},
-        {REG_CL,  R_CL},
-        {REG_CX,  R_CX},
-        {REG_ECX, R_ECX},
-        {REG_RCX, R_RCX},
-        {FPU0,    R_ST0},
-        {XMM0,    R_XMM0},
-        {YMM0,    R_YMM0},
-        {ZMM0,    R_ZMM0},
-        {REG_ES,  R_ES},
-        {REG_CS,  R_CS},
-        {REG_SS,  R_SS},
-        {REG_DS,  R_DS},
-        {REG_FS,  R_FS},
-        {REG_GS,  R_GS},
-        {OPMASK0, R_K0},
-    };
-
-    if (!(regflags & (REGISTER|REGMEM)))
-        return 0;        /* Registers not permissible?! */
-
-    regflags |= REGISTER;
-
-    for (i = 0; i < ARRAY_SIZE(specific_registers); i++)
-        if (!(specific_registers[i].flags & ~regflags))
-            return specific_registers[i].reg;
-
-    /* All the entries below look up regval in an 16-entry array */
-    if (regval < 0 || regval > (rex & REX_EV ? 31 : 15))
-        return 0;
-
-#define GET_REGISTER(__array, __index)                      \
-    ((size_t)(__index) < (size_t)ARRAY_SIZE(__array) ? __array[(__index)] : 0)
-
-    if (!(REG8 & ~regflags)) {
-        if (rex & (REX_P|REX_NH))
-            return GET_REGISTER(nasm_rd_reg8_rex, regval);
-        else
-            return GET_REGISTER(nasm_rd_reg8, regval);
-    }
-    if (!(REG16 & ~regflags))
-        return GET_REGISTER(nasm_rd_reg16, regval);
-    if (!(REG32 & ~regflags))
-        return GET_REGISTER(nasm_rd_reg32, regval);
-    if (!(REG64 & ~regflags))
-        return GET_REGISTER(nasm_rd_reg64, regval);
-    if (!(REG_SREG & ~regflags))
-        return GET_REGISTER(nasm_rd_sreg, regval & 7); /* Ignore REX */
-    if (!(REG_CREG & ~regflags))
-        return GET_REGISTER(nasm_rd_creg, regval);
-    if (!(REG_DREG & ~regflags))
-        return GET_REGISTER(nasm_rd_dreg, regval);
-    if (!(REG_TREG & ~regflags)) {
-        if (regval > 7)
-            return 0;        /* TR registers are ill-defined with rex */
-        return GET_REGISTER(nasm_rd_treg, regval);
-    }
-    if (!(FPUREG & ~regflags))
-        return GET_REGISTER(nasm_rd_fpureg, regval & 7); /* Ignore REX */
-    if (!(MMXREG & ~regflags))
-        return GET_REGISTER(nasm_rd_mmxreg, regval & 7); /* Ignore REX */
-    if (!(XMMREG & ~regflags))
-        return GET_REGISTER(nasm_rd_xmmreg, regval);
-    if (!(YMMREG & ~regflags))
-        return GET_REGISTER(nasm_rd_ymmreg, regval);
-    if (!(ZMMREG & ~regflags))
-        return GET_REGISTER(nasm_rd_zmmreg, regval);
-    if (!(OPMASKREG & ~regflags))
-        return GET_REGISTER(nasm_rd_opmaskreg, regval);
-    if (!(BNDREG & ~regflags))
-        return GET_REGISTER(nasm_rd_bndreg, regval);
-
-#undef GET_REGISTER
-    return 0;
-}
-
-static uint32_t append_evex_reg_deco(char *buf, uint32_t num,
-                                    decoflags_t deco, uint8_t *evex)
-{
-    const char * const er_names[] = {"rn-sae", "rd-sae", "ru-sae", "rz-sae"};
-    uint32_t num_chars = 0;
-
-    if ((deco & MASK) && (evex[2] & EVEX_P2AAA)) {
-        enum reg_enum opmasknum = nasm_rd_opmaskreg[evex[2] & EVEX_P2AAA];
-        const char * regname = nasm_reg_names[opmasknum - EXPR_REG_START];
-
-        num_chars += snprintf(buf + num_chars, num - num_chars,
-                              "{%s}", regname);
-
-        if ((deco & Z) && (evex[2] & EVEX_P2Z)) {
-            num_chars += snprintf(buf + num_chars, num - num_chars,
-                                  "{z}");
-        }
-    }
-
-    if (evex[2] & EVEX_P2B) {
-        if (deco & ER) {
-            uint8_t er_type = (evex[2] & EVEX_P2LL) >> 5;
-            num_chars += snprintf(buf + num_chars, num - num_chars,
-                                  ",{%s}", er_names[er_type]);
-        } else if (deco & SAE) {
-            num_chars += snprintf(buf + num_chars, num - num_chars,
-                                  ",{sae}");
-        }
-    }
-
-    return num_chars;
-}
-
-static uint32_t append_evex_mem_deco(char *buf, uint32_t num, opflags_t type,
-                                     decoflags_t deco, uint8_t *evex)
-{
-    uint32_t num_chars = 0;
-
-    if ((evex[2] & EVEX_P2B) && (deco & BRDCAST_MASK)) {
-        decoflags_t deco_brsize = deco & BRSIZE_MASK;
-        opflags_t template_opsize = (deco_brsize == BR_BITS32 ? BITS32 : BITS64);
-        uint8_t br_num = (type & SIZE_MASK) / BITS128 *
-                         BITS64 / template_opsize * 2;
-
-        num_chars += snprintf(buf + num_chars, num - num_chars,
-                              "{1to%d}", br_num);
-    }
-
-    if ((deco & MASK) && (evex[2] & EVEX_P2AAA)) {
-        enum reg_enum opmasknum = nasm_rd_opmaskreg[evex[2] & EVEX_P2AAA];
-        const char * regname = nasm_reg_names[opmasknum - EXPR_REG_START];
-
-        num_chars += snprintf(buf + num_chars, num - num_chars,
-                              "{%s}", regname);
-
-        if ((deco & Z) && (evex[2] & EVEX_P2Z)) {
-            num_chars += snprintf(buf + num_chars, num - num_chars,
-                                  "{z}");
-        }
-    }
-
-
-    return num_chars;
-}
-
-/*
- * Process an effective address (ModRM) specification.
- */
-static uint8_t *do_ea(uint8_t *data, int modrm, int asize,
-                      int segsize, enum ea_type type,
-                      operand *op, insn *ins)
-{
-    int mod, rm, scale, index, base;
-    int rex;
-    uint8_t *evex;
-    uint8_t sib = 0;
-    bool is_evex = !!(ins->rex & REX_EV);
-
-    mod = (modrm >> 6) & 03;
-    rm = modrm & 07;
-
-    if (mod != 3 && asize != 16 && rm == 4)
-        sib = *data++;
-
-    rex  = ins->rex;
-    evex = ins->evex_p;
-
-    if (mod == 3) {             /* pure register version */
-        op->basereg = rm+(rex & REX_B ? 8 : 0);
-        op->segment |= SEG_RMREG;
-        if (is_evex && segsize == 64) {
-            op->basereg += (evex[0] & EVEX_P0X ? 0 : 16);
-        }
-        return data;
-    }
-
-    op->disp_size = 0;
-    op->eaflags = 0;
-
-    if (asize == 16) {
-        /*
-         * <mod> specifies the displacement size (none, byte or
-         * word), and <rm> specifies the register combination.
-         * Exception: mod=0,rm=6 does not specify [BP] as one might
-         * expect, but instead specifies [disp16].
-         */
-
-        if (type != EA_SCALAR)
-            return NULL;
-
-        op->indexreg = op->basereg = -1;
-        op->scale = 1;          /* always, in 16 bits */
-        switch (rm) {
-        case 0:
-            op->basereg = R_BX;
-            op->indexreg = R_SI;
-            break;
-        case 1:
-            op->basereg = R_BX;
-            op->indexreg = R_DI;
-            break;
-        case 2:
-            op->basereg = R_BP;
-            op->indexreg = R_SI;
-            break;
-        case 3:
-            op->basereg = R_BP;
-            op->indexreg = R_DI;
-            break;
-        case 4:
-            op->basereg = R_SI;
-            break;
-        case 5:
-            op->basereg = R_DI;
-            break;
-        case 6:
-            op->basereg = R_BP;
-            break;
-        case 7:
-            op->basereg = R_BX;
-            break;
-        }
-        if (rm == 6 && mod == 0) {      /* special case */
-            op->basereg = -1;
-            if (segsize != 16)
-                op->disp_size = 16;
-            mod = 2;            /* fake disp16 */
-        }
-        switch (mod) {
-        case 0:
-            op->segment |= SEG_NODISP;
-            break;
-        case 1:
-            op->segment |= SEG_DISP8;
-            if (ins->evex_tuple != 0) {
-                op->offset = gets8(data) * get_disp8N(ins);
-            } else {
-                op->offset = gets8(data);
-            }
-            data++;
-            break;
-        case 2:
-            op->segment |= SEG_DISP16;
-            op->offset = *data++;
-            op->offset |= ((unsigned)*data++) << 8;
-            break;
-        }
-        return data;
-    } else {
-        /*
-         * Once again, <mod> specifies displacement size (this time
-         * none, byte or *dword*), while <rm> specifies the base
-         * register. Again, [EBP] is missing, replaced by a pure
-         * disp32 (this time that's mod=0,rm=*5*) in 32-bit mode,
-         * and RIP-relative addressing in 64-bit mode.
-         *
-         * However, rm=4
-         * indicates not a single base register, but instead the
-         * presence of a SIB byte...
-         */
-        int a64 = asize == 64;
-
-        op->indexreg = -1;
-
-        if (a64)
-            op->basereg = nasm_rd_reg64[rm | ((rex & REX_B) ? 8 : 0)];
-        else
-            op->basereg = nasm_rd_reg32[rm | ((rex & REX_B) ? 8 : 0)];
-
-        if (rm == 5 && mod == 0) {
-            if (segsize == 64) {
-                op->eaflags |= EAF_REL;
-                op->segment |= SEG_RELATIVE;
-            }
-
-            if (asize != 64)
-                op->disp_size = asize;
-
-            op->basereg = -1;
-            mod = 2;            /* fake disp32 */
-        }
-
-
-        if (rm == 4) {          /* process SIB */
-            uint8_t vsib_hi = 0;
-            scale = (sib >> 6) & 03;
-            index = (sib >> 3) & 07;
-            base = sib & 07;
-
-            op->scale = 1 << scale;
-
-            if (segsize == 64) {
-                vsib_hi = (rex & REX_X ? 8 : 0) |
-                          (evex[2] & EVEX_P2VP ? 0 : 16);
-            }
-
-            if (type == EA_XMMVSIB)
-                op->indexreg = nasm_rd_xmmreg[index | vsib_hi];
-            else if (type == EA_YMMVSIB)
-                op->indexreg = nasm_rd_ymmreg[index | vsib_hi];
-            else if (type == EA_ZMMVSIB)
-                op->indexreg = nasm_rd_zmmreg[index | vsib_hi];
-            else if (index == 4 && !(rex & REX_X))
-                op->indexreg = -1; /* ESP/RSP cannot be an index */
-            else if (a64)
-                op->indexreg = nasm_rd_reg64[index | ((rex & REX_X) ? 8 : 0)];
-            else
-                op->indexreg = nasm_rd_reg32[index | ((rex & REX_X) ? 8 : 0)];
-
-            if (base == 5 && mod == 0) {
-                op->basereg = -1;
-                mod = 2;    /* Fake disp32 */
-            } else if (a64)
-                op->basereg = nasm_rd_reg64[base | ((rex & REX_B) ? 8 : 0)];
-            else
-                op->basereg = nasm_rd_reg32[base | ((rex & REX_B) ? 8 : 0)];
-
-            if (segsize == 16)
-                op->disp_size = 32;
-        } else if (type != EA_SCALAR) {
-            /* Can't have VSIB without SIB */
-            return NULL;
-        }
-
-        switch (mod) {
-        case 0:
-            op->segment |= SEG_NODISP;
-            break;
-        case 1:
-            op->segment |= SEG_DISP8;
-            if (ins->evex_tuple != 0) {
-                op->offset = gets8(data) * get_disp8N(ins);
-            } else {
-                op->offset = gets8(data);
-            }
-            data++;
-            break;
-        case 2:
-            op->segment |= SEG_DISP32;
-            op->offset = gets32(data);
-            data += 4;
-            break;
-        }
-        return data;
-    }
-}
-
-/*
- * Determine whether the instruction template in t corresponds to the data
- * stream in data. Return the number of bytes matched if so.
- */
-#define case4(x) case (x): case (x)+1: case (x)+2: case (x)+3
-
-static int matches(const struct itemplate *t, uint8_t *data,
-                   const struct prefix_info *prefix, int segsize, insn *ins)
-{
-    uint8_t *r = (uint8_t *)(t->code);
-    uint8_t *origdata = data;
-    bool a_used = false, o_used = false;
-    enum prefixes drep = 0;
-    enum prefixes dwait = 0;
-    uint8_t lock = prefix->lock;
-    int osize = prefix->osize;
-    int asize = prefix->asize;
-    int i, c;
-    int op1, op2;
-    struct operand *opx, *opy;
-    uint8_t opex = 0;
-    bool vex_ok = false;
-    int regmask = (segsize == 64) ? 15 : 7;
-    enum ea_type eat = EA_SCALAR;
-
-    for (i = 0; i < MAX_OPERANDS; i++) {
-        ins->oprs[i].segment = ins->oprs[i].disp_size =
-            (segsize == 64 ? SEG_64BIT : segsize == 32 ? SEG_32BIT : 0);
-    }
-    ins->condition = -1;
-    ins->evex_tuple = 0;
-    ins->rex = prefix->rex;
-    memset(ins->prefixes, 0, sizeof ins->prefixes);
-
-    if (itemp_has(t, (segsize == 64 ? IF_NOLONG : IF_LONG)))
-        return 0;
-
-    if (prefix->rep == 0xF2)
-        drep = (itemp_has(t, IF_BND) ? P_BND : P_REPNE);
-    else if (prefix->rep == 0xF3)
-        drep = P_REP;
-
-    dwait = prefix->wait ? P_WAIT : 0;
-
-    while ((c = *r++) != 0) {
-        op1 = (c & 3) + ((opex & 1) << 2);
-        op2 = ((c >> 3) & 3) + ((opex & 2) << 1);
-        opx = &ins->oprs[op1];
-        opy = &ins->oprs[op2];
-        opex = 0;
-
-        switch (c) {
-        case 01:
-        case 02:
-        case 03:
-        case 04:
-            while (c--)
-                if (*r++ != *data++)
-                    return 0;
-            break;
-
-        case 05:
-        case 06:
-        case 07:
-            opex = c;
-            break;
-
-        case4(010):
-        {
-            int t = *r++, d = *data++;
-            if (d < t || d > t + 7)
-                return 0;
-            else {
-                opx->basereg = (d-t)+
-                    (ins->rex & REX_B ? 8 : 0);
-                opx->segment |= SEG_RMREG;
-            }
-            break;
-        }
-
-        case4(014):
-            /* this is an separate index reg position of MIB operand (ICC) */
-            /* Disassembler uses NASM's split EA form only                 */
-            break;
-
-        case4(0274):
-            opx->offset = (int8_t)*data++;
-            opx->segment |= SEG_SIGNED;
-            break;
-
-        case4(020):
-            opx->offset = *data++;
-            break;
-
-        case4(024):
-            opx->offset = *data++;
-            break;
-
-        case4(030):
-            opx->offset = getu16(data);
-            data += 2;
-            break;
-
-        case4(034):
-            if (osize == 32) {
-                opx->offset = getu32(data);
-                data += 4;
-            } else {
-                opx->offset = getu16(data);
-                data += 2;
-            }
-            if (segsize != asize)
-                opx->disp_size = asize;
-            break;
-
-        case4(040):
-            opx->offset = getu32(data);
-            data += 4;
-            break;
-
-        case4(0254):
-            opx->offset = gets32(data);
-            data += 4;
-            break;
-
-        case4(044):
-            switch (asize) {
-            case 16:
-                opx->offset = getu16(data);
-                data += 2;
-                if (segsize != 16)
-                    opx->disp_size = 16;
-                break;
-            case 32:
-                opx->offset = getu32(data);
-                data += 4;
-                if (segsize == 16)
-                    opx->disp_size = 32;
-                break;
-            case 64:
-                opx->offset = getu64(data);
-                opx->disp_size = 64;
-                data += 8;
-                break;
-            }
-            break;
-
-        case4(050):
-            opx->offset = gets8(data++);
-            opx->segment |= SEG_RELATIVE;
-            break;
-
-        case4(054):
-            opx->offset = getu64(data);
-            data += 8;
-            break;
-
-        case4(060):
-            opx->offset = gets16(data);
-            data += 2;
-            opx->segment |= SEG_RELATIVE;
-            opx->segment &= ~SEG_32BIT;
-            break;
-
-        case4(064):  /* rel */
-            opx->segment |= SEG_RELATIVE;
-            /* In long mode rel is always 32 bits, sign extended. */
-            if (segsize == 64 || osize == 32) {
-                opx->offset = gets32(data);
-                data += 4;
-                if (segsize != 64)
-                    opx->segment |= SEG_32BIT;
-                opx->type = (opx->type & ~SIZE_MASK)
-                    | (segsize == 64 ? BITS64 : BITS32);
-            } else {
-                opx->offset = gets16(data);
-                data += 2;
-                opx->segment &= ~SEG_32BIT;
-                opx->type = (opx->type & ~SIZE_MASK) | BITS16;
-            }
-            break;
-
-        case4(070):
-            opx->offset = gets32(data);
-            data += 4;
-            opx->segment |= SEG_32BIT | SEG_RELATIVE;
-            break;
-
-        case4(0100):
-        case4(0110):
-        case4(0120):
-        case4(0130):
-        {
-            int modrm = *data++;
-            opx->segment |= SEG_RMREG;
-            data = do_ea(data, modrm, asize, segsize, eat, opy, ins);
-            if (!data)
-                return 0;
-            opx->basereg = ((modrm >> 3) & 7) + (ins->rex & REX_R ? 8 : 0);
-            if ((ins->rex & REX_EV) && (segsize == 64))
-                opx->basereg += (ins->evex_p[0] & EVEX_P0RP ? 0 : 16);
-            break;
-        }
-
-        case 0172:
-            {
-                uint8_t ximm = *data++;
-                c = *r++;
-                ins->oprs[c >> 3].basereg = (ximm >> 4) & regmask;
-                ins->oprs[c >> 3].segment |= SEG_RMREG;
-                ins->oprs[c & 7].offset = ximm & 15;
-            }
-            break;
-
-        case 0173:
-            {
-                uint8_t ximm = *data++;
-                c = *r++;
-
-                if ((c ^ ximm) & 15)
-                    return 0;
-
-                ins->oprs[c >> 4].basereg = (ximm >> 4) & regmask;
-                ins->oprs[c >> 4].segment |= SEG_RMREG;
-            }
-            break;
-
-        case4(0174):
-            {
-                uint8_t ximm = *data++;
-
-                opx->basereg = (ximm >> 4) & regmask;
-                opx->segment |= SEG_RMREG;
-            }
-            break;
-
-        case4(0200):
-        case4(0204):
-        case4(0210):
-        case4(0214):
-        case4(0220):
-        case4(0224):
-        case4(0230):
-        case4(0234):
-        {
-            int modrm = *data++;
-            if (((modrm >> 3) & 07) != (c & 07))
-                return 0;   /* spare field doesn't match up */
-            data = do_ea(data, modrm, asize, segsize, eat, opy, ins);
-            if (!data)
-                return 0;
-            break;
-        }
-
-        case4(0240):
-        case 0250:
-        {
-            uint8_t evexm   = *r++;
-            uint8_t evexwlp = *r++;
-            uint8_t modrm, valid_mask;
-            ins->evex_tuple = *r++ - 0300;
-            modrm = *(origdata + 1);
-
-            ins->rex |= REX_EV;
-            if ((prefix->rex & (REX_EV|REX_V|REX_P)) != REX_EV)
-                return 0;
-
-            if ((evexm & 0x1f) != prefix->vex_m)
-                return 0;
-
-            switch (evexwlp & 060) {
-            case 000:
-                if (prefix->rex & REX_W)
-                    return 0;
-                break;
-            case 020:
-                if (!(prefix->rex & REX_W))
-                    return 0;
-                ins->rex |= REX_W;
-                break;
-            case 040:        /* VEX.W is a don't care */
-                ins->rex &= ~REX_W;
-                break;
-            case 060:
-                break;
-            }
-
-            /* If EVEX.b is set with reg-reg op,
-             * EVEX.L'L contains embedded rounding control info
-             */
-            if ((prefix->evex[2] & EVEX_P2B) && ((modrm >> 6) == 3)) {
-                valid_mask = 0x3;   /* prefix only */
-            } else {
-                valid_mask = 0xf;   /* vector length and prefix */
-            }
-            if ((evexwlp ^ prefix->vex_lp) & valid_mask)
-                return 0;
-
-            if (c == 0250) {
-                if ((prefix->vex_v != 0) ||
-                    (!(prefix->evex[2] & EVEX_P2VP) &&
-                     ((eat < EA_XMMVSIB) || (eat > EA_ZMMVSIB))))
-                    return 0;
-            } else {
-                opx->segment |= SEG_RMREG;
-                opx->basereg = ((~prefix->evex[2] & EVEX_P2VP) << (4 - 3) ) |
-                                prefix->vex_v;
-            }
-            vex_ok = true;
-            memcpy(ins->evex_p, prefix->evex, 3);
-            break;
-        }
-
-        case4(0260):
-        case 0270:
-        {
-            int vexm   = *r++;
-            int vexwlp = *r++;
-
-            ins->rex |= REX_V;
-            if ((prefix->rex & (REX_V|REX_P)) != REX_V)
-                return 0;
-
-            if ((vexm & 0x1f) != prefix->vex_m)
-                return 0;
-
-            switch (vexwlp & 060) {
-            case 000:
-                if (prefix->rex & REX_W)
-                    return 0;
-                break;
-            case 020:
-                if (!(prefix->rex & REX_W))
-                    return 0;
-                ins->rex &= ~REX_W;
-                break;
-            case 040:        /* VEX.W is a don't care */
-                ins->rex &= ~REX_W;
-                break;
-            case 060:
-                break;
-            }
-
-            /* The 010 bit of vexwlp is set if VEX.L is ignored */
-            if ((vexwlp ^ prefix->vex_lp) & ((vexwlp & 010) ? 03 : 07))
-                return 0;
-
-            if (c == 0270) {
-                if (prefix->vex_v != 0)
-                    return 0;
-            } else {
-                opx->segment |= SEG_RMREG;
-                opx->basereg = prefix->vex_v;
-            }
-            vex_ok = true;
-            break;
-        }
-
-        case 0271:
-            if (prefix->rep == 0xF3)
-                drep = P_XRELEASE;
-            break;
-
-        case 0272:
-            if (prefix->rep == 0xF2)
-                drep = P_XACQUIRE;
-            else if (prefix->rep == 0xF3)
-                drep = P_XRELEASE;
-            break;
-
-        case 0273:
-            if (prefix->lock == 0xF0) {
-                if (prefix->rep == 0xF2)
-                    drep = P_XACQUIRE;
-                else if (prefix->rep == 0xF3)
-                    drep = P_XRELEASE;
-            }
-            break;
-
-        case 0310:
-            if (asize != 16)
-                return 0;
-            else
-                a_used = true;
-            break;
-
-        case 0311:
-            if (asize != 32)
-                return 0;
-            else
-                a_used = true;
-            break;
-
-        case 0312:
-            if (asize != segsize)
-                return 0;
-            else
-                a_used = true;
-            break;
-
-        case 0313:
-            if (asize != 64)
-                return 0;
-            else
-                a_used = true;
-            break;
-
-        case 0314:
-            if (prefix->rex & REX_B)
-                return 0;
-            break;
-
-        case 0315:
-            if (prefix->rex & REX_X)
-                return 0;
-            break;
-
-        case 0316:
-            if (prefix->rex & REX_R)
-                return 0;
-            break;
-
-        case 0317:
-            if (prefix->rex & REX_W)
-                return 0;
-            break;
-
-        case 0320:
-            if (osize != 16)
-                return 0;
-            else
-                o_used = true;
-            break;
-
-        case 0321:
-            if (osize != 32)
-                return 0;
-            else
-                o_used = true;
-            break;
-
-        case 0322:
-            if (osize != (segsize == 16 ? 16 : 32))
-                return 0;
-            else
-                o_used = true;
-            break;
-
-        case 0323:
-            ins->rex |= REX_W;    /* 64-bit only instruction */
-            osize = 64;
-            o_used = true;
-            break;
-
-        case 0324:
-            if (osize != 64)
-                return 0;
-            o_used = true;
-            break;
-
-        case 0325:
-            ins->rex |= REX_NH;
-            break;
-
-        case 0330:
-        {
-            int t = *r++, d = *data++;
-            if (d < t || d > t + 15)
-                return 0;
-            else
-                ins->condition = d - t;
-            break;
-        }
-
-        case 0326:
-            if (prefix->rep == 0xF3)
-                return 0;
-            break;
-
-        case 0331:
-            if (prefix->rep)
-                return 0;
-            break;
-
-        case 0332:
-            if (prefix->rep != 0xF2)
-                return 0;
-            drep = 0;
-            break;
-
-        case 0333:
-            if (prefix->rep != 0xF3)
-                return 0;
-            drep = 0;
-            break;
-
-        case 0334:
-            if (lock) {
-                ins->rex |= REX_R;
-                lock = 0;
-            }
-            break;
-
-        case 0335:
-            if (drep == P_REP)
-                drep = P_REPE;
-            break;
-
-        case 0336:
-        case 0337:
-            break;
-
-        case 0340:
-            return 0;
-
-        case 0341:
-            if (prefix->wait != 0x9B)
-                return 0;
-            dwait = 0;
-            break;
-
-        case 0360:
-            if (prefix->osp || prefix->rep)
-                return 0;
-            break;
-
-        case 0361:
-            if (!prefix->osp || prefix->rep)
-                return 0;
-            o_used = true;
-            break;
-
-        case 0364:
-            if (prefix->osp)
-                return 0;
-            break;
-
-        case 0365:
-            if (prefix->asp)
-                return 0;
-            break;
-
-        case 0366:
-            if (!prefix->osp)
-                return 0;
-            o_used = true;
-            break;
-
-        case 0367:
-            if (!prefix->asp)
-                return 0;
-            a_used = true;
-            break;
-
-        case 0370:
-        case 0371:
-            break;
-
-        case 0374:
-            eat = EA_XMMVSIB;
-            break;
-
-        case 0375:
-            eat = EA_YMMVSIB;
-            break;
-
-        case 0376:
-            eat = EA_ZMMVSIB;
-            break;
-
-        default:
-            return 0;    /* Unknown code */
-        }
-    }
-
-    if (!vex_ok && (ins->rex & (REX_V | REX_EV)))
-        return 0;
-
-    /* REX cannot be combined with VEX */
-    if ((ins->rex & REX_V) && (prefix->rex & REX_P))
-        return 0;
-
-    /*
-     * Check for unused rep or a/o prefixes.
-     */
-    for (i = 0; i < t->operands; i++) {
-        if (ins->oprs[i].segment != SEG_RMREG)
-            a_used = true;
-    }
-
-    if (lock) {
-        if (ins->prefixes[PPS_LOCK])
-            return 0;
-        ins->prefixes[PPS_LOCK] = P_LOCK;
-    }
-    if (drep) {
-        if (ins->prefixes[PPS_REP])
-            return 0;
-        ins->prefixes[PPS_REP] = drep;
-    }
-    ins->prefixes[PPS_WAIT] = dwait;
-    if (!o_used) {
-        if (osize != ((segsize == 16) ? 16 : 32)) {
-            enum prefixes pfx = 0;
-
-            switch (osize) {
-            case 16:
-                pfx = P_O16;
-                break;
-            case 32:
-                pfx = P_O32;
-                break;
-            case 64:
-                pfx = P_O64;
-                break;
-            }
-
-            if (ins->prefixes[PPS_OSIZE])
-                return 0;
-            ins->prefixes[PPS_OSIZE] = pfx;
-        }
-    }
-    if (!a_used && asize != segsize) {
-        if (ins->prefixes[PPS_ASIZE])
-            return 0;
-        ins->prefixes[PPS_ASIZE] = asize == 16 ? P_A16 : P_A32;
-    }
-
-    /* Fix: check for redundant REX prefixes */
-
-    return data - origdata;
-}
-
-/* Condition names for disassembly, sorted by x86 code */
-static const char * const condition_name[16] = {
-    "o", "no", "c", "nc", "z", "nz", "na", "a",
-    "s", "ns", "pe", "po", "l", "nl", "ng", "g"
-};
-
-int32_t disasm(uint8_t *data, char *output, int outbufsize, int segsize,
-	       int64_t offset, int autosync, iflag_t *prefer)
-{
-    const struct itemplate * const *p, * const *best_p;
-    const struct disasm_index *ix;
-    uint8_t *dp;
-    int length, best_length = 0;
-    char *segover;
-    int i, slen, colon, n;
-    uint8_t *origdata;
-    int works;
-    insn tmp_ins, ins;
-    iflag_t goodness, best;
-    int best_pref;
-    struct prefix_info prefix;
-    bool end_prefix;
-    bool is_evex;
-
-    memset(&ins, 0, sizeof ins);
-
-    /*
-     * Scan for prefixes.
-     */
-    memset(&prefix, 0, sizeof prefix);
-    prefix.asize = segsize;
-    prefix.osize = (segsize == 64) ? 32 : segsize;
-    segover = NULL;
-    origdata = data;
-
-    ix = itable;
-
-    end_prefix = false;
-    while (!end_prefix) {
-        switch (*data) {
-        case 0xF2:
-        case 0xF3:
-            prefix.rep = *data++;
-            break;
-
-        case 0x9B:
-            prefix.wait = *data++;
-            break;
-
-        case 0xF0:
-            prefix.lock = *data++;
-            break;
-
-        case 0x2E:
-            segover = "cs", prefix.seg = *data++;
-            break;
-        case 0x36:
-            segover = "ss", prefix.seg = *data++;
-            break;
-        case 0x3E:
-            segover = "ds", prefix.seg = *data++;
-            break;
-        case 0x26:
-            segover = "es", prefix.seg = *data++;
-            break;
-        case 0x64:
-            segover = "fs", prefix.seg = *data++;
-            break;
-        case 0x65:
-            segover = "gs", prefix.seg = *data++;
-            break;
-
-        case 0x66:
-            prefix.osize = (segsize == 16) ? 32 : 16;
-            prefix.osp = *data++;
-            break;
-        case 0x67:
-            prefix.asize = (segsize == 32) ? 16 : 32;
-            prefix.asp = *data++;
-            break;
-
-        case 0xC4:
-        case 0xC5:
-            if (segsize == 64 || (data[1] & 0xc0) == 0xc0) {
-                prefix.vex[0] = *data++;
-                prefix.vex[1] = *data++;
-
-                prefix.rex = REX_V;
-                prefix.vex_c = RV_VEX;
-
-                if (prefix.vex[0] == 0xc4) {
-                    prefix.vex[2] = *data++;
-                    prefix.rex |= (~prefix.vex[1] >> 5) & 7; /* REX_RXB */
-                    prefix.rex |= (prefix.vex[2] >> (7-3)) & REX_W;
-                    prefix.vex_m = prefix.vex[1] & 0x1f;
-                    prefix.vex_v = (~prefix.vex[2] >> 3) & 15;
-                    prefix.vex_lp = prefix.vex[2] & 7;
-                } else {
-                    prefix.rex |= (~prefix.vex[1] >> (7-2)) & REX_R;
-                    prefix.vex_m = 1;
-                    prefix.vex_v = (~prefix.vex[1] >> 3) & 15;
-                    prefix.vex_lp = prefix.vex[1] & 7;
-                }
-
-                ix = itable_vex[RV_VEX][prefix.vex_m][prefix.vex_lp & 3];
-            }
-            end_prefix = true;
-            break;
-
-        case 0x62:
-        {
-            if (segsize == 64 || ((data[1] & 0xc0) == 0xc0)) {
-                data++;        /* 62h EVEX prefix */
-                prefix.evex[0] = *data++;
-                prefix.evex[1] = *data++;
-                prefix.evex[2] = *data++;
-
-                prefix.rex    = REX_EV;
-                prefix.vex_c  = RV_EVEX;
-                prefix.rex   |= (~prefix.evex[0] >> 5) & 7; /* REX_RXB */
-                prefix.rex   |= (prefix.evex[1] >> (7-3)) & REX_W;
-                prefix.vex_m  = prefix.evex[0] & EVEX_P0MM;
-                prefix.vex_v  = (~prefix.evex[1] & EVEX_P1VVVV) >> 3;
-                prefix.vex_lp = ((prefix.evex[2] & EVEX_P2LL) >> (5-2)) |
-                                (prefix.evex[1] & EVEX_P1PP);
-
-                ix = itable_vex[prefix.vex_c][prefix.vex_m][prefix.vex_lp & 3];
-            }
-            end_prefix = true;
-            break;
-        }
-
-        case 0x8F:
-            if ((data[1] & 030) != 0 &&
-                    (segsize == 64 || (data[1] & 0xc0) == 0xc0)) {
-                prefix.vex[0] = *data++;
-                prefix.vex[1] = *data++;
-                prefix.vex[2] = *data++;
-
-                prefix.rex = REX_V;
-                prefix.vex_c = RV_XOP;
-
-                prefix.rex |= (~prefix.vex[1] >> 5) & 7; /* REX_RXB */
-                prefix.rex |= (prefix.vex[2] >> (7-3)) & REX_W;
-                prefix.vex_m = prefix.vex[1] & 0x1f;
-                prefix.vex_v = (~prefix.vex[2] >> 3) & 15;
-                prefix.vex_lp = prefix.vex[2] & 7;
-
-                ix = itable_vex[RV_XOP][prefix.vex_m][prefix.vex_lp & 3];
-            }
-            end_prefix = true;
-            break;
-
-        case REX_P + 0x0:
-        case REX_P + 0x1:
-        case REX_P + 0x2:
-        case REX_P + 0x3:
-        case REX_P + 0x4:
-        case REX_P + 0x5:
-        case REX_P + 0x6:
-        case REX_P + 0x7:
-        case REX_P + 0x8:
-        case REX_P + 0x9:
-        case REX_P + 0xA:
-        case REX_P + 0xB:
-        case REX_P + 0xC:
-        case REX_P + 0xD:
-        case REX_P + 0xE:
-        case REX_P + 0xF:
-            if (segsize == 64) {
-                prefix.rex = *data++;
-                if (prefix.rex & REX_W)
-                    prefix.osize = 64;
-            }
-            end_prefix = true;
-            break;
-
-        default:
-            end_prefix = true;
-            break;
-        }
-    }
-
-    iflag_set_all(&best); /* Worst possible */
-    best_p = NULL;
-    best_pref = INT_MAX;
-
-    if (!ix)
-        return 0;        /* No instruction table at all... */
-
-    dp = data;
-    ix += *dp++;
-    while (ix->n == -1) {
-        ix = (const struct disasm_index *)ix->p + *dp++;
-    }
-
-    p = (const struct itemplate * const *)ix->p;
-    for (n = ix->n; n; n--, p++) {
-        if ((length = matches(*p, data, &prefix, segsize, &tmp_ins))) {
-            works = true;
-            /*
-             * Final check to make sure the types of r/m match up.
-             * XXX: Need to make sure this is actually correct.
-             */
-            for (i = 0; i < (*p)->operands; i++) {
-                if (
-                        /* If it's a mem-only EA but we have a
-                           register, die. */
-                        ((tmp_ins.oprs[i].segment & SEG_RMREG) &&
-                         is_class(MEMORY, (*p)->opd[i])) ||
-                        /* If it's a reg-only EA but we have a memory
-                           ref, die. */
-                        (!(tmp_ins.oprs[i].segment & SEG_RMREG) &&
-                         !(REG_EA & ~(*p)->opd[i]) &&
-                         !((*p)->opd[i] & REG_SMASK)) ||
-                        /* Register type mismatch (eg FS vs REG_DESS):
-                           die. */
-                        ((((*p)->opd[i] & (REGISTER | FPUREG)) ||
-                          (tmp_ins.oprs[i].segment & SEG_RMREG)) &&
-                         !whichreg((*p)->opd[i],
-                             tmp_ins.oprs[i].basereg, tmp_ins.rex))
-                   ) {
-                    works = false;
-                    break;
-                }
-            }
-
-            /*
-             * Note: we always prefer instructions which incorporate
-             * prefixes in the instructions themselves.  This is to allow
-             * e.g. PAUSE to be preferred to REP NOP, and deal with
-             * MMX/SSE instructions where prefixes are used to select
-             * between MMX and SSE register sets or outright opcode
-             * selection.
-             */
-            if (works) {
-                int i, nprefix;
-                goodness = iflag_pfmask(*p);
-                goodness = iflag_xor(&goodness, prefer);
-		nprefix = 0;
-		for (i = 0; i < MAXPREFIX; i++)
-		    if (tmp_ins.prefixes[i])
-			nprefix++;
-                if (nprefix < best_pref ||
-		    (nprefix == best_pref &&
-                     iflag_cmp(&goodness, &best) < 0)) {
-                    /* This is the best one found so far */
-                    best = goodness;
-                    best_p = p;
-                    best_pref = nprefix;
-                    best_length = length;
-                    ins = tmp_ins;
-                }
-            }
-        }
-    }
-
-    if (!best_p)
-        return 0;               /* no instruction was matched */
-
-    /* Pick the best match */
-    p = best_p;
-    length = best_length;
-
-    slen = 0;
-
-    /* TODO: snprintf returns the value that the string would have if
-     *      the buffer were long enough, and not the actual length of
-     *      the returned string, so each instance of using the return
-     *      value of snprintf should actually be checked to assure that
-     *      the return value is "sane."  Maybe a macro wrapper could
-     *      be used for that purpose.
-     */
-    for (i = 0; i < MAXPREFIX; i++) {
-        const char *prefix = prefix_name(ins.prefixes[i]);
-        if (prefix)
-            slen += snprintf(output+slen, outbufsize-slen, "%s ", prefix);
-    }
-
-    i = (*p)->opcode;
-    if (i >= FIRST_COND_OPCODE)
-        slen += snprintf(output + slen, outbufsize - slen, "%s%s",
-                        nasm_insn_names[i], condition_name[ins.condition]);
-    else
-        slen += snprintf(output + slen, outbufsize - slen, "%s",
-                        nasm_insn_names[i]);
-
-    colon = false;
-    is_evex = !!(ins.rex & REX_EV);
-    length += data - origdata;  /* fix up for prefixes */
-    for (i = 0; i < (*p)->operands; i++) {
-        opflags_t t = (*p)->opd[i];
-        decoflags_t deco = (*p)->deco[i];
-        const operand *o = &ins.oprs[i];
-        int64_t offs;
-
-        output[slen++] = (colon ? ':' : i == 0 ? ' ' : ',');
-
-        offs = o->offset;
-        if (o->segment & SEG_RELATIVE) {
-            offs += offset + length;
-            /*
-             * sort out wraparound
-             */
-            if (!(o->segment & (SEG_32BIT|SEG_64BIT)))
-                offs &= 0xffff;
-            else if (segsize != 64)
-                offs &= 0xffffffff;
-
-            /*
-             * add sync marker, if autosync is on
-             */
-            if (autosync)
-                add_sync(offs, 0L);
-        }
-
-        if (t & COLON)
-            colon = true;
-        else
-            colon = false;
-
-        if ((t & (REGISTER | FPUREG)) ||
-                (o->segment & SEG_RMREG)) {
-            enum reg_enum reg;
-            reg = whichreg(t, o->basereg, ins.rex);
-            if (t & TO)
-                slen += snprintf(output + slen, outbufsize - slen, "to ");
-            slen += snprintf(output + slen, outbufsize - slen, "%s",
-                    nasm_reg_names[reg-EXPR_REG_START]);
-            if (is_evex && deco)
-                slen += append_evex_reg_deco(output + slen, outbufsize - slen,
-                                             deco, ins.evex_p);
-        } else if (!(UNITY & ~t)) {
-            output[slen++] = '1';
-        } else if (t & IMMEDIATE) {
-            if (t & BITS8) {
-                slen +=
-                    snprintf(output + slen, outbufsize - slen, "byte ");
-                if (o->segment & SEG_SIGNED) {
-                    if (offs < 0) {
-                        offs *= -1;
-                        output[slen++] = '-';
-                    } else
-                        output[slen++] = '+';
-                }
-            } else if (t & BITS16) {
-                slen +=
-                    snprintf(output + slen, outbufsize - slen, "word ");
-            } else if (t & BITS32) {
-                slen +=
-                    snprintf(output + slen, outbufsize - slen, "dword ");
-            } else if (t & BITS64) {
-                slen +=
-                    snprintf(output + slen, outbufsize - slen, "qword ");
-            } else if (t & NEAR) {
-                slen +=
-                    snprintf(output + slen, outbufsize - slen, "near ");
-            } else if (t & SHORT) {
-                slen +=
-                    snprintf(output + slen, outbufsize - slen, "short ");
-            }
-            slen +=
-                snprintf(output + slen, outbufsize - slen, "0x%"PRIx64"",
-                        offs);
-        } else if (!(MEM_OFFS & ~t)) {
-            slen +=
-                snprintf(output + slen, outbufsize - slen,
-                        "[%s%s%s0x%"PRIx64"]",
-                        (segover ? segover : ""),
-                        (segover ? ":" : ""),
-                        (o->disp_size == 64 ? "qword " :
-                         o->disp_size == 32 ? "dword " :
-                         o->disp_size == 16 ? "word " : ""), offs);
-            segover = NULL;
-        } else if (is_class(REGMEM, t)) {
-            int started = false;
-            if (t & BITS8)
-                slen +=
-                    snprintf(output + slen, outbufsize - slen, "byte ");
-            if (t & BITS16)
-                slen +=
-                    snprintf(output + slen, outbufsize - slen, "word ");
-            if (t & BITS32)
-                slen +=
-                    snprintf(output + slen, outbufsize - slen, "dword ");
-            if (t & BITS64)
-                slen +=
-                    snprintf(output + slen, outbufsize - slen, "qword ");
-            if (t & BITS80)
-                slen +=
-                    snprintf(output + slen, outbufsize - slen, "tword ");
-            if ((ins.evex_p[2] & EVEX_P2B) && (deco & BRDCAST_MASK)) {
-                /* when broadcasting, each element size should be used */
-                if (deco & BR_BITS32)
-                    slen +=
-                        snprintf(output + slen, outbufsize - slen, "dword ");
-                else if (deco & BR_BITS64)
-                    slen +=
-                        snprintf(output + slen, outbufsize - slen, "qword ");
-            } else {
-                if (t & BITS128)
-                    slen +=
-                        snprintf(output + slen, outbufsize - slen, "oword ");
-                if (t & BITS256)
-                    slen +=
-                        snprintf(output + slen, outbufsize - slen, "yword ");
-                if (t & BITS512)
-                    slen +=
-                        snprintf(output + slen, outbufsize - slen, "zword ");
-            }
-            if (t & FAR)
-                slen += snprintf(output + slen, outbufsize - slen, "far ");
-            if (t & NEAR)
-                slen +=
-                    snprintf(output + slen, outbufsize - slen, "near ");
-            output[slen++] = '[';
-            if (o->disp_size)
-                slen += snprintf(output + slen, outbufsize - slen, "%s",
-                        (o->disp_size == 64 ? "qword " :
-                         o->disp_size == 32 ? "dword " :
-                         o->disp_size == 16 ? "word " :
-                         ""));
-            if (o->eaflags & EAF_REL)
-                slen += snprintf(output + slen, outbufsize - slen, "rel ");
-            if (segover) {
-                slen +=
-                    snprintf(output + slen, outbufsize - slen, "%s:",
-                            segover);
-                segover = NULL;
-            }
-            if (o->basereg != -1) {
-                slen += snprintf(output + slen, outbufsize - slen, "%s",
-                        nasm_reg_names[(o->basereg-EXPR_REG_START)]);
-                started = true;
-            }
-            if (o->indexreg != -1 && !itemp_has(*best_p, IF_MIB)) {
-                if (started)
-                    output[slen++] = '+';
-                slen += snprintf(output + slen, outbufsize - slen, "%s",
-                        nasm_reg_names[(o->indexreg-EXPR_REG_START)]);
-                if (o->scale > 1)
-                    slen +=
-                        snprintf(output + slen, outbufsize - slen, "*%d",
-                                o->scale);
-                started = true;
-            }
-
-
-            if (o->segment & SEG_DISP8) {
-                if (is_evex) {
-                    const char *prefix;
-                    uint32_t offset = offs;
-                    if ((int32_t)offset < 0) {
-                        prefix = "-";
-                        offset = -offset;
-                    } else {
-                        prefix = "+";
-                    }
-                    slen +=
-                        snprintf(output + slen, outbufsize - slen, "%s0x%"PRIx32"",
-                                prefix, offset);
-                } else {
-                    const char *prefix;
-                    uint8_t offset = offs;
-                    if ((int8_t)offset < 0) {
-                        prefix = "-";
-                        offset = -offset;
-                    } else {
-                        prefix = "+";
-                    }
-                    slen +=
-                        snprintf(output + slen, outbufsize - slen, "%s0x%"PRIx8"",
-                                prefix, offset);
-                }
-            } else if (o->segment & SEG_DISP16) {
-                const char *prefix;
-                uint16_t offset = offs;
-                if ((int16_t)offset < 0 && started) {
-                    offset = -offset;
-                    prefix = "-";
-                } else {
-                    prefix = started ? "+" : "";
-                }
-                slen +=
-                    snprintf(output + slen, outbufsize - slen,
-                            "%s0x%"PRIx16"", prefix, offset);
-            } else if (o->segment & SEG_DISP32) {
-                if (prefix.asize == 64) {
-                    const char *prefix;
-                    uint64_t offset = offs;
-                    if ((int32_t)offs < 0 && started) {
-                        offset = -offset;
-                        prefix = "-";
-                    } else {
-                        prefix = started ? "+" : "";
-                    }
-                    slen +=
-                        snprintf(output + slen, outbufsize - slen,
-                                "%s0x%"PRIx64"", prefix, offset);
-                } else {
-                    const char *prefix;
-                    uint32_t offset = offs;
-                    if ((int32_t) offset < 0 && started) {
-                        offset = -offset;
-                        prefix = "-";
-                    } else {
-                        prefix = started ? "+" : "";
-                    }
-                    slen +=
-                        snprintf(output + slen, outbufsize - slen,
-                                "%s0x%"PRIx32"", prefix, offset);
-                }
-            }
-
-            if (o->indexreg != -1 && itemp_has(*best_p, IF_MIB)) {
-                output[slen++] = ',';
-                slen += snprintf(output + slen, outbufsize - slen, "%s",
-                        nasm_reg_names[(o->indexreg-EXPR_REG_START)]);
-                if (o->scale > 1)
-                    slen +=
-                        snprintf(output + slen, outbufsize - slen, "*%d",
-                                o->scale);
-                started = true;
-            }
-
-            output[slen++] = ']';
-
-            if (is_evex && deco)
-                slen += append_evex_mem_deco(output + slen, outbufsize - slen,
-                                             t, deco, ins.evex_p);
-        } else {
-            slen +=
-                snprintf(output + slen, outbufsize - slen, "<operand%d>",
-                        i);
-        }
-    }
-    output[slen] = '\0';
-    if (segover) {              /* unused segment override */
-        char *p = output;
-        int count = slen + 1;
-        while (count--)
-            p[count + 3] = p[count];
-        strncpy(output, segover, 2);
-        output[2] = ' ';
-    }
-    return length;
-}
-
-/*
- * This is called when we don't have a complete instruction.  If it
- * is a standalone *single-byte* prefix show it as such, otherwise
- * print it as a literal.
- */
-int32_t eatbyte(uint8_t *data, char *output, int outbufsize, int segsize)
-{
-    uint8_t byte = *data;
-    const char *str = NULL;
-
-    switch (byte) {
-    case 0xF2:
-        str = "repne";
-        break;
-    case 0xF3:
-        str = "rep";
-        break;
-    case 0x9B:
-        str = "wait";
-        break;
-    case 0xF0:
-        str = "lock";
-        break;
-    case 0x2E:
-        str = "cs";
-        break;
-    case 0x36:
-        str = "ss";
-        break;
-    case 0x3E:
-        str = "ds";
-        break;
-    case 0x26:
-        str = "es";
-        break;
-    case 0x64:
-        str = "fs";
-        break;
-    case 0x65:
-        str = "gs";
-        break;
-    case 0x66:
-        str = (segsize == 16) ? "o32" : "o16";
-        break;
-    case 0x67:
-        str = (segsize == 32) ? "a16" : "a32";
-        break;
-    case REX_P + 0x0:
-    case REX_P + 0x1:
-    case REX_P + 0x2:
-    case REX_P + 0x3:
-    case REX_P + 0x4:
-    case REX_P + 0x5:
-    case REX_P + 0x6:
-    case REX_P + 0x7:
-    case REX_P + 0x8:
-    case REX_P + 0x9:
-    case REX_P + 0xA:
-    case REX_P + 0xB:
-    case REX_P + 0xC:
-    case REX_P + 0xD:
-    case REX_P + 0xE:
-    case REX_P + 0xF:
-        if (segsize == 64) {
-            snprintf(output, outbufsize, "rex%s%s%s%s%s",
-                    (byte == REX_P) ? "" : ".",
-                    (byte & REX_W) ? "w" : "",
-                    (byte & REX_R) ? "r" : "",
-                    (byte & REX_X) ? "x" : "",
-                    (byte & REX_B) ? "b" : "");
-            break;
-        }
-        /* else fall through */
-    default:
-        snprintf(output, outbufsize, "db 0x%02x", byte);
-        break;
-    }
-
-    if (str)
-        snprintf(output, outbufsize, "%s", str);
-
-    return 1;
-}
--- a/nasmbuild/nasm-2.13rc9/disasm/disasm.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * disasm.h   header file for disasm.c
- */
-
-#ifndef NASM_DISASM_H
-#define NASM_DISASM_H
-
-#include "iflag.h"
-
-#define INSN_MAX 32             /* one instruction can't be longer than this */
-
-int32_t disasm(uint8_t *data, char *output, int outbufsize, int segsize,
-	       int64_t offset, int autosync, iflag_t *prefer);
-int32_t eatbyte(uint8_t *data, char *output, int outbufsize, int segsize);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/disasm/ndisasm.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,397 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * ndisasm.c   the Netwide Disassembler main module
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#include "insns.h"
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "ver.h"
-#include "sync.h"
-#include "disasm.h"
-
-#define BPL 8                   /* bytes per line of hex dump */
-
-static const char *help =
-    "usage: ndisasm [-a] [-i] [-h] [-r] [-u] [-b bits] [-o origin] [-s sync...]\n"
-    "               [-e bytes] [-k start,bytes] [-p vendor] file\n"
-    "   -a or -i activates auto (intelligent) sync\n"
-    "   -u same as -b 32\n"
-    "   -b 16, -b 32 or -b 64 sets the processor mode\n"
-    "   -h displays this text\n"
-    "   -r or -v displays the version number\n"
-    "   -e skips <bytes> bytes of header\n"
-    "   -k avoids disassembling <bytes> bytes from position <start>\n"
-    "   -p selects the preferred vendor instruction set (intel, amd, cyrix, idt)\n";
-
-static void output_ins(uint64_t, uint8_t *, int, char *);
-static void skip(uint32_t dist, FILE * fp);
-
-static void ndisasm_verror(int severity, const char *fmt, va_list va)
-{
-    vfprintf(stderr, fmt, va);
-
-    if (severity & ERR_FATAL)
-	exit(1);
-}
-
-int main(int argc, char **argv)
-{
-    char buffer[INSN_MAX * 2], *p, *ep, *q;
-    char outbuf[256];
-    char *pname = *argv;
-    char *filename = NULL;
-    uint32_t nextsync, synclen, initskip = 0L;
-    int lenread;
-    int32_t lendis;
-    bool autosync = false;
-    int bits = 16, b;
-    bool eof = false;
-    iflag_t prefer;
-    bool rn_error;
-    int64_t offset;
-    FILE *fp;
-
-    tolower_init();
-    nasm_set_verror(ndisasm_verror);
-    iflag_clear_all(&prefer);
-
-    offset = 0;
-    init_sync();
-
-    while (--argc) {
-        char *v, *vv, *p = *++argv;
-        if (*p == '-' && p[1]) {
-            p++;
-            while (*p)
-                switch (nasm_tolower(*p)) {
-                case 'a':      /* auto or intelligent sync */
-                case 'i':
-                    autosync = true;
-                    p++;
-                    break;
-                case 'h':
-                    fputs(help, stderr);
-                    return 0;
-                case 'r':
-                case 'v':
-                    fprintf(stderr,
-                            "NDISASM version %s compiled on %s\n",
-			    nasm_version, nasm_date);
-                    return 0;
-                case 'u':	/* -u for -b 32, -uu for -b 64 */
-		    if (bits < 64)
-			bits <<= 1;
-                    p++;
-                    break;
-                case 'b':      /* bits */
-                    v = p[1] ? p + 1 : --argc ? *++argv : NULL;
-                    if (!v) {
-                        fprintf(stderr, "%s: `-b' requires an argument\n",
-                                pname);
-                        return 1;
-                    }
-		    b = strtoul(v, &ep, 10);
-		    if (*ep || !(bits == 16 || bits == 32 || bits == 64)) {
-                        fprintf(stderr, "%s: argument to `-b' should"
-                                " be 16, 32 or 64\n", pname);
-                    } else {
-			bits = b;
-		    }
-                    p = "";     /* force to next argument */
-                    break;
-                case 'o':      /* origin */
-                    v = p[1] ? p + 1 : --argc ? *++argv : NULL;
-                    if (!v) {
-                        fprintf(stderr, "%s: `-o' requires an argument\n",
-                                pname);
-                        return 1;
-                    }
-                    offset = readnum(v, &rn_error);
-                    if (rn_error) {
-                        fprintf(stderr,
-                                "%s: `-o' requires a numeric argument\n",
-                                pname);
-                        return 1;
-                    }
-                    p = "";     /* force to next argument */
-                    break;
-                case 's':      /* sync point */
-                    v = p[1] ? p + 1 : --argc ? *++argv : NULL;
-                    if (!v) {
-                        fprintf(stderr, "%s: `-s' requires an argument\n",
-                                pname);
-                        return 1;
-                    }
-                    add_sync(readnum(v, &rn_error), 0L);
-                    if (rn_error) {
-                        fprintf(stderr,
-                                "%s: `-s' requires a numeric argument\n",
-                                pname);
-                        return 1;
-                    }
-                    p = "";     /* force to next argument */
-                    break;
-                case 'e':      /* skip a header */
-                    v = p[1] ? p + 1 : --argc ? *++argv : NULL;
-                    if (!v) {
-                        fprintf(stderr, "%s: `-e' requires an argument\n",
-                                pname);
-                        return 1;
-                    }
-                    initskip = readnum(v, &rn_error);
-                    if (rn_error) {
-                        fprintf(stderr,
-                                "%s: `-e' requires a numeric argument\n",
-                                pname);
-                        return 1;
-                    }
-                    p = "";     /* force to next argument */
-                    break;
-                case 'k':      /* skip a region */
-                    v = p[1] ? p + 1 : --argc ? *++argv : NULL;
-                    if (!v) {
-                        fprintf(stderr, "%s: `-k' requires an argument\n",
-                                pname);
-                        return 1;
-                    }
-                    vv = strchr(v, ',');
-                    if (!vv) {
-                        fprintf(stderr,
-                                "%s: `-k' requires two numbers separated"
-                                " by a comma\n", pname);
-                        return 1;
-                    }
-                    *vv++ = '\0';
-                    nextsync = readnum(v, &rn_error);
-                    if (rn_error) {
-                        fprintf(stderr,
-                                "%s: `-k' requires numeric arguments\n",
-                                pname);
-                        return 1;
-                    }
-                    synclen = readnum(vv, &rn_error);
-                    if (rn_error) {
-                        fprintf(stderr,
-                                "%s: `-k' requires numeric arguments\n",
-                                pname);
-                        return 1;
-                    }
-                    add_sync(nextsync, synclen);
-                    p = "";     /* force to next argument */
-                    break;
-                case 'p':      /* preferred vendor */
-                    v = p[1] ? p + 1 : --argc ? *++argv : NULL;
-                    if (!v) {
-                        fprintf(stderr, "%s: `-p' requires an argument\n",
-                                pname);
-                        return 1;
-                    }
-                    if (!strcmp(v, "intel")) {
-                        iflag_clear_all(&prefer); /* default */
-                    } else if (!strcmp(v, "amd")) {
-                        iflag_clear_all(&prefer);
-                        iflag_set(&prefer, IF_AMD);
-                        iflag_set(&prefer, IF_3DNOW);
-                    } else if (!strcmp(v, "cyrix")) {
-                        iflag_clear_all(&prefer);
-                        iflag_set(&prefer, IF_CYRIX);
-                        iflag_set(&prefer, IF_3DNOW);
-                    } else if (!strcmp(v, "idt") ||
-                               !strcmp(v, "centaur") ||
-                               !strcmp(v, "winchip")) {
-                        iflag_clear_all(&prefer);
-                        iflag_set(&prefer, IF_3DNOW);
-                    } else {
-                        fprintf(stderr,
-                                "%s: unknown vendor `%s' specified with `-p'\n",
-                                pname, v);
-                        return 1;
-                    }
-                    p = "";     /* force to next argument */
-                    break;
-                default:       /*bf */
-                    fprintf(stderr, "%s: unrecognised option `-%c'\n",
-                            pname, *p);
-                    return 1;
-                }
-        } else if (!filename) {
-            filename = p;
-        } else {
-            fprintf(stderr, "%s: more than one filename specified\n",
-                    pname);
-            return 1;
-        }
-    }
-
-    if (!filename) {
-        fprintf(stderr, help, pname);
-        return 0;
-    }
-
-    if (strcmp(filename, "-")) {
-        fp = fopen(filename, "rb");
-        if (!fp) {
-            fprintf(stderr, "%s: unable to open `%s': %s\n",
-                    pname, filename, strerror(errno));
-            return 1;
-        }
-    } else
-        fp = stdin;
-
-    if (initskip > 0)
-        skip(initskip, fp);
-
-    /*
-     * This main loop is really horrible, and wants rewriting with
-     * an axe. It'll stay the way it is for a while though, until I
-     * find the energy...
-     */
-
-    p = q = buffer;
-    nextsync = next_sync(offset, &synclen);
-    do {
-        uint32_t to_read = buffer + sizeof(buffer) - p;
-	if ((nextsync || synclen) &&
-	    to_read > nextsync - offset - (p - q))
-            to_read = nextsync - offset - (p - q);
-        if (to_read) {
-            lenread = fread(p, 1, to_read, fp);
-            if (lenread == 0)
-                eof = true;     /* help along systems with bad feof */
-        } else
-            lenread = 0;
-        p += lenread;
-        if ((nextsync || synclen) &&
-	    (uint32_t)offset == nextsync) {
-            if (synclen) {
-                fprintf(stdout, "%08"PRIX64"  skipping 0x%"PRIX32" bytes\n",
-			offset, synclen);
-                offset += synclen;
-                skip(synclen, fp);
-            }
-            p = q = buffer;
-            nextsync = next_sync(offset, &synclen);
-        }
-        while (p > q && (p - q >= INSN_MAX || lenread == 0)) {
-            lendis =
-                disasm((uint8_t *) q, outbuf, sizeof(outbuf), bits,
-		       offset, autosync, &prefer);
-            if (!lendis || lendis > (p - q)
-                || ((nextsync || synclen) &&
-		    (uint32_t)lendis > nextsync - offset))
-                lendis = eatbyte((uint8_t *) q, outbuf, sizeof(outbuf), bits);
-            output_ins(offset, (uint8_t *) q, lendis, outbuf);
-            q += lendis;
-            offset += lendis;
-        }
-        if (q >= buffer + INSN_MAX) {
-            uint8_t *r = (uint8_t *) buffer, *s = (uint8_t *) q;
-            int count = p - q;
-            while (count--)
-                *r++ = *s++;
-            p -= (q - buffer);
-            q = buffer;
-        }
-    } while (lenread > 0 || !(eof || feof(fp)));
-
-    if (fp != stdin)
-        fclose(fp);
-
-    return 0;
-}
-
-static void output_ins(uint64_t offset, uint8_t *data,
-                       int datalen, char *insn)
-{
-    int bytes;
-    fprintf(stdout, "%08"PRIX64"  ", offset);
-
-    bytes = 0;
-    while (datalen > 0 && bytes < BPL) {
-        fprintf(stdout, "%02X", *data++);
-        bytes++;
-        datalen--;
-    }
-
-    fprintf(stdout, "%*s%s\n", (BPL + 1 - bytes) * 2, "", insn);
-
-    while (datalen > 0) {
-        fprintf(stdout, "         -");
-        bytes = 0;
-        while (datalen > 0 && bytes < BPL) {
-            fprintf(stdout, "%02X", *data++);
-            bytes++;
-            datalen--;
-        }
-        fprintf(stdout, "\n");
-    }
-}
-
-/*
- * Skip a certain amount of data in a file, either by seeking if
- * possible, or if that fails then by reading and discarding.
- */
-static void skip(uint32_t dist, FILE * fp)
-{
-    char buffer[256];           /* should fit on most stacks :-) */
-
-    /*
-     * Got to be careful with fseek: at least one fseek I've tried
-     * doesn't approve of SEEK_CUR. So I'll use SEEK_SET and
-     * ftell... horrible but apparently necessary.
-     */
-    if (fseek(fp, dist + ftell(fp), SEEK_SET)) {
-        while (dist > 0) {
-            uint32_t len = (dist < sizeof(buffer) ?
-                                 dist : sizeof(buffer));
-            if (fread(buffer, 1, len, fp) < len) {
-                perror("fread");
-                exit(1);
-            }
-            dist -= len;
-        }
-    }
-}
--- a/nasmbuild/nasm-2.13rc9/disasm/sync.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * sync.c   the Netwide Disassembler synchronisation processing module
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <limits.h>
-
-#include "nasmlib.h"
-#include "sync.h"
-
-#define SYNC_MAX_SHIFT          31
-#define SYNC_MAX_SIZE           (1U << SYNC_MAX_SHIFT)
-
-/* initial # of sync points (*must* be power of two)*/
-#define SYNC_INITIAL_CHUNK      (1U << 12)
-
-/*
- * This lot manages the current set of sync points by means of a
- * heap (priority queue) structure.
- */
-
-static struct Sync {
-    uint64_t pos;
-    uint32_t length;
-} *synx;
-
-static uint32_t max_synx, nsynx;
-
-static inline void swap_sync(uint32_t dst, uint32_t src)
-{
-    struct Sync t = synx[dst];
-    synx[dst] = synx[src];
-    synx[src] = t;
-}
-
-void init_sync(void)
-{
-    max_synx = SYNC_INITIAL_CHUNK;
-    synx = nasm_malloc((max_synx + 1) * sizeof(*synx));
-    nsynx = 0;
-}
-
-void add_sync(uint64_t pos, uint32_t length)
-{
-    uint32_t i;
-
-    if (nsynx >= max_synx) {
-        if (max_synx >= SYNC_MAX_SIZE) /* too many sync points! */
-            return;
-        max_synx = (max_synx << 1);
-        synx = nasm_realloc(synx, (max_synx + 1) * sizeof(*synx));
-    }
-
-    nsynx++;
-    synx[nsynx].pos = pos;
-    synx[nsynx].length = length;
-
-    for (i = nsynx; i > 1; i /= 2) {
-        if (synx[i / 2].pos > synx[i].pos)
-            swap_sync(i / 2, i);
-    }
-}
-
-uint64_t next_sync(uint64_t position, uint32_t *length)
-{
-    while (nsynx > 0 && synx[1].pos + synx[1].length <= position) {
-        uint32_t i, j;
-
-        swap_sync(nsynx, 1);
-        nsynx--;
-
-        i = 1;
-        while (i * 2 <= nsynx) {
-            j = i * 2;
-            if (synx[j].pos < synx[i].pos &&
-                (j + 1 > nsynx || synx[j + 1].pos > synx[j].pos)) {
-                swap_sync(j, i);
-                i = j;
-            } else if (j + 1 <= nsynx && synx[j + 1].pos < synx[i].pos) {
-                swap_sync(j + 1, i);
-                i = j + 1;
-            } else
-                break;
-        }
-    }
-
-    if (nsynx > 0) {
-        if (length)
-            *length = synx[1].length;
-        return synx[1].pos;
-    } else {
-        if (length)
-            *length = 0L;
-        return 0;
-    }
-}
--- a/nasmbuild/nasm-2.13rc9/disasm/sync.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/* 
- * sync.h   header file for sync.c
- */
-
-#ifndef NASM_SYNC_H
-#define NASM_SYNC_H
-
-void init_sync(void);
-void add_sync(uint64_t position, uint32_t length);
-uint64_t next_sync(uint64_t position, uint32_t *length);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/doc/Makefile	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-#
-# UNIX Makefile for NASM documentation
-#
-
-top_srcdir	= ..
-srcdir		= .
-
-prefix		= /usr/local
-exec_prefix	= ${prefix}
-bindir		= ${exec_prefix}/bin
-mandir		= ${datarootdir}/man
-docdir		= $(prefix)/doc/nasm
-infodir		= ${datarootdir}/info
-datarootdir	= ${prefix}/share
-
-INSTALL		= /bin/install -c
-INSTALL_PROGRAM	= ${INSTALL}
-INSTALL_DATA	= ${INSTALL} -m 644
-
-PERL		= perl -I$(srcdir)
-MAKEINFO	= makeinfo
-TEXI2DVI        = texi2dvi
-TEXI2IPF	= texi2ipf
-IPFC		= ipfc
-
-ACRODIST	= false		# Acrobat Distiller
-PSTOPDF		= false		# BSD/MacOS X utility
-PS2PDF          = ps2pdf		# Part of GhostScript
-
-SRCS		= nasmdoc.src inslist.src changes.src version.src
-OUT		= info html nasmdoc.txt nasmdoc.ps nasmdoc.pdf
-
-# exports
-export srcdir
-export PERL
-
-all: $(OUT)
-
-os2: nasm.inf
-
-inslist.src: inslist.pl ../x86/insns.dat
-	$(PERL) $(srcdir)/inslist.pl $(srcdir)/../x86/insns.dat
-
-.PHONY: html
-html: html/nasmdoc0.html
-
-RDSRC = $(PERL) $(srcdir)/rdsrc.pl -I$(srcdir)/
-
-html/nasmdoc0.html: $(SRCS) rdsrc.pl
-	mkdir -p html
-	$(RDSRC) html "$<"
-	mv -f *.html html
-
-nasmdoc.dip: $(SRCS) rdsrc.pl
-	$(RDSRC) dip "$<"
-
-nasmdoc.texi: $(SRCS) rdsrc.pl
-	$(RDSRC) texi "$<"
-
-nasmdoc.txt: $(SRCS) rdsrc.pl
-	$(RDSRC) txt "$<"
-
-version.src: $(top_srcdir)/version.pl $(top_srcdir)/version
-	$(PERL) $(top_srcdir)/version.pl docsrc \
-		< $(top_srcdir)/version > version.src
-
-nasmdoc.ps: nasmdoc.dip nasmlogo.eps \
-	    genps.pl psfonts.ph pswidth.ph head.ps 
-	$(PERL) $(srcdir)/genps.pl -headps $(srcdir)/head.ps nasmdoc.dip \
-		> nasmdoc.ps
-
-nasmdoc.pdf: nasmdoc.ps
-	$(ACRODIST) -n -q --nosecurity -o $@ $< || \
-	$(PS2PDF) $< $@ || \
-	$(PSTOPDF) $< -o $@ 
-
-.PHONY: info
-info: info/nasm.info
-
-info/nasm.info: nasmdoc.texi
-	mkdir -p info
-	$(MAKEINFO) $<
-	mv -f *.info *.info-* info
-
-# DVI output from texinfo (optional)
-nasmdoc.dvi: nasmdoc.texi
-	$(TEXI2DVI) nasmdoc.texi
-
-# Rules for building an OS/2 book
-nasmdoc.ipf: nasmdoc.texi
-	$(TEXI2IPF) $< >$@
-
-nasm.inf: nasmdoc.ipf
-	$(IPFC) -i -s $< $@
-
-clean:
-	-rm -f *.rtf *.hpj *.texi *.gid *.ipf *.dip
-	-rm -f *.aux *.cp *.fn *.ky *.pg *.log *.toc *.tp *.vr
-	-rm -f inslist.src version.src
-
-spotless: clean
-	-rm -rf html info
-	-rm -f *.hlp nasmdoc.txt *.inf *.pdf *.dvi
-	-rm -f nasmdoc*.ps
-
-install: all
-	mkdir -p $(INSTALLROOT)$(infodir)
-	$(INSTALL_DATA) info/* $(INSTALLROOT)$(infodir)
-	mkdir -p $(INSTALLROOT)$(docdir)/html
-	$(INSTALL_DATA) html/* $(INSTALLROOT)$(docdir)/html
-	$(INSTALL_DATA) nasmdoc.ps nasmdoc.pdf nasmdoc.txt $(INSTALLROOT)$(docdir)
--- a/nasmbuild/nasm-2.13rc9/doc/Makefile.in	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,111 +0,0 @@
-#
-# UNIX Makefile for NASM documentation
-#
-
-top_srcdir	= @top_srcdir@
-srcdir		= @srcdir@
-VPATH		= @srcdir@
-prefix		= @prefix@
-exec_prefix	= @exec_prefix@
-bindir		= @bindir@
-mandir		= @mandir@
-docdir		= $(prefix)/doc/nasm
-infodir		= @infodir@
-datarootdir	= @datarootdir@
-
-INSTALL		= @INSTALL@
-INSTALL_PROGRAM	= @INSTALL_PROGRAM@
-INSTALL_DATA	= @INSTALL_DATA@
-
-PERL		= perl -I$(srcdir)
-MAKEINFO	= makeinfo
-TEXI2DVI        = texi2dvi
-TEXI2IPF	= texi2ipf
-IPFC		= ipfc
-
-ACRODIST	= @ACRODIST@		# Acrobat Distiller
-PSTOPDF		= @PSTOPDF@		# BSD/MacOS X utility
-PS2PDF          = @PS2PDF@		# Part of GhostScript
-
-SRCS		= nasmdoc.src inslist.src changes.src version.src
-OUT		= info html nasmdoc.txt nasmdoc.ps nasmdoc.pdf
-
-# exports
-export srcdir
-export PERL
-
-all: $(OUT)
-
-os2: nasm.inf
-
-inslist.src: inslist.pl ../x86/insns.dat
-	$(PERL) $(srcdir)/inslist.pl $(srcdir)/../x86/insns.dat
-
-.PHONY: html
-html: html/nasmdoc0.html
-
-RDSRC = $(PERL) $(srcdir)/rdsrc.pl -I$(srcdir)/
-
-html/nasmdoc0.html: $(SRCS) rdsrc.pl
-	mkdir -p html
-	$(RDSRC) html "$<"
-	mv -f *.html html
-
-nasmdoc.dip: $(SRCS) rdsrc.pl
-	$(RDSRC) dip "$<"
-
-nasmdoc.texi: $(SRCS) rdsrc.pl
-	$(RDSRC) texi "$<"
-
-nasmdoc.txt: $(SRCS) rdsrc.pl
-	$(RDSRC) txt "$<"
-
-version.src: $(top_srcdir)/version.pl $(top_srcdir)/version
-	$(PERL) $(top_srcdir)/version.pl docsrc \
-		< $(top_srcdir)/version > version.src
-
-nasmdoc.ps: nasmdoc.dip nasmlogo.eps \
-	    genps.pl psfonts.ph pswidth.ph head.ps 
-	$(PERL) $(srcdir)/genps.pl -headps $(srcdir)/head.ps nasmdoc.dip \
-		> nasmdoc.ps
-
-nasmdoc.pdf: nasmdoc.ps
-	$(ACRODIST) -n -q --nosecurity -o $@ $< || \
-	$(PS2PDF) $< $@ || \
-	$(PSTOPDF) $< -o $@ 
-
-.PHONY: info
-info: info/nasm.info
-
-info/nasm.info: nasmdoc.texi
-	mkdir -p info
-	$(MAKEINFO) $<
-	mv -f *.info *.info-* info
-
-# DVI output from texinfo (optional)
-nasmdoc.dvi: nasmdoc.texi
-	$(TEXI2DVI) nasmdoc.texi
-
-# Rules for building an OS/2 book
-nasmdoc.ipf: nasmdoc.texi
-	$(TEXI2IPF) $< >$@
-
-nasm.inf: nasmdoc.ipf
-	$(IPFC) -i -s $< $@
-
-clean:
-	-rm -f *.rtf *.hpj *.texi *.gid *.ipf *.dip
-	-rm -f *.aux *.cp *.fn *.ky *.pg *.log *.toc *.tp *.vr
-	-rm -f inslist.src version.src
-
-spotless: clean
-	-rm -rf html info
-	-rm -f *.hlp nasmdoc.txt *.inf *.pdf *.dvi
-	-rm -f nasmdoc*.ps
-
-install: all
-	mkdir -p $(INSTALLROOT)$(infodir)
-	$(INSTALL_DATA) info/* $(INSTALLROOT)$(infodir)
-	mkdir -p $(INSTALLROOT)$(docdir)/html
-	$(INSTALL_DATA) html/* $(INSTALLROOT)$(docdir)/html
-	$(INSTALL_DATA) nasmdoc.ps nasmdoc.pdf nasmdoc.txt $(INSTALLROOT)$(docdir)
--- a/nasmbuild/nasm-2.13rc9/doc/afmmetrics.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,132 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##
-##   Copyright 1996-2016 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# Parse AFM metric files
-#
-
-@widths = ((undef)x256);
-
-while ( $line = <STDIN> ) {
-    if ( $line =~ /^\s*FontName\s+(.*)\s*$/ ) {
-	$fontname = $1;
-    } elsif ( $line =~ /^\s*StartCharMetrics\b/ ) {
-	$charmetrics = 1;
-    } elsif ( $line =~ /^\s*EndCharMetrics\b/ ) {
-	$charmetrics = 0;
-    } elsif ( $line =~ /^\s*StartKernPairs\b/ ) {
-	$kerndata = 1;
-    } elsif ( $line =~ /^\s*EndKernPairs\b/ ) {
-	$kerndata = 0;
-    } elsif ( $charmetrics ) {
-	@data = split(/\s*;\s*/, $line);
-	undef $charcode, $width, $name;
-	foreach $d ( @data ) {
-	    @dd = split(/\s+/, $d);
-	    if ( $dd[0] eq 'C' ) {
-		$charcode = $dd[1];
-	    } elsif ( $dd[0] eq 'WX' ) {
-		$width = $dd[1];
-	    } elsif ( $dd[0] eq 'W' ) {
-		$width = $dd[2];
-	    } elsif ( $dd[0] eq 'N' ) {
-		$name = $dd[1];
-	    }
-	}
-	if ( defined($name) && defined($width) ) {
-	    $charwidth{$name} = $width;
-	}
-    } elsif ( $kerndata ) {
-	my($kpx, $a, $b, $adj) = split(/\s+/, $line);
-	if ( $kpx eq 'KPX' ) {
-	    $kernpairs{$a} = {} unless defined($kernpairs{$a});
-	    $kernpairs{$a}{$b} = $adj;
-	}
-    }
-}
-
-sub qstr($) {
-    my($s) = @_;
-    my($o,$c,$i);
-    $o = '"';
-    for ( $i = 0 ; $i < length($s) ; $i++ ) {
-	$c = substr($s,$i,1);
-	if ( $c lt ' ' || $c gt '~' ) {
-	    $o .= sprintf("\\%03o", ord($c));
-	} elsif ( $c eq "\'" || $c eq "\"" || $c eq "\\" ) {
-	    $o .= "\\".$c;
-	} else {
-	    $o .= $c;
-	}
-    }
-    return $o.'"';
-}
-
-$psfont = $fontname;
-$psfont =~ s/[^A-Za-z0-9]/_/g;
-
-print "%PS_${psfont} = (\n";
-print "  name => \'$fontname\',\n";
-print "  widths => {";
-$lw = 100000;
-foreach $cc ( sort(keys(%charwidth)) ) {
-    $ss = sprintf(' %s => %d,', qstr($cc), $charwidth{$cc});
-    $lw += length($ss);
-    if ( $lw > 72 ) {
-	print "\n   ";
-	$lw = 4 + length($ss);
-    }
-    print $ss;
-}
-print "\n  },\n";
-print "  kern => {";
-$lt = "\n";
-foreach $ka ( sort(keys(%kernpairs)) ) {
-    printf '%s    %s => {', $lt, qstr($ka);
-    $lw = 100000;
-    foreach $kb ( sort(keys(%{$kernpairs{$ka}})) ) {
-	$ss = sprintf(' %s => %d,', qstr($kb), $kernpairs{$ka}{$kb});
-	$lw += length($ss);
-	if ( $lw > 72 ) {
-	    print "\n     ";
-	    $lw = 6 + length($ss);
-	}
-	print $ss;
-    }
-    print "\n    }";
-    $lt = ",\n";
-}
-print "\n  }\n";
-print ");\n";
-print "1;\n";
--- a/nasmbuild/nasm-2.13rc9/doc/changes.src	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2520 +0,0 @@
-\#
-\# NASM revision history in nasmdoc format
-\#
-
-\H{cl-2.xx} NASM 2 Series
-
-The NASM 2 series supports x86-64, and is the production version of NASM
-since 2007.
-
-\S{cl-2.13} Version 2.13
-
-\b Support the official forms of the \c{UD0} and \c{UD1} instructions.
-
-\b Allow self-segment-relative expressions in immediates and
-   displacements, even when combined with an external or otherwise
-   out-of-segment special symbol, e.g.:
-
-\c      extern foo
-\c      mov eax,[foo - $ + ebx]               ; Now legal
-
-\b Handle a 64-bit origin in NDISASM.
-
-\b NASM can now generate sparse output files for relevant output
-   formats, if the underlying operating system supports them.
-
-\b \c{macho} object format now supports the \c{subsections_via_symbols}
-   and \c{no_dead_strip} directives, see \k{macho-ssvs}.
-
-\b \c{macho} object format now supports the \c{no_dead_strip},
-  \c{live_support} and \c{strip_static_syms} section flags, see
-  \k{machosect}.
-
-\b All warnings can now be suppressed if desired; warnings not
-   otherwise part of any warning class are now considered its own
-   warning class called \c{other} (e.g. \c{-w-other}).  Furthermore,
-   warning-as-error can now be controlled on a per warning class
-   basis, using the syntax \c{-w+error=}\e{warning-class} and its
-   equivalent for all other warning control options.  See \k{opt-w}
-   for the command-line options and warning classes and
-   \k{asmdir-warning} for the \c{[WARNING]} directive.
-
-\# --- hpa: commenting this header out since it looks like we will
-\# --- bypass 2.12.03 and go straight to 2.13.  However, please keep
-\# --- the header in place to make it easier to merge with the 2.12.xx
-\# --- branch if we should have to in the short term.
-\# \S{cl-2.12.03} Version 2.12.03
-\#
-\b Add new warnings for certain dangerous constructs which never ought
-   to have been allowed.  In particular, the \c{RESB} family of
-   instructions should have been taking a critical expression all
-   along.
-
-\b Fix the EVEX (AVX-512) versions of the \c{VPBROADCAST}, \c{VPEXTR},
-   and \c{VPINSR} instructions.
-
-\b Support contracted forms of additional instructions.  As a general
-   rule, if an instruction has a non-destructive source immediately
-   after a destination register that isn't used as an input, NASM
-   supports omitting that source register, using the destination
-   register as that value.  This among other things makes it easier to
-   convert SSE code to the equivalent AVX code:
-
-\c      addps xmm1,xmm0                       ; SSE instruction
-\c      vaddps ymm1,ymm1,ymm0                 ; AVX official long form
-\c      vaddps ymm1,ymm0                      ; AVX contracted form
-
-\b Fix Codeview malformed compiler version record.
-
-\b Add the \c{CLWB} and \c{PCOMMIT} instructions.  Note that the
-   \c{PCOMMIT} instruction has been deprecated and will never be
-   included in a shipping product; it is included for completeness
-   only.
-
-\b Add the \c{%pragma} preprocessor directive for forward
-   compatibility with future versions of NASM.  At this time no pragmas
-   are implemented and this is merely a dummy directive.
-
-\b Add the \c{RDPID} instruction.
-
-\S{cl-2.12.02} Version 2.12.02
-
-\b Fix preprocessor errors, especially \c{%error} and \c{%warning},
-   inside \c{%if} statements.
-
-\b Fix relative relocations in 32-bit Mach-O.
-
-\b More Codeview debug format fixes.
-
-\b If the MASM \c{PTR} keyword is encountered, issue a warning.  This is
-   much more likely to indicate a MASM-ism encountered in NASM than it
-   is a valid label.  This warning can be suppressed with \c{-w-ptr},
-   the \c{[warning]} directive (see \k{opt-w}) or by the macro
-   definition \c{%idefine ptr $%?} (see \k{selfref%?}).
-
-\b When an error or a warning comes from the expansion of a multi-line
-   macro, display the file and line numbers for the expanded macros.
-   Macros defined with \c{.nolist} do not get displayed.
-
-\b Add macros \c{ilog2fw()} and \c{ilog2cw()} to the \c{ifunc} macro
-   package.  See \k{ilog2}.
-
-
-\S{cl-2.12.01} Version 2.12.01
-
-\b Portability fixes for some platforms.
-
-\b Fix error when not specifying a list file.
-
-\b Correct the handling of macro-local labels in the Codeview
-   debugging format.
-
-\b Add \c{CLZERO}, \c{MONITORX} and \c{MWAITX} instructions.
-
-
-\S{cl-2.12} Version 2.12
-
-\b Major fixes to the \c{macho} backend (\k{machofmt}); earlier versions
-   would produce invalid symbols and relocations on a regular basis.
-
-\b Support for thread-local storage in Mach-O.
-
-\b Support for arbitrary sections in Mach-O.
-
-\b Fix wrong negative size treated as a big positive value passed into
-   backend causing NASM to crash.
-
-\b Fix handling of zero-extending unsigned relocations, we have been printing
-   wrong message and forgot to assign segment with predefined value before
-   passing it into output format.
-
-\b Fix potential write of oversized (with size greater than allowed in
-   output format) relative relocations.
-
-\b Portability fixes for building NASM with the LLVM compiler.
-
-\b Add support of Codeview version 8 (\c{cv8}) debug format for
-   \c{win32} and \c{win64} formats in the \c{COFF} backend,
-   see \k{codeview}.
-
-\b Allow 64-bit outputs in 16/32-bit only backends.  Unsigned 64-bit
-   relocations are zero-extended from 32-bits with a warning
-   (suppressible via \c{-w-zext-reloc}); signed 64-bit relocations are
-   an error.
-
-\b Line numbers in list files now correspond to the lines in the source
-   files, instead of simply being sequential.
-
-\b There is now an official 64-bit (x64 a.k.a. x86-64) build for Windows.
-
-
-\S{cl-2.11.09} Version 2.11.09
-
-\b Fix potential stack overwrite in \c{macho32} backend.
-
-\b Fix relocation records in \c{macho64} backend.
-
-\b Fix symbol lookup computation in \c{macho64} backend.
-
-\b Adjust \c{.symtab} and \c{.rela.text} sections alignments to 8 bytes
-   in \c{elf64} backed.
-
-\b Fix section length computation in \c{bin} backend which leaded in incorrect
-   relocation records.
-
-\S{cl-2.11.08} Version 2.11.08
-
-\b Fix section length computation in \c{bin} backend which leaded in incorrect
-   relocation records.
-
-\b Add a warning for numeric preprocessor definitions passed via command
-   line which might have unexpected results otherwise.
-
-\b Add ability to specify a module name record in \c{rdoff} linker with
-   \c{-mn} option.
-
-\b Increase label length capacity up to 256 bytes in \c{rdoff} backend for
-   FreePascal sake, which tends to generate very long labels for procedures.
-
-\b Fix segmentation failure when rip addressing is used in \c{macho64} backend.
-
-\b Fix access on out of memory when handling strings with a single
-   grave. We have sixed similar problem in previous release but not
-   all cases were covered.
-
-\b Fix NULL dereference in disassembled on \c{BND} instruction.
-
-\S{cl-2.11.07} Version 2.11.07
-
-\b Fix 256 bit \c{VMOVNTPS} instruction.
-
-\b Fix \c{-MD} option handling, which was rather broken in previous
-release changing command line api.
-
-\b Fix access to unitialized space when handling strings with
-a single grave.
-
-\b Fix nil dereference in handling memory reference parsing.
-
-\S{cl-2.11.06} Version 2.11.06
-
-\b Update AVX512 instructions based on the Extension Reference (319433-021 Sept
-2014).
-
-\b Fix the behavior of \c{-MF} and \c{-MD} options (Bugzilla 3392280)
-
-\b Updated Win32 Makefile to fix issue with build
-
-\S{cl-2.11.05} Version 2.11.05
-
-\b Add \c{--v} as an alias for \c{-v} (see \k{opt-v}), for
-command-line compatibility with Yasm.
-
-\b Fix a bug introduced in 2.11.03 whereby certain instructions would
-contain multiple REX prefixes, and thus be corrupt.
-
-\S{cl-2.11.04} Version 2.11.04
-
-\b Removed an invalid error checking code. Sometimes a memref only with
-a displacement can also set an evex flag. For example:
-
-\c       vmovdqu32 [0xabcd]{k1}, zmm0
-
-\b Fixed a bug in disassembler that EVEX.L'L vector length was not matched
-when EVEX.b was set because it was simply considered as EVEC.RC.
-Separated EVEX.L'L case from EVEX.RC which is ignored in matching.
-
-\S{cl-2.11.03} Version 2.11.03
-
-\b Fix a bug there REX prefixes were missing on instructions inside a
-\c{TIMES} statement.
-
-\S{cl-2.11.02} Version 2.11.02
-
-\b Add the \c{XSAVEC}, \c{XSAVES} and \c{XRSTORS} family instructions.
-
-\b Add the \c{CLFLUSHOPT} instruction.
-
-\S{cl-2.11.01} Version 2.11.01
-
-\b Allow instructions which implicitly uses \c{XMM0} (\c{VBLENDVPD},
-\c{VBLENDVPS}, \c{PBLENDVB} and \c{SHA256RNDS2}) to be specified
-without an explicit \c{xmm0} on the assembly line.  In other words,
-the following two lines produce the same output:
-
-\c      vblendvpd xmm2,xmm1,xmm0      ; Last operand is fixed xmm0
-\c      vblendvpd xmm2,xmm1           ; Implicit xmm0 omitted
-
-\b In the ELF backends, don't crash the assembler if \c{section align}
-is specified without a value.
-
-\S{cl-2.11} Version 2.11
-
-\b Add support for the Intel AVX-512 instruction set:
-
-\b 16 new, 512-bit SIMD registers. Total 32 \c{(ZMM0 ~ ZMM31)}
-
-\b 8 new opmask registers \c{(K0 ~ K7)}. One of 7 registers \c{(K1 ~ K7)} can
-be used as an opmask for conditional execution.
-
-\b A new EVEX encoding prefix. EVEX is based on VEX and provides more
-capabilities: opmasks, broadcasting, embedded rounding and compressed
-displacements.
-
-\c  - opmask
-\c      VDIVPD zmm0{k1}{z}, zmm1, zmm3  ; conditional vector operation
-\c                                      ; using opmask k1.
-\c                                      ; {z} is for zero-masking
-\c  - broadcasting
-\c      VDIVPS zmm4, zmm5, [rbx]{1to16} ; load single-precision float and
-\c                                      ; replicate it 16 times. 32 * 16 = 512
-\c  - embedded rounding
-\c      VCVTSI2SD xmm6, xmm7, {rz-sae}, rax ; round toward zero. note that it
-\c                                       ; is used as if a separate operand.
-\c                                       ; it comes after the last SIMD operand
-
-\b Add support for \c{ZWORD} (512 bits), \c{DZ} and \c{RESZ}.
-
-\b Add support for the MPX and SHA instruction sets.
-
-\b Better handling of section redefinition.
-
-\b Generate manpages when running \c{'make dist'}.
-
-\b Handle all token chains in mmacro params range.
-
-\b Support split [base,index] effective address:
-
-\c      mov eax,[eax+8,ecx*4]   ; eax=base, ecx=index, 4=scale, 8=disp
-
-This is expected to be most useful for the MPX instructions.
-
-\b Support \c{BND} prefix for branch instructions (for MPX).
-
-\b The \c{DEFAULT} directive can now take \c{BND} and \c{NOBND}
-options to indicate whether all relevant branches should be getting
-\c{BND} prefixes.  This is expected to be the normal for use in MPX
-code.
-
-\b Add \c{{evex}}, \c{{vex3}} and \c{{vex2}} instruction prefixes to
-have NASM encode the corresponding instruction, if possible, with an EVEX,
-3-byte VEX, or 2-byte VEX prefix, respectively.
-
-\b Support for section names longer than 8 bytes in Win32/Win64 COFF.
-
-\b The \c{NOSPLIT} directive by itself no longer forces a single
-register to become an index register, unless it has an explicit
-multiplier.
-
-\c      mov eax,[nosplit eax]       ; eax as base register
-\c      mov eax,[nosplit eax*1]     ; eax as index register
-
-\S{cl-2.10.09} Version 2.10.09
-
-\b Pregenerate man pages.
-
-\S{cl-2.10.08} Version 2.10.08
-
-\b Fix \c{VMOVNTDQA}, \c{MOVNTDQA} and \c{MOVLPD} instructions.
-
-\b Fix collision for \c{VGATHERQPS}, \c{VPGATHERQD} instructions.
-
-\b Fix \c{VPMOVSXBQ}, \c{VGATHERQPD}, \c{VSPLLW} instructions.
-
-\b Add a bunch of AMD TBM instructions.
-
-\b Fix potential stack overwrite in numbers conversion.
-
-\b Allow byte size in \c{PREFETCHTx} instructions.
-
-\b Make manual pages up to date.
-
-\b Make \c{F3} and \c{F2} SSE prefixes to override \c{66}.
-
-\b Support of AMD SVM instructions in 32 bit mode.
-
-\b Fix near offsets code generation for \c{JMP}, \c{CALL} instrictions
-in long mode.
-
-\b Fix preprocessor parse regression when id is expanding to a whitespace.
-
-\S{cl-2.10.07} Version 2.10.07
-
-\b Fix line continuation parsing being broken in previous version.
-
-\S{cl-2.10.06} Version 2.10.06
-
-\b Always quote the dependency source names when using the automatic
-dependency generation options.
-
-\b If no dependency target name is specified via the \c{-MT} or
-\c{-MQ} options, quote the default output name.
-
-\b Fix assembly of shift operations in \c{CPU 8086} mode.
-
-\b Fix incorrect generation of explicit immediate byte for shift by 1
-under certain circumstances.
-
-\b Fix assembly of the \c{VPCMPGTQ} instruction.
-
-\b Fix RIP-relative relocations in the \c{macho64} backend.
-
-\S{cl-2.10.05} Version 2.10.05
-
-\b Add the \c{CLAC} and \c{STAC} instructions.
-
-\S{cl-2.10.04} Version 2.10.04
-
-\b Add back the inadvertently deleted 256-bit version of the \c{VORPD}
-instruction.
-
-\b Correct disassembly of instructions starting with byte \c{82} hex.
-
-\b Fix corner cases in token pasting, for example:
-
-\c    %define N 1e%++%+ 5
-\c            dd N, 1e+5
-
-\S{cl-2.10.03} Version 2.10.03
-
-\b Correct the assembly of the instruction:
-
-\c XRELEASE MOV [absolute],AL
-
-Previous versions would incorrectly generate \c{F3 A2} for this
-instruction and issue a warning; correct behavior is to emit \c{F3 88
-05}.
-
-\S{cl-2.10.02} Version 2.10.02
-
-\b Add the \c{ifunc} macro package with integer functions, currently
-only integer logarithms.  See \k{pkg_ifunc}.
-
-\b Add the \c{RDSEED}, \c{ADCX} and \c{ADOX} instructions.
-
-\S{cl-2.10.01} Version 2.10.01
-
-\b Add missing VPMOVMSKB instruction with reg32, ymmreg operands.
-
-\S{cl-2.10} Version 2.10
-
-\b When optimization is enabled, \c{mov r64,imm} now optimizes to the
-  shortest form possible between:
-
-\c      mov r32,imm32                   ;  5 bytes
-\c      mov r64,imm32                   ;  7 bytes
-\c      mov r64,imm64                   ; 10 bytes
-
-To force a specific form, use the \c{STRICT} keyword, see \k{strict}.
-
-\b Add support for the Intel AVX2 instruction set.
-
-\b Add support for Bit Manipulation Instructions 1 and 2.
-
-\b Add support for Intel Transactional Synchronization Extensions (TSX).
-
-\b Add support for x32 ELF (32-bit ELF with the CPU in 64-bit mode.)
-   See \k{elffmt}.
-
-\b Add support for bigendian UTF-16 and UTF-32.  See \k{unicode}.
-
-\S{cl-2.09.10} Version 2.09.10
-
-\b Fix up NSIS script to protect uninstaller against registry keys
-   absence or corruption. It brings in a few additional questions
-   to a user during deinstallation procedure but still it is better
-   than unpredictable file removal.
-
-\S{cl-2.09.09} Version 2.09.09
-
-\b Fix initialization of section attributes of \c{bin} output format.
-
-\b Fix \c{mach64} output format bug that crashes NASM due to NULL symbols.
-
-
-\S{cl-2.09.08} Version 2.09.08
-
-\b Fix \c{__OUTPUT_FORMAT__} assignment when output driver alias
-   is used. For example when \c{-f elf} is used \c{__OUTPUT_FORMAT__}
-   must be set to \c{elf}, if \c{-f elf32} is used \c{__OUTPUT_FORMAT__}
-   must be assigned accordingly, i.e. to \c{elf32}. The rule applies to
-   all output driver aliases. See \k{ofmtm}.
-
-
-\S{cl-2.09.07} Version 2.09.07
-
-\b Fix attempts to close same file several times
-   when \c{-a} option is used.
-
-\b Fixes for VEXTRACTF128, VMASKMOVPS encoding.
-
-
-\S{cl-2.09.06} Version 2.09.06
-
-\b Fix missed section attribute initialization in \c{bin} output target.
-
-
-\S{cl-2.09.05} Version 2.09.05
-
-\b Fix arguments encoding for VPEXTRW instruction.
-
-\b Remove invalid form of VPEXTRW instruction.
-
-\b Add \c{VLDDQU} as alias for \c{VLDQQU} to
-   match specification.
-
-
-\S{cl-2.09.04} Version 2.09.04
-
-\b Fix incorrect labels offset for VEX intructions.
-
-\b Eliminate bogus warning on implicit operand size override.
-
-\b \c{%if} term could not handle 64 bit numbers.
-
-\b The COFF backend was limiting relocations number to 16 bits even if
-   in real there were a way more relocations.
-
-
-\S{cl-2.09.03} Version 2.09.03
-
-\b Print \c{%macro} name inside \c{%rep} blocks on error.
-
-\b Fix preprocessor expansion behaviour. It happened sometime
-   too early and sometime simply wrong. Move behaviour back to
-   the origins (down to NASM 2.05.01).
-
-\b Fix unitialized data dereference on OMF output format.
-
-\b Issue warning on unterminated \c{%{} construct.
-
-\b Fix for documentation typo.
-
-
-\S{cl-2.09.02} Version 2.09.02
-
-\b Fix reversed tokens when \c{%deftok} produces more than one output token.
-
-\b Fix segmentation fault on disassembling some VEX instructions.
-
-\b Missing \c{%endif} did not always cause error.
-
-\b Fix typo in documentation.
-
-\b Compound context local preprocessor single line macro identifiers
-  were not expanded early enough and as result lead to unresolved
-  symbols.
-
-
-\S{cl-2.09.01} Version 2.09.01
-
-\b Fix NULL dereference on missed %deftok second parameter.
-
-\b Fix NULL dereference on invalid %substr parameters.
-
-
-\S{cl-2.09} Version 2.09
-
-\b Fixed assignment the magnitude of \c{%rep} counter. It is limited
-  to 62 bits now.
-
-\b Fixed NULL dereference if argument of \c{%strlen} resolves
-  to whitespace. For example if nonexistent macro parameter is used.
-
-\b \c{%ifenv}, \c{%elifenv}, \c{%ifnenv}, and \c{%elifnenv} directives
-  introduced.  See \k{ifenv}.
-
-\b Fixed NULL dereference if environment variable is missed.
-
-\b Updates of new AVX v7 Intel instructions.
-
-\b \c{PUSH imm32} is now officially documented.
-
-\b Fix for encoding the LFS, LGS and LSS in 64-bit mode.
-
-\b Fixes for compatibility with OpenWatcom compiler and DOS 8.3 file
-  format limitation.
-
-\b Macros parameters range expansion introduced. See \k{mlmacrange}.
-
-\b Backward compatibility on expanging of local sigle macros restored.
-
-\b 8 bit relocations for \c{elf} and \c{bin} output formats are introduced.
-
-\b Short intersegment jumps are permitted now.
-
-\b An alignment more than 64 bytes are allowed for \c{win32},
-  \c{win64} output formats.
-
-\b \c{SECTALIGN} directive introduced. See \k{sectalign}.
-
-\b \c{nojmp} option introduced in \c{smartalign} package. See
-  \k{pkg_smartalign}.
-
-\b Short aliases \c{win}, \c{elf} and \c{macho} for output formats are
-  introduced.  Each stands for \c{win32}, \c{elf32} and \c{macho32}
-  accordingly.
-
-\b Faster handling of missing directives implemented.
-
-\b Various small improvements in documentation.
-
-\b No hang anymore if unable to open malloc.log file.
-
-\b The environments without vsnprintf function are able to build nasm again.
-
-\b AMD LWP instructions updated.
-
-\b Tighten EA checks. We warn a user if there overflow in EA addressing.
-
-\b Make \c{-Ox} the default optimization level.  For the legacy
-  behavior, specify \c{-O0} explicitly.  See \k{opt-O}.
-
-\b Environment variables read with \c{%!} or tested with \c{%ifenv}
-  can now contain non-identifier characters if surrounded by quotes.
-  See \k{getenv}.
-
-\b Add a new standard macro package \c{%use fp} for floating-point
-  convenience macros.  See \k{pkg_fp}.
-
-
-\S{cl-2.08.02} Version 2.08.02
-
-\b Fix crash under certain circumstances when using the \c{%+} operator.
-
-
-\S{cl-2.08.01} Version 2.08.01
-
-\b Fix the \c{%use} statement, which was broken in 2.08.
-
-
-\S{cl-2.08} Version 2.08
-
-\b A number of enhancements/fixes in macros area.
-
-\b Support for converting strings to tokens.  See \k{deftok}.
-
-\b Fuzzy operand size logic introduced.
-
-\b Fix COFF stack overrun on too long export identifiers.
-
-\b Fix Macho-O alignment bug.
-
-\b Fix crashes with -fwin32 on file with many exports.
-
-\b Fix stack overrun for too long [DEBUG id].
-
-\b Fix incorrect sbyte usage in IMUL (hit only if optimization
-  flag passed).
-
-\b Append ending token for \c{.stabs} records in the ELF output format.
-
-\b New NSIS script which uses ModernUI and MultiUser approach.
-
-\b Visual Studio 2008 NASM integration (rules file).
-
-\b Warn a user if a constant is too long (and as result will be stripped).
-
-\b The obsoleted pre-XOP AMD SSE5 instruction set which was never actualized
-  was removed.
-
-\b Fix stack overrun on too long error file name passed from the command line.
-
-\b Bind symbols to the .text section by default (ie in case if SECTION
-  directive was omitted) in the ELF output format.
-
-\b Fix sync points array index wrapping.
-
-\b A few fixes for FMA4 and XOP instruction templates.
-
-\b Add AMD Lightweight Profiling (LWP) instructions.
-
-\b Fix the offset for \c{%arg} in 64-bit mode.
-
-\b An undefined local macro (\c{%$}) no longer matches a global macro
-  with the same name.
-
-\b Fix NULL dereference on too long local labels.
-
-
-\S{cl-2.07} Version 2.07
-
-\b NASM is now under the 2-clause BSD license.  See \k{legal}.
-
-\b Fix the section type for the \c{.strtab} section in the \c{elf64}
-  output format.
-
-\b Fix the handling of \c{COMMON} directives in the \c{obj} output format.
-
-\b New \c{ith} and \c{srec} output formats; these are variants of the
-  \c{bin} output format which output Intel hex and Motorola S-records,
-  respectively.  See \k{ithfmt} and \k{srecfmt}.
-
-\b \c{rdf2ihx} replaced with an enhanced \c{rdf2bin}, which can output
-  binary, COM, Intel hex or Motorola S-records.
-
-\b The Windows installer now puts the NASM directory first in the
-  \c{PATH} of the "NASM Shell".
-
-\b Revert the early expansion behavior of \c{%+} to pre-2.06 behavior:
-  \c{%+} is only expanded late.
-
-\b Yet another Mach-O alignment fix.
-
-\b Don't delete the list file on errors.  Also, include error and
-  warning information in the list file.
-
-\b Support for 64-bit Mach-O output, see \k{machofmt}.
-
-\b Fix assert failure on certain operations that involve strings with
-  high-bit bytes.
-
-
-\S{cl-2.06} Version 2.06
-
-\b This release is dedicated to the memory of Charles A. Crayne, long
-  time NASM developer as well as moderator of \c{comp.lang.asm.x86} and
-  author of the book \e{Serious Assembler}.  We miss you, Chuck.
-
-\b Support for indirect macro expansion (\c{%[...]}).  See \k{indmacro}.
-
-\b \c{%pop} can now take an argument, see \k{pushpop}.
-
-\b The argument to \c{%use} is no longer macro-expanded.  Use
-  \c{%[...]} if macro expansion is desired.
-
-\b Support for thread-local storage in ELF32 and ELF64.  See \k{elftls}.
-
-\b Fix crash on \c{%ifmacro} without an argument.
-
-\b Correct the arguments to the \c{POPCNT} instruction.
-
-\b Fix section alignment in the Mach-O format.
-
-\b Update AVX support to version 5 of the Intel specification.
-
-\b Fix the handling of accesses to context-local macros from higher
-  levels in the context stack.
-
-\b Treat \c{WAIT} as a prefix rather than as an instruction, thereby
-  allowing constructs like \c{O16 FSAVE} to work correctly.
-
-\b Support for structures with a non-zero base offset. See \k{struc}.
-
-\b Correctly handle preprocessor token concatenation (see \k{concat})
-   involving floating-point numbers.
-
-\b The \c{PINSR} series of instructions have been corrected and
-   rationalized.
-
-\b Removed AMD SSE5, replaced with the new XOP/FMA4/CVT16 (rev 3.03)
-   spec.
-
-\b The ELF backends no longer automatically generate a \c{.comment} section.
-
-\b Add additional "well-known" ELF sections with default attributes.  See
-   \k{elfsect}.
-
-
-\S{cl-2.05.01} Version 2.05.01
-
-\b Fix the \c{-w}/\c{-W} option parsing, which was broken in NASM 2.05.
-
-
-\S{cl-2.05} Version 2.05
-
-\b Fix redundant REX.W prefix on \c{JMP reg64}.
-
-\b Make the behaviour of \c{-O0} match NASM 0.98 legacy behavior.
-  See \k{opt-O}.
-
-\b \c{-w-user} can be used to suppress the output of \c{%warning} directives.
-  See \k{opt-w}.
-
-\b Fix bug where \c{ALIGN} would issue a full alignment datum instead of
-  zero bytes.
-
-\b Fix offsets in list files.
-
-\b Fix \c{%include} inside multi-line macros or loops.
-
-\b Fix error where NASM would generate a spurious warning on valid
-  optimizations of immediate values.
-
-\b Fix arguments to a number of the \c{CVT} SSE instructions.
-
-\b Fix RIP-relative offsets when the instruction carries an immediate.
-
-\b Massive overhaul of the ELF64 backend for spec compliance.
-
-\b Fix the Geode \c{PFRCPV} and \c{PFRSQRTV} instruction.
-
-\b Fix the SSE 4.2 \c{CRC32} instruction.
-
-
-\S{cl-2.04} Version 2.04
-
-\b Sanitize macro handing in the \c{%error} directive.
-
-\b New \c{%warning} directive to issue user-controlled warnings.
-
-\b \c{%error} directives are now deferred to the final assembly phase.
-
-\b New \c{%fatal} directive to immediately terminate assembly.
-
-\b New \c{%strcat} directive to join quoted strings together.
-
-\b New \c{%use} macro directive to support standard macro directives.  See
-  \k{use}.
-
-\b Excess default parameters to \c{%macro} now issues a warning by default.
-  See \k{mlmacro}.
-
-\b Fix \c{%ifn} and \c{%elifn}.
-
-\b Fix nested \c{%else} clauses.
-
-\b Correct the handling of nested \c{%rep}s.
-
-\b New \c{%unmacro} directive to undeclare a multi-line macro.
-  See \k{unmacro}.
-
-\b Builtin macro \c{__PASS__} which expands to the current assembly pass.
-  See \k{pass_macro}.
-
-\b \c{__utf16__} and \c{__utf32__} operators to generate UTF-16 and UTF-32
-  strings.  See \k{unicode}.
-
-\b Fix bug in case-insensitive matching when compiled on platforms that
-  don't use the \c{configure} script.  Of the official release binaries,
-  that only affected the OS/2 binary.
-
-\b Support for x87 packed BCD constants.  See \k{bcdconst}.
-
-\b Correct the \c{LTR} and \c{SLDT} instructions in 64-bit mode.
-
-\b Fix unnecessary REX.W prefix on indirect jumps in 64-bit mode.
-
-\b Add AVX versions of the AES instructions (\c{VAES}...).
-
-\b Fix the 256-bit FMA instructions.
-
-\b Add 256-bit AVX stores per the latest AVX spec.
-
-\b VIA XCRYPT instructions can now be written either with or without
-  \c{REP}, apparently different versions of the VIA spec wrote them
-  differently.
-
-\b Add missing 64-bit \c{MOVNTI} instruction.
-
-\b Fix the operand size of \c{VMREAD} and \c{VMWRITE}.
-
-\b Numerous bug fixes, especially to the AES, AVX and VTX instructions.
-
-\b The optimizer now always runs until it converges.  It also runs even
-  when disabled, but doesn't optimize.  This allows most forward references
-  to be resolved properly.
-
-\b \c{%push} no longer needs a context identifier; omitting the context
-  identifier results in an anonymous context.
-
-
-\S{cl-2.03.01} Version 2.03.01
-
-\b Fix buffer overflow in the listing module.
-
-\b Fix the handling of hexadecimal escape codes in `...` strings.
-
-\b The Postscript/PDF documentation has been reformatted.
-
-\b The \c{-F} option now implies \c{-g}.
-
-
-\S{cl-2.03} Version 2.03
-
-\b Add support for Intel AVX, CLMUL and FMA instructions,
-including YMM registers.
-
-\b \c{dy}, \c{resy} and \c{yword} for 32-byte operands.
-
-\b Fix some SSE5 instructions.
-
-\b Intel \c{INVEPT}, \c{INVVPID} and \c{MOVBE} instructions.
-
-\b Fix checking for critical expressions when the optimizer is enabled.
-
-\b Support the DWARF debugging format for ELF targets.
-
-\b Fix optimizations of signed bytes.
-
-\b Fix operation on bigendian machines.
-
-\b Fix buffer overflow in the preprocessor.
-
-\b \c{SAFESEH} support for Win32, \c{IMAGEREL} for Win64 (SEH).
-
-\b \c{%?} and \c{%??} to refer to the name of a macro itself.  In particular,
-\c{%idefine keyword $%?} can be used to make a keyword "disappear".
-
-\b New options for dependency generation: \c{-MD}, \c{-MF},
-\c{-MP}, \c{-MT}, \c{-MQ}.
-
-\b New preprocessor directives \c{%pathsearch} and \c{%depend}; INCBIN
-reimplemented as a macro.
-
-\b \c{%include} now resolves macros in a sane manner.
-
-\b \c{%substr} can now be used to get other than one-character substrings.
-
-\b New type of character/string constants, using backquotes (\c{`...`}),
-which support C-style escape sequences.
-
-\b \c{%defstr} and \c{%idefstr} to stringize macro definitions before
-creation.
-
-\b Fix forward references used in \c{EQU} statements.
-
-
-\S{cl-2.02} Version 2.02
-
-\b Additional fixes for MMX operands with explicit \c{qword}, as well as
-  (hopefully) SSE operands with \c{oword}.
-
-\b Fix handling of truncated strings with \c{DO}.
-
-\b Fix segfaults due to memory overwrites when floating-point constants
-  were used.
-
-\b Fix segfaults due to missing include files.
-
-\b Fix OpenWatcom Makefiles for DOS and OS/2.
-
-\b Add autogenerated instruction list back into the documentation.
-
-\b ELF: Fix segfault when generating stabs, and no symbols have been
-  defined.
-
-\b ELF: Experimental support for DWARF debugging information.
-
-\b New compile date and time standard macros.
-
-\b \c{%ifnum} now returns true for negative numbers.
-
-\b New \c{%iftoken} test for a single token.
-
-\b New \c{%ifempty} test for empty expansion.
-
-\b Add support for the \c{XSAVE} instruction group.
-
-\b Makefile for Netware/gcc.
-
-\b Fix issue with some warnings getting emitted way too many times.
-
-\b Autogenerated instruction list added to the documentation.
-
-
-\S{cl-2.01} Version 2.01
-
-\b Fix the handling of MMX registers with explicit \c{qword} tags on
-  memory (broken in 2.00 due to 64-bit changes.)
-
-\b Fix the PREFETCH instructions.
-
-\b Fix the documentation.
-
-\b Fix debugging info when using \c{-f elf}
-(backwards compatibility alias for \c{-f elf32}).
-
-\b Man pages for rdoff tools (from the Debian project.)
-
-\b ELF: handle large numbers of sections.
-
-\b Fix corrupt output when the optimizer runs out of passes.
-
-
-\S{cl-2.00} Version 2.00
-
-\b Added c99 data-type compliance.
-
-\b Added general x86-64 support.
-
-\b Added win64 (x86-64 COFF) output format.
-
-\b Added \c{__BITS__} standard macro.
-
-\b Renamed the \c{elf} output format to \c{elf32} for clarity.
-
-\b Added \c{elf64} and \c{macho} (MacOS X) output formats.
-
-\b Added Numeric constants in \c{dq} directive.
-
-\b Added \c{oword}, \c{do} and \c{reso} pseudo operands.
-
-\b Allow underscores in numbers.
-
-\b Added 8-, 16- and 128-bit floating-point formats.
-
-\b Added binary, octal and hexadecimal floating-point.
-
-\b Correct the generation of floating-point constants.
-
-\b Added floating-point option control.
-
-\b Added Infinity and NaN floating point support.
-
-\b Added ELF Symbol Visibility support.
-
-\b Added setting OSABI value in ELF header directive.
-
-\b Added Generate Makefile Dependencies option.
-
-\b Added Unlimited Optimization Passes option.
-
-\b Added \c{%IFN} and \c{%ELIFN} support.
-
-\b Added Logical Negation Operator.
-
-\b Enhanced Stack Relative Preprocessor Directives.
-
-\b Enhanced ELF Debug Formats.
-
-\b Enhanced Send Errors to a File option.
-
-\b Added SSSE3, SSE4.1, SSE4.2, SSE5 support.
-
-\b Added a large number of additional instructions.
-
-\b Significant performance improvements.
-
-\b \c{-w+warning} and \c{-w-warning} can now be written as -Wwarning and
- -Wno-warning, respectively.  See \k{opt-w}.
-
-\b Add \c{-w+error} to treat warnings as errors.  See \k{opt-w}.
-
-\b Add \c{-w+all} and \c{-w-all} to enable or disable all suppressible
- warnings.  See \k{opt-w}.
-
-
-\H{cl-0.98.xx} NASM 0.98 Series
-
-The 0.98 series was the production versions of NASM from 1999 to 2007.
-
-
-\S{cl-0.98.39} Version 0.98.39
-
-\b fix buffer overflow
-
-\b fix outas86's \c{.bss} handling
-
-\b "make spotless" no longer deletes config.h.in.
-
-\b \c{%(el)if(n)idn} insensitivity to string quotes difference (#809300).
-
-\b (nasm.c)\c{__OUTPUT_FORMAT__} changed to string value instead of symbol.
-
-\S{cl-0.98.38} Version 0.98.38
-
-
-\b Add Makefile for 16-bit DOS binaries under OpenWatcom, and modify
-  \c{mkdep.pl} to be able to generate completely pathless dependencies, as
-  required by OpenWatcom wmake (it supports path searches, but not
-  explicit paths.)
-
-\b Fix the \c{STR} instruction.
-
-\b Fix the ELF output format, which was broken under certain
-  circumstances due to the addition of stabs support.
-
-\b Quick-fix Borland format debug-info for \c{-f obj}
-
-\b Fix for \c{%rep} with no arguments (#560568)
-
-\b Fix concatenation of preprocessor function call (#794686)
-
-\b Fix long label causes coredump (#677841)
-
-\b Use autoheader as well as autoconf to keep configure from generating
-  ridiculously long command lines.
-
-\b Make sure that all of the formats which support debugging output
-  actually will suppress debugging output when \c{-g} not specified.
-
-\S{cl-0.98.37} Version 0.98.37
-
-
-\b Paths given in \c{-I} switch searched for \c{incbin}-ed as
-  well as \c{%include}-ed files.
-
-\b Added stabs debugging for the ELF output format, patch from
-  Martin Wawro.
-
-\b Fix \c{output/outbin.c} to allow origin > 80000000h.
-
-\b Make \c{-U} switch work.
-
-\b Fix the use of relative offsets with explicit prefixes, e.g.
-\c{a32 loop foo}.
-
-\b Remove \c{backslash()}.
-
-\b Fix the \c{SMSW} and \c{SLDT} instructions.
-
-\b \c{-O2} and \c{-O3} are no longer aliases for \c{-O10} and \c{-O15}.
-If you mean the latter, please say so! :)
-
-\S{cl-0.98.36} Version 0.98.36
-
-
-\b Update rdoff - librarian/archiver - common rec - docs!
-
-\b Fix signed/unsigned problems.
-
-\b Fix \c{JMP FAR label} and \c{CALL FAR label}.
-
-\b Add new multisection support - map files - fix align bug
-
-\b Fix sysexit, movhps/movlps reg,reg bugs in insns.dat
-
-\b \c{Q} or \c{O} suffixes indicate octal
-
-\b Support Prescott new instructions (PNI).
-
-\b Cyrix \c{XSTORE} instruction.
-
-
-\S{cl-0.98.35} Version 0.98.35
-
-\b Fix build failure on 16-bit DOS (Makefile.bc3 workaround for compiler bug.)
-
-\b Fix dependencies and compiler warnings.
-
-\b Add "const" in a number of places.
-
-\b Add -X option to specify error reporting format (use -Xvc to
-  integrate with Microsoft Visual Studio.)
-
-\b Minor changes for code legibility.
-
-\b Drop use of tmpnam() in rdoff (security fix.)
-
-
-\S{cl-0.98.34} Version 0.98.34
-
-\b Correct additional address-size vs. operand-size confusions.
-
-\b Generate dependencies for all Makefiles automatically.
-
-\b Add support for unimplemented (but theoretically available)
-  registers such as tr0 and cr5.  Segment registers 6 and 7 are called
-  segr6 and segr7 for the operations which they can be represented.
-
-\b Correct some disassembler bugs related to redundant address-size prefixes.
-  Some work still remains in this area.
-
-\b Correctly generate an error for things like "SEG eax".
-
-\b Add the JMPE instruction, enabled by "CPU IA64".
-
-\b Correct compilation on newer gcc/glibc platforms.
-
-\b Issue an error on things like "jmp far eax".
-
-
-\S{cl-0.98.33} Version 0.98.33
-
-\b New __NASM_PATCHLEVEL__ and __NASM_VERSION_ID__ standard macros to
-  round out the version-query macros.  version.pl now understands
-  X.YYplWW or X.YY.ZZplWW as a version number, equivalent to
-  X.YY.ZZ.WW (or X.YY.0.WW, as appropriate).
-
-\b New keyword "strict" to disable the optimization of specific
-  operands.
-
-\b Fix the handing of size overrides with JMP instructions
-  (instructions such as "jmp dword foo".)
-
-\b Fix the handling of "ABSOLUTE label", where "label" points into a
-  relocatable segment.
-
-\b Fix OBJ output format with lots of externs.
-
-\b More documentation updates.
-
-\b Add -Ov option to get verbose information about optimizations.
-
-\b Undo a braindead change which broke \c{%elif} directives.
-
-\b Makefile updates.
-
-
-\S{cl-0.98.32} Version 0.98.32
-
-\b Fix NASM crashing when \c{%macro} directives were left unterminated.
-
-\b Lots of documentation updates.
-
-\b Complete rewrite of the PostScript/PDF documentation generator.
-
-\b The MS Visual C++ Makefile was updated and corrected.
-
-\b Recognize .rodata as a standard section name in ELF.
-
-\b Fix some obsolete Perl4-isms in Perl scripts.
-
-\b Fix configure.in to work with autoconf 2.5x.
-
-\b Fix a couple of "make cleaner" misses.
-
-\b Make the normal "./configure && make" work with Cygwin.
-
-
-\S{cl-0.98.31} Version 0.98.31
-
-\b Correctly build in a separate object directory again.
-
-\b Derive all references to the version number from the version file.
-
-\b New standard macros __NASM_SUBMINOR__ and __NASM_VER__ macros.
-
-\b Lots of Makefile updates and bug fixes.
-
-\b New \c{%ifmacro} directive to test for multiline macros.
-
-\b Documentation updates.
-
-\b Fixes for 16-bit OBJ format output.
-
-\b Changed the NASM environment variable to NASMENV.
-
-
-\S{cl-0.98.30} Version 0.98.30
-
-\b Changed doc files a lot: completely removed old READMExx and
-  Wishlist files, incorporating all information in CHANGES and TODO.
-
-\b I waited a long time to rename zoutieee.c to (original) outieee.c
-
-\b moved all output modules to output/ subdirectory.
-
-\b Added 'make strip' target to strip debug info from nasm & ndisasm.
-
-\b Added INSTALL file with installation instructions.
-
-\b Added -v option description to nasm man.
-
-\b Added dist makefile target to produce source distributions.
-
-\b 16-bit support for ELF output format (GNU extension, but useful.)
-
-
-\S{cl-0.98.28} Version 0.98.28
-
-\b Fastcooked this for Debian's Woody release:
-Frank applied the INCBIN bug patch to 0.98.25alt and called
-it 0.98.28 to not confuse poor little apt-get.
-
-
-\S{cl-0.98.26} Version 0.98.26
-
-\b Reorganised files even better from 0.98.25alt
-
-
-\S{cl-0.98.25alt} Version 0.98.25alt
-
-\b Prettified the source tree. Moved files to more reasonable places.
-
-\b Added findleak.pl script to misc/ directory.
-
-\b Attempted to fix doc.
-
-
-\S{cl-0.98.25} Version 0.98.25
-
-\b Line continuation character \c{\\}.
-
-\b Docs inadvertantly reverted - "dos packaging".
-
-
-\S{cl-0.98.24p1} Version 0.98.24p1
-
-\b FIXME: Someone, document this please.
-
-
-\S{cl-0.98.24} Version 0.98.24
-
-\b Documentation - Ndisasm doc added to Nasm.doc.
-
-
-\S{cl-0.98.23} Version 0.98.23
-
-\b Attempted to remove rdoff version1
-
-\b Lino Mastrodomenico's patches to preproc.c (%$$ bug?).
-
-
-\S{cl-0.98.22} Version 0.98.22
-
-\b Update rdoff2 - attempt to remove v1.
-
-
-\S{cl-0.98.21} Version 0.98.21
-
-\b Optimization fixes.
-
-
-\S{cl-0.98.20} Version 0.98.20
-
-\b Optimization fixes.
-
-
-\S{cl-0.98.19} Version 0.98.19
-
-\b H. J. Lu's patch back out.
-
-
-\S{cl-0.98.18} Version 0.98.18
-
-\b Added ".rdata" to "-f win32".
-
-
-\S{cl-0.98.17} Version 0.98.17
-
-\b H. J. Lu's "bogus elf" patch. (Red Hat problem?)
-
-
-\S{cl-0.98.16} Version 0.98.16
-
-\b Fix whitespace before "[section ..." bug.
-
-
-\S{cl-0.98.15} Version 0.98.15
-
-\b Rdoff changes (?).
-
-\b Fix fixes to memory leaks.
-
-
-\S{cl-0.98.14} Version 0.98.14
-
-\b Fix memory leaks.
-
-
-\S{cl-0.98.13} Version 0.98.13
-
-\b There was no 0.98.13
-
-
-\S{cl-0.98.12} Version 0.98.12
-
-\b Update optimization (new function of "-O1")
-
-\b Changes to test/bintest.asm (?).
-
-
-\S{cl-0.98.11} Version 0.98.11
-
-\b Optimization changes.
-
-\b Ndisasm fixed.
-
-
-\S{cl-0.98.10} Version 0.98.10
-
-\b There was no 0.98.10
-
-
-\S{cl-0.98.09} Version 0.98.09
-
-\b Add multiple sections support to "-f bin".
-
-\b Changed GLOBAL_TEMP_BASE in outelf.c from 6 to 15.
-
-\b Add "-v" as an alias to the "-r" switch.
-
-\b Remove "#ifdef" from Tasm compatibility options.
-
-\b Remove redundant size-overrides on "mov ds, ex", etc.
-
-\b Fixes to SSE2, other insns.dat (?).
-
-\b Enable uppercase "I" and "P" switches.
-
-\b Case insinsitive "seg" and "wrt".
-
-\b Update install.sh (?).
-
-\b Allocate tokens in blocks.
-
-\b Improve "invalid effective address" messages.
-
-
-\S{cl-0.98.08} Version 0.98.08
-
-\b Add "\c{%strlen}" and "\c{%substr}" macro operators
-
-\b Fixed broken c16.mac.
-
-\b Unterminated string error reported.
-
-\b Fixed bugs as per 0.98bf
-
-
-\S{cl-0.98.09b with John Coffman patches released 28-Oct-2001} Version 0.98.09b with John Coffman patches released 28-Oct-2001
-
-Changes from 0.98.07 release to 98.09b as of 28-Oct-2001
-
-\b More closely compatible with 0.98 when -O0 is implied
-or specified.  Not strictly identical, since backward
-branches in range of short offsets are recognized, and signed
-byte values with no explicit size specification will be
-assembled as a single byte.
-
-\b More forgiving with the PUSH instruction.  0.98 requires
-a size to be specified always.  0.98.09b will imply the size
-from the current BITS setting (16 or 32).
-
-\b Changed definition of the optimization flag:
-
-        -O0     strict two-pass assembly, JMP and Jcc are
-                handled more like 0.98, except that back-
-                ward JMPs are short, if possible.
-
-        -O1     strict two-pass assembly, but forward
-                branches are assembled with code guaranteed
-                to reach; may produce larger code than
-                -O0, but will produce successful assembly
-                more often if branch offset sizes are not
-                specified.
-
-        -O2     multi-pass optimization, minimize branch
-                offsets; also will minimize signed immed-
-                iate bytes, overriding size specification.
-
-        -O3     like -O2, but more passes taken, if needed
-
-
-\S{cl-0.98.07 released 01/28/01} Version 0.98.07 released 01/28/01
-
-\b       Added Stepane Denis' SSE2 instructions to a *working*
-        version of the code - some earlier versions were based on
-        broken code - sorry 'bout that. version "0.98.07"
-
-
-01/28/01
-
-
-\b       Cosmetic modifications to nasm.c, nasm.h,
-        AUTHORS, MODIFIED
-
-
-\S{cl-0.98.06f released 01/18/01} Version 0.98.06f released 01/18/01
-
-
-\b       - Add "metalbrain"s jecxz bug fix in insns.dat
-        - alter nasmdoc.src to match - version "0.98.06f"
-
-
-\S{cl-0.98.06e released 01/09/01} Version 0.98.06e released 01/09/01
-
-
-\b       Removed the "outforms.h" file - it appears to be
-        someone's old backup of "outform.h". version "0.98.06e"
-
-01/09/01
-
-\b fbk - finally added the fix for the "multiple %includes bug",
-        known since 7/27/99 - reported originally (?) and sent to
-        us by Austin Lunnen - he reports that John Fine had a fix
-        within the day. Here it is...
-
-\b Nelson Rush resigns from the group. Big thanks to Nelson for
-  his leadership and enthusiasm in getting these changes
-  incorporated into Nasm!
-
-\b fbk - [list +], [list -] directives - ineptly implemented, should
-        be re-written or removed, perhaps.
-
-\b Brian Raiter / fbk - "elfso bug" fix - applied to aoutb format
-                       as well - testing might be desirable...
-
-08/07/00
-
-\b James Seter - -postfix, -prefix command line switches.
-
-\b Yuri Zaporozhets - rdoff utility changes.
-
-
-\S{cl-0.98p1} Version 0.98p1
-
-\b GAS-like palign (Panos Minos)
-
-\b FIXME: Someone, fill this in with details
-
-
-\S{cl-0.98bf (bug-fixed)} Version 0.98bf (bug-fixed)
-
-\b Fixed - elf and aoutb bug - shared libraries
-        - multiple "%include" bug in "-f obj"
-        - jcxz, jecxz bug
-        - unrecognized option bug in ndisasm
-
-\S{cl-0.98.03 with John Coffman's changes released 27-Jul-2000} Version 0.98.03 with John Coffman's changes released 27-Jul-2000
-
-\b Added signed byte optimizations for the 0x81/0x83 class
-of instructions: ADC, ADD, AND, CMP, OR, SBB, SUB, XOR:
-when used as 'ADD reg16,imm' or 'ADD reg32,imm.'  Also
-optimization of signed byte form of 'PUSH imm' and 'IMUL
-reg,imm'/'IMUL reg,reg,imm.'  No size specification is needed.
-
-\b Added multi-pass JMP and Jcc offset optimization.  Offsets
-on forward references will preferentially use the short form,
-without the need to code a specific size (short or near) for
-the branch.  Added instructions for 'Jcc label' to use the
-form 'Jnotcc $+3/JMP label', in cases where a short offset
-is out of bounds.  If compiling for a 386 or higher CPU, then
-the 386 form of Jcc will be used instead.
-
-This feature is controlled by a new command-line switch: "O",
-(upper case letter O).  "-O0" reverts the assembler to no
-extra optimization passes, "-O1" allows up to 5 extra passes,
-and "-O2"(default), allows up to 10 extra optimization passes.
-
-\b Added a new directive:  'cpu XXX', where XXX is any of:
-8086, 186, 286, 386, 486, 586, pentium, 686, PPro, P2, P3 or
-Katmai.  All are case insensitive.  All instructions will
-be selected only if they apply to the selected cpu or lower.
-Corrected a couple of bugs in cpu-dependence in 'insns.dat'.
-
-\b Added to 'standard.mac', the "use16" and "use32" forms of
-the "bits 16/32" directive. This is nothing new, just conforms
-to a lot of other assemblers. (minor)
-
-\b Changed label allocation from 320/32 (10000 labels @ 200K+)
-to 32/37 (1000 labels); makes running under DOS much easier.
-Since additional label space is allocated dynamically, this
-should have no effect on large programs with lots of labels.
-The 37 is a prime, believed to be better for hashing. (minor)
-
-
-\S{cl-0.98.03} Version 0.98.03
-
-"Integrated patchfile 0.98-0.98.01.  I call this version 0.98.03 for
-historical reasons: 0.98.02 was trashed." --John Coffman
-<johninsd@san.rr.com>, 27-Jul-2000
-
-\b Kendall Bennett's SciTech MGL changes
-
-\b Note that you must define "TASM_COMPAT" at compile-time
-to get the Tasm Ideal Mode compatibility.
-
-\b All changes can be compiled in and out using the TASM_COMPAT macros,
-and when compiled without TASM_COMPAT defined we get the exact same
-binary as the unmodified 0.98 sources.
-
-\b standard.mac, macros.c: Added macros to ignore TASM directives before
-first include
-
-\b nasm.h: Added extern declaration for tasm_compatible_mode
-
-\b nasm.c: Added global variable tasm_compatible_mode
-
-\b Added command line switch for TASM compatible mode (-t)
-
-\b Changed version command line to reflect when compiled with TASM additions
-
-\b Added response file processing to allow all arguments on a single
-line (response file is @resp rather than -@resp for NASM format).
-
-\b labels.c: Changes islocal() macro to support TASM style @@local labels.
-
-\b Added islocalchar() macro to support TASM style @@local labels.
-
-\b parser.c: Added support for TASM style memory references (ie: mov
-[DWORD eax],10 rather than the NASM style mov DWORD [eax],10).
-
-\b preproc.c: Added new directives, \c{%arg}, \c{%local}, \c{%stacksize} to directives
-table
-
-\b Added support for TASM style directives without a leading % symbol.
-
-\b Integrated a block of changes from Andrew Zabolotny <bit@eltech.ru>:
-
-\b A new keyword \c{%xdefine} and its case-insensitive counterpart \c{%ixdefine}.
-They work almost the same way as \c{%define} and \c{%idefine} but expand
-the definition immediately, not on the invocation. Something like a cross
-between \c{%define} and \c{%assign}. The "x" suffix stands for "eXpand", so
-"xdefine" can be deciphered as "expand-and-define". Thus you can do
-things like this:
-
-\c      %assign ofs     0
-\c
-\c      %macro  arg     1
-\c              %xdefine %1 dword [esp+ofs]
-\c              %assign ofs ofs+4
-\c      %endmacro
-
-\b Changed the place where the expansion of %$name macros are expanded.
-Now they are converted into ..@ctxnum.name form when detokenizing, so
-there are no quirks as before when using %$name arguments to macros,
-in macros etc. For example:
-
-\c      %macro  abc     1
-\c              %define %1 hello
-\c      %endm
-\c
-\c      abc     %$here
-\c      %$here
-
-    Now last line will be expanded into "hello" as expected. This also allows
-    for lots of goodies, a good example are extended "proc" macros included
-    in this archive.
-
-\b Added a check for "cstk" in smacro_defined() before calling get_ctx() -
-    this allows for things like:
-
-\c      %ifdef %$abc
-\c      %endif
-
-    to work without warnings even in no context.
-
-\b Added a check for "cstk" in %if*ctx and %elif*ctx directives -
-    this allows to use \c{%ifctx} without excessive warnings. If there is
-    no active context, \c{%ifctx} goes through "false" branch.
-
-\b Removed "user error: " prefix with \c{%error} directive: it just clobbers the
-    output and has absolutely no functionality. Besides, this allows to write
-    macros that does not differ from built-in functions in any way.
-
-\b Added expansion of string that is output by \c{%error} directive. Now you
-    can do things like:
-
-\c      %define hello(x) Hello, x!
-\c
-\c      %define %$name andy
-\c      %error "hello(%$name)"
-
-    Same happened with \c{%include} directive.
-
-\b Now all directives that expect an identifier will try to expand and
-    concatenate everything without whitespaces in between before usage.
-    For example, with "unfixed" nasm the commands
-
-\c      %define %$abc hello
-\c      %define __%$abc goodbye
-\c      __%$abc
-
-    would produce "incorrect" output: last line will expand to
-
-\c      hello goodbyehello
-
-    Not quite what you expected, eh? :-) The answer is that preprocessor
-    treats the \c{%define} construct as if it would be
-
-\c      %define __ %$abc goodbye
-
-    (note the white space between __ and %$abc). After my "fix" it
-    will "correctly" expand into
-
-\c      goodbye
-
-    as expected. Note that I use quotes around words "correct", "incorrect"
-    etc because this is rather a feature not a bug; however current behaviour
-    is more logical (and allows more advanced macro usage :-).
-
-    Same change was applied to:
-        \c{%push},\c{%macro},\c{%imacro},\c{%define},\c{%idefine},\c{%xdefine},\c{%ixdefine},
-        \c{%assign},\c{%iassign},\c{%undef}
-
-\b A new directive [WARNING {+|-}warning-id] have been added. It works only
-    if the assembly phase is enabled (i.e. it doesn't work with nasm -e).
-
-\b A new warning type: macro-selfref. By default this warning is disabled;
-    when enabled NASM warns when a macro self-references itself; for example
-    the following source:
-
-\c        [WARNING macro-selfref]
-\c
-\c        %macro          push    1-*
-\c                %rep    %0
-\c                        push    %1
-\c                        %rotate 1
-\c                %endrep
-\c        %endmacro
-\c
-\c                        push    eax,ebx,ecx
-
-    will produce a warning, but if we remove the first line we won't see it
-    anymore (which is The Right Thing To Do {tm} IMHO since C preprocessor
-    eats such constructs without warnings at all).
-
-\b Added a "error" routine to preprocessor which always will set ERR_PASS1
-    bit in severity_code. This removes annoying repeated errors on first
-    and second passes from preprocessor.
-
-\b Added the %+ operator in single-line macros for concatenating two
-    identifiers. Usage example:
-
-\c        %define _myfunc _otherfunc
-\c        %define cextern(x) _ %+ x
-\c        cextern (myfunc)
-
-    After first expansion, third line will become "_myfunc". After this
-    expansion is performed again so it becomes "_otherunc".
-
-\b Now if preprocessor is in a non-emitting state, no warning or error
-    will be emitted. Example:
-
-\c        %if 1
-\c                mov     eax,ebx
-\c        %else
-\c                put anything you want between these two brackets,
-\c                even macro-parameter references %1 or local
-\c                labels %$zz or macro-local labels %%zz - no
-\c                warning will be emitted.
-\c        %endif
-
-\b Context-local variables on expansion as a last resort are looked up
-    in outer contexts. For example, the following piece:
-
-\c        %push   outer
-\c        %define %$a [esp]
-\c
-\c                %push   inner
-\c                %$a
-\c                %pop
-\c        %pop
-
-    will expand correctly the fourth line to [esp]; if we'll define another
-    %$a inside the "inner" context, it will take precedence over outer
-    definition. However, this modification has been applied only to
-    expand_smacro and not to smacro_define: as a consequence expansion
-    looks in outer contexts, but \c{%ifdef} won't look in outer contexts.
-
-    This behaviour is needed because we don't want nested contexts to
-    act on already defined local macros. Example:
-
-\c        %define %$arg1  [esp+4]
-\c        test    eax,eax
-\c        if      nz
-\c                mov     eax,%$arg1
-\c        endif
-
-    In this example the "if" mmacro enters into the "if" context, so %$arg1
-    is not valid anymore inside "if". Of course it could be worked around
-    by using explicitely %$$arg1 but this is ugly IMHO.
-
-\b Fixed memory leak in \c{%undef}. The origline wasn't freed before
-    exiting on success.
-
-\b Fixed trap in preprocessor when line expanded to empty set of tokens.
-    This happens, for example, in the following case:
-
-\c        #define SOMETHING
-\c        SOMETHING
-
-
-\S{cl-0.98} Version 0.98
-
-All changes since NASM 0.98p3 have been produced by H. Peter Anvin <hpa@zytor.com>.
-
-\b The documentation comment delimiter is \# not #.
-
-\b Allow EQU definitions to refer to external labels; reported by
-  Pedro Gimeno.
-
-\b Re-enable support for RDOFF v1; reported by Pedro Gimeno.
-
-\b Updated License file per OK from Simon and Julian.
-
-
-\S{cl-0.98p9} Version 0.98p9
-
-\b Update documentation (although the instruction set reference will
-  have to wait; I don't want to hold up the 0.98 release for it.)
-
-\b Verified that the NASM implementation of the PEXTRW and PMOVMSKB
-  instructions is correct.  The encoding differs from what the Intel
-  manuals document, but the Pentium III behaviour matches NASM, not
-  the Intel manuals.
-
-\b Fix handling of implicit sizes in PSHUFW and PINSRW, reported by
-  Stefan Hoffmeister.
-
-\b Resurrect the -s option, which was removed when changing the
-  diagnostic output to stdout.
-
-
-\S{cl-0.98p8} Version 0.98p8
-
-\b Fix for "DB" when NASM is running on a bigendian machine.
-
-\b Invoke insns.pl once for each output script, making Makefile.in
-  legal for "make -j".
-
-\b Improve the Unix configure-based makefiles to make package
-  creation easier.
-
-\b Included an RPM .spec file for building RPM (RedHat Package Manager)
-  packages on Linux or Unix systems.
-
-\b Fix Makefile dependency problems.
-
-\b Change src/rdsrc.pl to include sectioning information in info
-  output; required for install-info to work.
-
-\b Updated the RDOFF distribution to version 2 from Jules; minor
-  massaging to make it compile in my environment.
-
-\b Split doc files that can be built by anyone with a Perl interpreter off
-  into a separate archive.
-
-\b "Dress rehearsal" release!
-
-
-\S{cl-0.98p7} Version 0.98p7
-
-\b Fixed opcodes with a third byte-sized immediate argument to not
-  complain if given "byte" on the immediate.
-
-\b Allow \c{%undef} to remove single-line macros with arguments.  This
-  matches the behaviour of #undef in the C preprocessor.
-
-\b Allow -d, -u, -i and -p to be specified as -D, -U, -I and -P for
-  compatibility with most C compilers and preprocessors.  This allows
-  Makefile options to be shared between cc and nasm, for example.
-
-\b Minor cleanups.
-
-\b Went through the list of Katmai instructions and hopefully fixed the
-  (rather few) mistakes in it.
-
-\b (Hopefully) fixed a number of disassembler bugs related to ambiguous
-  instructions (disambiguated by -p) and SSE instructions with REP.
-
-\b Fix for bug reported by Mark Junger: "call dword 0x12345678" should
-  work and may add an OSP (affected CALL, JMP, Jcc).
-
-\b Fix for environments when "stderr" isn't a compile-time constant.
-
-
-\S{cl-0.98p6} Version 0.98p6
-
-
-\b Took officially over coordination of the 0.98 release; so drop
-  the p3.x notation. Skipped p4 and p5 to avoid confusion with John
-  Fine's J4 and J5 releases.
-
-\b Update the documentation; however, it still doesn't include
-  documentation for the various new instructions.  I somehow wonder if
-  it makes sense to have an instruction set reference in the assembler
-  manual when Intel et al have PDF versions of their manuals online.
-
-\b Recognize "idt" or "centaur" for the -p option to ndisasm.
-
-\b Changed error messages back to stderr where they belong, but add an
-  -E option to redirect them elsewhere (the DOS shell cannot redirect
-  stderr.)
-
-\b -M option to generate Makefile dependencies (based on code from Alex
-  Verstak.)
-
-\b \c{%undef} preprocessor directive, and -u option, that undefines a
-  single-line macro.
-
-\b OS/2 Makefile (Mkfiles/Makefile.os2) for Borland under OS/2; from
-  Chuck Crayne.
-
-\b Various minor bugfixes (reported by):
-  - Dangling \c{%s} in preproc.c (Martin Junker)
-
-\b THERE ARE KNOWN BUGS IN SSE AND THE OTHER KATMAI INSTRUCTIONS.  I am
-  on a trip and didn't bring the Katmai instruction reference, so I
-  can't work on them right now.
-
-\b Updated the License file per agreement with Simon and Jules to
-  include a GPL distribution clause.
-
-
-\S{cl-0.98p3.7} Version 0.98p3.7
-
-\b (Hopefully) fixed the canned Makefiles to include the outrdf2 and
-  zoutieee modules.
-
-\b Renamed changes.asm to changed.asm.
-
-
-\S{cl-0.98p3.6} Version 0.98p3.6
-
-\b Fixed a bunch of instructions that were added in 0.98p3.5 which had
-  memory operands, and the address-size prefix was missing from the
-  instruction pattern.
-
-
-\S{cl-0.98p3.5} Version 0.98p3.5
-
-\b Merged in changes from John S. Fine's 0.98-J5 release.  John's based
-  0.98-J5 on my 0.98p3.3 release; this merges the changes.
-
-\b Expanded the instructions flag field to a long so we can fit more
-  flags; mark SSE (KNI) and AMD or Katmai-specific instructions as
-  such.
-
-\b Fix the "PRIV" flag on a bunch of instructions, and create new
-  "PROT" flag for protected-mode-only instructions (orthogonal to if
-  the instruction is privileged!) and new "SMM" flag for SMM-only
-  instructions.
-
-\b Added AMD-only SYSCALL and SYSRET instructions.
-
-\b Make SSE actually work, and add new Katmai MMX instructions.
-
-\b Added a -p (preferred vendor) option to ndisasm so that it can
-  distinguish e.g. Cyrix opcodes also used in SSE.  For example:
-
-\c      ndisasm -p cyrix aliased.bin
-\c      00000000  670F514310        paddsiw mm0,[ebx+0x10]
-\c      00000005  670F514320        paddsiw mm0,[ebx+0x20]
-\c      ndisasm -p intel aliased.bin
-\c      00000000  670F514310        sqrtps xmm0,[ebx+0x10]
-\c      00000005  670F514320        sqrtps xmm0,[ebx+0x20]
-
-\b Added a bunch of Cyrix-specific instructions.
-
-
-\S{cl-0.98p3.4} Version 0.98p3.4
-
-\b Made at least an attempt to modify all the additional Makefiles (in
-  the Mkfiles directory).  I can't test it, but this was the best I
-  could do.
-
-\b DOS DJGPP+"Opus Make" Makefile from John S. Fine.
-
-\b changes.asm changes from John S. Fine.
-
-
-\S{cl-0.98p3.3} Version 0.98p3.3
-
-\b Patch from Conan Brink to allow nesting of \c{%rep} directives.
-
-\b If we're going to allow INT01 as an alias for INT1/ICEBP (one of
-  Jules 0.98p3 changes), then we should allow INT03 as an alias for INT3
-  as well.
-
-\b Updated changes.asm to include the latest changes.
-
-\b Tried to clean up the <CR>s that had snuck in from a DOS/Windows
-  environment into my Unix environment, and try to make sure than
-  DOS/Windows users get them back.
-
-\b We would silently generate broken tools if insns.dat wasn't sorted
-  properly.  Change insns.pl so that the order doesn't matter.
-
-\b Fix bug in insns.pl (introduced by me) which would cause conditional
-  instructions to have an extra "cc" in disassembly, e.g. "jnz"
-  disassembled as "jccnz".
-
-
-\S{cl-0.98p3.2} Version 0.98p3.2
-
-\b Merged in John S. Fine's changes from his 0.98-J4 prerelease; see
-  http://www.csoft.net/cz/johnfine/
-
-\b Changed previous "spotless" Makefile target (appropriate for distribution)
-  to "distclean", and added "cleaner" target which is same as "clean"
-  except deletes files generated by Perl scripts; "spotless" is union.
-
-\b Removed BASIC programs from distribution.  Get a Perl interpreter
-  instead (see below.)
-
-\b Calling this "pre-release 3.2" rather than "p3-hpa2" because of
-  John's contributions.
-
-\b Actually link in the IEEE output format (zoutieee.c); fix a bunch of
-  compiler warnings in that file.  Note I don't know what IEEE output
-  is supposed to look like, so these changes were made "blind".
-
-
-\S{cl-0.98p3-hpa} Version 0.98p3-hpa
-
-\b Merged nasm098p3.zip with nasm-0.97.tar.gz to create a fully
-  buildable version for Unix systems (Makefile.in updates, etc.)
-
-\b Changed insns.pl to create the instruction tables in nasm.h and
-  names.c, so that a new instruction can be added by adding it *only*
-  to insns.dat.
-
-\b Added the following new instructions: SYSENTER, SYSEXIT, FXSAVE,
-  FXRSTOR, UD1, UD2 (the latter two are two opcodes that Intel
-  guarantee will never be used; one of them is documented as UD2 in
-  Intel documentation, the other one just as "Undefined Opcode" --
-  calling it UD1 seemed to make sense.)
-
-\b MAX_SYMBOL was defined to be 9, but LOADALL286 and LOADALL386 are 10
-  characters long.  Now MAX_SYMBOL is derived from insns.dat.
-
-\b A note on the BASIC programs included: forget them.  insns.bas is
-  already out of date.  Get yourself a Perl interpreter for your
-  platform of choice at
-  \W{http://www.cpan.org/ports/index.html}{http://www.cpan.org/ports/index.html}.
-
-
-\S{cl-0.98p3} Version 0.98 pre-release 3
-
-\b added response file support, improved command line handling, new layout
-help screen
-
-\b fixed limit checking bug, 'OUT byte nn, reg' bug, and a couple of rdoff
-related bugs, updated Wishlist; 0.98 Prerelease 3.
-
-
-\S{cl-0.98p2} Version 0.98 pre-release 2
-
-\b fixed bug in outcoff.c to do with truncating section names longer
-than 8 characters, referencing beyond end of string; 0.98 pre-release 2
-
-
-\S{cl-0.98p1} Version 0.98 pre-release 1
-
-\b Fixed a bug whereby STRUC didn't work at all in RDF.
-
-\b Fixed a problem with group specification in PUBDEFs in OBJ.
-
-\b Improved ease of adding new output formats. Contribution due to
-Fox Cutter.
-
-\b Fixed a bug in relocations in the `bin' format: was showing up when
-a relocatable reference crossed an 8192-byte boundary in any output
-section.
-
-\b Fixed a bug in local labels: local-label lookups were inconsistent
-between passes one and two if an EQU occurred between the definition
-of a global label and the subsequent use of a local label local to
-that global.
-
-\b Fixed a seg-fault in the preprocessor (again) which happened when
-you use a blank line as the first line of a multi-line macro
-definition and then defined a label on the same line as a call to
-that macro.
-
-\b Fixed a stale-pointer bug in the handling of the NASM environment
-variable. Thanks to Thomas McWilliams.
-
-\b ELF had a hard limit on the number of sections which caused
-segfaults when transgressed. Fixed.
-
-\b Added ability for ndisasm to read from stdin by using `-' as the
-filename.
-
-\b ndisasm wasn't outputting the TO keyword. Fixed.
-
-\b Fixed error cascade on bogus expression in \c{%if} - an error in
-evaluation was causing the entire \c{%if} to be discarded, thus creating
-trouble later when the \c{%else} or \c{%endif} was encountered.
-
-\b Forward reference tracking was instruction-granular not operand-
-granular, which was causing 286-specific code to be generated
-needlessly on code of the form `shr word [forwardref],1'. Thanks to
-Jim Hague for sending a patch.
-
-\b All messages now appear on stdout, as sending them to stderr serves
-no useful purpose other than to make redirection difficult.
-
-\b Fixed the problem with EQUs pointing to an external symbol - this
-now generates an error message.
-
-\b Allowed multiple size prefixes to an operand, of which only the first
-is taken into account.
-
-\b Incorporated John Fine's changes, including fixes of a large number
-of preprocessor bugs, some small problems in OBJ, and a reworking of
-label handling to define labels before their line is assembled, rather
-than after.
-
-\b Reformatted a lot of the source code to be more readable. Included
-'coding.txt' as a guideline for how to format code for contributors.
-
-\b Stopped nested \c{%reps} causing a panic - they now cause a slightly more
-friendly error message instead.
-
-\b Fixed floating point constant problems (patch by Pedro Gimeno)
-
-\b Fixed the return value of insn_size() not being checked for -1, indicating
-an error.
-
-\b Incorporated 3Dnow! instructions.
-
-\b Fixed the 'mov eax, eax + ebx' bug.
-
-\b Fixed the GLOBAL EQU bug in ELF. Released developers release 3.
-
-\b Incorporated John Fine's command line parsing changes
-
-\b Incorporated David Lindauer's OMF debug support
-
-\b Made changes for LCC 4.0 support (\c{__NASM_CDecl__}, removed register size
-specification warning when sizes agree).
-
-
-\H{cl-0.9x} NASM 0.9 Series
-
-Revisions before 0.98.
-
-
-\S{cl-0.97} Version 0.97 released December 1997
-
-\b This was entirely a bug-fix release to 0.96, which seems to have got
-cursed. Silly me.
-
-\b Fixed stupid mistake in OBJ which caused `MOV EAX,<constant>' to
-fail. Caused by an error in the `MOV EAX,<segment>' support.
-
-\b ndisasm hung at EOF when compiled with lcc on Linux because lcc on
-Linux somehow breaks feof(). ndisasm now does not rely on feof().
-
-\b A heading in the documentation was missing due to a markup error in
-the indexing. Fixed.
-
-\b Fixed failure to update all pointers on realloc() within extended-
-operand code in parser.c. Was causing wrong behaviour and seg faults
-on lines such as `dd 0.0,0.0,0.0,0.0,...'
-
-\b Fixed a subtle preprocessor bug whereby invoking one multi-line
-macro on the first line of the expansion of another, when the second
-had been invoked with a label defined before it, didn't expand the
-inner macro.
-
-\b Added internal.doc back in to the distribution archives - it was
-missing in 0.96 *blush*
-
-\b Fixed bug causing 0.96 to be unable to assemble its own test files,
-specifically objtest.asm. *blush again*
-
-\b Fixed seg-faults and bogus error messages caused by mismatching
-\c{%rep} and \c{%endrep} within multi-line macro definitions.
-
-\b Fixed a problem with buffer overrun in OBJ, which was causing
-corruption at ends of long PUBDEF records.
-
-\b Separated DOS archives into main-program and documentation to reduce
-download size.
-
-
-\S{cl-0.96} Version 0.96 released November 1997
-
-\b Fixed a bug whereby, if `nasm sourcefile' would cause a filename
-collision warning and put output into `nasm.out', then `nasm
-sourcefile -o outputfile' still gave the warning even though the
-`-o' was honoured.
-Fixed name pollution under Digital UNIX: one of its header files
-defined R_SP, which broke the enum in nasm.h.
-
-\b Fixed minor instruction table problems: FUCOM and FUCOMP didn't have
-two-operand forms; NDISASM didn't recognise the longer register
-forms of PUSH and POP (eg FF F3 for PUSH BX); TEST mem,imm32 was
-flagged as undocumented; the 32-bit forms of CMOV had 16-bit operand
-size prefixes; `AAD imm' and `AAM imm' are no longer flagged as
-undocumented because the Intel Architecture reference documents
-them.
-
-\b Fixed a problem with the local-label mechanism, whereby strange
-types of symbol (EQUs, auto-defined OBJ segment base symbols)
-interfered with the `previous global label' value and screwed up
-local labels.
-
-\b Fixed a bug whereby the stub preprocessor didn't communicate with
-the listing file generator, so that the -a and -l options in
-conjunction would produce a useless listing file.
-
-\b Merged `os2' object file format back into `obj', after discovering
-that `obj' _also_ shouldn't have a link pass separator in a module
-containing a non-trivial MODEND. Flat segments are now declared
-using the FLAT attribute. `os2' is no longer a valid object format
-name: use `obj'.
-
-\b Removed the fixed-size temporary storage in the evaluator. Very very
-long expressions (like `mov ax,1+1+1+1+...' for two hundred 1s or
-so) should now no longer crash NASM.
-
-\b Fixed a bug involving segfaults on disassembly of MMX instructions,
-by changing the meaning of one of the operand-type flags in nasm.h.
-This may cause other apparently unrelated MMX problems; it needs to
-be tested thoroughly.
-
-\b Fixed some buffer overrun problems with large OBJ output files.
-Thanks to DJ Delorie for the bug report and fix.
-
-\b Made preprocess-only mode actually listen to the \c{%line} markers as it
-prints them, so that it can report errors more sanely.
-
-\b Re-designed the evaluator to keep more sensible track of expressions
-involving forward references: can now cope with previously-nightmare
-situations such as:
-
-\c   mov ax,foo | bar
-\c   foo equ 1
-\c   bar equ 2
-
-\b Added the ALIGN and ALIGNB standard macros.
-
-\b Added PIC support in ELF: use of WRT to obtain the four extra
-relocation types needed.
-
-\b Added the ability for output file formats to define their own
-extensions to the GLOBAL, COMMON and EXTERN directives.
-
-\b Implemented common-variable alignment, and global-symbol type and
-size declarations, in ELF.
-
-\b Implemented NEAR and FAR keywords for common variables, plus
-far-common element size specification, in OBJ.
-
-\b Added a feature whereby EXTERNs and COMMONs in OBJ can be given a
-default WRT specification (either a segment or a group).
-
-\b Transformed the Unix NASM archive into an auto-configuring package.
-
-\b Added a sanity-check for people applying SEG to things which are
-already segment bases: this previously went unnoticed by the SEG
-processing and caused OBJ-driver panics later.
-
-\b Added the ability, in OBJ format, to deal with `MOV EAX,<segment>'
-type references: OBJ doesn't directly support dword-size segment
-base fixups, but as long as the low two bytes of the constant term
-are zero, a word-size fixup can be generated instead and it will
-work.
-
-\b Added the ability to specify sections' alignment requirements in
-Win32 object files and pure binary files.
-
-\b Added preprocess-time expression evaluation: the \c{%assign} (and
-\c{%iassign}) directive and the bare \c{%if} (and \c{%elif}) conditional. Added
-relational operators to the evaluator, for use only in \c{%if}
-constructs: the standard relationals = < > <= >= <> (and C-like
-synonyms == and !=) plus low-precedence logical operators &&, ^^ and
-||.
-
-\b Added a preprocessor repeat construct: \c{%rep} / \c{%exitrep} / \c{%endrep}.
-
-\b Added the __FILE__ and __LINE__ standard macros.
-
-\b Added a sanity check for number constants being greater than
-0xFFFFFFFF. The warning can be disabled.
-
-\b Added the %0 token whereby a variadic multi-line macro can tell how
-many parameters it's been given in a specific invocation.
-
-\b Added \c{%rotate}, allowing multi-line macro parameters to be cycled.
-
-\b Added the `*' option for the maximum parameter count on multi-line
-macros, allowing them to take arbitrarily many parameters.
-
-\b Added the ability for the user-level forms of EXTERN, GLOBAL and
-COMMON to take more than one argument.
-
-\b Added the IMPORT and EXPORT directives in OBJ format, to deal with
-Windows DLLs.
-
-\b Added some more preprocessor \c{%if} constructs: \c{%ifidn} / \c{%ifidni} (exact
-textual identity), and \c{%ifid} / \c{%ifnum} / \c{%ifstr} (token type testing).
-
-\b Added the ability to distinguish SHL AX,1 (the 8086 version) from
-SHL AX,BYTE 1 (the 286-and-upwards version whose constant happens to
-be 1).
-
-\b Added NetBSD/FreeBSD/OpenBSD's variant of a.out format, complete
-with PIC shared library features.
-
-\b Changed NASM's idiosyncratic handling of FCLEX, FDISI, FENI, FINIT,
-FSAVE, FSTCW, FSTENV, and FSTSW to bring it into line with the
-otherwise accepted standard. The previous behaviour, though it was a
-deliberate feature, was a deliberate feature based on a
-misunderstanding. Apologies for the inconvenience.
-
-\b Improved the flexibility of ABSOLUTE: you can now give it an
-expression rather than being restricted to a constant, and it can
-take relocatable arguments as well.
-
-\b Added the ability for a variable to be declared as EXTERN multiple
-times, and the subsequent definitions are just ignored.
-
-\b We now allow instruction prefixes (CS, DS, LOCK, REPZ etc) to be
-alone on a line (without a following instruction).
-
-\b Improved sanity checks on whether the arguments to EXTERN, GLOBAL
-and COMMON are valid identifiers.
-
-\b Added misc/exebin.mac to allow direct generation of .EXE files by
-hacking up an EXE header using DB and DW; also added test/binexe.asm
-to demonstrate the use of this. Thanks to Yann Guidon for
-contributing the EXE header code.
-
-\b ndisasm forgot to check whether the input file had been successfully
-opened. Now it does. Doh!
-
-\b Added the Cyrix extensions to the MMX instruction set.
-
-\b Added a hinting mechanism to allow [EAX+EBX] and [EBX+EAX] to be
-assembled differently. This is important since [ESI+EBP] and
-[EBP+ESI] have different default base segment registers.
-
-\b Added support for the PharLap OMF extension for 4096-byte segment
-alignment.
-
-
-\S{cl-0.95 released July 1997} Version 0.95 released July 1997
-
-\b Fixed yet another ELF bug. This one manifested if the user relied on
-the default segment, and attempted to define global symbols without
-first explicitly declaring the target segment.
-
-\b Added makefiles (for NASM and the RDF tools) to build Win32 console
-apps under Symantec C++. Donated by Mark Junker.
-
-\b Added `macros.bas' and `insns.bas', QBasic versions of the Perl
-scripts that convert `standard.mac' to `macros.c' and convert
-`insns.dat' to `insnsa.c' and `insnsd.c'. Also thanks to Mark
-Junker.
-
-\b Changed the diassembled forms of the conditional instructions so
-that JB is now emitted as JC, and other similar changes. Suggested
-list by Ulrich Doewich.
-
-\b Added `@' to the list of valid characters to begin an identifier
-with.
-
-\b Documentary changes, notably the addition of the `Common Problems'
-section in nasm.doc.
-
-\b Fixed a bug relating to 32-bit PC-relative fixups in OBJ.
-
-\b Fixed a bug in perm_copy() in labels.c which was causing exceptions
-in cleanup_labels() on some systems.
-
-\b Positivity sanity check in TIMES argument changed from a warning to
-an error following a further complaint.
-
-\b Changed the acceptable limits on byte and word operands to allow
-things like `~10111001b' to work.
-
-\b Fixed a major problem in the preprocessor which caused seg-faults if
-macro definitions contained blank lines or comment-only lines.
-
-\b Fixed inadequate error checking on the commas separating the
-arguments to `db', `dw' etc.
-
-\b Fixed a crippling bug in the handling of macros with operand counts
-defined with a `+' modifier.
-
-\b Fixed a bug whereby object file formats which stored the input file
-name in the output file (such as OBJ and COFF) weren't doing so
-correctly when the output file name was specified on the command
-line.
-
-\b Removed [INC] and [INCLUDE] support for good, since they were
-obsolete anyway.
-
-\b Fixed a bug in OBJ which caused all fixups to be output in 16-bit
-(old-format) FIXUPP records, rather than putting the 32-bit ones in
-FIXUPP32 (new-format) records.
-
-\b Added, tentatively, OS/2 object file support (as a minor variant on
-OBJ).
-
-\b Updates to Fox Cutter's Borland C makefile, Makefile.bc2.
-
-\b Removed a spurious second fclose() on the output file.
-
-\b Added the `-s' command line option to redirect all messages which
-would go to stderr (errors, help text) to stdout instead.
-
-\b Added the `-w' command line option to selectively suppress some
-classes of assembly warning messages.
-
-\b Added the `-p' pre-include and `-d' pre-define command-line options.
-
-\b Added an include file search path: the `-i' command line option.
-
-\b Fixed a silly little preprocessor bug whereby starting a line with a
-`%!' environment-variable reference caused an `unknown directive'
-error.
-
-\b Added the long-awaited listing file support: the `-l' command line
-option.
-
-\b Fixed a problem with OBJ format whereby, in the absence of any
-explicit segment definition, non-global symbols declared in the
-implicit default segment generated spurious EXTDEF records in the
-output.
-
-\b Added the NASM environment variable.
-
-\b From this version forward, Win32 console-mode binaries will be
-included in the DOS distribution in addition to the 16-bit binaries.
-Added Makefile.vc for this purpose.
-
-\b Added `return 0;' to test/objlink.c to prevent compiler warnings.
-
-\b Added the __NASM_MAJOR__ and __NASM_MINOR__ standard defines.
-
-\b Added an alternative memory-reference syntax in which prefixing an
-operand with `&' is equivalent to enclosing it in square brackets,
-at the request of Fox Cutter.
-
-\b Errors in pass two now cause the program to return a non-zero error
-code, which they didn't before.
-
-\b Fixed the single-line macro cycle detection, which didn't work at
-all on macros with no parameters (caused an infinite loop). Also
-changed the behaviour of single-line macro cycle detection to work
-like cpp, so that macros like `extrn' as given in the documentation
-can be implemented.
-
-\b Fixed the implementation of WRT, which was too restrictive in that
-you couldn't do `mov ax,[di+abc wrt dgroup]' because (di+abc) wasn't
-a relocatable reference.
-
-
-\S{cl-0.94 released April 1997} Version 0.94 released April 1997
-
-
-\b Major item: added the macro processor.
-
-\b Added undocumented instructions SMI, IBTS, XBTS and LOADALL286. Also
-reorganised CMPXCHG instruction into early-486 and Pentium forms.
-Thanks to Thobias Jones for the information.
-
-\b Fixed two more stupid bugs in ELF, which were causing `ld' to
-continue to seg-fault in a lot of non-trivial cases.
-
-\b Fixed a seg-fault in the label manager.
-
-\b Stopped FBLD and FBSTP from _requiring_ the TWORD keyword, which is
-the only option for BCD loads/stores in any case.
-
-\b Ensured FLDCW, FSTCW and FSTSW can cope with the WORD keyword, if
-anyone bothers to provide it. Previously they complained unless no
-keyword at all was present.
-
-\b Some forms of FDIV/FDIVR and FSUB/FSUBR were still inverted: a
-vestige of a bug that I thought had been fixed in 0.92. This was
-fixed, hopefully for good this time...
-
-\b Another minor phase error (insofar as a phase error can _ever_ be
-minor) fixed, this one occurring in code of the form
-
-\c   rol ax,forward_reference
-\c   forward_reference equ 1
-
-\b The number supplied to TIMES is now sanity-checked for positivity,
-and also may be greater than 64K (which previously didn't work on
-16-bit systems).
-
-\b Added Watcom C makefiles, and misc/pmw.bat, donated by Dominik Behr.
-
-\b Added the INCBIN pseudo-opcode.
-
-\b Due to the advent of the preprocessor, the [INCLUDE] and [INC]
-directives have become obsolete. They are still supported in this
-version, with a warning, but won't be in the next.
-
-\b Fixed a bug in OBJ format, which caused incorrect object records to
-be output when absolute labels were made global.
-
-\b Updates to RDOFF subdirectory, and changes to outrdf.c.
-
-
-\S{cl-0.93 released January 1997} Version 0.93 released January 1997
-
-This release went out in a great hurry after semi-crippling bugs
-were found in 0.92.
-
-\b Really \e{did} fix the stack overflows this time. *blush*
-
-\b Had problems with EA instruction sizes changing between passes, when
-an offset contained a forward reference and so 4 bytes were
-allocated for the offset in pass one; by pass two the symbol had
-been defined and happened to be a small absolute value, so only 1
-byte got allocated, causing instruction size mismatch between passes
-and hence incorrect address calculations. Fixed.
-
-\b Stupid bug in the revised ELF section generation fixed (associated
-string-table section for .symtab was hard-coded as 7, even when this
-didn't fit with the real section table). Was causing `ld' to
-seg-fault under Linux.
-
-\b Included a new Borland C makefile, Makefile.bc2, donated by Fox
-Cutter <lmb@comtch.iea.com>.
-
-
-\S{cl-0.92 released January 1997} Version 0.92 released January 1997
-
-\b The FDIVP/FDIVRP and FSUBP/FSUBRP pairs had been inverted: this was
-fixed. This also affected the LCC driver.
-
-\b Fixed a bug regarding 32-bit effective addresses of the form
-\c{[other_register+ESP]}.
-
-\b Documentary changes, notably documentation of the fact that Borland
-Win32 compilers use `obj' rather than `win32' object format.
-
-\b Fixed the COMENT record in OBJ files, which was formatted
-incorrectly.
-
-\b Fixed a bug causing segfaults in large RDF files.
-
-\b OBJ format now strips initial periods from segment and group
-definitions, in order to avoid complications with the local label
-syntax.
-
-\b Fixed a bug in disassembling far calls and jumps in NDISASM.
-
-\b Added support for user-defined sections in COFF and ELF files.
-
-\b Compiled the DOS binaries with a sensible amount of stack, to
-prevent stack overflows on any arithmetic expression containing
-parentheses.
-
-\b Fixed a bug in handling of files that do not terminate in a newline.
-
-
-\S{cl-0.91 released November 1996} Version 0.91 released November 1996
-
-\b Loads of bug fixes.
-
-\b Support for RDF added.
-
-\b Support for DBG debugging format added.
-
-\b Support for 32-bit extensions to Microsoft OBJ format added.
-
-\b Revised for Borland C: some variable names changed, makefile added.
-
-\b LCC support revised to actually work.
-
-\b JMP/CALL NEAR/FAR notation added.
-
-\b `a16', `o16', `a32' and `o32' prefixes added.
-
-\b Range checking on short jumps implemented.
-
-\b MMX instruction support added.
-
-\b Negative floating point constant support added.
-
-\b Memory handling improved to bypass 64K barrier under DOS.
-
-\b \c{$} prefix to force treatment of reserved words as identifiers added.
-
-\b Default-size mechanism for object formats added.
-
-\b Compile-time configurability added.
-
-\b \c{#}, \c{@}, \c{~} and c\{?} are now valid characters in labels.
-
-\b \c{-e} and \c{-k} options in NDISASM added.
-
-
-\S{cl-0.90 released October 1996} Version 0.90 released October 1996
-
-First release version. First support for object file output. Other
-changes from previous version (0.3x) too numerous to document.
--- a/nasmbuild/nasm-2.13rc9/doc/genps.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1241 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##   
-##   Copyright 1996-2016 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##     
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# Format the documentation as PostScript
-#
-
-require 'psfonts.ph';		# The fonts we want to use
-require 'pswidth.ph';		# PostScript string width
-
-use Fcntl;
-
-#
-# PostScript configurables; these values are also available to the
-# PostScript code itself
-#
-%psconf = (
-	   pagewidth => 595,    # Page width in PostScript points
-	   pageheight => 792,	# Page height in PostScript points
-	   lmarg => 100,	# Left margin in PostScript points
-	   rmarg => 50,		# Right margin in PostScript points
-	   topmarg => 100,	# Top margin in PostScript points
-	   botmarg => 100,	# Bottom margin in PostScript points
-	   plmarg => 50,	# Page number position relative to left margin
-	   prmarg => 0,		# Page number position relative to right margin
-	   pymarg => 50,	# Page number position relative to bot margin
-	   startcopyright => 75, # How much above the bottom margin is the
-	                         # copyright notice stuff
-	   bulladj => 12,	# How much to indent a bullet paragraph
-	   tocind => 12,	# TOC indentation per level
-	   tocpnz => 24,	# Width of TOC page number only zone
-	   tocdots => 8,	# Spacing between TOC dots
-	   idxspace => 24,	# Minimum space between index title and pg#
-	   idxindent => 24,	# How much to indent a subindex entry
-	   idxgutter => 24,	# Space between index columns
-	   idxcolumns => 2,	# Number of index columns
-	   );
-
-%psbool = (
-	   colorlinks => 0,	# Set links in blue rather than black
-	   );
-
-# Known paper sizes
-%papersizes = (
-	       'a5'     => [421, 595], # ISO half paper size
-	       'b5'     => [501, 709], # ISO small paper size
-	       'a4'     => [595, 842], # ISO standard paper size
-	       'letter' => [612, 792], # US common paper size
-	       'pa4'    => [595, 792], # Compromise ("portable a4")
-	       'b4'     => [709,1002], # ISO intermediate paper size
-	       'legal'  => [612,1008], # US intermediate paper size
-	       'a3'     => [842,1190], # ISO double paper size
-	       '11x17'  => [792,1224], # US double paper size
-	       );
-
-# Canned header file
-$headps = 'head.ps';
-
-#
-# Parse the command line
-#
-undef $input;
-while ( $arg = shift(@ARGV) ) {
-    if ( $arg =~ /^\-(|no\-)(.*)$/ ) {
-	$parm = $2;
-	$true = ($1 eq '') ? 1 : 0;
-	if ( $true && defined($papersizes{$parm}) ) {
-	    $psconf{pagewidth}  = $papersizes{$parm}->[0];
-	    $psconf{pageheight} = $papersizes{$parm}->[1];
-	} elsif ( defined($psbool{$parm}) ) {
-	    $psbool{$parm} = $true;
-	} elsif ( $true && defined($psconf{$parm}) ) {
-	    $psconf{$parm} = shift(@ARGV);
-	} elsif ( $parm =~ /^(title|subtitle|year|author|license)$/ ) {
-	    $metadata{$parm} = shift(@ARGV);
-	} elsif ( $parm eq 'headps' ) {
-	    $headps = shift(@ARGV);
-	} else {
-	    die "$0: Unknown option: $arg\n";
-	}
-    } else {
-	$input = $arg;
-    }
-}
-
-#
-# Document formatting parameters
-#
-$paraskip = 6;			# Space between paragraphs
-$chapstart = 30;		# Space before a chapter heading
-$chapskip = 24;			# Space after a chapter heading
-$tocskip = 6;			# Space between TOC entries
-
-# Configure post-paragraph skips for each kind of paragraph
-%skiparray = ('chap' => $chapskip, 'appn' => $chapstart,
-	      'head' => $paraskip, 'subh' => $paraskip,
-	      'norm' => $paraskip, 'bull' => $paraskip,
-	      'code' => $paraskip, 'toc0' => $tocskip,
-	      'toc1' => $tocskip,  'toc2' => $tocskip);
-
-# Custom encoding vector.  This is basically the same as
-# ISOLatin1Encoding (a level 2 feature, so we dont want to use it),
-# but with the "naked" accents at \200-\237 moved to the \000-\037
-# range (ASCII control characters), and a few extra characters thrown
-# in.  It is basically a modified Windows 1252 codepage, minus, for
-# now, the euro sign (\200 is reserved for euro.)
-
-@NASMEncoding =
-(
- undef, undef, undef, undef, undef, undef, undef, undef, undef, undef,
- undef, undef, undef, undef, undef, undef, 'dotlessi', 'grave',
- 'acute', 'circumflex', 'tilde', 'macron', 'breve', 'dotaccent',
- 'dieresis', undef, 'ring', 'cedilla', undef, 'hungarumlaut',
- 'ogonek', 'caron', 'space', 'exclam', 'quotedbl', 'numbersign',
- 'dollar', 'percent', 'ampersand', 'quoteright', 'parenleft',
- 'parenright', 'asterisk', 'plus', 'comma', 'minus', 'period',
- 'slash', 'zero', 'one', 'two', 'three', 'four', 'five', 'six',
- 'seven', 'eight', 'nine', 'colon', 'semicolon', 'less', 'equal',
- 'greater', 'question', 'at', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H',
- 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
- 'W', 'X', 'Y', 'Z', 'bracketleft', 'backslash', 'bracketright',
- 'asciicircum', 'underscore', 'quoteleft', 'a', 'b', 'c', 'd', 'e',
- 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
- 't', 'u', 'v', 'w', 'x', 'y', 'z', 'braceleft', 'bar', 'braceright',
- 'asciitilde', undef, undef, undef, 'quotesinglbase', 'florin',
- 'quotedblbase', 'ellipsis', 'dagger', 'dbldagger', 'circumflex',
- 'perthousand', 'Scaron', 'guilsinglleft', 'OE', undef, 'Zcaron',
- undef, undef, 'grave', 'quotesingle', 'quotedblleft',
- 'quotedblright', 'bullet', 'endash', 'emdash', 'tilde', 'trademark',
- 'scaron', 'guilsignlright', 'oe', undef, 'zcaron', 'Ydieresis',
- 'space', 'exclamdown', 'cent', 'sterling', 'currency', 'yen',
- 'brokenbar', 'section', 'dieresis', 'copyright', 'ordfeminine',
- 'guillemotleft', 'logicalnot', 'hyphen', 'registered', 'macron',
- 'degree', 'plusminus', 'twosuperior', 'threesuperior', 'acute', 'mu',
- 'paragraph', 'periodcentered', 'cedilla', 'onesuperior',
- 'ordmasculine', 'guillemotright', 'onequarter', 'onehalf',
- 'threequarters', 'questiondown', 'Agrave', 'Aacute', 'Acircumflex',
- 'Atilde', 'Adieresis', 'Aring', 'AE', 'Ccedilla', 'Egrave', 'Eacute',
- 'Ecircumflex', 'Edieresis', 'Igrave', 'Iacute', 'Icircumflex',
- 'Idieresis', 'Eth', 'Ntilde', 'Ograve', 'Oacute', 'Ocircumflex',
- 'Otilde', 'Odieresis', 'multiply', 'Oslash', 'Ugrave', 'Uacute',
- 'Ucircumflex', 'Udieresis', 'Yacute', 'Thorn', 'germandbls',
- 'agrave', 'aacute', 'acircumflex', 'atilde', 'adieresis', 'aring',
- 'ae', 'ccedilla', 'egrave', 'eacute', 'ecircumflex', 'edieresis',
- 'igrave', 'iacute', 'icircumflex', 'idieresis', 'eth', 'ntilde',
- 'ograve', 'oacute', 'ocircumflex', 'otilde', 'odieresis', 'divide',
- 'oslash', 'ugrave', 'uacute', 'ucircumflex', 'udieresis', 'yacute',
- 'thorn', 'ydieresis'
-);
-
-# Name-to-byte lookup hash
-%charcode = ();
-for ( $i = 0 ; $i < 256 ; $i++ ) {
-    $charcode{$NASMEncoding[$i]} = chr($i);
-}
-
-#
-# First, format the stuff coming from the front end into
-# a cleaner representation
-#
-if ( defined($input) ) {
-    sysopen(PARAS, $input, O_RDONLY) or
-	die "$0: cannot open $input: $!\n";
-} else {
-    open(PARAS, "<&STDIN") or die "$0: $!\n";
-}
-while ( defined($line = <PARAS>) ) {
-    chomp $line;
-    $data = <PARAS>;
-    chomp $data;
-    if ( $line =~ /^meta :(.*)$/ ) {
-	$metakey = $1;
-	$metadata{$metakey} = $data;
-    } elsif ( $line =~ /^indx :(.*)$/ ) {
-	$ixentry = $1;
-	push(@ixentries, $ixentry);
-	$ixterms{$ixentry} = [split(/\037/, $data)];
-	# Look for commas.  This is easier done on the string
-	# representation, so do it now.
-	if ( $data =~ /^(.*)\,\037sp\037/ ) {
-	    $ixprefix = $1;
-	    $ixprefix =~ s/\037n $//; # Discard possible font change at end
-	    $ixhasprefix{$ixentry} = $ixprefix;
-	    if ( !$ixprefixes{$ixprefix} ) {
-		$ixcommafirst{$ixentry}++;
-	    }
-	    $ixprefixes{$ixprefix}++;
-	} else {
-	    # A complete term can also be used as a prefix
-	    $ixprefixes{$data}++;
-	}
-    } else {
-	push(@ptypes, $line);
-	push(@paras, [split(/\037/, $data)]);
-    }
-}
-close(PARAS);
-
-#
-# Convert an integer to a chosen base
-#
-sub int2base($$) {
-    my($i,$b) = @_;
-    my($s) = '';
-    my($n) = '';
-    my($z) = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
-    return '0' if ($i == 0);
-    if ( $i < 0 ) { $n = '-'; $i = -$i; }
-    while ( $i ) {
-	$s = substr($z,$i%$b,1) . $s;
-	$i = int($i/$b);
-    }
-    return $n.$s;
-}
-
-#
-# Convert a string to a rendering array
-#
-sub string2array($)
-{
-    my($s) = @_;
-    my(@a) = ();
-
-    $s =~ s/\B\-\-\B/$charcode{'emdash'}/g;
-    $s =~ s/\B\-\B/ $charcode{'endash'} /g;
-
-    while ( $s =~ /^(\s+|\S+)(.*)$/ ) {
-	push(@a, [0,$1]);
-	$s = $2;
-    }
-
-    return @a;
-}
-
-#
-# Take a crossreference name and generate the PostScript name for it.
-#
-# This hack produces a somewhat smaller PDF...
-#%ps_xref_list = ();
-#$ps_xref_next = 0;
-#sub ps_xref($) {
-#    my($s) = @_;
-#    my $q = $ps_xref_list{$s};
-#    return $q if ( defined($ps_xref_list{$s}) );
-#    $q = 'X'.int2base($ps_xref_next++, 52);
-#    $ps_xref_list{$s} = $q;
-#    return $q;
-#}
-
-# Somewhat bigger PDF, but one which obeys # URLs
-sub ps_xref($) {
-    return @_[0];
-}
-
-#
-# Flow lines according to a particular font set and width
-#
-# A "font set" is represented as an array containing
-# arrays of pairs: [<size>, <metricref>]
-#
-# Each line is represented as:
-# [ [type,first|last,aux,fontset,page,ypos,optional col],
-#   [rendering array] ]
-#
-# A space character may be "squeezed" by up to this much
-# (as a fraction of the normal width of a space.)
-#
-$ps_space_squeeze = 0.00;	# Min space width 100%
-sub ps_flow_lines($$$@) {
-    my($wid, $fontset, $type, @data) = @_;
-    my($fonts) = $$fontset{fonts};
-    my($e);
-    my($w)  = 0;		# Width of current line
-    my($sw) = 0;		# Width of current line due to spaces
-    my(@l)  = ();		# Current line
-    my(@ls) = ();		# Accumulated output lines
-    my(@xd) = ();		# Metadata that goes with subsequent text
-    my $hasmarker = 0;		# Line has -6 marker
-    my $pastmarker = 0;		# -6 marker found
-
-    # If there is a -6 marker anywhere in the paragraph,
-    # *each line* output needs to have a -6 marker
-    foreach $e ( @data ) {
-	$hasmarker = 1 if ( $$e[0] == -6 );
-    }
-
-    $w = 0;
-    foreach $e ( @data ) {
-	if ( $$e[0] < 0 ) {
-	    # Type is metadata.  Zero width.
-	    if ( $$e[0] == -6 ) {
-		$pastmarker = 1;
-	    }
-	    if ( $$e[0] == -1 || $$e[0] == -6 ) {
-		# -1 (end anchor) or -6 (marker) goes with the preceeding
-		# text, otherwise with the subsequent text
-		push(@l, $e);
-	    } else {
-		push(@xd, $e);
-	    }
-	} else {
-	    my $ew = ps_width($$e[1], $fontset->{fonts}->[$$e[0]][1],
-			      \@NASMEncoding) *
-		($fontset->{fonts}->[$$e[0]][0]/1000);
-	    my $sp = $$e[1];
-	    $sp =~ tr/[^ ]//d;	# Delete nonspaces
-	    my $esw = ps_width($sp, $fontset->{fonts}->[$$e[0]][1],
-			       \@NASMEncoding) *
-		($fontset->{fonts}->[$$e[0]][0]/1000);
-
-	    if ( ($w+$ew) - $ps_space_squeeze*($sw+$esw) > $wid ) {
-		# Begin new line
-		# Search backwards for previous space chunk
-		my $lx = scalar(@l)-1;
-		my @rm = ();
-		while ( $lx >= 0 ) {
-		    while ( $lx >= 0 && $l[$lx]->[0] < 0 ) {
-			# Skip metadata
-			$pastmarker = 0 if ( $l[$lx]->[0] == -6 );
-			$lx--;
-		    };
-		    if ( $lx >= 0 ) {
-			if ( $l[$lx]->[1] eq ' ' ) {
-			    splice(@l, $lx, 1);
-			    @rm = splice(@l, $lx);
-			    last; # Found place to break
-			} else {
-			    $lx--;
-			}
-		    }
-		}
-
-		# Now @l contains the stuff to remain on the old line
-		# If we broke the line inside a link, then split the link
-		# into two.
-		my $lkref = undef;
-		foreach my $lc ( @l ) {
-		    if ( $$lc[0] == -2 || $$lc[0] == -3 || $lc[0] == -7 ) {
-			$lkref = $lc;
-		    } elsif ( $$lc[0] == -1 ) {
-			undef $lkref;
-		    }
-		}
-
-		if ( defined($lkref) ) {
-		    push(@l, [-1,undef]); # Terminate old reference
-		    unshift(@rm, $lkref); # Duplicate reference on new line
-		}
-
-		if ( $hasmarker ) {
-		    if ( $pastmarker ) {
-			unshift(@rm,[-6,undef]); # New line starts with marker
-		    } else {
-			push(@l,[-6,undef]); # Old line ends with marker
-		    }
-		}
-
-		push(@ls, [[$type,0,undef,$fontset,0,0],[@l]]);
-		@l = @rm;
-
-		$w = $sw = 0;
-		# Compute the width of the remainder array
-		for my $le ( @l ) {
-		    if ( $$le[0] >= 0 ) {
-			my $xew = ps_width($$le[1],
-					   $fontset->{fonts}->[$$le[0]][1],
-					   \@NASMEncoding) *
-			    ($fontset->{fonts}->[$$le[0]][0]/1000);
-			my $xsp = $$le[1];
-			$xsp =~ tr/[^ ]//d;	# Delete nonspaces
-			my $xsw = ps_width($xsp,
-					   $fontset->{fonts}->[$$le[0]][1],
-					   \@NASMEncoding) *
-			    ($fontset->{fonts}->[$$le[0]][0]/1000);
-			$w += $xew;  $sw += $xsw;
-		    }
-		}
-	    }
-	    push(@l, @xd);	# Accumulated metadata
-	    @xd = ();
-	    if ( $$e[1] ne '' ) {
-		push(@l, $e);
-		$w += $ew; $sw += $esw;
-	    }
-	}
-    }
-    push(@l,@xd);
-    if ( scalar(@l) ) {
-	push(@ls, [[$type,0,undef,$fontset,0,0],[@l]]);	# Final line
-    }
-
-    # Mark the first line as first and the last line as last
-    if ( scalar(@ls) ) {
-	$ls[0]->[0]->[1] |= 1;	   # First in para
-	$ls[-1]->[0]->[1] |= 2;    # Last in para
-    }
-    return @ls;
-}
-
-#
-# Once we have broken things into lines, having multiple chunks
-# with the same font index is no longer meaningful.  Merge
-# adjacent chunks to keep down the size of the whole file.
-#
-sub ps_merge_chunks(@) {
-    my(@ci) = @_;
-    my($c, $lc);
-    my(@co, $eco);
-
-    undef $lc;
-    @co = ();
-    $eco = -1;			# Index of the last entry in @co
-    foreach $c ( @ci ) {
-	if ( defined($lc) && $$c[0] == $lc && $$c[0] >= 0 ) {
-	    $co[$eco]->[1] .= $$c[1];
-	} else {
-	    push(@co, $c);  $eco++;
-	    $lc = $$c[0];
-	}
-    }
-    return @co;
-}
-
-#
-# Convert paragraphs to rendering arrays.  Each
-# element in the array contains (font, string),
-# where font can be one of:
-# -1 end link
-# -2 begin crossref
-# -3 begin weblink
-# -4 index item anchor
-# -5 crossref anchor
-# -6 left/right marker (used in the index)
-# -7 page link (used in the index)
-#  0 normal
-#  1 empatic (italic)
-#  2 code (fixed spacing)
-#
-
-sub mkparaarray($@) {
-    my($ptype, @chunks) = @_;
-
-    my @para = ();
-    my $in_e = 0;
-    my $chunk;
-
-    if ( $ptype =~ /^code/ ) {
-	foreach $chunk ( @chunks ) {
-	    push(@para, [2, $chunk]);
-	}
-    } else {
-	foreach $chunk ( @chunks ) {
-	    my $type = substr($chunk,0,2);
-	    my $text = substr($chunk,2);
-
-	    if ( $type eq 'sp' ) {
-		push(@para, [$in_e?1:0, ' ']);
-	    } elsif ( $type eq 'da' ) {
-		push(@para, [$in_e?1:0, $charcode{'endash'}]);
-	    } elsif ( $type eq 'n ' ) {
-		push(@para, [0, $text]);
-		$in_e = 0;
-	    } elsif ( $type =~ '^e' ) {
-		push(@para, [1, $text]);
-		$in_e = ($type eq 'es' || $type eq 'e ');
-	    } elsif ( $type eq 'c ' ) {
-		push(@para, [2, $text]);
-		$in_e = 0;
-	    } elsif ( $type eq 'x ' ) {
-		push(@para, [-2, ps_xref($text)]);
-	    } elsif ( $type eq 'xe' ) {
-		push(@para, [-1, undef]);
-	    } elsif ( $type eq 'wc' || $type eq 'w ' ) {
-		$text =~ /\<(.*)\>(.*)$/;
-		my $link = $1; $text = $2;
-		push(@para, [-3, $link]);
-		push(@para, [($type eq 'wc') ? 2:0, $text]);
-		push(@para, [-1, undef]);
-		$in_e = 0;
-	    } elsif ( $type eq 'i ' ) {
-		push(@para, [-4, $text]);
-	    } else {
-		die "Unexpected paragraph chunk: $chunk";
-	    }
-	}
-    }
-    return @para;
-}
-
-$npara = scalar(@paras);
-for ( $i = 0 ; $i < $npara ; $i++ ) {
-    $paras[$i] = [mkparaarray($ptypes[$i], @{$paras[$i]})];
-}
-
-#
-# This converts a rendering array to a simple string
-#
-sub ps_arraytostr(@) {
-    my $s = '';
-    my $c;
-    foreach $c ( @_ ) {
-	$s .= $$c[1] if ( $$c[0] >= 0 );
-    }
-    return $s;
-}
-
-#
-# This generates a duplicate of a paragraph
-#
-sub ps_dup_para(@) {
-    my(@i) = @_;
-    my(@o) = ();
-    my($c);
-
-    foreach $c ( @i ) {
-	my @cc = @{$c};
-	push(@o, [@cc]);
-    }
-    return @o;
-}
-
-#
-# This generates a duplicate of a paragraph, stripping anchor
-# tags (-4 and -5)
-#
-sub ps_dup_para_noanchor(@) {
-    my(@i) = @_;
-    my(@o) = ();
-    my($c);
-
-    foreach $c ( @i ) {
-	my @cc = @{$c};
-	push(@o, [@cc]) unless ( $cc[0] == -4 || $cc[0] == -5 );
-    }
-    return @o;
-}
-
-#
-# Scan for header paragraphs and fix up their contents;
-# also generate table of contents and PDF bookmarks.
-#
-@tocparas = ([[-5, 'contents'], [0,'Contents']]);
-@tocptypes = ('chap');
-@bookmarks = (['title', 0, 'Title'], ['contents', 0, 'Contents']);
-%bookref = ();
-for ( $i = 0 ; $i < $npara ; $i++ ) {
-    my $xtype = $ptypes[$i];
-    my $ptype = substr($xtype,0,4);
-    my $str;
-    my $book;
-
-    if ( $ptype eq 'chap' || $ptype eq 'appn' ) {
-	unless ( $xtype =~ /^\S+ (\S+) :(.*)$/ ) {
-	    die "Bad para";
-	}
-	my $secn = $1;
-	my $sech = $2;
-	my $xref = ps_xref($sech);
-	my $chap = ($ptype eq 'chap')?'Chapter':'Appendix';
-
-	$book = [$xref, 0, ps_arraytostr(@{$paras[$i]})];
-	push(@bookmarks, $book);
-	$bookref{$secn} = $book;
-
-	push(@tocparas, [ps_dup_para_noanchor(@{$paras[$i]})]);
-	push(@tocptypes, 'toc0'.' :'.$sech.':'.$chap.' '.$secn.':');
-
-	unshift(@{$paras[$i]},
-		[-5, $xref], [0,$chap.' '.$secn.':'], [0, ' ']);
-    } elsif ( $ptype eq 'head' || $ptype eq 'subh' ) {
-	unless ( $xtype =~ /^\S+ (\S+) :(.*)$/ ) {
-	    die "Bad para";
-	}
-	my $secn = $1;
-	my $sech = $2;
-	my $xref = ps_xref($sech);
-	my $pref;
-	$pref = $secn; $pref =~ s/\.[^\.]+$//; # Find parent node
-
-	$book = [$xref, 0, ps_arraytostr(@{$paras[$i]})];
-	push(@bookmarks, $book);
-	$bookref{$secn} = $book;
-	$bookref{$pref}->[1]--;	# Adjust count for parent node
-
-	push(@tocparas, [ps_dup_para_noanchor(@{$paras[$i]})]);
-	push(@tocptypes,
-	     (($ptype eq 'subh') ? 'toc2':'toc1').' :'.$sech.':'.$secn);
-
-	unshift(@{$paras[$i]}, [-5, $xref]);
-    }
-}
-
-#
-# Add TOC to beginning of paragraph list
-#
-unshift(@paras,  @tocparas);  undef @tocparas;
-unshift(@ptypes, @tocptypes); undef @tocptypes;
-
-#
-# Add copyright notice to the beginning
-#
-@copyright_page =
-([[0, $charcode{'copyright'}],
-  [0, ' '], [0, $metadata{'year'}],
-  [0, ' '], string2array($metadata{'author'}),
-  [0, ' '], string2array($metadata{'copyright_tail'})],
- [string2array($metadata{'license'})],
- [string2array($metadata{'auxinfo'})]);
-
-unshift(@paras, @copyright_page);
-unshift(@ptypes, ('norm') x scalar(@copyright_page));
-
-$npara = scalar(@paras);
-
-#
-# No lines generated, yet.
-#
-@pslines    = ();
-
-#
-# Line Auxilliary Information Types
-#
-$AuxStr	    = 1;		# String
-$AuxPage    = 2;		# Page number (from xref)
-$AuxPageStr = 3;		# Page number as a PostScript string
-$AuxXRef    = 4;		# Cross reference as a name
-$AuxNum     = 5;		# Number
-
-#
-# Break or convert paragraphs into lines, and push them
-# onto the @pslines array.
-#
-sub ps_break_lines($$) {
-    my ($paras,$ptypes) = @_;
-
-    my $linewidth  = $psconf{pagewidth}-$psconf{lmarg}-$psconf{rmarg};
-    my $bullwidth  = $linewidth-$psconf{bulladj};
-    my $indxwidth  = ($linewidth-$psconf{idxgutter})/$psconf{idxcolumns}
-                     -$psconf{idxspace};
-
-    my $npara = scalar(@{$paras});
-    my $i;
-
-    for ( $i = 0 ; $i < $npara ; $i++ ) {
-	my $xtype = $ptypes->[$i];
-	my $ptype = substr($xtype,0,4);
-	my @data = @{$paras->[$i]};
-	my @ls = ();
-	if ( $ptype eq 'code' ) {
-	    my $p;
-	    # Code paragraph; each chunk is a line
-	    foreach $p ( @data ) {
-		push(@ls, [[$ptype,0,undef,\%BodyFont,0,0],[$p]]);
-	    }
-	    $ls[0]->[0]->[1] |= 1;	     # First in para
-	    $ls[-1]->[0]->[1] |= 2;      # Last in para
-	} elsif ( $ptype eq 'chap' || $ptype eq 'appn' ) {
-	    # Chapters are flowed normally, but in an unusual font
-	    @ls = ps_flow_lines($linewidth, \%ChapFont, $ptype, @data);
-	} elsif ( $ptype eq 'head' || $ptype eq 'subh' ) {
-	    unless ( $xtype =~ /^\S+ (\S+) :(.*)$/ ) {
-		die "Bad para";
-	    }
-	    my $secn = $1;
-	    my $sech = $2;
-	    my $font = ($ptype eq 'head') ? \%HeadFont : \%SubhFont;
-	    @ls = ps_flow_lines($linewidth, $font, $ptype, @data);
-	    # We need the heading number as auxillary data
-	    $ls[0]->[0]->[2] = [[$AuxStr,$secn]];
-	} elsif ( $ptype eq 'norm' ) {
-	    @ls = ps_flow_lines($linewidth, \%BodyFont, $ptype, @data);
-	} elsif ( $ptype eq 'bull' ) {
-	    @ls = ps_flow_lines($bullwidth, \%BodyFont, $ptype, @data);
-	} elsif ( $ptype =~ /^toc/ ) {
-	    unless ( $xtype =~/^\S+ :([^:]*):(.*)$/ ) {
-		die "Bad para";
-	    }
-	    my $xref = $1;
-	    my $refname = $2.' ';
-	    my $ntoc = substr($ptype,3,1)+0;
-	    my $refwidth = ps_width($refname, $BodyFont{fonts}->[0][1],
-				    \@NASMEncoding) *
-		($BodyFont{fonts}->[0][0]/1000);
-
-	    @ls = ps_flow_lines($linewidth-$ntoc*$psconf{tocind}-
-				$psconf{tocpnz}-$refwidth,
-				\%BodyFont, $ptype, @data);
-
-	    # Auxilliary data: for the first line, the cross reference symbol
-	    # and the reference name; for all lines but the first, the
-	    # reference width; and for the last line, the page number
-	    # as a string.
-	    my $nl = scalar(@ls);
-	    $ls[0]->[0]->[2] = [[$AuxStr,$refname], [$AuxXRef,$xref]];
-	    for ( $j = 1 ; $j < $nl ; $j++ ) {
-		$ls[$j]->[0]->[2] = [[$AuxNum,$refwidth]];
-	    }
-	    push(@{$ls[$nl-1]->[0]->[2]}, [$AuxPageStr,$xref]);
-	} elsif ( $ptype =~ /^idx/ ) {
-	    my $lvl = substr($ptype,3,1)+0;
-
-	    @ls = ps_flow_lines($indxwidth-$lvl*$psconf{idxindent},
-				\%BodyFont, $ptype, @data);
-	} else {
-	    die "Unknown para type: $ptype";
-	}
-	# Merge adjacent identical chunks
-	foreach $l ( @ls ) {
-	    @{$$l[1]} = ps_merge_chunks(@{$$l[1]});
-	}
-	push(@pslines,@ls);
-    }
-}
-
-# Break the main body text into lines.
-ps_break_lines(\@paras, \@ptypes);
-
-#
-# Break lines in to pages
-#
-
-# Where to start on page 2, the copyright page
-$curpage = 2;			# Start on page 2
-$curypos = $psconf{pageheight}-$psconf{topmarg}-$psconf{botmarg}-
-    $psconf{startcopyright};
-undef $columnstart;		# Not outputting columnar text
-undef $curcolumn;		# Current column
-$nlines = scalar(@pslines);
-
-#
-# This formats lines inside the global @pslines array into pages,
-# updating the page and y-coordinate entries.  Start at the
-# $startline position in @pslines and go to but not including
-# $endline.  The global variables $curpage, $curypos, $columnstart
-# and $curcolumn are updated appropriately.
-#
-sub ps_break_pages($$) {
-    my($startline, $endline) = @_;
-
-    # Paragraph types which should never be broken
-    my $nobreakregexp = "^(chap|appn|head|subh|toc.|idx.)\$";
-    # Paragraph types which are heading (meaning they should not be broken
-    # immediately after)
-    my $nobreakafter = "^(chap|appn|head|subh)\$";
-    # Paragraph types which should never be broken *before*
-    my $nobreakbefore = "^idx[1-9]\$";
-    # Paragraph types which are set in columnar format
-    my $columnregexp = "^idx.\$";
-
-    my $upageheight = $psconf{pageheight}-$psconf{topmarg}-$psconf{botmarg};
-
-    my $i;
-
-    for ( $i = $startline ; $i < $endline ; $i++ ) {
-	my $linfo = $pslines[$i]->[0];
-	if ( ($$linfo[0] eq 'chap' || $$linfo[0] eq 'appn' )
-	     && ($$linfo[1] & 1) ) {
-	    # First line of a new chapter heading.  Start a new page.
-	    undef $columnstart;
-	    $curpage++ if ( $curypos > 0 || defined($columnstart) );
-	    $curypos = $chapstart;
-	} elsif ( defined($columnstart) && $$linfo[0] !~ /$columnregexp/o ) {
-	    undef $columnstart;
-	    $curpage++;
-	    $curypos = 0;
-	}
-
-	if ( $$linfo[0] =~ /$columnregexp/o && !defined($columnstart) ) {
-	    $columnstart = $curypos;
-	    $curcolumn = 0;
-	}
-
-	# Adjust position by the appropriate leading
-	$curypos += $$linfo[3]->{leading};
-
-	# Record the page and y-position
-	$$linfo[4] = $curpage;
-	$$linfo[5] = $curypos;
-	$$linfo[6] = $curcolumn if ( defined($columnstart) );
-
-	if ( $curypos > $upageheight ) {
-	    # We need to break the page before this line.
-	    my $broken = 0;		# No place found yet
-	    while ( !$broken && $pslines[$i]->[0]->[4] == $curpage ) {
-		my $linfo = $pslines[$i]->[0];
-		my $pinfo = $pslines[$i-1]->[0];
-
-		if ( $$linfo[1] == 2 ) {
-		    # This would be an orphan, don't break.
-		} elsif ( $$linfo[1] & 1 ) {
-		    # Sole line or start of paragraph.  Break unless
-		    # the previous line was part of a heading.
-		    $broken = 1 if ( $$pinfo[0] !~ /$nobreakafter/o &&
-				     $$linfo[0] !~ /$nobreakbefore/o );
-		} else {
-		    # Middle of paragraph.  Break unless we're in a
-		    # no-break paragraph, or the previous line would
-		    # end up being a widow.
-		    $broken = 1 if ( $$linfo[0] !~ /$nobreakregexp/o &&
-				     $$pinfo[1] != 1 );
-		}
-		$i--;
-	    }
-	    die "Nowhere to break page $curpage\n" if ( !$broken );
-	    # Now $i should point to line immediately before the break, i.e.
-	    # the next paragraph should be the first on the new page
-	    if ( defined($columnstart) &&
-		 ++$curcolumn < $psconf{idxcolumns} ) {
-		# We're actually breaking text into columns, not pages
-		$curypos = $columnstart;
-	    } else {
-		undef $columnstart;
-		$curpage++;
-		$curypos = 0;
-	    }
-	    next;
-	}
-
-	# Add end of paragraph skip
-	if ( $$linfo[1] & 2 ) {
-	    $curypos += $skiparray{$$linfo[0]};
-	}
-    }
-}
-
-ps_break_pages(0,$nlines);	# Break the main text body into pages
-
-#
-# Find the page number of all the indices
-#
-%ps_xref_page   = ();		# Crossref anchor pages
-%ps_index_pages = ();		# Index item pages
-$nlines = scalar(@pslines);
-for ( $i = 0 ; $i < $nlines ; $i++ ) {
-    my $linfo = $pslines[$i]->[0];
-    foreach my $c ( @{$pslines[$i]->[1]} ) {
-	if ( $$c[0] == -4 ) {
-	    if ( !defined($ps_index_pages{$$c[1]}) ) {
-		$ps_index_pages{$$c[1]} = [];
-	    } elsif ( $ps_index_pages{$$c[1]}->[-1] eq $$linfo[4] ) {
-		# Pages are emitted in order; if this is a duplicated
-		# entry it will be the last one
-		next;		# Duplicate
-	    }
-	    push(@{$ps_index_pages{$$c[1]}}, $$linfo[4]);
-	} elsif ( $$c[0] == -5 ) {
-	    $ps_xref_page{$$c[1]} = $$linfo[4];
-	}
-    }
-}
-
-#
-# Emit index paragraphs
-#
-$startofindex = scalar(@pslines);
-@ixparas = ([[-5,'index'],[0,'Index']]);
-@ixptypes = ('chap');
-
-foreach $k ( @ixentries ) {
-    my $n,$i;
-    my $ixptype = 'idx0';
-    my $prefix = $ixhasprefix{$k};
-    my @ixpara = mkparaarray($ixptype,@{$ixterms{$k}});
-    my $commapos = undef;
-
-    if ( defined($prefix) && $ixprefixes{$prefix} > 1 ) {
-	# This entry has a "hanging comma"
-	for ( $i = 0 ; $i < scalar(@ixpara)-1 ; $i++ ) {
-	    if ( substr($ixpara[$i]->[1],-1,1) eq ',' &&
-		 $ixpara[$i+1]->[1] eq ' ' ) {
-		$commapos = $i;
-		last;
-	    }
-	}
-    }
-    if ( defined($commapos) ) {
-	if ( $ixcommafirst{$k} ) {
-	    # This is the first entry; generate the
-	    # "hanging comma" entry
-	    my @precomma = splice(@ixpara,0,$commapos);
-	    if ( $ixpara[0]->[1] eq ',' ) {
-		shift(@ixpara);	# Discard lone comma
-	    } else {
-		# Discard attached comma
-		$ixpara[0]->[1] =~ s/\,$//;
-		push(@precomma,shift(@ixpara));
-	    }
-	    push(@precomma, [-6,undef]);
-	    push(@ixparas, [@precomma]);
-	    push(@ixptypes, $ixptype);
-	    shift(@ixpara);	# Remove space
-	} else {
-	    splice(@ixpara,0,$commapos+2);
-	}
-	$ixptype = 'idx1';
-    }
-
-    push(@ixpara, [-6,undef]);	# Left/right marker
-    $i = 1;  $n = scalar(@{$ps_index_pages{$k}});
-    foreach $p ( @{$ps_index_pages{$k}} ) {
-	if ( $i++ == $n ) {
-	    push(@ixpara,[-7,$p],[0,"$p"],[-1,undef]);
-	} else {
-	    push(@ixpara,[-7,$p],[0,"$p,"],[-1,undef],[0,' ']);
-	}
-    }
-
-    push(@ixparas, [@ixpara]);
-    push(@ixptypes, $ixptype);
-}
-
-#
-# Flow index paragraphs into lines
-#
-ps_break_lines(\@ixparas, \@ixptypes);
-
-#
-# Format index into pages
-#
-$nlines = scalar(@pslines);
-ps_break_pages($startofindex, $nlines);
-
-#
-# Push index onto bookmark list
-#
-push(@bookmarks, ['index', 0, 'Index']);
-
-# Get the list of fonts used
-%ps_all_fonts = ();
-foreach $fset ( @AllFonts ) {
-    foreach $font ( @{$fset->{fonts}} ) {
-	$ps_all_fonts{$font->[1]->{name}}++;
-    }
-}
-
-# Emit the PostScript DSC header
-print "%!PS-Adobe-3.0\n";
-print "%%Pages: $curpage\n";
-print "%%BoundingBox: 0 0 ", $psconf{pagewidth}, ' ', $psconf{pageheight}, "\n";
-print "%%Creator: (NASM psflow.pl)\n";
-print "%%DocumentData: Clean7Bit\n";
-print "%%DocumentFonts: ", join(' ', keys(%ps_all_fonts)), "\n";
-print "%%DocumentNeededFonts: ", join(' ', keys(%ps_all_fonts)), "\n";
-print "%%Orientation: Portrait\n";
-print "%%PageOrder: Ascend\n";
-print "%%EndComments\n";
-print "%%BeginProlog\n";
-
-# Emit the configurables as PostScript tokens
-foreach $c ( keys(%psconf) ) {
-    print "/$c ", $psconf{$c}, " def\n";
-}
-foreach $c ( keys(%psbool) ) {
-    print "/$c ", ($psbool{$c}?'true':'false'), " def\n";
-}
-
-# Emit custom encoding vector
-$zstr = '/NASMEncoding [ ';
-foreach $c ( @NASMEncoding ) {
-    my $z = '/'.(defined($c)?$c:'.notdef ').' ';
-    if ( length($zstr)+length($z) > 72 ) {
-	print $zstr,"\n";
-	$zstr = ' ';
-    }
-    $zstr .= $z;
-}
-print $zstr, "] def\n";
-
-# Font recoding routine
-# newname fontname --
-print "/nasmenc {\n";
-print "  findfont dup length dict begin\n";
-print "    { 1 index /FID ne {def}{pop pop} ifelse } forall\n";
-print "    /Encoding NASMEncoding def\n";
-print "    currentdict\n";
-print "  end\n";
-print "  definefont pop\n";
-print "} def\n";
-
-# Emit fontset definitions
-foreach $font ( keys(%ps_all_fonts) ) {
-    print '/',$font,'-NASM /',$font," nasmenc\n";
-}
-
-foreach $fset ( @AllFonts ) {
-    my $i = 0;
-    my @zfonts = ();
-    foreach $font ( @{$fset->{fonts}} ) {
-	print '/', $fset->{name}, $i, ' ',
-	'/', $font->[1]->{name}, '-NASM findfont ',
-	$font->[0], " scalefont def\n";
-	push(@zfonts, $fset->{name}.$i);
-	$i++;
-    }
-    print '/', $fset->{name}, ' [', join(' ',@zfonts), "] def\n";
-}
-
-# This is used by the bullet-paragraph PostScript methods
-print "/bullet [",ps_string($charcode{'bullet'}),"] def\n";
-
-# Emit the canned PostScript prologue
-open(PSHEAD, '<', $headps)
-    or die "$0: cannot open: $headps: $!\n";
-while ( defined($line = <PSHEAD>) ) {
-    print $line;
-}
-close(PSHEAD);
-print "%%EndProlog\n";
-
-# Generate a PostScript string
-sub ps_string($) {
-    my ($s) = @_;
-    my ($i,$c);
-    my ($o) = '(';
-    my ($l) = length($s);
-    for ( $i = 0 ; $i < $l ; $i++ ) {
-	$c = substr($s,$i,1);
-	if ( ord($c) < 32 || ord($c) > 126 ) {
-	    $o .= sprintf("\\%03o", ord($c));
-	} elsif ( $c eq '(' || $c eq ')' || $c eq "\\" ) {
-	    $o .= "\\".$c;
-	} else {
-	    $o .= $c;
-	}
-    }
-    return $o.')';
-}
-
-# Generate PDF bookmarks
-print "%%BeginSetup\n";
-foreach $b ( @bookmarks ) {
-    print '[/Title ', ps_string($b->[2]), "\n";
-    print '/Count ', $b->[1], ' ' if ( $b->[1] );
-    print '/Dest /',$b->[0]," /OUT pdfmark\n";
-}
-
-# Ask the PostScript interpreter for the proper size media
-print "setpagesize\n";
-print "%%EndSetup\n";
-
-# Start a PostScript page
-sub ps_start_page() {
-    $ps_page++;
-    print "%%Page: $ps_page $ps_page\n";
-    print "%%BeginPageSetup\n";
-    print "save\n";
-    print "%%EndPageSetup\n";
-    print '/', $ps_page, " pa\n";
-}
-
-# End a PostScript page
-sub ps_end_page($) {
-    my($pn) = @_;
-    if ( $pn ) {
-	print "($ps_page)", (($ps_page & 1) ? 'pageodd' : 'pageeven'), "\n";
-    }
-    print "restore showpage\n";
-}
-
-$ps_page = 0;
-
-# Title page
-ps_start_page();
-$title = $metadata{'title'} || '';
-$title =~ s/ \- / $charcode{'emdash'} /;
-
-$subtitle = $metadata{'subtitle'} || '';
-$subtitle =~ s/ \- / $charcode{'emdash'} /;
-
-# Print title
-print "/ti ", ps_string($title), " def\n";
-print "/sti ", ps_string($subtitle), " def\n";
-print "lmarg pageheight 2 mul 3 div moveto\n";
-print "tfont0 setfont\n";
-print "/title linkdest ti show\n";
-print "lmarg pageheight 2 mul 3 div 10 sub moveto\n";
-print "0 setlinecap 3 setlinewidth\n";
-print "pagewidth lmarg sub rmarg sub 0 rlineto currentpoint stroke moveto\n";
-print "hfont1 setfont sti stringwidth pop neg ",
-    -$HeadFont{leading}, " rmoveto\n";
-print "sti show\n";
-
-# Print logo, if there is one
-# FIX: To be 100% correct, this should look for DocumentNeeded*
-# and DocumentFonts in the header of the EPSF and add those to the
-# global header.
-if ( defined($metadata{epslogo}) &&
-     sysopen(EPS, $metadata{epslogo}, O_RDONLY) ) {
-    my @eps = ();
-    my ($bbllx,$bblly,$bburx,$bbury) = (undef,undef,undef,undef);
-    my $line;
-    my $scale = 1;
-    my $maxwidth = $psconf{pagewidth}-$psconf{lmarg}-$psconf{rmarg};
-    my $maxheight = $psconf{pageheight}/3-40;
-    my $width, $height;
-    my $x, $y;
-
-    while ( defined($line = <EPS>) ) {
-	last if ( $line =~ /^%%EOF/ );
-	if ( !defined($bbllx) &&
-	     $line =~ /^\%\%BoundingBox\:\s*([0-9\.]+)\s+([0-9\.]+)\s+([0-9\.]+)\s+([0-9\.]+)/i ) {
-	    $bbllx = $1+0; $bblly = $2+0;
-	    $bburx = $3+0; $bbury = $4+0;
-	}
-	push(@eps,$line);
-    }
-    close(EPS);
-
-    if ( defined($bbllx) ) {
-	$width = $bburx-$bbllx;
-	$height = $bbury-$bblly;
-
-	if ( $width > $maxwidth ) {
-	    $scale = $maxwidth/$width;
-	}
-	if ( $height*$scale > $maxheight ) {
-	    $scale = $maxheight/$height;
-	}
-
-	$x = ($psconf{pagewidth}-$width*$scale)/2;
-	$y = ($psconf{pageheight}-$height*$scale)/2;
-
-	if ( defined($metadata{logoxadj}) ) {
-	    $x += $metadata{logoxadj};
-	}
-	if ( defined($metadata{logoyadj}) ) {
-	    $y += $metadata{logoyadj};
-	}
-
-	print "BeginEPSF\n";
-	print $x, ' ', $y, " translate\n";
-	print $scale, " dup scale\n" unless ( $scale == 1 );
-	print -$bbllx, ' ', -$bblly, " translate\n";
-	print "$bbllx $bblly moveto\n";
-	print "$bburx $bblly lineto\n";
-	print "$bburx $bbury lineto\n";
-	print "$bbllx $bbury lineto\n";
-	print "$bbllx $bblly lineto clip newpath\n";
-	print "%%BeginDocument: ",ps_string($metadata{epslogo}),"\n";
-	print @eps;
-	print "%%EndDocument\n";
-	print "EndEPSF\n";
-    }
-}
-ps_end_page(0);
-
-# Emit the rest of the document (page 2 and on)
-$curpage = 2;
-ps_start_page();
-foreach $line ( @pslines ) {
-    my $linfo = $line->[0];
-
-    if ( $$linfo[4] != $curpage ) {
-        ps_end_page($curpage > 2);
-        ps_start_page();
-        $curpage = $$linfo[4];
-    }
-
-    print '[';
-    my $curfont = 0;
-    foreach my $c ( @{$line->[1]} ) {
-        if ( $$c[0] >= 0 ) {
-	    if ( $curfont != $$c[0] ) {
-		print ($curfont = $$c[0]);
-	    }
-	    print ps_string($$c[1]);
-	} elsif ( $$c[0] == -1 ) {
-	    print '{el}';	# End link
-	} elsif ( $$c[0] == -2 ) {
-	    print '{/',$$c[1],' xl}'; # xref link
-	} elsif ( $$c[0] == -3 ) {
-	    print '{',ps_string($$c[1]),'wl}'; # web link
-	} elsif ( $$c[0] == -4 ) {
-	    # Index anchor -- ignore
-	} elsif ( $$c[0] == -5 ) {
-	    print '{/',$$c[1],' xa}'; #xref anchor
-	} elsif ( $$c[0] == -6 ) {
-	    print '][';		# Start a new array
-	    $curfont = 0;
-	} elsif ( $$c[0] == -7 ) {
-	    print '{/',$$c[1],' pl}'; # page link
-	} else {
-	    die "Unknown annotation";
-	}
-    }
-    print ']';
-    if ( defined($$linfo[2]) ) {
-	foreach my $x ( @{$$linfo[2]} ) {
-	    if ( $$x[0] == $AuxStr ) {
-		print ps_string($$x[1]);
-	    } elsif ( $$x[0] == $AuxPage ) {
-		print $ps_xref_page{$$x[1]},' ';
-	    } elsif ( $$x[0] == $AuxPageStr ) {
-		print ps_string($ps_xref_page{$$x[1]});
-	    } elsif ( $$x[0] == $AuxXRef ) {
-		print '/',ps_xref($$x[1]),' ';
-	    } elsif ( $$x[0] == $AuxNum ) {
-		print $$x[1],' ';
-	    } else {
-		die "Unknown auxilliary data type";
-	    }
-	}
-    }
-    print ($psconf{pageheight}-$psconf{topmarg}-$$linfo[5]);
-    print ' ', $$linfo[6] if ( defined($$linfo[6]) );
-    print ' ', $$linfo[0].$$linfo[1], "\n";
-}
-
-ps_end_page(1);
-print "%%EOF\n";
--- a/nasmbuild/nasm-2.13rc9/doc/head.ps	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,391 +0,0 @@
-%
-% PostScript header for NASM documentation
-%
-
-% Avoid barfing on old PS implementations
-/pdfmark where
-{pop} {userdict /pdfmark /cleartomark load put} ifelse
-/setpagedevice where
-{pop} {userdict /setpagedevice /pop load put} ifelse
-
-% Useful definition
-/space 32 def
-
-%
-% This asks the PostScript interpreter for the proper size paper
-%
-/setpagesize {
-  1 dict dup /PageSize [pagewidth pageheight] put setpagedevice
-} def
-
-%
-% Code to handle links
-%
-/min { 2 copy gt { exch } if pop } def
-/max { 2 copy lt { exch } if pop } def
-
-/lkbegun 0 def
-/lktype null def
-/lkury 0 def
-/lkurx 0 def
-/lklly 0 def
-/lkllx 0 def
-/lkxmarg 1 def	% Extra space for link in x dir
-/lkymarg 1 def	% Extra space for link in y dir
-/lktarget () def
-
-% target type --
-/linkbegin {
-  userdict begin
-    /lkbegun 1 def
-    /lktype exch def
-    /lktarget exch def
-    colorlinks { 0 0 0.4 setrgbcolor } if
-  end
-} def
-
-% target --
-/linkbegindest {
-  /Dest linkbegin
-} def
-
-% uristring --
-/linkbeginuri {
-  /URI linkbegin
-} def
-
-% pageno --
-/linkbeginpage {
-  /Page linkbegin
-} def
-
-% string spacepadding --
-/linkshow {
-  userdict begin
-    /lspad exch def /lss exch def
-    lkbegun 0 ne {
-      gsave lss true charpath flattenpath pathbbox grestore
-      lkbegun 1 eq {
-        /lkury exch def
-        lss spacecount lspad mul add /lkurx exch def
-        /lklly exch def
-        /lkllx exch def
-        /lkbegun 2 def
-      } {
-        lkury max /lkury exch def
-        lss spacecount lspad mul add lkurx max /lkurx exch def
-        lklly min /lklly exch def
-        lkllx min /lkllx exch def
-      } ifelse
-    } if
-    lspad 0 space lss widthshow
-  end
-} def
-
-% --
-/linkend {
-  userdict begin
-    [ lktype /URI eq {
-        /Action 2 dict dup /Subtype /URI put dup /URI lktarget put
-      } {
-	/Dest lktarget
-      } ifelse
-      /Border [0 0 0]
-      /Rect [ lkllx lkxmarg sub
-              lklly lkymarg sub
-              lkurx lkxmarg add
-              lkury lkymarg add ]
-      /Subtype /Link
-      /ANN pdfmark
-    /lkbegun 0 def
-    colorlinks { 0 setgray } if
-  end
-} def
-
-% targetname --
-/linkdest {
-  [ /Dest 3 -1 roll
-    /View [ /XYZ currentpoint null ]
-    /DEST pdfmark
-} def
-
-% A "fontset" is an array of fonts; a "stream" is an array of strings
-% and numbers or procedures:
-% [ 0 (Foo) ( ) (mani) ( ) 1 (padme) 0 ( ) (hum.) ]
-% A number choses a font from the current fontset.
-% A procedure is invoked as-is when printing the stream.
-%
-% When printing justified, an equal amount of space is added in
-% between each string.
-
-% string -- spacecount
-% Count space characters in a string
-/spacecount {
-  0 exch {
-    space eq { 1 add } if
-  } forall
-} def
-
-% stream fontset -- spacecount width
-% Get the width of a stream in the given fontset, and the
-% number of space characters in the stream
-/streamwidth {
-  gsave
-    6 dict begin
-      /f exch def
-      /w 0 def
-      /s 0 def
-      f 0 get setfont
-      /integertype {
-        f exch get setfont
-      } def
-      /stringtype {
-        dup stringwidth pop w add /w exch def
-        spacecount s add /s exch def
-      } def
-      /arraytype { pop } def
-      % The input stream is on the top of the stack now
-      {
-        dup type exec
-      } forall
-      s w
-    end
-  grestore
-} def
-
-% stream fontset spacer --
-% Show the stream in the given fontset, but add a certain amount
-% of space to each space character
-/showstreamspc {
-  5 dict begin
-    /spc exch def
-    /f exch def
-    f 0 get setfont
-    /integertype {
-      f exch get setfont
-    } def
-    /stringtype {
-      spc linkshow
-    } def
-    /arraytype {
-      exec
-    } def
-    % Now stream is on the top of the stack
-    {
-      dup type exec
-    } forall
-  end
-} def
-
-% stream fontset --
-% Show the stream in the given fontset, with no extra spacing
-/showstream {
-  0 showstreamspc
-} def
-
-% stream fontset totalspace --
-% Show the stream justified to fit into a certain number of pixels
-/showstreamjust {
-  userdict begin
-    /ts exch def /fs exch def /st exch def
-      st fs
-        st fs streamwidth ts exch sub exch
-	dup 0 gt { div } { pop } ifelse
-      showstreamspc
-    end
-} def
-
-/bullmarg lmarg bulladj add def
-/lwidth pagewidth lmarg sub rmarg sub def
-/bwidth lwidth bulladj sub def
-
-%
-% The various paragraph types
-% The number at the end indicates start (1) of para, end (2) of para
-%
-/chapline {
-	currentpoint exch pop 10 sub lmarg exch moveto
-	0 setlinecap 3 setlinewidth
-	lwidth 0 rlineto stroke
-} def
-
-/chap0 { lmarg exch moveto cfont lwidth showstreamjust } def
-/chap1 { lmarg exch moveto cfont lwidth showstreamjust } def
-/chap2 { lmarg exch moveto cfont showstream chapline } def
-/chap3 { lmarg exch moveto cfont showstream chapline } def
-
-/appn0 {chap0} def
-/appn1 {chap1} def
-/appn2 {chap2} def
-/appn3 {chap3} def
-
-% lbl ypos fontset -- ypos
-/headlbl {
-  3 -1 roll [exch (  )] exch % ypos strm fontset
-  2 copy % ypos strm fontset strm fontset
-  streamwidth % ypos strm fontset spccount width
-  lmarg exch sub % ypos strm fontset spccount xpos
-  4 index % ypos strm fontset spccount xpos ypos
-  moveto % ypos strm fontset spccount
-  pop % ypos strm fontset spccount
-  showstream % ypos
-} def
-
-/head0 { lmarg exch moveto hfont lwidth showstreamjust } def
-/head1 { hfont headlbl lmarg exch moveto hfont lwidth showstreamjust } def
-/head2 { lmarg exch moveto hfont showstream } def
-/head3 { hfont headlbl lmarg exch moveto hfont showstream } def
-
-/subh0 { lmarg exch moveto sfont lwidth showstreamjust } def
-/subh1 { sfont headlbl lmarg exch moveto sfont lwidth showstreamjust } def
-/subh2 { lmarg exch moveto sfont showstream } def
-/subh3 { sfont headlbl lmarg exch moveto sfont showstream } def
-
-/norm0 { lmarg exch moveto bfont lwidth showstreamjust } def
-/norm1 { lmarg exch moveto bfont lwidth showstreamjust } def
-/norm2 { lmarg exch moveto bfont showstream } def
-/norm3 { lmarg exch moveto bfont showstream } def
-
-/code0 { lmarg exch moveto bfont showstream } def
-/code1 { lmarg exch moveto bfont showstream } def
-/code2 { lmarg exch moveto bfont showstream } def
-/code3 { lmarg exch moveto bfont showstream } def
-
-/bull0 { bullmarg exch moveto bfont bwidth showstreamjust } def
-/bull1 { dup lmarg exch moveto bullet bfont showstream
-	 bullmarg exch moveto bfont bwidth showstreamjust } def
-/bull2 { bullmarg exch moveto bfont showstream } def
-/bull3 { dup lmarg exch moveto bullet bfont showstream
-	 bullmarg exch moveto bfont showstream } def
-
-/tocw0 lwidth tocpnz sub def
-/tocw1 tocw0 tocind sub def
-/tocw2 tocw1 tocind sub def
-
-/tocx0 lmarg def
-/tocx1 tocx0 tocind add def
-/tocx2 tocx1 tocind add def
-
-/tocpn {
-  bfont0 setfont
-  3 dict begin
-    /s exch def
-    /x s stringwidth pop pagewidth rmarg sub exch sub def
-    currentpoint /y exch def
-    lmarg sub tocdots div ceiling tocdots mul lmarg add
-    tocdots x {
-      y moveto (.) 0 linkshow
-    } for
-    x y moveto s 0 linkshow
-  end
-  linkend
-} def
-
-/toc00 { tocx0 exch moveto 0 rmoveto bfont showstream } def
-/toc01 { tocx0 exch moveto
-	 linkbegindest bfont0 setfont 0 linkshow bfont showstream } def
-/toc02 { tocx0 exch moveto 3 1 roll
-	 0 rmoveto bfont showstream tocpn } def
-/toc03 { tocx0 exch moveto 4 1 roll
-	 linkbegindest bfont0 setfont 0 linkshow bfont showstream tocpn } def
-
-/toc10 { tocx1 exch moveto 0 rmoveto bfont showstream } def
-/toc11 { tocx1 exch moveto
-	 linkbegindest bfont0 setfont 0 linkshow bfont showstream } def
-/toc12 { tocx1 exch moveto 3 1 roll
-	 0 rmoveto bfont showstream tocpn } def
-/toc13 { tocx1 exch moveto 4 1 roll
-	 linkbegindest bfont0 setfont 0 linkshow bfont showstream tocpn } def
-
-/toc20 { tocx2 exch moveto 0 rmoveto bfont showstream } def
-/toc21 { tocx2 exch moveto
-	 linkbegindest bfont0 setfont 0 linkshow bfont showstream } def
-/toc22 { tocx2 exch moveto 3 1 roll
-	 0 rmoveto bfont showstream tocpn } def
-/toc23 { tocx2 exch moveto 4 1 roll
-	 linkbegindest bfont0 setfont 0 linkshow bfont showstream tocpn } def
-
-% Spacing between index columns
-/indexcolumn pagewidth lmarg sub rmarg sub idxgutter add idxcolumns div def
-% Width of an individual index column
-/indexcolwid indexcolumn idxgutter sub def
-
-/idx03 {
-  2 dict begin
-    indexcolumn mul lmarg add
-    /x exch def /y exch def x y moveto
-    exch bfont showstream
-    dup bfont streamwidth
-    x indexcolwid add exch sub exch pop y moveto
-    bfont showstream
-  end
-} def
-/idx00 {idx03} def
-/idx01 {idx03} def
-/idx02 {idx03} def
-
-/idx13 {
-  2 dict begin
-    indexcolumn mul lmarg add idxindent add
-    /x exch def /y exch def x y moveto
-    exch bfont showstream
-    dup bfont streamwidth
-    x indexcolwid idxindent sub add exch sub exch pop y moveto
-    bfont showstream
-  end
-} def
-/idx10 {idx13} def
-/idx11 {idx13} def
-/idx12 {idx13} def
-
-%
-% Page numbers
-%
-/pagey botmarg pymarg sub def
-/pagel lmarg plmarg sub def
-/pager pagewidth rmarg sub prmarg add def
-
-/pageeven { pagel pagey moveto bfont1 setfont show } def
-/pageodd  { bfont1 setfont dup stringwidth pop pager exch sub
-	    pagey moveto show } def
-
-%
-% Functions invoked during parsing
-%
-/xa { linkdest } def
-/pa { 0 pageheight moveto linkdest } def
-/xl { linkbegindest } def
-/wl { linkbeginuri } def
-/pl { linkbeginpage } def
-/el { linkend } def
-
-%
-% PDF viewer options
-%
-[/PageMode /UseOutlines /DOCVIEW pdfmark	% Display bookmarks
-
-%
-% Functions to include EPS
-%
-/BeginEPSF {
-  /Before_EPSF_State save def
-  /dict_count countdictstack def
-  /op_count count 1 sub def
-  userdict begin
-  /showpage {} def
-  0 setgray 0 setlinecap
-  1 setlinewidth 0 setlinejoin
-  10 setmiterlimit [ ] 0 setdash newpath
-  /languagelevel where
-  {
-    pop languagelevel
-    1 ne {
-      false setstrokeadjust false setoverprint
-    } if
-  } if
-} bind def
-/EndEPSF {
-  count op_count sub {pop} repeat
-  countdictstack dict_count sub {end} repeat
-  Before_EPSF_State restore
-} bind def
--- a/nasmbuild/nasm-2.13rc9/doc/inslist.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##   
-##   Copyright 1996-2009 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##     
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# inslist.pl   produce inslist.src
-#
-
-# Opcode prefixes which need their own opcode tables
-# LONGER PREFIXES FIRST!
-@disasm_prefixes = qw(0F24 0F25 0F38 0F3A 0F7A 0FA6 0FA7 0F);
-
-print STDERR "Reading insns.dat...\n";
-
-@args   = ();
-undef $output;
-foreach $arg ( @ARGV ) {
-    if ( $arg =~ /^\-/ ) {
-	if  ( $arg =~ /^\-([adins])$/ ) {
-	    $output = $1;
-	} else {
-	    die "$0: Unknown option: ${arg}\n";
-	}
-    } else {
-	push (@args, $arg);
-    }
-}
-
-$fname = "../insns.dat" unless $fname = $args[0];
-open (F, $fname) || die "unable to open $fname";
-print STDERR "Writing inslist.src...\n";
-open S, ">inslist.src";
-$line = 0;
-$insns = 0;
-while (<F>) {
-  $line++;
-  next if (/^\s*$/);		# blank lines
-  if ( /^\s*;/ )		# comments
-  {
-    if ( /^\s*;\#\s*(.+)/ )	# section subheader
-    {
-      print S "\n\\S{} $1\n\n";
-    }
-    next;
-  }
-  chomp;
-  unless (/^\s*(\S+)\s+(\S+)\s+(\S+|\[.*\])\s+(\S+)\s*$/) {
-      warn "line $line does not contain four fields\n";
-      next;
-  }
-  my @entry = ($1, $2, $3, $4);
-
-  $entry[1] =~ s/ignore//;
-  $entry[1] =~ s/void//;
-  $entry[3] =~ s/ignore//;
-  $entry[3] =~ s/,SB//;
-  $entry[3] =~ s/,SM//;
-  $entry[3] =~ s/,SM2//;
-  $entry[3] =~ s/,SQ//;
-  $entry[3] =~ s/,AR2//;
-  printf S "\\c %-16s %-24s %s\n",$entry[0],$entry[1],$entry[3];
-  $insns++;
-}
-print S "\n";
-close S;
-close F;
-printf STDERR "Done: %d instructions\n", $insns;
-
--- a/nasmbuild/nasm-2.13rc9/doc/internal.doc	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,290 +0,0 @@
-Internals of the Netwide Assembler
-==================================
-
-The Netwide Assembler is intended to be a modular, re-usable x86
-assembler, which can be embedded in other programs, for example as
-the back end to a compiler.
-
-The assembler is composed of modules. The interfaces between them
-look like:
-
-		  +--- preproc.c ----+
-		  |		     |
-		  +---- parser.c ----+
-		  |	   |         |
-		  |     float.c      |
-		  |		     |
-		  +--- assemble.c ---+
-		  |        |         |
-	nasm.c ---+     insnsa.c     +--- nasmlib.c
-		  |		     |
-		  +--- listing.c ----+
-		  |		     |
-		  +---- labels.c ----+
-		  |		     |
-		  +--- outform.c ----+
-		  |		     |
-		  +----- *out.c -----+
-
-In other words, each of `preproc.c', `parser.c', `assemble.c',
-`labels.c', `listing.c', `outform.c' and each of the output format
-modules `*out.c' are independent modules, which do not directly
-inter-communicate except through the main program.
-
-The Netwide *Disassembler* is not intended to be particularly
-portable or reusable or anything, however. So I won't bother
-documenting it here. :-)
-
-nasmlib.c
----------
-
-This is a library module; it contains simple library routines which
-may be referenced by all other modules. Among these are a set of
-wrappers around the standard `malloc' routines, which will report a
-fatal error if they run out of memory, rather than returning NULL.
-
-preproc.c
----------
-
-This contains a macro preprocessor, which takes a file name as input
-and returns a sequence of preprocessed source lines. The only symbol
-exported from the module is `nasmpp', which is a data structure of
-type `Preproc', declared in nasm.h. This structure contains pointers
-to all the functions designed to be callable from outside the
-module.
-
-parser.c
---------
-
-This contains a source-line parser. It parses `canonical' assembly
-source lines, containing some combination of the `label', `opcode',
-`operand' and `comment' fields: it does not process directives or
-macros. It exports two functions: `parse_line' and `cleanup_insn'.
-
-`parse_line' is the main parser function: you pass it a source line
-in ASCII text form, and it returns you an `insn' structure
-containing all the details of the instruction on that line. The
-parameters it requires are:
-
-- The location (segment, offset) where the instruction on this line
-  will eventually be placed. This is necessary in order to evaluate
-  expressions containing the Here token, `$'.
-
-- A function which can be called to retrieve the value of any
-  symbols the source line references.
-
-- Which pass the assembler is on: an undefined symbol only causes an
-  error condition on pass two.
-
-- The source line to be parsed.
-
-- A structure to fill with the results of the parse.
-
-- A function which can be called to report errors.
-
-Some instructions (DB, DW, DD for example) can require an arbitrary
-amount of storage, and so some of the members of the resulting
-`insn' structure will be dynamically allocated. The other function
-exported by `parser.c' is `cleanup_insn', which can be called to
-deallocate any dynamic storage associated with the results of a
-parse.
-
-names.c
--------
-
-This doesn't count as a module - it defines a few arrays which are
-shared between NASM and NDISASM, so it's a separate file which is
-#included by both parser.c and disasm.c.
-
-float.c
--------
-
-This is essentially a library module: it exports one function,
-`float_const', which converts an ASCII representation of a
-floating-point number into an x86-compatible binary representation,
-without using any built-in floating-point arithmetic (so it will run
-on any platform, portably). It calls nothing, and is called only by
-`parser.c'. Note that the function `float_const' must be passed an
-error reporting routine.
-
-assemble.c
-----------
-
-This module contains the code generator: it translates `insn'
-structures as returned from the parser module into actual generated
-code which can be placed in an output file. It exports two
-functions, `assemble' and `insn_size'.
-
-`insn_size' is designed to be called on pass one of assembly: it
-takes an `insn' structure as input, and returns the amount of space
-that would be taken up if the instruction described in the structure
-were to be converted to real machine code. `insn_size' also requires
-to be told the location (as a segment/offset pair) where the
-instruction would be assembled, the mode of assembly (16/32 bit
-default), and a function it can call to report errors.
-
-`assemble' is designed to be called on pass two: it takes all the
-parameters that `insn_size' does, but has an extra parameter which
-is an output driver. `assemble' actually converts the input
-instruction into machine code, and outputs the machine code by means
-of calling the `output' function of the driver.
-
-insnsa.c
---------
-
-This is another library module: it exports one very big array of
-instruction translations. It is generated automatically from the
-insns.dat file by the insns.pl script.
-
-labels.c
---------
-
-This module contains a label manager. It exports six functions:
-
-`init_labels' should be called before any other function in the
-module. `cleanup_labels' may be called after all other use of the
-module has finished, to deallocate storage.
-
-`define_label' is called to define new labels: you pass it the name
-of the label to be defined, and the (segment,offset) pair giving the
-value of the label. It is also passed an error-reporting function,
-and an output driver structure (so that it can call the output
-driver's label-definition function). `define_label' mentally
-prepends the name of the most recently defined non-local label to
-any label beginning with a period.
-
-`define_label_stub' is designed to be called in pass two, once all
-the labels have already been defined: it does nothing except to
-update the "most-recently-defined-non-local-label" status, so that
-references to local labels in pass two will work correctly.
-
-`declare_as_global' is used to declare that a label should be
-global. It must be called _before_ the label in question is defined.
-
-Finally, `lookup_label' attempts to translate a label name into a
-(segment,offset) pair. It returns non-zero on success.
-
-The label manager module is (theoretically :) restartable: after
-calling `cleanup_labels', you can call `init_labels' again, and
-start a new assembly with a new set of symbols.
-
-listing.c
----------
-
-This file contains the listing file generator. The interface to the
-module is through the one symbol it exports, `nasmlist', which is a
-structure containing six function pointers. The calling semantics of
-these functions isn't terribly well thought out, as yet, but it
-works (just about) so it's going to get left alone for now...
-
-outform.c
----------
-
-This small module contains a set of routines to manage a list of
-output formats, and select one given a keyword. It contains three
-small routines: `ofmt_register' which registers an output driver as
-part of the managed list, `ofmt_list' which lists the available
-drivers on stdout, and `ofmt_find' which tries to find the driver
-corresponding to a given name.
-
-The output modules
-------------------
-
-Each of the output modules, `outbin.o', `outelf.o' and so on,
-exports only one symbol, which is an output driver data structure
-containing pointers to all the functions needed to produce output
-files of the appropriate type.
-
-The exception to this is `outcoff.o', which exports _two_ output
-driver structures, since COFF and Win32 object file formats are very
-similar and most of the code is shared between them.
-
-nasm.c
-------
-
-This is the main program: it calls all the functions in the above
-modules, and puts them together to form a working assembler. We
-hope. :-)
-
-Segment Mechanism
------------------
-
-In NASM, the term `segment' is used to separate the different
-sections/segments/groups of which an object file is composed.
-Essentially, every address NASM is capable of understanding is
-expressed as an offset from the beginning of some segment.
-
-The defining property of a segment is that if two symbols are
-declared in the same segment, then the distance between them is
-fixed at assembly time. Hence every externally-declared variable
-must be declared in its own segment, since none of the locations of
-these are known, and so no distances may be computed at assembly
-time.
-
-The special segment value NO_SEG (-1) is used to denote an absolute
-value, e.g. a constant whose value does not depend on relocation,
-such as the _size_ of a data object.
-
-Apart from NO_SEG, segment indices all have their least significant
-bit clear, if they refer to actual in-memory segments. For each
-segment of this type, there is an auxiliary segment value, defined
-to be the same number but with the LSB set, which denotes the
-segment-base value of that segment, for object formats which support
-it (Microsoft .OBJ, for example).
-
-Hence, if `textsym' is declared in a code segment with index 2, then
-referencing `SEG textsym' would return zero offset from
-segment-index 3. Or, in object formats which don't understand such
-references, it would return an error instead.
-
-The next twist is SEG_ABS. Some symbols may be declared with a
-segment value of SEG_ABS plus a 16-bit constant: this indicates that
-they are far-absolute symbols, such as the BIOS keyboard buffer
-under MS-DOS, which always resides at 0040h:001Eh. Far-absolutes are
-handled with care in the parser, since they are supposed to evaluate
-simply to their offset part within expressions, but applying SEG to
-one should yield its segment part. A far-absolute should never find
-its way _out_ of the parser, unless it is enclosed in a WRT clause,
-in which case Microsoft 16-bit object formats will want to know
-about it.
-
-Porting Issues
---------------
-
-We have tried to write NASM in portable ANSI C: we do not assume
-little-endianness or any hardware characteristics (in order that
-NASM should work as a cross-assembler for x86 platforms, even when
-run on other, stranger machines).
-
-Assumptions we _have_ made are:
-
-- We assume that `short' is at least 16 bits, and `long' at least
-  32. This really _shouldn't_ be a problem, since Kernighan and
-  Ritchie tell us we are entitled to do so.
-
-- We rely on having more than 6 characters of significance on
-  externally linked symbols in the NASM sources. This may get fixed
-  at some point. We haven't yet come across a linker brain-dead
-  enough to get it wrong anyway.
-
-- We assume that `fopen' using the mode "wb" can be used to write
-  binary data files. This may be wrong on systems like VMS, with a
-  strange file system. Though why you'd want to run NASM on VMS is
-  beyond me anyway.
-
-That's it. Subject to those caveats, NASM should be completely
-portable. If not, we _really_ want to know about it.
-
-Porting Non-Issues
-------------------
-
-The following is _not_ a portability problem, although it looks like
-one.
-
-- When compiling with some versions of DJGPP, you may get errors
-  such as `warning: ANSI C forbids braced-groups within
-  expressions'. This isn't NASM's fault - the problem seems to be
-  that DJGPP's definitions of the <ctype.h> macros include a
-  GNU-specific C extension. So when compiling using -ansi and
-  -pedantic, DJGPP complains about its own header files. It isn't a
-  problem anyway, since it still generates correct code.
--- a/nasmbuild/nasm-2.13rc9/doc/makedocs.bat	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +0,0 @@
-@echo off
-if "%1"=="clean" goto makeclean
-if "%1"=="CLEAN" goto makeclean
-if "%1"=="spotless" goto spotless
-if "%1"=="SPOTLESS" goto spotless
-if "%1"=="install" goto install
-if "%1"=="INSTALL" goto install
-
-cls
-echo.
-echo.
-echo.
-echo    Usage:
-echo.
-echo        makedocs - no parameters - makes all Docs
-echo        makedocs install - installs already made docs in subdirectories
-echo        makedocs clean - removes docs from current directory
-echo        makedocs spotless - removes all - including default install dirs
-echo.
-echo.
-echo.
-echo.
-echo        Makedocs(.bat), with no parameters will create Nasm Documentation
-echo        in several formats: plain ascii text, ps, html, rtf, Windows help
-echo        format, and if you've got an "info" system installed, info format.
-echo.
-echo.
-echo                This requires Perl, and almost 4MB disk space.
-echo.
-echo.
-choice "                     Proceed with making docs? "
-if errorlevel 2 goto exit
-
-:makeall
-
-echo.
-echo.
-echo                        This takes a while. Stretch!
-echo.
-echo.
-
-perl inslist.pl
-perl rdsrc.pl<nasmdoc.src
-echo.
-echo.
-choice "                       Make *info* files? "
-if errorlevel 2 goto noinfo
-:makeinfo
-echo.
-echo.
-makeinfo nasmdoc.tex
-
-:noinfo
-
-:install
-
-if not exist nasmdoc.txt goto nofiles
-if not exist nasmdoc0.htm goto nofiles
-if not exist nasmdo10.htm goto nofiles
-if not exist nasmdoc.hpj goto nofiles
-if not exist nasmdoc.rtf goto nofiles
-if not exist nasmdoc.ps goto nofiles
-if not exist nasmdoc.tex goto nofiles
-goto gotfiles
-:nofiles
-echo.
-echo.
-echo.
-echo.
-echo                       Alert!      Files missing!
-echo.
-echo.
-choice "               Would you like to make them now? "
-if errorlevel 2 goto exit
-goto makeall
-
-:gotfiles
-
-:: get current path
-
-set oldprompt=%prompt%
-echo @prompt set nasdoc=$p>temp1.bat
-command /c temp1.bat>temp2.bat
-call temp2
-del temp1.bat
-del temp2.bat
-set prompt=%oldprompt%
-set oldprompt=
-
-echo.
-echo.
-echo.
-echo.
-echo        Current Directory is %nasdoc%
-echo        Nasm Documentation will be installed under this
-echo        as %nasdoc%\text\nasmdoc.txt, etc.
-echo.
-echo.
-choice "                   Change this directory? "
-if errorlevel 2 goto dirok
-
-echo.
-echo.
-echo.
-echo.
-echo      Directory *above* the directory you name (at least) should exist.
-echo      Nasm documentation will be installed *under* the directory you
-echo      name. E.G. \docs\nasm\html, etc. No trailing backslash!
-echo.
-echo.
-
-echo                Enter new name for base directory:
-set input=
-fc con nul /lb1 /n|date|find "1:">magic.bat
-echo set input=%%5>enter.bat
-call magic
-set nasdoc=%input%
-del magic.bat
-del enter.bat
-set input=
-
-echo.
-echo.
-md %nasdoc%
-echo.
-echo.
-
-choice "  Install Text docs in %nasdoc%\text ? "
-if errorlevel 2 goto notext
-md %nasdoc%\text
-copy nasmdoc.txt %nasdoc%\text
-:notext
-
-choice "  Install Html docs in %nasdoc%\html ? "
-if errorlevel 2 goto nohtml
-md %nasdoc%\html
-copy *.htm %nasdoc%\html
-:nohtml
-
-choice "  Install Info docs in %nasdoc%\info ? "
-if errorlevel 2 goto noinfodocs
-if not exist nasm.inf goto inofiles
-if not exist nasm.i9 goto inofiles
-goto gotifiles
-:inofiles
-echo.
-echo.
-echo                       Alert!      Files missing!
-echo.
-echo.
-choice "               Would you like to make them now? "
-if errorlevel 2 goto noinfodocs
-if not exist nasmdoc.tex goto makeall
-goto makeinfo
-
-:gotifiles
-
-md %nasdoc%\info
-copy nasm.i* %nasdoc%\info
-:noinfodocs
-
-choice "  Install Winhelp docs in %nasdoc%\winhelp ? "
-if errorlevel 2 goto nowinhelp
-md %nasdoc%\winhelp
-copy nasmdoc.rtf %nasdoc%\winhelp
-copy nasmdoc.hpj %nasdoc%\winhelp
-:nowinhelp
-
-choice "  Install Postscript docs in %nasdoc%\ps ? "
-if errorlevel 2 goto nops
-md %nasdoc%\ps
-copy nasmdoc.ps %nasdoc%\ps
-:nops
-goto cleanup
-
-:dirok
-
-choice "  Install Text docs in .\text ? "
-if errorlevel 2 goto notext2
-md text
-copy nasmdoc.txt text
-:notext2
-
-choice "  Install Html docs in .\html ? "
-if errorlevel 2 goto nohtml2
-md html
-copy *.htm html
-:nohtml2
-
-choice "  Install Info docs in .\info ? "
-if errorlevel 2 goto nid2
-
-if not exist nasm.inf goto inof2
-if not exist nasm.i9 goto inof2
-goto gifiles2
-:inof2
-echo.
-echo.
-echo                       Alert!      Files missing!
-echo.
-echo.
-choice "               Would you like to make them now? "
-if errorlevel 2 goto nid2
-if not exist nasmdoc.tex goto makeall
-goto makeinfo
-
-:gifiles2
-
-md info
-copy nasm.i* info
-:nid2
-
-choice "  Install Winhelp docs in .\winhelp ? "
-if errorlevel 2 goto nwhelp2
-md winhelp
-copy nasmdoc.rtf winhelp
-copy nasmdoc.hpj winhelp
-:nwhelp2
-
-choice "  Install Postscript docs in .\ps ? "
-if errorlevel 2 goto nops2
-md ps
-copy nasmdoc.ps ps
-:nops2
-
-
-:cleanup
-set nasdoc=
-
-echo.
-echo.
-echo.
-echo.
-choice "        Remove all files created, but not installed?"
-if not errorlevel 2 goto makeclean
-
-goto exit
-
-:spotless
-deltree /y text
-deltree /y html
-deltree /y info
-deltree /y winhelp
-deltree /y ps
-
-:makeclean
-del *.htm
-del *.rtf
-del *.hpj
-del *.txt
-del *.tex
-del *.ps
-del nasm.i*
-
-:exit
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pagd8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,232 +0,0 @@
-%PS_AvantGarde_Demi = (
-  name => 'AvantGarde-Demi',
-  widths => {
-    "A" => 740, "AE" => 900, "Aacute" => 740, "Acircumflex" => 740,
-    "Adieresis" => 740, "Agrave" => 740, "Aring" => 740,
-    "Atilde" => 740, "B" => 580, "C" => 780, "Ccedilla" => 780,
-    "D" => 700, "E" => 520, "Eacute" => 520, "Ecircumflex" => 520,
-    "Edieresis" => 520, "Egrave" => 520, "Eth" => 742, "F" => 480,
-    "G" => 840, "H" => 680, "I" => 280, "Iacute" => 280,
-    "Icircumflex" => 280, "Idieresis" => 280, "Igrave" => 280,
-    "J" => 480, "K" => 620, "L" => 440, "Lslash" => 480, "M" => 900,
-    "N" => 740, "Ntilde" => 740, "O" => 840, "OE" => 1060,
-    "Oacute" => 840, "Ocircumflex" => 840, "Odieresis" => 840,
-    "Ograve" => 840, "Oslash" => 840, "Otilde" => 840, "P" => 560,
-    "Q" => 840, "R" => 580, "S" => 520, "Scaron" => 520, "T" => 420,
-    "Thorn" => 560, "U" => 640, "Uacute" => 640, "Ucircumflex" => 640,
-    "Udieresis" => 640, "Ugrave" => 640, "V" => 700, "W" => 900,
-    "X" => 680, "Y" => 620, "Yacute" => 620, "Ydieresis" => 620,
-    "Z" => 500, "Zcaron" => 500, "a" => 660, "aacute" => 660,
-    "acircumflex" => 660, "acute" => 420, "adieresis" => 660,
-    "ae" => 1080, "agrave" => 660, "ampersand" => 680, "aring" => 660,
-    "asciicircum" => 600, "asciitilde" => 600, "asterisk" => 440,
-    "at" => 740, "atilde" => 660, "b" => 660, "backslash" => 640,
-    "bar" => 600, "braceleft" => 340, "braceright" => 340,
-    "bracketleft" => 320, "bracketright" => 320, "breve" => 480,
-    "brokenbar" => 600, "bullet" => 600, "c" => 640, "caron" => 540,
-    "ccedilla" => 640, "cedilla" => 340, "cent" => 560,
-    "circumflex" => 540, "colon" => 280, "comma" => 280,
-    "copyright" => 740, "currency" => 560, "d" => 660, "dagger" => 560,
-    "daggerdbl" => 560, "degree" => 400, "dieresis" => 500,
-    "divide" => 600, "dollar" => 560, "dotaccent" => 280,
-    "dotlessi" => 240, "e" => 640, "eacute" => 640,
-    "ecircumflex" => 640, "edieresis" => 640, "egrave" => 640,
-    "eight" => 560, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 600, "eth" => 640, "exclam" => 280,
-    "exclamdown" => 280, "f" => 280, "fi" => 520, "five" => 560,
-    "fl" => 520, "florin" => 560, "four" => 560, "fraction" => 160,
-    "g" => 660, "germandbls" => 600, "grave" => 420, "greater" => 600,
-    "guillemotleft" => 460, "guillemotright" => 460,
-    "guilsinglleft" => 240, "guilsinglright" => 240, "h" => 600,
-    "hungarumlaut" => 700, "hyphen" => 420, "i" => 240,
-    "iacute" => 240, "icircumflex" => 240, "idieresis" => 240,
-    "igrave" => 240, "j" => 260, "k" => 580, "l" => 240, "less" => 600,
-    "logicalnot" => 600, "lslash" => 320, "m" => 940, "macron" => 420,
-    "minus" => 600, "mu" => 576, "multiply" => 600, "n" => 600,
-    "nine" => 560, "ntilde" => 600, "numbersign" => 560, "o" => 640,
-    "oacute" => 640, "ocircumflex" => 640, "odieresis" => 640,
-    "oe" => 1080, "ogonek" => 340, "ograve" => 640, "one" => 560,
-    "onehalf" => 840, "onequarter" => 840, "onesuperior" => 336,
-    "ordfeminine" => 360, "ordmasculine" => 360, "oslash" => 660,
-    "otilde" => 640, "p" => 660, "paragraph" => 600,
-    "parenleft" => 380, "parenright" => 380, "percent" => 860,
-    "period" => 280, "periodcentered" => 280, "perthousand" => 1280,
-    "plus" => 600, "plusminus" => 600, "q" => 660, "question" => 560,
-    "questiondown" => 560, "quotedbl" => 360, "quotedblbase" => 480,
-    "quotedblleft" => 480, "quotedblright" => 480, "quoteleft" => 280,
-    "quoteright" => 280, "quotesinglbase" => 280, "quotesingle" => 220,
-    "r" => 320, "registered" => 740, "ring" => 360, "s" => 440,
-    "scaron" => 440, "section" => 560, "semicolon" => 280,
-    "seven" => 560, "six" => 560, "slash" => 460, "space" => 280,
-    "sterling" => 560, "t" => 300, "thorn" => 660, "three" => 560,
-    "threequarters" => 840, "threesuperior" => 336, "tilde" => 480,
-    "trademark" => 1000, "two" => 560, "twosuperior" => 336,
-    "u" => 600, "uacute" => 600, "ucircumflex" => 600,
-    "udieresis" => 600, "ugrave" => 600, "underscore" => 500,
-    "v" => 560, "w" => 800, "x" => 560, "y" => 580, "yacute" => 580,
-    "ydieresis" => 580, "yen" => 560, "z" => 460, "zcaron" => 460,
-    "zero" => 560,
-  },
-  kern => {
-    "A" => {
-      "C" => -40, "G" => -40, "O" => -50, "Q" => -50, "T" => -25,
-      "U" => -40, "V" => -102, "W" => -60, "Y" => -80,
-      "quoteright" => -90, "u" => -20, "v" => -70, "w" => -65,
-      "y" => -50,
-    },
-    "B" => {
-      "A" => -10,
-    },
-    "C" => {
-      "A" => -40,
-    },
-    "D" => {
-      "A" => -50, "V" => -50, "W" => -25, "Y" => -45, "comma" => -20,
-      "period" => -20,
-    },
-    "F" => {
-      "A" => -75, "a" => -20, "comma" => -162, "e" => -20,
-      "period" => -129,
-    },
-    "G" => {
-      "Y" => -15, "comma" => -20, "period" => -20,
-    },
-    "J" => {
-      "A" => -30, "a" => -20, "period" => -15,
-    },
-    "K" => {
-      "O" => -30, "e" => -40, "o" => -45, "u" => -15, "y" => -20,
-    },
-    "L" => {
-      "T" => -46, "V" => -85, "W" => -55, "Y" => -80,
-      "quotedblright" => -30, "quoteright" => -30, "y" => -23,
-    },
-    "O" => {
-      "A" => -60, "T" => -15, "V" => -45, "W" => -20, "X" => -30,
-      "Y" => -30, "comma" => -30, "period" => -30,
-    },
-    "P" => {
-      "A" => -100, "a" => -20, "comma" => -220, "e" => -20, "o" => -20,
-      "period" => -200,
-    },
-    "Q" => {
-      "comma" => 20,
-    },
-    "R" => {
-      "O" => 25, "T" => 40, "U" => 25, "V" => -10, "W" => 25,
-    },
-    "S" => {
-      "comma" => 20,
-    },
-    "T" => {
-      "A" => -25, "O" => -15, "a" => -70, "colon" => -15,
-      "comma" => -82, "e" => -49, "hyphen" => -75, "o" => -49,
-      "period" => -91, "r" => -30, "semicolon" => -29, "u" => -46,
-      "w" => -55, "y" => -10,
-    },
-    "U" => {
-      "A" => -40, "comma" => -20, "period" => -20,
-    },
-    "V" => {
-      "A" => -102, "G" => -20, "O" => -45, "a" => -95, "colon" => -18,
-      "comma" => -145, "e" => -101, "hyphen" => -75, "i" => -15,
-      "o" => -101, "period" => -145, "semicolon" => -33, "u" => -55,
-    },
-    "W" => {
-      "A" => -58, "O" => -20, "a" => -50, "colon" => -15,
-      "comma" => -106, "e" => -47, "hyphen" => -35, "i" => -10,
-      "o" => -46, "period" => -106, "semicolon" => -33, "u" => -30,
-      "y" => -15,
-    },
-    "Y" => {
-      "A" => -80, "O" => -30, "a" => -93, "colon" => -10,
-      "comma" => -145, "e" => -89, "hyphen" => -100, "o" => -89,
-      "period" => -145, "semicolon" => -23, "u" => -52,
-    },
-    "a" => {
-      "b" => 5, "p" => 20, "t" => 5,
-    },
-    "b" => {
-      "v" => -20, "y" => -20,
-    },
-    "c" => {
-      "k" => -15, "l" => -15, "y" => -20,
-    },
-    "comma" => {
-      "quotedblright" => -70, "quoteright" => -70, "space" => -50,
-    },
-    "e" => {
-      "v" => -20, "w" => -20, "x" => -20, "y" => -20,
-    },
-    "f" => {
-      "a" => -15, "comma" => -40, "dotlessi" => -15, "f" => -20,
-      "i" => -15, "l" => -15, "o" => -20, "period" => -40,
-    },
-    "g" => {
-      "a" => 15, "i" => 25,
-    },
-    "h" => {
-      "y" => -30,
-    },
-    "k" => {
-      "e" => -40, "o" => -30, "y" => -5,
-    },
-    "m" => {
-      "u" => -20, "y" => -20,
-    },
-    "n" => {
-      "v" => -30, "y" => -15,
-    },
-    "o" => {
-      "v" => -30, "w" => -20, "x" => -30, "y" => -20,
-    },
-    "p" => {
-      "y" => -20,
-    },
-    "period" => {
-      "quotedblright" => -70, "quoteright" => -70, "space" => -50,
-    },
-    "quotedblleft" => {
-      "A" => -50,
-    },
-    "quotedblright" => {
-      "space" => -50,
-    },
-    "quoteleft" => {
-      "A" => -50, "quoteleft" => -80,
-    },
-    "quoteright" => {
-      "d" => -50, "quoteright" => -80, "r" => -20, "s" => -15,
-      "space" => -50, "t" => 10, "v" => -10,
-    },
-    "r" => {
-      "c" => -7, "comma" => -75, "d" => -6, "e" => -4, "g" => 1,
-      "hyphen" => -60, "i" => 20, "k" => 5, "l" => 20, "m" => 15,
-      "n" => 21, "o" => -15, "p" => 20, "period" => -73, "q" => -8,
-      "s" => 20, "t" => 20, "u" => 20, "v" => 40, "y" => 40,
-    },
-    "s" => {
-      "comma" => 20, "period" => 20,
-    },
-    "space" => {
-      "A" => -20, "T" => -25, "V" => -80, "W" => -25, "Y" => -60,
-      "quotedblleft" => -50, "quoteleft" => -50,
-    },
-    "v" => {
-      "a" => -30, "comma" => -90, "e" => -20, "o" => -20,
-      "period" => -90,
-    },
-    "w" => {
-      "a" => -30, "comma" => -90, "e" => -20, "o" => -30,
-      "period" => -90,
-    },
-    "x" => {
-      "e" => -20,
-    },
-    "y" => {
-      "a" => -30, "c" => -35, "comma" => -100, "e" => -20, "o" => -30,
-      "period" => -100,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pagdo8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,232 +0,0 @@
-%PS_AvantGarde_DemiOblique = (
-  name => 'AvantGarde-DemiOblique',
-  widths => {
-    "A" => 740, "AE" => 900, "Aacute" => 740, "Acircumflex" => 740,
-    "Adieresis" => 740, "Agrave" => 740, "Aring" => 740,
-    "Atilde" => 740, "B" => 580, "C" => 780, "Ccedilla" => 780,
-    "D" => 700, "E" => 520, "Eacute" => 520, "Ecircumflex" => 520,
-    "Edieresis" => 520, "Egrave" => 520, "Eth" => 742, "F" => 480,
-    "G" => 840, "H" => 680, "I" => 280, "Iacute" => 280,
-    "Icircumflex" => 280, "Idieresis" => 280, "Igrave" => 280,
-    "J" => 480, "K" => 620, "L" => 440, "Lslash" => 480, "M" => 900,
-    "N" => 740, "Ntilde" => 740, "O" => 840, "OE" => 1060,
-    "Oacute" => 840, "Ocircumflex" => 840, "Odieresis" => 840,
-    "Ograve" => 840, "Oslash" => 840, "Otilde" => 840, "P" => 560,
-    "Q" => 840, "R" => 580, "S" => 520, "Scaron" => 520, "T" => 420,
-    "Thorn" => 560, "U" => 640, "Uacute" => 640, "Ucircumflex" => 640,
-    "Udieresis" => 640, "Ugrave" => 640, "V" => 700, "W" => 900,
-    "X" => 680, "Y" => 620, "Yacute" => 620, "Ydieresis" => 620,
-    "Z" => 500, "Zcaron" => 500, "a" => 660, "aacute" => 660,
-    "acircumflex" => 660, "acute" => 420, "adieresis" => 660,
-    "ae" => 1080, "agrave" => 660, "ampersand" => 680, "aring" => 660,
-    "asciicircum" => 600, "asciitilde" => 600, "asterisk" => 440,
-    "at" => 740, "atilde" => 660, "b" => 660, "backslash" => 640,
-    "bar" => 600, "braceleft" => 340, "braceright" => 340,
-    "bracketleft" => 320, "bracketright" => 320, "breve" => 480,
-    "brokenbar" => 600, "bullet" => 600, "c" => 640, "caron" => 540,
-    "ccedilla" => 640, "cedilla" => 340, "cent" => 560,
-    "circumflex" => 540, "colon" => 280, "comma" => 280,
-    "copyright" => 740, "currency" => 560, "d" => 660, "dagger" => 560,
-    "daggerdbl" => 560, "degree" => 400, "dieresis" => 500,
-    "divide" => 600, "dollar" => 560, "dotaccent" => 280,
-    "dotlessi" => 240, "e" => 640, "eacute" => 640,
-    "ecircumflex" => 640, "edieresis" => 640, "egrave" => 640,
-    "eight" => 560, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 600, "eth" => 640, "exclam" => 280,
-    "exclamdown" => 280, "f" => 280, "fi" => 520, "five" => 560,
-    "fl" => 520, "florin" => 560, "four" => 560, "fraction" => 160,
-    "g" => 660, "germandbls" => 600, "grave" => 420, "greater" => 600,
-    "guillemotleft" => 460, "guillemotright" => 460,
-    "guilsinglleft" => 240, "guilsinglright" => 240, "h" => 600,
-    "hungarumlaut" => 700, "hyphen" => 420, "i" => 240,
-    "iacute" => 240, "icircumflex" => 240, "idieresis" => 240,
-    "igrave" => 240, "j" => 260, "k" => 580, "l" => 240, "less" => 600,
-    "logicalnot" => 600, "lslash" => 320, "m" => 940, "macron" => 420,
-    "minus" => 600, "mu" => 576, "multiply" => 600, "n" => 600,
-    "nine" => 560, "ntilde" => 600, "numbersign" => 560, "o" => 640,
-    "oacute" => 640, "ocircumflex" => 640, "odieresis" => 640,
-    "oe" => 1080, "ogonek" => 340, "ograve" => 640, "one" => 560,
-    "onehalf" => 840, "onequarter" => 840, "onesuperior" => 336,
-    "ordfeminine" => 360, "ordmasculine" => 360, "oslash" => 660,
-    "otilde" => 640, "p" => 660, "paragraph" => 600,
-    "parenleft" => 380, "parenright" => 380, "percent" => 860,
-    "period" => 280, "periodcentered" => 280, "perthousand" => 1280,
-    "plus" => 600, "plusminus" => 600, "q" => 660, "question" => 560,
-    "questiondown" => 560, "quotedbl" => 360, "quotedblbase" => 480,
-    "quotedblleft" => 480, "quotedblright" => 480, "quoteleft" => 280,
-    "quoteright" => 280, "quotesinglbase" => 280, "quotesingle" => 220,
-    "r" => 320, "registered" => 740, "ring" => 360, "s" => 440,
-    "scaron" => 440, "section" => 560, "semicolon" => 280,
-    "seven" => 560, "six" => 560, "slash" => 460, "space" => 280,
-    "sterling" => 560, "t" => 300, "thorn" => 660, "three" => 560,
-    "threequarters" => 840, "threesuperior" => 336, "tilde" => 480,
-    "trademark" => 1000, "two" => 560, "twosuperior" => 336,
-    "u" => 600, "uacute" => 600, "ucircumflex" => 600,
-    "udieresis" => 600, "ugrave" => 600, "underscore" => 500,
-    "v" => 560, "w" => 800, "x" => 560, "y" => 580, "yacute" => 580,
-    "ydieresis" => 580, "yen" => 560, "z" => 460, "zcaron" => 460,
-    "zero" => 560,
-  },
-  kern => {
-    "A" => {
-      "C" => -40, "G" => -40, "O" => -50, "Q" => -50, "T" => -25,
-      "U" => -40, "V" => -102, "W" => -60, "Y" => -80,
-      "quoteright" => -90, "u" => -20, "v" => -70, "w" => -65,
-      "y" => -50,
-    },
-    "B" => {
-      "A" => -10,
-    },
-    "C" => {
-      "A" => -40,
-    },
-    "D" => {
-      "A" => -50, "V" => -50, "W" => -25, "Y" => -45, "comma" => -20,
-      "period" => -20,
-    },
-    "F" => {
-      "A" => -75, "a" => -20, "comma" => -162, "e" => -20,
-      "period" => -129,
-    },
-    "G" => {
-      "Y" => -15, "comma" => -20, "period" => -20,
-    },
-    "J" => {
-      "A" => -30, "a" => -20, "period" => -15,
-    },
-    "K" => {
-      "O" => -30, "e" => -40, "o" => -45, "u" => -15, "y" => -20,
-    },
-    "L" => {
-      "T" => -46, "V" => -85, "W" => -55, "Y" => -80,
-      "quotedblright" => -30, "quoteright" => -30, "y" => -23,
-    },
-    "O" => {
-      "A" => -60, "T" => -15, "V" => -45, "W" => -20, "X" => -30,
-      "Y" => -30, "comma" => -30, "period" => -30,
-    },
-    "P" => {
-      "A" => -100, "a" => -20, "comma" => -220, "e" => -20, "o" => -20,
-      "period" => -200,
-    },
-    "Q" => {
-      "comma" => 20,
-    },
-    "R" => {
-      "O" => 25, "T" => 40, "U" => 25, "V" => -10, "W" => 25,
-    },
-    "S" => {
-      "comma" => 20,
-    },
-    "T" => {
-      "A" => -25, "O" => -15, "a" => -70, "colon" => -15,
-      "comma" => -82, "e" => -49, "hyphen" => -75, "o" => -49,
-      "period" => -91, "r" => -30, "semicolon" => -29, "u" => -46,
-      "w" => -55, "y" => -10,
-    },
-    "U" => {
-      "A" => -40, "comma" => -20, "period" => -20,
-    },
-    "V" => {
-      "A" => -102, "G" => -20, "O" => -45, "a" => -95, "colon" => -18,
-      "comma" => -145, "e" => -101, "hyphen" => -75, "i" => -15,
-      "o" => -101, "period" => -145, "semicolon" => -33, "u" => -55,
-    },
-    "W" => {
-      "A" => -58, "O" => -20, "a" => -50, "colon" => -15,
-      "comma" => -106, "e" => -47, "hyphen" => -35, "i" => -10,
-      "o" => -46, "period" => -106, "semicolon" => -33, "u" => -30,
-      "y" => -15,
-    },
-    "Y" => {
-      "A" => -80, "O" => -30, "a" => -93, "colon" => -10,
-      "comma" => -145, "e" => -89, "hyphen" => -100, "o" => -89,
-      "period" => -145, "semicolon" => -23, "u" => -52,
-    },
-    "a" => {
-      "b" => 5, "p" => 20, "t" => 5,
-    },
-    "b" => {
-      "v" => -20, "y" => -20,
-    },
-    "c" => {
-      "k" => -15, "l" => -15, "y" => -20,
-    },
-    "comma" => {
-      "quotedblright" => -70, "quoteright" => -70, "space" => -50,
-    },
-    "e" => {
-      "v" => -20, "w" => -20, "x" => -20, "y" => -20,
-    },
-    "f" => {
-      "a" => -15, "comma" => -40, "dotlessi" => -15, "f" => -20,
-      "i" => -15, "l" => -15, "o" => -20, "period" => -40,
-    },
-    "g" => {
-      "a" => 15, "i" => 25,
-    },
-    "h" => {
-      "y" => -30,
-    },
-    "k" => {
-      "e" => -40, "o" => -30, "y" => -5,
-    },
-    "m" => {
-      "u" => -20, "y" => -20,
-    },
-    "n" => {
-      "v" => -30, "y" => -15,
-    },
-    "o" => {
-      "v" => -30, "w" => -20, "x" => -30, "y" => -20,
-    },
-    "p" => {
-      "y" => -20,
-    },
-    "period" => {
-      "quotedblright" => -70, "quoteright" => -70, "space" => -50,
-    },
-    "quotedblleft" => {
-      "A" => -50,
-    },
-    "quotedblright" => {
-      "space" => -50,
-    },
-    "quoteleft" => {
-      "A" => -50, "quoteleft" => -80,
-    },
-    "quoteright" => {
-      "d" => -50, "quoteright" => -80, "r" => -20, "s" => -15,
-      "space" => -50, "t" => 10, "v" => -10,
-    },
-    "r" => {
-      "c" => -7, "comma" => -75, "d" => -6, "e" => -4, "g" => 1,
-      "hyphen" => -60, "i" => 20, "k" => 5, "l" => 20, "m" => 15,
-      "n" => 21, "o" => -15, "p" => 20, "period" => -73, "q" => -8,
-      "s" => 20, "t" => 20, "u" => 20, "v" => 40, "y" => 40,
-    },
-    "s" => {
-      "comma" => 20, "period" => 20,
-    },
-    "space" => {
-      "A" => -20, "T" => -25, "V" => -80, "W" => -25, "Y" => -60,
-      "quotedblleft" => -50, "quoteleft" => -50,
-    },
-    "v" => {
-      "a" => -30, "comma" => -90, "e" => -20, "o" => -20,
-      "period" => -90,
-    },
-    "w" => {
-      "a" => -30, "comma" => -90, "e" => -20, "o" => -30,
-      "period" => -90,
-    },
-    "x" => {
-      "e" => -20,
-    },
-    "y" => {
-      "a" => -30, "c" => -35, "comma" => -100, "e" => -20, "o" => -30,
-      "period" => -100,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pagk8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,229 +0,0 @@
-%PS_AvantGarde_Book = (
-  name => 'AvantGarde-Book',
-  widths => {
-    "A" => 740, "AE" => 992, "Aacute" => 740, "Acircumflex" => 740,
-    "Adieresis" => 740, "Agrave" => 740, "Aring" => 740,
-    "Atilde" => 740, "B" => 574, "C" => 813, "Ccedilla" => 813,
-    "D" => 744, "E" => 536, "Eacute" => 536, "Ecircumflex" => 536,
-    "Edieresis" => 536, "Egrave" => 536, "Eth" => 790, "F" => 485,
-    "G" => 872, "H" => 683, "I" => 226, "Iacute" => 226,
-    "Icircumflex" => 226, "Idieresis" => 226, "Igrave" => 226,
-    "J" => 482, "K" => 591, "L" => 462, "Lslash" => 517, "M" => 919,
-    "N" => 740, "Ntilde" => 740, "O" => 869, "OE" => 1194,
-    "Oacute" => 869, "Ocircumflex" => 869, "Odieresis" => 869,
-    "Ograve" => 869, "Oslash" => 868, "Otilde" => 869, "P" => 592,
-    "Q" => 871, "R" => 607, "S" => 498, "Scaron" => 498, "T" => 426,
-    "Thorn" => 592, "U" => 655, "Uacute" => 655, "Ucircumflex" => 655,
-    "Udieresis" => 655, "Ugrave" => 655, "V" => 702, "W" => 960,
-    "X" => 609, "Y" => 592, "Yacute" => 592, "Ydieresis" => 592,
-    "Z" => 480, "Zcaron" => 480, "a" => 683, "aacute" => 683,
-    "acircumflex" => 683, "acute" => 375, "adieresis" => 683,
-    "ae" => 1157, "agrave" => 683, "ampersand" => 757, "aring" => 683,
-    "asciicircum" => 606, "asciitilde" => 606, "asterisk" => 425,
-    "at" => 867, "atilde" => 683, "b" => 682, "backslash" => 605,
-    "bar" => 672, "braceleft" => 351, "braceright" => 351,
-    "bracketleft" => 351, "bracketright" => 351, "breve" => 453,
-    "brokenbar" => 672, "bullet" => 606, "c" => 647, "caron" => 502,
-    "ccedilla" => 647, "cedilla" => 324, "cent" => 554,
-    "circumflex" => 502, "colon" => 277, "comma" => 277,
-    "copyright" => 747, "currency" => 554, "d" => 685, "dagger" => 553,
-    "daggerdbl" => 553, "degree" => 400, "dieresis" => 369,
-    "divide" => 606, "dollar" => 554, "dotaccent" => 222,
-    "dotlessi" => 200, "e" => 650, "eacute" => 650,
-    "ecircumflex" => 650, "edieresis" => 650, "egrave" => 650,
-    "eight" => 554, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 606, "eth" => 655, "exclam" => 295,
-    "exclamdown" => 295, "f" => 314, "fi" => 487, "five" => 554,
-    "fl" => 485, "florin" => 554, "four" => 554, "fraction" => 166,
-    "g" => 673, "germandbls" => 554, "grave" => 378, "greater" => 606,
-    "guillemotleft" => 425, "guillemotright" => 425,
-    "guilsinglleft" => 251, "guilsinglright" => 251, "h" => 610,
-    "hungarumlaut" => 552, "hyphen" => 332, "i" => 200,
-    "iacute" => 200, "icircumflex" => 200, "idieresis" => 200,
-    "igrave" => 200, "j" => 203, "k" => 502, "l" => 200, "less" => 606,
-    "logicalnot" => 606, "lslash" => 300, "m" => 938, "macron" => 485,
-    "minus" => 606, "mu" => 608, "multiply" => 606, "n" => 610,
-    "nine" => 554, "ntilde" => 610, "numbersign" => 554, "o" => 655,
-    "oacute" => 655, "ocircumflex" => 655, "odieresis" => 655,
-    "oe" => 1137, "ogonek" => 302, "ograve" => 655, "one" => 554,
-    "onehalf" => 831, "onequarter" => 831, "onesuperior" => 332,
-    "ordfeminine" => 369, "ordmasculine" => 369, "oslash" => 653,
-    "otilde" => 655, "p" => 682, "paragraph" => 564,
-    "parenleft" => 369, "parenright" => 369, "percent" => 775,
-    "period" => 277, "periodcentered" => 277, "perthousand" => 1174,
-    "plus" => 606, "plusminus" => 606, "q" => 682, "question" => 591,
-    "questiondown" => 591, "quotedbl" => 309, "quotedblbase" => 502,
-    "quotedblleft" => 502, "quotedblright" => 484, "quoteleft" => 351,
-    "quoteright" => 351, "quotesinglbase" => 354, "quotesingle" => 198,
-    "r" => 301, "registered" => 747, "ring" => 332, "s" => 388,
-    "scaron" => 388, "section" => 615, "semicolon" => 277,
-    "seven" => 554, "six" => 554, "slash" => 437, "space" => 277,
-    "sterling" => 554, "t" => 339, "thorn" => 682, "three" => 554,
-    "threequarters" => 831, "threesuperior" => 332, "tilde" => 439,
-    "trademark" => 1000, "two" => 554, "twosuperior" => 332,
-    "u" => 608, "uacute" => 608, "ucircumflex" => 608,
-    "udieresis" => 608, "ugrave" => 608, "underscore" => 500,
-    "v" => 554, "w" => 831, "x" => 480, "y" => 536, "yacute" => 536,
-    "ydieresis" => 536, "yen" => 554, "z" => 425, "zcaron" => 425,
-    "zero" => 554,
-  },
-  kern => {
-    "A" => {
-      "C" => -40, "G" => -40, "O" => -50, "Q" => -40, "T" => -45,
-      "U" => -40, "V" => -102, "W" => -60, "Y" => -92,
-      "quotedblright" => -100, "quoteright" => -100, "u" => -20,
-      "v" => -70, "w" => -65, "y" => -62,
-    },
-    "B" => {
-      "A" => -10,
-    },
-    "C" => {
-      "A" => -40,
-    },
-    "D" => {
-      "A" => -50, "V" => -50, "W" => -10, "Y" => -30, "comma" => -20,
-      "period" => -20,
-    },
-    "F" => {
-      "A" => -75, "a" => -20, "comma" => -180, "e" => -20,
-      "period" => -160,
-    },
-    "G" => {
-      "Y" => -20, "comma" => -20, "period" => -20,
-    },
-    "J" => {
-      "A" => -30, "a" => -20, "period" => -15,
-    },
-    "K" => {
-      "O" => -20, "e" => -20, "o" => -15,
-    },
-    "L" => {
-      "T" => -46, "V" => -113, "W" => -67, "Y" => -91,
-      "quotedblright" => -130, "quoteright" => -130, "y" => -23,
-    },
-    "O" => {
-      "A" => -60, "T" => -30, "V" => -60, "W" => -20, "X" => -30,
-      "Y" => -30, "comma" => -30, "period" => -30,
-    },
-    "P" => {
-      "A" => -114, "a" => -20, "comma" => -280, "e" => -20, "o" => -60,
-      "period" => -300,
-    },
-    "Q" => {
-      "comma" => 20,
-    },
-    "R" => {
-      "T" => 6, "V" => -10, "W" => 10, "Y" => -10,
-    },
-    "S" => {
-      "comma" => 20,
-    },
-    "T" => {
-      "A" => -45, "O" => -30, "a" => -90, "colon" => -15,
-      "comma" => -82, "e" => -49, "hyphen" => -75, "i" => 10,
-      "o" => -70, "period" => -91, "r" => -30, "semicolon" => -29,
-      "u" => -46, "w" => -55, "y" => -50,
-    },
-    "U" => {
-      "A" => -40, "comma" => -20, "period" => -20,
-    },
-    "V" => {
-      "A" => -102, "G" => -20, "O" => -60, "a" => -104, "colon" => -18,
-      "comma" => -145, "e" => -101, "hyphen" => -75, "i" => -5,
-      "o" => -101, "period" => -165, "semicolon" => -33, "u" => -40,
-    },
-    "W" => {
-      "A" => -58, "O" => -20, "a" => -50, "colon" => -15,
-      "comma" => -106, "e" => -47, "hyphen" => -35, "i" => 6,
-      "o" => -46, "period" => -106, "semicolon" => -33, "u" => -30,
-      "y" => -2,
-    },
-    "Y" => {
-      "A" => -92, "O" => -30, "a" => -93, "colon" => -10,
-      "comma" => -145, "e" => -89, "hyphen" => -85, "o" => -89,
-      "period" => -175, "semicolon" => -23, "u" => -52,
-    },
-    "a" => {
-      "b" => 20, "p" => 20,
-    },
-    "b" => {
-      "v" => -20, "y" => -20,
-    },
-    "c" => {
-      "k" => -15, "y" => -20,
-    },
-    "comma" => {
-      "quotedblright" => -120, "quoteright" => -120, "space" => -110,
-    },
-    "e" => {
-      "v" => -20, "w" => -20, "y" => -20,
-    },
-    "f" => {
-      "a" => -40, "comma" => -50, "dotlessi" => -34, "e" => -20,
-      "f" => -60, "i" => -34, "l" => -30, "o" => -40, "period" => -50,
-    },
-    "g" => {
-      "a" => -15,
-    },
-    "h" => {
-      "y" => -30,
-    },
-    "k" => {
-      "e" => -15, "y" => -5,
-    },
-    "m" => {
-      "a" => -20, "u" => -20, "y" => -20,
-    },
-    "n" => {
-      "v" => -20, "y" => -15,
-    },
-    "o" => {
-      "v" => -30, "w" => -20, "x" => -15, "y" => -20,
-    },
-    "p" => {
-      "y" => -20,
-    },
-    "period" => {
-      "quotedblright" => -120, "quoteright" => -120, "space" => -110,
-    },
-    "quotedblleft" => {
-      "A" => -100, "quoteleft" => -35,
-    },
-    "quotedblright" => {
-      "space" => -110,
-    },
-    "quoteleft" => {
-      "A" => -100, "quoteleft" => -203,
-    },
-    "quoteright" => {
-      "d" => -110, "quotedblright" => -35, "quoteright" => -203,
-      "r" => -20, "s" => -15, "space" => -110, "t" => 10, "v" => -30,
-    },
-    "r" => {
-      "a" => -20, "c" => -20, "comma" => -75, "d" => -6, "e" => -4,
-      "g" => -15, "hyphen" => -60, "i" => 20, "k" => 20, "l" => 20,
-      "m" => 28, "n" => 21, "o" => -20, "p" => 20, "period" => -73,
-      "q" => -8, "s" => 20, "t" => 20, "u" => 20, "v" => 40, "y" => 40,
-    },
-    "s" => {
-      "comma" => 20, "period" => 20,
-    },
-    "space" => {
-      "A" => -20, "T" => -25, "V" => -50, "W" => -25, "Y" => -60,
-      "quotedblleft" => -110, "quoteleft" => -110,
-    },
-    "v" => {
-      "a" => -30, "comma" => -100, "e" => -20, "o" => -30,
-      "period" => -130,
-    },
-    "w" => {
-      "a" => -30, "comma" => -90, "e" => -20, "h" => 15, "o" => -30,
-      "period" => -100,
-    },
-    "y" => {
-      "a" => -30, "comma" => -110, "e" => -20, "o" => -30,
-      "period" => -125,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pagko8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,229 +0,0 @@
-%PS_AvantGarde_BookOblique = (
-  name => 'AvantGarde-BookOblique',
-  widths => {
-    "A" => 740, "AE" => 992, "Aacute" => 740, "Acircumflex" => 740,
-    "Adieresis" => 740, "Agrave" => 740, "Aring" => 740,
-    "Atilde" => 740, "B" => 574, "C" => 813, "Ccedilla" => 813,
-    "D" => 744, "E" => 536, "Eacute" => 536, "Ecircumflex" => 536,
-    "Edieresis" => 536, "Egrave" => 536, "Eth" => 790, "F" => 485,
-    "G" => 872, "H" => 683, "I" => 226, "Iacute" => 226,
-    "Icircumflex" => 226, "Idieresis" => 226, "Igrave" => 226,
-    "J" => 482, "K" => 591, "L" => 462, "Lslash" => 517, "M" => 919,
-    "N" => 740, "Ntilde" => 740, "O" => 869, "OE" => 1194,
-    "Oacute" => 869, "Ocircumflex" => 869, "Odieresis" => 869,
-    "Ograve" => 869, "Oslash" => 868, "Otilde" => 869, "P" => 592,
-    "Q" => 871, "R" => 607, "S" => 498, "Scaron" => 498, "T" => 426,
-    "Thorn" => 592, "U" => 655, "Uacute" => 655, "Ucircumflex" => 655,
-    "Udieresis" => 655, "Ugrave" => 655, "V" => 702, "W" => 960,
-    "X" => 609, "Y" => 592, "Yacute" => 592, "Ydieresis" => 592,
-    "Z" => 480, "Zcaron" => 480, "a" => 683, "aacute" => 683,
-    "acircumflex" => 683, "acute" => 375, "adieresis" => 683,
-    "ae" => 1157, "agrave" => 683, "ampersand" => 757, "aring" => 683,
-    "asciicircum" => 606, "asciitilde" => 606, "asterisk" => 425,
-    "at" => 867, "atilde" => 683, "b" => 682, "backslash" => 605,
-    "bar" => 672, "braceleft" => 351, "braceright" => 351,
-    "bracketleft" => 351, "bracketright" => 351, "breve" => 453,
-    "brokenbar" => 672, "bullet" => 606, "c" => 647, "caron" => 502,
-    "ccedilla" => 647, "cedilla" => 324, "cent" => 554,
-    "circumflex" => 502, "colon" => 277, "comma" => 277,
-    "copyright" => 747, "currency" => 554, "d" => 685, "dagger" => 553,
-    "daggerdbl" => 553, "degree" => 400, "dieresis" => 369,
-    "divide" => 606, "dollar" => 554, "dotaccent" => 222,
-    "dotlessi" => 200, "e" => 650, "eacute" => 650,
-    "ecircumflex" => 650, "edieresis" => 650, "egrave" => 650,
-    "eight" => 554, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 606, "eth" => 655, "exclam" => 295,
-    "exclamdown" => 295, "f" => 314, "fi" => 487, "five" => 554,
-    "fl" => 485, "florin" => 554, "four" => 554, "fraction" => 166,
-    "g" => 673, "germandbls" => 554, "grave" => 378, "greater" => 606,
-    "guillemotleft" => 425, "guillemotright" => 425,
-    "guilsinglleft" => 251, "guilsinglright" => 251, "h" => 610,
-    "hungarumlaut" => 552, "hyphen" => 332, "i" => 200,
-    "iacute" => 200, "icircumflex" => 200, "idieresis" => 200,
-    "igrave" => 200, "j" => 203, "k" => 502, "l" => 200, "less" => 606,
-    "logicalnot" => 606, "lslash" => 300, "m" => 938, "macron" => 485,
-    "minus" => 606, "mu" => 608, "multiply" => 606, "n" => 610,
-    "nine" => 554, "ntilde" => 610, "numbersign" => 554, "o" => 655,
-    "oacute" => 655, "ocircumflex" => 655, "odieresis" => 655,
-    "oe" => 1137, "ogonek" => 302, "ograve" => 655, "one" => 554,
-    "onehalf" => 831, "onequarter" => 831, "onesuperior" => 332,
-    "ordfeminine" => 369, "ordmasculine" => 369, "oslash" => 653,
-    "otilde" => 655, "p" => 682, "paragraph" => 564,
-    "parenleft" => 369, "parenright" => 369, "percent" => 775,
-    "period" => 277, "periodcentered" => 277, "perthousand" => 1174,
-    "plus" => 606, "plusminus" => 606, "q" => 682, "question" => 591,
-    "questiondown" => 591, "quotedbl" => 309, "quotedblbase" => 502,
-    "quotedblleft" => 502, "quotedblright" => 484, "quoteleft" => 351,
-    "quoteright" => 351, "quotesinglbase" => 354, "quotesingle" => 198,
-    "r" => 301, "registered" => 747, "ring" => 332, "s" => 388,
-    "scaron" => 388, "section" => 615, "semicolon" => 277,
-    "seven" => 554, "six" => 554, "slash" => 437, "space" => 277,
-    "sterling" => 554, "t" => 339, "thorn" => 682, "three" => 554,
-    "threequarters" => 831, "threesuperior" => 332, "tilde" => 439,
-    "trademark" => 1000, "two" => 554, "twosuperior" => 332,
-    "u" => 608, "uacute" => 608, "ucircumflex" => 608,
-    "udieresis" => 608, "ugrave" => 608, "underscore" => 500,
-    "v" => 554, "w" => 831, "x" => 480, "y" => 536, "yacute" => 536,
-    "ydieresis" => 536, "yen" => 554, "z" => 425, "zcaron" => 425,
-    "zero" => 554,
-  },
-  kern => {
-    "A" => {
-      "C" => -40, "G" => -40, "O" => -50, "Q" => -40, "T" => -45,
-      "U" => -40, "V" => -102, "W" => -60, "Y" => -92,
-      "quotedblright" => -100, "quoteright" => -100, "u" => -20,
-      "v" => -70, "w" => -65, "y" => -62,
-    },
-    "B" => {
-      "A" => -10,
-    },
-    "C" => {
-      "A" => -40,
-    },
-    "D" => {
-      "A" => -50, "V" => -50, "W" => -10, "Y" => -30, "comma" => -20,
-      "period" => -20,
-    },
-    "F" => {
-      "A" => -75, "a" => -20, "comma" => -180, "e" => -20,
-      "period" => -160,
-    },
-    "G" => {
-      "Y" => -20, "comma" => -20, "period" => -20,
-    },
-    "J" => {
-      "A" => -30, "a" => -20, "period" => -15,
-    },
-    "K" => {
-      "O" => -20, "e" => -20, "o" => -15,
-    },
-    "L" => {
-      "T" => -46, "V" => -113, "W" => -67, "Y" => -91,
-      "quotedblright" => -130, "quoteright" => -130, "y" => -23,
-    },
-    "O" => {
-      "A" => -60, "T" => -30, "V" => -60, "W" => -20, "X" => -30,
-      "Y" => -30, "comma" => -30, "period" => -30,
-    },
-    "P" => {
-      "A" => -114, "a" => -20, "comma" => -280, "e" => -20, "o" => -60,
-      "period" => -300,
-    },
-    "Q" => {
-      "comma" => 20,
-    },
-    "R" => {
-      "T" => 6, "V" => -10, "W" => 10, "Y" => -10,
-    },
-    "S" => {
-      "comma" => 20,
-    },
-    "T" => {
-      "A" => -45, "O" => -30, "a" => -90, "colon" => -15,
-      "comma" => -82, "e" => -49, "hyphen" => -75, "i" => 10,
-      "o" => -70, "period" => -91, "r" => -30, "semicolon" => -29,
-      "u" => -46, "w" => -55, "y" => -50,
-    },
-    "U" => {
-      "A" => -40, "comma" => -20, "period" => -20,
-    },
-    "V" => {
-      "A" => -102, "G" => -20, "O" => -60, "a" => -104, "colon" => -18,
-      "comma" => -145, "e" => -101, "hyphen" => -75, "i" => -5,
-      "o" => -101, "period" => -165, "semicolon" => -33, "u" => -40,
-    },
-    "W" => {
-      "A" => -58, "O" => -20, "a" => -50, "colon" => -15,
-      "comma" => -106, "e" => -47, "hyphen" => -35, "i" => 6,
-      "o" => -46, "period" => -106, "semicolon" => -33, "u" => -30,
-      "y" => -2,
-    },
-    "Y" => {
-      "A" => -92, "O" => -30, "a" => -93, "colon" => -10,
-      "comma" => -145, "e" => -89, "hyphen" => -85, "o" => -89,
-      "period" => -175, "semicolon" => -23, "u" => -52,
-    },
-    "a" => {
-      "b" => 20, "p" => 20,
-    },
-    "b" => {
-      "v" => -20, "y" => -20,
-    },
-    "c" => {
-      "k" => -15, "y" => -20,
-    },
-    "comma" => {
-      "quotedblright" => -120, "quoteright" => -120, "space" => -110,
-    },
-    "e" => {
-      "v" => -20, "w" => -20, "y" => -20,
-    },
-    "f" => {
-      "a" => -40, "comma" => -50, "dotlessi" => -34, "e" => -20,
-      "f" => -60, "i" => -34, "l" => -30, "o" => -40, "period" => -50,
-    },
-    "g" => {
-      "a" => -15,
-    },
-    "h" => {
-      "y" => -30,
-    },
-    "k" => {
-      "e" => -15, "y" => -5,
-    },
-    "m" => {
-      "a" => -20, "u" => -20, "y" => -20,
-    },
-    "n" => {
-      "v" => -20, "y" => -15,
-    },
-    "o" => {
-      "v" => -30, "w" => -20, "x" => -15, "y" => -20,
-    },
-    "p" => {
-      "y" => -20,
-    },
-    "period" => {
-      "quotedblright" => -120, "quoteright" => -120, "space" => -110,
-    },
-    "quotedblleft" => {
-      "A" => -100, "quoteleft" => -35,
-    },
-    "quotedblright" => {
-      "space" => -110,
-    },
-    "quoteleft" => {
-      "A" => -100, "quoteleft" => -203,
-    },
-    "quoteright" => {
-      "d" => -110, "quotedblright" => -35, "quoteright" => -203,
-      "r" => -20, "s" => -15, "space" => -110, "t" => 10, "v" => -30,
-    },
-    "r" => {
-      "a" => -20, "c" => -20, "comma" => -75, "d" => -6, "e" => -4,
-      "g" => -15, "hyphen" => -60, "i" => 20, "k" => 20, "l" => 20,
-      "m" => 28, "n" => 21, "o" => -20, "p" => 20, "period" => -73,
-      "q" => -8, "s" => 20, "t" => 20, "u" => 20, "v" => 40, "y" => 40,
-    },
-    "s" => {
-      "comma" => 20, "period" => 20,
-    },
-    "space" => {
-      "A" => -20, "T" => -25, "V" => -50, "W" => -25, "Y" => -60,
-      "quotedblleft" => -110, "quoteleft" => -110,
-    },
-    "v" => {
-      "a" => -30, "comma" => -100, "e" => -20, "o" => -30,
-      "period" => -130,
-    },
-    "w" => {
-      "a" => -30, "comma" => -90, "e" => -20, "h" => 15, "o" => -30,
-      "period" => -100,
-    },
-    "y" => {
-      "a" => -30, "comma" => -110, "e" => -20, "o" => -30,
-      "period" => -125,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pbkd8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-%PS_Bookman_Demi = (
-  name => 'Bookman-Demi',
-  widths => {
-    "A" => 720, "AE" => 1140, "Aacute" => 720, "Acircumflex" => 720,
-    "Adieresis" => 720, "Agrave" => 720, "Aring" => 720,
-    "Atilde" => 720, "B" => 720, "C" => 740, "Ccedilla" => 740,
-    "D" => 780, "E" => 720, "Eacute" => 720, "Ecircumflex" => 720,
-    "Edieresis" => 720, "Egrave" => 720, "Eth" => 780, "F" => 680,
-    "G" => 780, "H" => 820, "I" => 400, "Iacute" => 400,
-    "Icircumflex" => 400, "Idieresis" => 400, "Igrave" => 400,
-    "J" => 640, "K" => 800, "L" => 640, "Lslash" => 640, "M" => 940,
-    "N" => 740, "Ntilde" => 740, "O" => 800, "OE" => 1220,
-    "Oacute" => 800, "Ocircumflex" => 800, "Odieresis" => 800,
-    "Ograve" => 800, "Oslash" => 800, "Otilde" => 800, "P" => 660,
-    "Q" => 800, "R" => 780, "S" => 660, "Scaron" => 660, "T" => 700,
-    "Thorn" => 660, "U" => 740, "Uacute" => 740, "Ucircumflex" => 740,
-    "Udieresis" => 740, "Ugrave" => 740, "V" => 720, "W" => 940,
-    "X" => 780, "Y" => 700, "Yacute" => 700, "Ydieresis" => 700,
-    "Z" => 640, "Zcaron" => 640, "a" => 580, "aacute" => 580,
-    "acircumflex" => 580, "acute" => 400, "adieresis" => 580,
-    "ae" => 880, "agrave" => 580, "ampersand" => 800, "aring" => 580,
-    "asciicircum" => 600, "asciitilde" => 600, "asterisk" => 460,
-    "at" => 820, "atilde" => 580, "b" => 600, "backslash" => 600,
-    "bar" => 600, "braceleft" => 320, "braceright" => 320,
-    "bracketleft" => 300, "bracketright" => 300, "breve" => 500,
-    "brokenbar" => 600, "bullet" => 460, "c" => 580, "caron" => 500,
-    "ccedilla" => 580, "cedilla" => 360, "cent" => 660,
-    "circumflex" => 500, "colon" => 340, "comma" => 340,
-    "copyright" => 740, "currency" => 660, "d" => 640, "dagger" => 440,
-    "daggerdbl" => 380, "degree" => 400, "dieresis" => 500,
-    "divide" => 600, "dollar" => 660, "dotaccent" => 320,
-    "dotlessi" => 360, "e" => 580, "eacute" => 580,
-    "ecircumflex" => 580, "edieresis" => 580, "egrave" => 580,
-    "eight" => 660, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 600, "eth" => 620, "exclam" => 360,
-    "exclamdown" => 360, "f" => 380, "fi" => 740, "five" => 660,
-    "fl" => 740, "florin" => 660, "four" => 660, "fraction" => 120,
-    "g" => 580, "germandbls" => 660, "grave" => 400, "greater" => 600,
-    "guillemotleft" => 400, "guillemotright" => 400,
-    "guilsinglleft" => 220, "guilsinglright" => 220, "h" => 680,
-    "hungarumlaut" => 440, "hyphen" => 360, "i" => 360,
-    "iacute" => 360, "icircumflex" => 360, "idieresis" => 360,
-    "igrave" => 360, "j" => 340, "k" => 660, "l" => 340, "less" => 600,
-    "logicalnot" => 600, "lslash" => 340, "m" => 1000, "macron" => 460,
-    "minus" => 600, "mu" => 660, "multiply" => 600, "n" => 680,
-    "nine" => 660, "ntilde" => 680, "numbersign" => 660, "o" => 620,
-    "oacute" => 620, "ocircumflex" => 620, "odieresis" => 620,
-    "oe" => 940, "ogonek" => 320, "ograve" => 620, "one" => 660,
-    "onehalf" => 990, "onequarter" => 990, "onesuperior" => 396,
-    "ordfeminine" => 400, "ordmasculine" => 400, "oslash" => 620,
-    "otilde" => 620, "p" => 640, "paragraph" => 800,
-    "parenleft" => 320, "parenright" => 320, "percent" => 940,
-    "period" => 340, "periodcentered" => 340, "perthousand" => 1360,
-    "plus" => 600, "plusminus" => 600, "q" => 620, "question" => 660,
-    "questiondown" => 660, "quotedbl" => 420, "quotedblbase" => 540,
-    "quotedblleft" => 540, "quotedblright" => 540, "quoteleft" => 320,
-    "quoteright" => 320, "quotesinglbase" => 320, "quotesingle" => 240,
-    "r" => 460, "registered" => 740, "ring" => 340, "s" => 520,
-    "scaron" => 520, "section" => 600, "semicolon" => 340,
-    "seven" => 660, "six" => 660, "slash" => 600, "space" => 340,
-    "sterling" => 660, "t" => 460, "thorn" => 640, "three" => 660,
-    "threequarters" => 990, "threesuperior" => 396, "tilde" => 480,
-    "trademark" => 980, "two" => 660, "twosuperior" => 396, "u" => 660,
-    "uacute" => 660, "ucircumflex" => 660, "udieresis" => 660,
-    "ugrave" => 660, "underscore" => 500, "v" => 600, "w" => 800,
-    "x" => 600, "y" => 620, "yacute" => 620, "ydieresis" => 620,
-    "yen" => 660, "z" => 560, "zcaron" => 560, "zero" => 660,
-  },
-  kern => {
-    "A" => {
-      "T" => -40, "V" => -68, "W" => -20, "Y" => -52, "v" => -8,
-      "w" => -9, "y" => -1,
-    },
-    "F" => {
-      "A" => -59, "comma" => -130, "period" => -132,
-    },
-    "L" => {
-      "T" => -4, "V" => -50, "W" => -41, "Y" => -35, "y" => 19,
-    },
-    "P" => {
-      "A" => -46, "comma" => -129, "period" => -128,
-    },
-    "R" => {
-      "T" => -4, "V" => -29, "W" => -24, "Y" => -20, "y" => -8,
-    },
-    "T" => {
-      "A" => -42, "a" => -24, "c" => -29, "colon" => 7,
-      "comma" => -122, "e" => -29, "hyphen" => -10, "i" => 27,
-      "o" => -28, "period" => -122, "r" => 27, "s" => -10,
-      "semicolon" => 5,
-    },
-    "V" => {
-      "A" => -88, "a" => -74, "colon" => -37, "comma" => -103,
-      "e" => -80, "hyphen" => -10, "i" => 15, "o" => -79,
-      "period" => -105, "r" => -15, "semicolon" => -38, "u" => -11,
-      "y" => 12,
-    },
-    "W" => {
-      "A" => -60, "a" => -73, "colon" => -37, "comma" => -103,
-      "e" => -79, "hyphen" => -10, "i" => 15, "o" => -78,
-      "period" => -105, "r" => -15, "semicolon" => -38, "u" => -11,
-      "y" => 12,
-    },
-    "Y" => {
-      "A" => -56, "a" => -60, "colon" => -32, "comma" => -103,
-      "e" => -67, "hyphen" => -10, "i" => 2, "o" => -66, "p" => -23,
-      "period" => -105, "q" => -66, "semicolon" => -34, "u" => -13,
-      "v" => 24,
-    },
-    "f" => {
-      "f" => 21,
-    },
-    "r" => {
-      "c" => -9, "comma" => -101, "d" => -10, "e" => -10, "f" => 20,
-      "g" => -9, "h" => -23, "hyphen" => -10, "m" => 20, "n" => 20,
-      "o" => -9, "period" => -102, "q" => -9,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pbkdi8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-%PS_Bookman_DemiItalic = (
-  name => 'Bookman-DemiItalic',
-  widths => {
-    "A" => 720, "AE" => 1140, "Aacute" => 720, "Acircumflex" => 720,
-    "Adieresis" => 720, "Agrave" => 720, "Aring" => 720,
-    "Atilde" => 720, "B" => 720, "C" => 700, "Ccedilla" => 700,
-    "D" => 760, "E" => 720, "Eacute" => 720, "Ecircumflex" => 720,
-    "Edieresis" => 720, "Egrave" => 720, "Eth" => 760, "F" => 660,
-    "G" => 760, "H" => 800, "I" => 380, "Iacute" => 380,
-    "Icircumflex" => 380, "Idieresis" => 380, "Igrave" => 380,
-    "J" => 620, "K" => 780, "L" => 640, "Lslash" => 640, "M" => 860,
-    "N" => 740, "Ntilde" => 740, "O" => 760, "OE" => 1180,
-    "Oacute" => 760, "Ocircumflex" => 760, "Odieresis" => 760,
-    "Ograve" => 760, "Oslash" => 760, "Otilde" => 760, "P" => 640,
-    "Q" => 760, "R" => 740, "S" => 700, "Scaron" => 700, "T" => 700,
-    "Thorn" => 640, "U" => 740, "Uacute" => 740, "Ucircumflex" => 740,
-    "Udieresis" => 740, "Ugrave" => 740, "V" => 660, "W" => 1000,
-    "X" => 740, "Y" => 660, "Yacute" => 660, "Ydieresis" => 660,
-    "Z" => 680, "Zcaron" => 680, "a" => 680, "aacute" => 680,
-    "acircumflex" => 680, "acute" => 340, "adieresis" => 680,
-    "ae" => 880, "agrave" => 680, "ampersand" => 980, "aring" => 680,
-    "asciicircum" => 620, "asciitilde" => 620, "asterisk" => 460,
-    "at" => 780, "atilde" => 680, "b" => 600, "backslash" => 580,
-    "bar" => 620, "braceleft" => 300, "braceright" => 300,
-    "bracketleft" => 260, "bracketright" => 260, "breve" => 460,
-    "brokenbar" => 620, "bullet" => 360, "c" => 560, "caron" => 480,
-    "ccedilla" => 560, "cedilla" => 360, "cent" => 680,
-    "circumflex" => 480, "colon" => 340, "comma" => 340,
-    "copyright" => 780, "currency" => 680, "d" => 680, "dagger" => 420,
-    "daggerdbl" => 420, "degree" => 400, "dieresis" => 520,
-    "divide" => 600, "dollar" => 680, "dotaccent" => 380,
-    "dotlessi" => 380, "e" => 560, "eacute" => 560,
-    "ecircumflex" => 560, "edieresis" => 560, "egrave" => 560,
-    "eight" => 680, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 600, "eth" => 600, "exclam" => 320,
-    "exclamdown" => 320, "f" => 420, "fi" => 820, "five" => 680,
-    "fl" => 820, "florin" => 680, "four" => 680, "fraction" => 120,
-    "g" => 620, "germandbls" => 660, "grave" => 380, "greater" => 620,
-    "guillemotleft" => 380, "guillemotright" => 380,
-    "guilsinglleft" => 220, "guilsinglright" => 220, "h" => 700,
-    "hungarumlaut" => 560, "hyphen" => 280, "i" => 380,
-    "iacute" => 380, "icircumflex" => 380, "idieresis" => 380,
-    "igrave" => 380, "j" => 320, "k" => 700, "l" => 380, "less" => 620,
-    "logicalnot" => 620, "lslash" => 380, "m" => 960, "macron" => 480,
-    "minus" => 600, "mu" => 680, "multiply" => 600, "n" => 680,
-    "nine" => 680, "ntilde" => 680, "numbersign" => 680, "o" => 600,
-    "oacute" => 600, "ocircumflex" => 600, "odieresis" => 600,
-    "oe" => 920, "ogonek" => 320, "ograve" => 600, "one" => 680,
-    "onehalf" => 1020, "onequarter" => 1020, "onesuperior" => 408,
-    "ordfeminine" => 440, "ordmasculine" => 440, "oslash" => 600,
-    "otilde" => 600, "p" => 660, "paragraph" => 680,
-    "parenleft" => 260, "parenright" => 260, "percent" => 880,
-    "period" => 340, "periodcentered" => 340, "perthousand" => 1360,
-    "plus" => 600, "plusminus" => 600, "q" => 620, "question" => 620,
-    "questiondown" => 620, "quotedbl" => 380, "quotedblbase" => 520,
-    "quotedblleft" => 520, "quotedblright" => 520, "quoteleft" => 320,
-    "quoteright" => 320, "quotesinglbase" => 300, "quotesingle" => 180,
-    "r" => 500, "registered" => 780, "ring" => 360, "s" => 540,
-    "scaron" => 540, "section" => 620, "semicolon" => 340,
-    "seven" => 680, "six" => 680, "slash" => 360, "space" => 340,
-    "sterling" => 680, "t" => 440, "thorn" => 660, "three" => 680,
-    "threequarters" => 1020, "threesuperior" => 408, "tilde" => 480,
-    "trademark" => 940, "two" => 680, "twosuperior" => 408, "u" => 680,
-    "uacute" => 680, "ucircumflex" => 680, "udieresis" => 680,
-    "ugrave" => 680, "underscore" => 500, "v" => 540, "w" => 860,
-    "x" => 620, "y" => 600, "yacute" => 600, "ydieresis" => 600,
-    "yen" => 680, "z" => 560, "zcaron" => 560, "zero" => 680,
-  },
-  kern => {
-    "A" => {
-      "T" => -17, "V" => -40, "W" => -35, "Y" => -25, "v" => 20,
-      "w" => 20, "y" => 20,
-    },
-    "F" => {
-      "A" => -35, "comma" => -98, "period" => -105,
-    },
-    "L" => {
-      "T" => -26, "V" => -19, "W" => -15, "Y" => -5, "y" => 62,
-    },
-    "P" => {
-      "A" => -31, "comma" => -98, "period" => -105,
-    },
-    "R" => {
-      "T" => -3, "V" => -8, "W" => -4, "Y" => 4, "y" => 27,
-    },
-    "T" => {
-      "A" => -42, "a" => -8, "c" => -8, "colon" => 26, "comma" => -100,
-      "e" => -10, "hyphen" => -20, "i" => 42, "o" => -5,
-      "period" => -107, "r" => 41, "s" => -1, "semicolon" => 31,
-      "u" => 42, "w" => 69, "y" => 56,
-    },
-    "V" => {
-      "A" => -50, "a" => -50, "colon" => -28, "comma" => -137,
-      "e" => -50, "hyphen" => -20, "i" => 32, "o" => -50,
-      "period" => -115, "r" => 2, "semicolon" => -22, "u" => -1,
-      "y" => 17,
-    },
-    "W" => {
-      "A" => -77, "a" => -100, "colon" => -86, "comma" => -201,
-      "e" => -100, "hyphen" => -22, "i" => -36, "o" => -100,
-      "period" => -183, "r" => -66, "semicolon" => -81, "u" => -69,
-      "y" => -51,
-    },
-    "Y" => {
-      "A" => -30, "a" => -45, "colon" => -9, "comma" => -106,
-      "e" => -46, "hyphen" => -20, "i" => 20, "o" => -41,
-      "period" => -113, "q" => -43, "semicolon" => -4, "u" => -1,
-      "v" => 26,
-    },
-    "f" => {
-      "f" => 10,
-    },
-    "r" => {
-      "c" => -5, "comma" => -113, "d" => -3, "e" => -6, "f" => 42,
-      "g" => -23, "h" => -35, "hyphen" => -20, "m" => 39, "n" => 39,
-      "o" => -1, "period" => -120, "q" => -3,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pbkl8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,116 +0,0 @@
-%PS_Bookman_Light = (
-  name => 'Bookman-Light',
-  widths => {
-    "A" => 680, "AE" => 1260, "Aacute" => 680, "Acircumflex" => 680,
-    "Adieresis" => 680, "Agrave" => 680, "Aring" => 680,
-    "Atilde" => 680, "B" => 740, "C" => 740, "Ccedilla" => 740,
-    "D" => 800, "E" => 720, "Eacute" => 720, "Ecircumflex" => 720,
-    "Edieresis" => 720, "Egrave" => 720, "Eth" => 800, "F" => 640,
-    "G" => 800, "H" => 800, "I" => 340, "Iacute" => 340,
-    "Icircumflex" => 340, "Idieresis" => 340, "Igrave" => 340,
-    "J" => 600, "K" => 720, "L" => 600, "Lslash" => 600, "M" => 920,
-    "N" => 740, "Ntilde" => 740, "O" => 800, "OE" => 1240,
-    "Oacute" => 800, "Ocircumflex" => 800, "Odieresis" => 800,
-    "Ograve" => 800, "Oslash" => 800, "Otilde" => 800, "P" => 620,
-    "Q" => 820, "R" => 720, "S" => 660, "Scaron" => 660, "T" => 620,
-    "Thorn" => 620, "U" => 780, "Uacute" => 780, "Ucircumflex" => 780,
-    "Udieresis" => 780, "Ugrave" => 780, "V" => 700, "W" => 960,
-    "X" => 720, "Y" => 640, "Yacute" => 640, "Ydieresis" => 640,
-    "Z" => 640, "Zcaron" => 640, "a" => 580, "aacute" => 580,
-    "acircumflex" => 580, "acute" => 340, "adieresis" => 580,
-    "ae" => 860, "agrave" => 580, "ampersand" => 800, "aring" => 580,
-    "asciicircum" => 600, "asciitilde" => 600, "asterisk" => 440,
-    "at" => 820, "atilde" => 580, "b" => 620, "backslash" => 600,
-    "bar" => 600, "braceleft" => 280, "braceright" => 280,
-    "bracketleft" => 300, "bracketright" => 300, "breve" => 460,
-    "brokenbar" => 600, "bullet" => 460, "c" => 520, "caron" => 420,
-    "ccedilla" => 520, "cedilla" => 320, "cent" => 620,
-    "circumflex" => 420, "colon" => 320, "comma" => 320,
-    "copyright" => 740, "currency" => 620, "d" => 620, "dagger" => 540,
-    "daggerdbl" => 540, "degree" => 400, "dieresis" => 420,
-    "divide" => 600, "dollar" => 620, "dotaccent" => 260,
-    "dotlessi" => 300, "e" => 520, "eacute" => 520,
-    "ecircumflex" => 520, "edieresis" => 520, "egrave" => 520,
-    "eight" => 620, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 600, "eth" => 560, "exclam" => 300,
-    "exclamdown" => 300, "f" => 320, "fi" => 620, "five" => 620,
-    "fl" => 620, "florin" => 620, "four" => 620, "fraction" => 140,
-    "g" => 540, "germandbls" => 660, "grave" => 340, "greater" => 600,
-    "guillemotleft" => 360, "guillemotright" => 360,
-    "guilsinglleft" => 240, "guilsinglright" => 240, "h" => 660,
-    "hungarumlaut" => 380, "hyphen" => 400, "i" => 300,
-    "iacute" => 300, "icircumflex" => 300, "idieresis" => 300,
-    "igrave" => 300, "j" => 300, "k" => 620, "l" => 300, "less" => 600,
-    "logicalnot" => 600, "lslash" => 320, "m" => 940, "macron" => 440,
-    "minus" => 600, "mu" => 680, "multiply" => 600, "n" => 660,
-    "nine" => 620, "ntilde" => 660, "numbersign" => 620, "o" => 560,
-    "oacute" => 560, "ocircumflex" => 560, "odieresis" => 560,
-    "oe" => 900, "ogonek" => 320, "ograve" => 560, "one" => 620,
-    "onehalf" => 930, "onequarter" => 930, "onesuperior" => 372,
-    "ordfeminine" => 420, "ordmasculine" => 420, "oslash" => 560,
-    "otilde" => 560, "p" => 620, "paragraph" => 600,
-    "parenleft" => 300, "parenright" => 300, "percent" => 900,
-    "period" => 320, "periodcentered" => 320, "perthousand" => 1280,
-    "plus" => 600, "plusminus" => 600, "q" => 580, "question" => 540,
-    "questiondown" => 540, "quotedbl" => 380, "quotedblbase" => 400,
-    "quotedblleft" => 400, "quotedblright" => 400, "quoteleft" => 220,
-    "quoteright" => 220, "quotesinglbase" => 220, "quotesingle" => 220,
-    "r" => 440, "registered" => 740, "ring" => 320, "s" => 520,
-    "scaron" => 520, "section" => 520, "semicolon" => 320,
-    "seven" => 620, "six" => 620, "slash" => 600, "space" => 320,
-    "sterling" => 620, "t" => 380, "thorn" => 620, "three" => 620,
-    "threequarters" => 930, "threesuperior" => 372, "tilde" => 440,
-    "trademark" => 980, "two" => 620, "twosuperior" => 372, "u" => 680,
-    "uacute" => 680, "ucircumflex" => 680, "udieresis" => 680,
-    "ugrave" => 680, "underscore" => 500, "v" => 520, "w" => 780,
-    "x" => 560, "y" => 540, "yacute" => 540, "ydieresis" => 540,
-    "yen" => 620, "z" => 480, "zcaron" => 480, "zero" => 620,
-  },
-  kern => {
-    "A" => {
-      "T" => 1, "V" => -56, "W" => -40, "Y" => -35, "v" => 7, "w" => 4,
-      "y" => 32,
-    },
-    "F" => {
-      "A" => -21, "comma" => -41, "period" => -46,
-    },
-    "L" => {
-      "T" => 28, "V" => -4, "W" => 1, "Y" => 13, "y" => 79,
-    },
-    "P" => {
-      "A" => -8, "comma" => -55, "period" => -60,
-    },
-    "R" => {
-      "T" => 71, "V" => 8, "W" => 13, "Y" => 26, "y" => 59,
-    },
-    "T" => {
-      "A" => 1, "a" => 17, "c" => 14, "comma" => -28, "e" => 13,
-      "hyphen" => 90, "i" => 42, "o" => 15, "period" => -33, "r" => 38,
-      "s" => 16,
-    },
-    "V" => {
-      "A" => -66, "a" => -69, "comma" => -34, "e" => -72,
-      "hyphen" => 11, "i" => -20, "o" => -71, "period" => -40,
-      "r" => -41, "u" => -38, "y" => 15,
-    },
-    "W" => {
-      "A" => -64, "a" => -66, "comma" => -34, "e" => -69,
-      "hyphen" => 11, "i" => -20, "o" => -68, "period" => -40,
-      "r" => -41, "u" => -38, "y" => 15,
-    },
-    "Y" => {
-      "A" => -53, "a" => -54, "comma" => -34, "e" => -58,
-      "hyphen" => 11, "i" => -37, "o" => -57, "p" => -31,
-      "period" => -40, "q" => -55, "u" => -38, "v" => 15,
-    },
-    "f" => {
-      "f" => 29,
-    },
-    "r" => {
-      "c" => 7, "comma" => -58, "d" => 7, "e" => 7, "f" => 33,
-      "g" => -4, "h" => -21, "hyphen" => 70, "m" => 31, "n" => 31,
-      "o" => 8, "period" => -64, "q" => 9,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pbkli8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-%PS_Bookman_LightItalic = (
-  name => 'Bookman-LightItalic',
-  widths => {
-    "A" => 700, "AE" => 1220, "Aacute" => 700, "Acircumflex" => 700,
-    "Adieresis" => 700, "Agrave" => 700, "Aring" => 700,
-    "Atilde" => 700, "B" => 720, "C" => 720, "Ccedilla" => 720,
-    "D" => 740, "E" => 680, "Eacute" => 680, "Ecircumflex" => 680,
-    "Edieresis" => 680, "Egrave" => 680, "Eth" => 740, "F" => 620,
-    "G" => 760, "H" => 800, "I" => 320, "Iacute" => 320,
-    "Icircumflex" => 320, "Idieresis" => 320, "Igrave" => 320,
-    "J" => 560, "K" => 720, "L" => 580, "Lslash" => 580, "M" => 860,
-    "N" => 720, "Ntilde" => 720, "O" => 760, "OE" => 1180,
-    "Oacute" => 760, "Ocircumflex" => 760, "Odieresis" => 760,
-    "Ograve" => 760, "Oslash" => 760, "Otilde" => 760, "P" => 600,
-    "Q" => 780, "R" => 700, "S" => 640, "Scaron" => 640, "T" => 600,
-    "Thorn" => 600, "U" => 720, "Uacute" => 720, "Ucircumflex" => 720,
-    "Udieresis" => 720, "Ugrave" => 720, "V" => 680, "W" => 960,
-    "X" => 700, "Y" => 660, "Yacute" => 660, "Ydieresis" => 660,
-    "Z" => 580, "Zcaron" => 580, "a" => 620, "aacute" => 620,
-    "acircumflex" => 620, "acute" => 320, "adieresis" => 620,
-    "ae" => 880, "agrave" => 620, "ampersand" => 820, "aring" => 620,
-    "asciicircum" => 600, "asciitilde" => 600, "asterisk" => 440,
-    "at" => 780, "atilde" => 620, "b" => 600, "backslash" => 600,
-    "bar" => 600, "braceleft" => 360, "braceright" => 380,
-    "bracketleft" => 260, "bracketright" => 260, "breve" => 440,
-    "brokenbar" => 600, "bullet" => 460, "c" => 480, "caron" => 440,
-    "ccedilla" => 480, "cedilla" => 320, "cent" => 620,
-    "circumflex" => 440, "colon" => 300, "comma" => 300,
-    "copyright" => 740, "currency" => 620, "d" => 640, "dagger" => 620,
-    "daggerdbl" => 620, "degree" => 400, "dieresis" => 420,
-    "divide" => 600, "dollar" => 620, "dotaccent" => 260,
-    "dotlessi" => 280, "e" => 540, "eacute" => 540,
-    "ecircumflex" => 540, "edieresis" => 540, "egrave" => 540,
-    "eight" => 620, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 600, "eth" => 540, "exclam" => 320,
-    "exclamdown" => 320, "f" => 340, "fi" => 640, "five" => 620,
-    "fl" => 660, "florin" => 620, "four" => 620, "fraction" => 20,
-    "g" => 560, "germandbls" => 620, "grave" => 340, "greater" => 600,
-    "guillemotleft" => 300, "guillemotright" => 300,
-    "guilsinglleft" => 180, "guilsinglright" => 180, "h" => 620,
-    "hungarumlaut" => 340, "hyphen" => 320, "i" => 280,
-    "iacute" => 280, "icircumflex" => 280, "idieresis" => 280,
-    "igrave" => 280, "j" => 280, "k" => 600, "l" => 280, "less" => 600,
-    "logicalnot" => 600, "lslash" => 340, "m" => 880, "macron" => 440,
-    "minus" => 600, "mu" => 620, "multiply" => 600, "n" => 620,
-    "nine" => 620, "ntilde" => 620, "numbersign" => 620, "o" => 540,
-    "oacute" => 540, "ocircumflex" => 540, "odieresis" => 540,
-    "oe" => 900, "ogonek" => 260, "ograve" => 540, "one" => 620,
-    "onehalf" => 930, "onequarter" => 930, "onesuperior" => 372,
-    "ordfeminine" => 440, "ordmasculine" => 400, "oslash" => 540,
-    "otilde" => 540, "p" => 600, "paragraph" => 620,
-    "parenleft" => 280, "parenright" => 280, "percent" => 800,
-    "period" => 300, "periodcentered" => 300, "perthousand" => 1180,
-    "plus" => 600, "plusminus" => 600, "q" => 560, "question" => 540,
-    "questiondown" => 540, "quotedbl" => 360, "quotedblbase" => 480,
-    "quotedblleft" => 440, "quotedblright" => 440, "quoteleft" => 280,
-    "quoteright" => 280, "quotesinglbase" => 320, "quotesingle" => 200,
-    "r" => 400, "registered" => 740, "ring" => 300, "s" => 540,
-    "scaron" => 540, "section" => 620, "semicolon" => 300,
-    "seven" => 620, "six" => 620, "slash" => 600, "space" => 300,
-    "sterling" => 620, "t" => 340, "thorn" => 600, "three" => 620,
-    "threequarters" => 930, "threesuperior" => 372, "tilde" => 440,
-    "trademark" => 980, "two" => 620, "twosuperior" => 372, "u" => 620,
-    "uacute" => 620, "ucircumflex" => 620, "udieresis" => 620,
-    "ugrave" => 620, "underscore" => 500, "v" => 540, "w" => 880,
-    "x" => 540, "y" => 600, "yacute" => 600, "ydieresis" => 600,
-    "yen" => 620, "z" => 520, "zcaron" => 520, "zero" => 620,
-  },
-  kern => {
-    "A" => {
-      "T" => -5, "V" => -78, "W" => -73, "Y" => -62,
-    },
-    "F" => {
-      "A" => -16, "comma" => -98, "period" => -97,
-    },
-    "L" => {
-      "V" => 4, "W" => 9, "Y" => 7, "y" => 20,
-    },
-    "P" => {
-      "A" => -30, "comma" => -106, "period" => -105,
-    },
-    "R" => {
-      "T" => 65, "V" => 2, "W" => 2, "Y" => 11,
-    },
-    "T" => {
-      "A" => -14, "a" => 9, "c" => 16, "colon" => 48, "comma" => -79,
-      "e" => 10, "hyphen" => 20, "i" => 71, "o" => 14, "period" => -78,
-      "r" => 67, "s" => -7, "semicolon" => 48,
-    },
-    "V" => {
-      "A" => -70, "a" => -70, "colon" => -35, "comma" => -109,
-      "e" => -70, "hyphen" => 20, "i" => 3, "o" => -70,
-      "period" => -100, "r" => -20, "semicolon" => -44, "u" => -10,
-      "y" => -14,
-    },
-    "W" => {
-      "A" => -60, "a" => -60, "colon" => -35, "comma" => -109,
-      "e" => -60, "hyphen" => 20, "i" => 3, "o" => -60,
-      "period" => -100, "r" => -30, "semicolon" => -42, "u" => -20,
-      "y" => -14,
-    },
-    "Y" => {
-      "A" => -82, "a" => -79, "colon" => -35, "comma" => -109,
-      "e" => -78, "hyphen" => 20, "i" => -11, "o" => -75, "p" => -37,
-      "period" => -100, "q" => -72, "semicolon" => -40, "u" => -31,
-      "v" => -19,
-    },
-    "f" => {
-      "f" => -19,
-    },
-    "r" => {
-      "c" => -8, "comma" => -143, "d" => -9, "e" => -15, "f" => -9,
-      "g" => -3, "h" => -20, "hyphen" => 20, "m" => 37, "n" => 38,
-      "o" => -10, "period" => -134, "q" => -14,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pcrb8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-%PS_Courier_Bold = (
-  name => 'Courier-Bold',
-  widths => {
-    "A" => 600, "AE" => 600, "Aacute" => 600, "Acircumflex" => 600,
-    "Adieresis" => 600, "Agrave" => 600, "Aring" => 600,
-    "Atilde" => 600, "B" => 600, "C" => 600, "Ccedilla" => 600,
-    "D" => 600, "E" => 600, "Eacute" => 600, "Ecircumflex" => 600,
-    "Edieresis" => 600, "Egrave" => 600, "Eth" => 600, "F" => 600,
-    "G" => 600, "Gcaron" => 600, "H" => 600, "I" => 600, "IJ" => 600,
-    "Iacute" => 600, "Icircumflex" => 600, "Idieresis" => 600,
-    "Idot" => 600, "Igrave" => 600, "J" => 600, "K" => 600, "L" => 600,
-    "LL" => 600, "Lslash" => 600, "M" => 600, "N" => 600,
-    "Ntilde" => 600, "O" => 600, "OE" => 600, "Oacute" => 600,
-    "Ocircumflex" => 600, "Odieresis" => 600, "Ograve" => 600,
-    "Oslash" => 600, "Otilde" => 600, "P" => 600, "Q" => 600,
-    "R" => 600, "S" => 600, "Scaron" => 600, "Scedilla" => 600,
-    "T" => 600, "Thorn" => 600, "U" => 600, "Uacute" => 600,
-    "Ucircumflex" => 600, "Udieresis" => 600, "Ugrave" => 600,
-    "V" => 600, "W" => 600, "X" => 600, "Y" => 600, "Yacute" => 600,
-    "Ydieresis" => 600, "Z" => 600, "Zcaron" => 600, "a" => 600,
-    "aacute" => 600, "acircumflex" => 600, "acute" => 600,
-    "adieresis" => 600, "ae" => 600, "agrave" => 600,
-    "ampersand" => 600, "aring" => 600, "arrowboth" => 600,
-    "arrowdown" => 600, "arrowleft" => 600, "arrowright" => 600,
-    "arrowup" => 600, "asciicircum" => 600, "asciitilde" => 600,
-    "asterisk" => 600, "at" => 600, "atilde" => 600, "b" => 600,
-    "backslash" => 600, "bar" => 600, "braceleft" => 600,
-    "braceright" => 600, "bracketleft" => 600, "bracketright" => 600,
-    "breve" => 600, "brokenbar" => 600, "bullet" => 600, "c" => 600,
-    "caron" => 600, "ccedilla" => 600, "cedilla" => 600, "cent" => 600,
-    "center" => 600, "circumflex" => 600, "colon" => 600,
-    "comma" => 600, "copyright" => 600, "currency" => 600, "d" => 600,
-    "dagger" => 600, "daggerdbl" => 600, "dectab" => 600,
-    "degree" => 600, "dieresis" => 600, "divide" => 600,
-    "dollar" => 600, "dotaccent" => 600, "dotlessi" => 600,
-    "down" => 600, "e" => 600, "eacute" => 600, "ecircumflex" => 600,
-    "edieresis" => 600, "egrave" => 600, "eight" => 600,
-    "ellipsis" => 600, "emdash" => 600, "endash" => 600,
-    "equal" => 600, "eth" => 600, "exclam" => 600, "exclamdown" => 600,
-    "f" => 600, "fi" => 600, "five" => 600, "fl" => 600,
-    "florin" => 600, "format" => 600, "four" => 600, "fraction" => 600,
-    "g" => 600, "gcaron" => 600, "germandbls" => 600, "grave" => 600,
-    "graybox" => 600, "greater" => 600, "guillemotleft" => 600,
-    "guillemotright" => 600, "guilsinglleft" => 600,
-    "guilsinglright" => 600, "h" => 600, "hungarumlaut" => 600,
-    "hyphen" => 600, "i" => 600, "iacute" => 600, "icircumflex" => 600,
-    "idieresis" => 600, "igrave" => 600, "ij" => 600, "indent" => 600,
-    "j" => 600, "k" => 600, "l" => 600, "largebullet" => 600,
-    "left" => 600, "less" => 600, "lira" => 600, "ll" => 600,
-    "logicalnot" => 600, "lslash" => 600, "m" => 600, "macron" => 600,
-    "merge" => 600, "minus" => 600, "mu" => 600, "multiply" => 600,
-    "n" => 600, "nine" => 600, "notegraphic" => 600, "ntilde" => 600,
-    "numbersign" => 600, "o" => 600, "oacute" => 600,
-    "ocircumflex" => 600, "odieresis" => 600, "oe" => 600,
-    "ogonek" => 600, "ograve" => 600, "one" => 600, "onehalf" => 600,
-    "onequarter" => 600, "onesuperior" => 600, "ordfeminine" => 600,
-    "ordmasculine" => 600, "oslash" => 600, "otilde" => 600,
-    "overscore" => 600, "p" => 600, "paragraph" => 600,
-    "parenleft" => 600, "parenright" => 600, "percent" => 600,
-    "period" => 600, "periodcentered" => 600, "perthousand" => 600,
-    "plus" => 600, "plusminus" => 600, "prescription" => 600,
-    "q" => 600, "question" => 600, "questiondown" => 600,
-    "quotedbl" => 600, "quotedblbase" => 600, "quotedblleft" => 600,
-    "quotedblright" => 600, "quoteleft" => 600, "quoteright" => 600,
-    "quotesinglbase" => 600, "quotesingle" => 600, "r" => 600,
-    "registered" => 600, "return" => 600, "ring" => 600, "s" => 600,
-    "scaron" => 600, "scedilla" => 600, "section" => 600,
-    "semicolon" => 600, "seven" => 600, "six" => 600, "slash" => 600,
-    "space" => 600, "square" => 600, "sterling" => 600, "stop" => 600,
-    "t" => 600, "tab" => 600, "thorn" => 600, "three" => 600,
-    "threequarters" => 600, "threesuperior" => 600, "tilde" => 600,
-    "trademark" => 600, "two" => 600, "twosuperior" => 600, "u" => 600,
-    "uacute" => 600, "ucircumflex" => 600, "udieresis" => 600,
-    "ugrave" => 600, "underscore" => 600, "up" => 600, "v" => 600,
-    "w" => 600, "x" => 600, "y" => 600, "yacute" => 600,
-    "ydieresis" => 600, "yen" => 600, "z" => 600, "zcaron" => 600,
-    "zero" => 600,
-  },
-  kern => {
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pcrbo8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-%PS_Courier_BoldOblique = (
-  name => 'Courier-BoldOblique',
-  widths => {
-    "A" => 600, "AE" => 600, "Aacute" => 600, "Acircumflex" => 600,
-    "Adieresis" => 600, "Agrave" => 600, "Aring" => 600,
-    "Atilde" => 600, "B" => 600, "C" => 600, "Ccedilla" => 600,
-    "D" => 600, "E" => 600, "Eacute" => 600, "Ecircumflex" => 600,
-    "Edieresis" => 600, "Egrave" => 600, "Eth" => 600, "F" => 600,
-    "G" => 600, "Gcaron" => 600, "H" => 600, "I" => 600, "IJ" => 600,
-    "Iacute" => 600, "Icircumflex" => 600, "Idieresis" => 600,
-    "Idot" => 600, "Igrave" => 600, "J" => 600, "K" => 600, "L" => 600,
-    "LL" => 600, "Lslash" => 600, "M" => 600, "N" => 600,
-    "Ntilde" => 600, "O" => 600, "OE" => 600, "Oacute" => 600,
-    "Ocircumflex" => 600, "Odieresis" => 600, "Ograve" => 600,
-    "Oslash" => 600, "Otilde" => 600, "P" => 600, "Q" => 600,
-    "R" => 600, "S" => 600, "Scaron" => 600, "Scedilla" => 600,
-    "T" => 600, "Thorn" => 600, "U" => 600, "Uacute" => 600,
-    "Ucircumflex" => 600, "Udieresis" => 600, "Ugrave" => 600,
-    "V" => 600, "W" => 600, "X" => 600, "Y" => 600, "Yacute" => 600,
-    "Ydieresis" => 600, "Z" => 600, "Zcaron" => 600, "a" => 600,
-    "aacute" => 600, "acircumflex" => 600, "acute" => 600,
-    "adieresis" => 600, "ae" => 600, "agrave" => 600,
-    "ampersand" => 600, "aring" => 600, "arrowboth" => 600,
-    "arrowdown" => 600, "arrowleft" => 600, "arrowright" => 600,
-    "arrowup" => 600, "asciicircum" => 600, "asciitilde" => 600,
-    "asterisk" => 600, "at" => 600, "atilde" => 600, "b" => 600,
-    "backslash" => 600, "bar" => 600, "braceleft" => 600,
-    "braceright" => 600, "bracketleft" => 600, "bracketright" => 600,
-    "breve" => 600, "brokenbar" => 600, "bullet" => 600, "c" => 600,
-    "caron" => 600, "ccedilla" => 600, "cedilla" => 600, "cent" => 600,
-    "center" => 600, "circumflex" => 600, "colon" => 600,
-    "comma" => 600, "copyright" => 600, "currency" => 600, "d" => 600,
-    "dagger" => 600, "daggerdbl" => 600, "dectab" => 600,
-    "degree" => 600, "dieresis" => 600, "divide" => 600,
-    "dollar" => 600, "dotaccent" => 600, "dotlessi" => 600,
-    "down" => 600, "e" => 600, "eacute" => 600, "ecircumflex" => 600,
-    "edieresis" => 600, "egrave" => 600, "eight" => 600,
-    "ellipsis" => 600, "emdash" => 600, "endash" => 600,
-    "equal" => 600, "eth" => 600, "exclam" => 600, "exclamdown" => 600,
-    "f" => 600, "fi" => 600, "five" => 600, "fl" => 600,
-    "florin" => 600, "format" => 600, "four" => 600, "fraction" => 600,
-    "g" => 600, "gcaron" => 600, "germandbls" => 600, "grave" => 600,
-    "graybox" => 600, "greater" => 600, "guillemotleft" => 600,
-    "guillemotright" => 600, "guilsinglleft" => 600,
-    "guilsinglright" => 600, "h" => 600, "hungarumlaut" => 600,
-    "hyphen" => 600, "i" => 600, "iacute" => 600, "icircumflex" => 600,
-    "idieresis" => 600, "igrave" => 600, "ij" => 600, "indent" => 600,
-    "j" => 600, "k" => 600, "l" => 600, "largebullet" => 600,
-    "left" => 600, "less" => 600, "lira" => 600, "ll" => 600,
-    "logicalnot" => 600, "lslash" => 600, "m" => 600, "macron" => 600,
-    "merge" => 600, "minus" => 600, "mu" => 600, "multiply" => 600,
-    "n" => 600, "nine" => 600, "notegraphic" => 600, "ntilde" => 600,
-    "numbersign" => 600, "o" => 600, "oacute" => 600,
-    "ocircumflex" => 600, "odieresis" => 600, "oe" => 600,
-    "ogonek" => 600, "ograve" => 600, "one" => 600, "onehalf" => 600,
-    "onequarter" => 600, "onesuperior" => 600, "ordfeminine" => 600,
-    "ordmasculine" => 600, "oslash" => 600, "otilde" => 600,
-    "overscore" => 600, "p" => 600, "paragraph" => 600,
-    "parenleft" => 600, "parenright" => 600, "percent" => 600,
-    "period" => 600, "periodcentered" => 600, "perthousand" => 600,
-    "plus" => 600, "plusminus" => 600, "prescription" => 600,
-    "q" => 600, "question" => 600, "questiondown" => 600,
-    "quotedbl" => 600, "quotedblbase" => 600, "quotedblleft" => 600,
-    "quotedblright" => 600, "quoteleft" => 600, "quoteright" => 600,
-    "quotesinglbase" => 600, "quotesingle" => 600, "r" => 600,
-    "registered" => 600, "return" => 600, "ring" => 600, "s" => 600,
-    "scaron" => 600, "scedilla" => 600, "section" => 600,
-    "semicolon" => 600, "seven" => 600, "six" => 600, "slash" => 600,
-    "space" => 600, "square" => 600, "sterling" => 600, "stop" => 600,
-    "t" => 600, "tab" => 600, "thorn" => 600, "three" => 600,
-    "threequarters" => 600, "threesuperior" => 600, "tilde" => 600,
-    "trademark" => 600, "two" => 600, "twosuperior" => 600, "u" => 600,
-    "uacute" => 600, "ucircumflex" => 600, "udieresis" => 600,
-    "ugrave" => 600, "underscore" => 600, "up" => 600, "v" => 600,
-    "w" => 600, "x" => 600, "y" => 600, "yacute" => 600,
-    "ydieresis" => 600, "yen" => 600, "z" => 600, "zcaron" => 600,
-    "zero" => 600,
-  },
-  kern => {
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pcrr8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-%PS_Courier = (
-  name => 'Courier',
-  widths => {
-    "A" => 600, "AE" => 600, "Aacute" => 600, "Acircumflex" => 600,
-    "Adieresis" => 600, "Agrave" => 600, "Aring" => 600,
-    "Atilde" => 600, "B" => 600, "C" => 600, "Ccedilla" => 600,
-    "D" => 600, "E" => 600, "Eacute" => 600, "Ecircumflex" => 600,
-    "Edieresis" => 600, "Egrave" => 600, "Eth" => 600, "F" => 600,
-    "G" => 600, "Gcaron" => 600, "H" => 600, "I" => 600, "IJ" => 600,
-    "Iacute" => 600, "Icircumflex" => 600, "Idieresis" => 600,
-    "Idot" => 600, "Igrave" => 600, "J" => 600, "K" => 600, "L" => 600,
-    "LL" => 600, "Lslash" => 600, "M" => 600, "N" => 600,
-    "Ntilde" => 600, "O" => 600, "OE" => 600, "Oacute" => 600,
-    "Ocircumflex" => 600, "Odieresis" => 600, "Ograve" => 600,
-    "Oslash" => 600, "Otilde" => 600, "P" => 600, "Q" => 600,
-    "R" => 600, "S" => 600, "Scaron" => 600, "Scedilla" => 600,
-    "T" => 600, "Thorn" => 600, "U" => 600, "Uacute" => 600,
-    "Ucircumflex" => 600, "Udieresis" => 600, "Ugrave" => 600,
-    "V" => 600, "W" => 600, "X" => 600, "Y" => 600, "Yacute" => 600,
-    "Ydieresis" => 600, "Z" => 600, "Zcaron" => 600, "a" => 600,
-    "aacute" => 600, "acircumflex" => 600, "acute" => 600,
-    "adieresis" => 600, "ae" => 600, "agrave" => 600,
-    "ampersand" => 600, "aring" => 600, "arrowboth" => 600,
-    "arrowdown" => 600, "arrowleft" => 600, "arrowright" => 600,
-    "arrowup" => 600, "asciicircum" => 600, "asciitilde" => 600,
-    "asterisk" => 600, "at" => 600, "atilde" => 600, "b" => 600,
-    "backslash" => 600, "bar" => 600, "braceleft" => 600,
-    "braceright" => 600, "bracketleft" => 600, "bracketright" => 600,
-    "breve" => 600, "brokenbar" => 600, "bullet" => 600, "c" => 600,
-    "caron" => 600, "ccedilla" => 600, "cedilla" => 600, "cent" => 600,
-    "center" => 600, "circumflex" => 600, "colon" => 600,
-    "comma" => 600, "copyright" => 600, "currency" => 600, "d" => 600,
-    "dagger" => 600, "daggerdbl" => 600, "dectab" => 600,
-    "degree" => 600, "dieresis" => 600, "divide" => 600,
-    "dollar" => 600, "dotaccent" => 600, "dotlessi" => 600,
-    "down" => 600, "e" => 600, "eacute" => 600, "ecircumflex" => 600,
-    "edieresis" => 600, "egrave" => 600, "eight" => 600,
-    "ellipsis" => 600, "emdash" => 600, "endash" => 600,
-    "equal" => 600, "eth" => 600, "exclam" => 600, "exclamdown" => 600,
-    "f" => 600, "fi" => 600, "five" => 600, "fl" => 600,
-    "florin" => 600, "format" => 600, "four" => 600, "fraction" => 600,
-    "g" => 600, "gcaron" => 600, "germandbls" => 600, "grave" => 600,
-    "graybox" => 600, "greater" => 600, "guillemotleft" => 600,
-    "guillemotright" => 600, "guilsinglleft" => 600,
-    "guilsinglright" => 600, "h" => 600, "hungarumlaut" => 600,
-    "hyphen" => 600, "i" => 600, "iacute" => 600, "icircumflex" => 600,
-    "idieresis" => 600, "igrave" => 600, "ij" => 600, "indent" => 600,
-    "j" => 600, "k" => 600, "l" => 600, "largebullet" => 600,
-    "left" => 600, "less" => 600, "lira" => 600, "ll" => 600,
-    "logicalnot" => 600, "lslash" => 600, "m" => 600, "macron" => 600,
-    "merge" => 600, "minus" => 600, "mu" => 600, "multiply" => 600,
-    "n" => 600, "nine" => 600, "notegraphic" => 600, "ntilde" => 600,
-    "numbersign" => 600, "o" => 600, "oacute" => 600,
-    "ocircumflex" => 600, "odieresis" => 600, "oe" => 600,
-    "ogonek" => 600, "ograve" => 600, "one" => 600, "onehalf" => 600,
-    "onequarter" => 600, "onesuperior" => 600, "ordfeminine" => 600,
-    "ordmasculine" => 600, "oslash" => 600, "otilde" => 600,
-    "overscore" => 600, "p" => 600, "paragraph" => 600,
-    "parenleft" => 600, "parenright" => 600, "percent" => 600,
-    "period" => 600, "periodcentered" => 600, "perthousand" => 600,
-    "plus" => 600, "plusminus" => 600, "prescription" => 600,
-    "q" => 600, "question" => 600, "questiondown" => 600,
-    "quotedbl" => 600, "quotedblbase" => 600, "quotedblleft" => 600,
-    "quotedblright" => 600, "quoteleft" => 600, "quoteright" => 600,
-    "quotesinglbase" => 600, "quotesingle" => 600, "r" => 600,
-    "registered" => 600, "return" => 600, "ring" => 600, "s" => 600,
-    "scaron" => 600, "scedilla" => 600, "section" => 600,
-    "semicolon" => 600, "seven" => 600, "six" => 600, "slash" => 600,
-    "space" => 600, "square" => 600, "sterling" => 600, "stop" => 600,
-    "t" => 600, "tab" => 600, "thorn" => 600, "three" => 600,
-    "threequarters" => 600, "threesuperior" => 600, "tilde" => 600,
-    "trademark" => 600, "two" => 600, "twosuperior" => 600, "u" => 600,
-    "uacute" => 600, "ucircumflex" => 600, "udieresis" => 600,
-    "ugrave" => 600, "underscore" => 600, "up" => 600, "v" => 600,
-    "w" => 600, "x" => 600, "y" => 600, "yacute" => 600,
-    "ydieresis" => 600, "yen" => 600, "z" => 600, "zcaron" => 600,
-    "zero" => 600,
-  },
-  kern => {
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pcrro8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-%PS_Courier_Oblique = (
-  name => 'Courier-Oblique',
-  widths => {
-    "A" => 600, "AE" => 600, "Aacute" => 600, "Acircumflex" => 600,
-    "Adieresis" => 600, "Agrave" => 600, "Aring" => 600,
-    "Atilde" => 600, "B" => 600, "C" => 600, "Ccedilla" => 600,
-    "D" => 600, "E" => 600, "Eacute" => 600, "Ecircumflex" => 600,
-    "Edieresis" => 600, "Egrave" => 600, "Eth" => 600, "F" => 600,
-    "G" => 600, "Gcaron" => 600, "H" => 600, "I" => 600, "IJ" => 600,
-    "Iacute" => 600, "Icircumflex" => 600, "Idieresis" => 600,
-    "Idot" => 600, "Igrave" => 600, "J" => 600, "K" => 600, "L" => 600,
-    "LL" => 600, "Lslash" => 600, "M" => 600, "N" => 600,
-    "Ntilde" => 600, "O" => 600, "OE" => 600, "Oacute" => 600,
-    "Ocircumflex" => 600, "Odieresis" => 600, "Ograve" => 600,
-    "Oslash" => 600, "Otilde" => 600, "P" => 600, "Q" => 600,
-    "R" => 600, "S" => 600, "Scaron" => 600, "Scedilla" => 600,
-    "T" => 600, "Thorn" => 600, "U" => 600, "Uacute" => 600,
-    "Ucircumflex" => 600, "Udieresis" => 600, "Ugrave" => 600,
-    "V" => 600, "W" => 600, "X" => 600, "Y" => 600, "Yacute" => 600,
-    "Ydieresis" => 600, "Z" => 600, "Zcaron" => 600, "a" => 600,
-    "aacute" => 600, "acircumflex" => 600, "acute" => 600,
-    "adieresis" => 600, "ae" => 600, "agrave" => 600,
-    "ampersand" => 600, "aring" => 600, "arrowboth" => 600,
-    "arrowdown" => 600, "arrowleft" => 600, "arrowright" => 600,
-    "arrowup" => 600, "asciicircum" => 600, "asciitilde" => 600,
-    "asterisk" => 600, "at" => 600, "atilde" => 600, "b" => 600,
-    "backslash" => 600, "bar" => 600, "braceleft" => 600,
-    "braceright" => 600, "bracketleft" => 600, "bracketright" => 600,
-    "breve" => 600, "brokenbar" => 600, "bullet" => 600, "c" => 600,
-    "caron" => 600, "ccedilla" => 600, "cedilla" => 600, "cent" => 600,
-    "center" => 600, "circumflex" => 600, "colon" => 600,
-    "comma" => 600, "copyright" => 600, "currency" => 600, "d" => 600,
-    "dagger" => 600, "daggerdbl" => 600, "dectab" => 600,
-    "degree" => 600, "dieresis" => 600, "divide" => 600,
-    "dollar" => 600, "dotaccent" => 600, "dotlessi" => 600,
-    "down" => 600, "e" => 600, "eacute" => 600, "ecircumflex" => 600,
-    "edieresis" => 600, "egrave" => 600, "eight" => 600,
-    "ellipsis" => 600, "emdash" => 600, "endash" => 600,
-    "equal" => 600, "eth" => 600, "exclam" => 600, "exclamdown" => 600,
-    "f" => 600, "fi" => 600, "five" => 600, "fl" => 600,
-    "florin" => 600, "format" => 600, "four" => 600, "fraction" => 600,
-    "g" => 600, "gcaron" => 600, "germandbls" => 600, "grave" => 600,
-    "graybox" => 600, "greater" => 600, "guillemotleft" => 600,
-    "guillemotright" => 600, "guilsinglleft" => 600,
-    "guilsinglright" => 600, "h" => 600, "hungarumlaut" => 600,
-    "hyphen" => 600, "i" => 600, "iacute" => 600, "icircumflex" => 600,
-    "idieresis" => 600, "igrave" => 600, "ij" => 600, "indent" => 600,
-    "j" => 600, "k" => 600, "l" => 600, "largebullet" => 600,
-    "left" => 600, "less" => 600, "lira" => 600, "ll" => 600,
-    "logicalnot" => 600, "lslash" => 600, "m" => 600, "macron" => 600,
-    "merge" => 600, "minus" => 600, "mu" => 600, "multiply" => 600,
-    "n" => 600, "nine" => 600, "notegraphic" => 600, "ntilde" => 600,
-    "numbersign" => 600, "o" => 600, "oacute" => 600,
-    "ocircumflex" => 600, "odieresis" => 600, "oe" => 600,
-    "ogonek" => 600, "ograve" => 600, "one" => 600, "onehalf" => 600,
-    "onequarter" => 600, "onesuperior" => 600, "ordfeminine" => 600,
-    "ordmasculine" => 600, "oslash" => 600, "otilde" => 600,
-    "overscore" => 600, "p" => 600, "paragraph" => 600,
-    "parenleft" => 600, "parenright" => 600, "percent" => 600,
-    "period" => 600, "periodcentered" => 600, "perthousand" => 600,
-    "plus" => 600, "plusminus" => 600, "prescription" => 600,
-    "q" => 600, "question" => 600, "questiondown" => 600,
-    "quotedbl" => 600, "quotedblbase" => 600, "quotedblleft" => 600,
-    "quotedblright" => 600, "quoteleft" => 600, "quoteright" => 600,
-    "quotesinglbase" => 600, "quotesingle" => 600, "r" => 600,
-    "registered" => 600, "return" => 600, "ring" => 600, "s" => 600,
-    "scaron" => 600, "scedilla" => 600, "section" => 600,
-    "semicolon" => 600, "seven" => 600, "six" => 600, "slash" => 600,
-    "space" => 600, "square" => 600, "sterling" => 600, "stop" => 600,
-    "t" => 600, "tab" => 600, "thorn" => 600, "three" => 600,
-    "threequarters" => 600, "threesuperior" => 600, "tilde" => 600,
-    "trademark" => 600, "two" => 600, "twosuperior" => 600, "u" => 600,
-    "uacute" => 600, "ucircumflex" => 600, "udieresis" => 600,
-    "ugrave" => 600, "underscore" => 600, "up" => 600, "v" => 600,
-    "w" => 600, "x" => 600, "y" => 600, "yacute" => 600,
-    "ydieresis" => 600, "yen" => 600, "z" => 600, "zcaron" => 600,
-    "zero" => 600,
-  },
-  kern => {
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/phvb8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,231 +0,0 @@
-%PS_Helvetica_Bold = (
-  name => 'Helvetica-Bold',
-  widths => {
-    "A" => 722, "AE" => 1000, "Aacute" => 722, "Acircumflex" => 722,
-    "Adieresis" => 722, "Agrave" => 722, "Aring" => 722,
-    "Atilde" => 722, "B" => 722, "C" => 722, "Ccedilla" => 722,
-    "D" => 722, "E" => 667, "Eacute" => 667, "Ecircumflex" => 667,
-    "Edieresis" => 667, "Egrave" => 667, "Eth" => 722, "F" => 611,
-    "G" => 778, "H" => 722, "I" => 278, "Iacute" => 278,
-    "Icircumflex" => 278, "Idieresis" => 278, "Igrave" => 278,
-    "J" => 556, "K" => 722, "L" => 611, "Lslash" => 611, "M" => 833,
-    "N" => 722, "Ntilde" => 722, "O" => 778, "OE" => 1000,
-    "Oacute" => 778, "Ocircumflex" => 778, "Odieresis" => 778,
-    "Ograve" => 778, "Oslash" => 778, "Otilde" => 778, "P" => 667,
-    "Q" => 778, "R" => 722, "S" => 667, "Scaron" => 667, "T" => 611,
-    "Thorn" => 667, "U" => 722, "Uacute" => 722, "Ucircumflex" => 722,
-    "Udieresis" => 722, "Ugrave" => 722, "V" => 667, "W" => 944,
-    "X" => 667, "Y" => 667, "Yacute" => 667, "Ydieresis" => 667,
-    "Z" => 611, "Zcaron" => 611, "a" => 556, "aacute" => 556,
-    "acircumflex" => 556, "acute" => 333, "adieresis" => 556,
-    "ae" => 889, "agrave" => 556, "ampersand" => 722, "aring" => 556,
-    "asciicircum" => 584, "asciitilde" => 584, "asterisk" => 389,
-    "at" => 975, "atilde" => 556, "b" => 611, "backslash" => 278,
-    "bar" => 280, "braceleft" => 389, "braceright" => 389,
-    "bracketleft" => 333, "bracketright" => 333, "breve" => 333,
-    "brokenbar" => 280, "bullet" => 350, "c" => 556, "caron" => 333,
-    "ccedilla" => 556, "cedilla" => 333, "cent" => 556,
-    "circumflex" => 333, "colon" => 333, "comma" => 278,
-    "copyright" => 737, "currency" => 556, "d" => 611, "dagger" => 556,
-    "daggerdbl" => 556, "degree" => 400, "dieresis" => 333,
-    "divide" => 584, "dollar" => 556, "dotaccent" => 333,
-    "dotlessi" => 278, "e" => 556, "eacute" => 556,
-    "ecircumflex" => 556, "edieresis" => 556, "egrave" => 556,
-    "eight" => 556, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 556, "equal" => 584, "eth" => 611, "exclam" => 333,
-    "exclamdown" => 333, "f" => 333, "fi" => 611, "five" => 556,
-    "fl" => 611, "florin" => 556, "four" => 556, "fraction" => 167,
-    "g" => 611, "germandbls" => 611, "grave" => 333, "greater" => 584,
-    "guillemotleft" => 556, "guillemotright" => 556,
-    "guilsinglleft" => 333, "guilsinglright" => 333, "h" => 611,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 278,
-    "iacute" => 278, "icircumflex" => 278, "idieresis" => 278,
-    "igrave" => 278, "j" => 278, "k" => 556, "l" => 278, "less" => 584,
-    "logicalnot" => 584, "lslash" => 278, "m" => 889, "macron" => 333,
-    "minus" => 584, "mu" => 611, "multiply" => 584, "n" => 611,
-    "nine" => 556, "ntilde" => 611, "numbersign" => 556, "o" => 611,
-    "oacute" => 611, "ocircumflex" => 611, "odieresis" => 611,
-    "oe" => 944, "ogonek" => 333, "ograve" => 611, "one" => 556,
-    "onehalf" => 834, "onequarter" => 834, "onesuperior" => 333,
-    "ordfeminine" => 370, "ordmasculine" => 365, "oslash" => 611,
-    "otilde" => 611, "p" => 611, "paragraph" => 556,
-    "parenleft" => 333, "parenright" => 333, "percent" => 889,
-    "period" => 278, "periodcentered" => 278, "perthousand" => 1000,
-    "plus" => 584, "plusminus" => 584, "q" => 611, "question" => 611,
-    "questiondown" => 611, "quotedbl" => 474, "quotedblbase" => 500,
-    "quotedblleft" => 500, "quotedblright" => 500, "quoteleft" => 278,
-    "quoteright" => 278, "quotesinglbase" => 278, "quotesingle" => 238,
-    "r" => 389, "registered" => 737, "ring" => 333, "s" => 556,
-    "scaron" => 556, "section" => 556, "semicolon" => 333,
-    "seven" => 556, "six" => 556, "slash" => 278, "space" => 278,
-    "sterling" => 556, "t" => 333, "thorn" => 611, "three" => 556,
-    "threequarters" => 834, "threesuperior" => 333, "tilde" => 333,
-    "trademark" => 1000, "two" => 556, "twosuperior" => 333,
-    "u" => 611, "uacute" => 611, "ucircumflex" => 611,
-    "udieresis" => 611, "ugrave" => 611, "underscore" => 556,
-    "v" => 556, "w" => 778, "x" => 556, "y" => 556, "yacute" => 556,
-    "ydieresis" => 556, "yen" => 556, "z" => 500, "zcaron" => 500,
-    "zero" => 556,
-  },
-  kern => {
-    "A" => {
-      "C" => -40, "G" => -50, "O" => -40, "Q" => -40, "T" => -90,
-      "U" => -50, "V" => -80, "W" => -60, "Y" => -110, "u" => -30,
-      "v" => -40, "w" => -30, "y" => -30,
-    },
-    "B" => {
-      "A" => -30, "U" => -10,
-    },
-    "D" => {
-      "A" => -40, "V" => -40, "W" => -40, "Y" => -70, "comma" => -30,
-      "period" => -30,
-    },
-    "F" => {
-      "A" => -80, "a" => -20, "comma" => -100, "period" => -100,
-    },
-    "J" => {
-      "A" => -20, "comma" => -20, "period" => -20, "u" => -20,
-    },
-    "K" => {
-      "O" => -30, "e" => -15, "o" => -35, "u" => -30, "y" => -40,
-    },
-    "L" => {
-      "T" => -90, "V" => -110, "W" => -80, "Y" => -120,
-      "quotedblright" => -140, "quoteright" => -140, "y" => -30,
-    },
-    "O" => {
-      "A" => -50, "T" => -40, "V" => -50, "W" => -50, "X" => -50,
-      "Y" => -70, "comma" => -40, "period" => -40,
-    },
-    "P" => {
-      "A" => -100, "a" => -30, "comma" => -120, "e" => -30, "o" => -40,
-      "period" => -120,
-    },
-    "Q" => {
-      "U" => -10, "comma" => 20, "period" => 20,
-    },
-    "R" => {
-      "O" => -20, "T" => -20, "U" => -20, "V" => -50, "W" => -40,
-      "Y" => -50,
-    },
-    "T" => {
-      "A" => -90, "O" => -40, "a" => -80, "colon" => -40,
-      "comma" => -80, "e" => -60, "hyphen" => -120, "o" => -80,
-      "period" => -80, "r" => -80, "semicolon" => -40, "u" => -90,
-      "w" => -60, "y" => -60,
-    },
-    "U" => {
-      "A" => -50, "comma" => -30, "period" => -30,
-    },
-    "V" => {
-      "A" => -80, "G" => -50, "O" => -50, "a" => -60, "colon" => -40,
-      "comma" => -120, "e" => -50, "hyphen" => -80, "o" => -90,
-      "period" => -120, "semicolon" => -40, "u" => -60,
-    },
-    "W" => {
-      "A" => -60, "O" => -20, "a" => -40, "colon" => -10,
-      "comma" => -80, "e" => -35, "hyphen" => -40, "o" => -60,
-      "period" => -80, "semicolon" => -10, "u" => -45, "y" => -20,
-    },
-    "Y" => {
-      "A" => -110, "O" => -70, "a" => -90, "colon" => -50,
-      "comma" => -100, "e" => -80, "o" => -100, "period" => -100,
-      "semicolon" => -50, "u" => -100,
-    },
-    "a" => {
-      "g" => -10, "v" => -15, "w" => -15, "y" => -20,
-    },
-    "b" => {
-      "l" => -10, "u" => -20, "v" => -20, "y" => -20,
-    },
-    "c" => {
-      "h" => -10, "k" => -20, "l" => -20, "y" => -10,
-    },
-    "colon" => {
-      "space" => -40,
-    },
-    "comma" => {
-      "quotedblright" => -120, "quoteright" => -120, "space" => -40,
-    },
-    "d" => {
-      "d" => -10, "v" => -15, "w" => -15, "y" => -15,
-    },
-    "e" => {
-      "comma" => 10, "period" => 20, "v" => -15, "w" => -15,
-      "x" => -15, "y" => -15,
-    },
-    "f" => {
-      "comma" => -10, "e" => -10, "o" => -20, "period" => -10,
-      "quotedblright" => 30, "quoteright" => 30,
-    },
-    "g" => {
-      "e" => 10, "g" => -10,
-    },
-    "h" => {
-      "y" => -20,
-    },
-    "k" => {
-      "o" => -15,
-    },
-    "l" => {
-      "w" => -15, "y" => -15,
-    },
-    "m" => {
-      "u" => -20, "y" => -30,
-    },
-    "n" => {
-      "u" => -10, "v" => -40, "y" => -20,
-    },
-    "o" => {
-      "v" => -20, "w" => -15, "x" => -30, "y" => -20,
-    },
-    "p" => {
-      "y" => -15,
-    },
-    "period" => {
-      "quotedblright" => -120, "quoteright" => -120, "space" => -40,
-    },
-    "quotedblright" => {
-      "space" => -80,
-    },
-    "quoteleft" => {
-      "quoteleft" => -46,
-    },
-    "quoteright" => {
-      "d" => -80, "l" => -20, "quoteright" => -46, "r" => -40,
-      "s" => -60, "space" => -80, "v" => -20,
-    },
-    "r" => {
-      "c" => -20, "comma" => -60, "d" => -20, "g" => -15,
-      "hyphen" => -20, "o" => -20, "period" => -60, "q" => -20,
-      "s" => -15, "t" => 20, "v" => 10, "y" => 10,
-    },
-    "s" => {
-      "w" => -15,
-    },
-    "semicolon" => {
-      "space" => -40,
-    },
-    "space" => {
-      "T" => -100, "V" => -80, "W" => -80, "Y" => -120,
-      "quotedblleft" => -80, "quoteleft" => -60,
-    },
-    "v" => {
-      "a" => -20, "comma" => -80, "o" => -30, "period" => -80,
-    },
-    "w" => {
-      "comma" => -40, "o" => -20, "period" => -40,
-    },
-    "x" => {
-      "e" => -10,
-    },
-    "y" => {
-      "a" => -30, "comma" => -80, "e" => -10, "o" => -25,
-      "period" => -80,
-    },
-    "z" => {
-      "e" => 10,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/phvb8an.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +0,0 @@
-%PS_Helvetica_Narrow_Bold = (
-  name => 'Helvetica-Narrow-Bold',
-  widths => {
-    "A" => 592, "AE" => 820, "Aacute" => 592, "Acircumflex" => 592,
-    "Adieresis" => 592, "Agrave" => 592, "Aring" => 592,
-    "Atilde" => 592, "B" => 592, "C" => 592, "Ccedilla" => 592,
-    "D" => 592, "E" => 547, "Eacute" => 547, "Ecircumflex" => 547,
-    "Edieresis" => 547, "Egrave" => 547, "Eth" => 592, "F" => 501,
-    "G" => 638, "H" => 592, "I" => 228, "Iacute" => 228,
-    "Icircumflex" => 228, "Idieresis" => 228, "Igrave" => 228,
-    "J" => 456, "K" => 592, "L" => 501, "Lslash" => 501, "M" => 683,
-    "N" => 592, "Ntilde" => 592, "O" => 638, "OE" => 820,
-    "Oacute" => 638, "Ocircumflex" => 638, "Odieresis" => 638,
-    "Ograve" => 638, "Oslash" => 638, "Otilde" => 638, "P" => 547,
-    "Q" => 638, "R" => 592, "S" => 547, "Scaron" => 547, "T" => 501,
-    "Thorn" => 547, "U" => 592, "Uacute" => 592, "Ucircumflex" => 592,
-    "Udieresis" => 592, "Ugrave" => 592, "V" => 547, "W" => 774,
-    "X" => 547, "Y" => 547, "Yacute" => 547, "Ydieresis" => 547,
-    "Z" => 501, "Zcaron" => 501, "a" => 456, "aacute" => 456,
-    "acircumflex" => 456, "acute" => 273, "adieresis" => 456,
-    "ae" => 729, "agrave" => 456, "ampersand" => 592, "aring" => 456,
-    "asciicircum" => 479, "asciitilde" => 479, "asterisk" => 319,
-    "at" => 800, "atilde" => 456, "b" => 501, "backslash" => 228,
-    "bar" => 230, "braceleft" => 319, "braceright" => 319,
-    "bracketleft" => 273, "bracketright" => 273, "breve" => 273,
-    "brokenbar" => 230, "bullet" => 287, "c" => 456, "caron" => 273,
-    "ccedilla" => 456, "cedilla" => 273, "cent" => 456,
-    "circumflex" => 273, "colon" => 273, "comma" => 228,
-    "copyright" => 604, "currency" => 456, "d" => 501, "dagger" => 456,
-    "daggerdbl" => 456, "degree" => 328, "dieresis" => 273,
-    "divide" => 479, "dollar" => 456, "dotaccent" => 273,
-    "dotlessi" => 228, "e" => 456, "eacute" => 456,
-    "ecircumflex" => 456, "edieresis" => 456, "egrave" => 456,
-    "eight" => 456, "ellipsis" => 820, "emdash" => 820,
-    "endash" => 456, "equal" => 479, "eth" => 501, "exclam" => 273,
-    "exclamdown" => 273, "f" => 273, "fi" => 501, "five" => 456,
-    "fl" => 501, "florin" => 456, "four" => 456, "fraction" => 137,
-    "g" => 501, "germandbls" => 501, "grave" => 273, "greater" => 479,
-    "guillemotleft" => 456, "guillemotright" => 456,
-    "guilsinglleft" => 273, "guilsinglright" => 273, "h" => 501,
-    "hungarumlaut" => 273, "hyphen" => 273, "i" => 228,
-    "iacute" => 228, "icircumflex" => 228, "idieresis" => 228,
-    "igrave" => 228, "j" => 228, "k" => 456, "l" => 228, "less" => 479,
-    "logicalnot" => 479, "lslash" => 228, "m" => 729, "macron" => 273,
-    "minus" => 479, "mu" => 501, "multiply" => 479, "n" => 501,
-    "nine" => 456, "ntilde" => 501, "numbersign" => 456, "o" => 501,
-    "oacute" => 501, "ocircumflex" => 501, "odieresis" => 501,
-    "oe" => 774, "ogonek" => 273, "ograve" => 501, "one" => 456,
-    "onehalf" => 684, "onequarter" => 684, "onesuperior" => 273,
-    "ordfeminine" => 303, "ordmasculine" => 299, "oslash" => 501,
-    "otilde" => 501, "p" => 501, "paragraph" => 456,
-    "parenleft" => 273, "parenright" => 273, "percent" => 729,
-    "period" => 228, "periodcentered" => 228, "perthousand" => 820,
-    "plus" => 479, "plusminus" => 479, "q" => 501, "question" => 501,
-    "questiondown" => 501, "quotedbl" => 389, "quotedblbase" => 410,
-    "quotedblleft" => 410, "quotedblright" => 410, "quoteleft" => 228,
-    "quoteright" => 228, "quotesinglbase" => 228, "quotesingle" => 195,
-    "r" => 319, "registered" => 604, "ring" => 273, "s" => 456,
-    "scaron" => 456, "section" => 456, "semicolon" => 273,
-    "seven" => 456, "six" => 456, "slash" => 228, "space" => 228,
-    "sterling" => 456, "t" => 273, "thorn" => 501, "three" => 456,
-    "threequarters" => 684, "threesuperior" => 273, "tilde" => 273,
-    "trademark" => 820, "two" => 456, "twosuperior" => 273, "u" => 501,
-    "uacute" => 501, "ucircumflex" => 501, "udieresis" => 501,
-    "ugrave" => 501, "underscore" => 456, "v" => 456, "w" => 638,
-    "x" => 456, "y" => 456, "yacute" => 456, "ydieresis" => 456,
-    "yen" => 456, "z" => 410, "zcaron" => 410, "zero" => 456,
-  },
-  kern => {
-    "A" => {
-      "C" => -32, "G" => -40, "O" => -32, "Q" => -32, "T" => -73,
-      "U" => -40, "V" => -65, "W" => -48, "Y" => -89, "u" => -24,
-      "v" => -32, "w" => -24, "y" => -24,
-    },
-    "B" => {
-      "A" => -24, "U" => -7,
-    },
-    "D" => {
-      "A" => -32, "V" => -32, "W" => -32, "Y" => -56, "comma" => -24,
-      "period" => -24,
-    },
-    "F" => {
-      "A" => -65, "a" => -15, "comma" => -81, "period" => -81,
-    },
-    "J" => {
-      "A" => -15, "comma" => -15, "period" => -15, "u" => -15,
-    },
-    "K" => {
-      "O" => -24, "e" => -11, "o" => -28, "u" => -24, "y" => -32,
-    },
-    "L" => {
-      "T" => -73, "V" => -89, "W" => -65, "Y" => -97,
-      "quotedblright" => -114, "quoteright" => -114, "y" => -24,
-    },
-    "O" => {
-      "A" => -40, "T" => -32, "V" => -40, "W" => -40, "X" => -40,
-      "Y" => -56, "comma" => -32, "period" => -32,
-    },
-    "P" => {
-      "A" => -81, "a" => -24, "comma" => -97, "e" => -24, "o" => -32,
-      "period" => -97,
-    },
-    "Q" => {
-      "U" => -7, "comma" => 16, "period" => 16,
-    },
-    "R" => {
-      "O" => -15, "T" => -15, "U" => -15, "V" => -40, "W" => -32,
-      "Y" => -40,
-    },
-    "T" => {
-      "A" => -73, "O" => -32, "a" => -65, "colon" => -32,
-      "comma" => -65, "e" => -48, "hyphen" => -97, "o" => -65,
-      "period" => -65, "r" => -65, "semicolon" => -32, "u" => -73,
-      "w" => -48, "y" => -48,
-    },
-    "U" => {
-      "A" => -40, "comma" => -24, "period" => -24,
-    },
-    "V" => {
-      "A" => -65, "G" => -40, "O" => -40, "a" => -48, "colon" => -32,
-      "comma" => -97, "e" => -40, "hyphen" => -65, "o" => -73,
-      "period" => -97, "semicolon" => -32, "u" => -48,
-    },
-    "W" => {
-      "A" => -48, "O" => -15, "a" => -32, "colon" => -7,
-      "comma" => -65, "e" => -28, "hyphen" => -32, "o" => -48,
-      "period" => -65, "semicolon" => -7, "u" => -36, "y" => -15,
-    },
-    "Y" => {
-      "A" => -89, "O" => -56, "a" => -73, "colon" => -40,
-      "comma" => -81, "e" => -65, "o" => -81, "period" => -81,
-      "semicolon" => -40, "u" => -81,
-    },
-    "a" => {
-      "g" => -7, "v" => -11, "w" => -11, "y" => -15,
-    },
-    "b" => {
-      "l" => -7, "u" => -15, "v" => -15, "y" => -15,
-    },
-    "c" => {
-      "h" => -7, "k" => -15, "l" => -15, "y" => -7,
-    },
-    "colon" => {
-      "space" => -32,
-    },
-    "comma" => {
-      "quotedblright" => -97, "quoteright" => -97, "space" => -32,
-    },
-    "d" => {
-      "d" => -7, "v" => -11, "w" => -11, "y" => -11,
-    },
-    "e" => {
-      "comma" => 8, "period" => 16, "v" => -11, "w" => -11, "x" => -11,
-      "y" => -11,
-    },
-    "f" => {
-      "comma" => -7, "e" => -7, "o" => -15, "period" => -7,
-      "quotedblright" => 25, "quoteright" => 25,
-    },
-    "g" => {
-      "e" => 8, "g" => -7,
-    },
-    "h" => {
-      "y" => -15,
-    },
-    "k" => {
-      "o" => -11,
-    },
-    "l" => {
-      "w" => -11, "y" => -11,
-    },
-    "m" => {
-      "u" => -15, "y" => -24,
-    },
-    "n" => {
-      "u" => -7, "v" => -32, "y" => -15,
-    },
-    "o" => {
-      "v" => -15, "w" => -11, "x" => -24, "y" => -15,
-    },
-    "p" => {
-      "y" => -11,
-    },
-    "period" => {
-      "quotedblright" => -97, "quoteright" => -97, "space" => -32,
-    },
-    "quotedblright" => {
-      "space" => -65,
-    },
-    "quoteleft" => {
-      "quoteleft" => -37,
-    },
-    "quoteright" => {
-      "d" => -65, "l" => -15, "quoteright" => -37, "r" => -32,
-      "s" => -48, "space" => -65, "v" => -15,
-    },
-    "r" => {
-      "c" => -15, "comma" => -48, "d" => -15, "g" => -11,
-      "hyphen" => -15, "o" => -15, "period" => -48, "q" => -15,
-      "s" => -11, "t" => 16, "v" => 8, "y" => 8,
-    },
-    "s" => {
-      "w" => -11,
-    },
-    "semicolon" => {
-      "space" => -32,
-    },
-    "space" => {
-      "T" => -81, "V" => -65, "W" => -65, "Y" => -97,
-      "quotedblleft" => -65, "quoteleft" => -48,
-    },
-    "v" => {
-      "a" => -15, "comma" => -65, "o" => -24, "period" => -65,
-    },
-    "w" => {
-      "comma" => -32, "o" => -15, "period" => -32,
-    },
-    "x" => {
-      "e" => -7,
-    },
-    "y" => {
-      "a" => -24, "comma" => -65, "e" => -7, "o" => -20,
-      "period" => -65,
-    },
-    "z" => {
-      "e" => 8,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/phvbo8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,231 +0,0 @@
-%PS_Helvetica_BoldOblique = (
-  name => 'Helvetica-BoldOblique',
-  widths => {
-    "A" => 722, "AE" => 1000, "Aacute" => 722, "Acircumflex" => 722,
-    "Adieresis" => 722, "Agrave" => 722, "Aring" => 722,
-    "Atilde" => 722, "B" => 722, "C" => 722, "Ccedilla" => 722,
-    "D" => 722, "E" => 667, "Eacute" => 667, "Ecircumflex" => 667,
-    "Edieresis" => 667, "Egrave" => 667, "Eth" => 722, "F" => 611,
-    "G" => 778, "H" => 722, "I" => 278, "Iacute" => 278,
-    "Icircumflex" => 278, "Idieresis" => 278, "Igrave" => 278,
-    "J" => 556, "K" => 722, "L" => 611, "Lslash" => 611, "M" => 833,
-    "N" => 722, "Ntilde" => 722, "O" => 778, "OE" => 1000,
-    "Oacute" => 778, "Ocircumflex" => 778, "Odieresis" => 778,
-    "Ograve" => 778, "Oslash" => 778, "Otilde" => 778, "P" => 667,
-    "Q" => 778, "R" => 722, "S" => 667, "Scaron" => 667, "T" => 611,
-    "Thorn" => 667, "U" => 722, "Uacute" => 722, "Ucircumflex" => 722,
-    "Udieresis" => 722, "Ugrave" => 722, "V" => 667, "W" => 944,
-    "X" => 667, "Y" => 667, "Yacute" => 667, "Ydieresis" => 667,
-    "Z" => 611, "Zcaron" => 611, "a" => 556, "aacute" => 556,
-    "acircumflex" => 556, "acute" => 333, "adieresis" => 556,
-    "ae" => 889, "agrave" => 556, "ampersand" => 722, "aring" => 556,
-    "asciicircum" => 584, "asciitilde" => 584, "asterisk" => 389,
-    "at" => 975, "atilde" => 556, "b" => 611, "backslash" => 278,
-    "bar" => 280, "braceleft" => 389, "braceright" => 389,
-    "bracketleft" => 333, "bracketright" => 333, "breve" => 333,
-    "brokenbar" => 280, "bullet" => 350, "c" => 556, "caron" => 333,
-    "ccedilla" => 556, "cedilla" => 333, "cent" => 556,
-    "circumflex" => 333, "colon" => 333, "comma" => 278,
-    "copyright" => 737, "currency" => 556, "d" => 611, "dagger" => 556,
-    "daggerdbl" => 556, "degree" => 400, "dieresis" => 333,
-    "divide" => 584, "dollar" => 556, "dotaccent" => 333,
-    "dotlessi" => 278, "e" => 556, "eacute" => 556,
-    "ecircumflex" => 556, "edieresis" => 556, "egrave" => 556,
-    "eight" => 556, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 556, "equal" => 584, "eth" => 611, "exclam" => 333,
-    "exclamdown" => 333, "f" => 333, "fi" => 611, "five" => 556,
-    "fl" => 611, "florin" => 556, "four" => 556, "fraction" => 167,
-    "g" => 611, "germandbls" => 611, "grave" => 333, "greater" => 584,
-    "guillemotleft" => 556, "guillemotright" => 556,
-    "guilsinglleft" => 333, "guilsinglright" => 333, "h" => 611,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 278,
-    "iacute" => 278, "icircumflex" => 278, "idieresis" => 278,
-    "igrave" => 278, "j" => 278, "k" => 556, "l" => 278, "less" => 584,
-    "logicalnot" => 584, "lslash" => 278, "m" => 889, "macron" => 333,
-    "minus" => 584, "mu" => 611, "multiply" => 584, "n" => 611,
-    "nine" => 556, "ntilde" => 611, "numbersign" => 556, "o" => 611,
-    "oacute" => 611, "ocircumflex" => 611, "odieresis" => 611,
-    "oe" => 944, "ogonek" => 333, "ograve" => 611, "one" => 556,
-    "onehalf" => 834, "onequarter" => 834, "onesuperior" => 333,
-    "ordfeminine" => 370, "ordmasculine" => 365, "oslash" => 611,
-    "otilde" => 611, "p" => 611, "paragraph" => 556,
-    "parenleft" => 333, "parenright" => 333, "percent" => 889,
-    "period" => 278, "periodcentered" => 278, "perthousand" => 1000,
-    "plus" => 584, "plusminus" => 584, "q" => 611, "question" => 611,
-    "questiondown" => 611, "quotedbl" => 474, "quotedblbase" => 500,
-    "quotedblleft" => 500, "quotedblright" => 500, "quoteleft" => 278,
-    "quoteright" => 278, "quotesinglbase" => 278, "quotesingle" => 238,
-    "r" => 389, "registered" => 737, "ring" => 333, "s" => 556,
-    "scaron" => 556, "section" => 556, "semicolon" => 333,
-    "seven" => 556, "six" => 556, "slash" => 278, "space" => 278,
-    "sterling" => 556, "t" => 333, "thorn" => 611, "three" => 556,
-    "threequarters" => 834, "threesuperior" => 333, "tilde" => 333,
-    "trademark" => 1000, "two" => 556, "twosuperior" => 333,
-    "u" => 611, "uacute" => 611, "ucircumflex" => 611,
-    "udieresis" => 611, "ugrave" => 611, "underscore" => 556,
-    "v" => 556, "w" => 778, "x" => 556, "y" => 556, "yacute" => 556,
-    "ydieresis" => 556, "yen" => 556, "z" => 500, "zcaron" => 500,
-    "zero" => 556,
-  },
-  kern => {
-    "A" => {
-      "C" => -40, "G" => -50, "O" => -40, "Q" => -40, "T" => -90,
-      "U" => -50, "V" => -80, "W" => -60, "Y" => -110, "u" => -30,
-      "v" => -40, "w" => -30, "y" => -30,
-    },
-    "B" => {
-      "A" => -30, "U" => -10,
-    },
-    "D" => {
-      "A" => -40, "V" => -40, "W" => -40, "Y" => -70, "comma" => -30,
-      "period" => -30,
-    },
-    "F" => {
-      "A" => -80, "a" => -20, "comma" => -100, "period" => -100,
-    },
-    "J" => {
-      "A" => -20, "comma" => -20, "period" => -20, "u" => -20,
-    },
-    "K" => {
-      "O" => -30, "e" => -15, "o" => -35, "u" => -30, "y" => -40,
-    },
-    "L" => {
-      "T" => -90, "V" => -110, "W" => -80, "Y" => -120,
-      "quotedblright" => -140, "quoteright" => -140, "y" => -30,
-    },
-    "O" => {
-      "A" => -50, "T" => -40, "V" => -50, "W" => -50, "X" => -50,
-      "Y" => -70, "comma" => -40, "period" => -40,
-    },
-    "P" => {
-      "A" => -100, "a" => -30, "comma" => -120, "e" => -30, "o" => -40,
-      "period" => -120,
-    },
-    "Q" => {
-      "U" => -10, "comma" => 20, "period" => 20,
-    },
-    "R" => {
-      "O" => -20, "T" => -20, "U" => -20, "V" => -50, "W" => -40,
-      "Y" => -50,
-    },
-    "T" => {
-      "A" => -90, "O" => -40, "a" => -80, "colon" => -40,
-      "comma" => -80, "e" => -60, "hyphen" => -120, "o" => -80,
-      "period" => -80, "r" => -80, "semicolon" => -40, "u" => -90,
-      "w" => -60, "y" => -60,
-    },
-    "U" => {
-      "A" => -50, "comma" => -30, "period" => -30,
-    },
-    "V" => {
-      "A" => -80, "G" => -50, "O" => -50, "a" => -60, "colon" => -40,
-      "comma" => -120, "e" => -50, "hyphen" => -80, "o" => -90,
-      "period" => -120, "semicolon" => -40, "u" => -60,
-    },
-    "W" => {
-      "A" => -60, "O" => -20, "a" => -40, "colon" => -10,
-      "comma" => -80, "e" => -35, "hyphen" => -40, "o" => -60,
-      "period" => -80, "semicolon" => -10, "u" => -45, "y" => -20,
-    },
-    "Y" => {
-      "A" => -110, "O" => -70, "a" => -90, "colon" => -50,
-      "comma" => -100, "e" => -80, "o" => -100, "period" => -100,
-      "semicolon" => -50, "u" => -100,
-    },
-    "a" => {
-      "g" => -10, "v" => -15, "w" => -15, "y" => -20,
-    },
-    "b" => {
-      "l" => -10, "u" => -20, "v" => -20, "y" => -20,
-    },
-    "c" => {
-      "h" => -10, "k" => -20, "l" => -20, "y" => -10,
-    },
-    "colon" => {
-      "space" => -40,
-    },
-    "comma" => {
-      "quotedblright" => -120, "quoteright" => -120, "space" => -40,
-    },
-    "d" => {
-      "d" => -10, "v" => -15, "w" => -15, "y" => -15,
-    },
-    "e" => {
-      "comma" => 10, "period" => 20, "v" => -15, "w" => -15,
-      "x" => -15, "y" => -15,
-    },
-    "f" => {
-      "comma" => -10, "e" => -10, "o" => -20, "period" => -10,
-      "quotedblright" => 30, "quoteright" => 30,
-    },
-    "g" => {
-      "e" => 10, "g" => -10,
-    },
-    "h" => {
-      "y" => -20,
-    },
-    "k" => {
-      "o" => -15,
-    },
-    "l" => {
-      "w" => -15, "y" => -15,
-    },
-    "m" => {
-      "u" => -20, "y" => -30,
-    },
-    "n" => {
-      "u" => -10, "v" => -40, "y" => -20,
-    },
-    "o" => {
-      "v" => -20, "w" => -15, "x" => -30, "y" => -20,
-    },
-    "p" => {
-      "y" => -15,
-    },
-    "period" => {
-      "quotedblright" => -120, "quoteright" => -120, "space" => -40,
-    },
-    "quotedblright" => {
-      "space" => -80,
-    },
-    "quoteleft" => {
-      "quoteleft" => -46,
-    },
-    "quoteright" => {
-      "d" => -80, "l" => -20, "quoteright" => -46, "r" => -40,
-      "s" => -60, "space" => -80, "v" => -20,
-    },
-    "r" => {
-      "c" => -20, "comma" => -60, "d" => -20, "g" => -15,
-      "hyphen" => -20, "o" => -20, "period" => -60, "q" => -20,
-      "s" => -15, "t" => 20, "v" => 10, "y" => 10,
-    },
-    "s" => {
-      "w" => -15,
-    },
-    "semicolon" => {
-      "space" => -40,
-    },
-    "space" => {
-      "T" => -100, "V" => -80, "W" => -80, "Y" => -120,
-      "quotedblleft" => -80, "quoteleft" => -60,
-    },
-    "v" => {
-      "a" => -20, "comma" => -80, "o" => -30, "period" => -80,
-    },
-    "w" => {
-      "comma" => -40, "o" => -20, "period" => -40,
-    },
-    "x" => {
-      "e" => -10,
-    },
-    "y" => {
-      "a" => -30, "comma" => -80, "e" => -10, "o" => -25,
-      "period" => -80,
-    },
-    "z" => {
-      "e" => 10,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/phvbo8an.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +0,0 @@
-%PS_Helvetica_Narrow_BoldOblique = (
-  name => 'Helvetica-Narrow-BoldOblique',
-  widths => {
-    "A" => 592, "AE" => 820, "Aacute" => 592, "Acircumflex" => 592,
-    "Adieresis" => 592, "Agrave" => 592, "Aring" => 592,
-    "Atilde" => 592, "B" => 592, "C" => 592, "Ccedilla" => 592,
-    "D" => 592, "E" => 547, "Eacute" => 547, "Ecircumflex" => 547,
-    "Edieresis" => 547, "Egrave" => 547, "Eth" => 592, "F" => 501,
-    "G" => 638, "H" => 592, "I" => 228, "Iacute" => 228,
-    "Icircumflex" => 228, "Idieresis" => 228, "Igrave" => 228,
-    "J" => 456, "K" => 592, "L" => 501, "Lslash" => 501, "M" => 683,
-    "N" => 592, "Ntilde" => 592, "O" => 638, "OE" => 820,
-    "Oacute" => 638, "Ocircumflex" => 638, "Odieresis" => 638,
-    "Ograve" => 638, "Oslash" => 638, "Otilde" => 638, "P" => 547,
-    "Q" => 638, "R" => 592, "S" => 547, "Scaron" => 547, "T" => 501,
-    "Thorn" => 547, "U" => 592, "Uacute" => 592, "Ucircumflex" => 592,
-    "Udieresis" => 592, "Ugrave" => 592, "V" => 547, "W" => 774,
-    "X" => 547, "Y" => 547, "Yacute" => 547, "Ydieresis" => 547,
-    "Z" => 501, "Zcaron" => 501, "a" => 456, "aacute" => 456,
-    "acircumflex" => 456, "acute" => 273, "adieresis" => 456,
-    "ae" => 729, "agrave" => 456, "ampersand" => 592, "aring" => 456,
-    "asciicircum" => 479, "asciitilde" => 479, "asterisk" => 319,
-    "at" => 800, "atilde" => 456, "b" => 501, "backslash" => 228,
-    "bar" => 230, "braceleft" => 319, "braceright" => 319,
-    "bracketleft" => 273, "bracketright" => 273, "breve" => 273,
-    "brokenbar" => 230, "bullet" => 287, "c" => 456, "caron" => 273,
-    "ccedilla" => 456, "cedilla" => 273, "cent" => 456,
-    "circumflex" => 273, "colon" => 273, "comma" => 228,
-    "copyright" => 604, "currency" => 456, "d" => 501, "dagger" => 456,
-    "daggerdbl" => 456, "degree" => 328, "dieresis" => 273,
-    "divide" => 479, "dollar" => 456, "dotaccent" => 273,
-    "dotlessi" => 228, "e" => 456, "eacute" => 456,
-    "ecircumflex" => 456, "edieresis" => 456, "egrave" => 456,
-    "eight" => 456, "ellipsis" => 820, "emdash" => 820,
-    "endash" => 456, "equal" => 479, "eth" => 501, "exclam" => 273,
-    "exclamdown" => 273, "f" => 273, "fi" => 501, "five" => 456,
-    "fl" => 501, "florin" => 456, "four" => 456, "fraction" => 137,
-    "g" => 501, "germandbls" => 501, "grave" => 273, "greater" => 479,
-    "guillemotleft" => 456, "guillemotright" => 456,
-    "guilsinglleft" => 273, "guilsinglright" => 273, "h" => 501,
-    "hungarumlaut" => 273, "hyphen" => 273, "i" => 228,
-    "iacute" => 228, "icircumflex" => 228, "idieresis" => 228,
-    "igrave" => 228, "j" => 228, "k" => 456, "l" => 228, "less" => 479,
-    "logicalnot" => 479, "lslash" => 228, "m" => 729, "macron" => 273,
-    "minus" => 479, "mu" => 501, "multiply" => 479, "n" => 501,
-    "nine" => 456, "ntilde" => 501, "numbersign" => 456, "o" => 501,
-    "oacute" => 501, "ocircumflex" => 501, "odieresis" => 501,
-    "oe" => 774, "ogonek" => 273, "ograve" => 501, "one" => 456,
-    "onehalf" => 684, "onequarter" => 684, "onesuperior" => 273,
-    "ordfeminine" => 303, "ordmasculine" => 299, "oslash" => 501,
-    "otilde" => 501, "p" => 501, "paragraph" => 456,
-    "parenleft" => 273, "parenright" => 273, "percent" => 729,
-    "period" => 228, "periodcentered" => 228, "perthousand" => 820,
-    "plus" => 479, "plusminus" => 479, "q" => 501, "question" => 501,
-    "questiondown" => 501, "quotedbl" => 389, "quotedblbase" => 410,
-    "quotedblleft" => 410, "quotedblright" => 410, "quoteleft" => 228,
-    "quoteright" => 228, "quotesinglbase" => 228, "quotesingle" => 195,
-    "r" => 319, "registered" => 604, "ring" => 273, "s" => 456,
-    "scaron" => 456, "section" => 456, "semicolon" => 273,
-    "seven" => 456, "six" => 456, "slash" => 228, "space" => 228,
-    "sterling" => 456, "t" => 273, "thorn" => 501, "three" => 456,
-    "threequarters" => 684, "threesuperior" => 273, "tilde" => 273,
-    "trademark" => 820, "two" => 456, "twosuperior" => 273, "u" => 501,
-    "uacute" => 501, "ucircumflex" => 501, "udieresis" => 501,
-    "ugrave" => 501, "underscore" => 456, "v" => 456, "w" => 638,
-    "x" => 456, "y" => 456, "yacute" => 456, "ydieresis" => 456,
-    "yen" => 456, "z" => 410, "zcaron" => 410, "zero" => 456,
-  },
-  kern => {
-    "A" => {
-      "C" => -40, "G" => -50, "O" => -40, "Q" => -40, "T" => -90,
-      "U" => -50, "V" => -80, "W" => -60, "Y" => -110, "u" => -30,
-      "v" => -40, "w" => -30, "y" => -30,
-    },
-    "B" => {
-      "A" => -30, "U" => -10,
-    },
-    "D" => {
-      "A" => -40, "V" => -40, "W" => -40, "Y" => -70, "comma" => -30,
-      "period" => -30,
-    },
-    "F" => {
-      "A" => -80, "a" => -20, "comma" => -100, "period" => -100,
-    },
-    "J" => {
-      "A" => -20, "comma" => -20, "period" => -20, "u" => -20,
-    },
-    "K" => {
-      "O" => -30, "e" => -15, "o" => -35, "u" => -30, "y" => -40,
-    },
-    "L" => {
-      "T" => -90, "V" => -110, "W" => -80, "Y" => -120,
-      "quotedblright" => -140, "quoteright" => -140, "y" => -30,
-    },
-    "O" => {
-      "A" => -50, "T" => -40, "V" => -50, "W" => -50, "X" => -50,
-      "Y" => -70, "comma" => -40, "period" => -40,
-    },
-    "P" => {
-      "A" => -100, "a" => -30, "comma" => -120, "e" => -30, "o" => -40,
-      "period" => -120,
-    },
-    "Q" => {
-      "U" => -10, "comma" => 20, "period" => 20,
-    },
-    "R" => {
-      "O" => -20, "T" => -20, "U" => -20, "V" => -50, "W" => -40,
-      "Y" => -50,
-    },
-    "T" => {
-      "A" => -90, "O" => -40, "a" => -80, "colon" => -40,
-      "comma" => -80, "e" => -60, "hyphen" => -120, "o" => -80,
-      "period" => -80, "r" => -80, "semicolon" => -40, "u" => -90,
-      "w" => -60, "y" => -60,
-    },
-    "U" => {
-      "A" => -50, "comma" => -30, "period" => -30,
-    },
-    "V" => {
-      "A" => -80, "G" => -50, "O" => -50, "a" => -60, "colon" => -40,
-      "comma" => -120, "e" => -50, "hyphen" => -80, "o" => -90,
-      "period" => -120, "semicolon" => -40, "u" => -60,
-    },
-    "W" => {
-      "A" => -60, "O" => -20, "a" => -40, "colon" => -10,
-      "comma" => -80, "e" => -35, "hyphen" => -40, "o" => -60,
-      "period" => -80, "semicolon" => -10, "u" => -45, "y" => -20,
-    },
-    "Y" => {
-      "A" => -110, "O" => -70, "a" => -90, "colon" => -50,
-      "comma" => -100, "e" => -80, "o" => -100, "period" => -100,
-      "semicolon" => -50, "u" => -100,
-    },
-    "a" => {
-      "g" => -10, "v" => -15, "w" => -15, "y" => -20,
-    },
-    "b" => {
-      "l" => -10, "u" => -20, "v" => -20, "y" => -20,
-    },
-    "c" => {
-      "h" => -10, "k" => -20, "l" => -20, "y" => -10,
-    },
-    "colon" => {
-      "space" => -40,
-    },
-    "comma" => {
-      "quotedblright" => -120, "quoteright" => -120, "space" => -40,
-    },
-    "d" => {
-      "d" => -10, "v" => -15, "w" => -15, "y" => -15,
-    },
-    "e" => {
-      "comma" => 10, "period" => 20, "v" => -15, "w" => -15,
-      "x" => -15, "y" => -15,
-    },
-    "f" => {
-      "comma" => -10, "e" => -10, "o" => -20, "period" => -10,
-      "quotedblright" => 30, "quoteright" => 30,
-    },
-    "g" => {
-      "e" => 10, "g" => -10,
-    },
-    "h" => {
-      "y" => -20,
-    },
-    "k" => {
-      "o" => -15,
-    },
-    "l" => {
-      "w" => -15, "y" => -15,
-    },
-    "m" => {
-      "u" => -20, "y" => -30,
-    },
-    "n" => {
-      "u" => -10, "v" => -40, "y" => -20,
-    },
-    "o" => {
-      "v" => -20, "w" => -15, "x" => -30, "y" => -20,
-    },
-    "p" => {
-      "y" => -15,
-    },
-    "period" => {
-      "quotedblright" => -120, "quoteright" => -120, "space" => -40,
-    },
-    "quotedblright" => {
-      "space" => -80,
-    },
-    "quoteleft" => {
-      "quoteleft" => -46,
-    },
-    "quoteright" => {
-      "d" => -80, "l" => -20, "quoteright" => -46, "r" => -40,
-      "s" => -60, "space" => -80, "v" => -20,
-    },
-    "r" => {
-      "c" => -20, "comma" => -60, "d" => -20, "g" => -15,
-      "hyphen" => -20, "o" => -20, "period" => -60, "q" => -20,
-      "s" => -15, "t" => 20, "v" => 10, "y" => 10,
-    },
-    "s" => {
-      "w" => -15,
-    },
-    "semicolon" => {
-      "space" => -40,
-    },
-    "space" => {
-      "T" => -100, "V" => -80, "W" => -80, "Y" => -120,
-      "quotedblleft" => -80, "quoteleft" => -60,
-    },
-    "v" => {
-      "a" => -20, "comma" => -80, "o" => -30, "period" => -80,
-    },
-    "w" => {
-      "comma" => -40, "o" => -20, "period" => -40,
-    },
-    "x" => {
-      "e" => -10,
-    },
-    "y" => {
-      "a" => -30, "comma" => -80, "e" => -10, "o" => -25,
-      "period" => -80,
-    },
-    "z" => {
-      "e" => 10,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/phvl8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-%PS_Helvetica_Light = (
-  name => 'Helvetica-Light',
-  widths => {
-    "A" => 667, "AE" => 1000, "Aacute" => 667, "Acircumflex" => 667,
-    "Adieresis" => 667, "Agrave" => 667, "Aring" => 667,
-    "Atilde" => 667, "B" => 667, "C" => 722, "Ccedilla" => 722,
-    "D" => 722, "E" => 611, "Eacute" => 611, "Ecircumflex" => 611,
-    "Edieresis" => 611, "Egrave" => 611, "Eth" => 722, "F" => 556,
-    "G" => 778, "H" => 722, "I" => 278, "Iacute" => 278,
-    "Icircumflex" => 278, "Idieresis" => 278, "Igrave" => 278,
-    "J" => 500, "K" => 667, "L" => 556, "Lslash" => 556, "M" => 833,
-    "N" => 722, "Ntilde" => 722, "O" => 778, "OE" => 1000,
-    "Oacute" => 778, "Ocircumflex" => 778, "Odieresis" => 778,
-    "Ograve" => 778, "Oslash" => 778, "Otilde" => 778, "P" => 611,
-    "Q" => 778, "R" => 667, "S" => 611, "Scaron" => 611, "T" => 556,
-    "Thorn" => 611, "U" => 722, "Uacute" => 722, "Ucircumflex" => 722,
-    "Udieresis" => 722, "Ugrave" => 722, "V" => 611, "W" => 889,
-    "X" => 611, "Y" => 611, "Yacute" => 611, "Ydieresis" => 611,
-    "Z" => 611, "Zcaron" => 611, "a" => 556, "aacute" => 556,
-    "acircumflex" => 556, "acute" => 333, "adieresis" => 556,
-    "ae" => 889, "agrave" => 556, "ampersand" => 667, "aring" => 556,
-    "asciicircum" => 660, "asciitilde" => 660, "asterisk" => 389,
-    "at" => 800, "atilde" => 556, "b" => 611, "backslash" => 278,
-    "bar" => 222, "braceleft" => 333, "braceright" => 333,
-    "bracketleft" => 333, "bracketright" => 333, "breve" => 333,
-    "brokenbar" => 222, "bullet" => 500, "c" => 556, "caron" => 333,
-    "ccedilla" => 556, "cedilla" => 333, "cent" => 556,
-    "circumflex" => 333, "colon" => 278, "comma" => 278,
-    "copyright" => 800, "currency" => 556, "d" => 611, "dagger" => 556,
-    "daggerdbl" => 556, "degree" => 400, "dieresis" => 333,
-    "divide" => 660, "dollar" => 556, "dotaccent" => 333,
-    "dotlessi" => 222, "e" => 556, "eacute" => 556,
-    "ecircumflex" => 556, "edieresis" => 556, "egrave" => 556,
-    "eight" => 556, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 660, "eth" => 556, "exclam" => 333,
-    "exclamdown" => 333, "f" => 278, "fi" => 500, "five" => 556,
-    "fl" => 500, "florin" => 556, "four" => 556, "fraction" => 167,
-    "g" => 611, "germandbls" => 500, "grave" => 333, "greater" => 660,
-    "guillemotleft" => 556, "guillemotright" => 556,
-    "guilsinglleft" => 389, "guilsinglright" => 389, "h" => 556,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 222,
-    "iacute" => 222, "icircumflex" => 222, "idieresis" => 222,
-    "igrave" => 222, "j" => 222, "k" => 500, "l" => 222, "less" => 660,
-    "logicalnot" => 660, "lslash" => 222, "m" => 833, "macron" => 333,
-    "minus" => 660, "mu" => 556, "multiply" => 660, "n" => 556,
-    "nine" => 556, "ntilde" => 556, "numbersign" => 556, "o" => 556,
-    "oacute" => 556, "ocircumflex" => 556, "odieresis" => 556,
-    "oe" => 944, "ogonek" => 333, "ograve" => 556, "one" => 556,
-    "onehalf" => 834, "onequarter" => 834, "onesuperior" => 333,
-    "ordfeminine" => 334, "ordmasculine" => 334, "oslash" => 556,
-    "otilde" => 556, "p" => 611, "paragraph" => 650,
-    "parenleft" => 333, "parenright" => 333, "percent" => 889,
-    "period" => 278, "periodcentered" => 278, "perthousand" => 1000,
-    "plus" => 660, "plusminus" => 660, "q" => 611, "question" => 500,
-    "questiondown" => 500, "quotedbl" => 278, "quotedblbase" => 389,
-    "quotedblleft" => 389, "quotedblright" => 389, "quoteleft" => 222,
-    "quoteright" => 222, "quotesinglbase" => 222, "quotesingle" => 222,
-    "r" => 333, "registered" => 800, "ring" => 333, "s" => 500,
-    "scaron" => 500, "section" => 556, "semicolon" => 278,
-    "seven" => 556, "six" => 556, "slash" => 278, "space" => 278,
-    "sterling" => 556, "t" => 278, "thorn" => 611, "three" => 556,
-    "threequarters" => 834, "threesuperior" => 333, "tilde" => 333,
-    "trademark" => 940, "two" => 556, "twosuperior" => 333, "u" => 556,
-    "uacute" => 556, "ucircumflex" => 556, "udieresis" => 556,
-    "ugrave" => 556, "underscore" => 500, "v" => 500, "w" => 722,
-    "x" => 500, "y" => 500, "yacute" => 500, "ydieresis" => 500,
-    "yen" => 556, "z" => 500, "zcaron" => 500, "zero" => 556,
-  },
-  kern => {
-    "A" => {
-      "T" => -92, "V" => -74, "W" => -37, "Y" => -74,
-      "quoteright" => -74, "v" => -18, "w" => -18, "y" => -18,
-    },
-    "F" => {
-      "A" => -55, "comma" => -129, "period" => -129,
-    },
-    "L" => {
-      "T" => -92, "V" => -92, "W" => -55, "Y" => -111,
-      "quoteright" => -74, "y" => -37,
-    },
-    "P" => {
-      "A" => -74, "comma" => -129, "period" => -129,
-    },
-    "R" => {
-      "T" => -18, "V" => -18, "W" => -18, "Y" => -37, "y" => 0,
-    },
-    "T" => {
-      "A" => -92, "a" => -111, "c" => -111, "colon" => -111,
-      "comma" => -111, "e" => -111, "hyphen" => -129, "i" => 0,
-      "o" => -111, "period" => -111, "r" => -92, "s" => -111,
-      "semicolon" => -111, "u" => -92, "w" => -84, "y" => -84,
-    },
-    "V" => {
-      "A" => -74, "a" => -55, "colon" => -74, "comma" => -129,
-      "e" => -55, "hyphen" => -55, "i" => -18, "o" => -55,
-      "period" => -129, "r" => -37, "semicolon" => -74, "u" => -37,
-      "y" => -18,
-    },
-    "W" => {
-      "A" => -37, "a" => -37, "colon" => -18, "comma" => -74,
-      "e" => -18, "hyphen" => 0, "i" => 0, "o" => -18, "period" => -74,
-      "r" => -18, "semicolon" => -18, "u" => -18, "y" => 0,
-    },
-    "Y" => {
-      "A" => -74, "a" => -92, "colon" => -92, "comma" => -111,
-      "e" => -92, "hyphen" => -111, "i" => -20, "o" => -92, "p" => -37,
-      "period" => -111, "q" => -92, "semicolon" => -92, "u" => -37,
-      "v" => -40,
-    },
-    "f" => {
-      "f" => -18, "quoteright" => 18,
-    },
-    "quoteleft" => {
-      "quoteleft" => -18,
-    },
-    "quoteright" => {
-      "quoteright" => -18, "s" => -74, "t" => -18,
-    },
-    "r" => {
-      "c" => -18, "comma" => -92, "d" => -18, "e" => -18, "f" => 18,
-      "g" => 0, "h" => 0, "hyphen" => -55, "m" => 18, "n" => 18,
-      "o" => -18, "period" => -92, "q" => -18, "quoteright" => 0,
-      "r" => 0, "t" => 18, "u" => 0, "v" => 0, "w" => 0, "x" => 0,
-      "y" => 18, "z" => 0,
-    },
-    "v" => {
-      "comma" => -74, "period" => -74,
-    },
-    "w" => {
-      "comma" => -55, "period" => -55,
-    },
-    "y" => {
-      "comma" => -92, "period" => -92,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/phvlo8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-%PS_Helvetica_LightOblique = (
-  name => 'Helvetica-LightOblique',
-  widths => {
-    "A" => 667, "AE" => 1000, "Aacute" => 667, "Acircumflex" => 667,
-    "Adieresis" => 667, "Agrave" => 667, "Aring" => 667,
-    "Atilde" => 667, "B" => 667, "C" => 722, "Ccedilla" => 722,
-    "D" => 722, "E" => 611, "Eacute" => 611, "Ecircumflex" => 611,
-    "Edieresis" => 611, "Egrave" => 611, "Eth" => 722, "F" => 556,
-    "G" => 778, "H" => 722, "I" => 278, "Iacute" => 278,
-    "Icircumflex" => 278, "Idieresis" => 278, "Igrave" => 278,
-    "J" => 500, "K" => 667, "L" => 556, "Lslash" => 556, "M" => 833,
-    "N" => 722, "Ntilde" => 722, "O" => 778, "OE" => 1000,
-    "Oacute" => 778, "Ocircumflex" => 778, "Odieresis" => 778,
-    "Ograve" => 778, "Oslash" => 778, "Otilde" => 778, "P" => 611,
-    "Q" => 778, "R" => 667, "S" => 611, "Scaron" => 611, "T" => 556,
-    "Thorn" => 611, "U" => 722, "Uacute" => 722, "Ucircumflex" => 722,
-    "Udieresis" => 722, "Ugrave" => 722, "V" => 611, "W" => 889,
-    "X" => 611, "Y" => 611, "Yacute" => 611, "Ydieresis" => 611,
-    "Z" => 611, "Zcaron" => 611, "a" => 556, "aacute" => 556,
-    "acircumflex" => 556, "acute" => 333, "adieresis" => 556,
-    "ae" => 889, "agrave" => 556, "ampersand" => 667, "aring" => 556,
-    "asciicircum" => 660, "asciitilde" => 660, "asterisk" => 389,
-    "at" => 800, "atilde" => 556, "b" => 611, "backslash" => 278,
-    "bar" => 222, "braceleft" => 333, "braceright" => 333,
-    "bracketleft" => 333, "bracketright" => 333, "breve" => 333,
-    "brokenbar" => 222, "bullet" => 500, "c" => 556, "caron" => 333,
-    "ccedilla" => 556, "cedilla" => 333, "cent" => 556,
-    "circumflex" => 333, "colon" => 278, "comma" => 278,
-    "copyright" => 800, "currency" => 556, "d" => 611, "dagger" => 556,
-    "daggerdbl" => 556, "degree" => 400, "dieresis" => 333,
-    "divide" => 660, "dollar" => 556, "dotaccent" => 333,
-    "dotlessi" => 222, "e" => 556, "eacute" => 556,
-    "ecircumflex" => 556, "edieresis" => 556, "egrave" => 556,
-    "eight" => 556, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 660, "eth" => 556, "exclam" => 333,
-    "exclamdown" => 333, "f" => 278, "fi" => 500, "five" => 556,
-    "fl" => 500, "florin" => 556, "four" => 556, "fraction" => 167,
-    "g" => 611, "germandbls" => 500, "grave" => 333, "greater" => 660,
-    "guillemotleft" => 556, "guillemotright" => 556,
-    "guilsinglleft" => 389, "guilsinglright" => 389, "h" => 556,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 222,
-    "iacute" => 222, "icircumflex" => 222, "idieresis" => 222,
-    "igrave" => 222, "j" => 222, "k" => 500, "l" => 222, "less" => 660,
-    "logicalnot" => 660, "lslash" => 222, "m" => 833, "macron" => 333,
-    "minus" => 660, "mu" => 556, "multiply" => 660, "n" => 556,
-    "nine" => 556, "ntilde" => 556, "numbersign" => 556, "o" => 556,
-    "oacute" => 556, "ocircumflex" => 556, "odieresis" => 556,
-    "oe" => 944, "ogonek" => 333, "ograve" => 556, "one" => 556,
-    "onehalf" => 834, "onequarter" => 834, "onesuperior" => 333,
-    "ordfeminine" => 334, "ordmasculine" => 334, "oslash" => 556,
-    "otilde" => 556, "p" => 611, "paragraph" => 650,
-    "parenleft" => 333, "parenright" => 333, "percent" => 889,
-    "period" => 278, "periodcentered" => 278, "perthousand" => 1000,
-    "plus" => 660, "plusminus" => 660, "q" => 611, "question" => 500,
-    "questiondown" => 500, "quotedbl" => 278, "quotedblbase" => 389,
-    "quotedblleft" => 389, "quotedblright" => 389, "quoteleft" => 222,
-    "quoteright" => 222, "quotesinglbase" => 222, "quotesingle" => 222,
-    "r" => 333, "registered" => 800, "ring" => 333, "s" => 500,
-    "scaron" => 500, "section" => 556, "semicolon" => 278,
-    "seven" => 556, "six" => 556, "slash" => 278, "space" => 278,
-    "sterling" => 556, "t" => 278, "thorn" => 611, "three" => 556,
-    "threequarters" => 834, "threesuperior" => 333, "tilde" => 333,
-    "trademark" => 940, "two" => 556, "twosuperior" => 333, "u" => 556,
-    "uacute" => 556, "ucircumflex" => 556, "udieresis" => 556,
-    "ugrave" => 556, "underscore" => 500, "v" => 500, "w" => 722,
-    "x" => 500, "y" => 500, "yacute" => 500, "ydieresis" => 500,
-    "yen" => 556, "z" => 500, "zcaron" => 500, "zero" => 556,
-  },
-  kern => {
-    "A" => {
-      "T" => -92, "V" => -74, "W" => -37, "Y" => -74,
-      "quoteright" => -74, "v" => -18, "w" => -18, "y" => -18,
-    },
-    "F" => {
-      "A" => -55, "comma" => -129, "period" => -129,
-    },
-    "L" => {
-      "T" => -92, "V" => -92, "W" => -55, "Y" => -111,
-      "quoteright" => -74, "y" => -37,
-    },
-    "P" => {
-      "A" => -74, "comma" => -129, "period" => -129,
-    },
-    "R" => {
-      "T" => -18, "V" => -18, "W" => -18, "Y" => -37, "y" => 0,
-    },
-    "T" => {
-      "A" => -92, "a" => -111, "c" => -111, "colon" => -111,
-      "comma" => -111, "e" => -111, "hyphen" => -129, "i" => 0,
-      "o" => -111, "period" => -111, "r" => -92, "s" => -111,
-      "semicolon" => -111, "u" => -92, "w" => -84, "y" => -84,
-    },
-    "V" => {
-      "A" => -74, "a" => -55, "colon" => -74, "comma" => -129,
-      "e" => -55, "hyphen" => -55, "i" => -18, "o" => -55,
-      "period" => -129, "r" => -37, "semicolon" => -74, "u" => -37,
-      "y" => -18,
-    },
-    "W" => {
-      "A" => -37, "a" => -37, "colon" => -18, "comma" => -74,
-      "e" => -18, "hyphen" => 0, "i" => 0, "o" => -18, "period" => -74,
-      "r" => -18, "semicolon" => -18, "u" => -18, "y" => 0,
-    },
-    "Y" => {
-      "A" => -74, "a" => -92, "colon" => -92, "comma" => -111,
-      "e" => -92, "hyphen" => -111, "i" => -20, "o" => -92, "p" => -37,
-      "period" => -111, "q" => -92, "semicolon" => -92, "u" => -37,
-      "v" => -40,
-    },
-    "f" => {
-      "f" => -18, "quoteright" => 18,
-    },
-    "quoteleft" => {
-      "quoteleft" => -18,
-    },
-    "quoteright" => {
-      "quoteright" => -18, "s" => -74, "t" => -18,
-    },
-    "r" => {
-      "c" => -18, "comma" => -92, "d" => -18, "e" => -18, "f" => 18,
-      "g" => 0, "h" => 0, "hyphen" => -55, "m" => 18, "n" => 18,
-      "o" => -18, "period" => -92, "q" => -18, "quoteright" => 0,
-      "r" => 0, "t" => 18, "u" => 0, "v" => 0, "w" => 0, "x" => 0,
-      "y" => 18, "z" => 0,
-    },
-    "v" => {
-      "comma" => -74, "period" => -74,
-    },
-    "w" => {
-      "comma" => -55, "period" => -55,
-    },
-    "y" => {
-      "comma" => -92, "period" => -92,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/phvr8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-%PS_Helvetica = (
-  name => 'Helvetica',
-  widths => {
-    "A" => 667, "AE" => 1000, "Aacute" => 667, "Acircumflex" => 667,
-    "Adieresis" => 667, "Agrave" => 667, "Aring" => 667,
-    "Atilde" => 667, "B" => 667, "C" => 722, "Ccedilla" => 722,
-    "D" => 722, "E" => 667, "Eacute" => 667, "Ecircumflex" => 667,
-    "Edieresis" => 667, "Egrave" => 667, "Eth" => 722, "F" => 611,
-    "G" => 778, "H" => 722, "I" => 278, "Iacute" => 278,
-    "Icircumflex" => 278, "Idieresis" => 278, "Igrave" => 278,
-    "J" => 500, "K" => 667, "L" => 556, "Lslash" => 556, "M" => 833,
-    "N" => 722, "Ntilde" => 722, "O" => 778, "OE" => 1000,
-    "Oacute" => 778, "Ocircumflex" => 778, "Odieresis" => 778,
-    "Ograve" => 778, "Oslash" => 778, "Otilde" => 778, "P" => 667,
-    "Q" => 778, "R" => 722, "S" => 667, "Scaron" => 667, "T" => 611,
-    "Thorn" => 667, "U" => 722, "Uacute" => 722, "Ucircumflex" => 722,
-    "Udieresis" => 722, "Ugrave" => 722, "V" => 667, "W" => 944,
-    "X" => 667, "Y" => 667, "Yacute" => 667, "Ydieresis" => 667,
-    "Z" => 611, "Zcaron" => 611, "a" => 556, "aacute" => 556,
-    "acircumflex" => 556, "acute" => 333, "adieresis" => 556,
-    "ae" => 889, "agrave" => 556, "ampersand" => 667, "aring" => 556,
-    "asciicircum" => 469, "asciitilde" => 584, "asterisk" => 389,
-    "at" => 1015, "atilde" => 556, "b" => 556, "backslash" => 278,
-    "bar" => 260, "braceleft" => 334, "braceright" => 334,
-    "bracketleft" => 278, "bracketright" => 278, "breve" => 333,
-    "brokenbar" => 260, "bullet" => 350, "c" => 500, "caron" => 333,
-    "ccedilla" => 500, "cedilla" => 333, "cent" => 556,
-    "circumflex" => 333, "colon" => 278, "comma" => 278,
-    "copyright" => 737, "currency" => 556, "d" => 556, "dagger" => 556,
-    "daggerdbl" => 556, "degree" => 400, "dieresis" => 333,
-    "divide" => 584, "dollar" => 556, "dotaccent" => 333,
-    "dotlessi" => 278, "e" => 556, "eacute" => 556,
-    "ecircumflex" => 556, "edieresis" => 556, "egrave" => 556,
-    "eight" => 556, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 556, "equal" => 584, "eth" => 556, "exclam" => 278,
-    "exclamdown" => 333, "f" => 278, "fi" => 500, "five" => 556,
-    "fl" => 500, "florin" => 556, "four" => 556, "fraction" => 167,
-    "g" => 556, "germandbls" => 611, "grave" => 333, "greater" => 584,
-    "guillemotleft" => 556, "guillemotright" => 556,
-    "guilsinglleft" => 333, "guilsinglright" => 333, "h" => 556,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 222,
-    "iacute" => 278, "icircumflex" => 278, "idieresis" => 278,
-    "igrave" => 278, "j" => 222, "k" => 500, "l" => 222, "less" => 584,
-    "logicalnot" => 584, "lslash" => 222, "m" => 833, "macron" => 333,
-    "minus" => 584, "mu" => 556, "multiply" => 584, "n" => 556,
-    "nine" => 556, "ntilde" => 556, "numbersign" => 556, "o" => 556,
-    "oacute" => 556, "ocircumflex" => 556, "odieresis" => 556,
-    "oe" => 944, "ogonek" => 333, "ograve" => 556, "one" => 556,
-    "onehalf" => 834, "onequarter" => 834, "onesuperior" => 333,
-    "ordfeminine" => 370, "ordmasculine" => 365, "oslash" => 611,
-    "otilde" => 556, "p" => 556, "paragraph" => 537,
-    "parenleft" => 333, "parenright" => 333, "percent" => 889,
-    "period" => 278, "periodcentered" => 278, "perthousand" => 1000,
-    "plus" => 584, "plusminus" => 584, "q" => 556, "question" => 556,
-    "questiondown" => 611, "quotedbl" => 355, "quotedblbase" => 333,
-    "quotedblleft" => 333, "quotedblright" => 333, "quoteleft" => 222,
-    "quoteright" => 222, "quotesinglbase" => 222, "quotesingle" => 191,
-    "r" => 333, "registered" => 737, "ring" => 333, "s" => 500,
-    "scaron" => 500, "section" => 556, "semicolon" => 278,
-    "seven" => 556, "six" => 556, "slash" => 278, "space" => 278,
-    "sterling" => 556, "t" => 278, "thorn" => 556, "three" => 556,
-    "threequarters" => 834, "threesuperior" => 333, "tilde" => 333,
-    "trademark" => 1000, "two" => 556, "twosuperior" => 333,
-    "u" => 556, "uacute" => 556, "ucircumflex" => 556,
-    "udieresis" => 556, "ugrave" => 556, "underscore" => 556,
-    "v" => 500, "w" => 722, "x" => 500, "y" => 500, "yacute" => 500,
-    "ydieresis" => 500, "yen" => 556, "z" => 500, "zcaron" => 500,
-    "zero" => 556,
-  },
-  kern => {
-    "A" => {
-      "C" => -30, "G" => -30, "O" => -30, "Q" => -30, "T" => -120,
-      "U" => -50, "V" => -70, "W" => -50, "Y" => -100, "u" => -30,
-      "v" => -40, "w" => -40, "y" => -40,
-    },
-    "B" => {
-      "U" => -10, "comma" => -20, "period" => -20,
-    },
-    "C" => {
-      "comma" => -30, "period" => -30,
-    },
-    "D" => {
-      "A" => -40, "V" => -70, "W" => -40, "Y" => -90, "comma" => -70,
-      "period" => -70,
-    },
-    "F" => {
-      "A" => -80, "a" => -50, "comma" => -150, "e" => -30, "o" => -30,
-      "period" => -150, "r" => -45,
-    },
-    "J" => {
-      "A" => -20, "a" => -20, "comma" => -30, "period" => -30,
-      "u" => -20,
-    },
-    "K" => {
-      "O" => -50, "e" => -40, "o" => -40, "u" => -30, "y" => -50,
-    },
-    "L" => {
-      "T" => -110, "V" => -110, "W" => -70, "Y" => -140,
-      "quotedblright" => -140, "quoteright" => -160, "y" => -30,
-    },
-    "O" => {
-      "A" => -20, "T" => -40, "V" => -50, "W" => -30, "X" => -60,
-      "Y" => -70, "comma" => -40, "period" => -40,
-    },
-    "P" => {
-      "A" => -120, "a" => -40, "comma" => -180, "e" => -50, "o" => -50,
-      "period" => -180,
-    },
-    "Q" => {
-      "U" => -10,
-    },
-    "R" => {
-      "O" => -20, "T" => -30, "U" => -40, "V" => -50, "W" => -30,
-      "Y" => -50,
-    },
-    "S" => {
-      "comma" => -20, "period" => -20,
-    },
-    "T" => {
-      "A" => -120, "O" => -40, "a" => -120, "colon" => -20,
-      "comma" => -120, "e" => -120, "hyphen" => -140, "o" => -120,
-      "period" => -120, "r" => -120, "semicolon" => -20, "u" => -120,
-      "w" => -120, "y" => -120,
-    },
-    "U" => {
-      "A" => -40, "comma" => -40, "period" => -40,
-    },
-    "V" => {
-      "A" => -80, "G" => -40, "O" => -40, "a" => -70, "colon" => -40,
-      "comma" => -125, "e" => -80, "hyphen" => -80, "o" => -80,
-      "period" => -125, "semicolon" => -40, "u" => -70,
-    },
-    "W" => {
-      "A" => -50, "O" => -20, "a" => -40, "comma" => -80, "e" => -30,
-      "hyphen" => -40, "o" => -30, "period" => -80, "u" => -30,
-      "y" => -20,
-    },
-    "Y" => {
-      "A" => -110, "O" => -85, "a" => -140, "colon" => -60,
-      "comma" => -140, "e" => -140, "hyphen" => -140, "i" => -20,
-      "o" => -140, "period" => -140, "semicolon" => -60, "u" => -110,
-    },
-    "a" => {
-      "v" => -20, "w" => -20, "y" => -30,
-    },
-    "b" => {
-      "b" => -10, "comma" => -40, "l" => -20, "period" => -40,
-      "u" => -20, "v" => -20, "y" => -20,
-    },
-    "c" => {
-      "comma" => -15, "k" => -20,
-    },
-    "colon" => {
-      "space" => -50,
-    },
-    "comma" => {
-      "quotedblright" => -100, "quoteright" => -100,
-    },
-    "e" => {
-      "comma" => -15, "period" => -15, "v" => -30, "w" => -20,
-      "x" => -30, "y" => -20,
-    },
-    "f" => {
-      "a" => -30, "comma" => -30, "dotlessi" => -28, "e" => -30,
-      "o" => -30, "period" => -30, "quotedblright" => 60,
-      "quoteright" => 50,
-    },
-    "g" => {
-      "r" => -10,
-    },
-    "h" => {
-      "y" => -30,
-    },
-    "k" => {
-      "e" => -20, "o" => -20,
-    },
-    "m" => {
-      "u" => -10, "y" => -15,
-    },
-    "n" => {
-      "u" => -10, "v" => -20, "y" => -15,
-    },
-    "o" => {
-      "comma" => -40, "period" => -40, "v" => -15, "w" => -15,
-      "x" => -30, "y" => -30,
-    },
-    "oslash" => {
-      "a" => -55, "b" => -55, "c" => -55, "comma" => -95, "d" => -55,
-      "e" => -55, "f" => -55, "g" => -55, "h" => -55, "i" => -55,
-      "j" => -55, "k" => -55, "l" => -55, "m" => -55, "n" => -55,
-      "o" => -55, "p" => -55, "period" => -95, "q" => -55, "r" => -55,
-      "s" => -55, "t" => -55, "u" => -55, "v" => -70, "w" => -70,
-      "x" => -85, "y" => -70, "z" => -55,
-    },
-    "p" => {
-      "comma" => -35, "period" => -35, "y" => -30,
-    },
-    "period" => {
-      "quotedblright" => -100, "quoteright" => -100, "space" => -60,
-    },
-    "quotedblright" => {
-      "space" => -40,
-    },
-    "quoteleft" => {
-      "quoteleft" => -57,
-    },
-    "quoteright" => {
-      "d" => -50, "quoteright" => -57, "r" => -50, "s" => -50,
-      "space" => -70,
-    },
-    "r" => {
-      "a" => -10, "colon" => 30, "comma" => -50, "i" => 15, "k" => 15,
-      "l" => 15, "m" => 25, "n" => 25, "p" => 30, "period" => -50,
-      "semicolon" => 30, "t" => 40, "u" => 15, "v" => 30, "y" => 30,
-    },
-    "s" => {
-      "comma" => -15, "period" => -15, "w" => -30,
-    },
-    "semicolon" => {
-      "space" => -50,
-    },
-    "space" => {
-      "T" => -50, "V" => -50, "W" => -40, "Y" => -90,
-      "quotedblleft" => -30, "quoteleft" => -60,
-    },
-    "v" => {
-      "a" => -25, "comma" => -80, "e" => -25, "o" => -25,
-      "period" => -80,
-    },
-    "w" => {
-      "a" => -15, "comma" => -60, "e" => -10, "o" => -10,
-      "period" => -60,
-    },
-    "x" => {
-      "e" => -30,
-    },
-    "y" => {
-      "a" => -20, "comma" => -100, "e" => -20, "o" => -20,
-      "period" => -100,
-    },
-    "z" => {
-      "e" => -15, "o" => -15,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/phvr8an.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,245 +0,0 @@
-%PS_Helvetica_Narrow = (
-  name => 'Helvetica-Narrow',
-  widths => {
-    "A" => 547, "AE" => 820, "Aacute" => 547, "Acircumflex" => 547,
-    "Adieresis" => 547, "Agrave" => 547, "Aring" => 547,
-    "Atilde" => 547, "B" => 547, "C" => 592, "Ccedilla" => 592,
-    "D" => 592, "E" => 547, "Eacute" => 547, "Ecircumflex" => 547,
-    "Edieresis" => 547, "Egrave" => 547, "Eth" => 592, "F" => 501,
-    "G" => 638, "H" => 592, "I" => 228, "Iacute" => 228,
-    "Icircumflex" => 228, "Idieresis" => 228, "Igrave" => 228,
-    "J" => 410, "K" => 547, "L" => 456, "Lslash" => 456, "M" => 683,
-    "N" => 592, "Ntilde" => 592, "O" => 638, "OE" => 820,
-    "Oacute" => 638, "Ocircumflex" => 638, "Odieresis" => 638,
-    "Ograve" => 638, "Oslash" => 638, "Otilde" => 638, "P" => 547,
-    "Q" => 638, "R" => 592, "S" => 547, "Scaron" => 547, "T" => 501,
-    "Thorn" => 547, "U" => 592, "Uacute" => 592, "Ucircumflex" => 592,
-    "Udieresis" => 592, "Ugrave" => 592, "V" => 547, "W" => 774,
-    "X" => 547, "Y" => 547, "Yacute" => 547, "Ydieresis" => 547,
-    "Z" => 501, "Zcaron" => 501, "a" => 456, "aacute" => 456,
-    "acircumflex" => 456, "acute" => 273, "adieresis" => 456,
-    "ae" => 729, "agrave" => 456, "ampersand" => 547, "aring" => 456,
-    "asciicircum" => 385, "asciitilde" => 479, "asterisk" => 319,
-    "at" => 832, "atilde" => 456, "b" => 456, "backslash" => 228,
-    "bar" => 213, "braceleft" => 274, "braceright" => 274,
-    "bracketleft" => 228, "bracketright" => 228, "breve" => 273,
-    "brokenbar" => 213, "bullet" => 287, "c" => 410, "caron" => 273,
-    "ccedilla" => 410, "cedilla" => 273, "cent" => 456,
-    "circumflex" => 273, "colon" => 228, "comma" => 228,
-    "copyright" => 604, "currency" => 456, "d" => 456, "dagger" => 456,
-    "daggerdbl" => 456, "degree" => 328, "dieresis" => 273,
-    "divide" => 479, "dollar" => 456, "dotaccent" => 273,
-    "dotlessi" => 228, "e" => 456, "eacute" => 456,
-    "ecircumflex" => 456, "edieresis" => 456, "egrave" => 456,
-    "eight" => 456, "ellipsis" => 820, "emdash" => 820,
-    "endash" => 456, "equal" => 479, "eth" => 456, "exclam" => 228,
-    "exclamdown" => 273, "f" => 228, "fi" => 410, "five" => 456,
-    "fl" => 410, "florin" => 456, "four" => 456, "fraction" => 137,
-    "g" => 456, "germandbls" => 501, "grave" => 273, "greater" => 479,
-    "guillemotleft" => 456, "guillemotright" => 456,
-    "guilsinglleft" => 273, "guilsinglright" => 273, "h" => 456,
-    "hungarumlaut" => 273, "hyphen" => 273, "i" => 182,
-    "iacute" => 228, "icircumflex" => 228, "idieresis" => 228,
-    "igrave" => 228, "j" => 182, "k" => 410, "l" => 182, "less" => 479,
-    "logicalnot" => 479, "lslash" => 182, "m" => 683, "macron" => 273,
-    "minus" => 479, "mu" => 456, "multiply" => 479, "n" => 456,
-    "nine" => 456, "ntilde" => 456, "numbersign" => 456, "o" => 456,
-    "oacute" => 456, "ocircumflex" => 456, "odieresis" => 456,
-    "oe" => 774, "ogonek" => 273, "ograve" => 456, "one" => 456,
-    "onehalf" => 684, "onequarter" => 684, "onesuperior" => 273,
-    "ordfeminine" => 303, "ordmasculine" => 299, "oslash" => 501,
-    "otilde" => 456, "p" => 456, "paragraph" => 440,
-    "parenleft" => 273, "parenright" => 273, "percent" => 729,
-    "period" => 228, "periodcentered" => 228, "perthousand" => 820,
-    "plus" => 479, "plusminus" => 479, "q" => 456, "question" => 456,
-    "questiondown" => 501, "quotedbl" => 291, "quotedblbase" => 273,
-    "quotedblleft" => 273, "quotedblright" => 273, "quoteleft" => 182,
-    "quoteright" => 182, "quotesinglbase" => 182, "quotesingle" => 157,
-    "r" => 273, "registered" => 604, "ring" => 273, "s" => 410,
-    "scaron" => 410, "section" => 456, "semicolon" => 228,
-    "seven" => 456, "six" => 456, "slash" => 228, "space" => 228,
-    "sterling" => 456, "t" => 228, "thorn" => 456, "three" => 456,
-    "threequarters" => 684, "threesuperior" => 273, "tilde" => 273,
-    "trademark" => 820, "two" => 456, "twosuperior" => 273, "u" => 456,
-    "uacute" => 456, "ucircumflex" => 456, "udieresis" => 456,
-    "ugrave" => 456, "underscore" => 456, "v" => 410, "w" => 592,
-    "x" => 410, "y" => 410, "yacute" => 410, "ydieresis" => 410,
-    "yen" => 456, "z" => 410, "zcaron" => 410, "zero" => 456,
-  },
-  kern => {
-    "A" => {
-      "C" => -24, "G" => -24, "O" => -24, "Q" => -24, "T" => -97,
-      "U" => -40, "V" => -56, "W" => -40, "Y" => -81, "u" => -24,
-      "v" => -32, "w" => -32, "y" => -32,
-    },
-    "B" => {
-      "U" => -7, "comma" => -15, "period" => -15,
-    },
-    "C" => {
-      "comma" => -24, "period" => -24,
-    },
-    "D" => {
-      "A" => -32, "V" => -56, "W" => -32, "Y" => -73, "comma" => -56,
-      "period" => -56,
-    },
-    "F" => {
-      "A" => -65, "a" => -40, "comma" => -122, "e" => -24, "o" => -24,
-      "period" => -122, "r" => -36,
-    },
-    "J" => {
-      "A" => -15, "a" => -15, "comma" => -24, "period" => -24,
-      "u" => -15,
-    },
-    "K" => {
-      "O" => -40, "e" => -32, "o" => -32, "u" => -24, "y" => -40,
-    },
-    "L" => {
-      "T" => -89, "V" => -89, "W" => -56, "Y" => -114,
-      "quotedblright" => -114, "quoteright" => -130, "y" => -24,
-    },
-    "O" => {
-      "A" => -15, "T" => -32, "V" => -40, "W" => -24, "X" => -48,
-      "Y" => -56, "comma" => -32, "period" => -32,
-    },
-    "P" => {
-      "A" => -97, "a" => -32, "comma" => -147, "e" => -40, "o" => -40,
-      "period" => -147,
-    },
-    "Q" => {
-      "U" => -7,
-    },
-    "R" => {
-      "O" => -15, "T" => -24, "U" => -32, "V" => -40, "W" => -24,
-      "Y" => -40,
-    },
-    "S" => {
-      "comma" => -15, "period" => -15,
-    },
-    "T" => {
-      "A" => -97, "O" => -32, "a" => -97, "colon" => -15,
-      "comma" => -97, "e" => -97, "hyphen" => -114, "o" => -97,
-      "period" => -97, "r" => -97, "semicolon" => -15, "u" => -97,
-      "w" => -97, "y" => -97,
-    },
-    "U" => {
-      "A" => -32, "comma" => -32, "period" => -32,
-    },
-    "V" => {
-      "A" => -65, "G" => -32, "O" => -32, "a" => -56, "colon" => -32,
-      "comma" => -102, "e" => -65, "hyphen" => -65, "o" => -65,
-      "period" => -102, "semicolon" => -32, "u" => -56,
-    },
-    "W" => {
-      "A" => -40, "O" => -15, "a" => -32, "comma" => -65, "e" => -24,
-      "hyphen" => -32, "o" => -24, "period" => -65, "u" => -24,
-      "y" => -15,
-    },
-    "Y" => {
-      "A" => -89, "O" => -69, "a" => -114, "colon" => -48,
-      "comma" => -114, "e" => -114, "hyphen" => -114, "i" => -15,
-      "o" => -114, "period" => -114, "semicolon" => -48, "u" => -89,
-    },
-    "a" => {
-      "v" => -15, "w" => -15, "y" => -24,
-    },
-    "b" => {
-      "b" => -7, "comma" => -32, "l" => -15, "period" => -32,
-      "u" => -15, "v" => -15, "y" => -15,
-    },
-    "c" => {
-      "comma" => -11, "k" => -15,
-    },
-    "colon" => {
-      "space" => -40,
-    },
-    "comma" => {
-      "quotedblright" => -81, "quoteright" => -81,
-    },
-    "e" => {
-      "comma" => -11, "period" => -11, "v" => -24, "w" => -15,
-      "x" => -24, "y" => -15,
-    },
-    "f" => {
-      "a" => -24, "comma" => -24, "dotlessi" => -22, "e" => -24,
-      "o" => -24, "period" => -24, "quotedblright" => 49,
-      "quoteright" => 41,
-    },
-    "g" => {
-      "r" => -7,
-    },
-    "h" => {
-      "y" => -24,
-    },
-    "k" => {
-      "e" => -15, "o" => -15,
-    },
-    "m" => {
-      "u" => -7, "y" => -11,
-    },
-    "n" => {
-      "u" => -7, "v" => -15, "y" => -11,
-    },
-    "o" => {
-      "comma" => -32, "period" => -32, "v" => -11, "w" => -11,
-      "x" => -24, "y" => -24,
-    },
-    "oslash" => {
-      "a" => -44, "b" => -44, "c" => -44, "comma" => -77, "d" => -44,
-      "e" => -44, "f" => -44, "g" => -44, "h" => -44, "i" => -44,
-      "j" => -44, "k" => -44, "l" => -44, "m" => -44, "n" => -44,
-      "o" => -44, "p" => -44, "period" => -77, "q" => -44, "r" => -44,
-      "s" => -44, "t" => -44, "u" => -44, "v" => -56, "w" => -56,
-      "x" => -69, "y" => -56, "z" => -44,
-    },
-    "p" => {
-      "comma" => -28, "period" => -28, "y" => -24,
-    },
-    "period" => {
-      "quotedblright" => -81, "quoteright" => -81, "space" => -48,
-    },
-    "quotedblright" => {
-      "space" => -32,
-    },
-    "quoteleft" => {
-      "quoteleft" => -46,
-    },
-    "quoteright" => {
-      "d" => -40, "quoteright" => -46, "r" => -40, "s" => -40,
-      "space" => -56,
-    },
-    "r" => {
-      "a" => -7, "colon" => 25, "comma" => -40, "i" => 12, "k" => 12,
-      "l" => 12, "m" => 21, "n" => 21, "p" => 25, "period" => -40,
-      "semicolon" => 25, "t" => 33, "u" => 12, "v" => 25, "y" => 25,
-    },
-    "s" => {
-      "comma" => -11, "period" => -11, "w" => -24,
-    },
-    "semicolon" => {
-      "space" => -40,
-    },
-    "space" => {
-      "T" => -40, "V" => -40, "W" => -32, "Y" => -73,
-      "quotedblleft" => -24, "quoteleft" => -48,
-    },
-    "v" => {
-      "a" => -20, "comma" => -65, "e" => -20, "o" => -20,
-      "period" => -65,
-    },
-    "w" => {
-      "a" => -11, "comma" => -48, "e" => -7, "o" => -7,
-      "period" => -48,
-    },
-    "x" => {
-      "e" => -24,
-    },
-    "y" => {
-      "a" => -15, "comma" => -81, "e" => -15, "o" => -15,
-      "period" => -81,
-    },
-    "z" => {
-      "e" => -11, "o" => -11,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/phvro8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-%PS_Helvetica_Oblique = (
-  name => 'Helvetica-Oblique',
-  widths => {
-    "A" => 667, "AE" => 1000, "Aacute" => 667, "Acircumflex" => 667,
-    "Adieresis" => 667, "Agrave" => 667, "Aring" => 667,
-    "Atilde" => 667, "B" => 667, "C" => 722, "Ccedilla" => 722,
-    "D" => 722, "E" => 667, "Eacute" => 667, "Ecircumflex" => 667,
-    "Edieresis" => 667, "Egrave" => 667, "Eth" => 722, "F" => 611,
-    "G" => 778, "H" => 722, "I" => 278, "Iacute" => 278,
-    "Icircumflex" => 278, "Idieresis" => 278, "Igrave" => 278,
-    "J" => 500, "K" => 667, "L" => 556, "Lslash" => 556, "M" => 833,
-    "N" => 722, "Ntilde" => 722, "O" => 778, "OE" => 1000,
-    "Oacute" => 778, "Ocircumflex" => 778, "Odieresis" => 778,
-    "Ograve" => 778, "Oslash" => 778, "Otilde" => 778, "P" => 667,
-    "Q" => 778, "R" => 722, "S" => 667, "Scaron" => 667, "T" => 611,
-    "Thorn" => 667, "U" => 722, "Uacute" => 722, "Ucircumflex" => 722,
-    "Udieresis" => 722, "Ugrave" => 722, "V" => 667, "W" => 944,
-    "X" => 667, "Y" => 667, "Yacute" => 667, "Ydieresis" => 667,
-    "Z" => 611, "Zcaron" => 611, "a" => 556, "aacute" => 556,
-    "acircumflex" => 556, "acute" => 333, "adieresis" => 556,
-    "ae" => 889, "agrave" => 556, "ampersand" => 667, "aring" => 556,
-    "asciicircum" => 469, "asciitilde" => 584, "asterisk" => 389,
-    "at" => 1015, "atilde" => 556, "b" => 556, "backslash" => 278,
-    "bar" => 260, "braceleft" => 334, "braceright" => 334,
-    "bracketleft" => 278, "bracketright" => 278, "breve" => 333,
-    "brokenbar" => 260, "bullet" => 350, "c" => 500, "caron" => 333,
-    "ccedilla" => 500, "cedilla" => 333, "cent" => 556,
-    "circumflex" => 333, "colon" => 278, "comma" => 278,
-    "copyright" => 737, "currency" => 556, "d" => 556, "dagger" => 556,
-    "daggerdbl" => 556, "degree" => 400, "dieresis" => 333,
-    "divide" => 584, "dollar" => 556, "dotaccent" => 333,
-    "dotlessi" => 278, "e" => 556, "eacute" => 556,
-    "ecircumflex" => 556, "edieresis" => 556, "egrave" => 556,
-    "eight" => 556, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 556, "equal" => 584, "eth" => 556, "exclam" => 278,
-    "exclamdown" => 333, "f" => 278, "fi" => 500, "five" => 556,
-    "fl" => 500, "florin" => 556, "four" => 556, "fraction" => 167,
-    "g" => 556, "germandbls" => 611, "grave" => 333, "greater" => 584,
-    "guillemotleft" => 556, "guillemotright" => 556,
-    "guilsinglleft" => 333, "guilsinglright" => 333, "h" => 556,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 222,
-    "iacute" => 278, "icircumflex" => 278, "idieresis" => 278,
-    "igrave" => 278, "j" => 222, "k" => 500, "l" => 222, "less" => 584,
-    "logicalnot" => 584, "lslash" => 222, "m" => 833, "macron" => 333,
-    "minus" => 584, "mu" => 556, "multiply" => 584, "n" => 556,
-    "nine" => 556, "ntilde" => 556, "numbersign" => 556, "o" => 556,
-    "oacute" => 556, "ocircumflex" => 556, "odieresis" => 556,
-    "oe" => 944, "ogonek" => 333, "ograve" => 556, "one" => 556,
-    "onehalf" => 834, "onequarter" => 834, "onesuperior" => 333,
-    "ordfeminine" => 370, "ordmasculine" => 365, "oslash" => 611,
-    "otilde" => 556, "p" => 556, "paragraph" => 537,
-    "parenleft" => 333, "parenright" => 333, "percent" => 889,
-    "period" => 278, "periodcentered" => 278, "perthousand" => 1000,
-    "plus" => 584, "plusminus" => 584, "q" => 556, "question" => 556,
-    "questiondown" => 611, "quotedbl" => 355, "quotedblbase" => 333,
-    "quotedblleft" => 333, "quotedblright" => 333, "quoteleft" => 222,
-    "quoteright" => 222, "quotesinglbase" => 222, "quotesingle" => 191,
-    "r" => 333, "registered" => 737, "ring" => 333, "s" => 500,
-    "scaron" => 500, "section" => 556, "semicolon" => 278,
-    "seven" => 556, "six" => 556, "slash" => 278, "space" => 278,
-    "sterling" => 556, "t" => 278, "thorn" => 556, "three" => 556,
-    "threequarters" => 834, "threesuperior" => 333, "tilde" => 333,
-    "trademark" => 1000, "two" => 556, "twosuperior" => 333,
-    "u" => 556, "uacute" => 556, "ucircumflex" => 556,
-    "udieresis" => 556, "ugrave" => 556, "underscore" => 556,
-    "v" => 500, "w" => 722, "x" => 500, "y" => 500, "yacute" => 500,
-    "ydieresis" => 500, "yen" => 556, "z" => 500, "zcaron" => 500,
-    "zero" => 556,
-  },
-  kern => {
-    "A" => {
-      "C" => -30, "G" => -30, "O" => -30, "Q" => -30, "T" => -120,
-      "U" => -50, "V" => -70, "W" => -50, "Y" => -100, "u" => -30,
-      "v" => -40, "w" => -40, "y" => -40,
-    },
-    "B" => {
-      "U" => -10, "comma" => -20, "period" => -20,
-    },
-    "C" => {
-      "comma" => -30, "period" => -30,
-    },
-    "D" => {
-      "A" => -40, "V" => -70, "W" => -40, "Y" => -90, "comma" => -70,
-      "period" => -70,
-    },
-    "F" => {
-      "A" => -80, "a" => -50, "comma" => -150, "e" => -30, "o" => -30,
-      "period" => -150, "r" => -45,
-    },
-    "J" => {
-      "A" => -20, "a" => -20, "comma" => -30, "period" => -30,
-      "u" => -20,
-    },
-    "K" => {
-      "O" => -50, "e" => -40, "o" => -40, "u" => -30, "y" => -50,
-    },
-    "L" => {
-      "T" => -110, "V" => -110, "W" => -70, "Y" => -140,
-      "quotedblright" => -140, "quoteright" => -160, "y" => -30,
-    },
-    "O" => {
-      "A" => -20, "T" => -40, "V" => -50, "W" => -30, "X" => -60,
-      "Y" => -70, "comma" => -40, "period" => -40,
-    },
-    "P" => {
-      "A" => -120, "a" => -40, "comma" => -180, "e" => -50, "o" => -50,
-      "period" => -180,
-    },
-    "Q" => {
-      "U" => -10,
-    },
-    "R" => {
-      "O" => -20, "T" => -30, "U" => -40, "V" => -50, "W" => -30,
-      "Y" => -50,
-    },
-    "S" => {
-      "comma" => -20, "period" => -20,
-    },
-    "T" => {
-      "A" => -120, "O" => -40, "a" => -120, "colon" => -20,
-      "comma" => -120, "e" => -120, "hyphen" => -140, "o" => -120,
-      "period" => -120, "r" => -120, "semicolon" => -20, "u" => -120,
-      "w" => -120, "y" => -120,
-    },
-    "U" => {
-      "A" => -40, "comma" => -40, "period" => -40,
-    },
-    "V" => {
-      "A" => -80, "G" => -40, "O" => -40, "a" => -70, "colon" => -40,
-      "comma" => -125, "e" => -80, "hyphen" => -80, "o" => -80,
-      "period" => -125, "semicolon" => -40, "u" => -70,
-    },
-    "W" => {
-      "A" => -50, "O" => -20, "a" => -40, "comma" => -80, "e" => -30,
-      "hyphen" => -40, "o" => -30, "period" => -80, "u" => -30,
-      "y" => -20,
-    },
-    "Y" => {
-      "A" => -110, "O" => -85, "a" => -140, "colon" => -60,
-      "comma" => -140, "e" => -140, "hyphen" => -140, "i" => -20,
-      "o" => -140, "period" => -140, "semicolon" => -60, "u" => -110,
-    },
-    "a" => {
-      "v" => -20, "w" => -20, "y" => -30,
-    },
-    "b" => {
-      "b" => -10, "comma" => -40, "l" => -20, "period" => -40,
-      "u" => -20, "v" => -20, "y" => -20,
-    },
-    "c" => {
-      "comma" => -15, "k" => -20,
-    },
-    "colon" => {
-      "space" => -50,
-    },
-    "comma" => {
-      "quotedblright" => -100, "quoteright" => -100,
-    },
-    "e" => {
-      "comma" => -15, "period" => -15, "v" => -30, "w" => -20,
-      "x" => -30, "y" => -20,
-    },
-    "f" => {
-      "a" => -30, "comma" => -30, "dotlessi" => -28, "e" => -30,
-      "o" => -30, "period" => -30, "quotedblright" => 60,
-      "quoteright" => 50,
-    },
-    "g" => {
-      "r" => -10,
-    },
-    "h" => {
-      "y" => -30,
-    },
-    "k" => {
-      "e" => -20, "o" => -20,
-    },
-    "m" => {
-      "u" => -10, "y" => -15,
-    },
-    "n" => {
-      "u" => -10, "v" => -20, "y" => -15,
-    },
-    "o" => {
-      "comma" => -40, "period" => -40, "v" => -15, "w" => -15,
-      "x" => -30, "y" => -30,
-    },
-    "oslash" => {
-      "a" => -55, "b" => -55, "c" => -55, "comma" => -95, "d" => -55,
-      "e" => -55, "f" => -55, "g" => -55, "h" => -55, "i" => -55,
-      "j" => -55, "k" => -55, "l" => -55, "m" => -55, "n" => -55,
-      "o" => -55, "p" => -55, "period" => -95, "q" => -55, "r" => -55,
-      "s" => -55, "t" => -55, "u" => -55, "v" => -70, "w" => -70,
-      "x" => -85, "y" => -70, "z" => -55,
-    },
-    "p" => {
-      "comma" => -35, "period" => -35, "y" => -30,
-    },
-    "period" => {
-      "quotedblright" => -100, "quoteright" => -100, "space" => -60,
-    },
-    "quotedblright" => {
-      "space" => -40,
-    },
-    "quoteleft" => {
-      "quoteleft" => -57,
-    },
-    "quoteright" => {
-      "d" => -50, "quoteright" => -57, "r" => -50, "s" => -50,
-      "space" => -70,
-    },
-    "r" => {
-      "a" => -10, "colon" => 30, "comma" => -50, "i" => 15, "k" => 15,
-      "l" => 15, "m" => 25, "n" => 25, "p" => 30, "period" => -50,
-      "semicolon" => 30, "t" => 40, "u" => 15, "v" => 30, "y" => 30,
-    },
-    "s" => {
-      "comma" => -15, "period" => -15, "w" => -30,
-    },
-    "semicolon" => {
-      "space" => -50,
-    },
-    "space" => {
-      "T" => -50, "V" => -50, "W" => -40, "Y" => -90,
-      "quotedblleft" => -30, "quoteleft" => -60,
-    },
-    "v" => {
-      "a" => -25, "comma" => -80, "e" => -25, "o" => -25,
-      "period" => -80,
-    },
-    "w" => {
-      "a" => -15, "comma" => -60, "e" => -10, "o" => -10,
-      "period" => -60,
-    },
-    "x" => {
-      "e" => -30,
-    },
-    "y" => {
-      "a" => -20, "comma" => -100, "e" => -20, "o" => -20,
-      "period" => -100,
-    },
-    "z" => {
-      "e" => -15, "o" => -15,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/phvro8an.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,245 +0,0 @@
-%PS_Helvetica_Narrow_Oblique = (
-  name => 'Helvetica-Narrow-Oblique',
-  widths => {
-    "A" => 547, "AE" => 820, "Aacute" => 547, "Acircumflex" => 547,
-    "Adieresis" => 547, "Agrave" => 547, "Aring" => 547,
-    "Atilde" => 547, "B" => 547, "C" => 592, "Ccedilla" => 592,
-    "D" => 592, "E" => 547, "Eacute" => 547, "Ecircumflex" => 547,
-    "Edieresis" => 547, "Egrave" => 547, "Eth" => 592, "F" => 501,
-    "G" => 638, "H" => 592, "I" => 228, "Iacute" => 228,
-    "Icircumflex" => 228, "Idieresis" => 228, "Igrave" => 228,
-    "J" => 410, "K" => 547, "L" => 456, "Lslash" => 456, "M" => 683,
-    "N" => 592, "Ntilde" => 592, "O" => 638, "OE" => 820,
-    "Oacute" => 638, "Ocircumflex" => 638, "Odieresis" => 638,
-    "Ograve" => 638, "Oslash" => 638, "Otilde" => 638, "P" => 547,
-    "Q" => 638, "R" => 592, "S" => 547, "Scaron" => 547, "T" => 501,
-    "Thorn" => 547, "U" => 592, "Uacute" => 592, "Ucircumflex" => 592,
-    "Udieresis" => 592, "Ugrave" => 592, "V" => 547, "W" => 774,
-    "X" => 547, "Y" => 547, "Yacute" => 547, "Ydieresis" => 547,
-    "Z" => 501, "Zcaron" => 501, "a" => 456, "aacute" => 456,
-    "acircumflex" => 456, "acute" => 273, "adieresis" => 456,
-    "ae" => 729, "agrave" => 456, "ampersand" => 547, "aring" => 456,
-    "asciicircum" => 385, "asciitilde" => 479, "asterisk" => 319,
-    "at" => 832, "atilde" => 456, "b" => 456, "backslash" => 228,
-    "bar" => 213, "braceleft" => 274, "braceright" => 274,
-    "bracketleft" => 228, "bracketright" => 228, "breve" => 273,
-    "brokenbar" => 213, "bullet" => 287, "c" => 410, "caron" => 273,
-    "ccedilla" => 410, "cedilla" => 273, "cent" => 456,
-    "circumflex" => 273, "colon" => 228, "comma" => 228,
-    "copyright" => 604, "currency" => 456, "d" => 456, "dagger" => 456,
-    "daggerdbl" => 456, "degree" => 328, "dieresis" => 273,
-    "divide" => 479, "dollar" => 456, "dotaccent" => 273,
-    "dotlessi" => 228, "e" => 456, "eacute" => 456,
-    "ecircumflex" => 456, "edieresis" => 456, "egrave" => 456,
-    "eight" => 456, "ellipsis" => 820, "emdash" => 820,
-    "endash" => 456, "equal" => 479, "eth" => 456, "exclam" => 228,
-    "exclamdown" => 273, "f" => 228, "fi" => 410, "five" => 456,
-    "fl" => 410, "florin" => 456, "four" => 456, "fraction" => 137,
-    "g" => 456, "germandbls" => 501, "grave" => 273, "greater" => 479,
-    "guillemotleft" => 456, "guillemotright" => 456,
-    "guilsinglleft" => 273, "guilsinglright" => 273, "h" => 456,
-    "hungarumlaut" => 273, "hyphen" => 273, "i" => 182,
-    "iacute" => 228, "icircumflex" => 228, "idieresis" => 228,
-    "igrave" => 228, "j" => 182, "k" => 410, "l" => 182, "less" => 479,
-    "logicalnot" => 479, "lslash" => 182, "m" => 683, "macron" => 273,
-    "minus" => 479, "mu" => 456, "multiply" => 479, "n" => 456,
-    "nine" => 456, "ntilde" => 456, "numbersign" => 456, "o" => 456,
-    "oacute" => 456, "ocircumflex" => 456, "odieresis" => 456,
-    "oe" => 774, "ogonek" => 273, "ograve" => 456, "one" => 456,
-    "onehalf" => 684, "onequarter" => 684, "onesuperior" => 273,
-    "ordfeminine" => 303, "ordmasculine" => 299, "oslash" => 501,
-    "otilde" => 456, "p" => 456, "paragraph" => 440,
-    "parenleft" => 273, "parenright" => 273, "percent" => 729,
-    "period" => 228, "periodcentered" => 228, "perthousand" => 820,
-    "plus" => 479, "plusminus" => 479, "q" => 456, "question" => 456,
-    "questiondown" => 501, "quotedbl" => 291, "quotedblbase" => 273,
-    "quotedblleft" => 273, "quotedblright" => 273, "quoteleft" => 182,
-    "quoteright" => 182, "quotesinglbase" => 182, "quotesingle" => 157,
-    "r" => 273, "registered" => 604, "ring" => 273, "s" => 410,
-    "scaron" => 410, "section" => 456, "semicolon" => 228,
-    "seven" => 456, "six" => 456, "slash" => 228, "space" => 228,
-    "sterling" => 456, "t" => 228, "thorn" => 456, "three" => 456,
-    "threequarters" => 684, "threesuperior" => 273, "tilde" => 273,
-    "trademark" => 820, "two" => 456, "twosuperior" => 273, "u" => 456,
-    "uacute" => 456, "ucircumflex" => 456, "udieresis" => 456,
-    "ugrave" => 456, "underscore" => 456, "v" => 410, "w" => 592,
-    "x" => 410, "y" => 410, "yacute" => 410, "ydieresis" => 410,
-    "yen" => 456, "z" => 410, "zcaron" => 410, "zero" => 456,
-  },
-  kern => {
-    "A" => {
-      "C" => -30, "G" => -30, "O" => -30, "Q" => -30, "T" => -120,
-      "U" => -50, "V" => -70, "W" => -50, "Y" => -100, "u" => -30,
-      "v" => -40, "w" => -40, "y" => -40,
-    },
-    "B" => {
-      "U" => -10, "comma" => -20, "period" => -20,
-    },
-    "C" => {
-      "comma" => -30, "period" => -30,
-    },
-    "D" => {
-      "A" => -40, "V" => -70, "W" => -40, "Y" => -90, "comma" => -70,
-      "period" => -70,
-    },
-    "F" => {
-      "A" => -80, "a" => -50, "comma" => -150, "e" => -30, "o" => -30,
-      "period" => -150, "r" => -45,
-    },
-    "J" => {
-      "A" => -20, "a" => -20, "comma" => -30, "period" => -30,
-      "u" => -20,
-    },
-    "K" => {
-      "O" => -50, "e" => -40, "o" => -40, "u" => -30, "y" => -50,
-    },
-    "L" => {
-      "T" => -110, "V" => -110, "W" => -70, "Y" => -140,
-      "quotedblright" => -140, "quoteright" => -160, "y" => -30,
-    },
-    "O" => {
-      "A" => -20, "T" => -40, "V" => -50, "W" => -30, "X" => -60,
-      "Y" => -70, "comma" => -40, "period" => -40,
-    },
-    "P" => {
-      "A" => -120, "a" => -40, "comma" => -180, "e" => -50, "o" => -50,
-      "period" => -180,
-    },
-    "Q" => {
-      "U" => -10,
-    },
-    "R" => {
-      "O" => -20, "T" => -30, "U" => -40, "V" => -50, "W" => -30,
-      "Y" => -50,
-    },
-    "S" => {
-      "comma" => -20, "period" => -20,
-    },
-    "T" => {
-      "A" => -120, "O" => -40, "a" => -120, "colon" => -20,
-      "comma" => -120, "e" => -120, "hyphen" => -140, "o" => -120,
-      "period" => -120, "r" => -120, "semicolon" => -20, "u" => -120,
-      "w" => -120, "y" => -120,
-    },
-    "U" => {
-      "A" => -40, "comma" => -40, "period" => -40,
-    },
-    "V" => {
-      "A" => -80, "G" => -40, "O" => -40, "a" => -70, "colon" => -40,
-      "comma" => -125, "e" => -80, "hyphen" => -80, "o" => -80,
-      "period" => -125, "semicolon" => -40, "u" => -70,
-    },
-    "W" => {
-      "A" => -50, "O" => -20, "a" => -40, "comma" => -80, "e" => -30,
-      "hyphen" => -40, "o" => -30, "period" => -80, "u" => -30,
-      "y" => -20,
-    },
-    "Y" => {
-      "A" => -110, "O" => -85, "a" => -140, "colon" => -60,
-      "comma" => -140, "e" => -140, "hyphen" => -140, "i" => -20,
-      "o" => -140, "period" => -140, "semicolon" => -60, "u" => -110,
-    },
-    "a" => {
-      "v" => -20, "w" => -20, "y" => -30,
-    },
-    "b" => {
-      "b" => -10, "comma" => -40, "l" => -20, "period" => -40,
-      "u" => -20, "v" => -20, "y" => -20,
-    },
-    "c" => {
-      "comma" => -15, "k" => -20,
-    },
-    "colon" => {
-      "space" => -50,
-    },
-    "comma" => {
-      "quotedblright" => -100, "quoteright" => -100,
-    },
-    "e" => {
-      "comma" => -15, "period" => -15, "v" => -30, "w" => -20,
-      "x" => -30, "y" => -20,
-    },
-    "f" => {
-      "a" => -30, "comma" => -30, "dotlessi" => -28, "e" => -30,
-      "o" => -30, "period" => -30, "quotedblright" => 60,
-      "quoteright" => 50,
-    },
-    "g" => {
-      "r" => -10,
-    },
-    "h" => {
-      "y" => -30,
-    },
-    "k" => {
-      "e" => -20, "o" => -20,
-    },
-    "m" => {
-      "u" => -10, "y" => -15,
-    },
-    "n" => {
-      "u" => -10, "v" => -20, "y" => -15,
-    },
-    "o" => {
-      "comma" => -40, "period" => -40, "v" => -15, "w" => -15,
-      "x" => -30, "y" => -30,
-    },
-    "oslash" => {
-      "a" => -55, "b" => -55, "c" => -55, "comma" => -95, "d" => -55,
-      "e" => -55, "f" => -55, "g" => -55, "h" => -55, "i" => -55,
-      "j" => -55, "k" => -55, "l" => -55, "m" => -55, "n" => -55,
-      "o" => -55, "p" => -55, "period" => -95, "q" => -55, "r" => -55,
-      "s" => -55, "t" => -55, "u" => -55, "v" => -70, "w" => -70,
-      "x" => -85, "y" => -70, "z" => -55,
-    },
-    "p" => {
-      "comma" => -35, "period" => -35, "y" => -30,
-    },
-    "period" => {
-      "quotedblright" => -100, "quoteright" => -100, "space" => -60,
-    },
-    "quotedblright" => {
-      "space" => -40,
-    },
-    "quoteleft" => {
-      "quoteleft" => -57,
-    },
-    "quoteright" => {
-      "d" => -50, "quoteright" => -57, "r" => -50, "s" => -50,
-      "space" => -70,
-    },
-    "r" => {
-      "a" => -10, "colon" => 30, "comma" => -50, "i" => 15, "k" => 15,
-      "l" => 15, "m" => 25, "n" => 25, "p" => 30, "period" => -50,
-      "semicolon" => 30, "t" => 40, "u" => 15, "v" => 30, "y" => 30,
-    },
-    "s" => {
-      "comma" => -15, "period" => -15, "w" => -30,
-    },
-    "semicolon" => {
-      "space" => -50,
-    },
-    "space" => {
-      "T" => -50, "V" => -50, "W" => -40, "Y" => -90,
-      "quotedblleft" => -30, "quoteleft" => -60,
-    },
-    "v" => {
-      "a" => -25, "comma" => -80, "e" => -25, "o" => -25,
-      "period" => -80,
-    },
-    "w" => {
-      "a" => -15, "comma" => -60, "e" => -10, "o" => -10,
-      "period" => -60,
-    },
-    "x" => {
-      "e" => -30,
-    },
-    "y" => {
-      "a" => -20, "comma" => -100, "e" => -20, "o" => -20,
-      "period" => -100,
-    },
-    "z" => {
-      "e" => -15, "o" => -15,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pncb8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
-%PS_NewCenturySchlbk_Bold = (
-  name => 'NewCenturySchlbk-Bold',
-  widths => {
-    "A" => 759, "AE" => 981, "Aacute" => 759, "Acircumflex" => 759,
-    "Adieresis" => 759, "Agrave" => 759, "Aring" => 759,
-    "Atilde" => 759, "B" => 778, "C" => 778, "Ccedilla" => 778,
-    "D" => 833, "E" => 759, "Eacute" => 759, "Ecircumflex" => 759,
-    "Edieresis" => 759, "Egrave" => 759, "Eth" => 833, "F" => 722,
-    "G" => 833, "H" => 870, "I" => 444, "Iacute" => 444,
-    "Icircumflex" => 444, "Idieresis" => 444, "Igrave" => 444,
-    "J" => 648, "K" => 815, "L" => 722, "Lslash" => 722, "M" => 981,
-    "N" => 833, "Ntilde" => 833, "O" => 833, "OE" => 1000,
-    "Oacute" => 833, "Ocircumflex" => 833, "Odieresis" => 833,
-    "Ograve" => 833, "Oslash" => 833, "Otilde" => 833, "P" => 759,
-    "Q" => 833, "R" => 815, "S" => 667, "Scaron" => 667, "T" => 722,
-    "Thorn" => 759, "U" => 833, "Uacute" => 833, "Ucircumflex" => 833,
-    "Udieresis" => 833, "Ugrave" => 833, "V" => 759, "W" => 981,
-    "X" => 722, "Y" => 722, "Yacute" => 722, "Ydieresis" => 722,
-    "Z" => 667, "Zcaron" => 667, "a" => 611, "aacute" => 611,
-    "acircumflex" => 611, "acute" => 333, "adieresis" => 611,
-    "ae" => 870, "agrave" => 611, "ampersand" => 852, "aring" => 611,
-    "asciicircum" => 606, "asciitilde" => 606, "asterisk" => 500,
-    "at" => 747, "atilde" => 611, "b" => 648, "backslash" => 606,
-    "bar" => 606, "braceleft" => 389, "braceright" => 389,
-    "bracketleft" => 389, "bracketright" => 389, "breve" => 333,
-    "brokenbar" => 606, "bullet" => 606, "c" => 556, "caron" => 333,
-    "ccedilla" => 556, "cedilla" => 333, "cent" => 574,
-    "circumflex" => 333, "colon" => 278, "comma" => 278,
-    "copyright" => 747, "currency" => 574, "d" => 667, "dagger" => 500,
-    "daggerdbl" => 500, "degree" => 400, "dieresis" => 333,
-    "divide" => 606, "dollar" => 574, "dotaccent" => 333,
-    "dotlessi" => 370, "e" => 574, "eacute" => 574,
-    "ecircumflex" => 574, "edieresis" => 574, "egrave" => 574,
-    "eight" => 574, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 606, "eth" => 611, "exclam" => 296,
-    "exclamdown" => 296, "f" => 389, "fi" => 685, "five" => 574,
-    "fl" => 685, "florin" => 574, "four" => 574, "fraction" => 167,
-    "g" => 611, "germandbls" => 611, "grave" => 333, "greater" => 606,
-    "guillemotleft" => 500, "guillemotright" => 500,
-    "guilsinglleft" => 333, "guilsinglright" => 333, "h" => 685,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 370,
-    "iacute" => 370, "icircumflex" => 370, "idieresis" => 370,
-    "igrave" => 370, "j" => 352, "k" => 667, "l" => 352, "less" => 606,
-    "logicalnot" => 606, "lslash" => 352, "m" => 963, "macron" => 333,
-    "minus" => 606, "mu" => 685, "multiply" => 606, "n" => 685,
-    "nine" => 574, "ntilde" => 685, "numbersign" => 574, "o" => 611,
-    "oacute" => 611, "ocircumflex" => 611, "odieresis" => 611,
-    "oe" => 907, "ogonek" => 333, "ograve" => 611, "one" => 574,
-    "onehalf" => 861, "onequarter" => 861, "onesuperior" => 344,
-    "ordfeminine" => 367, "ordmasculine" => 367, "oslash" => 611,
-    "otilde" => 611, "p" => 667, "paragraph" => 747,
-    "parenleft" => 389, "parenright" => 389, "percent" => 833,
-    "period" => 278, "periodcentered" => 278, "perthousand" => 1000,
-    "plus" => 606, "plusminus" => 606, "q" => 648, "question" => 500,
-    "questiondown" => 500, "quotedbl" => 333, "quotedblbase" => 481,
-    "quotedblleft" => 481, "quotedblright" => 481, "quoteleft" => 241,
-    "quoteright" => 241, "quotesinglbase" => 241, "quotesingle" => 241,
-    "r" => 519, "registered" => 747, "ring" => 333, "s" => 500,
-    "scaron" => 500, "section" => 500, "semicolon" => 278,
-    "seven" => 574, "six" => 574, "slash" => 278, "space" => 287,
-    "sterling" => 574, "t" => 426, "thorn" => 667, "three" => 574,
-    "threequarters" => 861, "threesuperior" => 344, "tilde" => 333,
-    "trademark" => 1000, "two" => 574, "twosuperior" => 344,
-    "u" => 685, "uacute" => 685, "ucircumflex" => 685,
-    "udieresis" => 685, "ugrave" => 685, "underscore" => 500,
-    "v" => 611, "w" => 889, "x" => 611, "y" => 611, "yacute" => 611,
-    "ydieresis" => 611, "yen" => 574, "z" => 537, "zcaron" => 537,
-    "zero" => 574,
-  },
-  kern => {
-    "A" => {
-      "T" => -55, "U" => -18, "V" => -74, "W" => -74, "Y" => -91,
-      "quotedblright" => -74, "quoteright" => -74, "v" => -18,
-      "w" => -18, "y" => -18,
-    },
-    "C" => {
-      "comma" => -18, "period" => -18,
-    },
-    "D" => {
-      "comma" => -25, "period" => -25,
-    },
-    "F" => {
-      "a" => -74, "comma" => -125, "e" => -55, "i" => -18, "o" => -55,
-      "period" => -125, "r" => -18,
-    },
-    "J" => {
-      "A" => -18, "a" => -18, "comma" => -55, "e" => -18, "o" => -18,
-      "period" => -55, "u" => -18,
-    },
-    "K" => {
-      "u" => -18, "y" => -25,
-    },
-    "L" => {
-      "T" => -100, "V" => -100, "W" => -74, "Y" => -74,
-      "quotedblright" => -100, "quoteright" => -100, "y" => -25,
-    },
-    "N" => {
-      "comma" => -18, "period" => -18,
-    },
-    "O" => {
-      "T" => 10, "comma" => -25, "period" => -25,
-    },
-    "P" => {
-      "A" => -74, "a" => -55, "comma" => -150, "e" => -55, "o" => -55,
-      "period" => -150,
-    },
-    "S" => {
-      "comma" => -18, "period" => -18,
-    },
-    "T" => {
-      "A" => -55, "O" => 10, "a" => -74, "comma" => -100, "e" => -74,
-      "hyphen" => -125, "i" => -18, "o" => -74, "period" => -100,
-      "r" => -18, "u" => -18,
-    },
-    "U" => {
-      "A" => -18, "comma" => -25, "period" => -25,
-    },
-    "V" => {
-      "A" => -74, "a" => -74, "colon" => -37, "comma" => -125,
-      "e" => -74, "hyphen" => -100, "i" => -18, "o" => -74,
-      "period" => -125, "semicolon" => -37, "u" => -55,
-    },
-    "W" => {
-      "A" => -74, "a" => -74, "colon" => -55, "comma" => -100,
-      "e" => -74, "hyphen" => -100, "i" => -18, "o" => -74,
-      "period" => -100, "semicolon" => -55, "u" => -37, "y" => -25,
-    },
-    "Y" => {
-      "A" => -91, "a" => -100, "colon" => -25, "comma" => -100,
-      "e" => -100, "hyphen" => -125, "i" => -18, "o" => -100,
-      "period" => -100, "semicolon" => -25, "u" => -55,
-    },
-    "colon" => {
-      "space" => -18,
-    },
-    "comma" => {
-      "quotedblright" => -18, "quoteright" => -18, "space" => -18,
-    },
-    "f" => {
-      "quotedblright" => 75, "quoteright" => 75,
-    },
-    "period" => {
-      "quotedblright" => -18, "quoteright" => -18, "space" => -18,
-    },
-    "quotedblleft" => {
-      "A" => -74,
-    },
-    "quotedblright" => {
-      "space" => -18,
-    },
-    "quoteleft" => {
-      "A" => -74,
-    },
-    "quoteright" => {
-      "d" => -25, "s" => -25,
-    },
-    "r" => {
-      "comma" => -74, "period" => -74,
-    },
-    "semicolon" => {
-      "space" => -18,
-    },
-    "space" => {
-      "A" => -18, "T" => -18, "V" => -18, "W" => -18, "Y" => -18,
-      "quotedblleft" => -18, "quoteleft" => -18,
-    },
-    "v" => {
-      "comma" => -100, "period" => -100,
-    },
-    "w" => {
-      "comma" => -100, "period" => -100,
-    },
-    "y" => {
-      "comma" => -100, "period" => -100,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pncbi8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,248 +0,0 @@
-%PS_NewCenturySchlbk_BoldItalic = (
-  name => 'NewCenturySchlbk-BoldItalic',
-  widths => {
-    "A" => 741, "AE" => 889, "Aacute" => 741, "Acircumflex" => 741,
-    "Adieresis" => 741, "Agrave" => 741, "Aring" => 741,
-    "Atilde" => 741, "B" => 759, "C" => 759, "Ccedilla" => 759,
-    "D" => 833, "E" => 741, "Eacute" => 741, "Ecircumflex" => 741,
-    "Edieresis" => 741, "Egrave" => 741, "Eth" => 833, "F" => 704,
-    "G" => 815, "H" => 870, "I" => 444, "Iacute" => 444,
-    "Icircumflex" => 444, "Idieresis" => 444, "Igrave" => 444,
-    "J" => 667, "K" => 778, "L" => 704, "Lslash" => 704, "M" => 944,
-    "N" => 852, "Ntilde" => 852, "O" => 833, "OE" => 963,
-    "Oacute" => 833, "Ocircumflex" => 833, "Odieresis" => 833,
-    "Ograve" => 833, "Oslash" => 833, "Otilde" => 833, "P" => 741,
-    "Q" => 833, "R" => 796, "S" => 685, "Scaron" => 685, "T" => 722,
-    "Thorn" => 741, "U" => 833, "Uacute" => 833, "Ucircumflex" => 833,
-    "Udieresis" => 833, "Ugrave" => 833, "V" => 741, "W" => 944,
-    "X" => 741, "Y" => 704, "Yacute" => 704, "Ydieresis" => 704,
-    "Z" => 704, "Zcaron" => 704, "a" => 667, "aacute" => 667,
-    "acircumflex" => 667, "acute" => 333, "adieresis" => 667,
-    "ae" => 815, "agrave" => 667, "ampersand" => 889, "aring" => 667,
-    "asciicircum" => 606, "asciitilde" => 606, "asterisk" => 500,
-    "at" => 747, "atilde" => 667, "b" => 611, "backslash" => 606,
-    "bar" => 606, "braceleft" => 407, "braceright" => 407,
-    "bracketleft" => 407, "bracketright" => 407, "breve" => 333,
-    "brokenbar" => 606, "bullet" => 606, "c" => 537, "caron" => 333,
-    "ccedilla" => 537, "cedilla" => 333, "cent" => 574,
-    "circumflex" => 333, "colon" => 287, "comma" => 287,
-    "copyright" => 747, "currency" => 574, "d" => 667, "dagger" => 500,
-    "daggerdbl" => 500, "degree" => 400, "dieresis" => 333,
-    "divide" => 606, "dollar" => 574, "dotaccent" => 333,
-    "dotlessi" => 389, "e" => 519, "eacute" => 519,
-    "ecircumflex" => 519, "edieresis" => 519, "egrave" => 519,
-    "eight" => 574, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 606, "eth" => 574, "exclam" => 333,
-    "exclamdown" => 333, "f" => 389, "fi" => 685, "five" => 574,
-    "fl" => 685, "florin" => 574, "four" => 574, "fraction" => 167,
-    "g" => 611, "germandbls" => 574, "grave" => 333, "greater" => 606,
-    "guillemotleft" => 481, "guillemotright" => 481,
-    "guilsinglleft" => 278, "guilsinglright" => 278, "h" => 685,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 389,
-    "iacute" => 389, "icircumflex" => 389, "idieresis" => 389,
-    "igrave" => 389, "j" => 370, "k" => 648, "l" => 389, "less" => 606,
-    "logicalnot" => 606, "lslash" => 389, "m" => 944, "macron" => 333,
-    "minus" => 606, "mu" => 685, "multiply" => 606, "n" => 685,
-    "nine" => 574, "ntilde" => 685, "numbersign" => 574, "o" => 574,
-    "oacute" => 574, "ocircumflex" => 574, "odieresis" => 574,
-    "oe" => 852, "ogonek" => 333, "ograve" => 574, "one" => 574,
-    "onehalf" => 861, "onequarter" => 861, "onesuperior" => 344,
-    "ordfeminine" => 412, "ordmasculine" => 356, "oslash" => 574,
-    "otilde" => 574, "p" => 648, "paragraph" => 650,
-    "parenleft" => 407, "parenright" => 407, "percent" => 889,
-    "period" => 287, "periodcentered" => 287, "perthousand" => 1167,
-    "plus" => 606, "plusminus" => 606, "q" => 630, "question" => 481,
-    "questiondown" => 481, "quotedbl" => 400, "quotedblbase" => 481,
-    "quotedblleft" => 481, "quotedblright" => 481, "quoteleft" => 259,
-    "quoteright" => 259, "quotesinglbase" => 259, "quotesingle" => 287,
-    "r" => 519, "registered" => 747, "ring" => 333, "s" => 481,
-    "scaron" => 481, "section" => 500, "semicolon" => 287,
-    "seven" => 574, "six" => 574, "slash" => 278, "space" => 287,
-    "sterling" => 574, "t" => 407, "thorn" => 648, "three" => 574,
-    "threequarters" => 861, "threesuperior" => 344, "tilde" => 333,
-    "trademark" => 950, "two" => 574, "twosuperior" => 344, "u" => 685,
-    "uacute" => 685, "ucircumflex" => 685, "udieresis" => 685,
-    "ugrave" => 685, "underscore" => 500, "v" => 556, "w" => 833,
-    "x" => 574, "y" => 519, "yacute" => 519, "ydieresis" => 519,
-    "yen" => 574, "z" => 519, "zcaron" => 519, "zero" => 574,
-  },
-  kern => {
-    "A" => {
-      "C" => 5, "G" => 5, "O" => 5, "Q" => 5, "T" => 5, "U" => -32,
-      "V" => -100, "W" => -84, "Y" => -70, "quotedblright" => -95,
-      "quoteright" => -95, "u" => -15, "v" => -10, "w" => -25,
-      "y" => -33,
-    },
-    "B" => {
-      "A" => -11, "U" => 15, "comma" => 15, "period" => 15,
-    },
-    "C" => {
-      "A" => -5,
-    },
-    "D" => {
-      "V" => -18, "W" => -11, "Y" => 6, "comma" => -11,
-      "period" => -11,
-    },
-    "F" => {
-      "A" => -79, "a" => -47, "comma" => -91, "e" => -41, "i" => -41,
-      "o" => -47, "period" => -91, "r" => -27,
-    },
-    "J" => {
-      "A" => -30, "a" => -40, "comma" => -74, "e" => -33, "o" => -40,
-      "period" => -74, "u" => -39,
-    },
-    "K" => {
-      "e" => 18, "o" => -4, "u" => -4, "y" => -48,
-    },
-    "L" => {
-      "T" => -75, "V" => -97, "W" => -69, "Y" => -55,
-      "quotedblright" => -100, "quoteright" => -100, "y" => -30,
-    },
-    "N" => {
-      "comma" => -49, "period" => -49,
-    },
-    "O" => {
-      "A" => -5, "V" => -24, "W" => -15, "X" => -18, "comma" => -18,
-      "period" => -18,
-    },
-    "P" => {
-      "A" => -80, "a" => -40, "comma" => -100, "e" => -33, "o" => -40,
-      "period" => -100,
-    },
-    "R" => {
-      "V" => -24, "W" => -14,
-    },
-    "S" => {
-      "comma" => -18, "period" => -18,
-    },
-    "T" => {
-      "A" => -60, "O" => 11, "a" => -40, "comma" => -55, "e" => -33,
-      "h" => -9, "hyphen" => -75, "i" => -22, "o" => -40,
-      "period" => -55, "r" => -9, "u" => -22, "w" => -30, "y" => -30,
-    },
-    "U" => {
-      "A" => -42, "comma" => -25, "period" => -25,
-    },
-    "V" => {
-      "A" => -100, "G" => -12, "O" => -19, "a" => -55, "colon" => -49,
-      "comma" => -94, "e" => -66, "hyphen" => -94, "i" => -35,
-      "o" => -71, "period" => -94, "semicolon" => 6, "u" => -70,
-    },
-    "W" => {
-      "A" => -66, "O" => -11, "a" => -33, "colon" => -22,
-      "comma" => -86, "e" => -39, "h" => 5, "hyphen" => -61,
-      "i" => -27, "o" => -33, "period" => -86, "semicolon" => -22,
-      "u" => -25, "y" => -41,
-    },
-    "Y" => {
-      "A" => -79, "a" => -77, "colon" => -55, "comma" => -91,
-      "e" => -71, "hyphen" => -91, "i" => -22, "o" => -77,
-      "period" => -91, "semicolon" => -55, "u" => -58,
-    },
-    "a" => {
-      "v" => 6, "w" => -8, "y" => -8,
-    },
-    "b" => {
-      "comma" => 6, "period" => 6, "v" => 8, "y" => -6,
-    },
-    "c" => {
-      "comma" => -8, "h" => -18, "k" => -8, "l" => -13, "period" => -8,
-      "y" => -20,
-    },
-    "colon" => {
-      "space" => -18,
-    },
-    "comma" => {
-      "quotedblright" => -18, "quoteright" => -18, "space" => -18,
-    },
-    "d" => {
-      "w" => -15, "y" => -15,
-    },
-    "e" => {
-      "b" => -8, "g" => -4, "p" => -11, "w" => -15, "x" => -5,
-      "y" => -15,
-    },
-    "f" => {
-      "a" => 8, "comma" => -28, "dotlessi" => 7, "e" => 14, "i" => 7,
-      "l" => 7, "o" => 7, "period" => -28, "quotedblright" => 105,
-      "quoteright" => 105,
-    },
-    "g" => {
-      "comma" => -5, "period" => -5, "r" => 11, "y" => -11,
-    },
-    "h" => {
-      "y" => -20,
-    },
-    "i" => {
-      "v" => 7,
-    },
-    "k" => {
-      "e" => -16, "o" => -22, "y" => -15,
-    },
-    "l" => {
-      "w" => -7, "y" => -7,
-    },
-    "m" => {
-      "u" => -11, "y" => -20,
-    },
-    "n" => {
-      "u" => -11, "v" => -7, "y" => -20,
-    },
-    "o" => {
-      "v" => 6, "w" => -8, "y" => -11,
-    },
-    "p" => {
-      "comma" => 8, "period" => 8, "y" => -4,
-    },
-    "period" => {
-      "quotedblright" => -18, "quoteright" => -18, "space" => -18,
-    },
-    "quotedblleft" => {
-      "A" => -60, "quoteleft" => 20,
-    },
-    "quotedblright" => {
-      "space" => -18,
-    },
-    "quoteleft" => {
-      "A" => -80,
-    },
-    "quoteright" => {
-      "d" => -41, "l" => -22, "r" => -9, "s" => -46, "t" => -22,
-      "v" => -16,
-    },
-    "r" => {
-      "a" => -11, "colon" => 9, "comma" => -90, "d" => -7, "e" => -7,
-      "g" => -11, "hyphen" => -16, "i" => -14, "k" => 9, "l" => -14,
-      "o" => -11, "p" => -17, "period" => -90, "quoteright" => 9,
-      "s" => -20, "semicolon" => 9, "t" => -11, "u" => -11, "v" => -7,
-      "y" => -20,
-    },
-    "s" => {
-      "comma" => 11, "period" => 11,
-    },
-    "semicolon" => {
-      "space" => -18,
-    },
-    "space" => {
-      "A" => -22, "T" => -18, "V" => -24, "W" => -33, "Y" => -18,
-      "quotedblleft" => -18,
-    },
-    "v" => {
-      "a" => -6, "comma" => -11, "o" => -6, "period" => -11,
-    },
-    "w" => {
-      "a" => -14, "comma" => -17, "e" => -8, "o" => -14,
-      "period" => -17,
-    },
-    "x" => {
-      "e" => 5,
-    },
-    "y" => {
-      "a" => 8, "comma" => -25, "e" => 15, "o" => 8, "period" => -25,
-    },
-    "z" => {
-      "e" => 4,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pncr8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-%PS_NewCenturySchlbk_Roman = (
-  name => 'NewCenturySchlbk-Roman',
-  widths => {
-    "A" => 722, "AE" => 1000, "Aacute" => 722, "Acircumflex" => 722,
-    "Adieresis" => 722, "Agrave" => 722, "Aring" => 722,
-    "Atilde" => 722, "B" => 722, "C" => 722, "Ccedilla" => 722,
-    "D" => 778, "E" => 722, "Eacute" => 722, "Ecircumflex" => 722,
-    "Edieresis" => 722, "Egrave" => 722, "Eth" => 778, "F" => 667,
-    "G" => 778, "H" => 833, "I" => 407, "Iacute" => 407,
-    "Icircumflex" => 407, "Idieresis" => 407, "Igrave" => 407,
-    "J" => 556, "K" => 778, "L" => 667, "Lslash" => 667, "M" => 944,
-    "N" => 815, "Ntilde" => 815, "O" => 778, "OE" => 1000,
-    "Oacute" => 778, "Ocircumflex" => 778, "Odieresis" => 778,
-    "Ograve" => 778, "Oslash" => 778, "Otilde" => 778, "P" => 667,
-    "Q" => 778, "R" => 722, "S" => 630, "Scaron" => 630, "T" => 667,
-    "Thorn" => 667, "U" => 815, "Uacute" => 815, "Ucircumflex" => 815,
-    "Udieresis" => 815, "Ugrave" => 815, "V" => 722, "W" => 981,
-    "X" => 704, "Y" => 704, "Yacute" => 704, "Ydieresis" => 704,
-    "Z" => 611, "Zcaron" => 611, "a" => 556, "aacute" => 556,
-    "acircumflex" => 556, "acute" => 333, "adieresis" => 556,
-    "ae" => 796, "agrave" => 556, "ampersand" => 815, "aring" => 556,
-    "asciicircum" => 606, "asciitilde" => 606, "asterisk" => 500,
-    "at" => 737, "atilde" => 556, "b" => 556, "backslash" => 606,
-    "bar" => 606, "braceleft" => 333, "braceright" => 333,
-    "bracketleft" => 333, "bracketright" => 333, "breve" => 333,
-    "brokenbar" => 606, "bullet" => 606, "c" => 444, "caron" => 333,
-    "ccedilla" => 444, "cedilla" => 333, "cent" => 556,
-    "circumflex" => 333, "colon" => 278, "comma" => 278,
-    "copyright" => 737, "currency" => 556, "d" => 574, "dagger" => 500,
-    "daggerdbl" => 500, "degree" => 400, "dieresis" => 333,
-    "divide" => 606, "dollar" => 556, "dotaccent" => 333,
-    "dotlessi" => 315, "e" => 500, "eacute" => 500,
-    "ecircumflex" => 500, "edieresis" => 500, "egrave" => 500,
-    "eight" => 556, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 556, "equal" => 606, "eth" => 500, "exclam" => 296,
-    "exclamdown" => 296, "f" => 333, "fi" => 611, "five" => 556,
-    "fl" => 611, "florin" => 556, "four" => 556, "fraction" => 167,
-    "g" => 537, "germandbls" => 574, "grave" => 333, "greater" => 606,
-    "guillemotleft" => 426, "guillemotright" => 426,
-    "guilsinglleft" => 259, "guilsinglright" => 259, "h" => 611,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 315,
-    "iacute" => 315, "icircumflex" => 315, "idieresis" => 315,
-    "igrave" => 315, "j" => 296, "k" => 593, "l" => 315, "less" => 606,
-    "logicalnot" => 606, "lslash" => 315, "m" => 889, "macron" => 333,
-    "minus" => 606, "mu" => 611, "multiply" => 606, "n" => 611,
-    "nine" => 556, "ntilde" => 611, "numbersign" => 556, "o" => 500,
-    "oacute" => 500, "ocircumflex" => 500, "odieresis" => 500,
-    "oe" => 833, "ogonek" => 333, "ograve" => 500, "one" => 556,
-    "onehalf" => 834, "onequarter" => 834, "onesuperior" => 333,
-    "ordfeminine" => 334, "ordmasculine" => 300, "oslash" => 500,
-    "otilde" => 500, "p" => 574, "paragraph" => 606,
-    "parenleft" => 333, "parenright" => 333, "percent" => 833,
-    "period" => 278, "periodcentered" => 278, "perthousand" => 1000,
-    "plus" => 606, "plusminus" => 606, "q" => 556, "question" => 444,
-    "questiondown" => 444, "quotedbl" => 389, "quotedblbase" => 389,
-    "quotedblleft" => 389, "quotedblright" => 389, "quoteleft" => 204,
-    "quoteright" => 204, "quotesinglbase" => 204, "quotesingle" => 204,
-    "r" => 444, "registered" => 737, "ring" => 333, "s" => 463,
-    "scaron" => 463, "section" => 500, "semicolon" => 278,
-    "seven" => 556, "six" => 556, "slash" => 278, "space" => 278,
-    "sterling" => 556, "t" => 389, "thorn" => 574, "three" => 556,
-    "threequarters" => 834, "threesuperior" => 333, "tilde" => 333,
-    "trademark" => 1000, "two" => 556, "twosuperior" => 333,
-    "u" => 611, "uacute" => 611, "ucircumflex" => 611,
-    "udieresis" => 611, "ugrave" => 611, "underscore" => 500,
-    "v" => 537, "w" => 778, "x" => 537, "y" => 537, "yacute" => 537,
-    "ydieresis" => 537, "yen" => 556, "z" => 481, "zcaron" => 481,
-    "zero" => 556,
-  },
-  kern => {
-    "A" => {
-      "T" => -18, "U" => -30, "V" => -75, "W" => -50, "Y" => -75,
-      "quotedblright" => -74, "quoteright" => -74, "v" => -37,
-      "w" => -25, "y" => -37,
-    },
-    "B" => {
-      "A" => -18, "comma" => -37, "period" => -37,
-    },
-    "C" => {
-      "A" => -18, "comma" => -37, "period" => -37,
-    },
-    "D" => {
-      "V" => -18, "Y" => -18, "comma" => -37, "period" => -37,
-    },
-    "F" => {
-      "A" => -50, "a" => -65, "comma" => -125, "e" => -55, "i" => -10,
-      "o" => -55, "period" => -125, "r" => -10,
-    },
-    "G" => {
-      "comma" => -37, "period" => -37,
-    },
-    "J" => {
-      "A" => -18, "a" => -25, "comma" => -74, "e" => -25, "o" => -25,
-      "period" => -74, "u" => -25,
-    },
-    "K" => {
-      "e" => 10, "o" => 10, "y" => -25,
-    },
-    "L" => {
-      "T" => -75, "V" => -91, "W" => -74, "Y" => -74,
-      "quotedblright" => -100, "quoteright" => -100, "y" => -25,
-    },
-    "N" => {
-      "comma" => -55, "period" => -55,
-    },
-    "O" => {
-      "T" => 10, "V" => -18, "Y" => -18, "comma" => -37,
-      "period" => -37,
-    },
-    "P" => {
-      "A" => -55, "a" => -37, "comma" => -125, "e" => -37, "o" => -37,
-      "period" => -125,
-    },
-    "Q" => {
-      "comma" => -25, "period" => -25,
-    },
-    "S" => {
-      "comma" => -37, "period" => -37,
-    },
-    "T" => {
-      "A" => -18, "O" => 10, "a" => -55, "colon" => -37,
-      "comma" => -125, "e" => -55, "hyphen" => -100, "o" => -55,
-      "period" => -125, "semicolon" => -37,
-    },
-    "U" => {
-      "A" => -30, "comma" => -100, "period" => -100,
-    },
-    "V" => {
-      "A" => -74, "O" => -18, "a" => -85, "colon" => -75,
-      "comma" => -125, "e" => -75, "hyphen" => -100, "i" => -18,
-      "o" => -75, "period" => -125, "semicolon" => -75, "u" => -75,
-    },
-    "W" => {
-      "A" => -50, "a" => -75, "colon" => -100, "comma" => -125,
-      "e" => -60, "hyphen" => -100, "i" => -18, "o" => -60,
-      "period" => -125, "semicolon" => -100, "u" => -55, "y" => -55,
-    },
-    "Y" => {
-      "A" => -75, "O" => -18, "a" => -100, "colon" => -75,
-      "comma" => -100, "e" => -100, "hyphen" => -125, "i" => -18,
-      "o" => -100, "period" => -100, "semicolon" => -75, "u" => -91,
-    },
-    "a" => {
-      "v" => -10, "w" => -10, "y" => -10,
-    },
-    "b" => {
-      "comma" => -18, "period" => -18,
-    },
-    "c" => {
-      "comma" => -18, "h" => -7, "k" => -7, "l" => -7, "period" => -18,
-    },
-    "colon" => {
-      "space" => -37,
-    },
-    "comma" => {
-      "quotedblright" => -37, "quoteright" => -37, "space" => -37,
-    },
-    "e" => {
-      "comma" => -18, "period" => -18,
-    },
-    "f" => {
-      "comma" => -37, "period" => -37, "quotedblright" => 100,
-      "quoteright" => 100,
-    },
-    "g" => {
-      "comma" => -25, "period" => -25,
-    },
-    "o" => {
-      "comma" => -18, "period" => -18,
-    },
-    "p" => {
-      "comma" => -18, "period" => -18,
-    },
-    "period" => {
-      "quotedblright" => -37, "quoteright" => -37, "space" => -37,
-    },
-    "quotedblleft" => {
-      "A" => -74,
-    },
-    "quotedblright" => {
-      "space" => -37,
-    },
-    "quoteleft" => {
-      "A" => -74, "quoteleft" => -25,
-    },
-    "quoteright" => {
-      "d" => -37, "quoteright" => -25, "s" => -25,
-    },
-    "r" => {
-      "comma" => -100, "hyphen" => -37, "period" => -100,
-    },
-    "s" => {
-      "comma" => -25, "period" => -25,
-    },
-    "semicolon" => {
-      "space" => -37,
-    },
-    "space" => {
-      "A" => -37, "T" => -37, "V" => -37, "W" => -37, "Y" => -37,
-      "quotedblleft" => -37, "quoteleft" => -37,
-    },
-    "v" => {
-      "comma" => -125, "period" => -125,
-    },
-    "w" => {
-      "a" => -18, "comma" => -125, "period" => -125,
-    },
-    "y" => {
-      "comma" => -125, "period" => -125,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pncri8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,216 +0,0 @@
-%PS_NewCenturySchlbk_Italic = (
-  name => 'NewCenturySchlbk-Italic',
-  widths => {
-    "A" => 704, "AE" => 870, "Aacute" => 704, "Acircumflex" => 704,
-    "Adieresis" => 704, "Agrave" => 704, "Aring" => 704,
-    "Atilde" => 704, "B" => 722, "C" => 722, "Ccedilla" => 722,
-    "D" => 778, "E" => 722, "Eacute" => 722, "Ecircumflex" => 722,
-    "Edieresis" => 722, "Egrave" => 722, "Eth" => 778, "F" => 667,
-    "G" => 778, "H" => 833, "I" => 407, "Iacute" => 407,
-    "Icircumflex" => 407, "Idieresis" => 407, "Igrave" => 407,
-    "J" => 611, "K" => 741, "L" => 667, "Lslash" => 667, "M" => 944,
-    "N" => 815, "Ntilde" => 815, "O" => 778, "OE" => 981,
-    "Oacute" => 778, "Ocircumflex" => 778, "Odieresis" => 778,
-    "Ograve" => 778, "Oslash" => 778, "Otilde" => 778, "P" => 667,
-    "Q" => 778, "R" => 741, "S" => 667, "Scaron" => 667, "T" => 685,
-    "Thorn" => 667, "U" => 815, "Uacute" => 815, "Ucircumflex" => 815,
-    "Udieresis" => 815, "Ugrave" => 815, "V" => 704, "W" => 926,
-    "X" => 704, "Y" => 685, "Yacute" => 685, "Ydieresis" => 685,
-    "Z" => 667, "Zcaron" => 667, "a" => 574, "aacute" => 574,
-    "acircumflex" => 574, "acute" => 333, "adieresis" => 574,
-    "ae" => 722, "agrave" => 574, "ampersand" => 852, "aring" => 574,
-    "asciicircum" => 606, "asciitilde" => 606, "asterisk" => 500,
-    "at" => 747, "atilde" => 574, "b" => 556, "backslash" => 606,
-    "bar" => 606, "braceleft" => 333, "braceright" => 333,
-    "bracketleft" => 333, "bracketright" => 333, "breve" => 333,
-    "brokenbar" => 606, "bullet" => 606, "c" => 444, "caron" => 333,
-    "ccedilla" => 444, "cedilla" => 333, "cent" => 556,
-    "circumflex" => 333, "colon" => 278, "comma" => 278,
-    "copyright" => 747, "currency" => 556, "d" => 611, "dagger" => 500,
-    "daggerdbl" => 500, "degree" => 400, "dieresis" => 333,
-    "divide" => 606, "dollar" => 556, "dotaccent" => 333,
-    "dotlessi" => 333, "e" => 444, "eacute" => 444,
-    "ecircumflex" => 444, "edieresis" => 444, "egrave" => 444,
-    "eight" => 556, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 606, "eth" => 500, "exclam" => 333,
-    "exclamdown" => 333, "f" => 333, "fi" => 611, "five" => 556,
-    "fl" => 611, "florin" => 556, "four" => 556, "fraction" => 167,
-    "g" => 537, "germandbls" => 556, "grave" => 333, "greater" => 606,
-    "guillemotleft" => 426, "guillemotright" => 426,
-    "guilsinglleft" => 333, "guilsinglright" => 333, "h" => 611,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 333,
-    "iacute" => 333, "icircumflex" => 333, "idieresis" => 333,
-    "igrave" => 333, "j" => 315, "k" => 556, "l" => 333, "less" => 606,
-    "logicalnot" => 606, "lslash" => 333, "m" => 889, "macron" => 333,
-    "minus" => 606, "mu" => 611, "multiply" => 606, "n" => 611,
-    "nine" => 556, "ntilde" => 611, "numbersign" => 556, "o" => 500,
-    "oacute" => 500, "ocircumflex" => 500, "odieresis" => 500,
-    "oe" => 778, "ogonek" => 333, "ograve" => 500, "one" => 556,
-    "onehalf" => 834, "onequarter" => 834, "onesuperior" => 333,
-    "ordfeminine" => 422, "ordmasculine" => 372, "oslash" => 500,
-    "otilde" => 500, "p" => 574, "paragraph" => 650,
-    "parenleft" => 333, "parenright" => 333, "percent" => 833,
-    "period" => 278, "periodcentered" => 278, "perthousand" => 1000,
-    "plus" => 606, "plusminus" => 606, "q" => 556, "question" => 444,
-    "questiondown" => 444, "quotedbl" => 400, "quotedblbase" => 389,
-    "quotedblleft" => 389, "quotedblright" => 389, "quoteleft" => 204,
-    "quoteright" => 204, "quotesinglbase" => 204, "quotesingle" => 278,
-    "r" => 444, "registered" => 747, "ring" => 333, "s" => 444,
-    "scaron" => 444, "section" => 500, "semicolon" => 278,
-    "seven" => 556, "six" => 556, "slash" => 606, "space" => 278,
-    "sterling" => 556, "t" => 352, "thorn" => 574, "three" => 556,
-    "threequarters" => 834, "threesuperior" => 333, "tilde" => 333,
-    "trademark" => 950, "two" => 556, "twosuperior" => 333, "u" => 611,
-    "uacute" => 611, "ucircumflex" => 611, "udieresis" => 611,
-    "ugrave" => 611, "underscore" => 500, "v" => 519, "w" => 778,
-    "x" => 500, "y" => 500, "yacute" => 500, "ydieresis" => 500,
-    "yen" => 556, "z" => 463, "zcaron" => 463, "zero" => 556,
-  },
-  kern => {
-    "A" => {
-      "C" => -18, "G" => -18, "O" => -18, "Q" => -18, "T" => -30,
-      "U" => -37, "V" => -74, "W" => -74, "Y" => -55,
-      "quotedblright" => -125, "quoteright" => -125, "u" => -18,
-      "v" => -18, "w" => -18, "y" => -55,
-    },
-    "B" => {
-      "comma" => -50, "period" => -50,
-    },
-    "C" => {
-      "comma" => -50, "period" => -50,
-    },
-    "D" => {
-      "V" => -18, "W" => -18, "Y" => -18, "comma" => -50,
-      "period" => -50,
-    },
-    "F" => {
-      "A" => -35, "a" => -55, "comma" => -125, "e" => -55, "i" => -10,
-      "o" => -55, "period" => -125, "r" => -55,
-    },
-    "G" => {
-      "comma" => -50, "period" => -50,
-    },
-    "J" => {
-      "A" => -18, "a" => -37, "comma" => -100, "e" => -37, "o" => -37,
-      "period" => -100, "u" => -18,
-    },
-    "L" => {
-      "T" => -100, "V" => -100, "W" => -100, "Y" => -100,
-      "quotedblright" => -125, "quoteright" => -125, "y" => -50,
-    },
-    "N" => {
-      "comma" => -60, "period" => -60,
-    },
-    "O" => {
-      "T" => 18, "V" => -18, "X" => -18, "Y" => -18, "comma" => -50,
-      "period" => -50,
-    },
-    "P" => {
-      "A" => -50, "a" => -55, "comma" => -125, "e" => -55, "o" => -55,
-      "period" => -125,
-    },
-    "Q" => {
-      "comma" => -20, "period" => -20,
-    },
-    "R" => {
-      "U" => -18, "V" => -18, "W" => -18, "Y" => -18,
-    },
-    "S" => {
-      "comma" => -50, "period" => -50,
-    },
-    "T" => {
-      "O" => 18, "a" => -74, "colon" => -50, "comma" => -100,
-      "e" => -74, "h" => -25, "hyphen" => -100, "i" => -18, "o" => -74,
-      "period" => -100, "r" => -50, "semicolon" => -50, "u" => -50,
-      "w" => -50, "y" => -50,
-    },
-    "U" => {
-      "A" => -18, "comma" => -100, "period" => -100,
-    },
-    "V" => {
-      "A" => -37, "a" => -75, "colon" => -75, "comma" => -100,
-      "e" => -75, "hyphen" => -100, "i" => -50, "o" => -75,
-      "period" => -100, "semicolon" => -75, "u" => -75,
-    },
-    "W" => {
-      "A" => -55, "a" => -55, "colon" => -75, "comma" => -100,
-      "e" => -55, "h" => -20, "hyphen" => -75, "i" => -20, "o" => -55,
-      "period" => -100, "semicolon" => -75, "u" => -55, "y" => -55,
-    },
-    "Y" => {
-      "A" => -55, "a" => -100, "colon" => -75, "comma" => -100,
-      "e" => -100, "hyphen" => -100, "i" => -25, "o" => -100,
-      "period" => -100, "semicolon" => -75, "u" => -100,
-    },
-    "b" => {
-      "b" => -10, "comma" => -50, "period" => -50,
-    },
-    "c" => {
-      "comma" => -50, "h" => -18, "k" => -18, "period" => -50,
-    },
-    "colon" => {
-      "space" => -37,
-    },
-    "comma" => {
-      "quotedblright" => -37, "quoteright" => -37, "space" => -37,
-    },
-    "e" => {
-      "comma" => -37, "period" => -37,
-    },
-    "f" => {
-      "comma" => -75, "o" => -10, "period" => -75,
-      "quotedblright" => 75, "quoteright" => 75,
-    },
-    "g" => {
-      "comma" => -50, "period" => -50,
-    },
-    "l" => {
-      "y" => -10,
-    },
-    "o" => {
-      "comma" => -50, "period" => -50,
-    },
-    "p" => {
-      "comma" => -50, "period" => -50,
-    },
-    "period" => {
-      "quotedblright" => -37, "quoteright" => -37, "space" => -37,
-    },
-    "quotedblleft" => {
-      "A" => -75,
-    },
-    "quotedblright" => {
-      "space" => -37,
-    },
-    "quoteleft" => {
-      "A" => -75, "quoteleft" => -37,
-    },
-    "quoteright" => {
-      "d" => -37, "quoteright" => -37, "s" => -25,
-    },
-    "r" => {
-      "colon" => -25, "comma" => -125, "hyphen" => -75, "k" => -18,
-      "period" => -125, "s" => -10, "semicolon" => -25,
-    },
-    "s" => {
-      "comma" => -50, "period" => -50,
-    },
-    "semicolon" => {
-      "space" => -37,
-    },
-    "space" => {
-      "A" => -37, "T" => -37, "V" => -37, "W" => -37, "Y" => -37,
-      "quotedblleft" => -37, "quoteleft" => -37,
-    },
-    "v" => {
-      "comma" => -75, "period" => -75,
-    },
-    "w" => {
-      "comma" => -75, "period" => -75,
-    },
-    "y" => {
-      "comma" => -75, "period" => -75,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pplb8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-%PS_Palatino_Bold = (
-  name => 'Palatino-Bold',
-  widths => {
-    "A" => 778, "AE" => 1000, "Aacute" => 778, "Acircumflex" => 778,
-    "Adieresis" => 778, "Agrave" => 778, "Aring" => 778,
-    "Atilde" => 778, "B" => 667, "C" => 722, "Ccedilla" => 722,
-    "D" => 833, "E" => 611, "Eacute" => 611, "Ecircumflex" => 611,
-    "Edieresis" => 611, "Egrave" => 611, "Eth" => 833, "F" => 556,
-    "G" => 833, "H" => 833, "I" => 389, "Iacute" => 389,
-    "Icircumflex" => 389, "Idieresis" => 389, "Igrave" => 389,
-    "J" => 389, "K" => 778, "L" => 611, "Lslash" => 611, "M" => 1000,
-    "N" => 833, "Ntilde" => 833, "O" => 833, "OE" => 1000,
-    "Oacute" => 833, "Ocircumflex" => 833, "Odieresis" => 833,
-    "Ograve" => 833, "Oslash" => 833, "Otilde" => 833, "P" => 611,
-    "Q" => 833, "R" => 722, "S" => 611, "Scaron" => 611, "T" => 667,
-    "Thorn" => 611, "U" => 778, "Uacute" => 778, "Ucircumflex" => 778,
-    "Udieresis" => 778, "Ugrave" => 778, "V" => 778, "W" => 1000,
-    "X" => 667, "Y" => 667, "Yacute" => 667, "Ydieresis" => 667,
-    "Z" => 667, "Zcaron" => 667, "a" => 500, "aacute" => 500,
-    "acircumflex" => 500, "acute" => 333, "adieresis" => 500,
-    "ae" => 778, "agrave" => 500, "ampersand" => 833, "aring" => 500,
-    "asciicircum" => 606, "asciitilde" => 606, "asterisk" => 444,
-    "at" => 747, "atilde" => 500, "b" => 611, "backslash" => 606,
-    "bar" => 606, "braceleft" => 310, "braceright" => 310,
-    "bracketleft" => 333, "bracketright" => 333, "breve" => 333,
-    "brokenbar" => 606, "bullet" => 606, "c" => 444, "caron" => 333,
-    "ccedilla" => 444, "cedilla" => 333, "cent" => 500,
-    "circumflex" => 333, "colon" => 250, "comma" => 250,
-    "copyright" => 747, "currency" => 500, "d" => 611, "dagger" => 500,
-    "daggerdbl" => 500, "degree" => 400, "dieresis" => 333,
-    "divide" => 606, "dollar" => 500, "dotaccent" => 333,
-    "dotlessi" => 333, "e" => 500, "eacute" => 500,
-    "ecircumflex" => 500, "edieresis" => 500, "egrave" => 500,
-    "eight" => 500, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 606, "eth" => 556, "exclam" => 278,
-    "exclamdown" => 278, "f" => 389, "fi" => 611, "five" => 500,
-    "fl" => 611, "florin" => 500, "four" => 500, "fraction" => 167,
-    "g" => 556, "germandbls" => 611, "grave" => 333, "greater" => 606,
-    "guillemotleft" => 500, "guillemotright" => 500,
-    "guilsinglleft" => 389, "guilsinglright" => 389, "h" => 611,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 333,
-    "iacute" => 333, "icircumflex" => 333, "idieresis" => 333,
-    "igrave" => 333, "j" => 333, "k" => 611, "l" => 333, "less" => 606,
-    "logicalnot" => 606, "lslash" => 333, "m" => 889, "macron" => 333,
-    "minus" => 606, "mu" => 611, "multiply" => 606, "n" => 611,
-    "nine" => 500, "ntilde" => 611, "numbersign" => 500, "o" => 556,
-    "oacute" => 556, "ocircumflex" => 556, "odieresis" => 556,
-    "oe" => 833, "ogonek" => 333, "ograve" => 556, "one" => 500,
-    "onehalf" => 750, "onequarter" => 750, "onesuperior" => 300,
-    "ordfeminine" => 438, "ordmasculine" => 488, "oslash" => 556,
-    "otilde" => 556, "p" => 611, "paragraph" => 641,
-    "parenleft" => 333, "parenright" => 333, "percent" => 889,
-    "period" => 250, "periodcentered" => 250, "perthousand" => 1000,
-    "plus" => 606, "plusminus" => 606, "q" => 611, "question" => 444,
-    "questiondown" => 444, "quotedbl" => 402, "quotedblbase" => 500,
-    "quotedblleft" => 500, "quotedblright" => 500, "quoteleft" => 278,
-    "quoteright" => 278, "quotesinglbase" => 333, "quotesingle" => 227,
-    "r" => 389, "registered" => 747, "ring" => 333, "s" => 444,
-    "scaron" => 444, "section" => 500, "semicolon" => 250,
-    "seven" => 500, "six" => 500, "slash" => 296, "space" => 250,
-    "sterling" => 500, "t" => 333, "thorn" => 611, "three" => 500,
-    "threequarters" => 750, "threesuperior" => 300, "tilde" => 333,
-    "trademark" => 998, "two" => 500, "twosuperior" => 300, "u" => 611,
-    "uacute" => 611, "ucircumflex" => 611, "udieresis" => 611,
-    "ugrave" => 611, "underscore" => 500, "v" => 556, "w" => 833,
-    "x" => 500, "y" => 556, "yacute" => 556, "ydieresis" => 556,
-    "yen" => 500, "z" => 500, "zcaron" => 500, "zero" => 500,
-  },
-  kern => {
-    "A" => {
-      "T" => -92, "V" => -129, "W" => -90, "Y" => -111,
-      "quoteright" => -92, "space" => -18, "v" => -70, "w" => -70,
-      "y" => -70,
-    },
-    "F" => {
-      "A" => -55, "comma" => -111, "period" => -111,
-    },
-    "L" => {
-      "T" => -74, "V" => -92, "W" => -92, "Y" => -92,
-      "quoteright" => -74, "space" => -18, "y" => -74,
-    },
-    "P" => {
-      "A" => -74, "comma" => -129, "period" => -129,
-    },
-    "R" => {
-      "T" => -55, "V" => -74, "W" => -37, "Y" => -55, "y" => -30,
-    },
-    "T" => {
-      "A" => -92, "a" => -111, "c" => -129, "colon" => -74,
-      "comma" => -92, "e" => -111, "hyphen" => -92, "i" => -55,
-      "o" => -111, "period" => -92, "r" => -111, "s" => -111,
-      "semicolon" => -74, "u" => -129, "w" => -90, "y" => -90,
-    },
-    "V" => {
-      "A" => -129, "a" => -111, "colon" => -74, "comma" => -129,
-      "e" => -111, "hyphen" => -92, "i" => -55, "o" => -111,
-      "period" => -129, "r" => -111, "semicolon" => -74, "u" => -92,
-      "y" => -90,
-    },
-    "W" => {
-      "A" => -90, "a" => -74, "colon" => -37, "comma" => -92,
-      "e" => -74, "hyphen" => -37, "i" => -37, "o" => -74,
-      "period" => -37, "r" => -74, "semicolon" => -37, "u" => -74,
-      "y" => -74,
-    },
-    "Y" => {
-      "A" => -55, "a" => -74, "colon" => -55, "comma" => -74,
-      "e" => -74, "hyphen" => -74, "i" => -55, "o" => -74, "p" => -74,
-      "period" => -74, "q" => -92, "semicolon" => -55, "u" => -74,
-      "v" => -74,
-    },
-    "f" => {
-      "f" => -18, "quoteright" => 37,
-    },
-    "one" => {
-      "one" => -37,
-    },
-    "quoteleft" => {
-      "quoteleft" => -55,
-    },
-    "quoteright" => {
-      "quoteright" => -55, "s" => -55, "space" => -55, "t" => -18,
-    },
-    "r" => {
-      "comma" => -55, "hyphen" => -18, "period" => -55,
-      "quoteright" => 55,
-    },
-    "v" => {
-      "comma" => -111, "period" => -111,
-    },
-    "w" => {
-      "comma" => -92, "period" => -92,
-    },
-    "y" => {
-      "comma" => -92, "period" => -92,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pplbi8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-%PS_Palatino_BoldItalic = (
-  name => 'Palatino-BoldItalic',
-  widths => {
-    "A" => 722, "AE" => 944, "Aacute" => 722, "Acircumflex" => 722,
-    "Adieresis" => 722, "Agrave" => 722, "Aring" => 722,
-    "Atilde" => 722, "B" => 667, "C" => 685, "Ccedilla" => 685,
-    "D" => 778, "E" => 611, "Eacute" => 611, "Ecircumflex" => 611,
-    "Edieresis" => 611, "Egrave" => 611, "Eth" => 778, "F" => 556,
-    "G" => 778, "H" => 778, "I" => 389, "Iacute" => 389,
-    "Icircumflex" => 389, "Idieresis" => 389, "Igrave" => 389,
-    "J" => 389, "K" => 722, "L" => 611, "Lslash" => 611, "M" => 944,
-    "N" => 778, "Ntilde" => 778, "O" => 833, "OE" => 944,
-    "Oacute" => 833, "Ocircumflex" => 833, "Odieresis" => 833,
-    "Ograve" => 833, "Oslash" => 833, "Otilde" => 833, "P" => 667,
-    "Q" => 833, "R" => 722, "S" => 556, "Scaron" => 556, "T" => 611,
-    "Thorn" => 667, "U" => 778, "Uacute" => 778, "Ucircumflex" => 778,
-    "Udieresis" => 778, "Ugrave" => 778, "V" => 667, "W" => 1000,
-    "X" => 722, "Y" => 611, "Yacute" => 611, "Ydieresis" => 611,
-    "Z" => 667, "Zcaron" => 667, "a" => 556, "aacute" => 556,
-    "acircumflex" => 556, "acute" => 333, "adieresis" => 556,
-    "ae" => 738, "agrave" => 556, "ampersand" => 833, "aring" => 556,
-    "asciicircum" => 606, "asciitilde" => 606, "asterisk" => 444,
-    "at" => 833, "atilde" => 556, "b" => 537, "backslash" => 606,
-    "bar" => 606, "braceleft" => 333, "braceright" => 333,
-    "bracketleft" => 333, "bracketright" => 333, "breve" => 333,
-    "brokenbar" => 606, "bullet" => 606, "c" => 444, "caron" => 333,
-    "ccedilla" => 444, "cedilla" => 333, "cent" => 500,
-    "circumflex" => 333, "colon" => 250, "comma" => 250,
-    "copyright" => 747, "currency" => 500, "d" => 556, "dagger" => 556,
-    "daggerdbl" => 556, "degree" => 400, "dieresis" => 333,
-    "divide" => 606, "dollar" => 500, "dotaccent" => 333,
-    "dotlessi" => 333, "e" => 444, "eacute" => 444,
-    "ecircumflex" => 444, "edieresis" => 444, "egrave" => 444,
-    "eight" => 500, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 606, "eth" => 556, "exclam" => 333,
-    "exclamdown" => 333, "f" => 333, "fi" => 611, "five" => 500,
-    "fl" => 611, "florin" => 500, "four" => 500, "fraction" => 167,
-    "g" => 500, "germandbls" => 556, "grave" => 333, "greater" => 606,
-    "guillemotleft" => 500, "guillemotright" => 500,
-    "guilsinglleft" => 333, "guilsinglright" => 333, "h" => 556,
-    "hungarumlaut" => 333, "hyphen" => 389, "i" => 333,
-    "iacute" => 333, "icircumflex" => 333, "idieresis" => 333,
-    "igrave" => 333, "j" => 333, "k" => 556, "l" => 333, "less" => 606,
-    "logicalnot" => 606, "lslash" => 333, "m" => 833, "macron" => 333,
-    "minus" => 606, "mu" => 556, "multiply" => 606, "n" => 556,
-    "nine" => 500, "ntilde" => 556, "numbersign" => 500, "o" => 556,
-    "oacute" => 556, "ocircumflex" => 556, "odieresis" => 556,
-    "oe" => 778, "ogonek" => 333, "ograve" => 556, "one" => 500,
-    "onehalf" => 750, "onequarter" => 750, "onesuperior" => 300,
-    "ordfeminine" => 333, "ordmasculine" => 333, "oslash" => 556,
-    "otilde" => 556, "p" => 556, "paragraph" => 556,
-    "parenleft" => 333, "parenright" => 333, "percent" => 889,
-    "period" => 250, "periodcentered" => 250, "perthousand" => 1000,
-    "plus" => 606, "plusminus" => 606, "q" => 537, "question" => 444,
-    "questiondown" => 444, "quotedbl" => 500, "quotedblbase" => 500,
-    "quotedblleft" => 500, "quotedblright" => 500, "quoteleft" => 278,
-    "quoteright" => 278, "quotesinglbase" => 250, "quotesingle" => 250,
-    "r" => 389, "registered" => 747, "ring" => 556, "s" => 444,
-    "scaron" => 444, "section" => 556, "semicolon" => 250,
-    "seven" => 500, "six" => 500, "slash" => 315, "space" => 250,
-    "sterling" => 500, "t" => 389, "thorn" => 556, "three" => 500,
-    "threequarters" => 750, "threesuperior" => 300, "tilde" => 333,
-    "trademark" => 1000, "two" => 500, "twosuperior" => 300,
-    "u" => 556, "uacute" => 556, "ucircumflex" => 556,
-    "udieresis" => 556, "ugrave" => 556, "underscore" => 500,
-    "v" => 556, "w" => 833, "x" => 500, "y" => 556, "yacute" => 556,
-    "ydieresis" => 556, "yen" => 500, "z" => 500, "zcaron" => 500,
-    "zero" => 500,
-  },
-  kern => {
-    "A" => {
-      "T" => -55, "V" => -74, "W" => -74, "Y" => -74,
-      "quoteright" => -55, "space" => -55, "v" => -55, "w" => -37,
-      "y" => -55,
-    },
-    "F" => {
-      "A" => -74, "comma" => -111, "period" => -111, "space" => -18,
-    },
-    "L" => {
-      "T" => -74, "V" => -74, "W" => -74, "Y" => -74,
-      "quoteright" => -55, "space" => -18, "y" => -37,
-    },
-    "P" => {
-      "A" => -92, "comma" => -129, "period" => -129, "space" => -55,
-    },
-    "R" => {
-      "T" => -37, "V" => -55, "W" => -55, "Y" => -37, "y" => -20,
-    },
-    "T" => {
-      "A" => -55, "O" => -18, "a" => -111, "c" => -92, "colon" => -55,
-      "comma" => -55, "e" => -111, "hyphen" => -92, "i" => -74,
-      "o" => -111, "period" => -55, "r" => -92, "s" => -92,
-      "semicolon" => -55, "u" => -92, "w" => -50, "y" => -80,
-    },
-    "V" => {
-      "A" => -74, "a" => -92, "colon" => -37, "comma" => -111,
-      "e" => -74, "hyphen" => -37, "i" => -50, "o" => -74,
-      "period" => -111, "r" => -74, "semicolon" => -37, "u" => -50,
-      "y" => -50,
-    },
-    "W" => {
-      "A" => -74, "a" => -74, "colon" => -28, "comma" => -55,
-      "e" => -55, "i" => -30, "o" => -55, "period" => -55, "r" => -30,
-      "semicolon" => -18, "u" => -30, "y" => -30,
-    },
-    "Y" => {
-      "A" => -55, "a" => -111, "colon" => -55, "comma" => -55,
-      "e" => -92, "hyphen" => -55, "i" => -54, "o" => -111, "p" => -74,
-      "period" => -55, "q" => -92, "semicolon" => -55, "u" => -50,
-      "v" => -30,
-    },
-    "f" => {
-      "f" => -37, "quoteright" => 37,
-    },
-    "one" => {
-      "one" => -55,
-    },
-    "quoteleft" => {
-      "quoteleft" => -55,
-    },
-    "quoteright" => {
-      "quoteright" => -55, "s" => -37, "space" => -37, "t" => -18,
-    },
-    "r" => {
-      "c" => -18, "comma" => -55, "e" => -18, "g" => -18, "h" => -18,
-      "o" => -18, "period" => -55, "q" => -18, "quoteright" => 55,
-    },
-    "v" => {
-      "comma" => -55, "period" => -55,
-    },
-    "w" => {
-      "comma" => -55, "period" => -55,
-    },
-    "y" => {
-      "comma" => -37, "period" => -37,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pplr8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,143 +0,0 @@
-%PS_Palatino_Roman = (
-  name => 'Palatino-Roman',
-  widths => {
-    "A" => 778, "AE" => 944, "Aacute" => 778, "Acircumflex" => 778,
-    "Adieresis" => 778, "Agrave" => 778, "Aring" => 778,
-    "Atilde" => 778, "B" => 611, "C" => 709, "Ccedilla" => 709,
-    "D" => 774, "E" => 611, "Eacute" => 611, "Ecircumflex" => 611,
-    "Edieresis" => 611, "Egrave" => 611, "Eth" => 774, "F" => 556,
-    "G" => 763, "H" => 832, "I" => 337, "Iacute" => 337,
-    "Icircumflex" => 337, "Idieresis" => 337, "Igrave" => 337,
-    "J" => 333, "K" => 726, "L" => 611, "Lslash" => 611, "M" => 946,
-    "N" => 831, "Ntilde" => 831, "O" => 786, "OE" => 998,
-    "Oacute" => 786, "Ocircumflex" => 786, "Odieresis" => 786,
-    "Ograve" => 786, "Oslash" => 833, "Otilde" => 786, "P" => 604,
-    "Q" => 786, "R" => 668, "S" => 525, "Scaron" => 525, "T" => 613,
-    "Thorn" => 604, "U" => 778, "Uacute" => 778, "Ucircumflex" => 778,
-    "Udieresis" => 778, "Ugrave" => 778, "V" => 722, "W" => 1000,
-    "X" => 667, "Y" => 667, "Yacute" => 667, "Ydieresis" => 667,
-    "Z" => 667, "Zcaron" => 667, "a" => 500, "aacute" => 500,
-    "acircumflex" => 500, "acute" => 333, "adieresis" => 500,
-    "ae" => 758, "agrave" => 500, "ampersand" => 778, "aring" => 500,
-    "asciicircum" => 606, "asciitilde" => 606, "asterisk" => 389,
-    "at" => 747, "atilde" => 500, "b" => 553, "backslash" => 606,
-    "bar" => 606, "braceleft" => 333, "braceright" => 333,
-    "bracketleft" => 333, "bracketright" => 333, "breve" => 333,
-    "brokenbar" => 606, "bullet" => 606, "c" => 444, "caron" => 333,
-    "ccedilla" => 444, "cedilla" => 333, "cent" => 500,
-    "circumflex" => 333, "colon" => 250, "comma" => 250,
-    "copyright" => 747, "currency" => 500, "d" => 611, "dagger" => 500,
-    "daggerdbl" => 500, "degree" => 400, "dieresis" => 333,
-    "divide" => 606, "dollar" => 500, "dotaccent" => 250,
-    "dotlessi" => 287, "e" => 479, "eacute" => 479,
-    "ecircumflex" => 479, "edieresis" => 479, "egrave" => 479,
-    "eight" => 500, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 606, "eth" => 546, "exclam" => 278,
-    "exclamdown" => 278, "f" => 333, "fi" => 605, "five" => 500,
-    "fl" => 608, "florin" => 500, "four" => 500, "fraction" => 167,
-    "g" => 556, "germandbls" => 556, "grave" => 333, "greater" => 606,
-    "guillemotleft" => 500, "guillemotright" => 500,
-    "guilsinglleft" => 331, "guilsinglright" => 331, "h" => 582,
-    "hungarumlaut" => 380, "hyphen" => 333, "i" => 291,
-    "iacute" => 287, "icircumflex" => 287, "idieresis" => 287,
-    "igrave" => 287, "j" => 234, "k" => 556, "l" => 291, "less" => 606,
-    "logicalnot" => 606, "lslash" => 291, "m" => 883, "macron" => 333,
-    "minus" => 606, "mu" => 603, "multiply" => 606, "n" => 582,
-    "nine" => 500, "ntilde" => 582, "numbersign" => 500, "o" => 546,
-    "oacute" => 546, "ocircumflex" => 546, "odieresis" => 546,
-    "oe" => 827, "ogonek" => 313, "ograve" => 546, "one" => 500,
-    "onehalf" => 750, "onequarter" => 750, "onesuperior" => 300,
-    "ordfeminine" => 333, "ordmasculine" => 333, "oslash" => 556,
-    "otilde" => 546, "p" => 601, "paragraph" => 628,
-    "parenleft" => 333, "parenright" => 333, "percent" => 840,
-    "period" => 250, "periodcentered" => 250, "perthousand" => 1144,
-    "plus" => 606, "plusminus" => 606, "q" => 560, "question" => 444,
-    "questiondown" => 444, "quotedbl" => 371, "quotedblbase" => 500,
-    "quotedblleft" => 500, "quotedblright" => 500, "quoteleft" => 278,
-    "quoteright" => 278, "quotesinglbase" => 278, "quotesingle" => 208,
-    "r" => 395, "registered" => 747, "ring" => 333, "s" => 424,
-    "scaron" => 424, "section" => 500, "semicolon" => 250,
-    "seven" => 500, "six" => 500, "slash" => 606, "space" => 250,
-    "sterling" => 500, "t" => 326, "thorn" => 601, "three" => 500,
-    "threequarters" => 750, "threesuperior" => 300, "tilde" => 333,
-    "trademark" => 979, "two" => 500, "twosuperior" => 300, "u" => 603,
-    "uacute" => 603, "ucircumflex" => 603, "udieresis" => 603,
-    "ugrave" => 603, "underscore" => 500, "v" => 565, "w" => 834,
-    "x" => 516, "y" => 556, "yacute" => 556, "ydieresis" => 556,
-    "yen" => 500, "z" => 500, "zcaron" => 500, "zero" => 500,
-  },
-  kern => {
-    "A" => {
-      "T" => -74, "V" => -111, "W" => -74, "Y" => -111,
-      "quoteright" => -74, "space" => -55, "v" => -92, "w" => -74,
-      "y" => -74,
-    },
-    "F" => {
-      "A" => -74, "comma" => -92, "period" => -92,
-    },
-    "L" => {
-      "T" => -74, "V" => -92, "W" => -74, "Y" => -92,
-      "quoteright" => -74, "space" => -37, "y" => -55,
-    },
-    "P" => {
-      "A" => -92, "comma" => -129, "period" => -129, "space" => -18,
-    },
-    "R" => {
-      "T" => -37, "V" => -55, "W" => -37, "Y" => -37, "y" => -37,
-    },
-    "T" => {
-      "A" => -74, "O" => -18, "a" => -92, "c" => -111, "colon" => -55,
-      "comma" => -74, "e" => -92, "hyphen" => -55, "i" => -55,
-      "o" => -92, "period" => -74, "r" => -90, "s" => -90,
-      "semicolon" => -55, "u" => -90, "w" => -90, "y" => -90,
-    },
-    "V" => {
-      "A" => -111, "a" => -92, "colon" => -55, "comma" => -129,
-      "e" => -111, "hyphen" => -74, "i" => -55, "o" => -111,
-      "period" => -129, "r" => -92, "semicolon" => -55, "u" => -92,
-      "y" => -92,
-    },
-    "W" => {
-      "A" => -92, "a" => -92, "colon" => -18, "comma" => -92,
-      "e" => -92, "hyphen" => -55, "i" => -55, "o" => -92,
-      "period" => -92, "r" => -74, "semicolon" => -18, "u" => -50,
-      "y" => -50,
-    },
-    "Y" => {
-      "A" => -92, "a" => -92, "colon" => -74, "comma" => -111,
-      "e" => -92, "hyphen" => -92, "i" => -55, "o" => -92, "p" => -111,
-      "period" => -111, "q" => -90, "semicolon" => -74, "space" => -18,
-      "u" => -90, "v" => -90,
-    },
-    "f" => {
-      "f" => -18, "quoteright" => 55,
-    },
-    "one" => {
-      "one" => -55,
-    },
-    "quoteleft" => {
-      "quoteleft" => -37,
-    },
-    "quoteright" => {
-      "quoteright" => -37,
-    },
-    "r" => {
-      "c" => -18, "comma" => -74, "d" => -18, "e" => -18, "g" => -18,
-      "h" => -18, "hyphen" => -18, "o" => -18, "period" => -74,
-      "q" => -18, "quoteright" => 74, "u" => -8,
-    },
-    "space" => {
-      "A" => -37, "Y" => -18,
-    },
-    "v" => {
-      "comma" => -111, "period" => -111,
-    },
-    "w" => {
-      "comma" => -92, "period" => -92,
-    },
-    "y" => {
-      "comma" => -111, "period" => -111,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pplri8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-%PS_Palatino_Italic = (
-  name => 'Palatino-Italic',
-  widths => {
-    "A" => 722, "AE" => 941, "Aacute" => 722, "Acircumflex" => 722,
-    "Adieresis" => 722, "Agrave" => 722, "Aring" => 722,
-    "Atilde" => 722, "B" => 611, "C" => 667, "Ccedilla" => 667,
-    "D" => 778, "E" => 611, "Eacute" => 611, "Ecircumflex" => 611,
-    "Edieresis" => 611, "Egrave" => 611, "Eth" => 778, "F" => 556,
-    "G" => 722, "H" => 778, "I" => 333, "Iacute" => 333,
-    "Icircumflex" => 333, "Idieresis" => 333, "Igrave" => 333,
-    "J" => 333, "K" => 667, "L" => 556, "Lslash" => 556, "M" => 944,
-    "N" => 778, "Ntilde" => 778, "O" => 778, "OE" => 1028,
-    "Oacute" => 778, "Ocircumflex" => 778, "Odieresis" => 778,
-    "Ograve" => 778, "Oslash" => 778, "Otilde" => 778, "P" => 611,
-    "Q" => 778, "R" => 667, "S" => 556, "Scaron" => 556, "T" => 611,
-    "Thorn" => 611, "U" => 778, "Uacute" => 778, "Ucircumflex" => 778,
-    "Udieresis" => 778, "Ugrave" => 778, "V" => 722, "W" => 944,
-    "X" => 722, "Y" => 667, "Yacute" => 667, "Ydieresis" => 667,
-    "Z" => 667, "Zcaron" => 667, "a" => 444, "aacute" => 444,
-    "acircumflex" => 444, "acute" => 333, "adieresis" => 444,
-    "ae" => 638, "agrave" => 444, "ampersand" => 778, "aring" => 444,
-    "asciicircum" => 606, "asciitilde" => 606, "asterisk" => 389,
-    "at" => 747, "atilde" => 444, "b" => 463, "backslash" => 606,
-    "bar" => 606, "braceleft" => 333, "braceright" => 333,
-    "bracketleft" => 333, "bracketright" => 333, "breve" => 333,
-    "brokenbar" => 606, "bullet" => 500, "c" => 407, "caron" => 333,
-    "ccedilla" => 407, "cedilla" => 333, "cent" => 500,
-    "circumflex" => 333, "colon" => 250, "comma" => 250,
-    "copyright" => 747, "currency" => 500, "d" => 500, "dagger" => 500,
-    "daggerdbl" => 500, "degree" => 400, "dieresis" => 333,
-    "divide" => 606, "dollar" => 500, "dotaccent" => 333,
-    "dotlessi" => 278, "e" => 389, "eacute" => 389,
-    "ecircumflex" => 389, "edieresis" => 389, "egrave" => 389,
-    "eight" => 500, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 606, "eth" => 444, "exclam" => 333,
-    "exclamdown" => 333, "f" => 278, "fi" => 528, "five" => 500,
-    "fl" => 545, "florin" => 500, "four" => 500, "fraction" => 167,
-    "g" => 500, "germandbls" => 500, "grave" => 333, "greater" => 606,
-    "guillemotleft" => 500, "guillemotright" => 500,
-    "guilsinglleft" => 333, "guilsinglright" => 333, "h" => 500,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 278,
-    "iacute" => 278, "icircumflex" => 278, "idieresis" => 278,
-    "igrave" => 278, "j" => 278, "k" => 444, "l" => 278, "less" => 606,
-    "logicalnot" => 606, "lslash" => 278, "m" => 778, "macron" => 333,
-    "minus" => 606, "mu" => 556, "multiply" => 606, "n" => 556,
-    "nine" => 500, "ntilde" => 556, "numbersign" => 500, "o" => 444,
-    "oacute" => 444, "ocircumflex" => 444, "odieresis" => 444,
-    "oe" => 669, "ogonek" => 333, "ograve" => 444, "one" => 500,
-    "onehalf" => 750, "onequarter" => 750, "onesuperior" => 300,
-    "ordfeminine" => 333, "ordmasculine" => 333, "oslash" => 444,
-    "otilde" => 444, "p" => 500, "paragraph" => 500,
-    "parenleft" => 333, "parenright" => 333, "percent" => 889,
-    "period" => 250, "periodcentered" => 250, "perthousand" => 1000,
-    "plus" => 606, "plusminus" => 606, "q" => 463, "question" => 500,
-    "questiondown" => 500, "quotedbl" => 500, "quotedblbase" => 500,
-    "quotedblleft" => 500, "quotedblright" => 500, "quoteleft" => 278,
-    "quoteright" => 278, "quotesinglbase" => 278, "quotesingle" => 333,
-    "r" => 389, "registered" => 747, "ring" => 333, "s" => 389,
-    "scaron" => 389, "section" => 500, "semicolon" => 250,
-    "seven" => 500, "six" => 500, "slash" => 296, "space" => 250,
-    "sterling" => 500, "t" => 333, "thorn" => 500, "three" => 500,
-    "threequarters" => 750, "threesuperior" => 300, "tilde" => 333,
-    "trademark" => 1000, "two" => 500, "twosuperior" => 300,
-    "u" => 556, "uacute" => 556, "ucircumflex" => 556,
-    "udieresis" => 556, "ugrave" => 556, "underscore" => 500,
-    "v" => 500, "w" => 722, "x" => 500, "y" => 500, "yacute" => 500,
-    "ydieresis" => 500, "yen" => 500, "z" => 444, "zcaron" => 444,
-    "zero" => 500,
-  },
-  kern => {
-    "A" => {
-      "T" => -55, "V" => -74, "W" => -55, "Y" => -55,
-      "quoteright" => -55, "space" => -37, "v" => -37, "w" => -37,
-      "y" => -55,
-    },
-    "F" => {
-      "A" => -111, "comma" => -111, "period" => -111,
-    },
-    "L" => {
-      "T" => -74, "V" => -74, "W" => -74, "Y" => -74,
-      "quoteright" => -37, "space" => -18, "y" => -37,
-    },
-    "P" => {
-      "A" => -129, "comma" => -129, "period" => -129,
-    },
-    "R" => {
-      "T" => -55, "V" => -74, "W" => -55, "Y" => -55, "y" => -37,
-    },
-    "T" => {
-      "A" => -92, "O" => -18, "a" => -111, "c" => -111, "colon" => -74,
-      "comma" => -74, "e" => -111, "hyphen" => -55, "i" => -55,
-      "o" => -111, "period" => -74, "r" => -111, "s" => -111,
-      "semicolon" => -74, "u" => -111, "w" => -92, "y" => -92,
-    },
-    "V" => {
-      "A" => -210, "a" => -74, "colon" => -37, "comma" => -129,
-      "e" => -92, "hyphen" => -55, "i" => -74, "o" => -74,
-      "period" => -129, "r" => -92, "semicolon" => -37, "u" => -74,
-      "y" => -74,
-    },
-    "W" => {
-      "A" => -92, "a" => -20, "colon" => -18, "comma" => -55,
-      "e" => -20, "hyphen" => -18, "i" => -20, "o" => -20,
-      "period" => -55, "r" => -20, "semicolon" => -18, "u" => -20,
-      "y" => -20,
-    },
-    "Y" => {
-      "A" => -92, "a" => -92, "colon" => -74, "comma" => -92,
-      "e" => -111, "hyphen" => -74, "i" => -55, "o" => -111,
-      "p" => -74, "period" => -92, "q" => -92, "semicolon" => -74,
-      "u" => -92, "v" => -74,
-    },
-    "f" => {
-      "quoteright" => 55,
-    },
-    "one" => {
-      "one" => -55,
-    },
-    "quoteleft" => {
-      "quoteleft" => -74,
-    },
-    "quoteright" => {
-      "quoteright" => -74, "s" => -55, "space" => -55, "t" => -37,
-    },
-    "r" => {
-      "c" => -18, "comma" => -74, "e" => -18, "g" => -18, "h" => -18,
-      "o" => -18, "period" => -74, "q" => -18, "quoteright" => 37,
-    },
-    "v" => {
-      "comma" => -55, "period" => -55,
-    },
-    "w" => {
-      "comma" => -55, "period" => -55,
-    },
-    "y" => {
-      "comma" => -37, "period" => -37,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/psyr.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-%PS_Symbol = (
-  name => 'Symbol',
-  widths => {
-    "Alpha" => 722, "Beta" => 667, "Chi" => 722, "Delta" => 612,
-    "Epsilon" => 611, "Eta" => 722, "Gamma" => 603, "Ifraktur" => 686,
-    "Iota" => 333, "Kappa" => 722, "Lambda" => 686, "Mu" => 889,
-    "Nu" => 722, "Omega" => 768, "Omicron" => 722, "Phi" => 763,
-    "Pi" => 768, "Psi" => 795, "Rfraktur" => 795, "Rho" => 556,
-    "Sigma" => 592, "Tau" => 611, "Theta" => 741, "Upsilon" => 690,
-    "Upsilon1" => 620, "Xi" => 645, "Zeta" => 611, "aleph" => 823,
-    "alpha" => 631, "ampersand" => 778, "angle" => 768,
-    "angleleft" => 329, "angleright" => 329, "apple" => 790,
-    "approxequal" => 549, "arrowboth" => 1042, "arrowdblboth" => 1042,
-    "arrowdbldown" => 603, "arrowdblleft" => 987,
-    "arrowdblright" => 987, "arrowdblup" => 603, "arrowdown" => 603,
-    "arrowhorizex" => 1000, "arrowleft" => 987, "arrowright" => 987,
-    "arrowup" => 603, "arrowvertex" => 603, "asteriskmath" => 500,
-    "bar" => 200, "beta" => 549, "braceex" => 494, "braceleft" => 480,
-    "braceleftbt" => 494, "braceleftmid" => 494, "bracelefttp" => 494,
-    "braceright" => 480, "bracerightbt" => 494, "bracerightmid" => 494,
-    "bracerighttp" => 494, "bracketleft" => 333,
-    "bracketleftbt" => 384, "bracketleftex" => 384,
-    "bracketlefttp" => 384, "bracketright" => 333,
-    "bracketrightbt" => 384, "bracketrightex" => 384,
-    "bracketrighttp" => 384, "bullet" => 460, "carriagereturn" => 658,
-    "chi" => 549, "circlemultiply" => 768, "circleplus" => 768,
-    "club" => 753, "colon" => 278, "comma" => 250, "congruent" => 549,
-    "copyrightsans" => 790, "copyrightserif" => 790, "degree" => 400,
-    "delta" => 494, "diamond" => 753, "divide" => 549,
-    "dotmath" => 250, "eight" => 500, "element" => 713,
-    "ellipsis" => 1000, "emptyset" => 823, "epsilon" => 439,
-    "equal" => 549, "equivalence" => 549, "eta" => 603,
-    "exclam" => 333, "existential" => 549, "five" => 500,
-    "florin" => 500, "four" => 500, "fraction" => 167, "gamma" => 411,
-    "gradient" => 713, "greater" => 549, "greaterequal" => 549,
-    "heart" => 753, "infinity" => 713, "integral" => 274,
-    "integralbt" => 686, "integralex" => 686, "integraltp" => 686,
-    "intersection" => 768, "iota" => 329, "kappa" => 549,
-    "lambda" => 549, "less" => 549, "lessequal" => 549,
-    "logicaland" => 603, "logicalnot" => 713, "logicalor" => 603,
-    "lozenge" => 494, "minus" => 549, "minute" => 247, "mu" => 576,
-    "multiply" => 549, "nine" => 500, "notelement" => 713,
-    "notequal" => 549, "notsubset" => 713, "nu" => 521,
-    "numbersign" => 500, "omega" => 686, "omega1" => 713,
-    "omicron" => 549, "one" => 500, "parenleft" => 333,
-    "parenleftbt" => 384, "parenleftex" => 384, "parenlefttp" => 384,
-    "parenright" => 333, "parenrightbt" => 384, "parenrightex" => 384,
-    "parenrighttp" => 384, "partialdiff" => 494, "percent" => 833,
-    "period" => 250, "perpendicular" => 658, "phi" => 521,
-    "phi1" => 603, "pi" => 549, "plus" => 549, "plusminus" => 549,
-    "product" => 823, "propersubset" => 713, "propersuperset" => 713,
-    "proportional" => 713, "psi" => 686, "question" => 444,
-    "radical" => 549, "radicalex" => 500, "reflexsubset" => 713,
-    "reflexsuperset" => 713, "registersans" => 790,
-    "registerserif" => 790, "rho" => 549, "second" => 411,
-    "semicolon" => 278, "seven" => 500, "sigma" => 603,
-    "sigma1" => 439, "similar" => 549, "six" => 500, "slash" => 278,
-    "space" => 250, "spade" => 753, "suchthat" => 439,
-    "summation" => 713, "tau" => 439, "therefore" => 863,
-    "theta" => 521, "theta1" => 631, "three" => 500,
-    "trademarksans" => 786, "trademarkserif" => 890, "two" => 500,
-    "underscore" => 500, "union" => 768, "universal" => 713,
-    "upsilon" => 576, "weierstrass" => 987, "xi" => 493, "zero" => 500,
-    "zeta" => 494,
-  },
-  kern => {
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/ptmb8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,257 +0,0 @@
-%PS_Times_Bold = (
-  name => 'Times-Bold',
-  widths => {
-    "A" => 722, "AE" => 1000, "Aacute" => 722, "Acircumflex" => 722,
-    "Adieresis" => 722, "Agrave" => 722, "Aring" => 722,
-    "Atilde" => 722, "B" => 667, "C" => 722, "Ccedilla" => 722,
-    "D" => 722, "E" => 667, "Eacute" => 667, "Ecircumflex" => 667,
-    "Edieresis" => 667, "Egrave" => 667, "Eth" => 722, "F" => 611,
-    "G" => 778, "H" => 778, "I" => 389, "Iacute" => 389,
-    "Icircumflex" => 389, "Idieresis" => 389, "Igrave" => 389,
-    "J" => 500, "K" => 778, "L" => 667, "Lslash" => 667, "M" => 944,
-    "N" => 722, "Ntilde" => 722, "O" => 778, "OE" => 1000,
-    "Oacute" => 778, "Ocircumflex" => 778, "Odieresis" => 778,
-    "Ograve" => 778, "Oslash" => 778, "Otilde" => 778, "P" => 611,
-    "Q" => 778, "R" => 722, "S" => 556, "Scaron" => 556, "T" => 667,
-    "Thorn" => 611, "U" => 722, "Uacute" => 722, "Ucircumflex" => 722,
-    "Udieresis" => 722, "Ugrave" => 722, "V" => 722, "W" => 1000,
-    "X" => 722, "Y" => 722, "Yacute" => 722, "Ydieresis" => 722,
-    "Z" => 667, "Zcaron" => 667, "a" => 500, "aacute" => 500,
-    "acircumflex" => 500, "acute" => 333, "adieresis" => 500,
-    "ae" => 722, "agrave" => 500, "ampersand" => 833, "aring" => 500,
-    "asciicircum" => 581, "asciitilde" => 520, "asterisk" => 500,
-    "at" => 930, "atilde" => 500, "b" => 556, "backslash" => 278,
-    "bar" => 220, "braceleft" => 394, "braceright" => 394,
-    "bracketleft" => 333, "bracketright" => 333, "breve" => 333,
-    "brokenbar" => 220, "bullet" => 350, "c" => 444, "caron" => 333,
-    "ccedilla" => 444, "cedilla" => 333, "cent" => 500,
-    "circumflex" => 333, "colon" => 333, "comma" => 250,
-    "copyright" => 747, "currency" => 500, "d" => 556, "dagger" => 500,
-    "daggerdbl" => 500, "degree" => 400, "dieresis" => 333,
-    "divide" => 570, "dollar" => 500, "dotaccent" => 333,
-    "dotlessi" => 278, "e" => 444, "eacute" => 444,
-    "ecircumflex" => 444, "edieresis" => 444, "egrave" => 444,
-    "eight" => 500, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 570, "eth" => 500, "exclam" => 333,
-    "exclamdown" => 333, "f" => 333, "fi" => 556, "five" => 500,
-    "fl" => 556, "florin" => 500, "four" => 500, "fraction" => 167,
-    "g" => 500, "germandbls" => 556, "grave" => 333, "greater" => 570,
-    "guillemotleft" => 500, "guillemotright" => 500,
-    "guilsinglleft" => 333, "guilsinglright" => 333, "h" => 556,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 278,
-    "iacute" => 278, "icircumflex" => 278, "idieresis" => 278,
-    "igrave" => 278, "j" => 333, "k" => 556, "l" => 278, "less" => 570,
-    "logicalnot" => 570, "lslash" => 278, "m" => 833, "macron" => 333,
-    "minus" => 570, "mu" => 556, "multiply" => 570, "n" => 556,
-    "nine" => 500, "ntilde" => 556, "numbersign" => 500, "o" => 500,
-    "oacute" => 500, "ocircumflex" => 500, "odieresis" => 500,
-    "oe" => 722, "ogonek" => 333, "ograve" => 500, "one" => 500,
-    "onehalf" => 750, "onequarter" => 750, "onesuperior" => 300,
-    "ordfeminine" => 300, "ordmasculine" => 330, "oslash" => 500,
-    "otilde" => 500, "p" => 556, "paragraph" => 540,
-    "parenleft" => 333, "parenright" => 333, "percent" => 1000,
-    "period" => 250, "periodcentered" => 250, "perthousand" => 1000,
-    "plus" => 570, "plusminus" => 570, "q" => 556, "question" => 500,
-    "questiondown" => 500, "quotedbl" => 555, "quotedblbase" => 500,
-    "quotedblleft" => 500, "quotedblright" => 500, "quoteleft" => 333,
-    "quoteright" => 333, "quotesinglbase" => 333, "quotesingle" => 278,
-    "r" => 444, "registered" => 747, "ring" => 333, "s" => 389,
-    "scaron" => 389, "section" => 500, "semicolon" => 333,
-    "seven" => 500, "six" => 500, "slash" => 278, "space" => 250,
-    "sterling" => 500, "t" => 333, "thorn" => 556, "three" => 500,
-    "threequarters" => 750, "threesuperior" => 300, "tilde" => 333,
-    "trademark" => 1000, "two" => 500, "twosuperior" => 300,
-    "u" => 556, "uacute" => 556, "ucircumflex" => 556,
-    "udieresis" => 556, "ugrave" => 556, "underscore" => 500,
-    "v" => 500, "w" => 722, "x" => 500, "y" => 500, "yacute" => 500,
-    "ydieresis" => 500, "yen" => 500, "z" => 444, "zcaron" => 444,
-    "zero" => 500,
-  },
-  kern => {
-    "A" => {
-      "C" => -55, "G" => -55, "O" => -45, "Q" => -45, "T" => -95,
-      "U" => -50, "V" => -145, "W" => -130, "Y" => -100, "p" => -25,
-      "quotedblright" => 0, "quoteright" => -74, "u" => -50,
-      "v" => -100, "w" => -90, "y" => -74,
-    },
-    "B" => {
-      "A" => -30, "U" => -10, "comma" => 0, "period" => 0,
-    },
-    "D" => {
-      "A" => -35, "V" => -40, "W" => -40, "Y" => -40, "comma" => 0,
-      "period" => -20,
-    },
-    "F" => {
-      "A" => -90, "a" => -25, "comma" => -92, "e" => -25, "i" => 0,
-      "o" => -25, "period" => -110, "r" => 0,
-    },
-    "G" => {
-      "comma" => 0, "period" => 0,
-    },
-    "J" => {
-      "A" => -30, "a" => -15, "comma" => 0, "e" => -15, "o" => -15,
-      "period" => -20, "u" => -15,
-    },
-    "K" => {
-      "O" => -30, "e" => -25, "o" => -25, "u" => -15, "y" => -45,
-    },
-    "L" => {
-      "T" => -92, "V" => -92, "W" => -92, "Y" => -92,
-      "quotedblright" => -20, "quoteright" => -110, "y" => -55,
-    },
-    "N" => {
-      "A" => -20, "comma" => 0, "period" => 0,
-    },
-    "O" => {
-      "A" => -40, "T" => -40, "V" => -50, "W" => -50, "X" => -40,
-      "Y" => -50, "comma" => 0, "period" => 0,
-    },
-    "P" => {
-      "A" => -74, "a" => -10, "comma" => -92, "e" => -20, "o" => -20,
-      "period" => -110,
-    },
-    "Q" => {
-      "U" => -10, "comma" => 0, "period" => -20,
-    },
-    "R" => {
-      "O" => -30, "T" => -40, "U" => -30, "V" => -55, "W" => -35,
-      "Y" => -35,
-    },
-    "S" => {
-      "comma" => 0, "period" => 0,
-    },
-    "T" => {
-      "A" => -90, "O" => -18, "a" => -92, "colon" => -74,
-      "comma" => -74, "e" => -92, "h" => 0, "hyphen" => -92,
-      "i" => -18, "o" => -92, "period" => -90, "r" => -74,
-      "semicolon" => -74, "u" => -92, "w" => -74, "y" => -74,
-    },
-    "U" => {
-      "A" => -60, "comma" => -50, "period" => -50,
-    },
-    "V" => {
-      "A" => -135, "G" => -30, "O" => -45, "a" => -92, "colon" => -92,
-      "comma" => -129, "e" => -100, "hyphen" => -74, "i" => -37,
-      "o" => -100, "period" => -145, "semicolon" => -92, "u" => -92,
-    },
-    "W" => {
-      "A" => -120, "O" => -10, "a" => -65, "colon" => -55,
-      "comma" => -92, "e" => -65, "h" => 0, "hyphen" => -37,
-      "i" => -18, "o" => -75, "period" => -92, "semicolon" => -55,
-      "u" => -50, "y" => -60,
-    },
-    "Y" => {
-      "A" => -110, "O" => -35, "a" => -85, "colon" => -92,
-      "comma" => -92, "e" => -111, "hyphen" => -92, "i" => -37,
-      "o" => -111, "period" => -92, "semicolon" => -92, "u" => -92,
-    },
-    "a" => {
-      "b" => 0, "g" => 0, "p" => 0, "t" => 0, "v" => -25, "w" => 0,
-      "y" => 0,
-    },
-    "b" => {
-      "b" => -10, "comma" => 0, "l" => 0, "period" => -40, "u" => -20,
-      "v" => -15, "y" => 0,
-    },
-    "c" => {
-      "comma" => 0, "h" => 0, "k" => 0, "l" => 0, "period" => 0,
-      "y" => 0,
-    },
-    "colon" => {
-      "space" => 0,
-    },
-    "comma" => {
-      "quotedblright" => -45, "quoteright" => -55, "space" => 0,
-    },
-    "d" => {
-      "comma" => 0, "d" => 0, "period" => 0, "v" => 0, "w" => -15,
-      "y" => 0,
-    },
-    "e" => {
-      "b" => 0, "comma" => 0, "g" => 0, "p" => 0, "period" => 0,
-      "v" => -15, "w" => 0, "x" => 0, "y" => 0,
-    },
-    "f" => {
-      "a" => 0, "comma" => -15, "dotlessi" => -35, "e" => 0, "f" => 0,
-      "i" => -25, "l" => 0, "o" => -25, "period" => -15,
-      "quotedblright" => 50, "quoteright" => 55,
-    },
-    "g" => {
-      "a" => 0, "comma" => 0, "e" => 0, "g" => 0, "i" => 0, "o" => 0,
-      "period" => -15, "r" => 0, "y" => 0,
-    },
-    "h" => {
-      "y" => -15,
-    },
-    "i" => {
-      "v" => -10,
-    },
-    "k" => {
-      "e" => -10, "o" => -15, "y" => -15,
-    },
-    "l" => {
-      "w" => 0, "y" => 0,
-    },
-    "m" => {
-      "u" => 0, "y" => 0,
-    },
-    "n" => {
-      "u" => 0, "v" => -40, "y" => 0,
-    },
-    "o" => {
-      "g" => 0, "v" => -10, "w" => -10, "x" => 0, "y" => 0,
-    },
-    "p" => {
-      "y" => 0,
-    },
-    "period" => {
-      "quotedblright" => -55, "quoteright" => -55,
-    },
-    "quotedblleft" => {
-      "A" => -10, "quoteleft" => 0,
-    },
-    "quotedblright" => {
-      "space" => 0,
-    },
-    "quoteleft" => {
-      "A" => -10, "quoteleft" => -63,
-    },
-    "quoteright" => {
-      "d" => -20, "l" => 0, "quotedblright" => 0, "quoteright" => -63,
-      "r" => -20, "s" => -37, "space" => -74, "t" => 0, "v" => -20,
-    },
-    "r" => {
-      "a" => 0, "c" => -18, "comma" => -92, "d" => 0, "e" => -18,
-      "g" => -10, "hyphen" => -37, "i" => 0, "k" => 0, "l" => 0,
-      "m" => 0, "n" => -15, "o" => -18, "p" => -10, "period" => -100,
-      "q" => -18, "r" => 0, "s" => 0, "t" => 0, "u" => 0, "v" => -10,
-      "y" => 0,
-    },
-    "s" => {
-      "w" => 0,
-    },
-    "space" => {
-      "A" => -55, "T" => -30, "V" => -45, "W" => -30, "Y" => -55,
-      "quotedblleft" => 0, "quoteleft" => 0,
-    },
-    "v" => {
-      "a" => -10, "comma" => -55, "e" => -10, "o" => -10,
-      "period" => -70,
-    },
-    "w" => {
-      "a" => 0, "comma" => -55, "e" => 0, "h" => 0, "o" => -10,
-      "period" => -70,
-    },
-    "x" => {
-      "e" => 0,
-    },
-    "y" => {
-      "a" => 0, "comma" => -55, "e" => -10, "o" => -25,
-      "period" => -70,
-    },
-    "z" => {
-      "e" => 0, "o" => 0,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/ptmbi8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +0,0 @@
-%PS_Times_BoldItalic = (
-  name => 'Times-BoldItalic',
-  widths => {
-    "A" => 667, "AE" => 944, "Aacute" => 667, "Acircumflex" => 667,
-    "Adieresis" => 667, "Agrave" => 667, "Aring" => 667,
-    "Atilde" => 667, "B" => 667, "C" => 667, "Ccedilla" => 667,
-    "D" => 722, "E" => 667, "Eacute" => 667, "Ecircumflex" => 667,
-    "Edieresis" => 667, "Egrave" => 667, "Eth" => 722, "F" => 667,
-    "G" => 722, "H" => 778, "I" => 389, "Iacute" => 389,
-    "Icircumflex" => 389, "Idieresis" => 389, "Igrave" => 389,
-    "J" => 500, "K" => 667, "L" => 611, "Lslash" => 611, "M" => 889,
-    "N" => 722, "Ntilde" => 722, "O" => 722, "OE" => 944,
-    "Oacute" => 722, "Ocircumflex" => 722, "Odieresis" => 722,
-    "Ograve" => 722, "Oslash" => 722, "Otilde" => 722, "P" => 611,
-    "Q" => 722, "R" => 667, "S" => 556, "Scaron" => 556, "T" => 611,
-    "Thorn" => 611, "U" => 722, "Uacute" => 722, "Ucircumflex" => 722,
-    "Udieresis" => 722, "Ugrave" => 722, "V" => 667, "W" => 889,
-    "X" => 667, "Y" => 611, "Yacute" => 611, "Ydieresis" => 611,
-    "Z" => 611, "Zcaron" => 611, "a" => 500, "aacute" => 500,
-    "acircumflex" => 500, "acute" => 333, "adieresis" => 500,
-    "ae" => 722, "agrave" => 500, "ampersand" => 778, "aring" => 500,
-    "asciicircum" => 570, "asciitilde" => 570, "asterisk" => 500,
-    "at" => 832, "atilde" => 500, "b" => 500, "backslash" => 278,
-    "bar" => 220, "braceleft" => 348, "braceright" => 348,
-    "bracketleft" => 333, "bracketright" => 333, "breve" => 333,
-    "brokenbar" => 220, "bullet" => 350, "c" => 444, "caron" => 333,
-    "ccedilla" => 444, "cedilla" => 333, "cent" => 500,
-    "circumflex" => 333, "colon" => 333, "comma" => 250,
-    "copyright" => 747, "currency" => 500, "d" => 500, "dagger" => 500,
-    "daggerdbl" => 500, "degree" => 400, "dieresis" => 333,
-    "divide" => 570, "dollar" => 500, "dotaccent" => 333,
-    "dotlessi" => 278, "e" => 444, "eacute" => 444,
-    "ecircumflex" => 444, "edieresis" => 444, "egrave" => 444,
-    "eight" => 500, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 570, "eth" => 500, "exclam" => 389,
-    "exclamdown" => 389, "f" => 333, "fi" => 556, "five" => 500,
-    "fl" => 556, "florin" => 500, "four" => 500, "fraction" => 167,
-    "g" => 500, "germandbls" => 500, "grave" => 333, "greater" => 570,
-    "guillemotleft" => 500, "guillemotright" => 500,
-    "guilsinglleft" => 333, "guilsinglright" => 333, "h" => 556,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 278,
-    "iacute" => 278, "icircumflex" => 278, "idieresis" => 278,
-    "igrave" => 278, "j" => 278, "k" => 500, "l" => 278, "less" => 570,
-    "logicalnot" => 606, "lslash" => 278, "m" => 778, "macron" => 333,
-    "minus" => 606, "mu" => 576, "multiply" => 570, "n" => 556,
-    "nine" => 500, "ntilde" => 556, "numbersign" => 500, "o" => 500,
-    "oacute" => 500, "ocircumflex" => 500, "odieresis" => 500,
-    "oe" => 722, "ogonek" => 333, "ograve" => 500, "one" => 500,
-    "onehalf" => 750, "onequarter" => 750, "onesuperior" => 300,
-    "ordfeminine" => 266, "ordmasculine" => 300, "oslash" => 500,
-    "otilde" => 500, "p" => 500, "paragraph" => 500,
-    "parenleft" => 333, "parenright" => 333, "percent" => 833,
-    "period" => 250, "periodcentered" => 250, "perthousand" => 1000,
-    "plus" => 570, "plusminus" => 570, "q" => 500, "question" => 500,
-    "questiondown" => 500, "quotedbl" => 555, "quotedblbase" => 500,
-    "quotedblleft" => 500, "quotedblright" => 500, "quoteleft" => 333,
-    "quoteright" => 333, "quotesinglbase" => 333, "quotesingle" => 278,
-    "r" => 389, "registered" => 747, "ring" => 333, "s" => 389,
-    "scaron" => 389, "section" => 500, "semicolon" => 333,
-    "seven" => 500, "six" => 500, "slash" => 278, "space" => 250,
-    "sterling" => 500, "t" => 278, "thorn" => 500, "three" => 500,
-    "threequarters" => 750, "threesuperior" => 300, "tilde" => 333,
-    "trademark" => 1000, "two" => 500, "twosuperior" => 300,
-    "u" => 556, "uacute" => 556, "ucircumflex" => 556,
-    "udieresis" => 556, "ugrave" => 556, "underscore" => 500,
-    "v" => 444, "w" => 667, "x" => 500, "y" => 444, "yacute" => 444,
-    "ydieresis" => 444, "yen" => 500, "z" => 389, "zcaron" => 389,
-    "zero" => 500,
-  },
-  kern => {
-    "A" => {
-      "C" => -65, "G" => -60, "O" => -50, "Q" => -55, "T" => -55,
-      "U" => -50, "V" => -95, "W" => -100, "Y" => -70, "p" => 0,
-      "quotedblright" => 0, "quoteright" => -74, "u" => -30,
-      "v" => -74, "w" => -74, "y" => -74,
-    },
-    "B" => {
-      "A" => -25, "U" => -10, "comma" => 0, "period" => 0,
-    },
-    "D" => {
-      "A" => -25, "V" => -50, "W" => -40, "Y" => -50, "comma" => 0,
-      "period" => 0,
-    },
-    "F" => {
-      "A" => -100, "a" => -95, "comma" => -129, "e" => -100,
-      "i" => -40, "o" => -70, "period" => -129, "r" => -50,
-    },
-    "G" => {
-      "comma" => 0, "period" => 0,
-    },
-    "J" => {
-      "A" => -25, "a" => -40, "comma" => -10, "e" => -40, "o" => -40,
-      "period" => -10, "u" => -40,
-    },
-    "K" => {
-      "O" => -30, "e" => -25, "o" => -25, "u" => -20, "y" => -20,
-    },
-    "L" => {
-      "T" => -18, "V" => -37, "W" => -37, "Y" => -37,
-      "quotedblright" => 0, "quoteright" => -55, "y" => -37,
-    },
-    "N" => {
-      "A" => -30, "comma" => 0, "period" => 0,
-    },
-    "O" => {
-      "A" => -40, "T" => -40, "V" => -50, "W" => -50, "X" => -40,
-      "Y" => -50, "comma" => 0, "period" => 0,
-    },
-    "P" => {
-      "A" => -85, "a" => -40, "comma" => -129, "e" => -50, "o" => -55,
-      "period" => -129,
-    },
-    "Q" => {
-      "U" => -10, "comma" => 0, "period" => 0,
-    },
-    "R" => {
-      "O" => -40, "T" => -30, "U" => -40, "V" => -18, "W" => -18,
-      "Y" => -18,
-    },
-    "S" => {
-      "comma" => 0, "period" => 0,
-    },
-    "T" => {
-      "A" => -55, "O" => -18, "a" => -92, "colon" => -74,
-      "comma" => -92, "e" => -92, "h" => 0, "hyphen" => -92,
-      "i" => -37, "o" => -95, "period" => -92, "r" => -37,
-      "semicolon" => -74, "u" => -37, "w" => -37, "y" => -37,
-    },
-    "U" => {
-      "A" => -45, "comma" => 0, "period" => 0,
-    },
-    "V" => {
-      "A" => -85, "G" => -10, "O" => -30, "a" => -111, "colon" => -74,
-      "comma" => -129, "e" => -111, "hyphen" => -70, "i" => -55,
-      "o" => -111, "period" => -129, "semicolon" => -74, "u" => -55,
-    },
-    "W" => {
-      "A" => -74, "O" => -15, "a" => -85, "colon" => -55,
-      "comma" => -74, "e" => -90, "h" => 0, "hyphen" => -50,
-      "i" => -37, "o" => -80, "period" => -74, "semicolon" => -55,
-      "u" => -55, "y" => -55,
-    },
-    "Y" => {
-      "A" => -74, "O" => -25, "a" => -92, "colon" => -92,
-      "comma" => -92, "e" => -111, "hyphen" => -92, "i" => -55,
-      "o" => -111, "period" => -74, "semicolon" => -92, "u" => -92,
-    },
-    "a" => {
-      "b" => 0, "g" => 0, "p" => 0, "t" => 0, "v" => 0, "w" => 0,
-      "y" => 0,
-    },
-    "b" => {
-      "b" => -10, "comma" => 0, "l" => 0, "period" => -40, "u" => -20,
-      "v" => 0, "y" => 0,
-    },
-    "c" => {
-      "comma" => 0, "h" => -10, "k" => -10, "l" => 0, "period" => 0,
-      "y" => 0,
-    },
-    "colon" => {
-      "space" => 0,
-    },
-    "comma" => {
-      "quotedblright" => -95, "quoteright" => -95, "space" => 0,
-    },
-    "d" => {
-      "comma" => 0, "d" => 0, "period" => 0, "v" => 0, "w" => 0,
-      "y" => 0,
-    },
-    "e" => {
-      "b" => -10, "comma" => 0, "g" => 0, "p" => 0, "period" => 0,
-      "v" => 0, "w" => 0, "x" => 0, "y" => 0,
-    },
-    "f" => {
-      "a" => 0, "comma" => -10, "dotlessi" => -30, "e" => -10,
-      "f" => -18, "i" => 0, "l" => 0, "o" => -10, "period" => -10,
-      "quotedblright" => 0, "quoteright" => 55,
-    },
-    "g" => {
-      "a" => 0, "comma" => 0, "e" => 0, "g" => 0, "i" => 0, "o" => 0,
-      "period" => 0, "r" => 0, "y" => 0,
-    },
-    "h" => {
-      "y" => 0,
-    },
-    "i" => {
-      "v" => 0,
-    },
-    "k" => {
-      "e" => -30, "o" => -10, "y" => 0,
-    },
-    "l" => {
-      "w" => 0, "y" => 0,
-    },
-    "m" => {
-      "u" => 0, "y" => 0,
-    },
-    "n" => {
-      "u" => 0, "v" => -40, "y" => 0,
-    },
-    "o" => {
-      "g" => 0, "v" => -15, "w" => -25, "x" => -10, "y" => -10,
-    },
-    "p" => {
-      "y" => 0,
-    },
-    "period" => {
-      "quotedblright" => -95, "quoteright" => -95,
-    },
-    "quotedblleft" => {
-      "A" => 0, "quoteleft" => 0,
-    },
-    "quotedblright" => {
-      "space" => 0,
-    },
-    "quoteleft" => {
-      "A" => 0, "quoteleft" => -74,
-    },
-    "quoteright" => {
-      "d" => -15, "l" => 0, "quotedblright" => 0, "quoteright" => -74,
-      "r" => -15, "s" => -74, "space" => -74, "t" => -37, "v" => -15,
-    },
-    "r" => {
-      "a" => 0, "c" => 0, "comma" => -65, "d" => 0, "e" => 0, "g" => 0,
-      "hyphen" => 0, "i" => 0, "k" => 0, "l" => 0, "m" => 0, "n" => 0,
-      "o" => 0, "p" => 0, "period" => -65, "q" => 0, "r" => 0,
-      "s" => 0, "t" => 0, "u" => 0, "v" => 0, "y" => 0,
-    },
-    "s" => {
-      "w" => 0,
-    },
-    "space" => {
-      "A" => -37, "T" => 0, "V" => -70, "W" => -70, "Y" => -70,
-      "quotedblleft" => 0, "quoteleft" => 0,
-    },
-    "v" => {
-      "a" => 0, "comma" => -37, "e" => -15, "o" => -15,
-      "period" => -37,
-    },
-    "w" => {
-      "a" => -10, "comma" => -37, "e" => -10, "h" => 0, "o" => -15,
-      "period" => -37,
-    },
-    "x" => {
-      "e" => -10,
-    },
-    "y" => {
-      "a" => 0, "comma" => -37, "e" => 0, "o" => 0, "period" => -37,
-    },
-    "z" => {
-      "e" => 0, "o" => 0,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/ptmr8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,256 +0,0 @@
-%PS_Times_Roman = (
-  name => 'Times-Roman',
-  widths => {
-    "A" => 722, "AE" => 889, "Aacute" => 722, "Acircumflex" => 722,
-    "Adieresis" => 722, "Agrave" => 722, "Aring" => 722,
-    "Atilde" => 722, "B" => 667, "C" => 667, "Ccedilla" => 667,
-    "D" => 722, "E" => 611, "Eacute" => 611, "Ecircumflex" => 611,
-    "Edieresis" => 611, "Egrave" => 611, "Eth" => 722, "F" => 556,
-    "G" => 722, "H" => 722, "I" => 333, "Iacute" => 333,
-    "Icircumflex" => 333, "Idieresis" => 333, "Igrave" => 333,
-    "J" => 389, "K" => 722, "L" => 611, "Lslash" => 611, "M" => 889,
-    "N" => 722, "Ntilde" => 722, "O" => 722, "OE" => 889,
-    "Oacute" => 722, "Ocircumflex" => 722, "Odieresis" => 722,
-    "Ograve" => 722, "Oslash" => 722, "Otilde" => 722, "P" => 556,
-    "Q" => 722, "R" => 667, "S" => 556, "Scaron" => 556, "T" => 611,
-    "Thorn" => 556, "U" => 722, "Uacute" => 722, "Ucircumflex" => 722,
-    "Udieresis" => 722, "Ugrave" => 722, "V" => 722, "W" => 944,
-    "X" => 722, "Y" => 722, "Yacute" => 722, "Ydieresis" => 722,
-    "Z" => 611, "Zcaron" => 611, "a" => 444, "aacute" => 444,
-    "acircumflex" => 444, "acute" => 333, "adieresis" => 444,
-    "ae" => 667, "agrave" => 444, "ampersand" => 778, "aring" => 444,
-    "asciicircum" => 469, "asciitilde" => 541, "asterisk" => 500,
-    "at" => 921, "atilde" => 444, "b" => 500, "backslash" => 278,
-    "bar" => 200, "braceleft" => 480, "braceright" => 480,
-    "bracketleft" => 333, "bracketright" => 333, "breve" => 333,
-    "brokenbar" => 200, "bullet" => 350, "c" => 444, "caron" => 333,
-    "ccedilla" => 444, "cedilla" => 333, "cent" => 500,
-    "circumflex" => 333, "colon" => 278, "comma" => 250,
-    "copyright" => 760, "currency" => 500, "d" => 500, "dagger" => 500,
-    "daggerdbl" => 500, "degree" => 400, "dieresis" => 333,
-    "divide" => 564, "dollar" => 500, "dotaccent" => 333,
-    "dotlessi" => 278, "e" => 444, "eacute" => 444,
-    "ecircumflex" => 444, "edieresis" => 444, "egrave" => 444,
-    "eight" => 500, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 564, "eth" => 500, "exclam" => 333,
-    "exclamdown" => 333, "f" => 333, "fi" => 556, "five" => 500,
-    "fl" => 556, "florin" => 500, "four" => 500, "fraction" => 167,
-    "g" => 500, "germandbls" => 500, "grave" => 333, "greater" => 564,
-    "guillemotleft" => 500, "guillemotright" => 500,
-    "guilsinglleft" => 333, "guilsinglright" => 333, "h" => 500,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 278,
-    "iacute" => 278, "icircumflex" => 278, "idieresis" => 278,
-    "igrave" => 278, "j" => 278, "k" => 500, "l" => 278, "less" => 564,
-    "logicalnot" => 564, "lslash" => 278, "m" => 778, "macron" => 333,
-    "minus" => 564, "mu" => 500, "multiply" => 564, "n" => 500,
-    "nine" => 500, "ntilde" => 500, "numbersign" => 500, "o" => 500,
-    "oacute" => 500, "ocircumflex" => 500, "odieresis" => 500,
-    "oe" => 722, "ogonek" => 333, "ograve" => 500, "one" => 500,
-    "onehalf" => 750, "onequarter" => 750, "onesuperior" => 300,
-    "ordfeminine" => 276, "ordmasculine" => 310, "oslash" => 500,
-    "otilde" => 500, "p" => 500, "paragraph" => 453,
-    "parenleft" => 333, "parenright" => 333, "percent" => 833,
-    "period" => 250, "periodcentered" => 250, "perthousand" => 1000,
-    "plus" => 564, "plusminus" => 564, "q" => 500, "question" => 444,
-    "questiondown" => 444, "quotedbl" => 408, "quotedblbase" => 444,
-    "quotedblleft" => 444, "quotedblright" => 444, "quoteleft" => 333,
-    "quoteright" => 333, "quotesinglbase" => 333, "quotesingle" => 180,
-    "r" => 333, "registered" => 760, "ring" => 333, "s" => 389,
-    "scaron" => 389, "section" => 500, "semicolon" => 278,
-    "seven" => 500, "six" => 500, "slash" => 278, "space" => 250,
-    "sterling" => 500, "t" => 278, "thorn" => 500, "three" => 500,
-    "threequarters" => 750, "threesuperior" => 300, "tilde" => 333,
-    "trademark" => 980, "two" => 500, "twosuperior" => 300, "u" => 500,
-    "uacute" => 500, "ucircumflex" => 500, "udieresis" => 500,
-    "ugrave" => 500, "underscore" => 500, "v" => 500, "w" => 722,
-    "x" => 500, "y" => 500, "yacute" => 500, "ydieresis" => 500,
-    "yen" => 500, "z" => 444, "zcaron" => 444, "zero" => 500,
-  },
-  kern => {
-    "A" => {
-      "C" => -40, "G" => -40, "O" => -55, "Q" => -55, "T" => -111,
-      "U" => -55, "V" => -135, "W" => -90, "Y" => -105, "p" => 0,
-      "quotedblright" => 0, "quoteright" => -111, "u" => 0, "v" => -74,
-      "w" => -92, "y" => -92,
-    },
-    "B" => {
-      "A" => -35, "U" => -10, "comma" => 0, "period" => 0,
-    },
-    "D" => {
-      "A" => -40, "V" => -40, "W" => -30, "Y" => -55, "comma" => 0,
-      "period" => 0,
-    },
-    "F" => {
-      "A" => -74, "a" => -15, "comma" => -80, "e" => 0, "i" => 0,
-      "o" => -15, "period" => -80, "r" => 0,
-    },
-    "G" => {
-      "comma" => 0, "period" => 0,
-    },
-    "J" => {
-      "A" => -60, "a" => 0, "comma" => 0, "e" => 0, "o" => 0,
-      "period" => 0, "u" => 0,
-    },
-    "K" => {
-      "O" => -30, "e" => -25, "o" => -35, "u" => -15, "y" => -25,
-    },
-    "L" => {
-      "T" => -92, "V" => -100, "W" => -74, "Y" => -100,
-      "quotedblright" => 0, "quoteright" => -92, "y" => -55,
-    },
-    "N" => {
-      "A" => -35, "comma" => 0, "period" => 0,
-    },
-    "O" => {
-      "A" => -35, "T" => -40, "V" => -50, "W" => -35, "X" => -40,
-      "Y" => -50, "comma" => 0, "period" => 0,
-    },
-    "P" => {
-      "A" => -92, "a" => -15, "comma" => -111, "e" => 0, "o" => 0,
-      "period" => -111,
-    },
-    "Q" => {
-      "U" => -10, "comma" => 0, "period" => 0,
-    },
-    "R" => {
-      "O" => -40, "T" => -60, "U" => -40, "V" => -80, "W" => -55,
-      "Y" => -65,
-    },
-    "S" => {
-      "comma" => 0, "period" => 0,
-    },
-    "T" => {
-      "A" => -93, "O" => -18, "a" => -80, "colon" => -50,
-      "comma" => -74, "e" => -70, "h" => 0, "hyphen" => -92,
-      "i" => -35, "o" => -80, "period" => -74, "r" => -35,
-      "semicolon" => -55, "u" => -45, "w" => -80, "y" => -80,
-    },
-    "U" => {
-      "A" => -40, "comma" => 0, "period" => 0,
-    },
-    "V" => {
-      "A" => -135, "G" => -15, "O" => -40, "a" => -111, "colon" => -74,
-      "comma" => -129, "e" => -111, "hyphen" => -100, "i" => -60,
-      "o" => -129, "period" => -129, "semicolon" => -74, "u" => -75,
-    },
-    "W" => {
-      "A" => -120, "O" => -10, "a" => -80, "colon" => -37,
-      "comma" => -92, "e" => -80, "h" => 0, "hyphen" => -65,
-      "i" => -40, "o" => -80, "period" => -92, "semicolon" => -37,
-      "u" => -50, "y" => -73,
-    },
-    "Y" => {
-      "A" => -120, "O" => -30, "a" => -100, "colon" => -92,
-      "comma" => -129, "e" => -100, "hyphen" => -111, "i" => -55,
-      "o" => -110, "period" => -129, "semicolon" => -92, "u" => -111,
-    },
-    "a" => {
-      "b" => 0, "g" => 0, "p" => 0, "t" => 0, "v" => -20, "w" => -15,
-      "y" => 0,
-    },
-    "b" => {
-      "b" => 0, "comma" => 0, "l" => 0, "period" => -40, "u" => -20,
-      "v" => -15, "y" => 0,
-    },
-    "c" => {
-      "comma" => 0, "h" => 0, "k" => 0, "l" => 0, "period" => 0,
-      "y" => -15,
-    },
-    "colon" => {
-      "space" => 0,
-    },
-    "comma" => {
-      "quotedblright" => -70, "quoteright" => -70, "space" => 0,
-    },
-    "d" => {
-      "comma" => 0, "d" => 0, "period" => 0, "v" => 0, "w" => 0,
-      "y" => 0,
-    },
-    "e" => {
-      "b" => 0, "comma" => 0, "g" => -15, "p" => 0, "period" => 0,
-      "v" => -25, "w" => -25, "x" => -15, "y" => -15,
-    },
-    "f" => {
-      "a" => -10, "comma" => 0, "dotlessi" => -50, "e" => 0,
-      "f" => -25, "i" => -20, "l" => 0, "o" => 0, "period" => 0,
-      "quotedblright" => 0, "quoteright" => 55,
-    },
-    "g" => {
-      "a" => -5, "comma" => 0, "e" => 0, "g" => 0, "i" => 0, "o" => 0,
-      "period" => 0, "r" => 0, "y" => 0,
-    },
-    "h" => {
-      "y" => -5,
-    },
-    "i" => {
-      "v" => -25,
-    },
-    "k" => {
-      "e" => -10, "o" => -10, "y" => -15,
-    },
-    "l" => {
-      "w" => -10, "y" => 0,
-    },
-    "m" => {
-      "u" => 0, "y" => 0,
-    },
-    "n" => {
-      "u" => 0, "v" => -40, "y" => -15,
-    },
-    "o" => {
-      "g" => 0, "v" => -15, "w" => -25, "x" => 0, "y" => -10,
-    },
-    "p" => {
-      "y" => -10,
-    },
-    "period" => {
-      "quotedblright" => -70, "quoteright" => -70,
-    },
-    "quotedblleft" => {
-      "A" => -80, "quoteleft" => 0,
-    },
-    "quotedblright" => {
-      "space" => 0,
-    },
-    "quoteleft" => {
-      "A" => -80, "quoteleft" => -74,
-    },
-    "quoteright" => {
-      "d" => -50, "l" => -10, "quotedblright" => 0,
-      "quoteright" => -74, "r" => -50, "s" => -55, "space" => -74,
-      "t" => -18, "v" => -50,
-    },
-    "r" => {
-      "a" => 0, "c" => 0, "comma" => -40, "d" => 0, "e" => 0,
-      "g" => -18, "hyphen" => -20, "i" => 0, "k" => 0, "l" => 0,
-      "m" => 0, "n" => 0, "o" => 0, "p" => 0, "period" => -55,
-      "q" => 0, "r" => 0, "s" => 0, "t" => 0, "u" => 0, "v" => 0,
-      "y" => 0,
-    },
-    "s" => {
-      "w" => 0,
-    },
-    "space" => {
-      "A" => -55, "T" => -18, "V" => -50, "W" => -30, "Y" => -90,
-      "quotedblleft" => 0, "quoteleft" => 0,
-    },
-    "v" => {
-      "a" => -25, "comma" => -65, "e" => -15, "o" => -20,
-      "period" => -65,
-    },
-    "w" => {
-      "a" => -10, "comma" => -65, "e" => 0, "h" => 0, "o" => -10,
-      "period" => -65,
-    },
-    "x" => {
-      "e" => -15,
-    },
-    "y" => {
-      "a" => 0, "comma" => -65, "e" => 0, "o" => 0, "period" => -65,
-    },
-    "z" => {
-      "e" => 0, "o" => 0,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/ptmri8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,254 +0,0 @@
-%PS_Times_Italic = (
-  name => 'Times-Italic',
-  widths => {
-    "A" => 611, "AE" => 889, "Aacute" => 611, "Acircumflex" => 611,
-    "Adieresis" => 611, "Agrave" => 611, "Aring" => 611,
-    "Atilde" => 611, "B" => 611, "C" => 667, "Ccedilla" => 667,
-    "D" => 722, "E" => 611, "Eacute" => 611, "Ecircumflex" => 611,
-    "Edieresis" => 611, "Egrave" => 611, "Eth" => 722, "F" => 611,
-    "G" => 722, "H" => 722, "I" => 333, "Iacute" => 333,
-    "Icircumflex" => 333, "Idieresis" => 333, "Igrave" => 333,
-    "J" => 444, "K" => 667, "L" => 556, "Lslash" => 556, "M" => 833,
-    "N" => 667, "Ntilde" => 667, "O" => 722, "OE" => 944,
-    "Oacute" => 722, "Ocircumflex" => 722, "Odieresis" => 722,
-    "Ograve" => 722, "Oslash" => 722, "Otilde" => 722, "P" => 611,
-    "Q" => 722, "R" => 611, "S" => 500, "Scaron" => 500, "T" => 556,
-    "Thorn" => 611, "U" => 722, "Uacute" => 722, "Ucircumflex" => 722,
-    "Udieresis" => 722, "Ugrave" => 722, "V" => 611, "W" => 833,
-    "X" => 611, "Y" => 556, "Yacute" => 556, "Ydieresis" => 556,
-    "Z" => 556, "Zcaron" => 556, "a" => 500, "aacute" => 500,
-    "acircumflex" => 500, "acute" => 333, "adieresis" => 500,
-    "ae" => 667, "agrave" => 500, "ampersand" => 778, "aring" => 500,
-    "asciicircum" => 422, "asciitilde" => 541, "asterisk" => 500,
-    "at" => 920, "atilde" => 500, "b" => 500, "backslash" => 278,
-    "bar" => 275, "braceleft" => 400, "braceright" => 400,
-    "bracketleft" => 389, "bracketright" => 389, "breve" => 333,
-    "brokenbar" => 275, "bullet" => 350, "c" => 444, "caron" => 333,
-    "ccedilla" => 444, "cedilla" => 333, "cent" => 500,
-    "circumflex" => 333, "colon" => 333, "comma" => 250,
-    "copyright" => 760, "currency" => 500, "d" => 500, "dagger" => 500,
-    "daggerdbl" => 500, "degree" => 400, "dieresis" => 333,
-    "divide" => 675, "dollar" => 500, "dotaccent" => 333,
-    "dotlessi" => 278, "e" => 444, "eacute" => 444,
-    "ecircumflex" => 444, "edieresis" => 444, "egrave" => 444,
-    "eight" => 500, "ellipsis" => 889, "emdash" => 889,
-    "endash" => 500, "equal" => 675, "eth" => 500, "exclam" => 333,
-    "exclamdown" => 389, "f" => 278, "fi" => 500, "five" => 500,
-    "fl" => 500, "florin" => 500, "four" => 500, "fraction" => 167,
-    "g" => 500, "germandbls" => 500, "grave" => 333, "greater" => 675,
-    "guillemotleft" => 500, "guillemotright" => 500,
-    "guilsinglleft" => 333, "guilsinglright" => 333, "h" => 500,
-    "hungarumlaut" => 333, "hyphen" => 333, "i" => 278,
-    "iacute" => 278, "icircumflex" => 278, "idieresis" => 278,
-    "igrave" => 278, "j" => 278, "k" => 444, "l" => 278, "less" => 675,
-    "logicalnot" => 675, "lslash" => 278, "m" => 722, "macron" => 333,
-    "minus" => 675, "mu" => 500, "multiply" => 675, "n" => 500,
-    "nine" => 500, "ntilde" => 500, "numbersign" => 500, "o" => 500,
-    "oacute" => 500, "ocircumflex" => 500, "odieresis" => 500,
-    "oe" => 667, "ogonek" => 333, "ograve" => 500, "one" => 500,
-    "onehalf" => 750, "onequarter" => 750, "onesuperior" => 300,
-    "ordfeminine" => 276, "ordmasculine" => 310, "oslash" => 500,
-    "otilde" => 500, "p" => 500, "paragraph" => 523,
-    "parenleft" => 333, "parenright" => 333, "percent" => 833,
-    "period" => 250, "periodcentered" => 250, "perthousand" => 1000,
-    "plus" => 675, "plusminus" => 675, "q" => 500, "question" => 500,
-    "questiondown" => 500, "quotedbl" => 420, "quotedblbase" => 556,
-    "quotedblleft" => 556, "quotedblright" => 556, "quoteleft" => 333,
-    "quoteright" => 333, "quotesinglbase" => 333, "quotesingle" => 214,
-    "r" => 389, "registered" => 760, "ring" => 333, "s" => 389,
-    "scaron" => 389, "section" => 500, "semicolon" => 333,
-    "seven" => 500, "six" => 500, "slash" => 278, "space" => 250,
-    "sterling" => 500, "t" => 278, "thorn" => 500, "three" => 500,
-    "threequarters" => 750, "threesuperior" => 300, "tilde" => 333,
-    "trademark" => 980, "two" => 500, "twosuperior" => 300, "u" => 500,
-    "uacute" => 500, "ucircumflex" => 500, "udieresis" => 500,
-    "ugrave" => 500, "underscore" => 500, "v" => 444, "w" => 667,
-    "x" => 444, "y" => 444, "yacute" => 444, "ydieresis" => 444,
-    "yen" => 500, "z" => 389, "zcaron" => 389, "zero" => 500,
-  },
-  kern => {
-    "A" => {
-      "C" => -30, "G" => -35, "O" => -40, "Q" => -40, "T" => -37,
-      "U" => -50, "V" => -105, "W" => -95, "Y" => -55, "p" => 0,
-      "quotedblright" => 0, "quoteright" => -37, "u" => -20,
-      "v" => -55, "w" => -55, "y" => -55,
-    },
-    "B" => {
-      "A" => -25, "U" => -10, "comma" => 0, "period" => 0,
-    },
-    "D" => {
-      "A" => -35, "V" => -40, "W" => -40, "Y" => -40, "comma" => 0,
-      "period" => 0,
-    },
-    "F" => {
-      "A" => -115, "a" => -75, "comma" => -135, "e" => -75, "i" => -45,
-      "o" => -105, "period" => -135, "r" => -55,
-    },
-    "G" => {
-      "comma" => 0, "period" => 0,
-    },
-    "J" => {
-      "A" => -40, "a" => -35, "comma" => -25, "e" => -25, "o" => -25,
-      "period" => -25, "u" => -35,
-    },
-    "K" => {
-      "O" => -50, "e" => -35, "o" => -40, "u" => -40, "y" => -40,
-    },
-    "L" => {
-      "T" => -20, "V" => -55, "W" => -55, "Y" => -20,
-      "quotedblright" => 0, "quoteright" => -37, "y" => -30,
-    },
-    "N" => {
-      "A" => -27, "comma" => 0, "period" => 0,
-    },
-    "O" => {
-      "A" => -55, "T" => -40, "V" => -50, "W" => -50, "X" => -40,
-      "Y" => -50, "comma" => 0, "period" => 0,
-    },
-    "P" => {
-      "A" => -90, "a" => -80, "comma" => -135, "e" => -80, "o" => -80,
-      "period" => -135,
-    },
-    "Q" => {
-      "U" => -10, "comma" => 0, "period" => 0,
-    },
-    "R" => {
-      "O" => -40, "T" => 0, "U" => -40, "V" => -18, "W" => -18,
-      "Y" => -18,
-    },
-    "S" => {
-      "comma" => 0, "period" => 0,
-    },
-    "T" => {
-      "A" => -50, "O" => -18, "a" => -92, "colon" => -55,
-      "comma" => -74, "e" => -92, "h" => 0, "hyphen" => -74,
-      "i" => -55, "o" => -92, "period" => -74, "r" => -55,
-      "semicolon" => -65, "u" => -55, "w" => -74, "y" => -74,
-    },
-    "U" => {
-      "A" => -40, "comma" => -25, "period" => -25,
-    },
-    "V" => {
-      "A" => -60, "G" => 0, "O" => -30, "a" => -111, "colon" => -65,
-      "comma" => -129, "e" => -111, "hyphen" => -55, "i" => -74,
-      "o" => -111, "period" => -129, "semicolon" => -74, "u" => -74,
-    },
-    "W" => {
-      "A" => -60, "O" => -25, "a" => -92, "colon" => -65,
-      "comma" => -92, "e" => -92, "h" => 0, "hyphen" => -37,
-      "i" => -55, "o" => -92, "period" => -92, "semicolon" => -65,
-      "u" => -55, "y" => -70,
-    },
-    "Y" => {
-      "A" => -50, "O" => -15, "a" => -92, "colon" => -65,
-      "comma" => -92, "e" => -92, "hyphen" => -74, "i" => -74,
-      "o" => -92, "period" => -92, "semicolon" => -65, "u" => -92,
-    },
-    "a" => {
-      "b" => 0, "g" => -10, "p" => 0, "t" => 0, "v" => 0, "w" => 0,
-      "y" => 0,
-    },
-    "b" => {
-      "b" => 0, "comma" => 0, "l" => 0, "period" => -40, "u" => -20,
-      "v" => 0, "y" => 0,
-    },
-    "c" => {
-      "comma" => 0, "h" => -15, "k" => -20, "l" => 0, "period" => 0,
-      "y" => 0,
-    },
-    "colon" => {
-      "space" => 0,
-    },
-    "comma" => {
-      "quotedblright" => -140, "quoteright" => -140, "space" => 0,
-    },
-    "d" => {
-      "comma" => 0, "d" => 0, "period" => 0, "v" => 0, "w" => 0,
-      "y" => 0,
-    },
-    "e" => {
-      "b" => 0, "comma" => -10, "g" => -40, "p" => 0, "period" => -15,
-      "v" => -15, "w" => -15, "x" => -20, "y" => -30,
-    },
-    "f" => {
-      "a" => 0, "comma" => -10, "dotlessi" => -60, "e" => 0,
-      "f" => -18, "i" => -20, "l" => 0, "o" => 0, "period" => -15,
-      "quotedblright" => 0, "quoteright" => 92,
-    },
-    "g" => {
-      "a" => 0, "comma" => -10, "e" => -10, "g" => -10, "i" => 0,
-      "o" => 0, "period" => -15, "r" => 0, "y" => 0,
-    },
-    "h" => {
-      "y" => 0,
-    },
-    "i" => {
-      "v" => 0,
-    },
-    "k" => {
-      "e" => -10, "o" => -10, "y" => -10,
-    },
-    "l" => {
-      "w" => 0, "y" => 0,
-    },
-    "m" => {
-      "u" => 0, "y" => 0,
-    },
-    "n" => {
-      "u" => 0, "v" => -40, "y" => 0,
-    },
-    "o" => {
-      "g" => -10, "v" => -10, "w" => 0, "x" => 0, "y" => 0,
-    },
-    "p" => {
-      "y" => 0,
-    },
-    "period" => {
-      "quotedblright" => -140, "quoteright" => -140,
-    },
-    "quotedblleft" => {
-      "A" => 0, "quoteleft" => 0,
-    },
-    "quotedblright" => {
-      "space" => 0,
-    },
-    "quoteleft" => {
-      "A" => 0, "quoteleft" => -111,
-    },
-    "quoteright" => {
-      "d" => -25, "l" => 0, "quotedblright" => 0, "quoteright" => -111,
-      "r" => -25, "s" => -40, "space" => -111, "t" => -30, "v" => -10,
-    },
-    "r" => {
-      "a" => -15, "c" => -37, "comma" => -111, "d" => -37, "e" => -37,
-      "g" => -37, "hyphen" => -20, "i" => 0, "k" => 0, "l" => 0,
-      "m" => 0, "n" => 0, "o" => -45, "p" => 0, "period" => -111,
-      "q" => -37, "r" => 0, "s" => -10, "t" => 0, "u" => 0, "v" => 0,
-      "y" => 0,
-    },
-    "s" => {
-      "w" => 0,
-    },
-    "space" => {
-      "A" => -18, "T" => -18, "V" => -35, "W" => -40, "Y" => -75,
-      "quotedblleft" => 0, "quoteleft" => 0,
-    },
-    "v" => {
-      "a" => 0, "comma" => -74, "e" => 0, "o" => 0, "period" => -74,
-    },
-    "w" => {
-      "a" => 0, "comma" => -74, "e" => 0, "h" => 0, "o" => 0,
-      "period" => -74,
-    },
-    "x" => {
-      "e" => 0,
-    },
-    "y" => {
-      "a" => 0, "comma" => -55, "e" => 0, "o" => 0, "period" => -55,
-    },
-    "z" => {
-      "e" => 0, "o" => 0,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/putb8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,378 +0,0 @@
-%PS_Utopia_Bold = (
-  name => 'Utopia-Bold',
-  widths => {
-    "A" => 644, "AE" => 879, "Aacute" => 644, "Acircumflex" => 644,
-    "Adieresis" => 644, "Agrave" => 644, "Aring" => 644,
-    "Atilde" => 644, "B" => 683, "C" => 689, "Ccedilla" => 689,
-    "D" => 777, "E" => 629, "Eacute" => 629, "Ecircumflex" => 629,
-    "Edieresis" => 629, "Egrave" => 629, "Eth" => 783, "F" => 593,
-    "G" => 726, "H" => 807, "I" => 384, "Iacute" => 384,
-    "Icircumflex" => 384, "Idieresis" => 384, "Igrave" => 384,
-    "J" => 386, "K" => 707, "L" => 585, "Lslash" => 591, "M" => 918,
-    "N" => 739, "Ntilde" => 739, "O" => 768, "OE" => 1049,
-    "Oacute" => 768, "Ocircumflex" => 768, "Odieresis" => 768,
-    "Ograve" => 768, "Oslash" => 768, "Otilde" => 768, "P" => 650,
-    "Q" => 768, "R" => 684, "S" => 561, "Scaron" => 561, "T" => 624,
-    "Thorn" => 640, "U" => 786, "Uacute" => 786, "Ucircumflex" => 786,
-    "Udieresis" => 786, "Ugrave" => 786, "V" => 645, "W" => 933,
-    "X" => 634, "Y" => 617, "Yacute" => 617, "Ydieresis" => 617,
-    "Z" => 614, "Zcaron" => 614, "a" => 544, "aacute" => 544,
-    "acircumflex" => 544, "acute" => 430, "adieresis" => 544,
-    "ae" => 806, "agrave" => 544, "ampersand" => 748, "aring" => 544,
-    "asciicircum" => 600, "asciitilde" => 600, "asterisk" => 442,
-    "at" => 833, "atilde" => 544, "b" => 605, "backslash" => 379,
-    "bar" => 284, "braceleft" => 365, "braceright" => 365,
-    "bracketleft" => 335, "bracketright" => 335, "breve" => 430,
-    "brokenbar" => 284, "bullet" => 455, "c" => 494, "caron" => 430,
-    "ccedilla" => 494, "cedilla" => 430, "cent" => 560,
-    "circumflex" => 430, "colon" => 280, "comma" => 280,
-    "copyright" => 800, "currency" => 560, "d" => 605, "dagger" => 510,
-    "daggerdbl" => 486, "degree" => 396, "dieresis" => 430,
-    "divide" => 600, "dollar" => 560, "dotaccent" => 430,
-    "dotlessi" => 316, "e" => 519, "eacute" => 519,
-    "ecircumflex" => 519, "edieresis" => 519, "egrave" => 519,
-    "eight" => 560, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 600, "eth" => 585, "exclam" => 278,
-    "exclamdown" => 278, "f" => 342, "fi" => 639, "five" => 560,
-    "fl" => 639, "florin" => 560, "four" => 560, "fraction" => 100,
-    "g" => 533, "germandbls" => 662, "grave" => 430, "greater" => 600,
-    "guillemotleft" => 487, "guillemotright" => 487,
-    "guilsinglleft" => 287, "guilsinglright" => 287, "h" => 631,
-    "hungarumlaut" => 430, "hyphen" => 392, "i" => 316,
-    "iacute" => 316, "icircumflex" => 316, "idieresis" => 316,
-    "igrave" => 316, "j" => 316, "k" => 582, "l" => 309, "less" => 600,
-    "logicalnot" => 600, "lslash" => 321, "m" => 948, "macron" => 430,
-    "minus" => 600, "mu" => 629, "multiply" => 600, "n" => 638,
-    "nine" => 560, "ntilde" => 638, "numbersign" => 560, "o" => 585,
-    "oacute" => 585, "ocircumflex" => 585, "odieresis" => 585,
-    "oe" => 866, "ogonek" => 430, "ograve" => 585, "one" => 560,
-    "onehalf" => 900, "onequarter" => 900, "onesuperior" => 402,
-    "ordfeminine" => 405, "ordmasculine" => 427, "oslash" => 585,
-    "otilde" => 585, "p" => 615, "paragraph" => 552,
-    "parenleft" => 365, "parenright" => 365, "percent" => 887,
-    "period" => 280, "periodcentered" => 280, "perthousand" => 1289,
-    "plus" => 600, "plusminus" => 600, "q" => 597, "question" => 456,
-    "questiondown" => 456, "quotedbl" => 473, "quotedblbase" => 473,
-    "quotedblleft" => 473, "quotedblright" => 473, "quoteleft" => 252,
-    "quoteright" => 252, "quotesinglbase" => 252, "quotesingle" => 252,
-    "r" => 440, "registered" => 800, "ring" => 430, "s" => 446,
-    "scaron" => 446, "section" => 566, "semicolon" => 280,
-    "seven" => 560, "six" => 560, "slash" => 378, "space" => 210,
-    "sterling" => 560, "t" => 370, "thorn" => 609, "three" => 560,
-    "threequarters" => 900, "threesuperior" => 402, "tilde" => 430,
-    "trademark" => 1090, "two" => 560, "twosuperior" => 402,
-    "u" => 629, "uacute" => 629, "ucircumflex" => 629,
-    "udieresis" => 629, "ugrave" => 629, "underscore" => 500,
-    "v" => 520, "w" => 774, "x" => 522, "y" => 524, "yacute" => 524,
-    "ydieresis" => 524, "yen" => 560, "z" => 483, "zcaron" => 483,
-    "zero" => 560,
-  },
-  kern => {
-    "A" => {
-      "C" => -18, "G" => -18, "O" => -18, "Q" => -18, "T" => -58,
-      "U" => -40, "V" => -70, "W" => -54, "X" => -18, "Y" => -64,
-      "a" => -6, "b" => -12, "c" => -12, "d" => -12, "e" => -6,
-      "o" => -12, "p" => -18, "q" => -6, "quotedblright" => -80,
-      "quoteright" => -110, "s" => 6, "t" => -12, "u" => -18,
-      "v" => -48, "w" => -42, "y" => -40, "z" => 25,
-    },
-    "B" => {
-      "T" => -20, "U" => -25, "V" => -20, "W" => -20, "a" => -12,
-      "b" => -10, "e" => -6, "h" => -15, "i" => -12, "k" => -15,
-      "l" => -15, "o" => -6, "r" => -12, "u" => -12, "y" => -18,
-    },
-    "C" => {
-      "C" => -6, "G" => -6, "O" => -6, "Q" => -6, "a" => -16,
-      "e" => -12, "o" => -12, "r" => -6, "u" => -18, "y" => -24,
-      "z" => -5,
-    },
-    "D" => {
-      "V" => -40, "W" => -40, "Y" => -60, "a" => -15, "comma" => -40,
-      "e" => -5, "h" => -18, "i" => -12, "o" => -5, "period" => -40,
-      "r" => -12, "u" => -12,
-    },
-    "E" => {
-      "V" => -6, "W" => -6, "Y" => -6, "a" => -4, "b" => -5, "c" => -6,
-      "comma" => 10, "d" => -6, "e" => -6, "g" => -6, "i" => -6,
-      "j" => -6, "m" => -4, "n" => -4, "o" => -6, "p" => -18,
-      "period" => 10, "q" => -6, "r" => -4, "s" => -12, "t" => -18,
-      "u" => -12, "v" => -24, "w" => -24, "y" => -30,
-    },
-    "F" => {
-      "A" => -60, "a" => -48, "comma" => -150, "e" => -36, "i" => -22,
-      "l" => -12, "o" => -36, "period" => -150, "quotedblright" => 20,
-      "quoteright" => 20, "r" => -36, "u" => -12, "y" => -18,
-    },
-    "G" => {
-      "a" => -12, "h" => -12, "i" => -12, "l" => -6, "n" => -18,
-      "quotedblright" => -20, "r" => -18, "u" => -12, "y" => -12,
-    },
-    "H" => {
-      "a" => -25, "e" => -30, "i" => -18, "o" => -30, "u" => -26,
-      "y" => -24,
-    },
-    "I" => {
-      "a" => -24, "b" => -6, "c" => -30, "d" => -30, "e" => -30,
-      "f" => -6, "g" => -6, "h" => -6, "k" => -6, "l" => -6,
-      "m" => -18, "n" => -18, "o" => -30, "p" => -26, "r" => -12,
-      "s" => -18, "t" => -24, "u" => -26, "v" => -24, "w" => -18,
-      "x" => -6, "y" => -6, "z" => -6,
-    },
-    "J" => {
-      "a" => -36, "braceright" => 15, "bracketright" => 15, "e" => -35,
-      "i" => -20, "o" => -35, "u" => -36, "y" => -20,
-    },
-    "K" => {
-      "A" => 20, "C" => -36, "G" => -36, "O" => -36, "Q" => -36,
-      "a" => -6, "e" => -18, "h" => 10, "i" => 6, "l" => 10,
-      "o" => -30, "u" => -42, "v" => -80, "w" => -60, "y" => -70,
-    },
-    "L" => {
-      "A" => 30, "C" => -12, "G" => -12, "O" => -12, "Q" => -12,
-      "T" => -80, "U" => -32, "V" => -95, "W" => -78, "Y" => -70,
-      "j" => -6, "l" => 6, "quotedblright" => -130,
-      "quoteright" => -130, "u" => -12, "w" => -58, "y" => -52,
-    },
-    "M" => {
-      "a" => -25, "c" => -30, "d" => -30, "e" => -30, "i" => -12,
-      "j" => -12, "n" => -6, "o" => -30, "u" => -36, "y" => -24,
-    },
-    "N" => {
-      "a" => -30, "e" => -30, "i" => -24, "o" => -30, "u" => -30,
-      "y" => -24,
-    },
-    "O" => {
-      "A" => -30, "T" => -40, "V" => -35, "W" => -35, "X" => -40,
-      "Y" => -50, "a" => -12, "b" => -15, "c" => -6, "comma" => -40,
-      "d" => -6, "e" => -6, "g" => -6, "h" => -15, "i" => -6,
-      "k" => -15, "l" => -15, "m" => -10, "n" => -10, "o" => -6,
-      "p" => -10, "period" => -40, "q" => -6, "r" => -10, "s" => -6,
-      "t" => -6, "u" => -6, "z" => -6,
-    },
-    "P" => {
-      "A" => -85, "E" => -20, "H" => -20, "I" => -20, "a" => -36,
-      "comma" => -200, "e" => -36, "h" => -15, "hyphen" => -30,
-      "i" => -6, "l" => -15, "n" => -12, "o" => -36, "period" => -200,
-      "quotedblright" => 20, "quoteright" => 20, "r" => -12,
-      "s" => -30, "t" => -6, "u" => -18, "y" => 10,
-    },
-    "Q" => {
-      "A" => -30, "T" => -40, "U" => -25, "V" => -35, "W" => -35,
-      "X" => -40, "Y" => -50, "a" => -18, "u" => -6,
-    },
-    "R" => {
-      "C" => -10, "G" => -10, "O" => -10, "Q" => -10, "T" => -20,
-      "U" => -30, "V" => -26, "W" => -18, "X" => 20, "Y" => -32,
-      "a" => -6, "e" => -18, "o" => -12, "quotedblright" => -10,
-      "quoteright" => -10, "t" => -25, "u" => -12, "y" => -20,
-    },
-    "S" => {
-      "a" => -18, "h" => -12, "i" => -12, "j" => -30, "k" => -24,
-      "l" => -18, "m" => -24, "n" => -24, "p" => -24,
-      "quotedblright" => -15, "quoteright" => -15, "r" => -10,
-      "t" => -24, "u" => -24, "v" => -40, "w" => -30, "y" => -35,
-    },
-    "T" => {
-      "A" => -52, "C" => -25, "G" => -25, "O" => -25, "Q" => -25,
-      "S" => -12, "T" => 30, "V" => 6, "W" => 15, "X" => 10, "Y" => 12,
-      "a" => -90, "braceright" => 30, "bracketright" => 40,
-      "comma" => -95, "e" => -80, "emdash" => -60, "endash" => -40,
-      "hyphen" => -110, "i" => -28, "m" => -72, "o" => -90,
-      "parenright" => 40, "period" => -95, "quotedblright" => 24,
-      "quoteright" => 24, "r" => -74, "s" => -82, "semicolon" => -50,
-      "u" => -74, "w" => -72, "y" => -74, "z" => -64,
-    },
-    "U" => {
-      "A" => -50, "a" => -50, "b" => -12, "c" => -40, "d" => -40,
-      "f" => -20, "g" => -40, "h" => -6, "i" => -22, "k" => -12,
-      "l" => -12, "m" => -50, "n" => -50, "p" => -50, "r" => -50,
-      "s" => -45, "t" => -36, "v" => -30, "x" => -30, "y" => -30,
-      "z" => -35,
-    },
-    "V" => {
-      "A" => -60, "C" => -20, "G" => -20, "O" => -20, "Q" => -20,
-      "a" => -70, "braceright" => 80, "bracketright" => 80,
-      "colon" => -45, "comma" => -135, "e" => -70, "emdash" => -20,
-      "hyphen" => -90, "i" => 20, "o" => -70, "parenright" => 80,
-      "period" => -135, "quotedblright" => 36, "quoteright" => 50,
-      "r" => -75, "semicolon" => -45, "u" => -50, "y" => -36,
-    },
-    "W" => {
-      "A" => -58, "C" => -20, "G" => -20, "O" => -20, "Q" => -20,
-      "T" => 30, "a" => -75, "braceright" => 70, "bracketright" => 80,
-      "colon" => -40, "comma" => -100, "d" => -60, "e" => -60,
-      "h" => 20, "hyphen" => -70, "i" => 5, "m" => -50, "o" => -60,
-      "parenright" => 80, "period" => -100, "quotedblright" => 24,
-      "quoteright" => 40, "r" => -50, "semicolon" => -40, "t" => -30,
-      "u" => -46, "y" => -50,
-    },
-    "X" => {
-      "A" => 20, "C" => -30, "G" => -30, "O" => -30, "Q" => -24,
-      "a" => -6, "e" => -6, "quoteright" => 15, "u" => -24, "y" => -40,
-    },
-    "Y" => {
-      "A" => -55, "C" => -40, "G" => -40, "O" => -40, "Q" => -40,
-      "T" => 30, "V" => 12, "W" => 12, "X" => 12, "Y" => 12,
-      "a" => -80, "braceright" => 64, "bracketright" => 80,
-      "colon" => -60, "comma" => -90, "d" => -90, "e" => -90,
-      "emdash" => -50, "endash" => -30, "hyphen" => -100, "i" => 15,
-      "l" => 25, "o" => -90, "parenright" => 60, "period" => -90,
-      "q" => -100, "quotedblright" => 36, "quoteright" => 50,
-      "semicolon" => -37, "t" => -46, "u" => -65, "v" => -50,
-    },
-    "Z" => {
-      "A" => 25, "C" => -18, "G" => -18, "O" => -18, "Q" => -18,
-      "a" => -6, "e" => -6, "i" => -12, "o" => -12, "u" => -6,
-      "w" => -36, "y" => -36,
-    },
-    "a" => {
-      "quotedblright" => -40, "quoteright" => -45,
-    },
-    "b" => {
-      "comma" => -10, "period" => -10, "quotedblright" => -40,
-      "quoteright" => -45, "v" => -20, "w" => -20, "y" => -15,
-    },
-    "braceleft" => {
-      "J" => 50, "T" => 25, "V" => 64, "W" => 64, "Y" => 64,
-    },
-    "bracketleft" => {
-      "J" => 60, "T" => 35, "V" => 64, "W" => 64, "Y" => 64,
-    },
-    "c" => {
-      "quoteright" => -5,
-    },
-    "colon" => {
-      "space" => -20,
-    },
-    "comma" => {
-      "quotedblright" => -100, "quoteright" => -100, "space" => -40,
-    },
-    "d" => {
-      "quotedblright" => -24, "quoteright" => -24,
-    },
-    "e" => {
-      "quotedblright" => -20, "quoteright" => -25, "z" => -4,
-    },
-    "f" => {
-      "braceright" => 80, "bracketright" => 100, "comma" => -20,
-      "parenright" => 110, "period" => -10, "quotedblright" => 68,
-      "quoteright" => 68, "quotesingle" => 70,
-    },
-    "g" => {
-      "comma" => 10, "f" => 20, "p" => 20, "y" => 20,
-    },
-    "h" => {
-      "quotedblright" => -60, "quoteright" => -60,
-    },
-    "i" => {
-      "quotedblright" => -20, "quoteright" => -20,
-    },
-    "j" => {
-      "comma" => -10, "period" => -10, "quotedblright" => -20,
-      "quoteright" => -20,
-    },
-    "k" => {
-      "quotedblright" => -30, "quoteright" => -30,
-    },
-    "l" => {
-      "quotedblright" => -24, "quoteright" => -24,
-    },
-    "m" => {
-      "quotedblright" => -60, "quoteright" => -60,
-    },
-    "n" => {
-      "quotedblright" => -60, "quoteright" => -60,
-    },
-    "o" => {
-      "comma" => -10, "period" => -10, "quotedblright" => -40,
-      "quoteright" => -45, "v" => -30, "w" => -30, "x" => -18,
-      "y" => -25, "z" => -12,
-    },
-    "p" => {
-      "comma" => -10, "period" => -10, "quotedblright" => -60,
-      "quoteright" => -45, "w" => -15, "y" => -15, "z" => -10,
-    },
-    "parenleft" => {
-      "J" => 50, "T" => 50, "V" => 64, "W" => 64, "Y" => 64,
-    },
-    "period" => {
-      "quotedblright" => -100, "quoteright" => -100, "space" => -40,
-    },
-    "q" => {
-      "comma" => -10, "period" => -10, "quotedblright" => -50,
-      "quoteright" => -50,
-    },
-    "quotedblleft" => {
-      "A" => -122, "J" => -24, "T" => 18, "V" => 40, "W" => 40,
-      "X" => 20, "Y" => 30, "a" => -60, "c" => -70, "d" => -70,
-      "e" => -70, "f" => -30, "g" => -50, "m" => -40, "n" => -40,
-      "o" => -70, "p" => -40, "q" => -70, "r" => -40, "s" => -32,
-      "t" => -40, "u" => -40, "w" => 10, "z" => -26,
-    },
-    "quotedblright" => {
-      "comma" => -100, "period" => -100, "space" => -40,
-    },
-    "quoteleft" => {
-      "A" => -122, "J" => -24, "T" => 35, "V" => 35, "W" => 35,
-      "X" => 30, "Y" => 35, "a" => -60, "c" => -70, "d" => -70,
-      "e" => -70, "f" => -10, "g" => -50, "m" => -40, "n" => -40,
-      "o" => -70, "p" => -40, "q" => -70, "quoteleft" => -30,
-      "r" => -40, "s" => -40, "t" => -25, "u" => -25, "v" => -5,
-      "w" => 5, "x" => -5, "y" => -5, "z" => -26,
-    },
-    "quoteright" => {
-      "comma" => -100, "d" => -100, "l" => -6, "m" => -42,
-      "period" => -100, "quoteright" => -30, "r" => -42, "s" => -70,
-      "space" => -40, "t" => -50, "v" => -20,
-    },
-    "r" => {
-      "c" => -20, "colon" => 20, "comma" => -80, "d" => -20,
-      "e" => -20, "emdash" => -20, "f" => 8, "g" => 5, "h" => -10,
-      "hyphen" => -60, "i" => 8, "k" => -10, "l" => -10, "m" => 8,
-      "n" => 8, "o" => -6, "period" => -60, "q" => -6,
-      "quotedblright" => -10, "quoteright" => -20, "semicolon" => 20,
-      "t" => 8, "u" => 8, "v" => 30, "w" => 30, "x" => 12, "y" => 18,
-      "z" => 20,
-    },
-    "s" => {
-      "quotedblright" => -40, "quoteright" => -40,
-    },
-    "semicolon" => {
-      "space" => -20,
-    },
-    "space" => {
-      "T" => -40, "V" => -60, "W" => -60, "Y" => -60,
-      "quotedblbase" => -100, "quotedblleft" => -40,
-      "quoteleft" => -40, "quotesinglbase" => -100,
-    },
-    "t" => {
-      "comma" => 10, "period" => 15,
-    },
-    "u" => {
-      "quotedblright" => -60, "quoteright" => -60,
-    },
-    "v" => {
-      "a" => -15, "c" => -15, "colon" => 20, "comma" => -90,
-      "d" => -15, "e" => -15, "o" => -15, "period" => -75, "q" => -15,
-      "quotedblright" => 10, "quoteright" => 5, "semicolon" => 20,
-    },
-    "w" => {
-      "c" => -10, "colon" => 20, "comma" => -68, "d" => -10,
-      "e" => -10, "o" => -10, "period" => -60, "q" => -10,
-      "quotedblright" => 20, "quoteright" => 15, "semicolon" => 20,
-    },
-    "x" => {
-      "c" => -12, "d" => -12, "e" => -12, "o" => -6, "q" => -6,
-      "quotedblright" => -20, "quoteright" => -25,
-    },
-    "y" => {
-      "colon" => 20, "comma" => -72, "hyphen" => -20, "period" => -72,
-      "quotedblright" => 10, "quoteright" => 5, "semicolon" => 20,
-    },
-    "z" => {
-      "c" => -6, "d" => -6, "e" => -6, "o" => -6,
-      "quotedblright" => -20, "quoteright" => -20,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/putbi8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,392 +0,0 @@
-%PS_Utopia_BoldItalic = (
-  name => 'Utopia-BoldItalic',
-  widths => {
-    "A" => 634, "AE" => 890, "Aacute" => 634, "Acircumflex" => 634,
-    "Adieresis" => 634, "Agrave" => 634, "Aring" => 634,
-    "Atilde" => 634, "B" => 680, "C" => 672, "Ccedilla" => 672,
-    "D" => 774, "E" => 622, "Eacute" => 622, "Ecircumflex" => 622,
-    "Edieresis" => 622, "Egrave" => 622, "Eth" => 780, "F" => 585,
-    "G" => 726, "H" => 800, "I" => 386, "Iacute" => 386,
-    "Icircumflex" => 386, "Idieresis" => 386, "Igrave" => 386,
-    "J" => 388, "K" => 688, "L" => 586, "Lslash" => 592, "M" => 921,
-    "N" => 741, "Ntilde" => 741, "O" => 761, "OE" => 1016,
-    "Oacute" => 761, "Ocircumflex" => 761, "Odieresis" => 761,
-    "Ograve" => 761, "Oslash" => 761, "Otilde" => 761, "P" => 660,
-    "Q" => 761, "R" => 681, "S" => 551, "Scaron" => 551, "T" => 616,
-    "Thorn" => 629, "U" => 776, "Uacute" => 776, "Ucircumflex" => 776,
-    "Udieresis" => 776, "Ugrave" => 776, "V" => 630, "W" => 920,
-    "X" => 630, "Y" => 622, "Yacute" => 622, "Ydieresis" => 622,
-    "Z" => 618, "Zcaron" => 618, "a" => 596, "aacute" => 596,
-    "acircumflex" => 596, "acute" => 400, "adieresis" => 596,
-    "ae" => 789, "agrave" => 596, "ampersand" => 752, "aring" => 596,
-    "asciicircum" => 600, "asciitilde" => 600, "asterisk" => 500,
-    "at" => 828, "atilde" => 596, "b" => 586, "backslash" => 460,
-    "bar" => 265, "braceleft" => 340, "braceright" => 340,
-    "bracketleft" => 350, "bracketright" => 350, "breve" => 400,
-    "brokenbar" => 265, "bullet" => 465, "c" => 456, "caron" => 400,
-    "ccedilla" => 456, "cedilla" => 400, "cent" => 560,
-    "circumflex" => 400, "colon" => 280, "comma" => 280,
-    "copyright" => 824, "currency" => 560, "d" => 609, "dagger" => 514,
-    "daggerdbl" => 490, "degree" => 375, "dieresis" => 400,
-    "divide" => 600, "dollar" => 560, "dotaccent" => 402,
-    "dotlessi" => 339, "e" => 476, "eacute" => 476,
-    "ecircumflex" => 476, "edieresis" => 476, "egrave" => 476,
-    "eight" => 560, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 600, "eth" => 562, "exclam" => 285,
-    "exclamdown" => 285, "f" => 348, "fi" => 651, "five" => 560,
-    "fl" => 652, "florin" => 560, "four" => 560, "fraction" => 100,
-    "g" => 522, "germandbls" => 628, "grave" => 400, "greater" => 600,
-    "guillemotleft" => 560, "guillemotright" => 560,
-    "guilsinglleft" => 360, "guilsinglright" => 360, "h" => 629,
-    "hungarumlaut" => 400, "hyphen" => 392, "i" => 339,
-    "iacute" => 339, "icircumflex" => 339, "idieresis" => 339,
-    "igrave" => 339, "j" => 333, "k" => 570, "l" => 327, "less" => 600,
-    "logicalnot" => 600, "lslash" => 339, "m" => 914, "macron" => 400,
-    "minus" => 600, "mu" => 634, "multiply" => 600, "n" => 635,
-    "nine" => 560, "ntilde" => 635, "numbersign" => 560, "o" => 562,
-    "oacute" => 562, "ocircumflex" => 562, "odieresis" => 562,
-    "oe" => 811, "ogonek" => 350, "ograve" => 562, "one" => 560,
-    "onehalf" => 940, "onequarter" => 940, "onesuperior" => 402,
-    "ordfeminine" => 444, "ordmasculine" => 412, "oslash" => 562,
-    "otilde" => 562, "p" => 606, "paragraph" => 580,
-    "parenleft" => 350, "parenright" => 350, "percent" => 896,
-    "period" => 280, "periodcentered" => 280, "perthousand" => 1297,
-    "plus" => 600, "plusminus" => 600, "q" => 584, "question" => 454,
-    "questiondown" => 454, "quotedbl" => 455, "quotedblbase" => 455,
-    "quotedblleft" => 455, "quotedblright" => 455, "quoteleft" => 246,
-    "quoteright" => 246, "quotesinglbase" => 246, "quotesingle" => 246,
-    "r" => 440, "registered" => 824, "ring" => 400, "s" => 417,
-    "scaron" => 417, "section" => 568, "semicolon" => 280,
-    "seven" => 560, "six" => 560, "slash" => 260, "space" => 210,
-    "sterling" => 560, "t" => 359, "thorn" => 600, "three" => 560,
-    "threequarters" => 940, "threesuperior" => 402, "tilde" => 400,
-    "trademark" => 1100, "two" => 560, "twosuperior" => 402,
-    "u" => 634, "uacute" => 634, "ucircumflex" => 634,
-    "udieresis" => 634, "ugrave" => 634, "underscore" => 500,
-    "v" => 518, "w" => 795, "x" => 516, "y" => 489, "yacute" => 489,
-    "ydieresis" => 489, "yen" => 560, "z" => 466, "zcaron" => 466,
-    "zero" => 560,
-  },
-  kern => {
-    "A" => {
-      "C" => -30, "G" => -30, "O" => -30, "Q" => -30, "T" => -60,
-      "U" => -50, "V" => -75, "W" => -46, "X" => -8, "Y" => -56,
-      "a" => 10, "b" => -6, "c" => -6, "d" => 4, "h" => -6, "l" => -18,
-      "m" => -12, "n" => -12, "o" => -18, "p" => -6,
-      "quotedblright" => -92, "quoteright" => -92, "r" => -6, "s" => 6,
-      "t" => -6, "u" => -18, "v" => -30, "w" => -30, "x" => 16,
-      "y" => -40, "z" => 18,
-    },
-    "B" => {
-      "T" => -20, "U" => -30, "V" => -45, "W" => -30, "a" => 10,
-      "e" => 4, "h" => -15, "i" => -12, "k" => -10, "l" => -20,
-      "o" => 6, "quotedblright" => -32, "quoteright" => -20, "r" => -6,
-      "u" => -12, "y" => -6,
-    },
-    "C" => {
-      "C" => -12, "G" => -12, "O" => -12, "Q" => -12, "a" => -6,
-      "e" => -6, "i" => -6, "quotedblright" => 20, "quoteright" => 12,
-      "r" => -12, "u" => -12, "y" => -18, "z" => -6,
-    },
-    "D" => {
-      "V" => -65, "W" => -40, "Y" => -80, "a" => 6, "comma" => -20,
-      "e" => 6, "h" => -15, "o" => 6, "period" => -20,
-      "quotedblright" => -20, "quoteright" => -20, "y" => 18,
-    },
-    "E" => {
-      "a" => 10, "comma" => 15, "d" => 10, "g" => -12, "i" => -12,
-      "j" => -6, "l" => -6, "m" => -12, "n" => -12, "p" => -12,
-      "period" => 15, "q" => 10, "quoteright" => 10, "r" => -6,
-      "s" => -6, "t" => -18, "u" => -24, "v" => -18, "w" => -30,
-      "x" => 15, "y" => -24, "z" => -6,
-    },
-    "F" => {
-      "A" => -45, "a" => -30, "comma" => -110, "e" => -24, "i" => -6,
-      "o" => -24, "period" => -120, "quotedblright" => 35,
-      "quoteright" => 40, "r" => -12, "u" => -24, "y" => -12,
-    },
-    "G" => {
-      "e" => 5, "h" => -18, "i" => -12, "l" => -24, "n" => -22,
-      "quotedblright" => -30, "quoteright" => -30, "r" => -22,
-      "u" => -22, "y" => -25,
-    },
-    "H" => {
-      "a" => -25, "e" => -25, "i" => -25, "o" => -25, "u" => -30,
-      "y" => -18,
-    },
-    "I" => {
-      "a" => -15, "b" => -6, "c" => -25, "d" => -15, "e" => -25,
-      "f" => -6, "g" => -24, "i" => -10, "j" => -20, "k" => -6,
-      "l" => -6, "m" => -18, "n" => -18, "o" => -25, "p" => -18,
-      "r" => -12, "s" => -18, "t" => -18, "u" => -30, "v" => -30,
-      "w" => -30, "x" => -6, "y" => -6, "z" => -20,
-    },
-    "J" => {
-      "a" => -36, "braceright" => 15, "e" => -30, "i" => -30,
-      "o" => -36, "quotedblright" => 6, "quoteright" => 6, "u" => -32,
-      "y" => -12,
-    },
-    "K" => {
-      "A" => 15, "C" => -50, "G" => -50, "O" => -50, "Q" => -50,
-      "a" => -12, "e" => -30, "h" => 15, "i" => -12, "l" => 10,
-      "n" => -24, "o" => -30, "quotedblright" => 36,
-      "quoteright" => 36, "r" => -24, "u" => -30, "v" => -30,
-      "w" => -36, "y" => -70,
-    },
-    "L" => {
-      "A" => 40, "C" => -48, "G" => -48, "O" => -48, "Q" => -48,
-      "T" => -100, "U" => -42, "V" => -110, "W" => -78, "Y" => -80,
-      "i" => -18, "j" => -18, "l" => -16, "quotedblright" => -110,
-      "quoteright" => -110, "u" => -18, "w" => -30, "y" => -70,
-    },
-    "M" => {
-      "a" => -20, "c" => -25, "d" => -20, "e" => -25, "i" => -20,
-      "j" => -35, "n" => -20, "o" => -25, "quotedblright" => 6,
-      "quoteright" => 6, "u" => -24, "y" => -18,
-    },
-    "N" => {
-      "a" => -22, "e" => -16, "i" => -12, "o" => -18, "u" => -24,
-      "y" => -18,
-    },
-    "O" => {
-      "A" => -8, "T" => -42, "V" => -50, "W" => -35, "X" => -30,
-      "Y" => -70, "a" => 6, "comma" => -10, "d" => 6, "e" => 6,
-      "g" => -6, "h" => -10, "j" => -6, "k" => -10, "l" => -15,
-      "m" => -6, "n" => -6, "p" => -6, "period" => -10, "q" => 6,
-      "quotedblright" => -20, "quoteright" => -20, "r" => -6,
-      "s" => -6, "t" => -6, "u" => -6, "y" => 12, "z" => -6,
-    },
-    "P" => {
-      "A" => -70, "E" => -45, "H" => -45, "I" => -45, "a" => -40,
-      "comma" => -170, "e" => -24, "h" => -20, "l" => -20, "n" => -12,
-      "o" => -24, "period" => -170, "quoteright" => -12, "r" => -6,
-      "s" => -24, "t" => -6, "u" => -18, "y" => 6,
-    },
-    "Q" => {
-      "A" => -18, "T" => -36, "U" => -30, "V" => -50, "W" => -35,
-      "X" => -12, "Y" => -70, "a" => -6, "quotedblright" => -38,
-      "quoteright" => -20, "u" => -6,
-    },
-    "R" => {
-      "A" => 15, "C" => -8, "G" => -8, "O" => -8, "Q" => -8,
-      "T" => -18, "U" => -40, "V" => -35, "W" => -25, "X" => 15,
-      "Y" => -45, "e" => -12, "o" => -20, "quotedblright" => -22,
-      "quoteright" => -22, "u" => -12, "y" => -6,
-    },
-    "S" => {
-      "e" => -6, "h" => -12, "i" => -20, "j" => -25, "k" => -18,
-      "l" => -20, "m" => -24, "n" => -24, "p" => -18,
-      "quotedblright" => -50, "quoteright" => -38, "r" => -20,
-      "t" => -18, "u" => -18, "v" => -20, "w" => -30, "y" => -30,
-    },
-    "T" => {
-      "A" => -40, "C" => -6, "G" => -6, "O" => -6, "Q" => -6,
-      "T" => 40, "V" => 20, "W" => 30, "X" => 18, "Y" => 12,
-      "a" => -78, "braceright" => 30, "bracketright" => 20,
-      "comma" => -90, "e" => -78, "emdash" => -40, "endash" => -40,
-      "h" => 6, "hyphen" => -100, "i" => -22, "m" => -54, "o" => -78,
-      "parenright" => 25, "period" => -70, "quotedblright" => 36,
-      "quoteright" => 36, "r" => -54, "s" => -60, "semicolon" => -6,
-      "u" => -54, "w" => -54, "y" => -52, "z" => -48,
-    },
-    "U" => {
-      "A" => -40, "a" => -30, "b" => -6, "c" => -30, "d" => -30,
-      "f" => -10, "g" => -30, "h" => -6, "i" => -24, "k" => -12,
-      "l" => -12, "m" => -30, "n" => -30, "p" => -30, "r" => -30,
-      "s" => -40, "t" => -24, "v" => -20, "x" => -30, "z" => -18,
-    },
-    "V" => {
-      "A" => -70, "T" => 12, "a" => -80, "braceright" => 64,
-      "bracketright" => 64, "colon" => -18, "comma" => -110,
-      "e" => -55, "emdash" => -20, "endash" => -20, "hyphen" => -60,
-      "i" => 15, "o" => -55, "parenright" => 64, "period" => -110,
-      "quotedblright" => 60, "quoteright" => 46, "r" => -55,
-      "semicolon" => -45, "u" => -42, "y" => -34,
-    },
-    "W" => {
-      "A" => -45, "C" => -5, "G" => -5, "O" => -5, "Q" => -5,
-      "T" => 30, "a" => -60, "braceright" => 64, "bracketright" => 64,
-      "colon" => -12, "comma" => -80, "d" => -60, "e" => -55,
-      "h" => 16, "hyphen" => -40, "i" => 5, "m" => -30, "o" => -55,
-      "parenright" => 55, "period" => -80, "quotedblright" => 55,
-      "quoteright" => 42, "r" => -30, "semicolon" => -12, "t" => -10,
-      "u" => -30, "y" => -36,
-    },
-    "X" => {
-      "C" => -45, "G" => -45, "O" => -45, "Q" => -45, "W" => -6,
-      "Y" => -6, "a" => -6, "e" => -18, "i" => -6,
-      "quotedblright" => 40, "quoteright" => 24, "r" => -6, "u" => -30,
-      "y" => -40,
-    },
-    "Y" => {
-      "A" => -40, "C" => -25, "G" => -25, "O" => -25, "Q" => -25,
-      "T" => 30, "V" => 6, "W" => 12, "X" => 12, "Y" => 12, "a" => -85,
-      "braceright" => 64, "bracketright" => 64, "colon" => -20,
-      "comma" => -80, "d" => -85, "e" => -95, "emdash" => -40,
-      "endash" => -40, "hyphen" => -110, "i" => 15, "l" => 15,
-      "o" => -95, "parenright" => 5, "period" => -80, "q" => -100,
-      "quotedblright" => 70, "quoteright" => 56, "semicolon" => -20,
-      "t" => -32, "u" => -70, "v" => -60,
-    },
-    "Z" => {
-      "A" => 30, "C" => -20, "G" => -20, "O" => -20, "Q" => -20,
-      "a" => -6, "e" => -6, "i" => -12, "o" => -6,
-      "quotedblright" => 18, "quoteright" => 18, "u" => -12,
-      "w" => -36, "y" => -36,
-    },
-    "a" => {
-      "quotedblright" => -54, "quoteright" => -54,
-    },
-    "b" => {
-      "comma" => -15, "period" => -15, "quotedblright" => -30,
-      "quoteright" => -30, "v" => -5, "w" => -5, "y" => -6,
-    },
-    "braceleft" => {
-      "J" => 60, "T" => 40, "V" => 64, "W" => 64, "Y" => 64,
-    },
-    "bracketleft" => {
-      "J" => 30, "T" => 35, "V" => 64, "W" => 64, "Y" => 60,
-    },
-    "c" => {
-      "quotedblright" => 5, "quoteright" => 5,
-    },
-    "colon" => {
-      "space" => -30,
-    },
-    "comma" => {
-      "quotedblright" => -100, "quoteright" => -100, "space" => -40,
-    },
-    "d" => {
-      "comma" => 15, "period" => 15, "quotedblright" => -12,
-      "quoteright" => -12,
-    },
-    "e" => {
-      "quotedblright" => -25, "quoteright" => -25, "v" => -10,
-      "w" => -10, "x" => -10, "y" => 6,
-    },
-    "f" => {
-      "braceright" => 110, "bracketright" => 110, "comma" => -30,
-      "parenright" => 100, "period" => -30, "quotedblright" => 120,
-      "quoteright" => 120,
-    },
-    "g" => {
-      "comma" => 20, "f" => 42, "p" => 30, "quotedblright" => -20,
-      "y" => 50,
-    },
-    "h" => {
-      "quotedblright" => -78, "quoteright" => -78,
-    },
-    "i" => {
-      "quotedblright" => -20, "quoteright" => -20,
-    },
-    "j" => {
-      "comma" => -20, "period" => -20, "quotedblright" => -20,
-      "quoteright" => -20,
-    },
-    "k" => {
-      "quotedblright" => -38, "quoteright" => -38,
-    },
-    "l" => {
-      "quotedblright" => -12, "quoteright" => -12,
-    },
-    "m" => {
-      "quotedblright" => -78, "quoteright" => -78,
-    },
-    "n" => {
-      "quotedblright" => -88, "quoteright" => -88,
-    },
-    "o" => {
-      "comma" => -10, "period" => -10, "quotedblright" => -50,
-      "quoteright" => -50, "v" => -25, "w" => -25, "x" => -20,
-      "y" => -12,
-    },
-    "p" => {
-      "comma" => -15, "period" => -15, "quotedblright" => -52,
-      "quoteright" => -30, "w" => -6,
-    },
-    "parenleft" => {
-      "J" => 50, "T" => 30, "V" => 64, "W" => 64, "Y" => 64,
-    },
-    "period" => {
-      "quotedblright" => -100, "quoteright" => -100, "space" => -40,
-    },
-    "q" => {
-      "comma" => -5, "period" => -10, "quotedblright" => -40,
-      "quoteright" => -40,
-    },
-    "quotedblleft" => {
-      "A" => -100, "T" => 36, "V" => 40, "W" => 55, "X" => 45,
-      "Y" => 30, "a" => -50, "b" => 24, "c" => -30, "d" => -50,
-      "e" => -30, "g" => -30, "h" => 10, "k" => 10, "l" => 10,
-      "m" => -12, "n" => -12, "o" => -30, "p" => -12, "q" => -50,
-      "r" => -12, "s" => -30, "t" => 5, "u" => -12, "v" => -12,
-      "w" => -12, "x" => -60, "z" => -30,
-    },
-    "quotedblright" => {
-      "comma" => -200, "period" => -200, "space" => -50,
-    },
-    "quoteleft" => {
-      "A" => -100, "T" => 36, "V" => 28, "W" => 46, "X" => 46,
-      "Y" => 12, "a" => -30, "b" => 24, "c" => -30, "d" => -30,
-      "e" => -30, "g" => -30, "h" => 10, "k" => 10, "l" => 10,
-      "m" => -12, "n" => -12, "o" => -30, "p" => -12, "q" => -30,
-      "r" => -12, "s" => -30, "t" => -30, "u" => -12, "w" => -12,
-      "x" => -10, "y" => 30, "z" => -30,
-    },
-    "quoteright" => {
-      "comma" => -140, "d" => -65, "l" => -12, "m" => -12,
-      "period" => -140, "r" => -12, "s" => -45, "space" => -50,
-      "v" => -20,
-    },
-    "r" => {
-      "a" => -25, "c" => -12, "colon" => 20, "comma" => -100,
-      "d" => -25, "e" => -26, "endash" => -20, "f" => 8, "h" => -10,
-      "hyphen" => -40, "k" => -12, "l" => -12, "o" => -6,
-      "period" => -100, "q" => -24, "quotedblright" => -6,
-      "quoteright" => -6, "semicolon" => 20, "t" => 8, "v" => 6,
-      "w" => 6, "x" => 12, "y" => 18, "z" => 20,
-    },
-    "s" => {
-      "quotedblright" => -30, "quoteright" => -25,
-    },
-    "semicolon" => {
-      "space" => -30,
-    },
-    "space" => {
-      "A" => -50, "T" => -50, "V" => -70, "W" => -50, "Y" => -70,
-      "quotedblbase" => -60, "quotedblleft" => -60, "quoteleft" => -60,
-      "quotesinglbase" => -60,
-    },
-    "t" => {
-      "comma" => 15, "period" => 15, "quotedblright" => 15,
-      "quoteright" => 15,
-    },
-    "u" => {
-      "comma" => 20, "period" => 20, "quotedblright" => -78,
-      "quoteright" => -65,
-    },
-    "v" => {
-      "a" => -6, "c" => -6, "comma" => -62, "d" => -6, "e" => -6,
-      "o" => -6, "period" => -62, "q" => -6, "quotedblright" => -10,
-      "quoteright" => -10,
-    },
-    "w" => {
-      "comma" => -50, "period" => -40, "quotedblright" => -10,
-      "quoteright" => -10,
-    },
-    "x" => {
-      "c" => -6, "d" => -6, "e" => -6, "o" => -6, "q" => -6,
-      "quotedblright" => -30, "quoteright" => -30, "w" => -6,
-      "y" => 12,
-    },
-    "y" => {
-      "comma" => -56, "d" => -10, "period" => -56, "q" => -10,
-      "quotedblright" => -10, "quoteright" => -10,
-    },
-    "z" => {
-      "c" => -6, "d" => -6, "e" => -6, "o" => -6,
-      "quotedblright" => -40, "quoteright" => -40,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/putr8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,382 +0,0 @@
-%PS_Utopia_Regular = (
-  name => 'Utopia-Regular',
-  widths => {
-    "A" => 635, "AE" => 876, "Aacute" => 635, "Acircumflex" => 635,
-    "Adieresis" => 635, "Agrave" => 635, "Aring" => 627,
-    "Atilde" => 635, "B" => 646, "C" => 684, "Ccedilla" => 680,
-    "D" => 779, "E" => 606, "Eacute" => 606, "Ecircumflex" => 606,
-    "Edieresis" => 606, "Egrave" => 606, "Eth" => 785, "F" => 580,
-    "G" => 734, "H" => 798, "I" => 349, "Iacute" => 349,
-    "Icircumflex" => 349, "Idieresis" => 349, "Igrave" => 349,
-    "J" => 350, "K" => 658, "L" => 568, "Lslash" => 574, "M" => 944,
-    "N" => 780, "Ntilde" => 780, "O" => 762, "OE" => 1025,
-    "Oacute" => 762, "Ocircumflex" => 762, "Odieresis" => 762,
-    "Ograve" => 762, "Oslash" => 762, "Otilde" => 762, "P" => 600,
-    "Q" => 762, "R" => 644, "S" => 541, "Scaron" => 541, "T" => 621,
-    "Thorn" => 593, "U" => 791, "Uacute" => 791, "Ucircumflex" => 791,
-    "Udieresis" => 791, "Ugrave" => 791, "V" => 634, "W" => 940,
-    "X" => 624, "Y" => 588, "Yacute" => 588, "Ydieresis" => 588,
-    "Z" => 610, "Zcaron" => 610, "a" => 523, "aacute" => 523,
-    "acircumflex" => 523, "acute" => 400, "adieresis" => 523,
-    "ae" => 797, "agrave" => 523, "ampersand" => 706, "aring" => 523,
-    "asciicircum" => 570, "asciitilde" => 570, "asterisk" => 412,
-    "at" => 793, "atilde" => 523, "b" => 598, "backslash" => 460,
-    "bar" => 228, "braceleft" => 340, "braceright" => 340,
-    "bracketleft" => 330, "bracketright" => 330, "breve" => 400,
-    "brokenbar" => 228, "bullet" => 409, "c" => 496, "caron" => 400,
-    "ccedilla" => 496, "cedilla" => 400, "cent" => 530,
-    "circumflex" => 400, "colon" => 265, "comma" => 265,
-    "copyright" => 818, "currency" => 530, "d" => 598, "dagger" => 504,
-    "daggerdbl" => 488, "degree" => 350, "dieresis" => 400,
-    "divide" => 570, "dollar" => 530, "dotaccent" => 400,
-    "dotlessi" => 291, "e" => 514, "eacute" => 514,
-    "ecircumflex" => 514, "edieresis" => 514, "egrave" => 514,
-    "eight" => 530, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 570, "eth" => 577, "exclam" => 242,
-    "exclamdown" => 242, "f" => 319, "fi" => 610, "five" => 530,
-    "fl" => 610, "florin" => 530, "four" => 530, "fraction" => 150,
-    "g" => 520, "germandbls" => 601, "grave" => 400, "greater" => 570,
-    "guillemotleft" => 442, "guillemotright" => 442,
-    "guilsinglleft" => 257, "guilsinglright" => 257, "h" => 607,
-    "hungarumlaut" => 400, "hyphen" => 392, "i" => 291,
-    "iacute" => 291, "icircumflex" => 291, "idieresis" => 291,
-    "igrave" => 291, "j" => 280, "k" => 524, "l" => 279, "less" => 570,
-    "logicalnot" => 570, "lslash" => 294, "m" => 923, "macron" => 400,
-    "minus" => 570, "mu" => 606, "multiply" => 570, "n" => 619,
-    "nine" => 530, "ntilde" => 619, "numbersign" => 530, "o" => 577,
-    "oacute" => 577, "ocircumflex" => 577, "odieresis" => 577,
-    "oe" => 882, "ogonek" => 400, "ograve" => 577, "one" => 530,
-    "onehalf" => 860, "onequarter" => 860, "onesuperior" => 380,
-    "ordfeminine" => 390, "ordmasculine" => 398, "oslash" => 577,
-    "otilde" => 577, "p" => 608, "paragraph" => 555,
-    "parenleft" => 350, "parenright" => 350, "percent" => 838,
-    "period" => 265, "periodcentered" => 265, "perthousand" => 1208,
-    "plus" => 570, "plusminus" => 570, "q" => 591, "question" => 389,
-    "questiondown" => 389, "quotedbl" => 458, "quotedblbase" => 458,
-    "quotedblleft" => 458, "quotedblright" => 458, "quoteleft" => 278,
-    "quoteright" => 278, "quotesinglbase" => 278, "quotesingle" => 278,
-    "r" => 389, "registered" => 818, "ring" => 400, "s" => 436,
-    "scaron" => 436, "section" => 554, "semicolon" => 265,
-    "seven" => 530, "six" => 530, "slash" => 460, "space" => 225,
-    "sterling" => 530, "t" => 344, "thorn" => 606, "three" => 530,
-    "threequarters" => 860, "threesuperior" => 380, "tilde" => 400,
-    "trademark" => 1100, "two" => 530, "twosuperior" => 380,
-    "u" => 606, "uacute" => 606, "ucircumflex" => 606,
-    "udieresis" => 606, "ugrave" => 606, "underscore" => 500,
-    "v" => 504, "w" => 768, "x" => 486, "y" => 506, "yacute" => 506,
-    "ydieresis" => 506, "yen" => 530, "z" => 480, "zcaron" => 480,
-    "zero" => 530,
-  },
-  kern => {
-    "A" => {
-      "C" => -24, "G" => -24, "O" => -24, "Q" => -24, "T" => -70,
-      "U" => -50, "V" => -72, "W" => -58, "X" => -6, "Y" => -70,
-      "b" => -12, "c" => -12, "d" => -12, "e" => -6, "o" => -12,
-      "p" => -18, "q" => -6, "quotedblright" => -120,
-      "quoteright" => -120, "t" => -12, "u" => -25, "v" => -60,
-      "w" => -45, "y" => -50, "z" => 6,
-    },
-    "B" => {
-      "T" => -20, "U" => -20, "V" => -20, "W" => -25, "a" => -12,
-      "comma" => -20, "e" => -6, "h" => -12, "i" => -12, "l" => -12,
-      "o" => -6, "period" => -30, "r" => -12, "u" => -12, "y" => -18,
-    },
-    "C" => {
-      "C" => -6, "G" => -6, "O" => -6, "Q" => -6, "a" => -12,
-      "e" => -12, "o" => -12, "r" => -6, "u" => -18, "y" => -24,
-      "z" => -18,
-    },
-    "D" => {
-      "V" => -35, "W" => -35, "Y" => -45, "a" => -6, "comma" => -50,
-      "e" => -6, "h" => -12, "i" => -6, "period" => -60,
-      "quotedblright" => -20, "quoteright" => -20, "r" => -12,
-      "u" => -12, "y" => 6,
-    },
-    "E" => {
-      "V" => -6, "W" => -6, "Y" => -6, "b" => -12, "c" => -6,
-      "d" => -6, "e" => -6, "f" => -12, "g" => -6, "i" => -6,
-      "j" => -6, "k" => 5, "l" => 5, "m" => -4, "n" => -4, "o" => -6,
-      "p" => -18, "q" => -6, "r" => -4, "t" => -18, "u" => -12,
-      "v" => -24, "w" => -24, "x" => -6, "y" => -30, "z" => -6,
-    },
-    "F" => {
-      "A" => -60, "a" => -48, "comma" => -180, "e" => -36,
-      "endash" => 20, "i" => -10, "l" => -12, "o" => -36,
-      "period" => -180, "r" => -20, "u" => -12, "y" => -18,
-    },
-    "G" => {
-      "a" => -12, "e" => 5, "h" => -12, "i" => -12, "l" => -6,
-      "n" => -5, "o" => 5, "r" => -5, "u" => -12, "y" => -18,
-    },
-    "H" => {
-      "a" => -24, "e" => -30, "i" => -18, "o" => -30, "u" => -26,
-      "y" => -24,
-    },
-    "I" => {
-      "a" => -24, "b" => -6, "c" => -30, "d" => -30, "e" => -30,
-      "f" => -6, "g" => -10, "h" => -6, "k" => -6, "l" => -6,
-      "m" => -18, "n" => -18, "o" => -30, "p" => -26, "r" => -12,
-      "s" => -18, "t" => -24, "u" => -26, "v" => -24, "w" => -18,
-      "x" => -6, "y" => -6, "z" => -6,
-    },
-    "J" => {
-      "a" => -36, "braceright" => 20, "bracketright" => 20, "e" => -30,
-      "i" => -20, "o" => -30, "u" => -36, "y" => -12,
-    },
-    "K" => {
-      "C" => -42, "G" => -42, "O" => -42, "Q" => -42, "a" => -12,
-      "e" => -24, "i" => 6, "o" => -30, "u" => -42, "v" => -70,
-      "w" => -70, "y" => -60,
-    },
-    "L" => {
-      "A" => 12, "C" => -18, "G" => -18, "O" => -10, "Q" => -18,
-      "T" => -100, "U" => -24, "V" => -100, "W" => -90, "Y" => -70,
-      "j" => -6, "l" => 6, "quotedblright" => -50,
-      "quoteright" => -130, "u" => -12, "w" => -58, "y" => -52,
-    },
-    "M" => {
-      "a" => -12, "c" => -30, "d" => -30, "e" => -30, "i" => -12,
-      "j" => -12, "n" => -6, "o" => -30, "u" => -36, "y" => -24,
-    },
-    "N" => {
-      "a" => -30, "e" => -30, "i" => -24, "o" => -30, "u" => -30,
-      "y" => -24,
-    },
-    "O" => {
-      "A" => -18, "T" => -30, "V" => -18, "W" => -30, "X" => -24,
-      "Y" => -55, "a" => -12, "c" => -6, "comma" => -50, "d" => -6,
-      "e" => -6, "g" => -6, "h" => -12, "i" => -5, "k" => -6,
-      "l" => -6, "m" => -5, "n" => -5, "o" => -6, "p" => -6,
-      "period" => -60, "q" => -6, "s" => -6, "t" => -6, "u" => -6,
-      "z" => -6,
-    },
-    "P" => {
-      "A" => -55, "E" => -6, "H" => -12, "I" => -6, "a" => -36,
-      "comma" => -200, "e" => -30, "h" => -6, "hyphen" => -40,
-      "l" => -6, "n" => -12, "o" => -30, "period" => -200, "r" => -12,
-      "s" => -24, "t" => -6, "u" => -12,
-    },
-    "Q" => {
-      "A" => -18, "T" => -24, "U" => -30, "V" => -18, "W" => -24,
-      "X" => -24, "Y" => -30, "a" => -18, "u" => -6,
-    },
-    "R" => {
-      "C" => -24, "G" => -24, "O" => -24, "Q" => -24, "T" => -32,
-      "U" => -30, "V" => -32, "W" => -24, "Y" => -45, "a" => -12,
-      "d" => -20, "e" => -20, "hyphen" => -30, "o" => -20,
-      "quotedblright" => -20, "quoteright" => -20, "u" => -12,
-      "y" => -20,
-    },
-    "S" => {
-      "a" => -18, "e" => -12, "h" => -12, "i" => -20, "j" => -12,
-      "k" => -24, "l" => -18, "m" => -20, "n" => -20, "o" => -12,
-      "p" => -24, "q" => -5, "quotedblright" => -10,
-      "quoteright" => -10, "r" => -20, "t" => -24, "u" => -24,
-      "v" => -30, "w" => -30, "y" => -25,
-    },
-    "T" => {
-      "A" => -65, "C" => -18, "G" => -18, "O" => -18, "Q" => -18,
-      "S" => -12, "T" => 12, "V" => 6, "W" => 6, "X" => 18, "Y" => 12,
-      "a" => -100, "braceright" => 54, "bracketright" => 54,
-      "colon" => -50, "comma" => -110, "e" => -100, "emdash" => -50,
-      "endash" => -50, "hyphen" => -100, "i" => -34, "m" => -82,
-      "o" => -100, "parenright" => 54, "period" => -110,
-      "quoteright" => 24, "r" => -82, "s" => -82, "semicolon" => -56,
-      "u" => -82, "w" => -100, "y" => -84, "z" => -64,
-    },
-    "U" => {
-      "A" => -40, "a" => -40, "b" => -12, "c" => -45, "d" => -45,
-      "f" => -12, "g" => -50, "h" => -6, "i" => -28, "k" => -12,
-      "l" => -12, "m" => -40, "n" => -40, "p" => -42, "r" => -40,
-      "s" => -40, "t" => -36, "v" => -20, "x" => -30, "y" => -20,
-      "z" => -30,
-    },
-    "V" => {
-      "A" => -60, "C" => -12, "G" => -12, "O" => -12, "Q" => -12,
-      "T" => 6, "a" => -60, "braceright" => 64, "bracketright" => 64,
-      "colon" => -45, "comma" => -140, "e" => -70, "emdash" => -20,
-      "endash" => -20, "hyphen" => -60, "i" => 6, "o" => -70,
-      "parenright" => 85, "period" => -140, "quotedblright" => 20,
-      "quoteright" => 36, "r" => -70, "semicolon" => -45, "u" => -40,
-      "y" => -36,
-    },
-    "W" => {
-      "A" => -48, "C" => -6, "G" => -6, "O" => -6, "Q" => -6,
-      "T" => 18, "a" => -60, "braceright" => 64, "bracketright" => 64,
-      "colon" => -40, "comma" => -100, "d" => -65, "e" => -65,
-      "hyphen" => -40, "i" => -10, "m" => -45, "o" => -65,
-      "parenright" => 85, "period" => -110, "quotedblright" => 20,
-      "quoteright" => 36, "r" => -45, "semicolon" => -40, "u" => -46,
-      "y" => -50,
-    },
-    "X" => {
-      "A" => 6, "C" => -30, "G" => -30, "O" => -30, "Q" => -24,
-      "a" => -6, "e" => -6, "quoteright" => 15, "u" => -24, "y" => -18,
-    },
-    "Y" => {
-      "A" => -32, "C" => -18, "G" => -18, "O" => -18, "Q" => -18,
-      "T" => 12, "V" => 12, "W" => 12, "X" => 12, "Y" => 12,
-      "a" => -68, "braceright" => 64, "bracketright" => 64,
-      "colon" => -50, "comma" => -90, "d" => -90, "e" => -90,
-      "emdash" => -20, "hyphen" => -50, "l" => 10, "o" => -90,
-      "parenright" => 60, "period" => -90, "q" => -100,
-      "quotedblright" => 20, "quoteright" => 36, "semicolon" => -37,
-      "t" => -46, "u" => -54, "v" => -50,
-    },
-    "Z" => {
-      "A" => 20, "C" => -20, "G" => -30, "O" => -20, "Q" => -20,
-      "a" => -6, "e" => -6, "i" => -12, "o" => -12, "u" => -6,
-      "w" => -36, "y" => -36,
-    },
-    "a" => {
-      "quotedblright" => -80, "quoteright" => -70,
-    },
-    "b" => {
-      "comma" => -40, "period" => -40, "quotedblright" => -70,
-      "quoteright" => -70, "v" => -35, "w" => -30, "y" => -25,
-    },
-    "braceleft" => {
-      "J" => 80, "T" => 54, "V" => 64, "W" => 64, "Y" => 64,
-    },
-    "bracketleft" => {
-      "J" => 80, "T" => 54, "V" => 64, "W" => 64, "Y" => 64,
-    },
-    "c" => {
-      "period" => -10, "quotedblright" => -28, "quoteright" => -28,
-    },
-    "comma" => {
-      "quotedblright" => -50, "quoteright" => -50,
-    },
-    "d" => {
-      "quotedblright" => -24, "quoteright" => -24,
-    },
-    "e" => {
-      "comma" => -20, "period" => -20, "quotedblright" => -60,
-      "quoteright" => -60, "z" => -4,
-    },
-    "f" => {
-      "braceright" => 100, "bracketright" => 100, "parenright" => 100,
-      "quotedbl" => 30, "quotedblright" => 56, "quoteright" => 65,
-      "quotesingle" => 30,
-    },
-    "g" => {
-      "quotedblright" => -10, "quoteright" => -18,
-    },
-    "h" => {
-      "quotedblright" => -80, "quoteright" => -80,
-    },
-    "j" => {
-      "comma" => -30, "period" => -30, "quotedblright" => -20,
-      "quoteright" => -20,
-    },
-    "k" => {
-      "quotedblright" => -40, "quoteright" => -40,
-    },
-    "l" => {
-      "quotedblright" => -10, "quoteright" => -10,
-    },
-    "m" => {
-      "quotedblright" => -80, "quoteright" => -80,
-    },
-    "n" => {
-      "quotedblright" => -80, "quoteright" => -80,
-    },
-    "o" => {
-      "comma" => -40, "period" => -40, "quotedblright" => -70,
-      "quoteright" => -70, "v" => -30, "w" => -30, "x" => -18,
-      "y" => -30, "z" => -12,
-    },
-    "p" => {
-      "comma" => -40, "period" => -40, "quotedblright" => -70,
-      "quoteright" => -70, "w" => -30, "y" => -25, "z" => -20,
-    },
-    "parenleft" => {
-      "J" => 80, "T" => 64, "V" => 64, "W" => 64, "Y" => 64,
-    },
-    "period" => {
-      "quotedblright" => -50, "quoteright" => -50,
-    },
-    "q" => {
-      "comma" => -10, "period" => -20, "quotedblright" => -50,
-      "quoteright" => -50,
-    },
-    "quotedblleft" => {
-      "A" => -130, "B" => -20, "C" => -30, "D" => -20, "E" => -20,
-      "F" => -20, "G" => -30, "H" => -20, "I" => -20, "J" => -40,
-      "K" => -20, "L" => -20, "M" => -20, "N" => -20, "O" => -30,
-      "P" => -20, "Q" => -20, "R" => -20, "S" => -20, "T" => 10,
-      "U" => -20, "V" => 18, "W" => 18, "Y" => 12, "Z" => -20,
-      "a" => -70, "c" => -80, "d" => -80, "e" => -80, "f" => -50,
-      "g" => -70, "m" => -50, "n" => -50, "o" => -80, "p" => -50,
-      "q" => -80, "r" => -50, "s" => -50, "t" => -40, "u" => -40,
-      "v" => -20, "w" => -20, "x" => -40, "y" => -30, "z" => -60,
-    },
-    "quotedblright" => {
-      "comma" => -130, "period" => -130,
-    },
-    "quoteleft" => {
-      "A" => -130, "B" => -20, "C" => -30, "D" => -20, "E" => -20,
-      "F" => -20, "G" => -40, "H" => -20, "I" => -20, "J" => -40,
-      "K" => -20, "L" => -20, "M" => -20, "N" => -20, "O" => -30,
-      "P" => -20, "Q" => -20, "R" => -20, "T" => 10, "U" => -20,
-      "V" => 18, "W" => 18, "X" => 12, "Y" => 18, "Z" => -20,
-      "a" => -60, "c" => -70, "d" => -70, "e" => -70, "f" => -40,
-      "g" => -65, "m" => -50, "n" => -50, "o" => -70, "p" => -50,
-      "q" => -70, "quoteleft" => -72, "r" => -50, "s" => -45,
-      "t" => -40, "u" => -50, "v" => -20, "w" => -20, "x" => -30,
-      "y" => -35, "z" => -40,
-    },
-    "quoteright" => {
-      "comma" => -130, "d" => -120, "l" => -6, "m" => -70,
-      "period" => -130, "quoteright" => -72, "r" => -70, "s" => -110,
-      "t" => -75, "v" => -40,
-    },
-    "r" => {
-      "a" => -10, "c" => -20, "colon" => 10, "comma" => -60,
-      "d" => -20, "e" => -20, "f" => 8, "g" => -6, "h" => 6,
-      "hyphen" => -20, "i" => 8, "k" => -6, "m" => 8, "n" => 8,
-      "o" => -6, "period" => -60, "q" => -6, "quotedblright" => -20,
-      "quoteright" => -20, "semicolon" => 10, "t" => 8, "u" => 8,
-      "v" => 18, "w" => 18, "x" => 12, "y" => 18, "z" => 10,
-    },
-    "s" => {
-      "comma" => -10, "period" => -20, "quotedblright" => -40,
-      "quoteright" => -40,
-    },
-    "space" => {
-      "T" => -36, "V" => -60, "W" => -60, "Y" => -60,
-      "quotedblbase" => -60, "quotedblleft" => -40, "quoteleft" => -40,
-      "quotesinglbase" => -60,
-    },
-    "t" => {
-      "quotedblright" => -18, "quoteright" => -18,
-    },
-    "u" => {
-      "quotedblright" => -30, "quoteright" => -30,
-    },
-    "v" => {
-      "a" => -6, "c" => -6, "colon" => 10, "comma" => -90, "d" => -10,
-      "e" => -5, "o" => -5, "period" => -90, "q" => -10,
-      "quotedblright" => 20, "quoteright" => 20, "semicolon" => 10,
-    },
-    "w" => {
-      "c" => -6, "colon" => 10, "comma" => -75, "d" => -6, "e" => -6,
-      "period" => -80, "q" => -6, "quotedblright" => 20,
-      "quoteright" => 20, "semicolon" => 10,
-    },
-    "x" => {
-      "c" => -12, "d" => -12, "o" => -6, "q" => -6,
-      "quotedblright" => -20, "quoteright" => -10,
-    },
-    "y" => {
-      "c" => -6, "colon" => 10, "comma" => -85, "d" => -6, "e" => -6,
-      "hyphen" => -30, "o" => -6, "period" => -95, "q" => -6,
-      "semicolon" => 10,
-    },
-    "z" => {
-      "c" => -6, "d" => -6, "e" => -6, "o" => -6,
-      "quotedblright" => -30, "quoteright" => -20,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/putri8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,387 +0,0 @@
-%PS_Utopia_Italic = (
-  name => 'Utopia-Italic',
-  widths => {
-    "A" => 624, "AE" => 880, "Aacute" => 624, "Acircumflex" => 624,
-    "Adieresis" => 624, "Agrave" => 624, "Aring" => 624,
-    "Atilde" => 624, "B" => 632, "C" => 661, "Ccedilla" => 661,
-    "D" => 763, "E" => 596, "Eacute" => 596, "Ecircumflex" => 596,
-    "Edieresis" => 596, "Egrave" => 596, "Eth" => 770, "F" => 571,
-    "G" => 709, "H" => 775, "I" => 345, "Iacute" => 345,
-    "Icircumflex" => 345, "Idieresis" => 345, "Igrave" => 345,
-    "J" => 352, "K" => 650, "L" => 565, "Lslash" => 571, "M" => 920,
-    "N" => 763, "Ntilde" => 763, "O" => 753, "OE" => 1020,
-    "Oacute" => 753, "Ocircumflex" => 753, "Odieresis" => 753,
-    "Ograve" => 753, "Oslash" => 753, "Otilde" => 753, "P" => 614,
-    "Q" => 753, "R" => 640, "S" => 533, "Scaron" => 533, "T" => 606,
-    "Thorn" => 604, "U" => 794, "Uacute" => 794, "Ucircumflex" => 794,
-    "Udieresis" => 794, "Ugrave" => 794, "V" => 637, "W" => 946,
-    "X" => 632, "Y" => 591, "Yacute" => 591, "Ydieresis" => 591,
-    "Z" => 622, "Zcaron" => 622, "a" => 561, "aacute" => 561,
-    "acircumflex" => 561, "acute" => 400, "adieresis" => 561,
-    "ae" => 779, "agrave" => 561, "ampersand" => 725, "aring" => 561,
-    "asciicircum" => 570, "asciitilde" => 570, "asterisk" => 412,
-    "at" => 794, "atilde" => 561, "b" => 559, "backslash" => 390,
-    "bar" => 270, "braceleft" => 340, "braceright" => 340,
-    "bracketleft" => 330, "bracketright" => 330, "breve" => 400,
-    "brokenbar" => 270, "bullet" => 500, "c" => 441, "caron" => 400,
-    "ccedilla" => 441, "cedilla" => 400, "cent" => 530,
-    "circumflex" => 400, "colon" => 265, "comma" => 265,
-    "copyright" => 836, "currency" => 530, "d" => 587, "dagger" => 500,
-    "daggerdbl" => 490, "degree" => 400, "dieresis" => 400,
-    "divide" => 570, "dollar" => 530, "dotaccent" => 402,
-    "dotlessi" => 317, "e" => 453, "eacute" => 453,
-    "ecircumflex" => 453, "edieresis" => 453, "egrave" => 453,
-    "eight" => 530, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 570, "eth" => 537, "exclam" => 240,
-    "exclamdown" => 240, "f" => 315, "fi" => 607, "five" => 530,
-    "fl" => 603, "florin" => 530, "four" => 530, "fraction" => 100,
-    "g" => 499, "germandbls" => 577, "grave" => 400, "greater" => 570,
-    "guillemotleft" => 462, "guillemotright" => 462,
-    "guilsinglleft" => 277, "guilsinglright" => 277, "h" => 607,
-    "hungarumlaut" => 400, "hyphen" => 392, "i" => 317,
-    "iacute" => 317, "icircumflex" => 317, "idieresis" => 317,
-    "igrave" => 317, "j" => 309, "k" => 545, "l" => 306, "less" => 570,
-    "logicalnot" => 570, "lslash" => 318, "m" => 912, "macron" => 400,
-    "minus" => 570, "mu" => 618, "multiply" => 570, "n" => 618,
-    "nine" => 530, "ntilde" => 618, "numbersign" => 530, "o" => 537,
-    "oacute" => 537, "ocircumflex" => 537, "odieresis" => 537,
-    "oe" => 806, "ogonek" => 350, "ograve" => 537, "one" => 530,
-    "onehalf" => 890, "onequarter" => 890, "onesuperior" => 370,
-    "ordfeminine" => 425, "ordmasculine" => 389, "oslash" => 537,
-    "otilde" => 537, "p" => 590, "paragraph" => 560,
-    "parenleft" => 350, "parenright" => 350, "percent" => 826,
-    "period" => 265, "periodcentered" => 265, "perthousand" => 1200,
-    "plus" => 570, "plusminus" => 570, "q" => 559, "question" => 425,
-    "questiondown" => 425, "quotedbl" => 402, "quotedblbase" => 402,
-    "quotedblleft" => 402, "quotedblright" => 402, "quoteleft" => 216,
-    "quoteright" => 216, "quotesinglbase" => 216, "quotesingle" => 216,
-    "r" => 402, "registered" => 836, "ring" => 400, "s" => 389,
-    "scaron" => 389, "section" => 530, "semicolon" => 265,
-    "seven" => 530, "six" => 530, "slash" => 270, "space" => 225,
-    "sterling" => 530, "t" => 341, "thorn" => 584, "three" => 530,
-    "threequarters" => 890, "threesuperior" => 370, "tilde" => 400,
-    "trademark" => 1100, "two" => 530, "twosuperior" => 370,
-    "u" => 618, "uacute" => 618, "ucircumflex" => 618,
-    "udieresis" => 618, "ugrave" => 618, "underscore" => 500,
-    "v" => 510, "w" => 785, "x" => 516, "y" => 468, "yacute" => 468,
-    "ydieresis" => 468, "yen" => 530, "z" => 468, "zcaron" => 468,
-    "zero" => 530,
-  },
-  kern => {
-    "A" => {
-      "C" => -30, "G" => -30, "O" => -30, "Q" => -30, "T" => -72,
-      "U" => -60, "V" => -90, "W" => -80, "X" => -8, "Y" => -76,
-      "a" => 12, "b" => -6, "c" => -6, "d" => 10, "h" => -6, "j" => 6,
-      "l" => -18, "m" => -18, "n" => -18, "o" => -10, "p" => -12,
-      "q" => 10, "quotedblright" => -110, "quoteright" => -110,
-      "r" => -12, "s" => 15, "t" => -6, "u" => -10, "v" => -30,
-      "w" => -30, "x" => 10, "y" => -20,
-    },
-    "B" => {
-      "T" => -20, "U" => -50, "V" => -50, "W" => -20, "a" => 12,
-      "e" => 6, "h" => -15, "i" => -12, "k" => -15, "l" => -20,
-      "o" => 6, "quotedblright" => -30, "quoteright" => -40,
-      "r" => -15, "u" => -20, "y" => -6,
-    },
-    "C" => {
-      "a" => -6, "e" => -6, "i" => -5, "quotedblright" => 20,
-      "u" => -18, "y" => -18, "z" => -6,
-    },
-    "D" => {
-      "V" => -60, "W" => -50, "Y" => -70, "a" => 6, "comma" => -20,
-      "e" => 6, "h" => -25, "i" => 6, "o" => 6, "period" => -30,
-      "quotedblright" => -50, "quoteright" => -40, "u" => -10,
-      "y" => 18,
-    },
-    "E" => {
-      "b" => -6, "comma" => 10, "d" => 10, "e" => 5, "g" => -12,
-      "i" => -12, "j" => -6, "k" => -10, "l" => -12, "m" => -12,
-      "n" => -12, "o" => -6, "p" => -12, "period" => 10, "q" => 10,
-      "quotedblright" => 10, "quoteright" => 10, "r" => -6, "s" => 5,
-      "t" => -18, "u" => -24, "v" => -18, "w" => -20, "x" => 5,
-      "y" => -18, "z" => -6,
-    },
-    "F" => {
-      "A" => -45, "a" => -30, "comma" => -170, "e" => -30, "i" => -12,
-      "l" => -6, "o" => -30, "period" => -180, "quotedblright" => 35,
-      "quoteright" => 15, "r" => -18, "u" => -30, "y" => -12,
-    },
-    "G" => {
-      "a" => 5, "e" => 10, "h" => -18, "i" => -12, "l" => -24,
-      "n" => -22, "o" => 10, "quotedblright" => -20,
-      "quoteright" => -20, "r" => -22, "u" => -22, "y" => -16,
-    },
-    "H" => {
-      "a" => -12, "e" => -12, "i" => -12, "o" => -12,
-      "quotedblright" => 10, "quoteright" => 10, "u" => -30,
-      "y" => -18,
-    },
-    "I" => {
-      "a" => -6, "b" => -6, "c" => -12, "d" => -6, "f" => -6,
-      "g" => -12, "k" => -6, "l" => -6, "m" => -18, "n" => -18,
-      "o" => -12, "p" => -18, "quotedblright" => 10,
-      "quoteright" => 10, "r" => -12, "s" => -18, "t" => -18,
-      "u" => -30, "v" => -30, "w" => -30, "x" => -6, "y" => -6,
-      "z" => -20,
-    },
-    "J" => {
-      "a" => -36, "braceright" => 10, "e" => -36, "i" => -30,
-      "o" => -36, "quotedblright" => 15, "quoteright" => 6, "u" => -36,
-      "y" => -12,
-    },
-    "K" => {
-      "C" => -24, "G" => -24, "O" => -24, "Q" => -24, "a" => -6,
-      "e" => -12, "h" => 6, "i" => -6, "n" => -18, "o" => -24,
-      "quotedblright" => 40, "quoteright" => 25, "r" => -12,
-      "u" => -24, "v" => -20, "w" => -30, "y" => -40,
-    },
-    "L" => {
-      "A" => 30, "C" => -48, "G" => -48, "O" => -48, "Q" => -48,
-      "T" => -80, "U" => -42, "V" => -110, "W" => -90, "Y" => -80,
-      "a" => 10, "i" => -18, "j" => -18, "l" => -16,
-      "quotedblright" => -110, "quoteright" => -110, "u" => -18,
-      "w" => -30, "y" => -55,
-    },
-    "M" => {
-      "a" => -6, "c" => -20, "d" => -10, "e" => -20, "i" => -12,
-      "j" => -18, "n" => -12, "o" => -25, "quotedblright" => 15,
-      "quoteright" => 6, "u" => -24, "y" => -18,
-    },
-    "N" => {
-      "a" => -22, "e" => -20, "i" => -12, "o" => -25,
-      "quotedblright" => 10, "quoteright" => 10, "u" => -24,
-      "y" => -18,
-    },
-    "O" => {
-      "A" => -18, "T" => -48, "V" => -60, "W" => -40, "X" => -30,
-      "Y" => -75, "a" => 5, "b" => -6, "c" => 5, "comma" => -10,
-      "d" => 6, "e" => 5, "g" => -6, "h" => -10, "j" => -6, "k" => -10,
-      "l" => -20, "m" => -6, "n" => -6, "p" => -6, "period" => -20,
-      "q" => 5, "quotedblright" => -40, "quoteright" => -40, "r" => -6,
-      "s" => -6, "t" => -6, "u" => -6, "v" => -10, "w" => -10,
-      "y" => 12, "z" => -6,
-    },
-    "P" => {
-      "A" => -75, "E" => -30, "H" => -30, "I" => -30, "a" => -24,
-      "comma" => -220, "e" => -24, "h" => -15, "l" => -25, "n" => -12,
-      "o" => -24, "period" => -220, "r" => -6, "s" => -24, "t" => -6,
-      "u" => -18, "y" => 6,
-    },
-    "Q" => {
-      "A" => -18, "T" => -36, "U" => -35, "V" => -60, "W" => -35,
-      "X" => -12, "Y" => -70, "a" => -6, "quotedblright" => -50,
-      "quoteright" => -40, "u" => -6,
-    },
-    "R" => {
-      "A" => -6, "C" => -10, "G" => -10, "O" => -10, "Q" => -10,
-      "T" => -30, "U" => -40, "V" => -40, "W" => -30, "Y" => -50,
-      "e" => -12, "hyphen" => -20, "o" => -12, "quotedblright" => -20,
-      "quoteright" => -30, "u" => -12, "y" => -14,
-    },
-    "S" => {
-      "e" => -6, "h" => -30, "i" => -30, "j" => -25, "k" => -24,
-      "l" => -30, "m" => -24, "n" => -24, "p" => -18,
-      "quotedblright" => -30, "quoteright" => -38, "r" => -20,
-      "t" => -30, "u" => -18, "v" => -30, "w" => -30, "y" => -30,
-    },
-    "T" => {
-      "A" => -56, "C" => -12, "G" => -12, "O" => -12, "Q" => -12,
-      "T" => 18, "W" => 6, "X" => 18, "Y" => 12, "a" => -90,
-      "braceright" => 54, "bracketright" => 45, "colon" => -10,
-      "comma" => -110, "e" => -90, "emdash" => -60, "endash" => -60,
-      "hyphen" => -100, "i" => -34, "m" => -64, "o" => -90,
-      "parenright" => 54, "period" => -100, "quotedblright" => 50,
-      "quoteright" => 45, "r" => -64, "s" => -72, "semicolon" => -36,
-      "u" => -74, "w" => -64, "y" => -60, "z" => -70,
-    },
-    "U" => {
-      "A" => -45, "a" => -40, "b" => -6, "c" => -35, "d" => -40,
-      "g" => -30, "h" => -6, "i" => -24, "k" => -12, "l" => -12,
-      "m" => -45, "n" => -45, "p" => -40, "quotedblright" => 10,
-      "quoteright" => 10, "r" => -30, "s" => -30, "t" => -24,
-      "x" => -40, "z" => -30,
-    },
-    "V" => {
-      "A" => -70, "T" => 6, "a" => -60, "braceright" => 64,
-      "bracketright" => 64, "colon" => -18, "comma" => -120,
-      "e" => -52, "emdash" => -20, "endash" => -20, "hyphen" => -60,
-      "i" => -10, "o" => -62, "parenright" => 64, "period" => -130,
-      "quotedblright" => 70, "quoteright" => 75, "r" => -50,
-      "semicolon" => -35, "u" => -42, "y" => -46,
-    },
-    "W" => {
-      "A" => -58, "C" => -10, "G" => -10, "O" => -10, "Q" => -10,
-      "T" => 12, "a" => -60, "braceright" => 64, "bracketright" => 55,
-      "colon" => -28, "comma" => -108, "d" => -50, "e" => -54,
-      "emdash" => -10, "endash" => -2, "hyphen" => -40, "i" => -10,
-      "m" => -35, "o" => -60, "parenright" => 64, "period" => -108,
-      "quotedblright" => 60, "quoteright" => 55, "r" => -40,
-      "semicolon" => -28, "t" => -20, "u" => -56, "y" => -42,
-    },
-    "X" => {
-      "A" => -18, "C" => -30, "G" => -30, "O" => -30, "Q" => -30,
-      "W" => -6, "Y" => -6, "a" => 5, "e" => -10, "i" => -6,
-      "quotedblright" => 15, "quoteright" => 35, "r" => -6, "u" => -30,
-      "y" => -35,
-    },
-    "Y" => {
-      "A" => -36, "C" => -5, "G" => -5, "O" => -5, "Q" => -5,
-      "T" => 25, "V" => 6, "W" => 12, "X" => 12, "Y" => 12, "a" => -82,
-      "braceright" => 75, "bracketright" => 64, "colon" => -36,
-      "comma" => -80, "d" => -80, "e" => -72, "emdash" => -20,
-      "endash" => -20, "hyphen" => -95, "l" => 10, "o" => -72,
-      "parenright" => 60, "period" => -90, "q" => -100,
-      "quotedblright" => 70, "quoteright" => 65, "semicolon" => -36,
-      "t" => -32, "u" => -58, "v" => -50,
-    },
-    "Z" => {
-      "A" => 12, "C" => -30, "G" => -30, "O" => -30, "Q" => -30,
-      "a" => -6, "e" => -6, "i" => -12, "o" => -6,
-      "quotedblright" => 10, "quoteright" => 10, "u" => -12,
-      "w" => -36, "y" => -36,
-    },
-    "a" => {
-      "quotedblright" => -40, "quoteright" => -40,
-    },
-    "b" => {
-      "comma" => -30, "period" => -40, "quotedblright" => -50,
-      "quoteright" => -50, "v" => -15, "w" => -15, "y" => -6,
-    },
-    "braceleft" => {
-      "J" => 80, "T" => 54, "V" => 64, "W" => 64, "Y" => 64,
-    },
-    "bracketleft" => {
-      "J" => 80, "T" => 54, "V" => 64, "W" => 64, "Y" => 64,
-    },
-    "c" => {
-      "quotedblright" => -20, "quoteright" => -20,
-    },
-    "colon" => {
-      "space" => -30,
-    },
-    "comma" => {
-      "quotedblright" => -80, "quoteright" => -80, "space" => -40,
-    },
-    "d" => {
-      "quotedblright" => -12, "quoteright" => -12,
-    },
-    "e" => {
-      "quotedblright" => -30, "quoteright" => -30, "w" => -10,
-      "x" => -10,
-    },
-    "f" => {
-      "braceright" => 90, "bracketright" => 90, "comma" => -20,
-      "parenright" => 100, "period" => -20, "quotedblright" => 110,
-      "quoteright" => 110,
-    },
-    "g" => {
-      "f" => 42, "p" => 12, "y" => 30,
-    },
-    "h" => {
-      "quotedblright" => -80, "quoteright" => -80,
-    },
-    "j" => {
-      "comma" => -20, "period" => -35, "quotedblright" => -20,
-      "quoteright" => -20,
-    },
-    "k" => {
-      "quotedblright" => -50, "quoteright" => -30,
-    },
-    "m" => {
-      "quotedblright" => -80, "quoteright" => -80,
-    },
-    "n" => {
-      "quotedblright" => -80, "quoteright" => -80,
-    },
-    "o" => {
-      "comma" => -20, "period" => -30, "quotedblright" => -50,
-      "quoteright" => -60, "v" => -35, "w" => -30, "x" => -20,
-      "y" => -20, "z" => -10,
-    },
-    "p" => {
-      "comma" => -20, "period" => -30, "quotedblright" => -70,
-      "quoteright" => -50, "w" => -15, "z" => -10,
-    },
-    "parenleft" => {
-      "J" => 80, "T" => 64, "V" => 75, "W" => 75, "Y" => 75,
-    },
-    "period" => {
-      "quotedblright" => -80, "quoteright" => -80, "space" => -40,
-    },
-    "q" => {
-      "comma" => -10, "period" => -20, "quotedblright" => -30,
-      "quoteright" => -20,
-    },
-    "quotedblleft" => {
-      "A" => -90, "T" => 36, "V" => 28, "W" => 28, "X" => 28,
-      "Y" => 12, "a" => -60, "b" => 24, "c" => -40, "d" => -40,
-      "e" => -40, "g" => -30, "h" => 10, "k" => 10, "l" => 10,
-      "m" => -12, "n" => -12, "o" => -30, "p" => -12, "q" => -40,
-      "r" => -12, "s" => -30, "t" => -12, "u" => -12, "v" => -12,
-      "w" => -12, "x" => -40, "z" => -30,
-    },
-    "quotedblright" => {
-      "comma" => -100, "period" => -100, "space" => -40,
-    },
-    "quoteleft" => {
-      "A" => -90, "T" => 36, "V" => 28, "W" => 28, "X" => 28,
-      "Y" => 12, "a" => -45, "b" => 24, "c" => -30, "d" => -30,
-      "e" => -30, "g" => -30, "h" => 10, "k" => 10, "l" => 10,
-      "m" => -12, "n" => -12, "o" => -30, "p" => -12, "q" => -30,
-      "quoteleft" => -18, "r" => -12, "s" => -30, "t" => -12,
-      "u" => -12, "v" => -12, "w" => -12, "x" => -40, "y" => -10,
-      "z" => -30,
-    },
-    "quoteright" => {
-      "comma" => -100, "d" => -70, "l" => -12, "m" => -25,
-      "period" => -100, "quoteright" => -18, "r" => -25, "s" => -55,
-      "space" => -40, "t" => -35, "v" => -35,
-    },
-    "r" => {
-      "a" => -20, "c" => -12, "comma" => -110, "d" => -26, "e" => -26,
-      "emdash" => -20, "f" => 8, "h" => -20, "hyphen" => -30,
-      "k" => -20, "l" => -20, "o" => -6, "period" => -120, "q" => -24,
-      "quotedblright" => -15, "t" => 8, "v" => 6, "w" => 6, "y" => 18,
-    },
-    "s" => {
-      "quotedblright" => -45, "quoteright" => -40,
-    },
-    "semicolon" => {
-      "space" => -30,
-    },
-    "space" => {
-      "V" => -70, "W" => -70, "Y" => -70, "quotedblbase" => -30,
-      "quotedblleft" => -40, "quoteleft" => -40,
-      "quotesinglbase" => -30,
-    },
-    "t" => {
-      "quotedblright" => -10, "quoteright" => 10,
-    },
-    "u" => {
-      "quotedblright" => -50, "quoteright" => -55,
-    },
-    "v" => {
-      "a" => -6, "c" => -6, "comma" => -70, "d" => -6, "e" => -6,
-      "o" => -6, "period" => -70, "q" => -6, "quotedblright" => -30,
-      "quoteright" => -20,
-    },
-    "w" => {
-      "comma" => -62, "period" => -62, "quotedblright" => -30,
-      "quoteright" => -20,
-    },
-    "x" => {
-      "c" => -6, "d" => -6, "e" => -6, "o" => -6, "q" => -6,
-      "quotedblright" => -50, "quoteright" => -40, "w" => -6,
-      "y" => 12,
-    },
-    "y" => {
-      "comma" => -60, "emdash" => 40, "period" => -70,
-      "quotedblright" => -20, "quoteright" => -10,
-    },
-    "z" => {
-      "c" => -6, "d" => -6, "e" => -6, "o" => -6,
-      "quotedblright" => -50, "quoteright" => -40,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pzcmi8a.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-%PS_ZapfChancery_MediumItalic = (
-  name => 'ZapfChancery-MediumItalic',
-  widths => {
-    "A" => 620, "AE" => 740, "Aacute" => 620, "Acircumflex" => 620,
-    "Adieresis" => 620, "Agrave" => 620, "Aring" => 620,
-    "Atilde" => 620, "B" => 600, "C" => 520, "Ccedilla" => 520,
-    "D" => 700, "E" => 620, "Eacute" => 620, "Ecircumflex" => 620,
-    "Edieresis" => 620, "Egrave" => 620, "Eth" => 700, "F" => 580,
-    "G" => 620, "H" => 680, "I" => 380, "Iacute" => 380,
-    "Icircumflex" => 380, "Idieresis" => 380, "Igrave" => 380,
-    "J" => 400, "K" => 660, "L" => 580, "Lslash" => 580, "M" => 840,
-    "N" => 700, "Ntilde" => 700, "O" => 600, "OE" => 820,
-    "Oacute" => 600, "Ocircumflex" => 600, "Odieresis" => 600,
-    "Ograve" => 600, "Oslash" => 660, "Otilde" => 600, "P" => 540,
-    "Q" => 600, "R" => 600, "S" => 460, "Scaron" => 460, "T" => 500,
-    "Thorn" => 540, "U" => 740, "Uacute" => 740, "Ucircumflex" => 740,
-    "Udieresis" => 740, "Ugrave" => 740, "V" => 640, "W" => 880,
-    "X" => 560, "Y" => 560, "Yacute" => 560, "Ydieresis" => 560,
-    "Z" => 620, "Zcaron" => 620, "a" => 420, "aacute" => 420,
-    "acircumflex" => 420, "acute" => 300, "adieresis" => 420,
-    "ae" => 540, "agrave" => 420, "ampersand" => 780, "aring" => 420,
-    "asciicircum" => 520, "asciitilde" => 520, "asterisk" => 420,
-    "at" => 700, "atilde" => 420, "b" => 420, "backslash" => 480,
-    "bar" => 520, "braceleft" => 240, "braceright" => 240,
-    "bracketleft" => 240, "bracketright" => 320, "breve" => 440,
-    "brokenbar" => 520, "bullet" => 600, "c" => 340, "caron" => 340,
-    "ccedilla" => 340, "cedilla" => 300, "cent" => 440,
-    "circumflex" => 340, "colon" => 260, "comma" => 220,
-    "copyright" => 740, "currency" => 440, "d" => 440, "dagger" => 460,
-    "daggerdbl" => 480, "degree" => 400, "dieresis" => 360,
-    "divide" => 520, "dollar" => 440, "dotaccent" => 220,
-    "dotlessi" => 240, "e" => 340, "eacute" => 340,
-    "ecircumflex" => 340, "edieresis" => 340, "egrave" => 340,
-    "eight" => 440, "ellipsis" => 1000, "emdash" => 1000,
-    "endash" => 500, "equal" => 520, "eth" => 400, "exclam" => 280,
-    "exclamdown" => 280, "f" => 320, "fi" => 520, "five" => 440,
-    "fl" => 520, "florin" => 440, "four" => 440, "fraction" => 60,
-    "g" => 400, "germandbls" => 420, "grave" => 220, "greater" => 520,
-    "guillemotleft" => 340, "guillemotright" => 380,
-    "guilsinglleft" => 240, "guilsinglright" => 260, "h" => 440,
-    "hungarumlaut" => 400, "hyphen" => 280, "i" => 240,
-    "iacute" => 240, "icircumflex" => 240, "idieresis" => 240,
-    "igrave" => 240, "j" => 220, "k" => 440, "l" => 240, "less" => 520,
-    "logicalnot" => 520, "lslash" => 300, "m" => 620, "macron" => 440,
-    "minus" => 520, "mu" => 460, "multiply" => 520, "n" => 460,
-    "nine" => 440, "ntilde" => 460, "numbersign" => 440, "o" => 400,
-    "oacute" => 400, "ocircumflex" => 400, "odieresis" => 400,
-    "oe" => 560, "ogonek" => 280, "ograve" => 400, "one" => 440,
-    "onehalf" => 660, "onequarter" => 660, "onesuperior" => 264,
-    "ordfeminine" => 260, "ordmasculine" => 260, "oslash" => 440,
-    "otilde" => 400, "p" => 440, "paragraph" => 500,
-    "parenleft" => 260, "parenright" => 220, "percent" => 680,
-    "period" => 220, "periodcentered" => 220, "perthousand" => 960,
-    "plus" => 520, "plusminus" => 520, "q" => 400, "question" => 380,
-    "questiondown" => 400, "quotedbl" => 220, "quotedblbase" => 280,
-    "quotedblleft" => 340, "quotedblright" => 360, "quoteleft" => 240,
-    "quoteright" => 240, "quotesinglbase" => 180, "quotesingle" => 160,
-    "r" => 300, "registered" => 740, "ring" => 300, "s" => 320,
-    "scaron" => 320, "section" => 420, "semicolon" => 240,
-    "seven" => 440, "six" => 440, "slash" => 340, "space" => 220,
-    "sterling" => 440, "t" => 320, "thorn" => 440, "three" => 440,
-    "threequarters" => 660, "threesuperior" => 264, "tilde" => 440,
-    "trademark" => 1000, "two" => 440, "twosuperior" => 264,
-    "u" => 460, "uacute" => 460, "ucircumflex" => 460,
-    "udieresis" => 460, "ugrave" => 460, "underscore" => 500,
-    "v" => 440, "w" => 680, "x" => 420, "y" => 400, "yacute" => 400,
-    "ydieresis" => 400, "yen" => 440, "z" => 440, "zcaron" => 440,
-    "zero" => 440,
-  },
-  kern => {
-    "A" => {
-      "C" => 20, "G" => -30, "O" => 10, "Q" => 10, "T" => 10,
-      "U" => -10, "quotedblright" => -40, "quoteright" => -40,
-    },
-    "D" => {
-      "A" => -10, "Y" => 10, "comma" => -20, "period" => -30,
-    },
-    "F" => {
-      "comma" => -30, "i" => 10, "period" => -40,
-    },
-    "G" => {
-      "comma" => -10, "period" => -20,
-    },
-    "J" => {
-      "comma" => -10, "period" => -20,
-    },
-    "K" => {
-      "e" => -20, "o" => -20, "u" => -20,
-    },
-    "L" => {
-      "V" => -20, "W" => -10, "quotedblright" => -25,
-      "quoteright" => -25, "y" => -10,
-    },
-    "O" => {
-      "A" => -20, "T" => 20, "Y" => 10, "comma" => -10,
-      "period" => -20,
-    },
-    "P" => {
-      "A" => -10, "a" => -20, "comma" => -40, "e" => -10, "o" => -10,
-      "period" => -50,
-    },
-    "Q" => {
-      "U" => -10,
-    },
-    "R" => {
-      "T" => 20, "W" => 10, "Y" => 10,
-    },
-    "T" => {
-      "A" => 10, "O" => 30, "a" => -20, "e" => -20, "h" => 20,
-      "hyphen" => -20, "i" => 20, "o" => -20,
-    },
-    "V" => {
-      "G" => -20, "O" => 10, "a" => -20, "comma" => -90, "e" => -20,
-      "o" => -20, "period" => -100,
-    },
-    "W" => {
-      "O" => 10, "a" => -20, "comma" => -40, "e" => -20, "h" => 10,
-      "i" => 10, "o" => -20, "period" => -50,
-    },
-    "Y" => {
-      "a" => -60, "comma" => -40, "e" => -40, "i" => 10, "o" => -50,
-      "period" => -50, "u" => -20,
-    },
-    "b" => {
-      "b" => -20, "comma" => -20, "l" => -20, "period" => -30,
-    },
-    "c" => {
-      "k" => -10,
-    },
-    "comma" => {
-      "quotedblright" => -70, "quoteright" => -70,
-    },
-    "d" => {
-      "d" => -40, "v" => -10, "w" => -20,
-    },
-    "e" => {
-      "y" => 10,
-    },
-    "f" => {
-      "a" => -20, "comma" => -40, "e" => -10, "f" => -50,
-      "period" => -50, "quotedblright" => 30, "quoteright" => 30,
-    },
-    "g" => {
-      "a" => 10, "comma" => -20, "e" => 10, "i" => 10, "period" => -30,
-      "y" => 10,
-    },
-    "k" => {
-      "e" => -20, "o" => -10, "y" => 10,
-    },
-    "m" => {
-      "u" => 10, "y" => 10,
-    },
-    "n" => {
-      "y" => 20,
-    },
-    "o" => {
-      "comma" => -20, "period" => -30,
-    },
-    "p" => {
-      "comma" => -20, "p" => -10, "period" => -30,
-    },
-    "period" => {
-      "quotedblright" => -80, "quoteright" => -80,
-    },
-    "quotedblleft" => {
-      "A" => 10, "quoteleft" => 20,
-    },
-    "quoteleft" => {
-      "A" => 10, "quoteleft" => -115,
-    },
-    "quoteright" => {
-      "l" => 20, "quotedblright" => 20, "quoteright" => -115,
-      "r" => 30, "s" => -25, "t" => 20, "v" => 30,
-    },
-    "r" => {
-      "comma" => -40, "i" => 10, "period" => -50,
-    },
-    "s" => {
-      "comma" => -10, "period" => -20,
-    },
-    "v" => {
-      "comma" => -20, "period" => -30,
-    },
-    "w" => {
-      "comma" => -20, "h" => 20, "o" => 10, "period" => -30,
-    }
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/metrics/pzdr.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-%PS_ZapfDingbats = (
-  name => 'ZapfDingbats',
-  widths => {
-    "a1" => 974, "a10" => 692, "a100" => 668, "a101" => 732,
-    "a102" => 544, "a103" => 544, "a104" => 910, "a105" => 911,
-    "a106" => 667, "a107" => 760, "a108" => 760, "a109" => 626,
-    "a11" => 960, "a110" => 694, "a111" => 595, "a112" => 776,
-    "a117" => 690, "a118" => 791, "a119" => 790, "a12" => 939,
-    "a120" => 788, "a121" => 788, "a122" => 788, "a123" => 788,
-    "a124" => 788, "a125" => 788, "a126" => 788, "a127" => 788,
-    "a128" => 788, "a129" => 788, "a13" => 549, "a130" => 788,
-    "a131" => 788, "a132" => 788, "a133" => 788, "a134" => 788,
-    "a135" => 788, "a136" => 788, "a137" => 788, "a138" => 788,
-    "a139" => 788, "a14" => 855, "a140" => 788, "a141" => 788,
-    "a142" => 788, "a143" => 788, "a144" => 788, "a145" => 788,
-    "a146" => 788, "a147" => 788, "a148" => 788, "a149" => 788,
-    "a15" => 911, "a150" => 788, "a151" => 788, "a152" => 788,
-    "a153" => 788, "a154" => 788, "a155" => 788, "a156" => 788,
-    "a157" => 788, "a158" => 788, "a159" => 788, "a16" => 933,
-    "a160" => 894, "a161" => 838, "a162" => 924, "a163" => 1016,
-    "a164" => 458, "a165" => 924, "a166" => 918, "a167" => 927,
-    "a168" => 928, "a169" => 928, "a17" => 945, "a170" => 834,
-    "a171" => 873, "a172" => 828, "a173" => 924, "a174" => 917,
-    "a175" => 930, "a176" => 931, "a177" => 463, "a178" => 883,
-    "a179" => 836, "a18" => 974, "a180" => 867, "a181" => 696,
-    "a182" => 874, "a183" => 760, "a184" => 946, "a185" => 865,
-    "a186" => 967, "a187" => 831, "a188" => 873, "a189" => 927,
-    "a19" => 755, "a190" => 970, "a191" => 918, "a192" => 748,
-    "a193" => 836, "a194" => 771, "a195" => 888, "a196" => 748,
-    "a197" => 771, "a198" => 888, "a199" => 867, "a2" => 961,
-    "a20" => 846, "a200" => 696, "a201" => 874, "a202" => 974,
-    "a203" => 762, "a204" => 759, "a205" => 509, "a206" => 410,
-    "a21" => 762, "a22" => 761, "a23" => 571, "a24" => 677,
-    "a25" => 763, "a26" => 760, "a27" => 759, "a28" => 754,
-    "a29" => 786, "a3" => 980, "a30" => 788, "a31" => 788,
-    "a32" => 790, "a33" => 793, "a34" => 794, "a35" => 816,
-    "a36" => 823, "a37" => 789, "a38" => 841, "a39" => 823,
-    "a4" => 719, "a40" => 833, "a41" => 816, "a42" => 831,
-    "a43" => 923, "a44" => 744, "a45" => 723, "a46" => 749,
-    "a47" => 790, "a48" => 792, "a49" => 695, "a5" => 789,
-    "a50" => 776, "a51" => 768, "a52" => 792, "a53" => 759,
-    "a54" => 707, "a55" => 708, "a56" => 682, "a57" => 701,
-    "a58" => 826, "a59" => 815, "a6" => 494, "a60" => 789,
-    "a61" => 789, "a62" => 707, "a63" => 687, "a64" => 696,
-    "a65" => 689, "a66" => 786, "a67" => 787, "a68" => 713,
-    "a69" => 791, "a7" => 552, "a70" => 785, "a71" => 791,
-    "a72" => 873, "a73" => 761, "a74" => 762, "a75" => 759,
-    "a76" => 892, "a77" => 892, "a78" => 788, "a79" => 784,
-    "a8" => 537, "a81" => 438, "a82" => 138, "a83" => 277,
-    "a84" => 415, "a85" => 509, "a86" => 410, "a87" => 234,
-    "a88" => 234, "a89" => 390, "a9" => 577, "a90" => 390,
-    "a91" => 276, "a92" => 276, "a93" => 317, "a94" => 317,
-    "a95" => 334, "a96" => 334, "a97" => 392, "a98" => 392,
-    "a99" => 668, "space" => 278,
-  },
-  kern => {
-  }
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/nasmdoc.src	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8327 +0,0 @@
-\# --------------------------------------------------------------------------
-\#
-\#   Copyright 1996-2017 The NASM Authors - All Rights Reserved
-\#   See the file AUTHORS included with the NASM distribution for
-\#   the specific copyright holders.
-\#
-\#   Redistribution and use in source and binary forms, with or without
-\#   modification, are permitted provided that the following
-\#   conditions are met:
-\#
-\#   * Redistributions of source code must retain the above copyright
-\#     notice, this list of conditions and the following disclaimer.
-\#   * Redistributions in binary form must reproduce the above
-\#     copyright notice, this list of conditions and the following
-\#     disclaimer in the documentation and/or other materials provided
-\#     with the distribution.
-\#
-\#     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-\#     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-\#     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-\#     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-\#     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-\#     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-\#     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-\#     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-\#     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-\#     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-\#     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-\#     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-\#     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-\#
-\# --------------------------------------------------------------------------
-\#
-\# Source code to NASM documentation
-\#
-
-\M{category}{Programming}
-\M{title}{NASM - The Netwide Assembler}
-\M{year}{1996-2017}
-\M{author}{The NASM Development Team}
-\M{copyright_tail}{-- All Rights Reserved}
-\M{license}{This document is redistributable under the license given in the file "LICENSE" distributed in the NASM archive.}
-\M{summary}{This file documents NASM, the Netwide Assembler: an assembler targetting the Intel x86 series of processors, with portable source.}
-\M{infoname}{NASM}
-\M{infofile}{nasm}
-\M{infotitle}{The Netwide Assembler for x86}
-\M{epslogo}{nasmlogo.eps}
-\M{logoyadj}{-72}
-
-\& version.src
-
-\IR{-D} \c{-D} option
-\IR{-E} \c{-E} option
-\IR{-F} \c{-F} option
-\IR{-I} \c{-I} option
-\IR{-M} \c{-M} option
-\IR{-MD} \c{-MD} option
-\IR{-MF} \c{-MF} option
-\IR{-MG} \c{-MG} option
-\IR{-MP} \c{-MP} option
-\IR{-MQ} \c{-MQ} option
-\IR{-MT} \c{-MT} option
-\IR{-O} \c{-O} option
-\IR{-P} \c{-P} option
-\IR{-U} \c{-U} option
-\IR{-X} \c{-X} option
-\IR{-a} \c{-a} option
-\IR{-d} \c{-d} option
-\IR{-e} \c{-e} option
-\IR{-f} \c{-f} option
-\IR{-g} \c{-g} option
-\IR{-i} \c{-i} option
-\IR{-l} \c{-l} option
-\IR{-o} \c{-o} option
-\IR{-p} \c{-p} option
-\IR{-s} \c{-s} option
-\IR{-u} \c{-u} option
-\IR{-v} \c{-v} option
-\IR{-W} \c{-W} option
-\IR{-Werror} \c{-Werror} option
-\IR{-Wno-error} \c{-Wno-error} option
-\IR{-w} \c{-w} option
-\IR{-y} \c{-y} option
-\IR{-Z} \c{-Z} option
-\IR{!=} \c{!=} operator
-\IR{$, here} \c{$}, Here token
-\IR{$, prefix} \c{$}, prefix
-\IR{$$} \c{$$} token
-\IR{%} \c{%} operator
-\IR{%%} \c{%%} operator
-\IR{%+1} \c{%+1} and \c{%-1} syntax
-\IA{%-1}{%+1}
-\IR{%0} \c{%0} parameter count
-\IR{&} \c{&} operator
-\IR{&&} \c{&&} operator
-\IR{*} \c{*} operator
-\IR{..@} \c{..@} symbol prefix
-\IR{/} \c{/} operator
-\IR{//} \c{//} operator
-\IR{<} \c{<} operator
-\IR{<<} \c{<<} operator
-\IR{<=} \c{<=} operator
-\IR{<>} \c{<>} operator
-\IR{=} \c{=} operator
-\IR{==} \c{==} operator
-\IR{>} \c{>} operator
-\IR{>=} \c{>=} operator
-\IR{>>} \c{>>} operator
-\IR{?} \c{?} MASM syntax
-\IR{^} \c{^} operator
-\IR{^^} \c{^^} operator
-\IR{|} \c{|} operator
-\IR{||} \c{||} operator
-\IR{~} \c{~} operator
-\IR{%$} \c{%$} and \c{%$$} prefixes
-\IA{%$$}{%$}
-\IR{+ opaddition} \c{+} operator, binary
-\IR{+ opunary} \c{+} operator, unary
-\IR{+ modifier} \c{+} modifier
-\IR{- opsubtraction} \c{-} operator, binary
-\IR{- opunary} \c{-} operator, unary
-\IR{! opunary} \c{!} operator, unary
-\IR{alignment, in bin sections} alignment, in \c{bin} sections
-\IR{alignment, in elf sections} alignment, in \c{elf} sections
-\IR{alignment, in win32 sections} alignment, in \c{win32} sections
-\IR{alignment, of elf common variables} alignment, of \c{elf} common
-variables
-\IR{alignment, in obj sections} alignment, in \c{obj} sections
-\IR{a.out, bsd version} \c{a.out}, BSD version
-\IR{a.out, linux version} \c{a.out}, Linux version
-\IR{autoconf} Autoconf
-\IR{bin} bin
-\IR{bitwise and} bitwise AND
-\IR{bitwise or} bitwise OR
-\IR{bitwise xor} bitwise XOR
-\IR{block ifs} block IFs
-\IR{borland pascal} Borland, Pascal
-\IR{borland's win32 compilers} Borland, Win32 compilers
-\IR{braces, after % sign} braces, after \c{%} sign
-\IR{bsd} BSD
-\IR{c calling convention} C calling convention
-\IR{c symbol names} C symbol names
-\IA{critical expressions}{critical expression}
-\IA{command line}{command-line}
-\IA{case sensitivity}{case sensitive}
-\IA{case-sensitive}{case sensitive}
-\IA{case-insensitive}{case sensitive}
-\IA{character constants}{character constant}
-\IR{codeview} CodeView debugging format
-\IR{common object file format} Common Object File Format
-\IR{common variables, alignment in elf} common variables, alignment
-in \c{elf}
-\IR{common, elf extensions to} \c{COMMON}, \c{elf} extensions to
-\IR{common, obj extensions to} \c{COMMON}, \c{obj} extensions to
-\IR{declaring structure} declaring structures
-\IR{default-wrt mechanism} default-\c{WRT} mechanism
-\IR{devpac} DevPac
-\IR{djgpp} DJGPP
-\IR{dll symbols, exporting} DLL symbols, exporting
-\IR{dll symbols, importing} DLL symbols, importing
-\IR{dos} DOS
-\IR{dos archive} DOS archive
-\IR{dos source archive} DOS source archive
-\IA{effective address}{effective addresses}
-\IA{effective-address}{effective addresses}
-\IR{elf} ELF
-\IR{elf, 16-bit code and} ELF, 16-bit code and
-\IR{elf shared libraries} ELF, shared libraries
-\IR{elf32} \c{elf32}
-\IR{elf64} \c{elf64}
-\IR{elfx32} \c{elfx32}
-\IR{executable and linkable format} Executable and Linkable Format
-\IR{extern, obj extensions to} \c{EXTERN}, \c{obj} extensions to
-\IR{extern, rdf extensions to} \c{EXTERN}, \c{rdf} extensions to
-\IR{floating-point, constants} floating-point, constants
-\IR{floating-point, packed bcd constants} floating-point, packed BCD constants
-\IR{freebsd} FreeBSD
-\IR{freelink} FreeLink
-\IR{functions, c calling convention} functions, C calling convention
-\IR{functions, pascal calling convention} functions, Pascal calling
-convention
-\IR{global, aoutb extensions to} \c{GLOBAL}, \c{aoutb} extensions to
-\IR{global, elf extensions to} \c{GLOBAL}, \c{elf} extensions to
-\IR{global, rdf extensions to} \c{GLOBAL}, \c{rdf} extensions to
-\IR{got} GOT
-\IR{got relocations} \c{GOT} relocations
-\IR{gotoff relocation} \c{GOTOFF} relocations
-\IR{gotpc relocation} \c{GOTPC} relocations
-\IR{intel number formats} Intel number formats
-\IR{linux, elf} Linux, ELF
-\IR{linux, a.out} Linux, \c{a.out}
-\IR{linux, as86} Linux, \c{as86}
-\IR{logical and} logical AND
-\IR{logical or} logical OR
-\IR{logical xor} logical XOR
-\IR{mach object file format} Mach, object file format
-\IA{mach-o}{macho}
-\IR{mach-o} Mach-O, object file format
-\IR{macho32} \c{macho32}
-\IR{macho64} \c{macho64}
-\IR{macos x} MacOS X
-\IR{masm} MASM
-\IA{memory reference}{memory references}
-\IR{minix} Minix
-\IA{misc directory}{misc subdirectory}
-\IR{misc subdirectory} \c{misc} subdirectory
-\IR{microsoft omf} Microsoft OMF
-\IR{mmx registers} MMX registers
-\IA{modr/m}{modr/m byte}
-\IR{modr/m byte} ModR/M byte
-\IR{ms-dos} MS-DOS
-\IR{ms-dos device drivers} MS-DOS device drivers
-\IR{multipush} \c{multipush} macro
-\IR{nan} NaN
-\IR{nasm version} NASM version
-\IR{netbsd} NetBSD
-\IR{omf} OMF
-\IR{openbsd} OpenBSD
-\IR{operating system} operating system
-\IR{os/2} OS/2
-\IR{pascal calling convention}Pascal calling convention
-\IR{passes} passes, assembly
-\IR{perl} Perl
-\IR{pic} PIC
-\IR{pharlap} PharLap
-\IR{plt} PLT
-\IR{plt} \c{PLT} relocations
-\IA{pre-defining macros}{pre-define}
-\IA{preprocessor expressions}{preprocessor, expressions}
-\IA{preprocessor loops}{preprocessor, loops}
-\IA{preprocessor variables}{preprocessor, variables}
-\IA{rdoff subdirectory}{rdoff}
-\IR{rdoff} \c{rdoff} subdirectory
-\IR{relocatable dynamic object file format} Relocatable Dynamic
-Object File Format
-\IR{relocations, pic-specific} relocations, PIC-specific
-\IA{repeating}{repeating code}
-\IR{section alignment, in elf} section alignment, in \c{elf}
-\IR{section alignment, in bin} section alignment, in \c{bin}
-\IR{section alignment, in obj} section alignment, in \c{obj}
-\IR{section alignment, in win32} section alignment, in \c{win32}
-\IR{section, elf extensions to} \c{SECTION}, \c{elf} extensions to
-\IR{section, macho extensions to} \c{SECTION}, \c{macho} extensions to
-\IR{section, win32 extensions to} \c{SECTION}, \c{win32} extensions to
-\IR{segment alignment, in bin} segment alignment, in \c{bin}
-\IR{segment alignment, in obj} segment alignment, in \c{obj}
-\IR{segment, obj extensions to} \c{SEGMENT}, \c{elf} extensions to
-\IR{segment names, borland pascal} segment names, Borland Pascal
-\IR{shift command} \c{shift} command
-\IA{sib}{sib byte}
-\IR{sib byte} SIB byte
-\IR{align, smart} \c{ALIGN}, smart
-\IA{sectalign}{sectalign}
-\IR{solaris x86} Solaris x86
-\IA{standard section names}{standardized section names}
-\IR{symbols, exporting from dlls} symbols, exporting from DLLs
-\IR{symbols, importing from dlls} symbols, importing from DLLs
-\IR{test subdirectory} \c{test} subdirectory
-\IR{tlink} \c{TLINK}
-\IR{underscore, in c symbols} underscore, in C symbols
-\IR{unicode} Unicode
-\IR{unix} Unix
-\IR{utf-8} UTF-8
-\IR{utf-16} UTF-16
-\IR{utf-32} UTF-32
-\IA{sco unix}{unix, sco}
-\IR{unix, sco} Unix, SCO
-\IA{unix source archive}{unix, source archive}
-\IR{unix, source archive} Unix, source archive
-\IA{unix system v}{unix, system v}
-\IR{unix, system v} Unix, System V
-\IR{unixware} UnixWare
-\IR{val} VAL
-\IR{version number of nasm} version number of NASM
-\IR{visual c++} Visual C++
-\IR{www page} WWW page
-\IR{win32} Win32
-\IR{win32} Win64
-\IR{windows} Windows
-\IR{windows 95} Windows 95
-\IR{windows nt} Windows NT
-\# \IC{program entry point}{entry point, program}
-\# \IC{program entry point}{start point, program}
-\# \IC{MS-DOS device drivers}{device drivers, MS-DOS}
-\# \IC{16-bit mode, versus 32-bit mode}{32-bit mode, versus 16-bit mode}
-\# \IC{c symbol names}{symbol names, in C}
-
-
-\C{intro} Introduction
-
-\H{whatsnasm} What Is NASM?
-
-The Netwide Assembler, NASM, is an 80x86 and x86-64 assembler designed
-for portability and modularity. It supports a range of object file
-formats, including Linux and \c{*BSD} \c{a.out}, \c{ELF}, \c{COFF},
-\c{Mach-O}, Microsoft 16-bit \c{OBJ}, \c{Win32} and \c{Win64}. It will
-also output plain binary files. Its syntax is designed to be simple
-and easy to understand, similar to Intel's but less complex. It
-supports all currently known x86 architectural extensions, and has
-strong support for macros.
-
-
-\S{yaasm} Why Yet Another Assembler?
-
-The Netwide Assembler grew out of an idea on \i\c{comp.lang.asm.x86}
-(or possibly \i\c{alt.lang.asm} - I forget which), which was
-essentially that there didn't seem to be a good \e{free} x86-series
-assembler around, and that maybe someone ought to write one.
-
-\b \i\c{a86} is good, but not free, and in particular you don't get any
-32-bit capability until you pay. It's DOS only, too.
-
-\b \i\c{gas} is free, and ports over to DOS and Unix, but it's not
-very good, since it's designed to be a back end to \i\c{gcc}, which
-always feeds it correct code. So its error checking is minimal. Also,
-its syntax is horrible, from the point of view of anyone trying to
-actually \e{write} anything in it. Plus you can't write 16-bit code in
-it (properly.)
-
-\b \i\c{as86} is specific to Minix and Linux, and (my version at least)
-doesn't seem to have much (or any) documentation.
-
-\b \i\c{MASM} isn't very good, and it's (was) expensive, and it runs only under
-DOS.
-
-\b \i\c{TASM} is better, but still strives for MASM compatibility,
-which means millions of directives and tons of red tape. And its syntax
-is essentially MASM's, with the contradictions and quirks that
-entails (although it sorts out some of those by means of Ideal mode.)
-It's expensive too. And it's DOS-only.
-
-So here, for your coding pleasure, is NASM. At present it's
-still in prototype stage - we don't promise that it can outperform
-any of these assemblers. But please, \e{please} send us bug reports,
-fixes, helpful information, and anything else you can get your hands
-on (and thanks to the many people who've done this already! You all
-know who you are), and we'll improve it out of all recognition.
-Again.
-
-
-\S{legal} \i{License} Conditions
-
-Please see the file \c{LICENSE}, supplied as part of any NASM
-distribution archive, for the license conditions under which you may
-use NASM.  NASM is now under the so-called 2-clause BSD license, also
-known as the simplified BSD license.
-
-Copyright 1996-2016 the NASM Authors - All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are
-met:
-
-\b Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
-
-\b Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
-      
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-\H{contact} Contact Information
-
-The current version of NASM (since about 0.98.08) is maintained by a
-team of developers, accessible through the \c{nasm-devel} mailing list
-(see below for the link).
-If you want to report a bug, please read \k{bugs} first.
-
-NASM has a \i{website} at
-\W{http://www.nasm.us/}\c{http://www.nasm.us/}. If it's not there,
-google for us!
-
-\i{New releases}, \i{release candidates}, and \I{snapshots, daily
-development}\i{daily development snapshots} of NASM are available from
-the official web site.
-
-If you want information about the current development status, please
-subscribe to the \i\c{nasm-devel} email list; see link from the
-website.
-
-
-\H{install} Installation
-
-\S{instdos} \i{Installing} NASM under MS-\i{DOS} or Windows
-
-Once you've obtained the appropriate archive for NASM,
-\i\c{nasm-XXX-dos.zip} or \i\c{nasm-XXX-win32.zip} (where \c{XXX}
-denotes the version number of NASM contained in the archive), unpack
-it into its own directory (for example \c{c:\\nasm}).
-
-The archive will contain a set of executable files: the NASM
-executable file \i\c{nasm.exe}, the NDISASM executable file
-\i\c{ndisasm.exe}, and possibly additional utilities to handle the
-RDOFF file format.
-
-The only file NASM needs to run is its own executable, so copy
-\c{nasm.exe} to a directory on your PATH, or alternatively edit
-\i\c{autoexec.bat} to add the \c{nasm} directory to your
-\i\c{PATH} (to do that under Windows XP, go to Start > Control Panel >
-System > Advanced > Environment Variables; these instructions may work
-under other versions of Windows as well.)
-
-That's it - NASM is installed. You don't need the nasm directory
-to be present to run NASM (unless you've added it to your \c{PATH}),
-so you can delete it if you need to save space; however, you may
-want to keep the documentation or test programs.
-
-If you've downloaded the \i{DOS source archive}, \i\c{nasm-XXX.zip},
-the \c{nasm} directory will also contain the full NASM \i{source
-code}, and a selection of \i{Makefiles} you can (hopefully) use to
-rebuild your copy of NASM from scratch.  See the file \c{INSTALL} in
-the source archive.
-
-Note that a number of files are generated from other files by Perl
-scripts.  Although the NASM source distribution includes these
-generated files, you will need to rebuild them (and hence, will need a
-Perl interpreter) if you change insns.dat, standard.mac or the
-documentation. It is possible future source distributions may not
-include these files at all. Ports of \i{Perl} for a variety of
-platforms, including DOS and Windows, are available from
-\W{http://www.cpan.org/ports/}\i{www.cpan.org}.
-
-
-\S{instdos} Installing NASM under \i{Unix}
-
-Once you've obtained the \i{Unix source archive} for NASM,
-\i\c{nasm-XXX.tar.gz} (where \c{XXX} denotes the version number of
-NASM contained in the archive), unpack it into a directory such
-as \c{/usr/local/src}. The archive, when unpacked, will create its
-own subdirectory \c{nasm-XXX}.
-
-NASM is an \I{Autoconf}\I\c{configure}auto-configuring package: once
-you've unpacked it, \c{cd} to the directory it's been unpacked into
-and type \c{./configure}. This shell script will find the best C
-compiler to use for building NASM and set up \i{Makefiles}
-accordingly.
-
-Once NASM has auto-configured, you can type \i\c{make} to build the
-\c{nasm} and \c{ndisasm} binaries, and then \c{make install} to
-install them in \c{/usr/local/bin} and install the \i{man pages}
-\i\c{nasm.1} and \i\c{ndisasm.1} in \c{/usr/local/man/man1}.
-Alternatively, you can give options such as \c{--prefix} to the
-configure script (see the file \i\c{INSTALL} for more details), or
-install the programs yourself.
-
-NASM also comes with a set of utilities for handling the \c{RDOFF}
-custom object-file format, which are in the \i\c{rdoff} subdirectory
-of the NASM archive. You can build these with \c{make rdf} and
-install them with \c{make rdf_install}, if you want them.
-
-
-\C{running} Running NASM
-
-\H{syntax} NASM \i{Command-Line} Syntax
-
-To assemble a file, you issue a command of the form
-
-\c nasm -f <format> <filename> [-o <output>]
-
-For example,
-
-\c nasm -f elf myfile.asm
-
-will assemble \c{myfile.asm} into an \c{ELF} object file \c{myfile.o}. And
-
-\c nasm -f bin myfile.asm -o myfile.com
-
-will assemble \c{myfile.asm} into a raw binary file \c{myfile.com}.
-
-To produce a listing file, with the hex codes output from NASM
-displayed on the left of the original sources, use the \c{-l} option
-to give a listing file name, for example:
-
-\c nasm -f coff myfile.asm -l myfile.lst
-
-To get further usage instructions from NASM, try typing
-
-\c nasm -h
-
-As \c{-hf}, this will also list the available output file formats, and what they
-are.
-
-If you use Linux but aren't sure whether your system is \c{a.out}
-or \c{ELF}, type
-
-\c file nasm
-
-(in the directory in which you put the NASM binary when you
-installed it). If it says something like
-
-\c nasm: ELF 32-bit LSB executable i386 (386 and up) Version 1
-
-then your system is \c{ELF}, and you should use the option \c{-f elf}
-when you want NASM to produce Linux object files. If it says
-
-\c nasm: Linux/i386 demand-paged executable (QMAGIC)
-
-or something similar, your system is \c{a.out}, and you should use
-\c{-f aout} instead (Linux \c{a.out} systems have long been obsolete,
-and are rare these days.)
-
-Like Unix compilers and assemblers, NASM is silent unless it
-goes wrong: you won't see any output at all, unless it gives error
-messages.
-
-
-\S{opt-o} The \i\c{-o} Option: Specifying the Output File Name
-
-NASM will normally choose the name of your output file for you;
-precisely how it does this is dependent on the object file format.
-For Microsoft object file formats (\c{obj}, \c{win32} and \c{win64}),
-it will remove the \c{.asm} \i{extension} (or whatever extension you
-like to use - NASM doesn't care) from your source file name and
-substitute \c{.obj}. For Unix object file formats (\c{aout}, \c{as86},
-\c{coff}, \c{elf32}, \c{elf64}, \c{elfx32}, \c{ieee}, \c{macho32} and
-\c{macho64}) it will substitute \c{.o}. For \c{dbg}, \c{rdf}, \c{ith}
-and \c{srec}, it will use \c{.dbg}, \c{.rdf}, \c{.ith} and \c{.srec},
-respectively, and for the \c{bin} format it will simply remove the
-extension, so that \c{myfile.asm} produces the output file \c{myfile}.
-
-If the output file already exists, NASM will overwrite it, unless it
-has the same name as the input file, in which case it will give a
-warning and use \i\c{nasm.out} as the output file name instead.
-
-For situations in which this behaviour is unacceptable, NASM
-provides the \c{-o} command-line option, which allows you to specify
-your desired output file name. You invoke \c{-o} by following it
-with the name you wish for the output file, either with or without
-an intervening space. For example:
-
-\c nasm -f bin program.asm -o program.com
-\c nasm -f bin driver.asm -odriver.sys
-
-Note that this is a small o, and is different from a capital O , which
-is used to specify the number of optimisation passes required. See \k{opt-O}.
-
-
-\S{opt-f} The \i\c{-f} Option: Specifying the \i{Output File Format}
-
-If you do not supply the \c{-f} option to NASM, it will choose an
-output file format for you itself. In the distribution versions of
-NASM, the default is always \i\c{bin}; if you've compiled your own
-copy of NASM, you can redefine \i\c{OF_DEFAULT} at compile time and
-choose what you want the default to be.
-
-Like \c{-o}, the intervening space between \c{-f} and the output
-file format is optional; so \c{-f elf} and \c{-felf} are both valid.
-
-A complete list of the available output file formats can be given by
-issuing the command \i\c{nasm -hf}.
-
-
-\S{opt-l} The \i\c{-l} Option: Generating a \i{Listing File}
-
-If you supply the \c{-l} option to NASM, followed (with the usual
-optional space) by a file name, NASM will generate a
-\i{source-listing file} for you, in which addresses and generated
-code are listed on the left, and the actual source code, with
-expansions of multi-line macros (except those which specifically
-request no expansion in source listings: see \k{nolist}) on the
-right. For example:
-
-\c nasm -f elf myfile.asm -l myfile.lst
-
-If a list file is selected, you may turn off listing for a
-section of your source with \c{[list -]}, and turn it back on
-with \c{[list +]}, (the default, obviously). There is no "user
-form" (without the brackets). This can be used to list only
-sections of interest, avoiding excessively long listings.
-
-
-\S{opt-M} The \i\c{-M} Option: Generate \i{Makefile Dependencies}
-
-This option can be used to generate makefile dependencies on stdout.
-This can be redirected to a file for further processing. For example:
-
-\c nasm -M myfile.asm > myfile.dep
-
-
-\S{opt-MG} The \i\c{-MG} Option: Generate \i{Makefile Dependencies}
-
-This option can be used to generate makefile dependencies on stdout.
-This differs from the \c{-M} option in that if a nonexisting file is
-encountered, it is assumed to be a generated file and is added to the
-dependency list without a prefix.
-
-
-\S{opt-MF} The \i\c\{-MF} Option: Set Makefile Dependency File
-
-This option can be used with the \c{-M} or \c{-MG} options to send the
-output to a file, rather than to stdout.  For example:
-
-\c nasm -M -MF myfile.dep myfile.asm
-
-
-\S{opt-MD} The \i\c{-MD} Option: Assemble and Generate Dependencies
-
-The \c{-MD} option acts as the combination of the \c{-M} and \c{-MF}
-options (i.e. a filename has to be specified.)  However, unlike the
-\c{-M} or \c{-MG} options, \c{-MD} does \e{not} inhibit the normal
-operation of the assembler.  Use this to automatically generate
-updated dependencies with every assembly session.  For example:
-
-\c nasm -f elf -o myfile.o -MD myfile.dep myfile.asm
-
-
-\S{opt-MT} The \i\c{-MT} Option: Dependency Target Name
-
-The \c{-MT} option can be used to override the default name of the
-dependency target.  This is normally the same as the output filename,
-specified by the \c{-o} option.
-
-
-\S{opt-MQ} The \i\c{-MQ} Option: Dependency Target Name (Quoted)
-
-The \c{-MQ} option acts as the \c{-MT} option, except it tries to
-quote characters that have special meaning in Makefile syntax.  This
-is not foolproof, as not all characters with special meaning are
-quotable in Make.  The default output (if no \c{-MT} or \c{-MQ} option
-is specified) is automatically quoted.
-
-
-\S{opt-MP} The \i\c{-MP} Option: Emit phony targets
-
-When used with any of the dependency generation options, the \c{-MP}
-option causes NASM to emit a phony target without dependencies for
-each header file.  This prevents Make from complaining if a header
-file has been removed.
-
-
-\S{opt-F} The \i\c{-F} Option: Selecting a \i{Debug Information Format}
-
-This option is used to select the format of the debug information
-emitted into the output file, to be used by a debugger (or \e{will}
-be). Prior to version 2.03.01, the use of this switch did \e{not} enable
-output of the selected debug info format.  Use \c{-g}, see \k{opt-g},
-to enable output.  Versions 2.03.01 and later automatically enable \c{-g}
-if \c{-F} is specified.
-
-A complete list of the available debug file formats for an output
-format can be seen by issuing the command \c{nasm -f <format> -y}.  Not
-all output formats currently support debugging output.  See \k{opt-y}.
-
-This should not be confused with the \c{-f dbg} output format option which
-is not built into NASM by default. For information on how
-to enable it when building from the sources, see \k{dbgfmt}.
-
-
-\S{opt-g} The \i\c{-g} Option: Enabling \i{Debug Information}.
-
-This option can be used to generate debugging information in the specified
-format. See \k{opt-F}. Using \c{-g} without \c{-F} results in emitting
-debug info in the default format, if any, for the selected output format.
-If no debug information is currently implemented in the selected output
-format, \c{-g} is \e{silently ignored}.
-
-
-\S{opt-X} The \i\c{-X} Option: Selecting an \i{Error Reporting Format}
-
-This option can be used to select an error reporting format for any
-error messages that might be produced by NASM.
-
-Currently, two error reporting formats may be selected.  They are
-the \c{-Xvc} option and the \c{-Xgnu} option.  The GNU format is
-the default and looks like this:
-
-\c filename.asm:65: error: specific error message
-
-where \c{filename.asm} is the name of the source file in which the
-error was detected, \c{65} is the source file line number on which
-the error was detected, \c{error} is the severity of the error (this
-could be \c{warning}), and \c{specific error message} is a more
-detailed text message which should help pinpoint the exact problem.
-
-The other format, specified by \c{-Xvc} is the style used by Microsoft
-Visual C++ and some other programs.  It looks like this:
-
-\c filename.asm(65) : error: specific error message
-
-where the only difference is that the line number is in parentheses
-instead of being delimited by colons.
-
-See also the \c{Visual C++} output format, \k{win32fmt}.
-
-\S{opt-Z} The \i\c{-Z} Option: Send Errors to a File
-
-Under \I{DOS}\c{MS-DOS} it can be difficult (though there are ways) to
-redirect the standard-error output of a program to a file. Since
-NASM usually produces its warning and \i{error messages} on
-\i\c{stderr}, this can make it hard to capture the errors if (for
-example) you want to load them into an editor.
-
-NASM therefore provides the \c{-Z} option, taking a filename argument
-which causes errors to be sent to the specified files rather than
-standard error. Therefore you can \I{redirecting errors}redirect
-the errors into a file by typing
-
-\c nasm -Z myfile.err -f obj myfile.asm
-
-In earlier versions of NASM, this option was called \c{-E}, but it was
-changed since \c{-E} is an option conventionally used for
-preprocessing only, with disastrous results.  See \k{opt-E}.
-
-\S{opt-s} The \i\c{-s} Option: Send Errors to \i\c{stdout}
-
-The \c{-s} option redirects \i{error messages} to \c{stdout} rather
-than \c{stderr}, so it can be redirected under \I{DOS}\c{MS-DOS}. To
-assemble the file \c{myfile.asm} and pipe its output to the \c{more}
-program, you can type:
-
-\c nasm -s -f obj myfile.asm | more
-
-See also the \c{-Z} option, \k{opt-Z}.
-
-
-\S{opt-i} The \i\c{-i}\I\c{-I} Option: Include File Search Directories
-
-When NASM sees the \i\c{%include} or \i\c{%pathsearch} directive in a
-source file (see \k{include}, \k{pathsearch} or \k{incbin}), it will
-search for the given file not only in the current directory, but also
-in any directories specified on the command line by the use of the
-\c{-i} option. Therefore you can include files from a \i{macro
-library}, for example, by typing
-
-\c nasm -ic:\macrolib\ -f obj myfile.asm
-
-(As usual, a space between \c{-i} and the path name is allowed, and
-optional).
-
-NASM, in the interests of complete source-code portability, does not
-understand the file naming conventions of the OS it is running on;
-the string you provide as an argument to the \c{-i} option will be
-prepended exactly as written to the name of the include file.
-Therefore the trailing backslash in the above example is necessary.
-Under Unix, a trailing forward slash is similarly necessary.
-
-(You can use this to your advantage, if you're really \i{perverse},
-by noting that the option \c{-ifoo} will cause \c{%include "bar.i"}
-to search for the file \c{foobar.i}...)
-
-If you want to define a \e{standard} \i{include search path},
-similar to \c{/usr/include} on Unix systems, you should place one or
-more \c{-i} directives in the \c{NASMENV} environment variable (see
-\k{nasmenv}).
-
-For Makefile compatibility with many C compilers, this option can also
-be specified as \c{-I}.
-
-
-\S{opt-p} The \i\c{-p}\I\c{-P} Option: \I{pre-including files}Pre-Include a File
-
-\I\c{%include}NASM allows you to specify files to be
-\e{pre-included} into your source file, by the use of the \c{-p}
-option. So running
-
-\c nasm myfile.asm -p myinc.inc
-
-is equivalent to running \c{nasm myfile.asm} and placing the
-directive \c{%include "myinc.inc"} at the start of the file.
-
-For consistency with the \c{-I}, \c{-D} and \c{-U} options, this
-option can also be specified as \c{-P}.
-
-
-\S{opt-d} The \i\c{-d}\I\c{-D} Option: \I{pre-defining macros}Pre-Define a Macro
-
-\I\c{%define}Just as the \c{-p} option gives an alternative to placing
-\c{%include} directives at the start of a source file, the \c{-d}
-option gives an alternative to placing a \c{%define} directive. You
-could code
-
-\c nasm myfile.asm -dFOO=100
-
-as an alternative to placing the directive
-
-\c %define FOO 100
-
-at the start of the file. You can miss off the macro value, as well:
-the option \c{-dFOO} is equivalent to coding \c{%define FOO}. This
-form of the directive may be useful for selecting \i{assembly-time
-options} which are then tested using \c{%ifdef}, for example
-\c{-dDEBUG}.
-
-For Makefile compatibility with many C compilers, this option can also
-be specified as \c{-D}.
-
-
-\S{opt-u} The \i\c{-u}\I\c{-U} Option: \I{Undefining macros}Undefine a Macro
-
-\I\c{%undef}The \c{-u} option undefines a macro that would otherwise
-have been pre-defined, either automatically or by a \c{-p} or \c{-d}
-option specified earlier on the command lines.
-
-For example, the following command line:
-
-\c nasm myfile.asm -dFOO=100 -uFOO
-
-would result in \c{FOO} \e{not} being a predefined macro in the
-program. This is useful to override options specified at a different
-point in a Makefile.
-
-For Makefile compatibility with many C compilers, this option can also
-be specified as \c{-U}.
-
-
-\S{opt-E} The \i\c{-E}\I{-e} Option: Preprocess Only
-
-NASM allows the \i{preprocessor} to be run on its own, up to a
-point. Using the \c{-E} option (which requires no arguments) will
-cause NASM to preprocess its input file, expand all the macro
-references, remove all the comments and preprocessor directives, and
-print the resulting file on standard output (or save it to a file,
-if the \c{-o} option is also used).
-
-This option cannot be applied to programs which require the
-preprocessor to evaluate \I{preprocessor expressions}\i{expressions}
-which depend on the values of symbols: so code such as
-
-\c %assign tablesize ($-tablestart)
-
-will cause an error in \i{preprocess-only mode}.
-
-For compatiblity with older version of NASM, this option can also be
-written \c{-e}.  \c{-E} in older versions of NASM was the equivalent
-of the current \c{-Z} option, \k{opt-Z}.
-
-\S{opt-a} The \i\c{-a} Option: Don't Preprocess At All
-
-If NASM is being used as the back end to a compiler, it might be
-desirable to \I{suppressing preprocessing}suppress preprocessing
-completely and assume the compiler has already done it, to save time
-and increase compilation speeds. The \c{-a} option, requiring no
-argument, instructs NASM to replace its powerful \i{preprocessor}
-with a \i{stub preprocessor} which does nothing.
-
-
-\S{opt-O} The \i\c{-O} Option: Specifying \i{Multipass Optimization}
-
-Using the \c{-O} option, you can tell NASM to carry out different
-levels of optimization.  The syntax is:
-
-\b \c{-O0}: No optimization. All operands take their long forms,
-        if a short form is not specified, except conditional jumps.
-        This is intended to match NASM 0.98 behavior.
-
-\b \c{-O1}: Minimal optimization. As above, but immediate operands
-        which will fit in a signed byte are optimized,
-        unless the long form is specified.  Conditional jumps default
-        to the long form unless otherwise specified.
-
-\b \c{-Ox} (where \c{x} is the actual letter \c{x}): Multipass optimization.
-        Minimize branch offsets and signed immediate bytes,
-        overriding size specification unless the \c{strict} keyword
-        has been used (see \k{strict}).  For compatibility with earlier
-        releases, the letter \c{x} may also be any number greater than
-        one. This number has no effect on the actual number of passes.
-
-The \c{-Ox} mode is recommended for most uses, and is the default
-since NASM 2.09.
-
-Note that this is a capital \c{O}, and is different from a small \c{o}, which
-is used to specify the output file name. See \k{opt-o}.
-
-
-\S{opt-t} The \i\c{-t} Option: Enable TASM Compatibility Mode
-
-NASM includes a limited form of compatibility with Borland's \i\c{TASM}.
-When NASM's \c{-t} option is used, the following changes are made:
-
-\b local labels may be prefixed with \c{@@} instead of \c{.}
-
-\b size override is supported within brackets. In TASM compatible mode,
-a size override inside square brackets changes the size of the operand,
-and not the address type of the operand as it does in NASM syntax. E.g.
-\c{mov eax,[DWORD val]} is valid syntax in TASM compatibility mode.
-Note that you lose the ability to override the default address type for
-the instruction.
-
-\b unprefixed forms of some directives supported (\c{arg}, \c{elif},
-\c{else}, \c{endif}, \c{if}, \c{ifdef}, \c{ifdifi}, \c{ifndef},
-\c{include}, \c{local})
-
-\S{opt-w} The \i\c{-w} and \i\c{-W} Options: Enable or Disable Assembly \i{Warnings}
-
-NASM can observe many conditions during the course of assembly which
-are worth mentioning to the user, but not a sufficiently severe
-error to justify NASM refusing to generate an output file. These
-conditions are reported like errors, but come up with the word
-`warning' before the message. Warnings do not prevent NASM from
-generating an output file and returning a success status to the
-operating system.
-
-Some conditions are even less severe than that: they are only
-sometimes worth mentioning to the user. Therefore NASM supports the
-\c{-w} command-line option, which enables or disables certain
-classes of assembly warning. Such warning classes are described by a
-name, for example \c{orphan-labels}; you can enable warnings of
-this class by the command-line option \c{-w+orphan-labels} and
-disable it by \c{-w-orphan-labels}.
-
-The current \i{warning classes} are:
-
-\b \i\c{other} specifies any warning not otherwise specified in any
-class.
-
-\b \i\c{macro-params} covers warnings about \i{multi-line macros}
-being invoked with the wrong number of parameters. This warning
-class is enabled by default; see \k{mlmacover} for an example of why
-you might want to disable it.
-
-\b \i\c{macro-selfref} warns if a macro references itself. This
-warning class is disabled by default.
-
-\b\i\c{macro-defaults} warns when a macro has more default
-parameters than optional parameters. This warning class
-is enabled by default; see \k{mlmacdef} for why you might want to disable it.
-
-\b \i\c{orphan-labels} covers warnings about source lines which
-contain no instruction but define a label without a trailing colon.
-NASM warns about this somewhat obscure condition by default;
-see \k{syntax} for more information.
-
-\b \i\c{number-overflow} covers warnings about numeric constants which
-don't fit in 64 bits. This warning class is enabled by default.
-
-\b \i\c{gnu-elf-extensions} warns if 8-bit or 16-bit relocations
-are used in \c{-f elf} format. The GNU extensions allow this.
-This warning class is disabled by default.
-
-\b \i\c{float-overflow} warns about floating point overflow.
-Enabled by default.
-
-\b \i\c{float-denorm} warns about floating point denormals.
-Disabled by default.
-
-\b \i\c{float-underflow} warns about floating point underflow.
-Disabled by default.
-
-\b \i\c{float-toolong} warns about too many digits in floating-point numbers.
-Enabled by default.
-
-\b \i\c{user} controls \c{%warning} directives (see \k{pperror}).
-Enabled by default.
-
-\b \i\c{lock} warns about \c{LOCK} prefixes on unlockable instructions.
-Enabled by default.
-
-\b \i\c{hle} warns about invalid use of the HLE \c{XACQUIRE} or \c{XRELEASE}
-prefixes.
-Enabled by default.
-
-\b \i\c{bnd} warns about ineffective use of the \c{BND} prefix when a relaxed
-form of jmp instruction becomes jmp short form.
-Enabled by default.
-
-\b \i\c{zext-reloc} warns that a relocation has been zero-extended due
-to limitations in the output format.
-
-\b \i\c\{ptr} warns about keywords used in other assemblers that might
-indicate a mistake in the source code.  Currently only the MASM
-\c{PTR} keyword is recognized.
-
-\b \i\c{bad-pragma} warns about a malformed or otherwise unparsable
-\c{%pragma} directive.  Disabled by default.
-
-\b \i\c{unknown-pragma} warns about an unknown \c{%pragma} directive.
-This is not yet implemented.  Disabled by default.
-
-\b \i\c{not-my-pragma} warns about a \c{%pragma} directive which is
-not applicable to this particular assembly session.  This is not yet
-implemented.  Disabled by default.
-
-\b \i\c{unknown-warning} warns about a \c{-w} or \c{-W} option or a
-\c{[WARNING]} directive that contains an unknown warning name or is
-otherwise not possible to process.
-
-\b \i\c{all} is an alias for \e{all} suppressible warning classes.
-Thus, \c{-w+all} enables all available warnings, and \c{-w-all}
-disables warnings entirely (since NASM 2.13).
-
-Since version 2.00, NASM has also supported the gcc-like syntax
-\c{-Wwarning-class} and \c{-Wno-warning-class} instead of \c{-w+warning-class} and
-\c{-w-warning-class}, respectively; both syntaxes work identically.
-
-The option \c{-w+error} or \i\c{-Werror} can be used to treat warnings
-as errors.  This can be controlled on a per warning class basis
-(\c{-w+error=}\e{warning-class}); if no \e{warning-class} is specified
-NASM treats it as \c{-w+error=all}; the same applies to \c{-w-error}
-or \i\c{-Wno-error}, of course.
-
-In addition, you can control warnings in the source code itself, using
-the \i\c{[WARNING]} directive.  See \k{asmdir-warning}.
-
-
-\S{opt-v} The \i\c{-v} Option: Display \i{Version} Info
-
-Typing \c{NASM -v} will display the version of NASM which you are using,
-and the date on which it was compiled.
-
-You will need the version number if you report a bug.
-
-For command-line compatibility with Yasm, the form \i\c{--v} is also
-accepted for this option starting in NASM version 2.11.05.
-
-\S{opt-y} The \i\c{-y} Option: Display Available Debug Info Formats
-
-Typing \c{nasm -f <option> -y} will display a list of the available
-debug info formats for the given output format. The default format
-is indicated by an asterisk. For example:
-
-\c nasm -f elf -y
-
-\c valid debug formats for 'elf32' output format are
-\c   ('*' denotes default):
-\c   * stabs     ELF32 (i386) stabs debug format for Linux
-\c     dwarf     elf32 (i386) dwarf debug format for Linux
-
-
-\S{opt-pfix} The \i\c{--prefix} and \i\c{--postfix} Options.
-
-The \c{--prefix} and \c{--postfix} options prepend or append
-(respectively) the given argument to all \c{global} or
-\c{extern} variables. E.g. \c{--prefix _} will prepend the
-underscore to all global and external variables, as C requires it in
-some, but not all, system calling conventions.
-
-
-\S{nasmenv} The \i\c{NASMENV} \i{Environment} Variable
-
-If you define an environment variable called \c{NASMENV}, the program
-will interpret it as a list of extra command-line options, which are
-processed before the real command line. You can use this to define
-standard search directories for include files, by putting \c{-i}
-options in the \c{NASMENV} variable.
-
-The value of the variable is split up at white space, so that the
-value \c{-s -ic:\\nasmlib\\} will be treated as two separate options.
-However, that means that the value \c{-dNAME="my name"} won't do
-what you might want, because it will be split at the space and the
-NASM command-line processing will get confused by the two
-nonsensical words \c{-dNAME="my} and \c{name"}.
-
-To get round this, NASM provides a feature whereby, if you begin the
-\c{NASMENV} environment variable with some character that isn't a minus
-sign, then NASM will treat this character as the \i{separator
-character} for options. So setting the \c{NASMENV} variable to the
-value \c{!-s!-ic:\\nasmlib\\} is equivalent to setting it to \c{-s
--ic:\\nasmlib\\}, but \c{!-dNAME="my name"} will work.
-
-This environment variable was previously called \c{NASM}. This was
-changed with version 0.98.31.
-
-
-\H{qstart} \i{Quick Start} for \i{MASM} Users
-
-If you're used to writing programs with MASM, or with \i{TASM} in
-MASM-compatible (non-Ideal) mode, or with \i\c{a86}, this section
-attempts to outline the major differences between MASM's syntax and
-NASM's. If you're not already used to MASM, it's probably worth
-skipping this section.
-
-
-\S{qscs} NASM Is \I{case sensitivity}Case-Sensitive
-
-One simple difference is that NASM is case-sensitive. It makes a
-difference whether you call your label \c{foo}, \c{Foo} or \c{FOO}.
-If you're assembling to \c{DOS} or \c{OS/2} \c{.OBJ} files, you can
-invoke the \i\c{UPPERCASE} directive (documented in \k{objfmt}) to
-ensure that all symbols exported to other code modules are forced
-to be upper case; but even then, \e{within} a single module, NASM
-will distinguish between labels differing only in case.
-
-
-\S{qsbrackets} NASM Requires \i{Square Brackets} For \i{Memory References}
-
-NASM was designed with simplicity of syntax in mind. One of the
-\i{design goals} of NASM is that it should be possible, as far as is
-practical, for the user to look at a single line of NASM code
-and tell what opcode is generated by it. You can't do this in MASM:
-if you declare, for example,
-
-\c foo     equ     1
-\c bar     dw      2
-
-then the two lines of code
-
-\c         mov     ax,foo
-\c         mov     ax,bar
-
-generate completely different opcodes, despite having
-identical-looking syntaxes.
-
-NASM avoids this undesirable situation by having a much simpler
-syntax for memory references. The rule is simply that any access to
-the \e{contents} of a memory location requires square brackets
-around the address, and any access to the \e{address} of a variable
-doesn't. So an instruction of the form \c{mov ax,foo} will
-\e{always} refer to a compile-time constant, whether it's an \c{EQU}
-or the address of a variable; and to access the \e{contents} of the
-variable \c{bar}, you must code \c{mov ax,[bar]}.
-
-This also means that NASM has no need for MASM's \i\c{OFFSET}
-keyword, since the MASM code \c{mov ax,offset bar} means exactly the
-same thing as NASM's \c{mov ax,bar}. If you're trying to get
-large amounts of MASM code to assemble sensibly under NASM, you
-can always code \c{%idefine offset} to make the preprocessor treat
-the \c{OFFSET} keyword as a no-op.
-
-This issue is even more confusing in \i\c{a86}, where declaring a
-label with a trailing colon defines it to be a `label' as opposed to
-a `variable' and causes \c{a86} to adopt NASM-style semantics; so in
-\c{a86}, \c{mov ax,var} has different behaviour depending on whether
-\c{var} was declared as \c{var: dw 0} (a label) or \c{var dw 0} (a
-word-size variable). NASM is very simple by comparison:
-\e{everything} is a label.
-
-NASM, in the interests of simplicity, also does not support the
-\i{hybrid syntaxes} supported by MASM and its clones, such as
-\c{mov ax,table[bx]}, where a memory reference is denoted by one
-portion outside square brackets and another portion inside. The
-correct syntax for the above is \c{mov ax,[table+bx]}. Likewise,
-\c{mov ax,es:[di]} is wrong and \c{mov ax,[es:di]} is right.
-
-
-\S{qstypes} NASM Doesn't Store \i{Variable Types}
-
-NASM, by design, chooses not to remember the types of variables you
-declare. Whereas MASM will remember, on seeing \c{var dw 0}, that
-you declared \c{var} as a word-size variable, and will then be able
-to fill in the \i{ambiguity} in the size of the instruction \c{mov
-var,2}, NASM will deliberately remember nothing about the symbol
-\c{var} except where it begins, and so you must explicitly code
-\c{mov word [var],2}.
-
-For this reason, NASM doesn't support the \c{LODS}, \c{MOVS},
-\c{STOS}, \c{SCAS}, \c{CMPS}, \c{INS}, or \c{OUTS} instructions,
-but only supports the forms such as \c{LODSB}, \c{MOVSW}, and
-\c{SCASD}, which explicitly specify the size of the components of
-the strings being manipulated.
-
-
-\S{qsassume} NASM Doesn't \i\c{ASSUME}
-
-As part of NASM's drive for simplicity, it also does not support the
-\c{ASSUME} directive. NASM will not keep track of what values you
-choose to put in your segment registers, and will never
-\e{automatically} generate a \i{segment override} prefix.
-
-
-\S{qsmodel} NASM Doesn't Support \i{Memory Models}
-
-NASM also does not have any directives to support different 16-bit
-memory models. The programmer has to keep track of which functions
-are supposed to be called with a \i{far call} and which with a
-\i{near call}, and is responsible for putting the correct form of
-\c{RET} instruction (\c{RETN} or \c{RETF}; NASM accepts \c{RET}
-itself as an alternate form for \c{RETN}); in addition, the
-programmer is responsible for coding CALL FAR instructions where
-necessary when calling \e{external} functions, and must also keep
-track of which external variable definitions are far and which are
-near.
-
-
-\S{qsfpu} \i{Floating-Point} Differences
-
-NASM uses different names to refer to floating-point registers from
-MASM: where MASM would call them \c{ST(0)}, \c{ST(1)} and so on, and
-\i\c{a86} would call them simply \c{0}, \c{1} and so on, NASM
-chooses to call them \c{st0}, \c{st1} etc.
-
-As of version 0.96, NASM now treats the instructions with
-\i{`nowait'} forms in the same way as MASM-compatible assemblers.
-The idiosyncratic treatment employed by 0.95 and earlier was based
-on a misunderstanding by the authors.
-
-
-\S{qsother} Other Differences
-
-For historical reasons, NASM uses the keyword \i\c{TWORD} where MASM
-and compatible assemblers use \i\c{TBYTE}.
-
-NASM does not declare \i{uninitialized storage} in the same way as
-MASM: where a MASM programmer might use \c{stack db 64 dup (?)},
-NASM requires \c{stack resb 64}, intended to be read as `reserve 64
-bytes'. For a limited amount of compatibility, since NASM treats
-\c{?} as a valid character in symbol names, you can code \c{? equ 0}
-and then writing \c{dw ?} will at least do something vaguely useful.
-\I\c{RESB}\i\c{DUP} is still not a supported syntax, however.
-
-In addition to all of this, macros and directives work completely
-differently to MASM. See \k{preproc} and \k{directive} for further
-details.
-
-
-\C{lang} The NASM Language
-
-\H{syntax} Layout of a NASM Source Line
-
-Like most assemblers, each NASM source line contains (unless it
-is a macro, a preprocessor directive or an assembler directive: see
-\k{preproc} and \k{directive}) some combination of the four fields
-
-\c label:    instruction operands        ; comment
-
-As usual, most of these fields are optional; the presence or absence
-of any combination of a label, an instruction and a comment is allowed.
-Of course, the operand field is either required or forbidden by the
-presence and nature of the instruction field.
-
-NASM uses backslash (\\) as the line continuation character; if a line
-ends with backslash, the next line is considered to be a part of the
-backslash-ended line.
-
-NASM places no restrictions on white space within a line: labels may
-have white space before them, or instructions may have no space
-before them, or anything. The \i{colon} after a label is also
-optional. (Note that this means that if you intend to code \c{lodsb}
-alone on a line, and type \c{lodab} by accident, then that's still a
-valid source line which does nothing but define a label. Running
-NASM with the command-line option
-\I{orphan-labels}\c{-w+orphan-labels} will cause it to warn you if
-you define a label alone on a line without a \i{trailing colon}.)
-
-\i{Valid characters} in labels are letters, numbers, \c{_}, \c{$},
-\c{#}, \c{@}, \c{~}, \c{.}, and \c{?}. The only characters which may
-be used as the \e{first} character of an identifier are letters,
-\c{.} (with special meaning: see \k{locallab}), \c{_} and \c{?}.
-An identifier may also be prefixed with a \I{$, prefix}\c{$} to
-indicate that it is intended to be read as an identifier and not a
-reserved word; thus, if some other module you are linking with
-defines a symbol called \c{eax}, you can refer to \c{$eax} in NASM
-code to distinguish the symbol from the register. Maximum length of
-an identifier is 4095 characters.
-
-The instruction field may contain any machine instruction: Pentium
-and P6 instructions, FPU instructions, MMX instructions and even
-undocumented instructions are all supported. The instruction may be
-prefixed by \c{LOCK}, \c{REP}, \c{REPE}/\c{REPZ}, \c{REPNE}/\c{REPNZ},
-\c{XACQUIRE}/\c{XRELEASE} or \c{BND}/\c{NOBND}, in the usual way. Explicit
-\I{address-size prefixes}address-size and \i{operand-size prefixes} \i\c{A16},
-\i\c{A32}, \i\c{A64}, \i\c{O16} and \i\c{O32}, \i\c{O64} are provided - one example of their use
-is given in \k{mixsize}. You can also use the name of a \I{segment
-override}segment register as an instruction prefix: coding
-\c{es mov [bx],ax} is equivalent to coding \c{mov [es:bx],ax}. We
-recommend the latter syntax, since it is consistent with other
-syntactic features of the language, but for instructions such as
-\c{LODSB}, which has no operands and yet can require a segment
-override, there is no clean syntactic way to proceed apart from
-\c{es lodsb}.
-
-An instruction is not required to use a prefix: prefixes such as
-\c{CS}, \c{A32}, \c{LOCK} or \c{REPE} can appear on a line by
-themselves, and NASM will just generate the prefix bytes.
-
-In addition to actual machine instructions, NASM also supports a
-number of pseudo-instructions, described in \k{pseudop}.
-
-Instruction \i{operands} may take a number of forms: they can be
-registers, described simply by the register name (e.g. \c{ax},
-\c{bp}, \c{ebx}, \c{cr0}: NASM does not use the \c{gas}-style
-syntax in which register names must be prefixed by a \c{%} sign), or
-they can be \i{effective addresses} (see \k{effaddr}), constants
-(\k{const}) or expressions (\k{expr}).
-
-For x87 \i{floating-point} instructions, NASM accepts a wide range of
-syntaxes: you can use two-operand forms like MASM supports, or you
-can use NASM's native single-operand forms in most cases.
-\# Details of
-\# all forms of each supported instruction are given in
-\# \k{iref}.
-For example, you can code:
-
-\c         fadd    st1             ; this sets st0 := st0 + st1
-\c         fadd    st0,st1         ; so does this
-\c
-\c         fadd    st1,st0         ; this sets st1 := st1 + st0
-\c         fadd    to st1          ; so does this
-
-Almost any x87 floating-point instruction that references memory must
-use one of the prefixes \i\c{DWORD}, \i\c{QWORD} or \i\c{TWORD} to
-indicate what size of \i{memory operand} it refers to.
-
-
-\H{pseudop} \i{Pseudo-Instructions}
-
-Pseudo-instructions are things which, though not real x86 machine
-instructions, are used in the instruction field anyway because that's
-the most convenient place to put them. The current pseudo-instructions
-are \i\c{DB}, \i\c{DW}, \i\c{DD}, \i\c{DQ}, \i\c{DT}, \i\c{DO},
-\i\c{DY} and \i\c\{DZ}; their \i{uninitialized} counterparts
-\i\c{RESB}, \i\c{RESW}, \i\c{RESD}, \i\c{RESQ}, \i\c{REST},
-\i\c{RESO}, \i\c{RESY} and \i\c\{RESZ}; the \i\c{INCBIN} command, the
-\i\c{EQU} command, and the \i\c{TIMES} prefix.
-
-
-\S{db} \c{DB} and Friends: Declaring Initialized Data
-
-\i\c{DB}, \i\c{DW}, \i\c{DD}, \i\c{DQ}, \i\c{DT}, \i\c{DO}, \i\c{DY}
-and \i\c{DZ} are used, much as in MASM, to declare initialized data in
-the output file. They can be invoked in a wide range of ways:
-\I{floating-point}\I{character constant}\I{string constant}
-
-\c       db    0x55                ; just the byte 0x55
-\c       db    0x55,0x56,0x57      ; three bytes in succession
-\c       db    'a',0x55            ; character constants are OK
-\c       db    'hello',13,10,'$'   ; so are string constants
-\c       dw    0x1234              ; 0x34 0x12
-\c       dw    'a'                 ; 0x61 0x00 (it's just a number)
-\c       dw    'ab'                ; 0x61 0x62 (character constant)
-\c       dw    'abc'               ; 0x61 0x62 0x63 0x00 (string)
-\c       dd    0x12345678          ; 0x78 0x56 0x34 0x12
-\c       dd    1.234567e20         ; floating-point constant
-\c       dq    0x123456789abcdef0  ; eight byte constant
-\c       dq    1.234567e20         ; double-precision float
-\c       dt    1.234567e20         ; extended-precision float
-
-\c{DT}, \c{DO}, \c{DY} and \c{DZ} do not accept \i{numeric constants}
-as operands.
-
-
-\S{resb} \c{RESB} and Friends: Declaring \i{Uninitialized} Data
-
-\i\c{RESB}, \i\c{RESW}, \i\c{RESD}, \i\c{RESQ}, \i\c{REST},
-\i\c{RESO}, \i\c{RESY} and \i\c\{RESZ} are designed to be used in the
-BSS section of a module: they declare \e{uninitialized} storage
-space. Each takes a single operand, which is the number of bytes,
-words, doublewords or whatever to reserve.  As stated in \k{qsother},
-NASM does not support the MASM/TASM syntax of reserving uninitialized
-space by writing \I\c{?}\c{DW ?} or similar things: this is what it
-does instead. The operand to a \c{RESB}-type pseudo-instruction is a
-\i\e{critical expression}: see \k{crit}.
-
-For example:
-
-\c buffer:         resb    64              ; reserve 64 bytes
-\c wordvar:        resw    1               ; reserve a word
-\c realarray       resq    10              ; array of ten reals
-\c ymmval:         resy    1               ; one YMM register
-\c zmmvals:        resz    32              ; 32 ZMM registers 
-
-\S{incbin} \i\c{INCBIN}: Including External \i{Binary Files}
-
-\c{INCBIN} is borrowed from the old Amiga assembler \i{DevPac}: it
-includes a binary file verbatim into the output file. This can be
-handy for (for example) including \i{graphics} and \i{sound} data
-directly into a game executable file. It can be called in one of
-these three ways:
-
-\c     incbin  "file.dat"             ; include the whole file
-\c     incbin  "file.dat",1024        ; skip the first 1024 bytes
-\c     incbin  "file.dat",1024,512    ; skip the first 1024, and
-\c                                    ; actually include at most 512
-
-\c{INCBIN} is both a directive and a standard macro; the standard
-macro version searches for the file in the include file search path
-and adds the file to the dependency lists.  This macro can be
-overridden if desired.
-
-
-\S{equ} \i\c{EQU}: Defining Constants
-
-\c{EQU} defines a symbol to a given constant value: when \c{EQU} is
-used, the source line must contain a label. The action of \c{EQU} is
-to define the given label name to the value of its (only) operand.
-This definition is absolute, and cannot change later. So, for
-example,
-
-\c message         db      'hello, world'
-\c msglen          equ     $-message
-
-defines \c{msglen} to be the constant 12. \c{msglen} may not then be
-redefined later. This is not a \i{preprocessor} definition either:
-the value of \c{msglen} is evaluated \e{once}, using the value of
-\c{$} (see \k{expr} for an explanation of \c{$}) at the point of
-definition, rather than being evaluated wherever it is referenced
-and using the value of \c{$} at the point of reference.
-
-
-\S{times} \i\c{TIMES}: \i{Repeating} Instructions or Data
-
-The \c{TIMES} prefix causes the instruction to be assembled multiple
-times. This is partly present as NASM's equivalent of the \i\c{DUP}
-syntax supported by \i{MASM}-compatible assemblers, in that you can
-code
-
-\c zerobuf:        times 64 db 0
-
-or similar things; but \c{TIMES} is more versatile than that. The
-argument to \c{TIMES} is not just a numeric constant, but a numeric
-\e{expression}, so you can do things like
-
-\c buffer: db      'hello, world'
-\c         times 64-$+buffer db ' '
-
-which will store exactly enough spaces to make the total length of
-\c{buffer} up to 64. Finally, \c{TIMES} can be applied to ordinary
-instructions, so you can code trivial \i{unrolled loops} in it:
-
-\c         times 100 movsb
-
-Note that there is no effective difference between \c{times 100 resb
-1} and \c{resb 100}, except that the latter will be assembled about
-100 times faster due to the internal structure of the assembler.
-
-The operand to \c{TIMES} is a critical expression (\k{crit}).
-
-Note also that \c{TIMES} can't be applied to \i{macros}: the reason
-for this is that \c{TIMES} is processed after the macro phase, which
-allows the argument to \c{TIMES} to contain expressions such as
-\c{64-$+buffer} as above. To repeat more than one line of code, or a
-complex macro, use the preprocessor \i\c{%rep} directive.
-
-
-\H{effaddr} Effective Addresses
-
-An \i{effective address} is any operand to an instruction which
-\I{memory reference}references memory. Effective addresses, in NASM,
-have a very simple syntax: they consist of an expression evaluating
-to the desired address, enclosed in \i{square brackets}. For
-example:
-
-\c wordvar dw      123
-\c         mov     ax,[wordvar]
-\c         mov     ax,[wordvar+1]
-\c         mov     ax,[es:wordvar+bx]
-
-Anything not conforming to this simple system is not a valid memory
-reference in NASM, for example \c{es:wordvar[bx]}.
-
-More complicated effective addresses, such as those involving more
-than one register, work in exactly the same way:
-
-\c         mov     eax,[ebx*2+ecx+offset]
-\c         mov     ax,[bp+di+8]
-
-NASM is capable of doing \i{algebra} on these effective addresses,
-so that things which don't necessarily \e{look} legal are perfectly
-all right:
-
-\c     mov     eax,[ebx*5]             ; assembles as [ebx*4+ebx]
-\c     mov     eax,[label1*2-label2]   ; ie [label1+(label1-label2)]
-
-Some forms of effective address have more than one assembled form;
-in most such cases NASM will generate the smallest form it can. For
-example, there are distinct assembled forms for the 32-bit effective
-addresses \c{[eax*2+0]} and \c{[eax+eax]}, and NASM will generally
-generate the latter on the grounds that the former requires four
-bytes to store a zero offset.
-
-NASM has a hinting mechanism which will cause \c{[eax+ebx]} and
-\c{[ebx+eax]} to generate different opcodes; this is occasionally
-useful because \c{[esi+ebp]} and \c{[ebp+esi]} have different
-default segment registers.
-
-However, you can force NASM to generate an effective address in a
-particular form by the use of the keywords \c{BYTE}, \c{WORD},
-\c{DWORD} and \c{NOSPLIT}. If you need \c{[eax+3]} to be assembled
-using a double-word offset field instead of the one byte NASM will
-normally generate, you can code \c{[dword eax+3]}. Similarly, you
-can force NASM to use a byte offset for a small value which it
-hasn't seen on the first pass (see \k{crit} for an example of such a
-code fragment) by using \c{[byte eax+offset]}. As special cases,
-\c{[byte eax]} will code \c{[eax+0]} with a byte offset of zero, and
-\c{[dword eax]} will code it with a double-word offset of zero. The
-normal form, \c{[eax]}, will be coded with no offset field.
-
-The form described in the previous paragraph is also useful if you
-are trying to access data in a 32-bit segment from within 16 bit code.
-For more information on this see the section on mixed-size addressing
-(\k{mixaddr}). In particular, if you need to access data with a known
-offset that is larger than will fit in a 16-bit value, if you don't
-specify that it is a dword offset, nasm will cause the high word of
-the offset to be lost.
-
-Similarly, NASM will split \c{[eax*2]} into \c{[eax+eax]} because
-that allows the offset field to be absent and space to be saved; in
-fact, it will also split \c{[eax*2+offset]} into
-\c{[eax+eax+offset]}. You can combat this behaviour by the use of
-the \c{NOSPLIT} keyword: \c{[nosplit eax*2]} will force
-\c{[eax*2+0]} to be generated literally. \c{[nosplit eax*1]} also has the
-same effect. In another way, a split EA form \c{[0, eax*2]} can be used, too.
-However, \c{NOSPLIT} in \c{[nosplit eax+eax]} will be ignored because user's
-intention here is considered as \c{[eax+eax]}.
-
-In 64-bit mode, NASM will by default generate absolute addresses.  The
-\i\c{REL} keyword makes it produce \c{RIP}-relative addresses. Since
-this is frequently the normally desired behaviour, see the \c{DEFAULT}
-directive (\k{default}). The keyword \i\c{ABS} overrides \i\c{REL}.
-
-A new form of split effective addres syntax is also supported. This is
-mainly intended for mib operands as used by MPX instructions, but can
-be used for any memory reference. The basic concept of this form is
-splitting base and index.
-
-\c      mov eax,[ebx+8,ecx*4]   ; ebx=base, ecx=index, 4=scale, 8=disp
-
-For mib operands, there are several ways of writing effective address depending
-on the tools. NASM supports all currently possible ways of mib syntax:
-
-\c      ; bndstx
-\c      ; next 5 lines are parsed same
-\c      ; base=rax, index=rbx, scale=1, displacement=3
-\c      bndstx [rax+0x3,rbx], bnd0      ; NASM - split EA
-\c      bndstx [rbx*1+rax+0x3], bnd0    ; GAS - '*1' indecates an index reg
-\c      bndstx [rax+rbx+3], bnd0        ; GAS - without hints
-\c      bndstx [rax+0x3], bnd0, rbx     ; ICC-1
-\c      bndstx [rax+0x3], rbx, bnd0     ; ICC-2
-
-When broadcasting decorator is used, the opsize keyword should match
-the size of each element.
-
-\c      VDIVPS zmm4, zmm5, dword [rbx]{1to16}   ; single-precision float
-\c      VDIVPS zmm4, zmm5, zword [rbx]          ; packed 512 bit memory
-
-
-\H{const} \i{Constants}
-
-NASM understands four different types of constant: numeric,
-character, string and floating-point.
-
-
-\S{numconst} \i{Numeric Constants}
-
-A numeric constant is simply a number. NASM allows you to specify
-numbers in a variety of number bases, in a variety of ways: you can
-suffix \c{H} or \c{X}, \c{D} or \c{T}, \c{Q} or \c{O}, and \c{B} or
-\c{Y} for \i{hexadecimal}, \i{decimal}, \i{octal} and \i{binary}
-respectively, or you can prefix \c{0x}, for hexadecimal in the style
-of C, or you can prefix \c{$} for hexadecimal in the style of Borland
-Pascal or Motorola Assemblers. Note, though, that the \I{$,
-prefix}\c{$} prefix does double duty as a prefix on identifiers (see
-\k{syntax}), so a hex number prefixed with a \c{$} sign must have a
-digit after the \c{$} rather than a letter.  In addition, current
-versions of NASM accept the prefix \c{0h} for hexadecimal, \c{0d} or
-\c{0t} for decimal, \c{0o} or \c{0q} for octal, and \c{0b} or \c{0y}
-for binary.  Please note that unlike C, a \c{0} prefix by itself does
-\e{not} imply an octal constant!
-
-Numeric constants can have underscores (\c{_}) interspersed to break
-up long strings.
-
-Some examples (all producing exactly the same code):
-
-\c         mov     ax,200          ; decimal
-\c         mov     ax,0200         ; still decimal
-\c         mov     ax,0200d        ; explicitly decimal
-\c         mov     ax,0d200        ; also decimal
-\c         mov     ax,0c8h         ; hex
-\c         mov     ax,$0c8         ; hex again: the 0 is required
-\c         mov     ax,0xc8         ; hex yet again
-\c         mov     ax,0hc8         ; still hex
-\c         mov     ax,310q         ; octal
-\c         mov     ax,310o         ; octal again
-\c         mov     ax,0o310        ; octal yet again
-\c         mov     ax,0q310        ; octal yet again
-\c         mov     ax,11001000b    ; binary
-\c         mov     ax,1100_1000b   ; same binary constant
-\c         mov     ax,1100_1000y   ; same binary constant once more
-\c         mov     ax,0b1100_1000  ; same binary constant yet again
-\c         mov     ax,0y1100_1000  ; same binary constant yet again
-
-\S{strings} \I{Strings}\i{Character Strings}
-
-A character string consists of up to eight characters enclosed in
-either single quotes (\c{'...'}), double quotes (\c{"..."}) or
-backquotes (\c{`...`}).  Single or double quotes are equivalent to
-NASM (except of course that surrounding the constant with single
-quotes allows double quotes to appear within it and vice versa); the
-contents of those are represented verbatim.  Strings enclosed in
-backquotes support C-style \c{\\}-escapes for special characters.
-
-
-The following \i{escape sequences} are recognized by backquoted strings:
-
-\c       \'          single quote (')
-\c       \"          double quote (")
-\c       \`          backquote (`)
-\c       \\\          backslash (\)
-\c       \?          question mark (?)
-\c       \a          BEL (ASCII 7)
-\c       \b          BS  (ASCII 8)
-\c       \t          TAB (ASCII 9)
-\c       \n          LF  (ASCII 10)
-\c       \v          VT  (ASCII 11)
-\c       \f          FF  (ASCII 12)
-\c       \r          CR  (ASCII 13)
-\c       \e          ESC (ASCII 27)
-\c       \377        Up to 3 octal digits - literal byte
-\c       \xFF        Up to 2 hexadecimal digits - literal byte
-\c       \u1234      4 hexadecimal digits - Unicode character
-\c       \U12345678  8 hexadecimal digits - Unicode character
-
-All other escape sequences are reserved.  Note that \c{\\0}, meaning a
-\c{NUL} character (ASCII 0), is a special case of the octal escape
-sequence.
-
-\i{Unicode} characters specified with \c{\\u} or \c{\\U} are converted to
-\i{UTF-8}.  For example, the following lines are all equivalent:
-
-\c       db `\u263a`            ; UTF-8 smiley face
-\c       db `\xe2\x98\xba`      ; UTF-8 smiley face
-\c       db 0E2h, 098h, 0BAh    ; UTF-8 smiley face
-
-
-\S{chrconst} \i{Character Constants}
-
-A character constant consists of a string up to eight bytes long, used
-in an expression context.  It is treated as if it was an integer.
-
-A character constant with more than one byte will be arranged
-with \i{little-endian} order in mind: if you code
-
-\c           mov eax,'abcd'
-
-then the constant generated is not \c{0x61626364}, but
-\c{0x64636261}, so that if you were then to store the value into
-memory, it would read \c{abcd} rather than \c{dcba}. This is also
-the sense of character constants understood by the Pentium's
-\i\c{CPUID} instruction.
-
-
-\S{strconst} \i{String Constants}
-
-String constants are character strings used in the context of some
-pseudo-instructions, namely the
-\I\c{DW}\I\c{DD}\I\c{DQ}\I\c{DT}\I\c{DO}\I\c{DY}\i\c{DB} family and
-\i\c{INCBIN} (where it represents a filename.)  They are also used in
-certain preprocessor directives.
-
-A string constant looks like a character constant, only longer. It
-is treated as a concatenation of maximum-size character constants
-for the conditions. So the following are equivalent:
-
-\c       db    'hello'               ; string constant
-\c       db    'h','e','l','l','o'   ; equivalent character constants
-
-And the following are also equivalent:
-
-\c       dd    'ninechars'           ; doubleword string constant
-\c       dd    'nine','char','s'     ; becomes three doublewords
-\c       db    'ninechars',0,0,0     ; and really looks like this
-
-Note that when used in a string-supporting context, quoted strings are
-treated as a string constants even if they are short enough to be a
-character constant, because otherwise \c{db 'ab'} would have the same
-effect as \c{db 'a'}, which would be silly. Similarly, three-character
-or four-character constants are treated as strings when they are
-operands to \c{DW}, and so forth.
-
-\S{unicode} \I{UTF-16}\I{UTF-32}\i{Unicode} Strings
-
-The special operators \i\c{__utf16__}, \i\c{__utf16le__},
-\i\c{__utf16be__}, \i\c{__utf32__}, \i\c{__utf32le__} and
-\i\c{__utf32be__} allows definition of Unicode strings.  They take a
-string in UTF-8 format and converts it to UTF-16 or UTF-32,
-respectively.  Unless the \c{be} forms are specified, the output is
-littleendian.
-
-For example:
-
-\c %define u(x) __utf16__(x)
-\c %define w(x) __utf32__(x)
-\c
-\c       dw u('C:\WINDOWS'), 0       ; Pathname in UTF-16
-\c       dd w(`A + B = \u206a`), 0   ; String in UTF-32
-
-The UTF operators can be applied either to strings passed to the
-\c{DB} family instructions, or to character constants in an expression
-context.
-
-\S{fltconst} \I{floating-point, constants}Floating-Point Constants
-
-\i{Floating-point} constants are acceptable only as arguments to
-\i\c{DB}, \i\c{DW}, \i\c{DD}, \i\c{DQ}, \i\c{DT}, and \i\c{DO}, or as
-arguments to the special operators \i\c{__float8__},
-\i\c{__float16__}, \i\c{__float32__}, \i\c{__float64__},
-\i\c{__float80m__}, \i\c{__float80e__}, \i\c{__float128l__}, and
-\i\c{__float128h__}.
-
-Floating-point constants are expressed in the traditional form:
-digits, then a period, then optionally more digits, then optionally an
-\c{E} followed by an exponent. The period is mandatory, so that NASM
-can distinguish between \c{dd 1}, which declares an integer constant,
-and \c{dd 1.0} which declares a floating-point constant.
-
-NASM also support C99-style hexadecimal floating-point: \c{0x},
-hexadecimal digits, period, optionally more hexadeximal digits, then
-optionally a \c{P} followed by a \e{binary} (not hexadecimal) exponent
-in decimal notation.  As an extension, NASM additionally supports the
-\c{0h} and \c{$} prefixes for hexadecimal, as well binary and octal
-floating-point, using the \c{0b} or \c{0y} and \c{0o} or \c{0q}
-prefixes, respectively.
-
-Underscores to break up groups of digits are permitted in
-floating-point constants as well.
-
-Some examples:
-
-\c       db    -0.2                    ; "Quarter precision"
-\c       dw    -0.5                    ; IEEE 754r/SSE5 half precision
-\c       dd    1.2                     ; an easy one
-\c       dd    1.222_222_222           ; underscores are permitted
-\c       dd    0x1p+2                  ; 1.0x2^2 = 4.0
-\c       dq    0x1p+32                 ; 1.0x2^32 = 4 294 967 296.0
-\c       dq    1.e10                   ; 10 000 000 000.0
-\c       dq    1.e+10                  ; synonymous with 1.e10
-\c       dq    1.e-10                  ; 0.000 000 000 1
-\c       dt    3.141592653589793238462 ; pi
-\c       do    1.e+4000                ; IEEE 754r quad precision
-
-The 8-bit "quarter-precision" floating-point format is
-sign:exponent:mantissa = 1:4:3 with an exponent bias of 7.  This
-appears to be the most frequently used 8-bit floating-point format,
-although it is not covered by any formal standard.  This is sometimes
-called a "\i{minifloat}."
-
-The special operators are used to produce floating-point numbers in
-other contexts.  They produce the binary representation of a specific
-floating-point number as an integer, and can use anywhere integer
-constants are used in an expression.  \c{__float80m__} and
-\c{__float80e__} produce the 64-bit mantissa and 16-bit exponent of an
-80-bit floating-point number, and \c{__float128l__} and
-\c{__float128h__} produce the lower and upper 64-bit halves of a 128-bit
-floating-point number, respectively.
-
-For example:
-
-\c       mov    rax,__float64__(3.141592653589793238462)
-
-... would assign the binary representation of pi as a 64-bit floating
-point number into \c{RAX}.  This is exactly equivalent to:
-
-\c       mov    rax,0x400921fb54442d18
-
-NASM cannot do compile-time arithmetic on floating-point constants.
-This is because NASM is designed to be portable - although it always
-generates code to run on x86 processors, the assembler itself can
-run on any system with an ANSI C compiler. Therefore, the assembler
-cannot guarantee the presence of a floating-point unit capable of
-handling the \i{Intel number formats}, and so for NASM to be able to
-do floating arithmetic it would have to include its own complete set
-of floating-point routines, which would significantly increase the
-size of the assembler for very little benefit.
-
-The special tokens \i\c{__Infinity__}, \i\c{__QNaN__} (or
-\i\c{__NaN__}) and \i\c{__SNaN__} can be used to generate
-\I{infinity}infinities, quiet \i{NaN}s, and signalling NaNs,
-respectively.  These are normally used as macros:
-
-\c %define Inf __Infinity__
-\c %define NaN __QNaN__
-\c
-\c       dq    +1.5, -Inf, NaN         ; Double-precision constants
-
-The \c{%use fp} standard macro package contains a set of convenience
-macros.  See \k{pkg_fp}.
-
-\S{bcdconst} \I{floating-point, packed BCD constants}Packed BCD Constants
-
-x87-style packed BCD constants can be used in the same contexts as
-80-bit floating-point numbers.  They are suffixed with \c{p} or
-prefixed with \c{0p}, and can include up to 18 decimal digits.
-
-As with other numeric constants, underscores can be used to separate
-digits.
-
-For example:
-
-\c       dt 12_345_678_901_245_678p
-\c       dt -12_345_678_901_245_678p
-\c       dt +0p33
-\c       dt 33p
-
-
-\H{expr} \i{Expressions}
-
-Expressions in NASM are similar in syntax to those in C.  Expressions
-are evaluated as 64-bit integers which are then adjusted to the
-appropriate size.
-
-NASM supports two special tokens in expressions, allowing
-calculations to involve the current assembly position: the
-\I{$, here}\c{$} and \i\c{$$} tokens. \c{$} evaluates to the assembly
-position at the beginning of the line containing the expression; so
-you can code an \i{infinite loop} using \c{JMP $}. \c{$$} evaluates
-to the beginning of the current section; so you can tell how far
-into the section you are by using \c{($-$$)}.
-
-The arithmetic \i{operators} provided by NASM are listed here, in
-increasing order of \i{precedence}.
-
-
-\S{expor} \i\c{|}: \i{Bitwise OR} Operator
-
-The \c{|} operator gives a bitwise OR, exactly as performed by the
-\c{OR} machine instruction. Bitwise OR is the lowest-priority
-arithmetic operator supported by NASM.
-
-
-\S{expxor} \i\c{^}: \i{Bitwise XOR} Operator
-
-\c{^} provides the bitwise XOR operation.
-
-
-\S{expand} \i\c{&}: \i{Bitwise AND} Operator
-
-\c{&} provides the bitwise AND operation.
-
-
-\S{expshift} \i\c{<<} and \i\c{>>}: \i{Bit Shift} Operators
-
-\c{<<} gives a bit-shift to the left, just as it does in C. So \c{5<<3}
-evaluates to 5 times 8, or 40. \c{>>} gives a bit-shift to the
-right; in NASM, such a shift is \e{always} unsigned, so that
-the bits shifted in from the left-hand end are filled with zero
-rather than a sign-extension of the previous highest bit.
-
-
-\S{expplmi} \I{+ opaddition}\c{+} and \I{- opsubtraction}\c{-}:
-\i{Addition} and \i{Subtraction} Operators
-
-The \c{+} and \c{-} operators do perfectly ordinary addition and
-subtraction.
-
-
-\S{expmul} \i\c{*}, \i\c{/}, \i\c{//}, \i\c{%} and \i\c{%%}:
-\i{Multiplication} and \i{Division}
-
-\c{*} is the multiplication operator. \c{/} and \c{//} are both
-division operators: \c{/} is \i{unsigned division} and \c{//} is
-\i{signed division}. Similarly, \c{%} and \c{%%} provide \I{unsigned
-modulo}\I{modulo operators}unsigned and
-\i{signed modulo} operators respectively.
-
-NASM, like ANSI C, provides no guarantees about the sensible
-operation of the signed modulo operator.
-
-Since the \c{%} character is used extensively by the macro
-\i{preprocessor}, you should ensure that both the signed and unsigned
-modulo operators are followed by white space wherever they appear.
-
-
-\S{expmul} \i{Unary Operators}
-
-The highest-priority operators in NASM's expression grammar are those
-which only apply to one argument.  These are \I{+ opunary}\c{+}, \I{-
-opunary}\c{-}, \i\c{~}, \I{! opunary}\c{!}, \i\c{SEG}, and the
-\i{integer functions} operators.
-
-\c{-} negates its operand, \c{+} does nothing (it's provided for
-symmetry with \c{-}), \c{~} computes the \i{one's complement} of its
-operand, \c{!} is the \i{logical negation} operator.
-
-\c{SEG} provides the \i{segment address}
-of its operand (explained in more detail in \k{segwrt}).
-
-A set of additional operators with leading and trailing double
-underscores are used to implement the integer functions of the
-\c{ifunc} macro package, see \k{pkg_ifunc}.
-
-
-\H{segwrt} \i\c{SEG} and \i\c{WRT}
-
-When writing large 16-bit programs, which must be split into
-multiple \i{segments}, it is often necessary to be able to refer to
-the \I{segment address}segment part of the address of a symbol. NASM
-supports the \c{SEG} operator to perform this function.
-
-The \c{SEG} operator returns the \i\e{preferred} segment base of a
-symbol, defined as the segment base relative to which the offset of
-the symbol makes sense. So the code
-
-\c         mov     ax,seg symbol
-\c         mov     es,ax
-\c         mov     bx,symbol
-
-will load \c{ES:BX} with a valid pointer to the symbol \c{symbol}.
-
-Things can be more complex than this: since 16-bit segments and
-\i{groups} may \I{overlapping segments}overlap, you might occasionally
-want to refer to some symbol using a different segment base from the
-preferred one. NASM lets you do this, by the use of the \c{WRT}
-(With Reference To) keyword. So you can do things like
-
-\c         mov     ax,weird_seg        ; weird_seg is a segment base
-\c         mov     es,ax
-\c         mov     bx,symbol wrt weird_seg
-
-to load \c{ES:BX} with a different, but functionally equivalent,
-pointer to the symbol \c{symbol}.
-
-NASM supports far (inter-segment) calls and jumps by means of the
-syntax \c{call segment:offset}, where \c{segment} and \c{offset}
-both represent immediate values. So to call a far procedure, you
-could code either of
-
-\c         call    (seg procedure):procedure
-\c         call    weird_seg:(procedure wrt weird_seg)
-
-(The parentheses are included for clarity, to show the intended
-parsing of the above instructions. They are not necessary in
-practice.)
-
-NASM supports the syntax \I\c{CALL FAR}\c{call far procedure} as a
-synonym for the first of the above usages. \c{JMP} works identically
-to \c{CALL} in these examples.
-
-To declare a \i{far pointer} to a data item in a data segment, you
-must code
-
-\c         dw      symbol, seg symbol
-
-NASM supports no convenient synonym for this, though you can always
-invent one using the macro processor.
-
-
-\H{strict} \i\c{STRICT}: Inhibiting Optimization
-
-When assembling with the optimizer set to level 2 or higher (see
-\k{opt-O}), NASM will use size specifiers (\c{BYTE}, \c{WORD},
-\c{DWORD}, \c{QWORD}, \c{TWORD}, \c{OWORD}, \c{YWORD} or \c{ZWORD}),
-but will give them the smallest possible size. The keyword \c{STRICT}
-can be used to inhibit optimization and force a particular operand to
-be emitted in the specified size. For example, with the optimizer on,
-and in \c{BITS 16} mode,
-
-\c         push dword 33
-
-is encoded in three bytes \c{66 6A 21}, whereas
-
-\c         push strict dword 33
-
-is encoded in six bytes, with a full dword immediate operand \c{66 68
-21 00 00 00}.
-
-With the optimizer off, the same code (six bytes) is generated whether
-the \c{STRICT} keyword was used or not.
-
-
-\H{crit} \i{Critical Expressions}
-
-Although NASM has an optional multi-pass optimizer, there are some
-expressions which must be resolvable on the first pass. These are
-called \e{Critical Expressions}.
-
-The first pass is used to determine the size of all the assembled
-code and data, so that the second pass, when generating all the
-code, knows all the symbol addresses the code refers to. So one
-thing NASM can't handle is code whose size depends on the value of a
-symbol declared after the code in question. For example,
-
-\c         times (label-$) db 0
-\c label:  db      'Where am I?'
-
-The argument to \i\c{TIMES} in this case could equally legally
-evaluate to anything at all; NASM will reject this example because
-it cannot tell the size of the \c{TIMES} line when it first sees it.
-It will just as firmly reject the slightly \I{paradox}paradoxical
-code
-
-\c         times (label-$+1) db 0
-\c label:  db      'NOW where am I?'
-
-in which \e{any} value for the \c{TIMES} argument is by definition
-wrong!
-
-NASM rejects these examples by means of a concept called a
-\e{critical expression}, which is defined to be an expression whose
-value is required to be computable in the first pass, and which must
-therefore depend only on symbols defined before it. The argument to
-the \c{TIMES} prefix is a critical expression.
-
-\H{locallab} \i{Local Labels}
-
-NASM gives special treatment to symbols beginning with a \i{period}.
-A label beginning with a single period is treated as a \e{local}
-label, which means that it is associated with the previous non-local
-label. So, for example:
-
-\c label1  ; some code
-\c
-\c .loop
-\c         ; some more code
-\c
-\c         jne     .loop
-\c         ret
-\c
-\c label2  ; some code
-\c
-\c .loop
-\c         ; some more code
-\c
-\c         jne     .loop
-\c         ret
-
-In the above code fragment, each \c{JNE} instruction jumps to the
-line immediately before it, because the two definitions of \c{.loop}
-are kept separate by virtue of each being associated with the
-previous non-local label.
-
-This form of local label handling is borrowed from the old Amiga
-assembler \i{DevPac}; however, NASM goes one step further, in
-allowing access to local labels from other parts of the code. This
-is achieved by means of \e{defining} a local label in terms of the
-previous non-local label: the first definition of \c{.loop} above is
-really defining a symbol called \c{label1.loop}, and the second
-defines a symbol called \c{label2.loop}. So, if you really needed
-to, you could write
-
-\c label3  ; some more code
-\c         ; and some more
-\c
-\c         jmp label1.loop
-
-Sometimes it is useful - in a macro, for instance - to be able to
-define a label which can be referenced from anywhere but which
-doesn't interfere with the normal local-label mechanism. Such a
-label can't be non-local because it would interfere with subsequent
-definitions of, and references to, local labels; and it can't be
-local because the macro that defined it wouldn't know the label's
-full name. NASM therefore introduces a third type of label, which is
-probably only useful in macro definitions: if a label begins with
-the \I{label prefix}special prefix \i\c{..@}, then it does nothing
-to the local label mechanism. So you could code
-
-\c label1:                         ; a non-local label
-\c .local:                         ; this is really label1.local
-\c ..@foo:                         ; this is a special symbol
-\c label2:                         ; another non-local label
-\c .local:                         ; this is really label2.local
-\c
-\c         jmp     ..@foo          ; this will jump three lines up
-
-NASM has the capacity to define other special symbols beginning with
-a double period: for example, \c{..start} is used to specify the
-entry point in the \c{obj} output format (see \k{dotdotstart}),
-\c{..imagebase} is used to find out the offset from a base address
-of the current image in the \c{win64} output format (see \k{win64pic}).
-So just keep in mind that symbols beginning with a double period are
-special.
-
-
-\C{preproc} The NASM \i{Preprocessor}
-
-NASM contains a powerful \i{macro processor}, which supports
-conditional assembly, multi-level file inclusion, two forms of macro
-(single-line and multi-line), and a `context stack' mechanism for
-extra macro power. Preprocessor directives all begin with a \c{%}
-sign.
-
-The preprocessor collapses all lines which end with a backslash (\\)
-character into a single line.  Thus:
-
-\c %define THIS_VERY_LONG_MACRO_NAME_IS_DEFINED_TO \\
-\c         THIS_VALUE
-
-will work like a single-line macro without the backslash-newline
-sequence.
-
-\H{slmacro} \i{Single-Line Macros}
-
-\S{define} The Normal Way: \I\c{%idefine}\i\c{%define}
-
-Single-line macros are defined using the \c{%define} preprocessor
-directive. The definitions work in a similar way to C; so you can do
-things like
-
-\c %define ctrl    0x1F &
-\c %define param(a,b) ((a)+(a)*(b))
-\c
-\c         mov     byte [param(2,ebx)], ctrl 'D'
-
-which will expand to
-
-\c         mov     byte [(2)+(2)*(ebx)], 0x1F & 'D'
-
-When the expansion of a single-line macro contains tokens which
-invoke another macro, the expansion is performed at invocation time,
-not at definition time. Thus the code
-
-\c %define a(x)    1+b(x)
-\c %define b(x)    2*x
-\c
-\c         mov     ax,a(8)
-
-will evaluate in the expected way to \c{mov ax,1+2*8}, even though
-the macro \c{b} wasn't defined at the time of definition of \c{a}.
-
-Macros defined with \c{%define} are \i{case sensitive}: after
-\c{%define foo bar}, only \c{foo} will expand to \c{bar}: \c{Foo} or
-\c{FOO} will not. By using \c{%idefine} instead of \c{%define} (the
-`i' stands for `insensitive') you can define all the case variants
-of a macro at once, so that \c{%idefine foo bar} would cause
-\c{foo}, \c{Foo}, \c{FOO}, \c{fOO} and so on all to expand to
-\c{bar}.
-
-There is a mechanism which detects when a macro call has occurred as
-a result of a previous expansion of the same macro, to guard against
-\i{circular references} and infinite loops. If this happens, the
-preprocessor will only expand the first occurrence of the macro.
-Hence, if you code
-
-\c %define a(x)    1+a(x)
-\c
-\c         mov     ax,a(3)
-
-the macro \c{a(3)} will expand once, becoming \c{1+a(3)}, and will
-then expand no further. This behaviour can be useful: see \k{32c}
-for an example of its use.
-
-You can \I{overloading, single-line macros}overload single-line
-macros: if you write
-
-\c %define foo(x)   1+x
-\c %define foo(x,y) 1+x*y
-
-the preprocessor will be able to handle both types of macro call,
-by counting the parameters you pass; so \c{foo(3)} will become
-\c{1+3} whereas \c{foo(ebx,2)} will become \c{1+ebx*2}. However, if
-you define
-
-\c %define foo bar
-
-then no other definition of \c{foo} will be accepted: a macro with
-no parameters prohibits the definition of the same name as a macro
-\e{with} parameters, and vice versa.
-
-This doesn't prevent single-line macros being \e{redefined}: you can
-perfectly well define a macro with
-
-\c %define foo bar
-
-and then re-define it later in the same source file with
-
-\c %define foo baz
-
-Then everywhere the macro \c{foo} is invoked, it will be expanded
-according to the most recent definition. This is particularly useful
-when defining single-line macros with \c{%assign} (see \k{assign}).
-
-You can \i{pre-define} single-line macros using the `-d' option on
-the NASM command line: see \k{opt-d}.
-
-
-\S{xdefine} Resolving \c{%define}: \I\c{%ixdefine}\i\c{%xdefine}
-
-To have a reference to an embedded single-line macro resolved at the
-time that the embedding macro is \e{defined}, as opposed to when the
-embedding macro is \e{expanded}, you need a different mechanism to the
-one offered by \c{%define}. The solution is to use \c{%xdefine}, or
-it's \I{case sensitive}case-insensitive counterpart \c{%ixdefine}.
-
-Suppose you have the following code:
-
-\c %define  isTrue  1
-\c %define  isFalse isTrue
-\c %define  isTrue  0
-\c
-\c val1:    db      isFalse
-\c
-\c %define  isTrue  1
-\c
-\c val2:    db      isFalse
-
-In this case, \c{val1} is equal to 0, and \c{val2} is equal to 1.
-This is because, when a single-line macro is defined using
-\c{%define}, it is expanded only when it is called. As \c{isFalse}
-expands to \c{isTrue}, the expansion will be the current value of
-\c{isTrue}. The first time it is called that is 0, and the second
-time it is 1.
-
-If you wanted \c{isFalse} to expand to the value assigned to the
-embedded macro \c{isTrue} at the time that \c{isFalse} was defined,
-you need to change the above code to use \c{%xdefine}.
-
-\c %xdefine isTrue  1
-\c %xdefine isFalse isTrue
-\c %xdefine isTrue  0
-\c
-\c val1:    db      isFalse
-\c
-\c %xdefine isTrue  1
-\c
-\c val2:    db      isFalse
-
-Now, each time that \c{isFalse} is called, it expands to 1,
-as that is what the embedded macro \c{isTrue} expanded to at
-the time that \c{isFalse} was defined.
-
-
-\S{indmacro} \i{Macro Indirection}: \I\c{%[}\c{%[...]}
-
-The \c{%[...]} construct can be used to expand macros in contexts
-where macro expansion would otherwise not occur, including in the
-names other macros.  For example, if you have a set of macros named
-\c{Foo16}, \c{Foo32} and \c{Foo64}, you could write:
-
-\c	mov ax,Foo%[__BITS__]	; The Foo value
-
-to use the builtin macro \c{__BITS__} (see \k{bitsm}) to automatically
-select between them.  Similarly, the two statements:
-
-\c %xdefine Bar		Quux	; Expands due to %xdefine
-\c %define  Bar		%[Quux]	; Expands due to %[...]
-
-have, in fact, exactly the same effect.
-
-\c{%[...]} concatenates to adjacent tokens in the same way that
-multi-line macro parameters do, see \k{concat} for details.
-
-
-\S{concat%+} Concatenating Single Line Macro Tokens: \i\c{%+}
-
-Individual tokens in single line macros can be concatenated, to produce
-longer tokens for later processing. This can be useful if there are
-several similar macros that perform similar functions.
-
-Please note that a space is required after \c{%+}, in order to
-disambiguate it from the syntax \c{%+1} used in multiline macros.
-
-As an example, consider the following:
-
-\c %define BDASTART 400h                ; Start of BIOS data area
-
-\c struc   tBIOSDA                      ; its structure
-\c         .COM1addr       RESW    1
-\c         .COM2addr       RESW    1
-\c         ; ..and so on
-\c endstruc
-
-Now, if we need to access the elements of tBIOSDA in different places,
-we can end up with:
-
-\c         mov     ax,BDASTART + tBIOSDA.COM1addr
-\c         mov     bx,BDASTART + tBIOSDA.COM2addr
-
-This will become pretty ugly (and tedious) if used in many places, and
-can be reduced in size significantly by using the following macro:
-
-\c ; Macro to access BIOS variables by their names (from tBDA):
-
-\c %define BDA(x)  BDASTART + tBIOSDA. %+ x
-
-Now the above code can be written as:
-
-\c         mov     ax,BDA(COM1addr)
-\c         mov     bx,BDA(COM2addr)
-
-Using this feature, we can simplify references to a lot of macros (and,
-in turn, reduce typing errors).
-
-
-\S{selfref%?} The Macro Name Itself: \i\c{%?} and \i\c{%??}
-
-The special symbols \c{%?} and \c{%??} can be used to reference the
-macro name itself inside a macro expansion, this is supported for both
-single-and multi-line macros.  \c{%?} refers to the macro name as
-\e{invoked}, whereas \c{%??} refers to the macro name as
-\e{declared}.  The two are always the same for case-sensitive
-macros, but for case-insensitive macros, they can differ.
-
-For example:
-
-\c %idefine Foo mov %?,%??
-\c
-\c         foo
-\c         FOO
-
-will expand to:
-
-\c         mov foo,Foo
-\c         mov FOO,Foo
-
-The sequence:
-
-\c %idefine keyword $%?
-
-can be used to make a keyword "disappear", for example in case a new
-instruction has been used as a label in older code.  For example:
-
-\c %idefine pause $%?                  ; Hide the PAUSE instruction
-
-
-\S{undef} Undefining Single-Line Macros: \i\c{%undef}
-
-Single-line macros can be removed with the \c{%undef} directive.  For
-example, the following sequence:
-
-\c %define foo bar
-\c %undef  foo
-\c
-\c         mov     eax, foo
-
-will expand to the instruction \c{mov eax, foo}, since after
-\c{%undef} the macro \c{foo} is no longer defined.
-
-Macros that would otherwise be pre-defined can be undefined on the
-command-line using the `-u' option on the NASM command line: see
-\k{opt-u}.
-
-
-\S{assign} \i{Preprocessor Variables}: \i\c{%assign}
-
-An alternative way to define single-line macros is by means of the
-\c{%assign} command (and its \I{case sensitive}case-insensitive
-counterpart \i\c{%iassign}, which differs from \c{%assign} in
-exactly the same way that \c{%idefine} differs from \c{%define}).
-
-\c{%assign} is used to define single-line macros which take no
-parameters and have a numeric value. This value can be specified in
-the form of an expression, and it will be evaluated once, when the
-\c{%assign} directive is processed.
-
-Like \c{%define}, macros defined using \c{%assign} can be re-defined
-later, so you can do things like
-
-\c %assign i i+1
-
-to increment the numeric value of a macro.
-
-\c{%assign} is useful for controlling the termination of \c{%rep}
-preprocessor loops: see \k{rep} for an example of this. Another
-use for \c{%assign} is given in \k{16c} and \k{32c}.
-
-The expression passed to \c{%assign} is a \i{critical expression}
-(see \k{crit}), and must also evaluate to a pure number (rather than
-a relocatable reference such as a code or data address, or anything
-involving a register).
-
-
-\S{defstr} Defining Strings: \I\c{%idefstr}\i\c{%defstr}
-
-\c{%defstr}, and its case-insensitive counterpart \c{%idefstr}, define
-or redefine a single-line macro without parameters but converts the
-entire right-hand side, after macro expansion, to a quoted string
-before definition.
-
-For example:
-
-\c %defstr test TEST
-
-is equivalent to
-
-\c %define test 'TEST'
-
-This can be used, for example, with the \c{%!} construct (see
-\k{getenv}):
-
-\c %defstr PATH %!PATH          ; The operating system PATH variable
-
-
-\S{deftok} Defining Tokens: \I\c{%ideftok}\i\c{%deftok}
-
-\c{%deftok}, and its case-insensitive counterpart \c{%ideftok}, define
-or redefine a single-line macro without parameters but converts the
-second parameter, after string conversion, to a sequence of tokens.
-
-For example:
-
-\c %deftok test 'TEST'
-
-is equivalent to
-
-\c %define test TEST
-
-
-\H{strlen} \i{String Manipulation in Macros}
-
-It's often useful to be able to handle strings in macros. NASM
-supports a few simple string handling macro operators from which
-more complex operations can be constructed.
-
-All the string operators define or redefine a value (either a string
-or a numeric value) to a single-line macro.  When producing a string
-value, it may change the style of quoting of the input string or
-strings, and possibly use \c{\\}-escapes inside \c{`}-quoted strings.
-
-\S{strcat} \i{Concatenating Strings}: \i\c{%strcat}
-
-The \c{%strcat} operator concatenates quoted strings and assign them to
-a single-line macro.
-
-For example:
-
-\c %strcat alpha "Alpha: ", '12" screen'
-
-... would assign the value \c{'Alpha: 12" screen'} to \c{alpha}.
-Similarly:
-
-\c %strcat beta '"foo"\', "'bar'"
-
-... would assign the value \c{`"foo"\\\\'bar'`} to \c{beta}.
-
-The use of commas to separate strings is permitted but optional.
-
-
-\S{strlen} \i{String Length}: \i\c{%strlen}
-
-The \c{%strlen} operator assigns the length of a string to a macro.
-For example:
-
-\c %strlen charcnt 'my string'
-
-In this example, \c{charcnt} would receive the value 9, just as
-if an \c{%assign} had been used. In this example, \c{'my string'}
-was a literal string but it could also have been a single-line
-macro that expands to a string, as in the following example:
-
-\c %define sometext 'my string'
-\c %strlen charcnt sometext
-
-As in the first case, this would result in \c{charcnt} being
-assigned the value of 9.
-
-
-\S{substr} \i{Extracting Substrings}: \i\c{%substr}
-
-Individual letters or substrings in strings can be extracted using the
-\c{%substr} operator.  An example of its use is probably more useful
-than the description:
-
-\c %substr mychar 'xyzw' 1       ; equivalent to %define mychar 'x'
-\c %substr mychar 'xyzw' 2       ; equivalent to %define mychar 'y'
-\c %substr mychar 'xyzw' 3       ; equivalent to %define mychar 'z'
-\c %substr mychar 'xyzw' 2,2     ; equivalent to %define mychar 'yz'
-\c %substr mychar 'xyzw' 2,-1    ; equivalent to %define mychar 'yzw'
-\c %substr mychar 'xyzw' 2,-2    ; equivalent to %define mychar 'yz'
-
-As with \c{%strlen} (see \k{strlen}), the first parameter is the
-single-line macro to be created and the second is the string. The
-third parameter specifies the first character to be selected, and the
-optional fourth parameter preceeded by comma) is the length.  Note
-that the first index is 1, not 0 and the last index is equal to the
-value that \c{%strlen} would assign given the same string. Index
-values out of range result in an empty string.  A negative length
-means "until N-1 characters before the end of string", i.e. \c{-1}
-means until end of string, \c{-2} until one character before, etc.
-
-
-\H{mlmacro} \i{Multi-Line Macros}: \I\c{%imacro}\i\c{%macro}
-
-Multi-line macros are much more like the type of macro seen in MASM
-and TASM: a multi-line macro definition in NASM looks something like
-this.
-
-\c %macro  prologue 1
-\c
-\c         push    ebp
-\c         mov     ebp,esp
-\c         sub     esp,%1
-\c
-\c %endmacro
-
-This defines a C-like function prologue as a macro: so you would
-invoke the macro with a call such as
-
-\c myfunc:   prologue 12
-
-which would expand to the three lines of code
-
-\c myfunc: push    ebp
-\c         mov     ebp,esp
-\c         sub     esp,12
-
-The number \c{1} after the macro name in the \c{%macro} line defines
-the number of parameters the macro \c{prologue} expects to receive.
-The use of \c{%1} inside the macro definition refers to the first
-parameter to the macro call. With a macro taking more than one
-parameter, subsequent parameters would be referred to as \c{%2},
-\c{%3} and so on.
-
-Multi-line macros, like single-line macros, are \i{case-sensitive},
-unless you define them using the alternative directive \c{%imacro}.
-
-If you need to pass a comma as \e{part} of a parameter to a
-multi-line macro, you can do that by enclosing the entire parameter
-in \I{braces, around macro parameters}braces. So you could code
-things like
-
-\c %macro  silly 2
-\c
-\c     %2: db      %1
-\c
-\c %endmacro
-\c
-\c         silly 'a', letter_a             ; letter_a:  db 'a'
-\c         silly 'ab', string_ab           ; string_ab: db 'ab'
-\c         silly {13,10}, crlf             ; crlf:      db 13,10
-
-
-\S{mlmacover} Overloading Multi-Line Macros\I{overloading, multi-line macros}
-
-As with single-line macros, multi-line macros can be overloaded by
-defining the same macro name several times with different numbers of
-parameters. This time, no exception is made for macros with no
-parameters at all. So you could define
-
-\c %macro  prologue 0
-\c
-\c         push    ebp
-\c         mov     ebp,esp
-\c
-\c %endmacro
-
-to define an alternative form of the function prologue which
-allocates no local stack space.
-
-Sometimes, however, you might want to `overload' a machine
-instruction; for example, you might want to define
-
-\c %macro  push 2
-\c
-\c         push    %1
-\c         push    %2
-\c
-\c %endmacro
-
-so that you could code
-
-\c         push    ebx             ; this line is not a macro call
-\c         push    eax,ecx         ; but this one is
-
-Ordinarily, NASM will give a warning for the first of the above two
-lines, since \c{push} is now defined to be a macro, and is being
-invoked with a number of parameters for which no definition has been
-given. The correct code will still be generated, but the assembler
-will give a warning. This warning can be disabled by the use of the
-\c{-w-macro-params} command-line option (see \k{opt-w}).
-
-
-\S{maclocal} \i{Macro-Local Labels}
-
-NASM allows you to define labels within a multi-line macro
-definition in such a way as to make them local to the macro call: so
-calling the same macro multiple times will use a different label
-each time. You do this by prefixing \i\c{%%} to the label name. So
-you can invent an instruction which executes a \c{RET} if the \c{Z}
-flag is set by doing this:
-
-\c %macro  retz 0
-\c
-\c         jnz     %%skip
-\c         ret
-\c     %%skip:
-\c
-\c %endmacro
-
-You can call this macro as many times as you want, and every time
-you call it NASM will make up a different `real' name to substitute
-for the label \c{%%skip}. The names NASM invents are of the form
-\c{..@2345.skip}, where the number 2345 changes with every macro
-call. The \i\c{..@} prefix prevents macro-local labels from
-interfering with the local label mechanism, as described in
-\k{locallab}. You should avoid defining your own labels in this form
-(the \c{..@} prefix, then a number, then another period) in case
-they interfere with macro-local labels.
-
-
-\S{mlmacgre} \i{Greedy Macro Parameters}
-
-Occasionally it is useful to define a macro which lumps its entire
-command line into one parameter definition, possibly after
-extracting one or two smaller parameters from the front. An example
-might be a macro to write a text string to a file in MS-DOS, where
-you might want to be able to write
-
-\c         writefile [filehandle],"hello, world",13,10
-
-NASM allows you to define the last parameter of a macro to be
-\e{greedy}, meaning that if you invoke the macro with more
-parameters than it expects, all the spare parameters get lumped into
-the last defined one along with the separating commas. So if you
-code:
-
-\c %macro  writefile 2+
-\c
-\c         jmp     %%endstr
-\c   %%str:        db      %2
-\c   %%endstr:
-\c         mov     dx,%%str
-\c         mov     cx,%%endstr-%%str
-\c         mov     bx,%1
-\c         mov     ah,0x40
-\c         int     0x21
-\c
-\c %endmacro
-
-then the example call to \c{writefile} above will work as expected:
-the text before the first comma, \c{[filehandle]}, is used as the
-first macro parameter and expanded when \c{%1} is referred to, and
-all the subsequent text is lumped into \c{%2} and placed after the
-\c{db}.
-
-The greedy nature of the macro is indicated to NASM by the use of
-the \I{+ modifier}\c{+} sign after the parameter count on the
-\c{%macro} line.
-
-If you define a greedy macro, you are effectively telling NASM how
-it should expand the macro given \e{any} number of parameters from
-the actual number specified up to infinity; in this case, for
-example, NASM now knows what to do when it sees a call to
-\c{writefile} with 2, 3, 4 or more parameters. NASM will take this
-into account when overloading macros, and will not allow you to
-define another form of \c{writefile} taking 4 parameters (for
-example).
-
-Of course, the above macro could have been implemented as a
-non-greedy macro, in which case the call to it would have had to
-look like
-
-\c           writefile [filehandle], {"hello, world",13,10}
-
-NASM provides both mechanisms for putting \i{commas in macro
-parameters}, and you choose which one you prefer for each macro
-definition.
-
-See \k{sectmac} for a better way to write the above macro.
-
-\S{mlmacrange} \i{Macro Parameters Range}
-
-NASM allows you to expand parameters via special construction \c{%\{x:y\}}
-where \c{x} is the first parameter index and \c{y} is the last. Any index can
-be either negative or positive but must never be zero.
-
-For example
-
-\c %macro mpar 1-*
-\c      db %{3:5}
-\c %endmacro
-\c
-\c mpar 1,2,3,4,5,6
-
-expands to \c{3,4,5} range.
-
-Even more, the parameters can be reversed so that
-
-\c %macro mpar 1-*
-\c      db %{5:3}
-\c %endmacro
-\c
-\c mpar 1,2,3,4,5,6
-
-expands to \c{5,4,3} range.
-
-But even this is not the last. The parameters can be addressed via negative
-indices so NASM will count them reversed. The ones who know Python may see
-the analogue here.
-
-\c %macro mpar 1-*
-\c      db %{-1:-3}
-\c %endmacro
-\c
-\c mpar 1,2,3,4,5,6
-
-expands to \c{6,5,4} range.
-
-Note that NASM uses \i{comma} to separate parameters being expanded.
-
-By the way, here is a trick - you might use the index \c{%{-1:-1}}
-which gives you the \i{last} argument passed to a macro.
-
-\S{mlmacdef} \i{Default Macro Parameters}
-
-NASM also allows you to define a multi-line macro with a \e{range}
-of allowable parameter counts. If you do this, you can specify
-defaults for \i{omitted parameters}. So, for example:
-
-\c %macro  die 0-1 "Painful program death has occurred."
-\c
-\c         writefile 2,%1
-\c         mov     ax,0x4c01
-\c         int     0x21
-\c
-\c %endmacro
-
-This macro (which makes use of the \c{writefile} macro defined in
-\k{mlmacgre}) can be called with an explicit error message, which it
-will display on the error output stream before exiting, or it can be
-called with no parameters, in which case it will use the default
-error message supplied in the macro definition.
-
-In general, you supply a minimum and maximum number of parameters
-for a macro of this type; the minimum number of parameters are then
-required in the macro call, and then you provide defaults for the
-optional ones. So if a macro definition began with the line
-
-\c %macro foobar 1-3 eax,[ebx+2]
-
-then it could be called with between one and three parameters, and
-\c{%1} would always be taken from the macro call. \c{%2}, if not
-specified by the macro call, would default to \c{eax}, and \c{%3} if
-not specified would default to \c{[ebx+2]}.
-
-You can provide extra information to a macro by providing
-too many default parameters:
-
-\c %macro quux 1 something
-
-This will trigger a warning by default; see \k{opt-w} for
-more information.
-When \c{quux} is invoked, it receives not one but two parameters.
-\c{something} can be referred to as \c{%2}. The difference
-between passing \c{something} this way and writing \c{something}
-in the macro body is that with this way \c{something} is evaluated
-when the macro is defined, not when it is expanded.
-
-You may omit parameter defaults from the macro definition, in which
-case the parameter default is taken to be blank. This can be useful
-for macros which can take a variable number of parameters, since the
-\i\c{%0} token (see \k{percent0}) allows you to determine how many
-parameters were really passed to the macro call.
-
-This defaulting mechanism can be combined with the greedy-parameter
-mechanism; so the \c{die} macro above could be made more powerful,
-and more useful, by changing the first line of the definition to
-
-\c %macro die 0-1+ "Painful program death has occurred.",13,10
-
-The maximum parameter count can be infinite, denoted by \c{*}. In
-this case, of course, it is impossible to provide a \e{full} set of
-default parameters. Examples of this usage are shown in \k{rotate}.
-
-
-\S{percent0} \i\c{%0}: \I{counting macro parameters}Macro Parameter Counter
-
-The parameter reference \c{%0} will return a numeric constant giving the
-number of parameters received, that is, if \c{%0} is n then \c{%}n is the
-last parameter. \c{%0} is mostly useful for macros that can take a variable
-number of parameters. It can be used as an argument to \c{%rep}
-(see \k{rep}) in order to iterate through all the parameters of a macro.
-Examples are given in \k{rotate}.
-
-
-\S{percent00} \i\c{%00}: \I{label preceeding macro}Label Preceeding Macro
-
-\c{%00} will return the label preceeding the macro invocation, if any. The
-label must be on the same line as the macro invocation, may be a local label
-(see \k{locallab}), and need not end in a colon.
-
-
-\S{rotate} \i\c{%rotate}: \i{Rotating Macro Parameters}
-
-Unix shell programmers will be familiar with the \I{shift
-command}\c{shift} shell command, which allows the arguments passed
-to a shell script (referenced as \c{$1}, \c{$2} and so on) to be
-moved left by one place, so that the argument previously referenced
-as \c{$2} becomes available as \c{$1}, and the argument previously
-referenced as \c{$1} is no longer available at all.
-
-NASM provides a similar mechanism, in the form of \c{%rotate}. As
-its name suggests, it differs from the Unix \c{shift} in that no
-parameters are lost: parameters rotated off the left end of the
-argument list reappear on the right, and vice versa.
-
-\c{%rotate} is invoked with a single numeric argument (which may be
-an expression). The macro parameters are rotated to the left by that
-many places. If the argument to \c{%rotate} is negative, the macro
-parameters are rotated to the right.
-
-\I{iterating over macro parameters}So a pair of macros to save and
-restore a set of registers might work as follows:
-
-\c %macro  multipush 1-*
-\c
-\c   %rep  %0
-\c         push    %1
-\c   %rotate 1
-\c   %endrep
-\c
-\c %endmacro
-
-This macro invokes the \c{PUSH} instruction on each of its arguments
-in turn, from left to right. It begins by pushing its first
-argument, \c{%1}, then invokes \c{%rotate} to move all the arguments
-one place to the left, so that the original second argument is now
-available as \c{%1}. Repeating this procedure as many times as there
-were arguments (achieved by supplying \c{%0} as the argument to
-\c{%rep}) causes each argument in turn to be pushed.
-
-Note also the use of \c{*} as the maximum parameter count,
-indicating that there is no upper limit on the number of parameters
-you may supply to the \i\c{multipush} macro.
-
-It would be convenient, when using this macro, to have a \c{POP}
-equivalent, which \e{didn't} require the arguments to be given in
-reverse order. Ideally, you would write the \c{multipush} macro
-call, then cut-and-paste the line to where the pop needed to be
-done, and change the name of the called macro to \c{multipop}, and
-the macro would take care of popping the registers in the opposite
-order from the one in which they were pushed.
-
-This can be done by the following definition:
-
-\c %macro  multipop 1-*
-\c
-\c   %rep %0
-\c   %rotate -1
-\c         pop     %1
-\c   %endrep
-\c
-\c %endmacro
-
-This macro begins by rotating its arguments one place to the
-\e{right}, so that the original \e{last} argument appears as \c{%1}.
-This is then popped, and the arguments are rotated right again, so
-the second-to-last argument becomes \c{%1}. Thus the arguments are
-iterated through in reverse order.
-
-
-\S{concat} \i{Concatenating Macro Parameters}
-
-NASM can concatenate macro parameters and macro indirection constructs
-on to other text surrounding them. This allows you to declare a family
-of symbols, for example, in a macro definition. If, for example, you
-wanted to generate a table of key codes along with offsets into the
-table, you could code something like
-
-\c %macro keytab_entry 2
-\c
-\c     keypos%1    equ     $-keytab
-\c                 db      %2
-\c
-\c %endmacro
-\c
-\c keytab:
-\c           keytab_entry F1,128+1
-\c           keytab_entry F2,128+2
-\c           keytab_entry Return,13
-
-which would expand to
-
-\c keytab:
-\c keyposF1        equ     $-keytab
-\c                 db     128+1
-\c keyposF2        equ     $-keytab
-\c                 db      128+2
-\c keyposReturn    equ     $-keytab
-\c                 db      13
-
-You can just as easily concatenate text on to the other end of a
-macro parameter, by writing \c{%1foo}.
-
-If you need to append a \e{digit} to a macro parameter, for example
-defining labels \c{foo1} and \c{foo2} when passed the parameter
-\c{foo}, you can't code \c{%11} because that would be taken as the
-eleventh macro parameter. Instead, you must code
-\I{braces, after % sign}\c{%\{1\}1}, which will separate the first
-\c{1} (giving the number of the macro parameter) from the second
-(literal text to be concatenated to the parameter).
-
-This concatenation can also be applied to other preprocessor in-line
-objects, such as macro-local labels (\k{maclocal}) and context-local
-labels (\k{ctxlocal}). In all cases, ambiguities in syntax can be
-resolved by enclosing everything after the \c{%} sign and before the
-literal text in braces: so \c{%\{%foo\}bar} concatenates the text
-\c{bar} to the end of the real name of the macro-local label
-\c{%%foo}. (This is unnecessary, since the form NASM uses for the
-real names of macro-local labels means that the two usages
-\c{%\{%foo\}bar} and \c{%%foobar} would both expand to the same
-thing anyway; nevertheless, the capability is there.)
-
-The single-line macro indirection construct, \c{%[...]}
-(\k{indmacro}), behaves the same way as macro parameters for the
-purpose of concatenation.
-
-See also the \c{%+} operator, \k{concat%+}.
-
-
-\S{mlmaccc} \i{Condition Codes as Macro Parameters}
-
-NASM can give special treatment to a macro parameter which contains
-a condition code. For a start, you can refer to the macro parameter
-\c{%1} by means of the alternative syntax \i\c{%+1}, which informs
-NASM that this macro parameter is supposed to contain a condition
-code, and will cause the preprocessor to report an error message if
-the macro is called with a parameter which is \e{not} a valid
-condition code.
-
-Far more usefully, though, you can refer to the macro parameter by
-means of \i\c{%-1}, which NASM will expand as the \e{inverse}
-condition code. So the \c{retz} macro defined in \k{maclocal} can be
-replaced by a general \i{conditional-return macro} like this:
-
-\c %macro  retc 1
-\c
-\c         j%-1    %%skip
-\c         ret
-\c   %%skip:
-\c
-\c %endmacro
-
-This macro can now be invoked using calls like \c{retc ne}, which
-will cause the conditional-jump instruction in the macro expansion
-to come out as \c{JE}, or \c{retc po} which will make the jump a
-\c{JPE}.
-
-The \c{%+1} macro-parameter reference is quite happy to interpret
-the arguments \c{CXZ} and \c{ECXZ} as valid condition codes;
-however, \c{%-1} will report an error if passed either of these,
-because no inverse condition code exists.
-
-
-\S{nolist} \i{Disabling Listing Expansion}\I\c{.nolist}
-
-When NASM is generating a listing file from your program, it will
-generally expand multi-line macros by means of writing the macro
-call and then listing each line of the expansion. This allows you to
-see which instructions in the macro expansion are generating what
-code; however, for some macros this clutters the listing up
-unnecessarily.
-
-NASM therefore provides the \c{.nolist} qualifier, which you can
-include in a macro definition to inhibit the expansion of the macro
-in the listing file. The \c{.nolist} qualifier comes directly after
-the number of parameters, like this:
-
-\c %macro foo 1.nolist
-
-Or like this:
-
-\c %macro bar 1-5+.nolist a,b,c,d,e,f,g,h
-
-\S{unmacro} Undefining Multi-Line Macros: \i\c{%unmacro}
-
-Multi-line macros can be removed with the \c{%unmacro} directive.
-Unlike the \c{%undef} directive, however, \c{%unmacro} takes an
-argument specification, and will only remove \i{exact matches} with
-that argument specification.
-
-For example:
-
-\c %macro foo 1-3
-\c         ; Do something
-\c %endmacro
-\c %unmacro foo 1-3
-
-removes the previously defined macro \c{foo}, but
-
-\c %macro bar 1-3
-\c         ; Do something
-\c %endmacro
-\c %unmacro bar 1
-
-does \e{not} remove the macro \c{bar}, since the argument
-specification does not match exactly.
-
-
-\H{condasm} \i{Conditional Assembly}\I\c{%if}
-
-Similarly to the C preprocessor, NASM allows sections of a source
-file to be assembled only if certain conditions are met. The general
-syntax of this feature looks like this:
-
-\c %if<condition>
-\c     ; some code which only appears if <condition> is met
-\c %elif<condition2>
-\c     ; only appears if <condition> is not met but <condition2> is
-\c %else
-\c     ; this appears if neither <condition> nor <condition2> was met
-\c %endif
-
-The inverse forms \i\c{%ifn} and \i\c{%elifn} are also supported.
-
-The \i\c{%else} clause is optional, as is the \i\c{%elif} clause.
-You can have more than one \c{%elif} clause as well.
-
-There are a number of variants of the \c{%if} directive.  Each has its
-corresponding \c{%elif}, \c{%ifn}, and \c{%elifn} directives; for
-example, the equivalents to the \c{%ifdef} directive are \c{%elifdef},
-\c{%ifndef}, and \c{%elifndef}.
-
-\S{ifdef} \i\c{%ifdef}: Testing Single-Line Macro Existence\I{testing,
-single-line macro existence}
-
-Beginning a conditional-assembly block with the line \c{%ifdef
-MACRO} will assemble the subsequent code if, and only if, a
-single-line macro called \c{MACRO} is defined. If not, then the
-\c{%elif} and \c{%else} blocks (if any) will be processed instead.
-
-For example, when debugging a program, you might want to write code
-such as
-
-\c           ; perform some function
-\c %ifdef DEBUG
-\c           writefile 2,"Function performed successfully",13,10
-\c %endif
-\c           ; go and do something else
-
-Then you could use the command-line option \c{-dDEBUG} to create a
-version of the program which produced debugging messages, and remove
-the option to generate the final release version of the program.
-
-You can test for a macro \e{not} being defined by using
-\i\c{%ifndef} instead of \c{%ifdef}. You can also test for macro
-definitions in \c{%elif} blocks by using \i\c{%elifdef} and
-\i\c{%elifndef}.
-
-
-\S{ifmacro} \i\c{%ifmacro}: Testing Multi-Line Macro
-Existence\I{testing, multi-line macro existence}
-
-The \c{%ifmacro} directive operates in the same way as the \c{%ifdef}
-directive, except that it checks for the existence of a multi-line macro.
-
-For example, you may be working with a large project and not have control
-over the macros in a library. You may want to create a macro with one
-name if it doesn't already exist, and another name if one with that name
-does exist.
-
-The \c{%ifmacro} is considered true if defining a macro with the given name
-and number of arguments would cause a definitions conflict. For example:
-
-\c %ifmacro MyMacro 1-3
-\c
-\c      %error "MyMacro 1-3" causes a conflict with an existing macro.
-\c
-\c %else
-\c
-\c      %macro MyMacro 1-3
-\c
-\c              ; insert code to define the macro
-\c
-\c      %endmacro
-\c
-\c %endif
-
-This will create the macro "MyMacro 1-3" if no macro already exists which
-would conflict with it, and emits a warning if there would be a definition
-conflict.
-
-You can test for the macro not existing by using the \i\c{%ifnmacro} instead
-of \c{%ifmacro}. Additional tests can be performed in \c{%elif} blocks by using
-\i\c{%elifmacro} and \i\c{%elifnmacro}.
-
-
-\S{ifctx} \i\c{%ifctx}: Testing the Context Stack\I{testing, context
-stack}
-
-The conditional-assembly construct \c{%ifctx} will cause the
-subsequent code to be assembled if and only if the top context on
-the preprocessor's context stack has the same name as one of the arguments.
-As with \c{%ifdef}, the inverse and \c{%elif} forms \i\c{%ifnctx},
-\i\c{%elifctx} and \i\c{%elifnctx} are also supported.
-
-For more details of the context stack, see \k{ctxstack}. For a
-sample use of \c{%ifctx}, see \k{blockif}.
-
-
-\S{if} \i\c{%if}: Testing Arbitrary Numeric Expressions\I{testing,
-arbitrary numeric expressions}
-
-The conditional-assembly construct \c{%if expr} will cause the
-subsequent code to be assembled if and only if the value of the
-numeric expression \c{expr} is non-zero. An example of the use of
-this feature is in deciding when to break out of a \c{%rep}
-preprocessor loop: see \k{rep} for a detailed example.
-
-The expression given to \c{%if}, and its counterpart \i\c{%elif}, is
-a critical expression (see \k{crit}).
-
-\c{%if} extends the normal NASM expression syntax, by providing a
-set of \i{relational operators} which are not normally available in
-expressions. The operators \i\c{=}, \i\c{<}, \i\c{>}, \i\c{<=},
-\i\c{>=} and \i\c{<>} test equality, less-than, greater-than,
-less-or-equal, greater-or-equal and not-equal respectively. The
-C-like forms \i\c{==} and \i\c{!=} are supported as alternative
-forms of \c{=} and \c{<>}. In addition, low-priority logical
-operators \i\c{&&}, \i\c{^^} and \i\c{||} are provided, supplying
-\i{logical AND}, \i{logical XOR} and \i{logical OR}. These work like
-the C logical operators (although C has no logical XOR), in that
-they always return either 0 or 1, and treat any non-zero input as 1
-(so that \c{^^}, for example, returns 1 if exactly one of its inputs
-is zero, and 0 otherwise). The relational operators also return 1
-for true and 0 for false.
-
-Like other \c{%if} constructs, \c{%if} has a counterpart
-\i\c{%elif}, and negative forms \i\c{%ifn} and \i\c{%elifn}.
-
-\S{ifidn} \i\c{%ifidn} and \i\c{%ifidni}: Testing Exact Text
-Identity\I{testing, exact text identity}
-
-The construct \c{%ifidn text1,text2} will cause the subsequent code
-to be assembled if and only if \c{text1} and \c{text2}, after
-expanding single-line macros, are identical pieces of text.
-Differences in white space are not counted.
-
-\c{%ifidni} is similar to \c{%ifidn}, but is \i{case-insensitive}.
-
-For example, the following macro pushes a register or number on the
-stack, and allows you to treat \c{IP} as a real register:
-
-\c %macro  pushparam 1
-\c
-\c   %ifidni %1,ip
-\c         call    %%label
-\c   %%label:
-\c   %else
-\c         push    %1
-\c   %endif
-\c
-\c %endmacro
-
-Like other \c{%if} constructs, \c{%ifidn} has a counterpart
-\i\c{%elifidn}, and negative forms \i\c{%ifnidn} and \i\c{%elifnidn}.
-Similarly, \c{%ifidni} has counterparts \i\c{%elifidni},
-\i\c{%ifnidni} and \i\c{%elifnidni}.
-
-\S{iftyp} \i\c{%ifid}, \i\c{%ifnum}, \i\c{%ifstr}: Testing Token
-Types\I{testing, token types}
-
-Some macros will want to perform different tasks depending on
-whether they are passed a number, a string, or an identifier. For
-example, a string output macro might want to be able to cope with
-being passed either a string constant or a pointer to an existing
-string.
-
-The conditional assembly construct \c{%ifid}, taking one parameter
-(which may be blank), assembles the subsequent code if and only if
-the first token in the parameter exists and is an identifier.
-\c{%ifnum} works similarly, but tests for the token being a numeric
-constant; \c{%ifstr} tests for it being a string.
-
-For example, the \c{writefile} macro defined in \k{mlmacgre} can be
-extended to take advantage of \c{%ifstr} in the following fashion:
-
-\c %macro writefile 2-3+
-\c
-\c   %ifstr %2
-\c         jmp     %%endstr
-\c     %if %0 = 3
-\c       %%str:    db      %2,%3
-\c     %else
-\c       %%str:    db      %2
-\c     %endif
-\c       %%endstr: mov     dx,%%str
-\c                 mov     cx,%%endstr-%%str
-\c   %else
-\c                 mov     dx,%2
-\c                 mov     cx,%3
-\c   %endif
-\c                 mov     bx,%1
-\c                 mov     ah,0x40
-\c                 int     0x21
-\c
-\c %endmacro
-
-Then the \c{writefile} macro can cope with being called in either of
-the following two ways:
-
-\c         writefile [file], strpointer, length
-\c         writefile [file], "hello", 13, 10
-
-In the first, \c{strpointer} is used as the address of an
-already-declared string, and \c{length} is used as its length; in
-the second, a string is given to the macro, which therefore declares
-it itself and works out the address and length for itself.
-
-Note the use of \c{%if} inside the \c{%ifstr}: this is to detect
-whether the macro was passed two arguments (so the string would be a
-single string constant, and \c{db %2} would be adequate) or more (in
-which case, all but the first two would be lumped together into
-\c{%3}, and \c{db %2,%3} would be required).
-
-The usual \I\c{%elifid}\I\c{%elifnum}\I\c{%elifstr}\c{%elif}...,
-\I\c{%ifnid}\I\c{%ifnnum}\I\c{%ifnstr}\c{%ifn}..., and
-\I\c{%elifnid}\I\c{%elifnnum}\I\c{%elifnstr}\c{%elifn}... versions
-exist for each of \c{%ifid}, \c{%ifnum} and \c{%ifstr}.
-
-\S{iftoken} \i\c{%iftoken}: Test for a Single Token
-
-Some macros will want to do different things depending on if it is
-passed a single token (e.g. paste it to something else using \c{%+})
-versus a multi-token sequence.
-
-The conditional assembly construct \c{%iftoken} assembles the
-subsequent code if and only if the expanded parameters consist of
-exactly one token, possibly surrounded by whitespace.
-
-For example:
-
-\c %iftoken 1
-
-will assemble the subsequent code, but
-
-\c %iftoken -1
-
-will not, since \c{-1} contains two tokens: the unary minus operator
-\c{-}, and the number \c{1}.
-
-The usual \i\c{%eliftoken}, \i\c\{%ifntoken}, and \i\c{%elifntoken}
-variants are also provided.
-
-\S{ifempty} \i\c{%ifempty}: Test for Empty Expansion
-
-The conditional assembly construct \c{%ifempty} assembles the
-subsequent code if and only if the expanded parameters do not contain
-any tokens at all, whitespace excepted.
-
-The usual \i\c{%elifempty}, \i\c\{%ifnempty}, and \i\c{%elifnempty}
-variants are also provided.
-
-\S{ifenv} \i\c{%ifenv}: Test If Environment Variable Exists
-
-The conditional assembly construct \c{%ifenv} assembles the
-subsequent code if and only if the environment variable referenced by
-the \c{%!<env>} directive exists.
-
-The usual \i\c{%elifenv}, \i\c\{%ifnenv}, and \i\c{%elifnenv}
-variants are also provided.
-
-Just as for \c{%!<env>} the argument should be written as a string if
-it contains characters that would not be legal in an identifier.  See
-\k{getenv}.
-
-\H{rep} \i{Preprocessor Loops}\I{repeating code}: \i\c{%rep}
-
-NASM's \c{TIMES} prefix, though useful, cannot be used to invoke a
-multi-line macro multiple times, because it is processed by NASM
-after macros have already been expanded. Therefore NASM provides
-another form of loop, this time at the preprocessor level: \c{%rep}.
-
-The directives \c{%rep} and \i\c{%endrep} (\c{%rep} takes a numeric
-argument, which can be an expression; \c{%endrep} takes no
-arguments) can be used to enclose a chunk of code, which is then
-replicated as many times as specified by the preprocessor:
-
-\c %assign i 0
-\c %rep    64
-\c         inc     word [table+2*i]
-\c %assign i i+1
-\c %endrep
-
-This will generate a sequence of 64 \c{INC} instructions,
-incrementing every word of memory from \c{[table]} to
-\c{[table+126]}.
-
-For more complex termination conditions, or to break out of a repeat
-loop part way along, you can use the \i\c{%exitrep} directive to
-terminate the loop, like this:
-
-\c fibonacci:
-\c %assign i 0
-\c %assign j 1
-\c %rep 100
-\c %if j > 65535
-\c     %exitrep
-\c %endif
-\c         dw j
-\c %assign k j+i
-\c %assign i j
-\c %assign j k
-\c %endrep
-\c
-\c fib_number equ ($-fibonacci)/2
-
-This produces a list of all the Fibonacci numbers that will fit in
-16 bits. Note that a maximum repeat count must still be given to
-\c{%rep}. This is to prevent the possibility of NASM getting into an
-infinite loop in the preprocessor, which (on multitasking or
-multi-user systems) would typically cause all the system memory to
-be gradually used up and other applications to start crashing.
-
-Note a maximum repeat count is limited by 62 bit number, though it
-is hardly possible that you ever need anything bigger.
-
-
-\H{files} Source Files and Dependencies
-
-These commands allow you to split your sources into multiple files.
-
-\S{include} \i\c{%include}: \i{Including Other Files}
-
-Using, once again, a very similar syntax to the C preprocessor,
-NASM's preprocessor lets you include other source files into your
-code. This is done by the use of the \i\c{%include} directive:
-
-\c %include "macros.mac"
-
-will include the contents of the file \c{macros.mac} into the source
-file containing the \c{%include} directive.
-
-Include files are \I{searching for include files}searched for in the
-current directory (the directory you're in when you run NASM, as
-opposed to the location of the NASM executable or the location of
-the source file), plus any directories specified on the NASM command
-line using the \c{-i} option.
-
-The standard C idiom for preventing a file being included more than
-once is just as applicable in NASM: if the file \c{macros.mac} has
-the form
-
-\c %ifndef MACROS_MAC
-\c     %define MACROS_MAC
-\c     ; now define some macros
-\c %endif
-
-then including the file more than once will not cause errors,
-because the second time the file is included nothing will happen
-because the macro \c{MACROS_MAC} will already be defined.
-
-You can force a file to be included even if there is no \c{%include}
-directive that explicitly includes it, by using the \i\c{-p} option
-on the NASM command line (see \k{opt-p}).
-
-
-\S{pathsearch} \i\c{%pathsearch}: Search the Include Path
-
-The \c{%pathsearch} directive takes a single-line macro name and a
-filename, and declare or redefines the specified single-line macro to
-be the include-path-resolved version of the filename, if the file
-exists (otherwise, it is passed unchanged.)
-
-For example,
-
-\c %pathsearch MyFoo "foo.bin"
-
-... with \c{-Ibins/} in the include path may end up defining the macro
-\c{MyFoo} to be \c{"bins/foo.bin"}.
-
-
-\S{depend} \i\c{%depend}: Add Dependent Files
-
-The \c{%depend} directive takes a filename and adds it to the list of
-files to be emitted as dependency generation when the \c{-M} options
-and its relatives (see \k{opt-M}) are used.  It produces no output.
-
-This is generally used in conjunction with \c{%pathsearch}.  For
-example, a simplified version of the standard macro wrapper for the
-\c{INCBIN} directive looks like:
-
-\c %imacro incbin 1-2+ 0
-\c %pathsearch dep %1
-\c %depend dep
-\c         incbin dep,%2
-\c %endmacro
-
-This first resolves the location of the file into the macro \c{dep},
-then adds it to the dependency lists, and finally issues the
-assembler-level \c{INCBIN} directive.
-
-
-\S{use} \i\c{%use}: Include Standard Macro Package
-
-The \c{%use} directive is similar to \c{%include}, but rather than
-including the contents of a file, it includes a named standard macro
-package.  The standard macro packages are part of NASM, and are
-described in \k{macropkg}.
-
-Unlike the \c{%include} directive, package names for the \c{%use}
-directive do not require quotes, but quotes are permitted.  In NASM
-2.04 and 2.05 the unquoted form would be macro-expanded; this is no
-longer true.  Thus, the following lines are equivalent:
-
-\c %use altreg
-\c %use 'altreg'
-
-Standard macro packages are protected from multiple inclusion.  When a
-standard macro package is used, a testable single-line macro of the
-form \c{__USE_}\e{package}\c{__} is also defined, see \k{use_def}.
-
-\H{ctxstack} The \i{Context Stack}
-
-Having labels that are local to a macro definition is sometimes not
-quite powerful enough: sometimes you want to be able to share labels
-between several macro calls. An example might be a \c{REPEAT} ...
-\c{UNTIL} loop, in which the expansion of the \c{REPEAT} macro
-would need to be able to refer to a label which the \c{UNTIL} macro
-had defined. However, for such a macro you would also want to be
-able to nest these loops.
-
-NASM provides this level of power by means of a \e{context stack}.
-The preprocessor maintains a stack of \e{contexts}, each of which is
-characterized by a name. You add a new context to the stack using
-the \i\c{%push} directive, and remove one using \i\c{%pop}. You can
-define labels that are local to a particular context on the stack.
-
-
-\S{pushpop} \i\c{%push} and \i\c{%pop}: \I{creating
-contexts}\I{removing contexts}Creating and Removing Contexts
-
-The \c{%push} directive is used to create a new context and place it
-on the top of the context stack. \c{%push} takes an optional argument,
-which is the name of the context. For example:
-
-\c %push    foobar
-
-This pushes a new context called \c{foobar} on the stack. You can have
-several contexts on the stack with the same name: they can still be
-distinguished.  If no name is given, the context is unnamed (this is
-normally used when both the \c{%push} and the \c{%pop} are inside a
-single macro definition.)
-
-The directive \c{%pop}, taking one optional argument, removes the top
-context from the context stack and destroys it, along with any
-labels associated with it.  If an argument is given, it must match the
-name of the current context, otherwise it will issue an error.
-
-
-\S{ctxlocal} \i{Context-Local Labels}
-
-Just as the usage \c{%%foo} defines a label which is local to the
-particular macro call in which it is used, the usage \I{%$}\c{%$foo}
-is used to define a label which is local to the context on the top
-of the context stack. So the \c{REPEAT} and \c{UNTIL} example given
-above could be implemented by means of:
-
-\c %macro repeat 0
-\c
-\c     %push   repeat
-\c     %$begin:
-\c
-\c %endmacro
-\c
-\c %macro until 1
-\c
-\c         j%-1    %$begin
-\c     %pop
-\c
-\c %endmacro
-
-and invoked by means of, for example,
-
-\c         mov     cx,string
-\c         repeat
-\c         add     cx,3
-\c         scasb
-\c         until   e
-
-which would scan every fourth byte of a string in search of the byte
-in \c{AL}.
-
-If you need to define, or access, labels local to the context
-\e{below} the top one on the stack, you can use \I{%$$}\c{%$$foo}, or
-\c{%$$$foo} for the context below that, and so on.
-
-
-\S{ctxdefine} \i{Context-Local Single-Line Macros}
-
-NASM also allows you to define single-line macros which are local to
-a particular context, in just the same way:
-
-\c %define %$localmac 3
-
-will define the single-line macro \c{%$localmac} to be local to the
-top context on the stack. Of course, after a subsequent \c{%push},
-it can then still be accessed by the name \c{%$$localmac}.
-
-
-\S{ctxfallthrough} \i{Context Fall-Through Lookup}
-
-Context fall-through lookup (automatic searching of outer contexts)
-is a feature that was added in NASM version 0.98.03. Unfortunately,
-this feature is unintuitive and can result in buggy code that would
-have otherwise been prevented by NASM's error reporting. As a result,
-this feature has been \e{deprecated}. NASM version 2.09 will issue a
-warning when usage of this \e{deprecated} feature is detected. Starting
-with NASM version 2.10, usage of this \e{deprecated} feature will simply
-result in an \e{expression syntax error}.
-
-An example usage of this \e{deprecated} feature follows:
-
-\c %macro ctxthru 0
-\c %push ctx1
-\c     %assign %$external 1
-\c         %push ctx2
-\c             %assign %$internal 1
-\c             mov eax, %$external
-\c             mov eax, %$internal
-\c         %pop
-\c %pop
-\c %endmacro
-
-As demonstrated, \c{%$external} is being defined in the \c{ctx1}
-context and referenced within the \c{ctx2} context. With context
-fall-through lookup, referencing an undefined context-local macro
-like this implicitly searches through all outer contexts until a match
-is made or isn't found in any context. As a result, \c{%$external}
-referenced within the \c{ctx2} context would implicitly use \c{%$external}
-as defined in \c{ctx1}. Most people would expect NASM to issue an error in
-this situation because \c{%$external} was never defined within \c{ctx2} and also
-isn't qualified with the proper context depth, \c{%$$external}.
-
-Here is a revision of the above example with proper context depth:
-
-\c %macro ctxthru 0
-\c %push ctx1
-\c     %assign %$external 1
-\c         %push ctx2
-\c             %assign %$internal 1
-\c             mov eax, %$$external
-\c             mov eax, %$internal
-\c         %pop
-\c %pop
-\c %endmacro
-
-As demonstrated, \c{%$external} is still being defined in the \c{ctx1}
-context and referenced within the \c{ctx2} context. However, the
-reference to \c{%$external} within \c{ctx2} has been fully qualified with
-the proper context depth, \c{%$$external}, and thus is no longer ambiguous,
-unintuitive or erroneous.
-
-
-\S{ctxrepl} \i\c{%repl}: \I{renaming contexts}Renaming a Context
-
-If you need to change the name of the top context on the stack (in
-order, for example, to have it respond differently to \c{%ifctx}),
-you can execute a \c{%pop} followed by a \c{%push}; but this will
-have the side effect of destroying all context-local labels and
-macros associated with the context that was just popped.
-
-NASM provides the directive \c{%repl}, which \e{replaces} a context
-with a different name, without touching the associated macros and
-labels. So you could replace the destructive code
-
-\c %pop
-\c %push   newname
-
-with the non-destructive version \c{%repl newname}.
-
-
-\S{blockif} Example Use of the \i{Context Stack}: \i{Block IFs}
-
-This example makes use of almost all the context-stack features,
-including the conditional-assembly construct \i\c{%ifctx}, to
-implement a block IF statement as a set of macros.
-
-\c %macro if 1
-\c
-\c     %push if
-\c     j%-1  %$ifnot
-\c
-\c %endmacro
-\c
-\c %macro else 0
-\c
-\c   %ifctx if
-\c         %repl   else
-\c         jmp     %$ifend
-\c         %$ifnot:
-\c   %else
-\c         %error  "expected `if' before `else'"
-\c   %endif
-\c
-\c %endmacro
-\c
-\c %macro endif 0
-\c
-\c   %ifctx if
-\c         %$ifnot:
-\c         %pop
-\c   %elifctx      else
-\c         %$ifend:
-\c         %pop
-\c   %else
-\c         %error  "expected `if' or `else' before `endif'"
-\c   %endif
-\c
-\c %endmacro
-
-This code is more robust than the \c{REPEAT} and \c{UNTIL} macros
-given in \k{ctxlocal}, because it uses conditional assembly to check
-that the macros are issued in the right order (for example, not
-calling \c{endif} before \c{if}) and issues a \c{%error} if they're
-not.
-
-In addition, the \c{endif} macro has to be able to cope with the two
-distinct cases of either directly following an \c{if}, or following
-an \c{else}. It achieves this, again, by using conditional assembly
-to do different things depending on whether the context on top of
-the stack is \c{if} or \c{else}.
-
-The \c{else} macro has to preserve the context on the stack, in
-order to have the \c{%$ifnot} referred to by the \c{if} macro be the
-same as the one defined by the \c{endif} macro, but has to change
-the context's name so that \c{endif} will know there was an
-intervening \c{else}. It does this by the use of \c{%repl}.
-
-A sample usage of these macros might look like:
-
-\c         cmp     ax,bx
-\c
-\c         if ae
-\c                cmp     bx,cx
-\c
-\c                if ae
-\c                        mov     ax,cx
-\c                else
-\c                        mov     ax,bx
-\c                endif
-\c
-\c         else
-\c                cmp     ax,cx
-\c
-\c                if ae
-\c                        mov     ax,cx
-\c                endif
-\c
-\c         endif
-
-The block-\c{IF} macros handle nesting quite happily, by means of
-pushing another context, describing the inner \c{if}, on top of the
-one describing the outer \c{if}; thus \c{else} and \c{endif} always
-refer to the last unmatched \c{if} or \c{else}.
-
-
-\H{stackrel} \i{Stack Relative Preprocessor Directives}
-
-The following preprocessor directives provide a way to use
-labels to refer to local variables allocated on the stack.
-
-\b\c{%arg}  (see \k{arg})
-
-\b\c{%stacksize}  (see \k{stacksize})
-
-\b\c{%local}  (see \k{local})
-
-
-\S{arg} \i\c{%arg} Directive
-
-The \c{%arg} directive is used to simplify the handling of
-parameters passed on the stack. Stack based parameter passing
-is used by many high level languages, including C, C++ and Pascal.
-
-While NASM has macros which attempt to duplicate this
-functionality (see \k{16cmacro}), the syntax is not particularly
-convenient to use and is not TASM compatible. Here is an example
-which shows the use of \c{%arg} without any external macros:
-
-\c some_function:
-\c
-\c     %push     mycontext        ; save the current context
-\c     %stacksize large           ; tell NASM to use bp
-\c     %arg      i:word, j_ptr:word
-\c
-\c         mov     ax,[i]
-\c         mov     bx,[j_ptr]
-\c         add     ax,[bx]
-\c         ret
-\c
-\c     %pop                       ; restore original context
-
-This is similar to the procedure defined in \k{16cmacro} and adds
-the value in i to the value pointed to by j_ptr and returns the
-sum in the ax register. See \k{pushpop} for an explanation of
-\c{push} and \c{pop} and the use of context stacks.
-
-
-\S{stacksize} \i\c{%stacksize} Directive
-
-The \c{%stacksize} directive is used in conjunction with the
-\c{%arg} (see \k{arg}) and the \c{%local} (see \k{local}) directives.
-It tells NASM the default size to use for subsequent \c{%arg} and
-\c{%local} directives. The \c{%stacksize} directive takes one
-required argument which is one of \c{flat}, \c{flat64}, \c{large} or \c{small}.
-
-\c %stacksize flat
-
-This form causes NASM to use stack-based parameter addressing
-relative to \c{ebp} and it assumes that a near form of call was used
-to get to this label (i.e. that \c{eip} is on the stack).
-
-\c %stacksize flat64
-
-This form causes NASM to use stack-based parameter addressing
-relative to \c{rbp} and it assumes that a near form of call was used
-to get to this label (i.e. that \c{rip} is on the stack).
-
-\c %stacksize large
-
-This form uses \c{bp} to do stack-based parameter addressing and
-assumes that a far form of call was used to get to this address
-(i.e. that \c{ip} and \c{cs} are on the stack).
-
-\c %stacksize small
-
-This form also uses \c{bp} to address stack parameters, but it is
-different from \c{large} because it also assumes that the old value
-of bp is pushed onto the stack (i.e. it expects an \c{ENTER}
-instruction). In other words, it expects that \c{bp}, \c{ip} and
-\c{cs} are on the top of the stack, underneath any local space which
-may have been allocated by \c{ENTER}. This form is probably most
-useful when used in combination with the \c{%local} directive
-(see \k{local}).
-
-
-\S{local} \i\c{%local} Directive
-
-The \c{%local} directive is used to simplify the use of local
-temporary stack variables allocated in a stack frame. Automatic
-local variables in C are an example of this kind of variable. The
-\c{%local} directive is most useful when used with the \c{%stacksize}
-(see \k{stacksize} and is also compatible with the \c{%arg} directive
-(see \k{arg}). It allows simplified reference to variables on the
-stack which have been allocated typically by using the \c{ENTER}
-instruction.
-\# (see \k{insENTER} for a description of that instruction).
-An example of its use is the following:
-
-\c silly_swap:
-\c
-\c     %push mycontext             ; save the current context
-\c     %stacksize small            ; tell NASM to use bp
-\c     %assign %$localsize 0       ; see text for explanation
-\c     %local old_ax:word, old_dx:word
-\c
-\c         enter   %$localsize,0   ; see text for explanation
-\c         mov     [old_ax],ax     ; swap ax & bx
-\c         mov     [old_dx],dx     ; and swap dx & cx
-\c         mov     ax,bx
-\c         mov     dx,cx
-\c         mov     bx,[old_ax]
-\c         mov     cx,[old_dx]
-\c         leave                   ; restore old bp
-\c         ret                     ;
-\c
-\c     %pop                        ; restore original context
-
-The \c{%$localsize} variable is used internally by the
-\c{%local} directive and \e{must} be defined within the
-current context before the \c{%local} directive may be used.
-Failure to do so will result in one expression syntax error for
-each \c{%local} variable declared. It then may be used in
-the construction of an appropriately sized ENTER instruction
-as shown in the example.
-
-
-\H{pperror} Reporting \i{User-Defined Errors}: \i\c{%error}, \i\c{%warning}, \i\c{%fatal}
-
-The preprocessor directive \c{%error} will cause NASM to report an
-error if it occurs in assembled code. So if other users are going to
-try to assemble your source files, you can ensure that they define the
-right macros by means of code like this:
-
-\c %ifdef F1
-\c     ; do some setup
-\c %elifdef F2
-\c     ; do some different setup
-\c %else
-\c     %error "Neither F1 nor F2 was defined."
-\c %endif
-
-Then any user who fails to understand the way your code is supposed
-to be assembled will be quickly warned of their mistake, rather than
-having to wait until the program crashes on being run and then not
-knowing what went wrong.
-
-Similarly, \c{%warning} issues a warning, but allows assembly to continue:
-
-\c %ifdef F1
-\c     ; do some setup
-\c %elifdef F2
-\c     ; do some different setup
-\c %else
-\c     %warning "Neither F1 nor F2 was defined, assuming F1."
-\c     %define F1
-\c %endif
-
-\c{%error} and \c{%warning} are issued only on the final assembly
-pass.  This makes them safe to use in conjunction with tests that
-depend on symbol values.
-
-\c{%fatal} terminates assembly immediately, regardless of pass.  This
-is useful when there is no point in continuing the assembly further,
-and doing so is likely just going to cause a spew of confusing error
-messages.
-
-It is optional for the message string after \c{%error}, \c{%warning}
-or \c{%fatal} to be quoted.  If it is \e{not}, then single-line macros
-are expanded in it, which can be used to display more information to
-the user.  For example:
-
-\c %if foo > 64
-\c     %assign foo_over foo-64
-\c     %error foo is foo_over bytes too large
-\c %endif
-
-
-\H{otherpreproc} \i{Other Preprocessor Directives}
-
-NASM also has preprocessor directives which allow access to
-information from external sources. Currently they include:
-
-\b\c{%line} enables NASM to correctly handle the output of another
-preprocessor (see \k{line}).
-
-\b\c{%!} enables NASM to read in the value of an environment variable,
-which can then be used in your program (see \k{getenv}).
-
-\S{line} \i\c{%line} Directive
-
-The \c{%line} directive is used to notify NASM that the input line
-corresponds to a specific line number in another file.  Typically
-this other file would be an original source file, with the current
-NASM input being the output of a pre-processor.  The \c{%line}
-directive allows NASM to output messages which indicate the line
-number of the original source file, instead of the file that is being
-read by NASM.
-
-This preprocessor directive is not generally of use to programmers,
-by may be of interest to preprocessor authors.  The usage of the
-\c{%line} preprocessor directive is as follows:
-
-\c %line nnn[+mmm] [filename]
-
-In this directive, \c{nnn} identifies the line of the original source
-file which this line corresponds to.  \c{mmm} is an optional parameter
-which specifies a line increment value; each line of the input file
-read in is considered to correspond to \c{mmm} lines of the original
-source file.  Finally, \c{filename} is an optional parameter which
-specifies the file name of the original source file.
-
-After reading a \c{%line} preprocessor directive, NASM will report
-all file name and line numbers relative to the values specified
-therein.
-
-
-\S{getenv} \i\c{%!}\c{<env>}: Read an environment variable.
-
-The \c{%!<env>} directive makes it possible to read the value of an
-environment variable at assembly time. This could, for example, be used
-to store the contents of an environment variable into a string, which
-could be used at some other point in your code.
-
-For example, suppose that you have an environment variable \c{FOO}, and
-you want the contents of \c{FOO} to be embedded in your program. You
-could do that as follows:
-
-\c %defstr FOO          %!FOO
-
-See \k{defstr} for notes on the \c{%defstr} directive.
-
-If the name of the environment variable contains non-identifier
-characters, you can use string quotes to surround the name of the
-variable, for example:
-
-\c %defstr C_colon      %!'C:'
-
-
-\H{stdmac} \i{Standard Macros}
-
-NASM defines a set of standard macros, which are already defined
-when it starts to process any source file. If you really need a
-program to be assembled with no pre-defined macros, you can use the
-\i\c{%clear} directive to empty the preprocessor of everything but
-context-local preprocessor variables and single-line macros.
-
-Most \i{user-level assembler directives} (see \k{directive}) are
-implemented as macros which invoke primitive directives; these are
-described in \k{directive}. The rest of the standard macro set is
-described here.
-
-
-\S{stdmacver} \i{NASM Version} Macros
-
-The single-line macros \i\c{__NASM_MAJOR__}, \i\c{__NASM_MINOR__},
-\i\c{__NASM_SUBMINOR__} and \i\c{___NASM_PATCHLEVEL__} expand to the
-major, minor, subminor and patch level parts of the \i{version
-number of NASM} being used. So, under NASM 0.98.32p1 for
-example, \c{__NASM_MAJOR__} would be defined to be 0, \c{__NASM_MINOR__}
-would be defined as 98, \c{__NASM_SUBMINOR__} would be defined to 32,
-and \c{___NASM_PATCHLEVEL__} would be defined as 1.
-
-Additionally, the macro \i\c{__NASM_SNAPSHOT__} is defined for
-automatically generated snapshot releases \e{only}.
-
-
-\S{stdmacverid} \i\c{__NASM_VERSION_ID__}: \i{NASM Version ID}
-
-The single-line macro \c{__NASM_VERSION_ID__} expands to a dword integer
-representing the full version number of the version of nasm being used.
-The value is the equivalent to \c{__NASM_MAJOR__}, \c{__NASM_MINOR__},
-\c{__NASM_SUBMINOR__} and \c{___NASM_PATCHLEVEL__} concatenated to
-produce a single doubleword. Hence, for 0.98.32p1, the returned number
-would be equivalent to:
-
-\c         dd      0x00622001
-
-or
-
-\c         db      1,32,98,0
-
-Note that the above lines are generate exactly the same code, the second
-line is used just to give an indication of the order that the separate
-values will be present in memory.
-
-
-\S{stdmacverstr} \i\c{__NASM_VER__}: \i{NASM Version string}
-
-The single-line macro \c{__NASM_VER__} expands to a string which defines
-the version number of nasm being used. So, under NASM 0.98.32 for example,
-
-\c         db      __NASM_VER__
-
-would expand to
-
-\c         db      "0.98.32"
-
-
-\S{fileline} \i\c{__FILE__} and \i\c{__LINE__}: File Name and Line Number
-
-Like the C preprocessor, NASM allows the user to find out the file
-name and line number containing the current instruction. The macro
-\c{__FILE__} expands to a string constant giving the name of the
-current input file (which may change through the course of assembly
-if \c{%include} directives are used), and \c{__LINE__} expands to a
-numeric constant giving the current line number in the input file.
-
-These macros could be used, for example, to communicate debugging
-information to a macro, since invoking \c{__LINE__} inside a macro
-definition (either single-line or multi-line) will return the line
-number of the macro \e{call}, rather than \e{definition}. So to
-determine where in a piece of code a crash is occurring, for
-example, one could write a routine \c{stillhere}, which is passed a
-line number in \c{EAX} and outputs something like `line 155: still
-here'. You could then write a macro
-
-\c %macro  notdeadyet 0
-\c
-\c         push    eax
-\c         mov     eax,__LINE__
-\c         call    stillhere
-\c         pop     eax
-\c
-\c %endmacro
-
-and then pepper your code with calls to \c{notdeadyet} until you
-find the crash point.
-
-
-\S{bitsm} \i\c{__BITS__}: Current BITS Mode
-
-The \c{__BITS__} standard macro is updated every time that the BITS mode is
-set using the \c{BITS XX} or \c{[BITS XX]} directive, where XX is a valid mode
-number of 16, 32 or 64. \c{__BITS__} receives the specified mode number and
-makes it globally available. This can be very useful for those who utilize
-mode-dependent macros.
-
-\S{ofmtm} \i\c{__OUTPUT_FORMAT__}: Current Output Format
-
-The \c{__OUTPUT_FORMAT__} standard macro holds the current Output Format,
-as given by the \c{-f} option or NASM's default. Type \c{nasm -hf} for a
-list.
-
-\c %ifidn __OUTPUT_FORMAT__, win32
-\c  %define NEWLINE 13, 10
-\c %elifidn __OUTPUT_FORMAT__, elf32
-\c  %define NEWLINE 10
-\c %endif
-
-
-\S{datetime} Assembly Date and Time Macros
-
-NASM provides a variety of macros that represent the timestamp of the
-assembly session.
-
-\b The \i\c{__DATE__} and \i\c{__TIME__} macros give the assembly date and
-time as strings, in ISO 8601 format (\c{"YYYY-MM-DD"} and \c{"HH:MM:SS"},
-respectively.)
-
-\b The \i\c{__DATE_NUM__} and \i\c{__TIME_NUM__} macros give the assembly
-date and time in numeric form; in the format \c{YYYYMMDD} and
-\c{HHMMSS} respectively.
-
-\b The \i\c{__UTC_DATE__} and \i\c{__UTC_TIME__} macros give the assembly
-date and time in universal time (UTC) as strings, in ISO 8601 format
-(\c{"YYYY-MM-DD"} and \c{"HH:MM:SS"}, respectively.)  If the host
-platform doesn't provide UTC time, these macros are undefined.
-
-\b The \i\c{__UTC_DATE_NUM__} and \i\c{__UTC_TIME_NUM__} macros give the
-assembly date and time universal time (UTC) in numeric form; in the
-format \c{YYYYMMDD} and \c{HHMMSS} respectively.  If the
-host platform doesn't provide UTC time, these macros are
-undefined.
-
-\b The \c{__POSIX_TIME__} macro is defined as a number containing the
-number of seconds since the POSIX epoch, 1 January 1970 00:00:00 UTC;
-excluding any leap seconds.  This is computed using UTC time if
-available on the host platform, otherwise it is computed using the
-local time as if it was UTC.
-
-All instances of time and date macros in the same assembly session
-produce consistent output.  For example, in an assembly session
-started at 42 seconds after midnight on January 1, 2010 in Moscow
-(timezone UTC+3) these macros would have the following values,
-assuming, of course, a properly configured environment with a correct
-clock:
-
-\c       __DATE__             "2010-01-01"
-\c       __TIME__             "00:00:42"
-\c       __DATE_NUM__         20100101
-\c       __TIME_NUM__         000042
-\c       __UTC_DATE__         "2009-12-31"
-\c       __UTC_TIME__         "21:00:42"
-\c       __UTC_DATE_NUM__     20091231
-\c       __UTC_TIME_NUM__     210042
-\c       __POSIX_TIME__       1262293242
-
-
-\S{use_def} \I\c{__USE_*__}\c{__USE_}\e{package}\c{__}: Package
-Include Test
-
-When a standard macro package (see \k{macropkg}) is included with the
-\c{%use} directive (see \k{use}), a single-line macro of the form
-\c{__USE_}\e{package}\c{__} is automatically defined.  This allows
-testing if a particular package is invoked or not.
-
-For example, if the \c{altreg} package is included (see
-\k{pkg_altreg}), then the macro \c{__USE_ALTREG__} is defined.
-
-
-\S{pass_macro} \i\c{__PASS__}: Assembly Pass
-
-The macro \c{__PASS__} is defined to be \c{1} on preparatory passes,
-and \c{2} on the final pass.  In preprocess-only mode, it is set to
-\c{3}, and when running only to generate dependencies (due to the
-\c{-M} or \c{-MG} option, see \k{opt-M}) it is set to \c{0}.
-
-\e{Avoid using this macro if at all possible.  It is tremendously easy
-to generate very strange errors by misusing it, and the semantics may
-change in future versions of NASM.}
-
-
-\S{struc} \i\c{STRUC} and \i\c{ENDSTRUC}: \i{Declaring Structure} Data Types
-
-The core of NASM contains no intrinsic means of defining data
-structures; instead, the preprocessor is sufficiently powerful that
-data structures can be implemented as a set of macros. The macros
-\c{STRUC} and \c{ENDSTRUC} are used to define a structure data type.
-
-\c{STRUC} takes one or two parameters. The first parameter is the name
-of the data type. The second, optional parameter is the base offset of
-the structure. The name of the data type is defined as a symbol with
-the value of the base offset, and the name of the data type with the
-suffix \c{_size} appended to it is defined as an \c{EQU} giving the
-size of the structure. Once \c{STRUC} has been issued, you are
-defining the structure, and should define fields using the \c{RESB}
-family of pseudo-instructions, and then invoke \c{ENDSTRUC} to finish
-the definition.
-
-For example, to define a structure called \c{mytype} containing a
-longword, a word, a byte and a string of bytes, you might code
-
-\c struc   mytype
-\c
-\c   mt_long:      resd    1
-\c   mt_word:      resw    1
-\c   mt_byte:      resb    1
-\c   mt_str:       resb    32
-\c
-\c endstruc
-
-The above code defines six symbols: \c{mt_long} as 0 (the offset
-from the beginning of a \c{mytype} structure to the longword field),
-\c{mt_word} as 4, \c{mt_byte} as 6, \c{mt_str} as 7, \c{mytype_size}
-as 39, and \c{mytype} itself as zero.
-
-The reason why the structure type name is defined at zero by default
-is a side effect of allowing structures to work with the local label
-mechanism: if your structure members tend to have the same names in
-more than one structure, you can define the above structure like this:
-
-\c struc mytype
-\c
-\c   .long:        resd    1
-\c   .word:        resw    1
-\c   .byte:        resb    1
-\c   .str:         resb    32
-\c
-\c endstruc
-
-This defines the offsets to the structure fields as \c{mytype.long},
-\c{mytype.word}, \c{mytype.byte} and \c{mytype.str}.
-
-NASM, since it has no \e{intrinsic} structure support, does not
-support any form of period notation to refer to the elements of a
-structure once you have one (except the above local-label notation),
-so code such as \c{mov ax,[mystruc.mt_word]} is not valid.
-\c{mt_word} is a constant just like any other constant, so the
-correct syntax is \c{mov ax,[mystruc+mt_word]} or \c{mov
-ax,[mystruc+mytype.word]}.
-
-Sometimes you only have the address of the structure displaced by an
-offset. For example, consider this standard stack frame setup:
-
-\c push ebp
-\c mov ebp, esp
-\c sub esp, 40
-
-In this case, you could access an element by subtracting the offset:
-
-\c mov [ebp - 40 + mytype.word], ax
-
-However, if you do not want to repeat this offset, you can use -40 as
-a base offset:
-
-\c struc mytype, -40
-
-And access an element this way:
-
-\c mov [ebp + mytype.word], ax
-
-
-\S{istruc} \i\c{ISTRUC}, \i\c{AT} and \i\c{IEND}: Declaring
-\i{Instances of Structures}
-
-Having defined a structure type, the next thing you typically want
-to do is to declare instances of that structure in your data
-segment. NASM provides an easy way to do this in the \c{ISTRUC}
-mechanism. To declare a structure of type \c{mytype} in a program,
-you code something like this:
-
-\c mystruc:
-\c     istruc mytype
-\c
-\c         at mt_long, dd      123456
-\c         at mt_word, dw      1024
-\c         at mt_byte, db      'x'
-\c         at mt_str,  db      'hello, world', 13, 10, 0
-\c
-\c     iend
-
-The function of the \c{AT} macro is to make use of the \c{TIMES}
-prefix to advance the assembly position to the correct point for the
-specified structure field, and then to declare the specified data.
-Therefore the structure fields must be declared in the same order as
-they were specified in the structure definition.
-
-If the data to go in a structure field requires more than one source
-line to specify, the remaining source lines can easily come after
-the \c{AT} line. For example:
-
-\c         at mt_str,  db      123,134,145,156,167,178,189
-\c                     db      190,100,0
-
-Depending on personal taste, you can also omit the code part of the
-\c{AT} line completely, and start the structure field on the next
-line:
-
-\c         at mt_str
-\c                 db      'hello, world'
-\c                 db      13,10,0
-
-
-\S{align} \i\c{ALIGN} and \i\c{ALIGNB}: Data Alignment
-
-The \c{ALIGN} and \c{ALIGNB} macros provides a convenient way to
-align code or data on a word, longword, paragraph or other boundary.
-(Some assemblers call this directive \i\c{EVEN}.) The syntax of the
-\c{ALIGN} and \c{ALIGNB} macros is
-
-\c         align   4               ; align on 4-byte boundary
-\c         align   16              ; align on 16-byte boundary
-\c         align   8,db 0          ; pad with 0s rather than NOPs
-\c         align   4,resb 1        ; align to 4 in the BSS
-\c         alignb  4               ; equivalent to previous line
-
-Both macros require their first argument to be a power of two; they
-both compute the number of additional bytes required to bring the
-length of the current section up to a multiple of that power of two,
-and then apply the \c{TIMES} prefix to their second argument to
-perform the alignment.
-
-If the second argument is not specified, the default for \c{ALIGN}
-is \c{NOP}, and the default for \c{ALIGNB} is \c{RESB 1}. So if the
-second argument is specified, the two macros are equivalent.
-Normally, you can just use \c{ALIGN} in code and data sections and
-\c{ALIGNB} in BSS sections, and never need the second argument
-except for special purposes.
-
-\c{ALIGN} and \c{ALIGNB}, being simple macros, perform no error
-checking: they cannot warn you if their first argument fails to be a
-power of two, or if their second argument generates more than one
-byte of code. In each of these cases they will silently do the wrong
-thing.
-
-\c{ALIGNB} (or \c{ALIGN} with a second argument of \c{RESB 1}) can
-be used within structure definitions:
-
-\c struc mytype2
-\c
-\c   mt_byte:
-\c         resb 1
-\c         alignb 2
-\c   mt_word:
-\c         resw 1
-\c         alignb 4
-\c   mt_long:
-\c         resd 1
-\c   mt_str:
-\c         resb 32
-\c
-\c endstruc
-
-This will ensure that the structure members are sensibly aligned
-relative to the base of the structure.
-
-A final caveat: \c{ALIGN} and \c{ALIGNB} work relative to the
-beginning of the \e{section}, not the beginning of the address space
-in the final executable. Aligning to a 16-byte boundary when the
-section you're in is only guaranteed to be aligned to a 4-byte
-boundary, for example, is a waste of effort. Again, NASM does not
-check that the section's alignment characteristics are sensible for
-the use of \c{ALIGN} or \c{ALIGNB}.
-
-Both \c{ALIGN} and \c{ALIGNB} do call \c{SECTALIGN} macro implicitly.
-See \k{sectalign} for details.
-
-See also the \c{smartalign} standard macro package, \k{pkg_smartalign}.
-
-
-\S{sectalign} \i\c{SECTALIGN}: Section Alignment
-
-The \c{SECTALIGN} macros provides a way to modify alignment attribute
-of output file section. Unlike the \c{align=} attribute (which is allowed
-at section definition only) the \c{SECTALIGN} macro may be used at any time.
-
-For example the directive
-
-\c SECTALIGN 16
-
-sets the section alignment requirements to 16 bytes. Once increased it can
-not be decreased, the magnitude may grow only.
-
-Note that \c{ALIGN} (see \k{align}) calls the \c{SECTALIGN} macro implicitly
-so the active section alignment requirements may be updated. This is by default
-behaviour, if for some reason you want the \c{ALIGN} do not call \c{SECTALIGN}
-at all use the directive
-
-\c SECTALIGN OFF
-
-It is still possible to turn in on again by
-
-\c SECTALIGN ON
-
-
-\C{macropkg} \i{Standard Macro Packages}
-
-The \i\c{%use} directive (see \k{use}) includes one of the standard
-macro packages included with the NASM distribution and compiled into
-the NASM binary.  It operates like the \c{%include} directive (see
-\k{include}), but the included contents is provided by NASM itself.
-
-The names of standard macro packages are case insensitive, and can be
-quoted or not.
-
-
-\H{pkg_altreg} \i\c{altreg}: \i{Alternate Register Names}
-
-The \c{altreg} standard macro package provides alternate register
-names.  It provides numeric register names for all registers (not just
-\c{R8}-\c{R15}), the Intel-defined aliases \c{R8L}-\c{R15L} for the
-low bytes of register (as opposed to the NASM/AMD standard names
-\c{R8B}-\c{R15B}), and the names \c{R0H}-\c{R3H} (by analogy with
-\c{R0L}-\c{R3L}) for \c{AH}, \c{CH}, \c{DH}, and \c{BH}.
-
-Example use:
-
-\c %use altreg
-\c
-\c proc:
-\c       mov r0l,r3h                    ; mov al,bh
-\c       ret
-
-See also \k{reg64}.
-
-
-\H{pkg_smartalign} \i\c{smartalign}\I{align, smart}: Smart \c{ALIGN} Macro
-
-The \c{smartalign} standard macro package provides for an \i\c{ALIGN}
-macro which is more powerful than the default (and
-backwards-compatible) one (see \k{align}).  When the \c{smartalign}
-package is enabled, when \c{ALIGN} is used without a second argument,
-NASM will generate a sequence of instructions more efficient than a
-series of \c{NOP}.  Furthermore, if the padding exceeds a specific
-threshold, then NASM will generate a jump over the entire padding
-sequence.
-
-The specific instructions generated can be controlled with the
-new \i\c{ALIGNMODE} macro.  This macro takes two parameters: one mode,
-and an optional jump threshold override. If (for any reason) you need
-to turn off the jump completely just set jump threshold value to -1
-(or set it to \c{nojmp}). The following modes are possible:
-
-\b \c{generic}: Works on all x86 CPUs and should have reasonable
-performance.  The default jump threshold is 8.  This is the
-default.
-
-\b \c{nop}: Pad out with \c{NOP} instructions.  The only difference
-compared to the standard \c{ALIGN} macro is that NASM can still jump
-over a large padding area.  The default jump threshold is 16.
-
-\b \c{k7}: Optimize for the AMD K7 (Athlon/Althon XP).  These
-instructions should still work on all x86 CPUs.  The default jump
-threshold is 16.
-
-\b \c{k8}: Optimize for the AMD K8 (Opteron/Althon 64).  These
-instructions should still work on all x86 CPUs.  The default jump
-threshold is 16.
-
-\b \c{p6}: Optimize for Intel CPUs.  This uses the long \c{NOP}
-instructions first introduced in Pentium Pro.  This is incompatible
-with all CPUs of family 5 or lower, as well as some VIA CPUs and
-several virtualization solutions.  The default jump threshold is 16.
-
-The macro \i\c{__ALIGNMODE__} is defined to contain the current
-alignment mode.  A number of other macros beginning with \c{__ALIGN_}
-are used internally by this macro package.
-
-
-\H{pkg_fp} \i\c\{fp}: Floating-point macros
-
-This packages contains the following floating-point convenience macros:
-
-\c %define Inf             __Infinity__
-\c %define NaN             __QNaN__
-\c %define QNaN            __QNaN__
-\c %define SNaN            __SNaN__
-\c 
-\c %define float8(x)       __float8__(x)
-\c %define float16(x)      __float16__(x)
-\c %define float32(x)      __float32__(x)
-\c %define float64(x)      __float64__(x)
-\c %define float80m(x)     __float80m__(x)
-\c %define float80e(x)     __float80e__(x)
-\c %define float128l(x)    __float128l__(x)
-\c %define float128h(x)    __float128h__(x)
-
-
-\H{pkg_ifunc} \i\c{ifunc}: \i{Integer functions}
-
-This package contains a set of macros which implement integer
-functions.  These are actually implemented as special operators, but
-are most conveniently accessed via this macro package.
-
-The macros provided are:
-
-\S{ilog2} \i{Integer logarithms}
-
-These functions calculate the integer logarithm base 2 of their
-argument, considered as an unsigned integer.  The only differences
-between the functions is their respective behavior if the argument
-provided is not a power of two.
-
-The function \i\c{ilog2e()} (alias \i\c{ilog2()}) generates an error if
-the argument is not a power of two.
-
-The function \i\c{ilog2f()} rounds the argument down to the nearest
-power of two; if the argument is zero it returns zero.
-
-The function \i\c{ilog2c()} rounds the argument up to the nearest
-power of two.
-
-The functions \i\c{ilog2fw()} (alias \i\c{ilog2w()}) and
-\i\c{ilog2cw()} generate a warning if the argument is not a power of
-two, but otherwise behaves like \c{ilog2f()} and \c{ilog2c()},
-respectively.
-
-
-\C{directive} \i{Assembler Directives}
-
-NASM, though it attempts to avoid the bureaucracy of assemblers like
-MASM and TASM, is nevertheless forced to support a \e{few}
-directives. These are described in this chapter.
-
-NASM's directives come in two types: \I{user-level
-directives}\e{user-level} directives and \I{primitive
-directives}\e{primitive} directives. Typically, each directive has a
-user-level form and a primitive form. In almost all cases, we
-recommend that users use the user-level forms of the directives,
-which are implemented as macros which call the primitive forms.
-
-Primitive directives are enclosed in square brackets; user-level
-directives are not.
-
-In addition to the universal directives described in this chapter,
-each object file format can optionally supply extra directives in
-order to control particular features of that file format. These
-\I{format-specific directives}\e{format-specific} directives are
-documented along with the formats that implement them, in \k{outfmt}.
-
-
-\H{bits} \i\c{BITS}: Specifying Target \i{Processor Mode}
-
-The \c{BITS} directive specifies whether NASM should generate code
-\I{16-bit mode, versus 32-bit mode}designed to run on a processor
-operating in 16-bit mode, 32-bit mode or 64-bit mode. The syntax is
-\c{BITS XX}, where XX is 16, 32 or 64.
-
-In most cases, you should not need to use \c{BITS} explicitly. The
-\c{aout}, \c{coff}, \c{elf}, \c{macho}, \c{win32} and \c{win64}
-object formats, which are designed for use in 32-bit or 64-bit
-operating systems, all cause NASM to select 32-bit or 64-bit mode,
-respectively, by default. The \c{obj} object format allows you
-to specify each segment you define as either \c{USE16} or \c{USE32},
-and NASM will set its operating mode accordingly, so the use of the
-\c{BITS} directive is once again unnecessary.
-
-The most likely reason for using the \c{BITS} directive is to write
-32-bit or 64-bit code in a flat binary file; this is because the \c{bin}
-output format defaults to 16-bit mode in anticipation of it being
-used most frequently to write DOS \c{.COM} programs, DOS \c{.SYS}
-device drivers and boot loader software.
-
-The \c{BITS} directive can also be used to generate code for a
-different mode than the standard one for the output format.
-
-You do \e{not} need to specify \c{BITS 32} merely in order to use
-32-bit instructions in a 16-bit DOS program; if you do, the
-assembler will generate incorrect code because it will be writing
-code targeted at a 32-bit platform, to be run on a 16-bit one.
-
-When NASM is in \c{BITS 16} mode, instructions which use 32-bit
-data are prefixed with an 0x66 byte, and those referring to 32-bit
-addresses have an 0x67 prefix. In \c{BITS 32} mode, the reverse is
-true: 32-bit instructions require no prefixes, whereas instructions
-using 16-bit data need an 0x66 and those working on 16-bit addresses
-need an 0x67.
-
-When NASM is in \c{BITS 64} mode, most instructions operate the same
-as they do for \c{BITS 32} mode. However, there are 8 more general and
-SSE registers, and 16-bit addressing is no longer supported.
-
-The default address size is 64 bits; 32-bit addressing can be selected
-with the 0x67 prefix.  The default operand size is still 32 bits,
-however, and the 0x66 prefix selects 16-bit operand size.  The \c{REX}
-prefix is used both to select 64-bit operand size, and to access the
-new registers. NASM automatically inserts REX prefixes when
-necessary.
-
-When the \c{REX} prefix is used, the processor does not know how to
-address the AH, BH, CH or DH (high 8-bit legacy) registers. Instead,
-it is possible to access the the low 8-bits of the SP, BP SI and DI
-registers as SPL, BPL, SIL and DIL, respectively; but only when the
-REX prefix is used.
-
-The \c{BITS} directive has an exactly equivalent primitive form,
-\c{[BITS 16]}, \c{[BITS 32]} and \c{[BITS 64]}. The user-level form is
-a macro which has no function other than to call the primitive form.
-
-Note that the space is neccessary, e.g. \c{BITS32} will \e{not} work!
-
-\S{USE16 & USE32} \i\c{USE16} & \i\c{USE32}: Aliases for BITS
-
-The `\c{USE16}' and `\c{USE32}' directives can be used in place of
-`\c{BITS 16}' and `\c{BITS 32}', for compatibility with other assemblers.
-
-
-\H{default} \i\c{DEFAULT}: Change the assembler defaults
-
-The \c{DEFAULT} directive changes the assembler defaults.  Normally,
-NASM defaults to a mode where the programmer is expected to explicitly
-specify most features directly.  However, this is occasionally
-obnoxious, as the explicit form is pretty much the only one one wishes
-to use.
-
-Currently, \c{DEFAULT} can set \c{REL} & \c{ABS} and \c{BND} & \c{NOBND}.
-
-\S{REL & ABS} \i\c{REL} & \i\c{ABS}: RIP-relative addressing
-
-This sets whether registerless instructions in 64-bit mode are \c{RIP}-relative
-or not. By default, they are absolute unless overridden with the \i\c{REL}
-specifier (see \k{effaddr}).  However, if \c{DEFAULT REL} is
-specified, \c{REL} is default, unless overridden with the \c{ABS}
-specifier, \e{except when used with an FS or GS segment override}.
-
-The special handling of \c{FS} and \c{GS} overrides are due to the
-fact that these registers are generally used as thread pointers or
-other special functions in 64-bit mode, and generating
-\c{RIP}-relative addresses would be extremely confusing.
-
-\c{DEFAULT REL} is disabled with \c{DEFAULT ABS}.
-
-\S{BND & NOBND} \i\c{BND} & \i\c{NOBND}: \c{BND} prefix
-
-If \c{DEFAULT BND} is set, all bnd-prefix available instructions following
-this directive are prefixed with bnd. To override it, \c{NOBND} prefix can
-be used.
-
-\c  DEFAULT BND
-\c      call foo            ; BND will be prefixed
-\c      nobnd call foo      ; BND will NOT be prefixed
-
-\c{DEFAULT NOBND} can disable \c{DEFAULT BND} and then \c{BND} prefix will be
-added only when explicitly specified in code.
-
-\c{DEFAULT BND} is expected to be the normal configuration for writing
-MPX-enabled code.
-
-\H{section} \i\c{SECTION} or \i\c{SEGMENT}: Changing and \i{Defining
-Sections}
-
-\I{changing sections}\I{switching between sections}The \c{SECTION}
-directive (\c{SEGMENT} is an exactly equivalent synonym) changes
-which section of the output file the code you write will be
-assembled into. In some object file formats, the number and names of
-sections are fixed; in others, the user may make up as many as they
-wish. Hence \c{SECTION} may sometimes give an error message, or may
-define a new section, if you try to switch to a section that does
-not (yet) exist.
-
-The Unix object formats, and the \c{bin} object format (but see
-\k{multisec}), all support
-the \i{standardized section names} \c{.text}, \c{.data} and \c{.bss}
-for the code, data and uninitialized-data sections. The \c{obj}
-format, by contrast, does not recognize these section names as being
-special, and indeed will strip off the leading period of any section
-name that has one.
-
-
-\S{sectmac} The \i\c{__SECT__} Macro
-
-The \c{SECTION} directive is unusual in that its user-level form
-functions differently from its primitive form. The primitive form,
-\c{[SECTION xyz]}, simply switches the current target section to the
-one given. The user-level form, \c{SECTION xyz}, however, first
-defines the single-line macro \c{__SECT__} to be the primitive
-\c{[SECTION]} directive which it is about to issue, and then issues
-it. So the user-level directive
-
-\c         SECTION .text
-
-expands to the two lines
-
-\c %define __SECT__        [SECTION .text]
-\c         [SECTION .text]
-
-Users may find it useful to make use of this in their own macros.
-For example, the \c{writefile} macro defined in \k{mlmacgre} can be
-usefully rewritten in the following more sophisticated form:
-
-\c %macro  writefile 2+
-\c
-\c         [section .data]
-\c
-\c   %%str:        db      %2
-\c   %%endstr:
-\c
-\c         __SECT__
-\c
-\c         mov     dx,%%str
-\c         mov     cx,%%endstr-%%str
-\c         mov     bx,%1
-\c         mov     ah,0x40
-\c         int     0x21
-\c
-\c %endmacro
-
-This form of the macro, once passed a string to output, first
-switches temporarily to the data section of the file, using the
-primitive form of the \c{SECTION} directive so as not to modify
-\c{__SECT__}. It then declares its string in the data section, and
-then invokes \c{__SECT__} to switch back to \e{whichever} section
-the user was previously working in. It thus avoids the need, in the
-previous version of the macro, to include a \c{JMP} instruction to
-jump over the data, and also does not fail if, in a complicated
-\c{OBJ} format module, the user could potentially be assembling the
-code in any of several separate code sections.
-
-
-\H{absolute} \i\c{ABSOLUTE}: Defining Absolute Labels
-
-The \c{ABSOLUTE} directive can be thought of as an alternative form
-of \c{SECTION}: it causes the subsequent code to be directed at no
-physical section, but at the hypothetical section starting at the
-given absolute address. The only instructions you can use in this
-mode are the \c{RESB} family.
-
-\c{ABSOLUTE} is used as follows:
-
-\c absolute 0x1A
-\c
-\c     kbuf_chr    resw    1
-\c     kbuf_free   resw    1
-\c     kbuf        resw    16
-
-This example describes a section of the PC BIOS data area, at
-segment address 0x40: the above code defines \c{kbuf_chr} to be
-0x1A, \c{kbuf_free} to be 0x1C, and \c{kbuf} to be 0x1E.
-
-The user-level form of \c{ABSOLUTE}, like that of \c{SECTION},
-redefines the \i\c{__SECT__} macro when it is invoked.
-
-\i\c{STRUC} and \i\c{ENDSTRUC} are defined as macros which use
-\c{ABSOLUTE} (and also \c{__SECT__}).
-
-\c{ABSOLUTE} doesn't have to take an absolute constant as an
-argument: it can take an expression (actually, a \i{critical
-expression}: see \k{crit}) and it can be a value in a segment. For
-example, a TSR can re-use its setup code as run-time BSS like this:
-
-\c         org     100h               ; it's a .COM program
-\c
-\c         jmp     setup              ; setup code comes last
-\c
-\c         ; the resident part of the TSR goes here
-\c setup:
-\c         ; now write the code that installs the TSR here
-\c
-\c absolute setup
-\c
-\c runtimevar1     resw    1
-\c runtimevar2     resd    20
-\c
-\c tsr_end:
-
-This defines some variables `on top of' the setup code, so that
-after the setup has finished running, the space it took up can be
-re-used as data storage for the running TSR. The symbol `tsr_end'
-can be used to calculate the total size of the part of the TSR that
-needs to be made resident.
-
-
-\H{extern} \i\c{EXTERN}: \i{Importing Symbols} from Other Modules
-
-\c{EXTERN} is similar to the MASM directive \c{EXTRN} and the C
-keyword \c{extern}: it is used to declare a symbol which is not
-defined anywhere in the module being assembled, but is assumed to be
-defined in some other module and needs to be referred to by this
-one. Not every object-file format can support external variables:
-the \c{bin} format cannot.
-
-The \c{EXTERN} directive takes as many arguments as you like. Each
-argument is the name of a symbol:
-
-\c extern  _printf
-\c extern  _sscanf,_fscanf
-
-Some object-file formats provide extra features to the \c{EXTERN}
-directive. In all cases, the extra features are used by suffixing a
-colon to the symbol name followed by object-format specific text.
-For example, the \c{obj} format allows you to declare that the
-default segment base of an external should be the group \c{dgroup}
-by means of the directive
-
-\c extern  _variable:wrt dgroup
-
-The primitive form of \c{EXTERN} differs from the user-level form
-only in that it can take only one argument at a time: the support
-for multiple arguments is implemented at the preprocessor level.
-
-You can declare the same variable as \c{EXTERN} more than once: NASM
-will quietly ignore the second and later redeclarations. You can't
-declare a variable as \c{EXTERN} as well as something else, though.
-
-
-\H{global} \i\c{GLOBAL}: \i{Exporting Symbols} to Other Modules
-
-\c{GLOBAL} is the other end of \c{EXTERN}: if one module declares a
-symbol as \c{EXTERN} and refers to it, then in order to prevent
-linker errors, some other module must actually \e{define} the
-symbol and declare it as \c{GLOBAL}. Some assemblers use the name
-\i\c{PUBLIC} for this purpose.
-
-The \c{GLOBAL} directive applying to a symbol must appear \e{before}
-the definition of the symbol.
-
-\c{GLOBAL} uses the same syntax as \c{EXTERN}, except that it must
-refer to symbols which \e{are} defined in the same module as the
-\c{GLOBAL} directive. For example:
-
-\c global _main
-\c _main:
-\c         ; some code
-
-\c{GLOBAL}, like \c{EXTERN}, allows object formats to define private
-extensions by means of a colon. The \c{elf} object format, for
-example, lets you specify whether global data items are functions or
-data:
-
-\c global  hashlookup:function, hashtable:data
-
-Like \c{EXTERN}, the primitive form of \c{GLOBAL} differs from the
-user-level form only in that it can take only one argument at a
-time.
-
-
-\H{common} \i\c{COMMON}: Defining Common Data Areas
-
-The \c{COMMON} directive is used to declare \i\e{common variables}.
-A common variable is much like a global variable declared in the
-uninitialized data section, so that
-
-\c common  intvar  4
-
-is similar in function to
-
-\c global  intvar
-\c section .bss
-\c
-\c intvar  resd    1
-
-The difference is that if more than one module defines the same
-common variable, then at link time those variables will be
-\e{merged}, and references to \c{intvar} in all modules will point
-at the same piece of memory.
-
-Like \c{GLOBAL} and \c{EXTERN}, \c{COMMON} supports object-format
-specific extensions. For example, the \c{obj} format allows common
-variables to be NEAR or FAR, and the \c{elf} format allows you to
-specify the alignment requirements of a common variable:
-
-\c common  commvar  4:near  ; works in OBJ
-\c common  intarray 100:4   ; works in ELF: 4 byte aligned
-
-Once again, like \c{EXTERN} and \c{GLOBAL}, the primitive form of
-\c{COMMON} differs from the user-level form only in that it can take
-only one argument at a time.
-
-
-\H{CPU} \i\c{CPU}: Defining CPU Dependencies
-
-The \i\c{CPU} directive restricts assembly to those instructions which
-are available on the specified CPU.
-
-Options are:
-
-\b\c{CPU 8086}          Assemble only 8086 instruction set
-
-\b\c{CPU 186}           Assemble instructions up to the 80186 instruction set
-
-\b\c{CPU 286}           Assemble instructions up to the 286 instruction set
-
-\b\c{CPU 386}           Assemble instructions up to the 386 instruction set
-
-\b\c{CPU 486}           486 instruction set
-
-\b\c{CPU 586}           Pentium instruction set
-
-\b\c{CPU PENTIUM}       Same as 586
-
-\b\c{CPU 686}           P6 instruction set
-
-\b\c{CPU PPRO}          Same as 686
-
-\b\c{CPU P2}            Same as 686
-
-\b\c{CPU P3}            Pentium III (Katmai) instruction sets
-
-\b\c{CPU KATMAI}        Same as P3
-
-\b\c{CPU P4}            Pentium 4 (Willamette) instruction set
-
-\b\c{CPU WILLAMETTE}    Same as P4
-
-\b\c{CPU PRESCOTT}      Prescott instruction set
-
-\b\c{CPU X64}           x86-64 (x64/AMD64/Intel 64) instruction set
-
-\b\c{CPU IA64}          IA64 CPU (in x86 mode) instruction set
-
-All options are case insensitive.  All instructions will be selected
-only if they apply to the selected CPU or lower.  By default, all
-instructions are available.
-
-
-\H{FLOAT} \i\c{FLOAT}: Handling of \I{floating-point, constants}floating-point constants
-
-By default, floating-point constants are rounded to nearest, and IEEE
-denormals are supported.  The following options can be set to alter
-this behaviour:
-
-\b\c{FLOAT DAZ}         Flush denormals to zero
-
-\b\c{FLOAT NODAZ}       Do not flush denormals to zero (default)
-
-\b\c{FLOAT NEAR}        Round to nearest (default)
-
-\b\c{FLOAT UP}          Round up (toward +Infinity)
-
-\b\c{FLOAT DOWN}        Round down (toward -Infinity)
-
-\b\c{FLOAT ZERO}        Round toward zero
-
-\b\c{FLOAT DEFAULT}     Restore default settings
-
-The standard macros \i\c{__FLOAT_DAZ__}, \i\c{__FLOAT_ROUND__}, and
-\i\c{__FLOAT__} contain the current state, as long as the programmer
-has avoided the use of the brackeded primitive form, (\c{[FLOAT]}).
-
-\c{__FLOAT__} contains the full set of floating-point settings; this
-value can be saved away and invoked later to restore the setting.
-
-
-\H{asmdir-warning} \i\c{[WARNING]}: Enable or disable warnings
-
-The \c{[WARNING]} directive can be used to enable or disable classes
-of warnings in the same way as the \c{-w} option, see \k{opt-w} for
-more details about warning classes.
-
-Warning classes may be enabled with \c{[warning +]\e{warning-class}\c{]}, disabled
-with \c{[warning -}\e{warning-class}\c{]}, or reset to their original value (as
-specified on the command line) with \c{[warning *}\e{warning-class}{]}.
-
-The \c{[WARNING]} directive also accepts the \c{all}, \c{error} and
-\c{error=}\e{warning-class} specifiers.
-
-No "user form" (without the brackets) currently exists.
-
-
-\C{outfmt} \i{Output Formats}
-
-NASM is a portable assembler, designed to be able to compile on any
-ANSI C-supporting platform and produce output to run on a variety of
-Intel x86 operating systems. For this reason, it has a large number
-of available output formats, selected using the \i\c{-f} option on
-the NASM \i{command line}. Each of these formats, along with its
-extensions to the base NASM syntax, is detailed in this chapter.
-
-As stated in \k{opt-o}, NASM chooses a \i{default name} for your
-output file based on the input file name and the chosen output
-format. This will be generated by removing the \i{extension}
-(\c{.asm}, \c{.s}, or whatever you like to use) from the input file
-name, and substituting an extension defined by the output format.
-The extensions are given with each format below.
-
-
-\H{binfmt} \i\c{bin}: \i{Flat-Form Binary}\I{pure binary} Output
-
-The \c{bin} format does not produce object files: it generates
-nothing in the output file except the code you wrote. Such `pure
-binary' files are used by \i{MS-DOS}: \i\c{.COM} executables and
-\i\c{.SYS} device drivers are pure binary files. Pure binary output
-is also useful for \i{operating system} and \i{boot loader}
-development.
-
-The \c{bin} format supports \i{multiple section names}. For details of
-how NASM handles sections in the \c{bin} format, see \k{multisec}.
-
-Using the \c{bin} format puts NASM by default into 16-bit mode (see
-\k{bits}). In order to use \c{bin} to write 32-bit or 64-bit code,
-such as an OS kernel, you need to explicitly issue the \I\c{BITS}\c{BITS 32}
-or \I\c{BITS}\c{BITS 64} directive.
-
-\c{bin} has no default output file name extension: instead, it
-leaves your file name as it is once the original extension has been
-removed. Thus, the default is for NASM to assemble \c{binprog.asm}
-into a binary file called \c{binprog}.
-
-
-\S{org} \i\c{ORG}: Binary File \i{Program Origin}
-
-The \c{bin} format provides an additional directive to the list
-given in \k{directive}: \c{ORG}. The function of the \c{ORG}
-directive is to specify the origin address which NASM will assume
-the program begins at when it is loaded into memory.
-
-For example, the following code will generate the longword
-\c{0x00000104}:
-
-\c         org     0x100
-\c         dd      label
-\c label:
-
-Unlike the \c{ORG} directive provided by MASM-compatible assemblers,
-which allows you to jump around in the object file and overwrite
-code you have already generated, NASM's \c{ORG} does exactly what
-the directive says: \e{origin}. Its sole function is to specify one
-offset which is added to all internal address references within the
-section; it does not permit any of the trickery that MASM's version
-does. See \k{proborg} for further comments.
-
-
-\S{binseg} \c{bin} Extensions to the \c{SECTION}
-Directive\I{SECTION, bin extensions to}
-
-The \c{bin} output format extends the \c{SECTION} (or \c{SEGMENT})
-directive to allow you to specify the alignment requirements of
-segments. This is done by appending the \i\c{ALIGN} qualifier to the
-end of the section-definition line. For example,
-
-\c section .data   align=16
-
-switches to the section \c{.data} and also specifies that it must be
-aligned on a 16-byte boundary.
-
-The parameter to \c{ALIGN} specifies how many low bits of the
-section start address must be forced to zero. The alignment value
-given may be any power of two.\I{section alignment, in
-bin}\I{segment alignment, in bin}\I{alignment, in bin sections}
-
-
-\S{multisec} \i{Multisection}\I{bin, multisection} Support for the \c{bin} Format
-
-The \c{bin} format allows the use of multiple sections, of arbitrary names,
-besides the "known" \c{.text}, \c{.data}, and \c{.bss} names.
-
-\b Sections may be designated \i\c{progbits} or \i\c{nobits}. Default
-is \c{progbits} (except \c{.bss}, which defaults to \c{nobits},
-of course).
-
-\b Sections can be aligned at a specified boundary following the previous
-section with \c{align=}, or at an arbitrary byte-granular position with
-\i\c{start=}.
-
-\b Sections can be given a virtual start address, which will be used
-for the calculation of all memory references within that section
-with \i\c{vstart=}.
-
-\b Sections can be ordered using \i\c{follows=}\c{<section>} or
-\i\c{vfollows=}\c{<section>} as an alternative to specifying an explicit
-start address.
-
-\b Arguments to \c{org}, \c{start}, \c{vstart}, and \c{align=} are
-critical expressions. See \k{crit}. E.g. \c{align=(1 << ALIGN_SHIFT)}
-- \c{ALIGN_SHIFT} must be defined before it is used here.
-
-\b Any code which comes before an explicit \c{SECTION} directive
-is directed by default into the \c{.text} section.
-
-\b If an \c{ORG} statement is not given, \c{ORG 0} is used
-by default.
-
-\b The \c{.bss} section will be placed after the last \c{progbits}
-section, unless \c{start=}, \c{vstart=}, \c{follows=}, or \c{vfollows=}
-has been specified.
-
-\b All sections are aligned on dword boundaries, unless a different
-alignment has been specified.
-
-\b Sections may not overlap.
-
-\b NASM creates the \c{section.<secname>.start} for each section,
-which may be used in your code.
-
-\S{map}\i{Map Files}
-
-Map files can be generated in \c{-f bin} format by means of the \c{[map]}
-option. Map types of \c{all} (default), \c{brief}, \c{sections}, \c{segments},
-or \c{symbols} may be specified. Output may be directed to \c{stdout}
-(default), \c{stderr}, or a specified file. E.g.
-\c{[map symbols myfile.map]}. No "user form" exists, the square
-brackets must be used.
-
-
-\H{ithfmt} \i\c{ith}: \i{Intel Hex} Output
-
-The \c{ith} file format produces Intel hex-format files.  Just as the
-\c{bin} format, this is a flat memory image format with no support for
-relocation or linking.  It is usually used with ROM programmers and
-similar utilities.
-
-All extensions supported by the \c{bin} file format is also supported by
-the \c{ith} file format.
-
-\c{ith} provides a default output file-name extension of \c{.ith}.
-
-
-\H{srecfmt} \i\c{srec}: \i{Motorola S-Records} Output
-
-The \c{srec} file format produces Motorola S-records files.  Just as the
-\c{bin} format, this is a flat memory image format with no support for
-relocation or linking.  It is usually used with ROM programmers and
-similar utilities.
-
-All extensions supported by the \c{bin} file format is also supported by
-the \c{srec} file format.
-
-\c{srec} provides a default output file-name extension of \c{.srec}.
-
-
-\H{objfmt} \i\c{obj}: \i{Microsoft OMF}\I{OMF} Object Files
-
-The \c{obj} file format (NASM calls it \c{obj} rather than \c{omf}
-for historical reasons) is the one produced by \i{MASM} and
-\i{TASM}, which is typically fed to 16-bit DOS linkers to produce
-\i\c{.EXE} files. It is also the format used by \i{OS/2}.
-
-\c{obj} provides a default output file-name extension of \c{.obj}.
-
-\c{obj} is not exclusively a 16-bit format, though: NASM has full
-support for the 32-bit extensions to the format. In particular,
-32-bit \c{obj} format files are used by \i{Borland's Win32
-compilers}, instead of using Microsoft's newer \i\c{win32} object
-file format.
-
-The \c{obj} format does not define any special segment names: you
-can call your segments anything you like. Typical names for segments
-in \c{obj} format files are \c{CODE}, \c{DATA} and \c{BSS}.
-
-If your source file contains code before specifying an explicit
-\c{SEGMENT} directive, then NASM will invent its own segment called
-\i\c{__NASMDEFSEG} for you.
-
-When you define a segment in an \c{obj} file, NASM defines the
-segment name as a symbol as well, so that you can access the segment
-address of the segment. So, for example:
-
-\c segment data
-\c
-\c dvar:   dw      1234
-\c
-\c segment code
-\c
-\c function:
-\c         mov     ax,data         ; get segment address of data
-\c         mov     ds,ax           ; and move it into DS
-\c         inc     word [dvar]     ; now this reference will work
-\c         ret
-
-The \c{obj} format also enables the use of the \i\c{SEG} and
-\i\c{WRT} operators, so that you can write code which does things
-like
-
-\c extern  foo
-\c
-\c       mov   ax,seg foo            ; get preferred segment of foo
-\c       mov   ds,ax
-\c       mov   ax,data               ; a different segment
-\c       mov   es,ax
-\c       mov   ax,[ds:foo]           ; this accesses `foo'
-\c       mov   [es:foo wrt data],bx  ; so does this
-
-
-\S{objseg} \c{obj} Extensions to the \c{SEGMENT}
-Directive\I{SEGMENT, obj extensions to}
-
-The \c{obj} output format extends the \c{SEGMENT} (or \c{SECTION})
-directive to allow you to specify various properties of the segment
-you are defining. This is done by appending extra qualifiers to the
-end of the segment-definition line. For example,
-
-\c segment code private align=16
-
-defines the segment \c{code}, but also declares it to be a private
-segment, and requires that the portion of it described in this code
-module must be aligned on a 16-byte boundary.
-
-The available qualifiers are:
-
-\b \i\c{PRIVATE}, \i\c{PUBLIC}, \i\c{COMMON} and \i\c{STACK} specify
-the combination characteristics of the segment. \c{PRIVATE} segments
-do not get combined with any others by the linker; \c{PUBLIC} and
-\c{STACK} segments get concatenated together at link time; and
-\c{COMMON} segments all get overlaid on top of each other rather
-than stuck end-to-end.
-
-\b \i\c{ALIGN} is used, as shown above, to specify how many low bits
-of the segment start address must be forced to zero. The alignment
-value given may be any power of two from 1 to 4096; in reality, the
-only values supported are 1, 2, 4, 16, 256 and 4096, so if 8 is
-specified it will be rounded up to 16, and 32, 64 and 128 will all
-be rounded up to 256, and so on. Note that alignment to 4096-byte
-boundaries is a \i{PharLap} extension to the format and may not be
-supported by all linkers.\I{section alignment, in OBJ}\I{segment
-alignment, in OBJ}\I{alignment, in OBJ sections}
-
-\b \i\c{CLASS} can be used to specify the segment class; this feature
-indicates to the linker that segments of the same class should be
-placed near each other in the output file. The class name can be any
-word, e.g. \c{CLASS=CODE}.
-
-\b \i\c{OVERLAY}, like \c{CLASS}, is specified with an arbitrary word
-as an argument, and provides overlay information to an
-overlay-capable linker.
-
-\b Segments can be declared as \i\c{USE16} or \i\c{USE32}, which has
-the effect of recording the choice in the object file and also
-ensuring that NASM's default assembly mode when assembling in that
-segment is 16-bit or 32-bit respectively.
-
-\b When writing \i{OS/2} object files, you should declare 32-bit
-segments as \i\c{FLAT}, which causes the default segment base for
-anything in the segment to be the special group \c{FLAT}, and also
-defines the group if it is not already defined.
-
-\b The \c{obj} file format also allows segments to be declared as
-having a pre-defined absolute segment address, although no linkers
-are currently known to make sensible use of this feature;
-nevertheless, NASM allows you to declare a segment such as
-\c{SEGMENT SCREEN ABSOLUTE=0xB800} if you need to. The \i\c{ABSOLUTE}
-and \c{ALIGN} keywords are mutually exclusive.
-
-NASM's default segment attributes are \c{PUBLIC}, \c{ALIGN=1}, no
-class, no overlay, and \c{USE16}.
-
-
-\S{group} \i\c{GROUP}: Defining Groups of Segments\I{segments, groups of}
-
-The \c{obj} format also allows segments to be grouped, so that a
-single segment register can be used to refer to all the segments in
-a group. NASM therefore supplies the \c{GROUP} directive, whereby
-you can code
-
-\c segment data
-\c
-\c         ; some data
-\c
-\c segment bss
-\c
-\c         ; some uninitialized data
-\c
-\c group dgroup data bss
-
-which will define a group called \c{dgroup} to contain the segments
-\c{data} and \c{bss}. Like \c{SEGMENT}, \c{GROUP} causes the group
-name to be defined as a symbol, so that you can refer to a variable
-\c{var} in the \c{data} segment as \c{var wrt data} or as \c{var wrt
-dgroup}, depending on which segment value is currently in your
-segment register.
-
-If you just refer to \c{var}, however, and \c{var} is declared in a
-segment which is part of a group, then NASM will default to giving
-you the offset of \c{var} from the beginning of the \e{group}, not
-the \e{segment}. Therefore \c{SEG var}, also, will return the group
-base rather than the segment base.
-
-NASM will allow a segment to be part of more than one group, but
-will generate a warning if you do this. Variables declared in a
-segment which is part of more than one group will default to being
-relative to the first group that was defined to contain the segment.
-
-A group does not have to contain any segments; you can still make
-\c{WRT} references to a group which does not contain the variable
-you are referring to. OS/2, for example, defines the special group
-\c{FLAT} with no segments in it.
-
-
-\S{uppercase} \i\c{UPPERCASE}: Disabling Case Sensitivity in Output
-
-Although NASM itself is \i{case sensitive}, some OMF linkers are
-not; therefore it can be useful for NASM to output single-case
-object files. The \c{UPPERCASE} format-specific directive causes all
-segment, group and symbol names that are written to the object file
-to be forced to upper case just before being written. Within a
-source file, NASM is still case-sensitive; but the object file can
-be written entirely in upper case if desired.
-
-\c{UPPERCASE} is used alone on a line; it requires no parameters.
-
-
-\S{import} \i\c{IMPORT}: Importing DLL Symbols\I{DLL symbols,
-importing}\I{symbols, importing from DLLs}
-
-The \c{IMPORT} format-specific directive defines a symbol to be
-imported from a DLL, for use if you are writing a DLL's \i{import
-library} in NASM. You still need to declare the symbol as \c{EXTERN}
-as well as using the \c{IMPORT} directive.
-
-The \c{IMPORT} directive takes two required parameters, separated by
-white space, which are (respectively) the name of the symbol you
-wish to import and the name of the library you wish to import it
-from. For example:
-
-\c     import  WSAStartup wsock32.dll
-
-A third optional parameter gives the name by which the symbol is
-known in the library you are importing it from, in case this is not
-the same as the name you wish the symbol to be known by to your code
-once you have imported it. For example:
-
-\c     import  asyncsel wsock32.dll WSAAsyncSelect
-
-
-\S{export} \i\c{EXPORT}: Exporting DLL Symbols\I{DLL symbols,
-exporting}\I{symbols, exporting from DLLs}
-
-The \c{EXPORT} format-specific directive defines a global symbol to
-be exported as a DLL symbol, for use if you are writing a DLL in
-NASM. You still need to declare the symbol as \c{GLOBAL} as well as
-using the \c{EXPORT} directive.
-
-\c{EXPORT} takes one required parameter, which is the name of the
-symbol you wish to export, as it was defined in your source file. An
-optional second parameter (separated by white space from the first)
-gives the \e{external} name of the symbol: the name by which you
-wish the symbol to be known to programs using the DLL. If this name
-is the same as the internal name, you may leave the second parameter
-off.
-
-Further parameters can be given to define attributes of the exported
-symbol. These parameters, like the second, are separated by white
-space. If further parameters are given, the external name must also
-be specified, even if it is the same as the internal name. The
-available attributes are:
-
-\b \c{resident} indicates that the exported name is to be kept
-resident by the system loader. This is an optimisation for
-frequently used symbols imported by name.
-
-\b \c{nodata} indicates that the exported symbol is a function which
-does not make use of any initialized data.
-
-\b \c{parm=NNN}, where \c{NNN} is an integer, sets the number of
-parameter words for the case in which the symbol is a call gate
-between 32-bit and 16-bit segments.
-
-\b An attribute which is just a number indicates that the symbol
-should be exported with an identifying number (ordinal), and gives
-the desired number.
-
-For example:
-
-\c     export  myfunc
-\c     export  myfunc TheRealMoreFormalLookingFunctionName
-\c     export  myfunc myfunc 1234  ; export by ordinal
-\c     export  myfunc myfunc resident parm=23 nodata
-
-
-\S{dotdotstart} \i\c{..start}: Defining the \i{Program Entry
-Point}
-
-\c{OMF} linkers require exactly one of the object files being linked to
-define the program entry point, where execution will begin when the
-program is run. If the object file that defines the entry point is
-assembled using NASM, you specify the entry point by declaring the
-special symbol \c{..start} at the point where you wish execution to
-begin.
-
-
-\S{objextern} \c{obj} Extensions to the \c{EXTERN}
-Directive\I{EXTERN, obj extensions to}
-
-If you declare an external symbol with the directive
-
-\c     extern  foo
-
-then references such as \c{mov ax,foo} will give you the offset of
-\c{foo} from its preferred segment base (as specified in whichever
-module \c{foo} is actually defined in). So to access the contents of
-\c{foo} you will usually need to do something like
-
-\c         mov     ax,seg foo      ; get preferred segment base
-\c         mov     es,ax           ; move it into ES
-\c         mov     ax,[es:foo]     ; and use offset `foo' from it
-
-This is a little unwieldy, particularly if you know that an external
-is going to be accessible from a given segment or group, say
-\c{dgroup}. So if \c{DS} already contained \c{dgroup}, you could
-simply code
-
-\c         mov     ax,[foo wrt dgroup]
-
-However, having to type this every time you want to access \c{foo}
-can be a pain; so NASM allows you to declare \c{foo} in the
-alternative form
-
-\c     extern  foo:wrt dgroup
-
-This form causes NASM to pretend that the preferred segment base of
-\c{foo} is in fact \c{dgroup}; so the expression \c{seg foo} will
-now return \c{dgroup}, and the expression \c{foo} is equivalent to
-\c{foo wrt dgroup}.
-
-This \I{default-WRT mechanism}default-\c{WRT} mechanism can be used
-to make externals appear to be relative to any group or segment in
-your program. It can also be applied to common variables: see
-\k{objcommon}.
-
-
-\S{objcommon} \c{obj} Extensions to the \c{COMMON}
-Directive\I{COMMON, obj extensions to}
-
-The \c{obj} format allows common variables to be either near\I{near
-common variables} or far\I{far common variables}; NASM allows you to
-specify which your variables should be by the use of the syntax
-
-\c common  nearvar 2:near   ; `nearvar' is a near common
-\c common  farvar  10:far   ; and `farvar' is far
-
-Far common variables may be greater in size than 64Kb, and so the
-OMF specification says that they are declared as a number of
-\e{elements} of a given size. So a 10-byte far common variable could
-be declared as ten one-byte elements, five two-byte elements, two
-five-byte elements or one ten-byte element.
-
-Some \c{OMF} linkers require the \I{element size, in common
-variables}\I{common variables, element size}element size, as well as
-the variable size, to match when resolving common variables declared
-in more than one module. Therefore NASM must allow you to specify
-the element size on your far common variables. This is done by the
-following syntax:
-
-\c common  c_5by2  10:far 5        ; two five-byte elements
-\c common  c_2by5  10:far 2        ; five two-byte elements
-
-If no element size is specified, the default is 1. Also, the \c{FAR}
-keyword is not required when an element size is specified, since
-only far commons may have element sizes at all. So the above
-declarations could equivalently be
-
-\c common  c_5by2  10:5            ; two five-byte elements
-\c common  c_2by5  10:2            ; five two-byte elements
-
-In addition to these extensions, the \c{COMMON} directive in \c{obj}
-also supports default-\c{WRT} specification like \c{EXTERN} does
-(explained in \k{objextern}). So you can also declare things like
-
-\c common  foo     10:wrt dgroup
-\c common  bar     16:far 2:wrt data
-\c common  baz     24:wrt data:6
-
-
-\H{win32fmt} \i\c{win32}: Microsoft Win32 Object Files
-
-The \c{win32} output format generates Microsoft Win32 object files,
-suitable for passing to Microsoft linkers such as \i{Visual C++}.
-Note that Borland Win32 compilers do not use this format, but use
-\c{obj} instead (see \k{objfmt}).
-
-\c{win32} provides a default output file-name extension of \c{.obj}.
-
-Note that although Microsoft say that Win32 object files follow the
-\c{COFF} (Common Object File Format) standard, the object files produced
-by Microsoft Win32 compilers are not compatible with COFF linkers
-such as DJGPP's, and vice versa. This is due to a difference of
-opinion over the precise semantics of PC-relative relocations. To
-produce COFF files suitable for DJGPP, use NASM's \c{coff} output
-format; conversely, the \c{coff} format does not produce object
-files that Win32 linkers can generate correct output from.
-
-
-\S{win32sect} \c{win32} Extensions to the \c{SECTION}
-Directive\I{SECTION, win32 extensions to}
-
-Like the \c{obj} format, \c{win32} allows you to specify additional
-information on the \c{SECTION} directive line, to control the type
-and properties of sections you declare. Section types and properties
-are generated automatically by NASM for the \i{standard section names}
-\c{.text}, \c{.data} and \c{.bss}, but may still be overridden by
-these qualifiers.
-
-The available qualifiers are:
-
-\b \c{code}, or equivalently \c{text}, defines the section to be a
-code section. This marks the section as readable and executable, but
-not writable, and also indicates to the linker that the type of the
-section is code.
-
-\b \c{data} and \c{bss} define the section to be a data section,
-analogously to \c{code}. Data sections are marked as readable and
-writable, but not executable. \c{data} declares an initialized data
-section, whereas \c{bss} declares an uninitialized data section.
-
-\b \c{rdata} declares an initialized data section that is readable
-but not writable. Microsoft compilers use this section to place
-constants in it.
-
-\b \c{info} defines the section to be an \i{informational section},
-which is not included in the executable file by the linker, but may
-(for example) pass information \e{to} the linker. For example,
-declaring an \c{info}-type section called \i\c{.drectve} causes the
-linker to interpret the contents of the section as command-line
-options.
-
-\b \c{align=}, used with a trailing number as in \c{obj}, gives the
-\I{section alignment, in win32}\I{alignment, in win32
-sections}alignment requirements of the section. The maximum you may
-specify is 64: the Win32 object file format contains no means to
-request a greater section alignment than this. If alignment is not
-explicitly specified, the defaults are 16-byte alignment for code
-sections, 8-byte alignment for rdata sections and 4-byte alignment
-for data (and BSS) sections.
-Informational sections get a default alignment of 1 byte (no
-alignment), though the value does not matter.
-
-The defaults assumed by NASM if you do not specify the above
-qualifiers are:
-
-\c section .text    code  align=16
-\c section .data    data  align=4
-\c section .rdata   rdata align=8
-\c section .bss     bss   align=4
-
-Any other section name is treated by default like \c{.text}.
-
-\S{win32safeseh} \c{win32}: Safe Structured Exception Handling
-
-Among other improvements in Windows XP SP2 and Windows Server 2003
-Microsoft has introduced concept of "safe structured exception
-handling." General idea is to collect handlers' entry points in
-designated read-only table and have alleged entry point verified
-against this table prior exception control is passed to the handler. In
-order for an executable module to be equipped with such "safe exception
-handler table," all object modules on linker command line has to comply
-with certain criteria. If one single module among them does not, then
-the table in question is omitted and above mentioned run-time checks
-will not be performed for application in question. Table omission is by
-default silent and therefore can be easily overlooked. One can instruct
-linker to refuse to produce binary without such table by passing
-\c{/safeseh} command line option.
-
-Without regard to this run-time check merits it's natural to expect
-NASM to be capable of generating modules suitable for \c{/safeseh}
-linking. From developer's viewpoint the problem is two-fold:
-
-\b how to adapt modules not deploying exception handlers of their own;
-
-\b how to adapt/develop modules utilizing custom exception handling;
-
-Former can be easily achieved with any NASM version by adding following
-line to source code:
-
-\c $@feat.00 equ 1
-
-As of version 2.03 NASM adds this absolute symbol automatically. If
-it's not already present to be precise. I.e. if for whatever reason
-developer would choose to assign another value in source file, it would
-still be perfectly possible.
-
-Registering custom exception handler on the other hand requires certain
-"magic." As of version 2.03 additional directive is implemented,
-\c{safeseh}, which instructs the assembler to produce appropriately
-formatted input data for above mentioned "safe exception handler
-table." Its typical use would be:
-
-\c section .text
-\c extern  _MessageBoxA@16
-\c %if     __NASM_VERSION_ID__ >= 0x02030000
-\c safeseh handler         ; register handler as "safe handler"
-\c %endif
-\c handler:
-\c         push    DWORD 1 ; MB_OKCANCEL
-\c         push    DWORD caption
-\c         push    DWORD text
-\c         push    DWORD 0
-\c         call    _MessageBoxA@16
-\c         sub     eax,1   ; incidentally suits as return value
-\c                         ; for exception handler
-\c         ret
-\c global  _main
-\c _main:
-\c         push    DWORD handler
-\c         push    DWORD [fs:0]
-\c         mov     DWORD [fs:0],esp ; engage exception handler
-\c         xor     eax,eax
-\c         mov     eax,DWORD[eax]   ; cause exception
-\c         pop     DWORD [fs:0]     ; disengage exception handler
-\c         add     esp,4
-\c         ret
-\c text:   db      'OK to rethrow, CANCEL to generate core dump',0
-\c caption:db      'SEGV',0
-\c
-\c section .drectve info
-\c         db      '/defaultlib:user32.lib /defaultlib:msvcrt.lib '
-
-As you might imagine, it's perfectly possible to produce .exe binary
-with "safe exception handler table" and yet engage unregistered
-exception handler. Indeed, handler is engaged by simply manipulating
-\c{[fs:0]} location at run-time, something linker has no power over,
-run-time that is. It should be explicitly mentioned that such failure
-to register handler's entry point with \c{safeseh} directive has
-undesired side effect at run-time. If exception is raised and
-unregistered handler is to be executed, the application is abruptly
-terminated without any notification whatsoever. One can argue that
-system could  at least have logged some kind "non-safe exception
-handler in x.exe at address n" message in event log, but no, literally
-no notification is provided and user is left with no clue on what
-caused application failure.
-
-Finally, all mentions of linker in this paragraph refer to Microsoft
-linker version 7.x and later. Presence of \c{@feat.00} symbol and input
-data for "safe exception handler table" causes no backward
-incompatibilities and "safeseh" modules generated by NASM 2.03 and
-later can still be linked by earlier versions or non-Microsoft linkers.
-
-\S{codeview} Debugging formats for Windows
-\I{Windows debugging formats}
-
-The \c{win32} and \c{win64} formats support the Microsoft CodeView
-debugging format.  Currently CodeView version 8 format is supported
-(\i\c{cv8}), but newer versions of the CodeView debugger should be
-able to handle this format as well.
-
-
-\H{win64fmt} \i\c{win64}: Microsoft Win64 Object Files
-
-The \c{win64} output format generates Microsoft Win64 object files,
-which is nearly 100% identical to the \c{win32} object format (\k{win32fmt})
-with the exception that it is meant to target 64-bit code and the x86-64
-platform altogether. This object file is used exactly the same as the \c{win32}
-object format (\k{win32fmt}), in NASM, with regard to this exception.
-
-\S{win64pic} \c{win64}: Writing Position-Independent Code
-
-While \c{REL} takes good care of RIP-relative addressing, there is one
-aspect that is easy to overlook for a Win64 programmer: indirect
-references. Consider a switch dispatch table:
-
-\c         jmp     qword [dsptch+rax*8]
-\c         ...
-\c dsptch: dq      case0
-\c         dq      case1
-\c         ...
-
-Even a novice Win64 assembler programmer will soon realize that the code
-is not 64-bit savvy. Most notably linker will refuse to link it with
-
-\c 'ADDR32' relocation to '.text' invalid without /LARGEADDRESSAWARE:NO
-
-So [s]he will have to split jmp instruction as following:
-
-\c         lea     rbx,[rel dsptch]
-\c         jmp     qword [rbx+rax*8]
-
-What happens behind the scene is that effective address in \c{lea} is
-encoded relative to instruction pointer, or in perfectly
-position-independent manner. But this is only part of the problem!
-Trouble is that in .dll context \c{caseN} relocations will make their
-way to the final module and might have to be adjusted at .dll load
-time. To be specific when it can't be loaded at preferred address. And
-when this occurs, pages with such relocations will be rendered private
-to current process, which kind of undermines the idea of sharing .dll.
-But no worry, it's trivial to fix:
-
-\c         lea     rbx,[rel dsptch]
-\c         add     rbx,[rbx+rax*8]
-\c         jmp     rbx
-\c         ...
-\c dsptch: dq      case0-dsptch
-\c         dq      case1-dsptch
-\c         ...
-
-NASM version 2.03 and later provides another alternative, \c{wrt
-..imagebase} operator, which returns offset from base address of the
-current image, be it .exe or .dll module, therefore the name. For those
-acquainted with PE-COFF format base address denotes start of
-\c{IMAGE_DOS_HEADER} structure. Here is how to implement switch with
-these image-relative references:
-
-\c         lea     rbx,[rel dsptch]
-\c         mov     eax,[rbx+rax*4]
-\c         sub     rbx,dsptch wrt ..imagebase
-\c         add     rbx,rax
-\c         jmp     rbx
-\c         ...
-\c dsptch: dd      case0 wrt ..imagebase
-\c         dd      case1 wrt ..imagebase
-
-One can argue that the operator is redundant. Indeed,  snippet before
-last works just fine with any NASM version and is not even Windows
-specific... The real reason for implementing \c{wrt ..imagebase} will
-become apparent in next paragraph.
-
-It should be noted that \c{wrt ..imagebase} is defined as 32-bit
-operand only:
-
-\c         dd      label wrt ..imagebase           ; ok
-\c         dq      label wrt ..imagebase           ; bad
-\c         mov     eax,label wrt ..imagebase       ; ok
-\c         mov     rax,label wrt ..imagebase       ; bad
-
-\S{win64seh} \c{win64}: Structured Exception Handling
-
-Structured exception handing in Win64 is completely different matter
-from Win32. Upon exception program counter value is noted, and
-linker-generated table comprising start and end addresses of all the
-functions [in given executable module] is traversed and compared to the
-saved program counter. Thus so called \c{UNWIND_INFO} structure is
-identified. If it's not found, then offending subroutine is assumed to
-be "leaf" and just mentioned lookup procedure is attempted for its
-caller. In Win64 leaf function is such function that does not call any
-other function \e{nor} modifies any Win64 non-volatile registers,
-including stack pointer. The latter ensures that it's possible to
-identify leaf function's caller by simply pulling the value from the
-top of the stack.
-
-While majority of subroutines written in assembler are not calling any
-other function, requirement for non-volatile registers' immutability
-leaves developer with not more than 7 registers and no stack frame,
-which is not necessarily what [s]he counted with. Customarily one would
-meet the requirement by saving non-volatile registers on stack and
-restoring them upon return, so what can go wrong? If [and only if] an
-exception is raised at run-time and no \c{UNWIND_INFO} structure is
-associated with such "leaf" function, the stack unwind procedure will
-expect to find caller's return address on the top of stack immediately
-followed by its frame. Given that developer pushed caller's
-non-volatile registers on stack, would the value on top point at some
-code segment or even addressable space? Well, developer can attempt
-copying caller's return address to the top of stack and this would
-actually work in some very specific circumstances. But unless developer
-can guarantee that these circumstances are always met, it's more
-appropriate to assume worst case scenario, i.e. stack unwind procedure
-going berserk. Relevant question is what happens then? Application is
-abruptly terminated without any notification whatsoever. Just like in
-Win32 case, one can argue that system could at least have logged
-"unwind procedure went berserk in x.exe at address n" in event log, but
-no, no trace of failure is left.
-
-Now, when we understand significance of the \c{UNWIND_INFO} structure,
-let's discuss what's in it and/or how it's processed. First of all it
-is checked for presence of reference to custom language-specific
-exception handler. If there is one, then it's invoked. Depending on the
-return value, execution flow is resumed (exception is said to be
-"handled"), \e{or} rest of \c{UNWIND_INFO} structure is processed as
-following. Beside optional reference to custom handler, it carries
-information about current callee's stack frame and where non-volatile
-registers are saved. Information is detailed enough to be able to
-reconstruct contents of caller's non-volatile registers upon call to
-current callee. And so caller's context is reconstructed, and then
-unwind procedure is repeated, i.e. another \c{UNWIND_INFO} structure is
-associated, this time, with caller's instruction pointer, which is then
-checked for presence of reference to language-specific handler, etc.
-The procedure is recursively repeated till exception is handled. As
-last resort system "handles" it by generating memory core dump and
-terminating the application.
-
-As for the moment of this writing NASM unfortunately does not
-facilitate generation of above mentioned detailed information about
-stack frame layout. But as of version 2.03 it implements building
-blocks for generating structures involved in stack unwinding. As
-simplest example, here is how to deploy custom exception handler for
-leaf function:
-
-\c default rel
-\c section .text
-\c extern  MessageBoxA
-\c handler:
-\c         sub     rsp,40
-\c         mov     rcx,0
-\c         lea     rdx,[text]
-\c         lea     r8,[caption]
-\c         mov     r9,1    ; MB_OKCANCEL
-\c         call    MessageBoxA
-\c         sub     eax,1   ; incidentally suits as return value
-\c                         ; for exception handler
-\c         add     rsp,40
-\c         ret
-\c global  main
-\c main:
-\c         xor     rax,rax
-\c         mov     rax,QWORD[rax]  ; cause exception
-\c         ret
-\c main_end:
-\c text:   db      'OK to rethrow, CANCEL to generate core dump',0
-\c caption:db      'SEGV',0
-\c
-\c section .pdata  rdata align=4
-\c         dd      main wrt ..imagebase
-\c         dd      main_end wrt ..imagebase
-\c         dd      xmain wrt ..imagebase
-\c section .xdata  rdata align=8
-\c xmain:  db      9,0,0,0
-\c         dd      handler wrt ..imagebase
-\c section .drectve info
-\c         db      '/defaultlib:user32.lib /defaultlib:msvcrt.lib '
-
-What you see in \c{.pdata} section is element of the "table comprising
-start and end addresses of function" along with reference to associated
-\c{UNWIND_INFO} structure. And what you see in \c{.xdata} section is
-\c{UNWIND_INFO} structure describing function with no frame, but with
-designated exception handler. References are \e{required} to be
-image-relative (which is the real reason for implementing \c{wrt
-..imagebase} operator). It should be noted that \c{rdata align=n}, as
-well as \c{wrt ..imagebase}, are optional in these two segments'
-contexts, i.e. can be omitted. Latter means that \e{all} 32-bit
-references, not only above listed required ones, placed into these two
-segments turn out image-relative. Why is it important to understand?
-Developer is allowed to append handler-specific data to \c{UNWIND_INFO}
-structure, and if [s]he adds a 32-bit reference, then [s]he will have
-to remember to adjust its value to obtain the real pointer.
-
-As already mentioned, in Win64 terms leaf function is one that does not
-call any other function \e{nor} modifies any non-volatile register,
-including stack pointer. But it's not uncommon that assembler
-programmer plans to utilize every single register and sometimes even
-have variable stack frame. Is there anything one can do with bare
-building blocks? I.e. besides manually composing fully-fledged
-\c{UNWIND_INFO} structure, which would surely be considered
-error-prone? Yes, there is. Recall that exception handler is called
-first, before stack layout is analyzed. As it turned out, it's
-perfectly possible to manipulate current callee's context in custom
-handler in manner that permits further stack unwinding. General idea is
-that handler would not actually "handle" the exception, but instead
-restore callee's context, as it was at its entry point and thus mimic
-leaf function. In other words, handler would simply undertake part of
-unwinding procedure. Consider following example:
-
-\c function:
-\c         mov     rax,rsp         ; copy rsp to volatile register
-\c         push    r15             ; save non-volatile registers
-\c         push    rbx
-\c         push    rbp
-\c         mov     r11,rsp         ; prepare variable stack frame
-\c         sub     r11,rcx
-\c         and     r11,-64
-\c         mov     QWORD[r11],rax  ; check for exceptions
-\c         mov     rsp,r11         ; allocate stack frame
-\c         mov     QWORD[rsp],rax  ; save original rsp value
-\c magic_point:
-\c         ...
-\c         mov     r11,QWORD[rsp]  ; pull original rsp value
-\c         mov     rbp,QWORD[r11-24]
-\c         mov     rbx,QWORD[r11-16]
-\c         mov     r15,QWORD[r11-8]
-\c         mov     rsp,r11         ; destroy frame
-\c         ret
-
-The keyword is that up to \c{magic_point} original \c{rsp} value
-remains in chosen volatile register and no non-volatile register,
-except for \c{rsp}, is modified. While past \c{magic_point} \c{rsp}
-remains constant till the very end of the \c{function}. In this case
-custom language-specific exception handler would look like this:
-
-\c EXCEPTION_DISPOSITION handler (EXCEPTION_RECORD *rec,ULONG64 frame,
-\c         CONTEXT *context,DISPATCHER_CONTEXT *disp)
-\c {   ULONG64 *rsp;
-\c     if (context->Rip<(ULONG64)magic_point)
-\c         rsp = (ULONG64 *)context->Rax;
-\c     else
-\c     {   rsp = ((ULONG64 **)context->Rsp)[0];
-\c         context->Rbp = rsp[-3];
-\c         context->Rbx = rsp[-2];
-\c         context->R15 = rsp[-1];
-\c     }
-\c     context->Rsp = (ULONG64)rsp;
-\c
-\c     memcpy (disp->ContextRecord,context,sizeof(CONTEXT));
-\c     RtlVirtualUnwind(UNW_FLAG_NHANDLER,disp->ImageBase,
-\c         dips->ControlPc,disp->FunctionEntry,disp->ContextRecord,
-\c         &disp->HandlerData,&disp->EstablisherFrame,NULL);
-\c     return ExceptionContinueSearch;
-\c }
-
-As custom handler mimics leaf function, corresponding \c{UNWIND_INFO}
-structure does not have to contain any information about stack frame
-and its layout.
-
-\H{cofffmt} \i\c{coff}: \i{Common Object File Format}
-
-The \c{coff} output type produces \c{COFF} object files suitable for
-linking with the \i{DJGPP} linker.
-
-\c{coff} provides a default output file-name extension of \c{.o}.
-
-The \c{coff} format supports the same extensions to the \c{SECTION}
-directive as \c{win32} does, except that the \c{align} qualifier and
-the \c{info} section type are not supported.
-
-\H{machofmt} \I{Mach-O}\i\c{macho32} and \i\c{macho64}: \i{Mach Object File Format}
-
-The \c{macho32} and \c{macho64} output formts produces Mach-O
-object files suitable for linking with the \i{MacOS X} linker.
-\i\c{macho} is a synonym for \c{macho32}.
-
-\c{macho} provides a default output file-name extension of \c{.o}.
-
-\S{machosect} \c{macho} extensions to the \c{SECTION} Directive
-\I{SECTION, macho extensions to}
-
-The \c{macho} output format specifies section names in the format
-"\e{segment}\c{,}\e{section}".  No spaces are allowed around the
-comma.  The following flags can also be specified:
-
-\b \c{data} - this section contains initialized data items
-
-\b \c{text} - this section contains code exclusively
-
-\b \c{mixed} - this section contains both code and data
-
-\b \c{bss} - this section is uninitialized and filled with zero
-
-\b \c{zerofill} - same as \c{bss}
-
-\b \c{no_dead_strip} - inhibit dead code stripping for this section
-
-\b \c{live_support} - set the live support flag for this section
-
-\b \c{strip_static_syms} - strip static symbols for this section
-
-\b \c{align=}\e{alignment} - specify section alignment
-
-The default is \c{data}, unless the section name is \c{__text} or
-\c{__bss} in which case the default is \c{text} or \c{bss},
-respectively.
-
-For compatibility with other Unix platforms, the following standard
-names are also supported:
-
-\c .text    = __TEXT,__text  text
-\c .rodata  = __DATA,__const data
-\c .data    = __DATA,__data  data
-\c .bss     = __DATA,__bss   bss
-
-If the \c{.rodata} section contains no relocations, it is instead put
-into the \c{__TEXT,__const} section unless this section has already
-been specified explicitly.  However, it is probably better to specify
-\c{__TEXT,__const} and \c{__DATA,__const} explicitly as appropriate.
-
-\S{machotls} \i{Thread Local Storage in Mach-O}\I{TLS}: \c{macho} special
-symbols and \i\c{WRT}
-
-Mach-O defines the following special symbols that can be used on the
-right-hand side of the \c{WRT} operator:
-
-\b \c{..tlvp} is used to specify access to thread-local storage.
-
-\b \c{..gotpcrel} is used to specify references to the Global Offset
-   Table.  The GOT is supported in the \c{macho64} format only.
-
-\S{macho-ssvs} \c{macho} specfic directive \i\c{subsections_via_symbols}
-
-The directive \c{subsections_via_symbols} sets the
-\c{MH_SUBSECTIONS_VIA_SYMBOLS} flag in the Mach-O header, which tells
-the linker that the symbols in the file matches the conventions
-required to allow for link-time dead code elimination.
-
-This directive takes no arguments.
-
-This is a macro implemented as a \c{%pragma}.  It can also be
-specified in its \c{%pragma} form, in which case it will not affect
-non-Mach-O builds of the same source code:
-
-\c      %pragma macho subsections_via_symbols
-
-\S{macho-ssvs} \c{macho} specfic directive \i\c{no_dead_strip}
-
-The directive \c{no_dead_strip} sets the Mach-O \c{SH_NO_DEAD_STRIP}
-section flag on the section containing a a specific symbol.  This
-directive takes a list of symbols as its arguments.
-
-This is a macro implemented as a \c{%pragma}.  It can also be
-specified in its \c{%pragma} form, in which case it will not affect
-non-Mach-O builds of the same source code:
-
-\c      %pragma macho no_dead_strip symbol...
-
-
-\H{elffmt} \i\c{elf32}, \i\c{elf64}, \i\c{elfx32}: \I{ELF}\I{linux, elf}\i{Executable and Linkable
-Format} Object Files
-
-The \c{elf32}, \c{elf64} and \c{elfx32} output formats generate
-\c{ELF32 and ELF64} (Executable and Linkable Format) object files, as
-used by Linux as well as \i{Unix System V}, including \i{Solaris x86},
-\i{UnixWare} and \i{SCO Unix}. \c{elf} provides a default output
-file-name extension of \c{.o}.  \c{elf} is a synonym for \c{elf32}.
-
-The \c{elfx32} format is used for the \i{x32} ABI, which is a 32-bit
-ABI with the CPU in 64-bit mode.
-
-\S{abisect} ELF specific directive \i\c{osabi}
-
-The ELF header specifies the application binary interface for the
-target operating system (OSABI).  This field can be set by using the
-\c{osabi} directive with the numeric value (0-255) of the target
-system. If this directive is not used, the default value will be "UNIX
-System V ABI" (0) which will work on most systems which support ELF.
-
-\S{elfsect} \c{elf} extensions to the \c{SECTION} Directive
-\I{SECTION, elf extensions to}
-
-Like the \c{obj} format, \c{elf} allows you to specify additional
-information on the \c{SECTION} directive line, to control the type
-and properties of sections you declare. Section types and properties
-are generated automatically by NASM for the \i{standard section
-names}, but may still be
-overridden by these qualifiers.
-
-The available qualifiers are:
-
-\b \i\c{alloc} defines the section to be one which is loaded into
-memory when the program is run. \i\c{noalloc} defines it to be one
-which is not, such as an informational or comment section.
-
-\b \i\c{exec} defines the section to be one which should have execute
-permission when the program is run. \i\c{noexec} defines it as one
-which should not.
-
-\b \i\c{write} defines the section to be one which should be writable
-when the program is run. \i\c{nowrite} defines it as one which should
-not.
-
-\b \i\c{progbits} defines the section to be one with explicit contents
-stored in the object file: an ordinary code or data section, for
-example, \i\c{nobits} defines the section to be one with no explicit
-contents given, such as a BSS section.
-
-\b \c{align=}, used with a trailing number as in \c{obj}, gives the
-\I{section alignment, in elf}\I{alignment, in elf sections}alignment
-requirements of the section.
-
-\b \i\c{tls} defines the section to be one which contains
-thread local variables.
-
-The defaults assumed by NASM if you do not specify the above
-qualifiers are:
-
-\I\c{.text} \I\c{.rodata} \I\c{.lrodata} \I\c{.data} \I\c{.ldata}
-\I\c{.bss} \I\c{.lbss} \I\c{.tdata} \I\c{.tbss} \I\c\{.comment}
-
-\c section .text    progbits  alloc   exec    nowrite  align=16
-\c section .rodata  progbits  alloc   noexec  nowrite  align=4
-\c section .lrodata progbits  alloc   noexec  nowrite  align=4
-\c section .data    progbits  alloc   noexec  write    align=4
-\c section .ldata   progbits  alloc   noexec  write    align=4
-\c section .bss     nobits    alloc   noexec  write    align=4
-\c section .lbss    nobits    alloc   noexec  write    align=4
-\c section .tdata   progbits  alloc   noexec  write    align=4    tls
-\c section .tbss    nobits    alloc   noexec  write    align=4    tls
-\c section .comment progbits  noalloc noexec  nowrite  align=1
-\c section other    progbits  alloc   noexec  nowrite  align=1
-
-(Any section name other than those in the above table
- is treated by default like \c{other} in the above table.
- Please note that section names are case sensitive.)
-
-
-\S{elfwrt} \i{Position-Independent Code}\I{PIC}: \c{macho} Special
-Symbols and \i\c{WRT}
-
-Since \c{ELF} does not support segment-base references, the \c{WRT}
-operator is not used for its normal purpose; therefore NASM's
-\c{elf} output format makes use of \c{WRT} for a different purpose,
-namely the PIC-specific \I{relocations, PIC-specific}relocation
-types.
-
-\c{elf} defines five special symbols which you can use as the
-right-hand side of the \c{WRT} operator to obtain PIC relocation
-types. They are \i\c{..gotpc}, \i\c{..gotoff}, \i\c{..got},
-\i\c{..plt} and \i\c{..sym}. Their functions are summarized here:
-
-\b Referring to the symbol marking the global offset table base
-using \c{wrt ..gotpc} will end up giving the distance from the
-beginning of the current section to the global offset table.
-(\i\c{_GLOBAL_OFFSET_TABLE_} is the standard symbol name used to
-refer to the \i{GOT}.) So you would then need to add \i\c{$$} to the
-result to get the real address of the GOT.
-
-\b Referring to a location in one of your own sections using \c{wrt
-..gotoff} will give the distance from the beginning of the GOT to
-the specified location, so that adding on the address of the GOT
-would give the real address of the location you wanted.
-
-\b Referring to an external or global symbol using \c{wrt ..got}
-causes the linker to build an entry \e{in} the GOT containing the
-address of the symbol, and the reference gives the distance from the
-beginning of the GOT to the entry; so you can add on the address of
-the GOT, load from the resulting address, and end up with the
-address of the symbol.
-
-\b Referring to a procedure name using \c{wrt ..plt} causes the
-linker to build a \i{procedure linkage table} entry for the symbol,
-and the reference gives the address of the \i{PLT} entry. You can
-only use this in contexts which would generate a PC-relative
-relocation normally (i.e. as the destination for \c{CALL} or
-\c{JMP}), since ELF contains no relocation type to refer to PLT
-entries absolutely.
-
-\b Referring to a symbol name using \c{wrt ..sym} causes NASM to
-write an ordinary relocation, but instead of making the relocation
-relative to the start of the section and then adding on the offset
-to the symbol, it will write a relocation record aimed directly at
-the symbol in question. The distinction is a necessary one due to a
-peculiarity of the dynamic linker.
-
-A fuller explanation of how to use these relocation types to write
-shared libraries entirely in NASM is given in \k{picdll}.
-
-\S{elftls} \i{Thread Local Storage in ELF}\I{TLS}: \c{elf} Special
-Symbols and \i\c{WRT}
-
-\b In ELF32 mode, referring to an external or global symbol using
-\c{wrt ..tlsie} \I\c{..tlsie}
-causes the linker to build an entry \e{in} the GOT containing the
-offset of the symbol within the TLS block, so you can access the value
-of the symbol with code such as:
-
-\c 	  mov  eax,[tid wrt ..tlsie]
-\c 	  mov  [gs:eax],ebx
-
-
-\b In ELF64 or ELFx32 mode, referring to an external or global symbol using
-\c{wrt ..gottpoff} \I\c{..gottpoff}
-causes the linker to build an entry \e{in} the GOT containing the
-offset of the symbol within the TLS block, so you can access the value
-of the symbol with code such as:
-
-\c 	  mov	rax,[rel tid wrt ..gottpoff]
-\c	  mov	rcx,[fs:rax]
-
-
-\S{elfglob} \c{elf} Extensions to the \c{GLOBAL} Directive\I{GLOBAL,
-elf extensions to}\I{GLOBAL, aoutb extensions to}
-
-\c{ELF} object files can contain more information about a global symbol
-than just its address: they can contain the \I{symbol sizes,
-specifying}\I{size, of symbols}size of the symbol and its \I{symbol
-types, specifying}\I{type, of symbols}type as well. These are not
-merely debugger conveniences, but are actually necessary when the
-program being written is a \i{shared library}. NASM therefore
-supports some extensions to the \c{GLOBAL} directive, allowing you
-to specify these features.
-
-You can specify whether a global variable is a function or a data
-object by suffixing the name with a colon and the word
-\i\c{function} or \i\c{data}. (\i\c{object} is a synonym for
-\c{data}.) For example:
-
-\c global   hashlookup:function, hashtable:data
-
-exports the global symbol \c{hashlookup} as a function and
-\c{hashtable} as a data object.
-
-Optionally, you can control the ELF visibility of the symbol.  Just
-add one of the visibility keywords: \i\c{default}, \i\c{internal},
-\i\c{hidden}, or \i\c{protected}.  The default is \i\c{default} of
-course.  For example, to make \c{hashlookup} hidden:
-
-\c global   hashlookup:function hidden
-
-You can also specify the size of the data associated with the
-symbol, as a numeric expression (which may involve labels, and even
-forward references) after the type specifier. Like this:
-
-\c global  hashtable:data (hashtable.end - hashtable)
-\c
-\c hashtable:
-\c         db this,that,theother  ; some data here
-\c .end:
-
-This makes NASM automatically calculate the length of the table and
-place that information into the \c{ELF} symbol table.
-
-Declaring the type and size of global symbols is necessary when
-writing shared library code. For more information, see
-\k{picglobal}.
-
-
-\S{elfcomm} \c{elf} Extensions to the \c{COMMON} Directive
-\I{COMMON, elf extensions to}
-
-\c{ELF} also allows you to specify alignment requirements \I{common
-variables, alignment in elf}\I{alignment, of elf common variables}on
-common variables. This is done by putting a number (which must be a
-power of two) after the name and size of the common variable,
-separated (as usual) by a colon. For example, an array of
-doublewords would benefit from 4-byte alignment:
-
-\c common  dwordarray 128:4
-
-This declares the total size of the array to be 128 bytes, and
-requires that it be aligned on a 4-byte boundary.
-
-
-\S{elf16} 16-bit code and ELF
-\I{ELF, 16-bit code and}
-
-The \c{ELF32} specification doesn't provide relocations for 8- and
-16-bit values, but the GNU \c{ld} linker adds these as an extension.
-NASM can generate GNU-compatible relocations, to allow 16-bit code to
-be linked as ELF using GNU \c{ld}. If NASM is used with the
-\c{-w+gnu-elf-extensions} option, a warning is issued when one of
-these relocations is generated.
-
-\S{elfdbg} Debug formats and ELF
-\I{ELF, Debug formats and}
-
-ELF provides debug information in \c{STABS} and \c{DWARF} formats.
-Line number information is generated for all executable sections, but please
-note that only the ".text" section is executable by default.
-
-\H{aoutfmt} \i\c{aout}: Linux \I{a.out, Linux version}\I{linux, a.out}\c{a.out} Object Files
-
-The \c{aout} format generates \c{a.out} object files, in the form used
-by early Linux systems (current Linux systems use ELF, see
-\k{elffmt}.) These differ from other \c{a.out} object files in that
-the magic number in the first four bytes of the file is
-different; also, some implementations of \c{a.out}, for example
-NetBSD's, support position-independent code, which Linux's
-implementation does not.
-
-\c{a.out} provides a default output file-name extension of \c{.o}.
-
-\c{a.out} is a very simple object format. It supports no special
-directives, no special symbols, no use of \c{SEG} or \c{WRT}, and no
-extensions to any standard directives. It supports only the three
-\i{standard section names} \i\c{.text}, \i\c{.data} and \i\c{.bss}.
-
-
-\H{aoutfmt} \i\c{aoutb}: \i{NetBSD}/\i{FreeBSD}/\i{OpenBSD}
-\I{a.out, BSD version}\c{a.out} Object Files
-
-The \c{aoutb} format generates \c{a.out} object files, in the form
-used by the various free \c{BSD Unix} clones, \c{NetBSD}, \c{FreeBSD}
-and \c{OpenBSD}. For simple object files, this object format is exactly
-the same as \c{aout} except for the magic number in the first four bytes
-of the file. However, the \c{aoutb} format supports
-\I{PIC}\i{position-independent code} in the same way as the \c{elf}
-format, so you can use it to write \c{BSD} \i{shared libraries}.
-
-\c{aoutb} provides a default output file-name extension of \c{.o}.
-
-\c{aoutb} supports no special directives, no special symbols, and
-only the three \i{standard section names} \i\c{.text}, \i\c{.data}
-and \i\c{.bss}. However, it also supports the same use of \i\c{WRT} as
-\c{elf} does, to provide position-independent code relocation types.
-See \k{elfwrt} for full documentation of this feature.
-
-\c{aoutb} also supports the same extensions to the \c{GLOBAL}
-directive as \c{elf} does: see \k{elfglob} for documentation of
-this.
-
-
-\H{as86fmt} \c{as86}: \i{Minix}/Linux\I{linux, as86} \i\c{as86} Object Files
-
-The Minix/Linux 16-bit assembler \c{as86} has its own non-standard
-object file format. Although its companion linker \i\c{ld86} produces
-something close to ordinary \c{a.out} binaries as output, the object
-file format used to communicate between \c{as86} and \c{ld86} is not
-itself \c{a.out}.
-
-NASM supports this format, just in case it is useful, as \c{as86}.
-\c{as86} provides a default output file-name extension of \c{.o}.
-
-\c{as86} is a very simple object format (from the NASM user's point
-of view). It supports no special directives, no use of \c{SEG} or \c{WRT},
-and no extensions to any standard directives. It supports only the three
-\i{standard section names} \i\c{.text}, \i\c{.data} and \i\c{.bss}.  The
-only special symbol supported is \c{..start}.
-
-
-\H{rdffmt} \I{RDOFF}\i\c{rdf}: \i{Relocatable Dynamic Object File
-Format}
-
-The \c{rdf} output format produces \c{RDOFF} object files. \c{RDOFF}
-(Relocatable Dynamic Object File Format) is a home-grown object-file
-format, designed alongside NASM itself and reflecting in its file
-format the internal structure of the assembler.
-
-\c{RDOFF} is not used by any well-known operating systems. Those
-writing their own systems, however, may well wish to use \c{RDOFF}
-as their object format, on the grounds that it is designed primarily
-for simplicity and contains very little file-header bureaucracy.
-
-The Unix NASM archive, and the DOS archive which includes sources,
-both contain an \I{rdoff subdirectory}\c{rdoff} subdirectory holding
-a set of RDOFF utilities: an RDF linker, an \c{RDF} static-library
-manager, an RDF file dump utility, and a program which will load and
-execute an RDF executable under Linux.
-
-\c{rdf} supports only the \i{standard section names} \i\c{.text},
-\i\c{.data} and \i\c{.bss}.
-
-
-\S{rdflib} Requiring a Library: The \i\c{LIBRARY} Directive
-
-\c{RDOFF} contains a mechanism for an object file to demand a given
-library to be linked to the module, either at load time or run time.
-This is done by the \c{LIBRARY} directive, which takes one argument
-which is the name of the module:
-
-\c     library  mylib.rdl
-
-
-\S{rdfmod} Specifying a Module Name: The \i\c{MODULE} Directive
-
-Special \c{RDOFF} header record is used to store the name of the module.
-It can be used, for example, by run-time loader to perform dynamic
-linking. \c{MODULE} directive takes one argument which is the name
-of current module:
-
-\c     module  mymodname
-
-Note that when you statically link modules and tell linker to strip
-the symbols from output file, all module names will be stripped too.
-To avoid it, you should start module names with \I{$, prefix}\c{$}, like:
-
-\c     module  $kernel.core
-
-
-\S{rdfglob} \c{rdf} Extensions to the \c{GLOBAL} Directive\I{GLOBAL,
-rdf extensions to}
-
-\c{RDOFF} global symbols can contain additional information needed by
-the static linker. You can mark a global symbol as exported, thus
-telling the linker do not strip it from target executable or library
-file. Like in \c{ELF}, you can also specify whether an exported symbol
-is a procedure (function) or data object.
-
-Suffixing the name with a colon and the word \i\c{export} you make the
-symbol exported:
-
-\c     global  sys_open:export
-
-To specify that exported symbol is a procedure (function), you add the
-word \i\c{proc} or \i\c{function} after declaration:
-
-\c     global  sys_open:export proc
-
-Similarly, to specify exported data object, add the word \i\c{data}
-or \i\c{object} to the directive:
-
-\c     global  kernel_ticks:export data
-
-
-\S{rdfimpt} \c{rdf} Extensions to the \c{EXTERN} Directive\I{EXTERN,
-rdf extensions to}
-
-By default the \c{EXTERN} directive in \c{RDOFF} declares a "pure external"
-symbol (i.e. the static linker will complain if such a symbol is not resolved).
-To declare an "imported" symbol, which must be resolved later during a dynamic
-linking phase, \c{RDOFF} offers an additional \c{import} modifier. As in
-\c{GLOBAL}, you can also specify whether an imported symbol is a procedure
-(function) or data object. For example:
-
-\c     library $libc
-\c     extern  _open:import
-\c     extern  _printf:import proc
-\c     extern  _errno:import data
-
-Here the directive \c{LIBRARY} is also included, which gives the dynamic linker
-a hint as to where to find requested symbols.
-
-
-\H{dbgfmt} \i\c{dbg}: Debugging Format
-
-The \c{dbg} output format is not built into NASM in the default
-configuration. If you are building your own NASM executable from the
-sources, you can define \i\c{OF_DBG} in \c{output/outform.h} or on the
-compiler command line, and obtain the \c{dbg} output format.
-
-The \c{dbg} format does not output an object file as such; instead,
-it outputs a text file which contains a complete list of all the
-transactions between the main body of NASM and the output-format
-back end module. It is primarily intended to aid people who want to
-write their own output drivers, so that they can get a clearer idea
-of the various requests the main program makes of the output driver,
-and in what order they happen.
-
-For simple files, one can easily use the \c{dbg} format like this:
-
-\c nasm -f dbg filename.asm
-
-which will generate a diagnostic file called \c{filename.dbg}.
-However, this will not work well on files which were designed for a
-different object format, because each object format defines its own
-macros (usually user-level forms of directives), and those macros
-will not be defined in the \c{dbg} format. Therefore it can be
-useful to run NASM twice, in order to do the preprocessing with the
-native object format selected:
-
-\c nasm -e -f rdf -o rdfprog.i rdfprog.asm
-\c nasm -a -f dbg rdfprog.i
-
-This preprocesses \c{rdfprog.asm} into \c{rdfprog.i}, keeping the
-\c{rdf} object format selected in order to make sure RDF special
-directives are converted into primitive form correctly. Then the
-preprocessed source is fed through the \c{dbg} format to generate
-the final diagnostic output.
-
-This workaround will still typically not work for programs intended
-for \c{obj} format, because the \c{obj} \c{SEGMENT} and \c{GROUP}
-directives have side effects of defining the segment and group names
-as symbols; \c{dbg} will not do this, so the program will not
-assemble. You will have to work around that by defining the symbols
-yourself (using \c{EXTERN}, for example) if you really need to get a
-\c{dbg} trace of an \c{obj}-specific source file.
-
-\c{dbg} accepts any section name and any directives at all, and logs
-them all to its output file.
-
-
-\C{16bit} Writing 16-bit Code (DOS, Windows 3/3.1)
-
-This chapter attempts to cover some of the common issues encountered
-when writing 16-bit code to run under \c{MS-DOS} or \c{Windows 3.x}. It
-covers how to link programs to produce \c{.EXE} or \c{.COM} files,
-how to write \c{.SYS} device drivers, and how to interface assembly
-language code with 16-bit C compilers and with Borland Pascal.
-
-
-\H{exefiles} Producing \i\c{.EXE} Files
-
-Any large program written under DOS needs to be built as a \c{.EXE}
-file: only \c{.EXE} files have the necessary internal structure
-required to span more than one 64K segment. \i{Windows} programs,
-also, have to be built as \c{.EXE} files, since Windows does not
-support the \c{.COM} format.
-
-In general, you generate \c{.EXE} files by using the \c{obj} output
-format to produce one or more \i\c{.OBJ} files, and then linking
-them together using a linker. However, NASM also supports the direct
-generation of simple DOS \c{.EXE} files using the \c{bin} output
-format (by using \c{DB} and \c{DW} to construct the \c{.EXE} file
-header), and a macro package is supplied to do this. Thanks to
-Yann Guidon for contributing the code for this.
-
-NASM may also support \c{.EXE} natively as another output format in
-future releases.
-
-
-\S{objexe} Using the \c{obj} Format To Generate \c{.EXE} Files
-
-This section describes the usual method of generating \c{.EXE} files
-by linking \c{.OBJ} files together.
-
-Most 16-bit programming language packages come with a suitable
-linker; if you have none of these, there is a free linker called
-\i{VAL}\I{linker, free}, available in \c{LZH} archive format from
-\W{ftp://x2ftp.oulu.fi/pub/msdos/programming/lang/}\i\c{x2ftp.oulu.fi}.
-An LZH archiver can be found at
-\W{ftp://ftp.simtel.net/pub/simtelnet/msdos/arcers}\i\c{ftp.simtel.net}.
-There is another `free' linker (though this one doesn't come with
-sources) called \i{FREELINK}, available from
-\W{http://www.pcorner.com/tpc/old/3-101.html}\i\c{www.pcorner.com}.
-A third, \i\c{djlink}, written by DJ Delorie, is available at
-\W{http://www.delorie.com/djgpp/16bit/djlink/}\i\c{www.delorie.com}.
-A fourth linker, \i\c{ALINK}, written by Anthony A.J. Williams, is
-available at \W{http://alink.sourceforge.net}\i\c{alink.sourceforge.net}.
-
-When linking several \c{.OBJ} files into a \c{.EXE} file, you should
-ensure that exactly one of them has a start point defined (using the
-\I{program entry point}\i\c{..start} special symbol defined by the
-\c{obj} format: see \k{dotdotstart}). If no module defines a start
-point, the linker will not know what value to give the entry-point
-field in the output file header; if more than one defines a start
-point, the linker will not know \e{which} value to use.
-
-An example of a NASM source file which can be assembled to a
-\c{.OBJ} file and linked on its own to a \c{.EXE} is given here. It
-demonstrates the basic principles of defining a stack, initialising
-the segment registers, and declaring a start point. This file is
-also provided in the \I{test subdirectory}\c{test} subdirectory of
-the NASM archives, under the name \c{objexe.asm}.
-
-\c segment code
-\c
-\c ..start:
-\c         mov     ax,data
-\c         mov     ds,ax
-\c         mov     ax,stack
-\c         mov     ss,ax
-\c         mov     sp,stacktop
-
-This initial piece of code sets up \c{DS} to point to the data
-segment, and initializes \c{SS} and \c{SP} to point to the top of
-the provided stack. Notice that interrupts are implicitly disabled
-for one instruction after a move into \c{SS}, precisely for this
-situation, so that there's no chance of an interrupt occurring
-between the loads of \c{SS} and \c{SP} and not having a stack to
-execute on.
-
-Note also that the special symbol \c{..start} is defined at the
-beginning of this code, which means that will be the entry point
-into the resulting executable file.
-
-\c         mov     dx,hello
-\c         mov     ah,9
-\c         int     0x21
-
-The above is the main program: load \c{DS:DX} with a pointer to the
-greeting message (\c{hello} is implicitly relative to the segment
-\c{data}, which was loaded into \c{DS} in the setup code, so the
-full pointer is valid), and call the DOS print-string function.
-
-\c         mov     ax,0x4c00
-\c         int     0x21
-
-This terminates the program using another DOS system call.
-
-\c segment data
-\c
-\c hello:  db      'hello, world', 13, 10, '$'
-
-The data segment contains the string we want to display.
-
-\c segment stack stack
-\c         resb 64
-\c stacktop:
-
-The above code declares a stack segment containing 64 bytes of
-uninitialized stack space, and points \c{stacktop} at the top of it.
-The directive \c{segment stack stack} defines a segment \e{called}
-\c{stack}, and also of \e{type} \c{STACK}. The latter is not
-necessary to the correct running of the program, but linkers are
-likely to issue warnings or errors if your program has no segment of
-type \c{STACK}.
-
-The above file, when assembled into a \c{.OBJ} file, will link on
-its own to a valid \c{.EXE} file, which when run will print `hello,
-world' and then exit.
-
-
-\S{binexe} Using the \c{bin} Format To Generate \c{.EXE} Files
-
-The \c{.EXE} file format is simple enough that it's possible to
-build a \c{.EXE} file by writing a pure-binary program and sticking
-a 32-byte header on the front. This header is simple enough that it
-can be generated using \c{DB} and \c{DW} commands by NASM itself, so
-that you can use the \c{bin} output format to directly generate
-\c{.EXE} files.
-
-Included in the NASM archives, in the \I{misc subdirectory}\c{misc}
-subdirectory, is a file \i\c{exebin.mac} of macros. It defines three
-macros: \i\c{EXE_begin}, \i\c{EXE_stack} and \i\c{EXE_end}.
-
-To produce a \c{.EXE} file using this method, you should start by
-using \c{%include} to load the \c{exebin.mac} macro package into
-your source file. You should then issue the \c{EXE_begin} macro call
-(which takes no arguments) to generate the file header data. Then
-write code as normal for the \c{bin} format - you can use all three
-standard sections \c{.text}, \c{.data} and \c{.bss}. At the end of
-the file you should call the \c{EXE_end} macro (again, no arguments),
-which defines some symbols to mark section sizes, and these symbols
-are referred to in the header code generated by \c{EXE_begin}.
-
-In this model, the code you end up writing starts at \c{0x100}, just
-like a \c{.COM} file - in fact, if you strip off the 32-byte header
-from the resulting \c{.EXE} file, you will have a valid \c{.COM}
-program. All the segment bases are the same, so you are limited to a
-64K program, again just like a \c{.COM} file. Note that an \c{ORG}
-directive is issued by the \c{EXE_begin} macro, so you should not
-explicitly issue one of your own.
-
-You can't directly refer to your segment base value, unfortunately,
-since this would require a relocation in the header, and things
-would get a lot more complicated. So you should get your segment
-base by copying it out of \c{CS} instead.
-
-On entry to your \c{.EXE} file, \c{SS:SP} are already set up to
-point to the top of a 2Kb stack. You can adjust the default stack
-size of 2Kb by calling the \c{EXE_stack} macro. For example, to
-change the stack size of your program to 64 bytes, you would call
-\c{EXE_stack 64}.
-
-A sample program which generates a \c{.EXE} file in this way is
-given in the \c{test} subdirectory of the NASM archive, as
-\c{binexe.asm}.
-
-
-\H{comfiles} Producing \i\c{.COM} Files
-
-While large DOS programs must be written as \c{.EXE} files, small
-ones are often better written as \c{.COM} files. \c{.COM} files are
-pure binary, and therefore most easily produced using the \c{bin}
-output format.
-
-
-\S{combinfmt} Using the \c{bin} Format To Generate \c{.COM} Files
-
-\c{.COM} files expect to be loaded at offset \c{100h} into their
-segment (though the segment may change). Execution then begins at
-\I\c{ORG}\c{100h}, i.e. right at the start of the program. So to
-write a \c{.COM} program, you would create a source file looking
-like
-
-\c         org 100h
-\c
-\c section .text
-\c
-\c start:
-\c         ; put your code here
-\c
-\c section .data
-\c
-\c         ; put data items here
-\c
-\c section .bss
-\c
-\c         ; put uninitialized data here
-
-The \c{bin} format puts the \c{.text} section first in the file, so
-you can declare data or BSS items before beginning to write code if
-you want to and the code will still end up at the front of the file
-where it belongs.
-
-The BSS (uninitialized data) section does not take up space in the
-\c{.COM} file itself: instead, addresses of BSS items are resolved
-to point at space beyond the end of the file, on the grounds that
-this will be free memory when the program is run. Therefore you
-should not rely on your BSS being initialized to all zeros when you
-run.
-
-To assemble the above program, you should use a command line like
-
-\c nasm myprog.asm -fbin -o myprog.com
-
-The \c{bin} format would produce a file called \c{myprog} if no
-explicit output file name were specified, so you have to override it
-and give the desired file name.
-
-
-\S{comobjfmt} Using the \c{obj} Format To Generate \c{.COM} Files
-
-If you are writing a \c{.COM} program as more than one module, you
-may wish to assemble several \c{.OBJ} files and link them together
-into a \c{.COM} program. You can do this, provided you have a linker
-capable of outputting \c{.COM} files directly (\i{TLINK} does this),
-or alternatively a converter program such as \i\c{EXE2BIN} to
-transform the \c{.EXE} file output from the linker into a \c{.COM}
-file.
-
-If you do this, you need to take care of several things:
-
-\b The first object file containing code should start its code
-segment with a line like \c{RESB 100h}. This is to ensure that the
-code begins at offset \c{100h} relative to the beginning of the code
-segment, so that the linker or converter program does not have to
-adjust address references within the file when generating the
-\c{.COM} file. Other assemblers use an \i\c{ORG} directive for this
-purpose, but \c{ORG} in NASM is a format-specific directive to the
-\c{bin} output format, and does not mean the same thing as it does
-in MASM-compatible assemblers.
-
-\b You don't need to define a stack segment.
-
-\b All your segments should be in the same group, so that every time
-your code or data references a symbol offset, all offsets are
-relative to the same segment base. This is because, when a \c{.COM}
-file is loaded, all the segment registers contain the same value.
-
-
-\H{sysfiles} Producing \i\c{.SYS} Files
-
-\i{MS-DOS device drivers} - \c{.SYS} files - are pure binary files,
-similar to \c{.COM} files, except that they start at origin zero
-rather than \c{100h}. Therefore, if you are writing a device driver
-using the \c{bin} format, you do not need the \c{ORG} directive,
-since the default origin for \c{bin} is zero. Similarly, if you are
-using \c{obj}, you do not need the \c{RESB 100h} at the start of
-your code segment.
-
-\c{.SYS} files start with a header structure, containing pointers to
-the various routines inside the driver which do the work. This
-structure should be defined at the start of the code segment, even
-though it is not actually code.
-
-For more information on the format of \c{.SYS} files, and the data
-which has to go in the header structure, a list of books is given in
-the Frequently Asked Questions list for the newsgroup
-\W{news:comp.os.msdos.programmer}\i\c{comp.os.msdos.programmer}.
-
-
-\H{16c} Interfacing to 16-bit C Programs
-
-This section covers the basics of writing assembly routines that
-call, or are called from, C programs. To do this, you would
-typically write an assembly module as a \c{.OBJ} file, and link it
-with your C modules to produce a \i{mixed-language program}.
-
-
-\S{16cunder} External Symbol Names
-
-\I{C symbol names}\I{underscore, in C symbols}C compilers have the
-convention that the names of all global symbols (functions or data)
-they define are formed by prefixing an underscore to the name as it
-appears in the C program. So, for example, the function a C
-programmer thinks of as \c{printf} appears to an assembly language
-programmer as \c{_printf}. This means that in your assembly
-programs, you can define symbols without a leading underscore, and
-not have to worry about name clashes with C symbols.
-
-If you find the underscores inconvenient, you can define macros to
-replace the \c{GLOBAL} and \c{EXTERN} directives as follows:
-
-\c %macro  cglobal 1
-\c
-\c   global  _%1
-\c   %define %1 _%1
-\c
-\c %endmacro
-\c
-\c %macro  cextern 1
-\c
-\c   extern  _%1
-\c   %define %1 _%1
-\c
-\c %endmacro
-
-(These forms of the macros only take one argument at a time; a
-\c{%rep} construct could solve this.)
-
-If you then declare an external like this:
-
-\c cextern printf
-
-then the macro will expand it as
-
-\c extern  _printf
-\c %define printf _printf
-
-Thereafter, you can reference \c{printf} as if it was a symbol, and
-the preprocessor will put the leading underscore on where necessary.
-
-The \c{cglobal} macro works similarly. You must use \c{cglobal}
-before defining the symbol in question, but you would have had to do
-that anyway if you used \c{GLOBAL}.
-
-Also see \k{opt-pfix}.
-
-\S{16cmodels} \i{Memory Models}
-
-NASM contains no mechanism to support the various C memory models
-directly; you have to keep track yourself of which one you are
-writing for. This means you have to keep track of the following
-things:
-
-\b In models using a single code segment (tiny, small and compact),
-functions are near. This means that function pointers, when stored
-in data segments or pushed on the stack as function arguments, are
-16 bits long and contain only an offset field (the \c{CS} register
-never changes its value, and always gives the segment part of the
-full function address), and that functions are called using ordinary
-near \c{CALL} instructions and return using \c{RETN} (which, in
-NASM, is synonymous with \c{RET} anyway). This means both that you
-should write your own routines to return with \c{RETN}, and that you
-should call external C routines with near \c{CALL} instructions.
-
-\b In models using more than one code segment (medium, large and
-huge), functions are far. This means that function pointers are 32
-bits long (consisting of a 16-bit offset followed by a 16-bit
-segment), and that functions are called using \c{CALL FAR} (or
-\c{CALL seg:offset}) and return using \c{RETF}. Again, you should
-therefore write your own routines to return with \c{RETF} and use
-\c{CALL FAR} to call external routines.
-
-\b In models using a single data segment (tiny, small and medium),
-data pointers are 16 bits long, containing only an offset field (the
-\c{DS} register doesn't change its value, and always gives the
-segment part of the full data item address).
-
-\b In models using more than one data segment (compact, large and
-huge), data pointers are 32 bits long, consisting of a 16-bit offset
-followed by a 16-bit segment. You should still be careful not to
-modify \c{DS} in your routines without restoring it afterwards, but
-\c{ES} is free for you to use to access the contents of 32-bit data
-pointers you are passed.
-
-\b The huge memory model allows single data items to exceed 64K in
-size. In all other memory models, you can access the whole of a data
-item just by doing arithmetic on the offset field of the pointer you
-are given, whether a segment field is present or not; in huge model,
-you have to be more careful of your pointer arithmetic.
-
-\b In most memory models, there is a \e{default} data segment, whose
-segment address is kept in \c{DS} throughout the program. This data
-segment is typically the same segment as the stack, kept in \c{SS},
-so that functions' local variables (which are stored on the stack)
-and global data items can both be accessed easily without changing
-\c{DS}. Particularly large data items are typically stored in other
-segments. However, some memory models (though not the standard
-ones, usually) allow the assumption that \c{SS} and \c{DS} hold the
-same value to be removed. Be careful about functions' local
-variables in this latter case.
-
-In models with a single code segment, the segment is called
-\i\c{_TEXT}, so your code segment must also go by this name in order
-to be linked into the same place as the main code segment. In models
-with a single data segment, or with a default data segment, it is
-called \i\c{_DATA}.
-
-
-\S{16cfunc} Function Definitions and Function Calls
-
-\I{functions, C calling convention}The \i{C calling convention} in
-16-bit programs is as follows. In the following description, the
-words \e{caller} and \e{callee} are used to denote the function
-doing the calling and the function which gets called.
-
-\b The caller pushes the function's parameters on the stack, one
-after another, in reverse order (right to left, so that the first
-argument specified to the function is pushed last).
-
-\b The caller then executes a \c{CALL} instruction to pass control
-to the callee. This \c{CALL} is either near or far depending on the
-memory model.
-
-\b The callee receives control, and typically (although this is not
-actually necessary, in functions which do not need to access their
-parameters) starts by saving the value of \c{SP} in \c{BP} so as to
-be able to use \c{BP} as a base pointer to find its parameters on
-the stack. However, the caller was probably doing this too, so part
-of the calling convention states that \c{BP} must be preserved by
-any C function. Hence the callee, if it is going to set up \c{BP} as
-a \i\e{frame pointer}, must push the previous value first.
-
-\b The callee may then access its parameters relative to \c{BP}.
-The word at \c{[BP]} holds the previous value of \c{BP} as it was
-pushed; the next word, at \c{[BP+2]}, holds the offset part of the
-return address, pushed implicitly by \c{CALL}. In a small-model
-(near) function, the parameters start after that, at \c{[BP+4]}; in
-a large-model (far) function, the segment part of the return address
-lives at \c{[BP+4]}, and the parameters begin at \c{[BP+6]}. The
-leftmost parameter of the function, since it was pushed last, is
-accessible at this offset from \c{BP}; the others follow, at
-successively greater offsets. Thus, in a function such as \c{printf}
-which takes a variable number of parameters, the pushing of the
-parameters in reverse order means that the function knows where to
-find its first parameter, which tells it the number and type of the
-remaining ones.
-
-\b The callee may also wish to decrease \c{SP} further, so as to
-allocate space on the stack for local variables, which will then be
-accessible at negative offsets from \c{BP}.
-
-\b The callee, if it wishes to return a value to the caller, should
-leave the value in \c{AL}, \c{AX} or \c{DX:AX} depending on the size
-of the value. Floating-point results are sometimes (depending on the
-compiler) returned in \c{ST0}.
-
-\b Once the callee has finished processing, it restores \c{SP} from
-\c{BP} if it had allocated local stack space, then pops the previous
-value of \c{BP}, and returns via \c{RETN} or \c{RETF} depending on
-memory model.
-
-\b When the caller regains control from the callee, the function
-parameters are still on the stack, so it typically adds an immediate
-constant to \c{SP} to remove them (instead of executing a number of
-slow \c{POP} instructions). Thus, if a function is accidentally
-called with the wrong number of parameters due to a prototype
-mismatch, the stack will still be returned to a sensible state since
-the caller, which \e{knows} how many parameters it pushed, does the
-removing.
-
-It is instructive to compare this calling convention with that for
-Pascal programs (described in \k{16bpfunc}). Pascal has a simpler
-convention, since no functions have variable numbers of parameters.
-Therefore the callee knows how many parameters it should have been
-passed, and is able to deallocate them from the stack itself by
-passing an immediate argument to the \c{RET} or \c{RETF}
-instruction, so the caller does not have to do it. Also, the
-parameters are pushed in left-to-right order, not right-to-left,
-which means that a compiler can give better guarantees about
-sequence points without performance suffering.
-
-Thus, you would define a function in C style in the following way.
-The following example is for small model:
-
-\c global  _myfunc
-\c
-\c _myfunc:
-\c         push    bp
-\c         mov     bp,sp
-\c         sub     sp,0x40         ; 64 bytes of local stack space
-\c         mov     bx,[bp+4]       ; first parameter to function
-\c
-\c         ; some more code
-\c
-\c         mov     sp,bp           ; undo "sub sp,0x40" above
-\c         pop     bp
-\c         ret
-
-For a large-model function, you would replace \c{RET} by \c{RETF},
-and look for the first parameter at \c{[BP+6]} instead of
-\c{[BP+4]}. Of course, if one of the parameters is a pointer, then
-the offsets of \e{subsequent} parameters will change depending on
-the memory model as well: far pointers take up four bytes on the
-stack when passed as a parameter, whereas near pointers take up two.
-
-At the other end of the process, to call a C function from your
-assembly code, you would do something like this:
-
-\c extern  _printf
-\c
-\c       ; and then, further down...
-\c
-\c       push    word [myint]        ; one of my integer variables
-\c       push    word mystring       ; pointer into my data segment
-\c       call    _printf
-\c       add     sp,byte 4           ; `byte' saves space
-\c
-\c       ; then those data items...
-\c
-\c segment _DATA
-\c
-\c myint         dw    1234
-\c mystring      db    'This number -> %d <- should be 1234',10,0
-
-This piece of code is the small-model assembly equivalent of the C
-code
-
-\c     int myint = 1234;
-\c     printf("This number -> %d <- should be 1234\n", myint);
-
-In large model, the function-call code might look more like this. In
-this example, it is assumed that \c{DS} already holds the segment
-base of the segment \c{_DATA}. If not, you would have to initialize
-it first.
-
-\c       push    word [myint]
-\c       push    word seg mystring   ; Now push the segment, and...
-\c       push    word mystring       ; ... offset of "mystring"
-\c       call    far _printf
-\c       add    sp,byte 6
-
-The integer value still takes up one word on the stack, since large
-model does not affect the size of the \c{int} data type. The first
-argument (pushed last) to \c{printf}, however, is a data pointer,
-and therefore has to contain a segment and offset part. The segment
-should be stored second in memory, and therefore must be pushed
-first. (Of course, \c{PUSH DS} would have been a shorter instruction
-than \c{PUSH WORD SEG mystring}, if \c{DS} was set up as the above
-example assumed.) Then the actual call becomes a far call, since
-functions expect far calls in large model; and \c{SP} has to be
-increased by 6 rather than 4 afterwards to make up for the extra
-word of parameters.
-
-
-\S{16cdata} Accessing Data Items
-
-To get at the contents of C variables, or to declare variables which
-C can access, you need only declare the names as \c{GLOBAL} or
-\c{EXTERN}. (Again, the names require leading underscores, as stated
-in \k{16cunder}.) Thus, a C variable declared as \c{int i} can be
-accessed from assembler as
-
-\c extern _i
-\c
-\c         mov ax,[_i]
-
-And to declare your own integer variable which C programs can access
-as \c{extern int j}, you do this (making sure you are assembling in
-the \c{_DATA} segment, if necessary):
-
-\c global  _j
-\c
-\c _j      dw      0
-
-To access a C array, you need to know the size of the components of
-the array. For example, \c{int} variables are two bytes long, so if
-a C program declares an array as \c{int a[10]}, you can access
-\c{a[3]} by coding \c{mov ax,[_a+6]}. (The byte offset 6 is obtained
-by multiplying the desired array index, 3, by the size of the array
-element, 2.) The sizes of the C base types in 16-bit compilers are:
-1 for \c{char}, 2 for \c{short} and \c{int}, 4 for \c{long} and
-\c{float}, and 8 for \c{double}.
-
-To access a C \i{data structure}, you need to know the offset from
-the base of the structure to the field you are interested in. You
-can either do this by converting the C structure definition into a
-NASM structure definition (using \i\c{STRUC}), or by calculating the
-one offset and using just that.
-
-To do either of these, you should read your C compiler's manual to
-find out how it organizes data structures. NASM gives no special
-alignment to structure members in its own \c{STRUC} macro, so you
-have to specify alignment yourself if the C compiler generates it.
-Typically, you might find that a structure like
-
-\c struct {
-\c     char c;
-\c     int i;
-\c } foo;
-
-might be four bytes long rather than three, since the \c{int} field
-would be aligned to a two-byte boundary. However, this sort of
-feature tends to be a configurable option in the C compiler, either
-using command-line options or \c{#pragma} lines, so you have to find
-out how your own compiler does it.
-
-
-\S{16cmacro} \i\c{c16.mac}: Helper Macros for the 16-bit C Interface
-
-Included in the NASM archives, in the \I{misc subdirectory}\c{misc}
-directory, is a file \c{c16.mac} of macros. It defines three macros:
-\i\c{proc}, \i\c{arg} and \i\c{endproc}. These are intended to be
-used for C-style procedure definitions, and they automate a lot of
-the work involved in keeping track of the calling convention.
-
-(An alternative, TASM compatible form of \c{arg} is also now built
-into NASM's preprocessor. See \k{stackrel} for details.)
-
-An example of an assembly function using the macro set is given
-here:
-
-\c proc    _nearproc
-\c
-\c %$i     arg
-\c %$j     arg
-\c         mov     ax,[bp + %$i]
-\c         mov     bx,[bp + %$j]
-\c         add     ax,[bx]
-\c
-\c endproc
-
-This defines \c{_nearproc} to be a procedure taking two arguments,
-the first (\c{i}) an integer and the second (\c{j}) a pointer to an
-integer. It returns \c{i + *j}.
-
-Note that the \c{arg} macro has an \c{EQU} as the first line of its
-expansion, and since the label before the macro call gets prepended
-to the first line of the expanded macro, the \c{EQU} works, defining
-\c{%$i} to be an offset from \c{BP}. A context-local variable is
-used, local to the context pushed by the \c{proc} macro and popped
-by the \c{endproc} macro, so that the same argument name can be used
-in later procedures. Of course, you don't \e{have} to do that.
-
-The macro set produces code for near functions (tiny, small and
-compact-model code) by default. You can have it generate far
-functions (medium, large and huge-model code) by means of coding
-\I\c{FARCODE}\c{%define FARCODE}. This changes the kind of return
-instruction generated by \c{endproc}, and also changes the starting
-point for the argument offsets. The macro set contains no intrinsic
-dependency on whether data pointers are far or not.
-
-\c{arg} can take an optional parameter, giving the size of the
-argument. If no size is given, 2 is assumed, since it is likely that
-many function parameters will be of type \c{int}.
-
-The large-model equivalent of the above function would look like this:
-
-\c %define FARCODE
-\c
-\c proc    _farproc
-\c
-\c %$i     arg
-\c %$j     arg     4
-\c         mov     ax,[bp + %$i]
-\c         mov     bx,[bp + %$j]
-\c         mov     es,[bp + %$j + 2]
-\c         add     ax,[bx]
-\c
-\c endproc
-
-This makes use of the argument to the \c{arg} macro to define a
-parameter of size 4, because \c{j} is now a far pointer. When we
-load from \c{j}, we must load a segment and an offset.
-
-
-\H{16bp} Interfacing to \i{Borland Pascal} Programs
-
-Interfacing to Borland Pascal programs is similar in concept to
-interfacing to 16-bit C programs. The differences are:
-
-\b The leading underscore required for interfacing to C programs is
-not required for Pascal.
-
-\b The memory model is always large: functions are far, data
-pointers are far, and no data item can be more than 64K long.
-(Actually, some functions are near, but only those functions that
-are local to a Pascal unit and never called from outside it. All
-assembly functions that Pascal calls, and all Pascal functions that
-assembly routines are able to call, are far.) However, all static
-data declared in a Pascal program goes into the default data
-segment, which is the one whose segment address will be in \c{DS}
-when control is passed to your assembly code. The only things that
-do not live in the default data segment are local variables (they
-live in the stack segment) and dynamically allocated variables. All
-data \e{pointers}, however, are far.
-
-\b The function calling convention is different - described below.
-
-\b Some data types, such as strings, are stored differently.
-
-\b There are restrictions on the segment names you are allowed to
-use - Borland Pascal will ignore code or data declared in a segment
-it doesn't like the name of. The restrictions are described below.
-
-
-\S{16bpfunc} The Pascal Calling Convention
-
-\I{functions, Pascal calling convention}\I{Pascal calling
-convention}The 16-bit Pascal calling convention is as follows. In
-the following description, the words \e{caller} and \e{callee} are
-used to denote the function doing the calling and the function which
-gets called.
-
-\b The caller pushes the function's parameters on the stack, one
-after another, in normal order (left to right, so that the first
-argument specified to the function is pushed first).
-
-\b The caller then executes a far \c{CALL} instruction to pass
-control to the callee.
-
-\b The callee receives control, and typically (although this is not
-actually necessary, in functions which do not need to access their
-parameters) starts by saving the value of \c{SP} in \c{BP} so as to
-be able to use \c{BP} as a base pointer to find its parameters on
-the stack. However, the caller was probably doing this too, so part
-of the calling convention states that \c{BP} must be preserved by
-any function. Hence the callee, if it is going to set up \c{BP} as a
-\i{frame pointer}, must push the previous value first.
-
-\b The callee may then access its parameters relative to \c{BP}.
-The word at \c{[BP]} holds the previous value of \c{BP} as it was
-pushed. The next word, at \c{[BP+2]}, holds the offset part of the
-return address, and the next one at \c{[BP+4]} the segment part. The
-parameters begin at \c{[BP+6]}. The rightmost parameter of the
-function, since it was pushed last, is accessible at this offset
-from \c{BP}; the others follow, at successively greater offsets.
-
-\b The callee may also wish to decrease \c{SP} further, so as to
-allocate space on the stack for local variables, which will then be
-accessible at negative offsets from \c{BP}.
-
-\b The callee, if it wishes to return a value to the caller, should
-leave the value in \c{AL}, \c{AX} or \c{DX:AX} depending on the size
-of the value. Floating-point results are returned in \c{ST0}.
-Results of type \c{Real} (Borland's own custom floating-point data
-type, not handled directly by the FPU) are returned in \c{DX:BX:AX}.
-To return a result of type \c{String}, the caller pushes a pointer
-to a temporary string before pushing the parameters, and the callee
-places the returned string value at that location. The pointer is
-not a parameter, and should not be removed from the stack by the
-\c{RETF} instruction.
-
-\b Once the callee has finished processing, it restores \c{SP} from
-\c{BP} if it had allocated local stack space, then pops the previous
-value of \c{BP}, and returns via \c{RETF}. It uses the form of
-\c{RETF} with an immediate parameter, giving the number of bytes
-taken up by the parameters on the stack. This causes the parameters
-to be removed from the stack as a side effect of the return
-instruction.
-
-\b When the caller regains control from the callee, the function
-parameters have already been removed from the stack, so it needs to
-do nothing further.
-
-Thus, you would define a function in Pascal style, taking two
-\c{Integer}-type parameters, in the following way:
-
-\c global  myfunc
-\c
-\c myfunc: push    bp
-\c         mov     bp,sp
-\c         sub     sp,0x40         ; 64 bytes of local stack space
-\c         mov     bx,[bp+8]       ; first parameter to function
-\c         mov     bx,[bp+6]       ; second parameter to function
-\c
-\c         ; some more code
-\c
-\c         mov     sp,bp           ; undo "sub sp,0x40" above
-\c         pop     bp
-\c         retf    4               ; total size of params is 4
-
-At the other end of the process, to call a Pascal function from your
-assembly code, you would do something like this:
-
-\c extern  SomeFunc
-\c
-\c        ; and then, further down...
-\c
-\c        push   word seg mystring   ; Now push the segment, and...
-\c        push   word mystring       ; ... offset of "mystring"
-\c        push   word [myint]        ; one of my variables
-\c        call   far SomeFunc
-
-This is equivalent to the Pascal code
-
-\c procedure SomeFunc(String: PChar; Int: Integer);
-\c     SomeFunc(@mystring, myint);
-
-
-\S{16bpseg} Borland Pascal \I{segment names, Borland Pascal}Segment
-Name Restrictions
-
-Since Borland Pascal's internal unit file format is completely
-different from \c{OBJ}, it only makes a very sketchy job of actually
-reading and understanding the various information contained in a
-real \c{OBJ} file when it links that in. Therefore an object file
-intended to be linked to a Pascal program must obey a number of
-restrictions:
-
-\b Procedures and functions must be in a segment whose name is
-either \c{CODE}, \c{CSEG}, or something ending in \c{_TEXT}.
-
-\b initialized data must be in a segment whose name is either
-\c{CONST} or something ending in \c{_DATA}.
-
-\b Uninitialized data must be in a segment whose name is either
-\c{DATA}, \c{DSEG}, or something ending in \c{_BSS}.
-
-\b Any other segments in the object file are completely ignored.
-\c{GROUP} directives and segment attributes are also ignored.
-
-
-\S{16bpmacro} Using \i\c{c16.mac} With Pascal Programs
-
-The \c{c16.mac} macro package, described in \k{16cmacro}, can also
-be used to simplify writing functions to be called from Pascal
-programs, if you code \I\c{PASCAL}\c{%define PASCAL}. This
-definition ensures that functions are far (it implies
-\i\c{FARCODE}), and also causes procedure return instructions to be
-generated with an operand.
-
-Defining \c{PASCAL} does not change the code which calculates the
-argument offsets; you must declare your function's arguments in
-reverse order. For example:
-
-\c %define PASCAL
-\c
-\c proc    _pascalproc
-\c
-\c %$j     arg 4
-\c %$i     arg
-\c         mov     ax,[bp + %$i]
-\c         mov     bx,[bp + %$j]
-\c         mov     es,[bp + %$j + 2]
-\c         add     ax,[bx]
-\c
-\c endproc
-
-This defines the same routine, conceptually, as the example in
-\k{16cmacro}: it defines a function taking two arguments, an integer
-and a pointer to an integer, which returns the sum of the integer
-and the contents of the pointer. The only difference between this
-code and the large-model C version is that \c{PASCAL} is defined
-instead of \c{FARCODE}, and that the arguments are declared in
-reverse order.
-
-
-\C{32bit} Writing 32-bit Code (Unix, Win32, DJGPP)
-
-This chapter attempts to cover some of the common issues involved
-when writing 32-bit code, to run under \i{Win32} or Unix, or to be
-linked with C code generated by a Unix-style C compiler such as
-\i{DJGPP}. It covers how to write assembly code to interface with
-32-bit C routines, and how to write position-independent code for
-shared libraries.
-
-Almost all 32-bit code, and in particular all code running under
-\c{Win32}, \c{DJGPP} or any of the PC Unix variants, runs in \I{flat
-memory model}\e{flat} memory model. This means that the segment registers
-and paging have already been set up to give you the same 32-bit 4Gb
-address space no matter what segment you work relative to, and that
-you should ignore all segment registers completely. When writing
-flat-model application code, you never need to use a segment
-override or modify any segment register, and the code-section
-addresses you pass to \c{CALL} and \c{JMP} live in the same address
-space as the data-section addresses you access your variables by and
-the stack-section addresses you access local variables and procedure
-parameters by. Every address is 32 bits long and contains only an
-offset part.
-
-
-\H{32c} Interfacing to 32-bit C Programs
-
-A lot of the discussion in \k{16c}, about interfacing to 16-bit C
-programs, still applies when working in 32 bits. The absence of
-memory models or segmentation worries simplifies things a lot.
-
-
-\S{32cunder} External Symbol Names
-
-Most 32-bit C compilers share the convention used by 16-bit
-compilers, that the names of all global symbols (functions or data)
-they define are formed by prefixing an underscore to the name as it
-appears in the C program. However, not all of them do: the \c{ELF}
-specification states that C symbols do \e{not} have a leading
-underscore on their assembly-language names.
-
-The older Linux \c{a.out} C compiler, all \c{Win32} compilers,
-\c{DJGPP}, and \c{NetBSD} and \c{FreeBSD}, all use the leading
-underscore; for these compilers, the macros \c{cextern} and
-\c{cglobal}, as given in \k{16cunder}, will still work. For \c{ELF},
-though, the leading underscore should not be used.
-
-See also \k{opt-pfix}.
-
-\S{32cfunc} Function Definitions and Function Calls
-
-\I{functions, C calling convention}The \i{C calling convention}
-in 32-bit programs is as follows. In the following description,
-the words \e{caller} and \e{callee} are used to denote
-the function doing the calling and the function which gets called.
-
-\b The caller pushes the function's parameters on the stack, one
-after another, in reverse order (right to left, so that the first
-argument specified to the function is pushed last).
-
-\b The caller then executes a near \c{CALL} instruction to pass
-control to the callee.
-
-\b The callee receives control, and typically (although this is not
-actually necessary, in functions which do not need to access their
-parameters) starts by saving the value of \c{ESP} in \c{EBP} so as
-to be able to use \c{EBP} as a base pointer to find its parameters
-on the stack. However, the caller was probably doing this too, so
-part of the calling convention states that \c{EBP} must be preserved
-by any C function. Hence the callee, if it is going to set up
-\c{EBP} as a \i{frame pointer}, must push the previous value first.
-
-\b The callee may then access its parameters relative to \c{EBP}.
-The doubleword at \c{[EBP]} holds the previous value of \c{EBP} as
-it was pushed; the next doubleword, at \c{[EBP+4]}, holds the return
-address, pushed implicitly by \c{CALL}. The parameters start after
-that, at \c{[EBP+8]}. The leftmost parameter of the function, since
-it was pushed last, is accessible at this offset from \c{EBP}; the
-others follow, at successively greater offsets. Thus, in a function
-such as \c{printf} which takes a variable number of parameters, the
-pushing of the parameters in reverse order means that the function
-knows where to find its first parameter, which tells it the number
-and type of the remaining ones.
-
-\b The callee may also wish to decrease \c{ESP} further, so as to
-allocate space on the stack for local variables, which will then be
-accessible at negative offsets from \c{EBP}.
-
-\b The callee, if it wishes to return a value to the caller, should
-leave the value in \c{AL}, \c{AX} or \c{EAX} depending on the size
-of the value. Floating-point results are typically returned in
-\c{ST0}.
-
-\b Once the callee has finished processing, it restores \c{ESP} from
-\c{EBP} if it had allocated local stack space, then pops the previous
-value of \c{EBP}, and returns via \c{RET} (equivalently, \c{RETN}).
-
-\b When the caller regains control from the callee, the function
-parameters are still on the stack, so it typically adds an immediate
-constant to \c{ESP} to remove them (instead of executing a number of
-slow \c{POP} instructions). Thus, if a function is accidentally
-called with the wrong number of parameters due to a prototype
-mismatch, the stack will still be returned to a sensible state since
-the caller, which \e{knows} how many parameters it pushed, does the
-removing.
-
-There is an alternative calling convention used by Win32 programs
-for Windows API calls, and also for functions called \e{by} the
-Windows API such as window procedures: they follow what Microsoft
-calls the \c{__stdcall} convention. This is slightly closer to the
-Pascal convention, in that the callee clears the stack by passing a
-parameter to the \c{RET} instruction. However, the parameters are
-still pushed in right-to-left order.
-
-Thus, you would define a function in C style in the following way:
-
-\c global  _myfunc
-\c
-\c _myfunc:
-\c         push    ebp
-\c         mov     ebp,esp
-\c         sub     esp,0x40        ; 64 bytes of local stack space
-\c         mov     ebx,[ebp+8]     ; first parameter to function
-\c
-\c         ; some more code
-\c
-\c         leave                   ; mov esp,ebp / pop ebp
-\c         ret
-
-At the other end of the process, to call a C function from your
-assembly code, you would do something like this:
-
-\c extern  _printf
-\c
-\c         ; and then, further down...
-\c
-\c         push    dword [myint]   ; one of my integer variables
-\c         push    dword mystring  ; pointer into my data segment
-\c         call    _printf
-\c         add     esp,byte 8      ; `byte' saves space
-\c
-\c         ; then those data items...
-\c
-\c segment _DATA
-\c
-\c myint       dd   1234
-\c mystring    db   'This number -> %d <- should be 1234',10,0
-
-This piece of code is the assembly equivalent of the C code
-
-\c     int myint = 1234;
-\c     printf("This number -> %d <- should be 1234\n", myint);
-
-
-\S{32cdata} Accessing Data Items
-
-To get at the contents of C variables, or to declare variables which
-C can access, you need only declare the names as \c{GLOBAL} or
-\c{EXTERN}. (Again, the names require leading underscores, as stated
-in \k{32cunder}.) Thus, a C variable declared as \c{int i} can be
-accessed from assembler as
-
-\c           extern _i
-\c           mov eax,[_i]
-
-And to declare your own integer variable which C programs can access
-as \c{extern int j}, you do this (making sure you are assembling in
-the \c{_DATA} segment, if necessary):
-
-\c           global _j
-\c _j        dd 0
-
-To access a C array, you need to know the size of the components of
-the array. For example, \c{int} variables are four bytes long, so if
-a C program declares an array as \c{int a[10]}, you can access
-\c{a[3]} by coding \c{mov ax,[_a+12]}. (The byte offset 12 is obtained
-by multiplying the desired array index, 3, by the size of the array
-element, 4.) The sizes of the C base types in 32-bit compilers are:
-1 for \c{char}, 2 for \c{short}, 4 for \c{int}, \c{long} and
-\c{float}, and 8 for \c{double}. Pointers, being 32-bit addresses,
-are also 4 bytes long.
-
-To access a C \i{data structure}, you need to know the offset from
-the base of the structure to the field you are interested in. You
-can either do this by converting the C structure definition into a
-NASM structure definition (using \c{STRUC}), or by calculating the
-one offset and using just that.
-
-To do either of these, you should read your C compiler's manual to
-find out how it organizes data structures. NASM gives no special
-alignment to structure members in its own \i\c{STRUC} macro, so you
-have to specify alignment yourself if the C compiler generates it.
-Typically, you might find that a structure like
-
-\c struct {
-\c     char c;
-\c     int i;
-\c } foo;
-
-might be eight bytes long rather than five, since the \c{int} field
-would be aligned to a four-byte boundary. However, this sort of
-feature is sometimes a configurable option in the C compiler, either
-using command-line options or \c{#pragma} lines, so you have to find
-out how your own compiler does it.
-
-
-\S{32cmacro} \i\c{c32.mac}: Helper Macros for the 32-bit C Interface
-
-Included in the NASM archives, in the \I{misc directory}\c{misc}
-directory, is a file \c{c32.mac} of macros. It defines three macros:
-\i\c{proc}, \i\c{arg} and \i\c{endproc}. These are intended to be
-used for C-style procedure definitions, and they automate a lot of
-the work involved in keeping track of the calling convention.
-
-An example of an assembly function using the macro set is given
-here:
-
-\c proc    _proc32
-\c
-\c %$i     arg
-\c %$j     arg
-\c         mov     eax,[ebp + %$i]
-\c         mov     ebx,[ebp + %$j]
-\c         add     eax,[ebx]
-\c
-\c endproc
-
-This defines \c{_proc32} to be a procedure taking two arguments, the
-first (\c{i}) an integer and the second (\c{j}) a pointer to an
-integer. It returns \c{i + *j}.
-
-Note that the \c{arg} macro has an \c{EQU} as the first line of its
-expansion, and since the label before the macro call gets prepended
-to the first line of the expanded macro, the \c{EQU} works, defining
-\c{%$i} to be an offset from \c{BP}. A context-local variable is
-used, local to the context pushed by the \c{proc} macro and popped
-by the \c{endproc} macro, so that the same argument name can be used
-in later procedures. Of course, you don't \e{have} to do that.
-
-\c{arg} can take an optional parameter, giving the size of the
-argument. If no size is given, 4 is assumed, since it is likely that
-many function parameters will be of type \c{int} or pointers.
-
-
-\H{picdll} Writing NetBSD/FreeBSD/OpenBSD and Linux/ELF \i{Shared
-Libraries}
-
-\c{ELF} replaced the older \c{a.out} object file format under Linux
-because it contains support for \i{position-independent code}
-(\i{PIC}), which makes writing shared libraries much easier. NASM
-supports the \c{ELF} position-independent code features, so you can
-write Linux \c{ELF} shared libraries in NASM.
-
-\i{NetBSD}, and its close cousins \i{FreeBSD} and \i{OpenBSD}, take
-a different approach by hacking PIC support into the \c{a.out}
-format. NASM supports this as the \i\c{aoutb} output format, so you
-can write \i{BSD} shared libraries in NASM too.
-
-The operating system loads a PIC shared library by memory-mapping
-the library file at an arbitrarily chosen point in the address space
-of the running process. The contents of the library's code section
-must therefore not depend on where it is loaded in memory.
-
-Therefore, you cannot get at your variables by writing code like
-this:
-
-\c         mov     eax,[myvar]             ; WRONG
-
-Instead, the linker provides an area of memory called the
-\i\e{global offset table}, or \i{GOT}; the GOT is situated at a
-constant distance from your library's code, so if you can find out
-where your library is loaded (which is typically done using a
-\c{CALL} and \c{POP} combination), you can obtain the address of the
-GOT, and you can then load the addresses of your variables out of
-linker-generated entries in the GOT.
-
-The \e{data} section of a PIC shared library does not have these
-restrictions: since the data section is writable, it has to be
-copied into memory anyway rather than just paged in from the library
-file, so as long as it's being copied it can be relocated too. So
-you can put ordinary types of relocation in the data section without
-too much worry (but see \k{picglobal} for a caveat).
-
-
-\S{picgot} Obtaining the Address of the GOT
-
-Each code module in your shared library should define the GOT as an
-external symbol:
-
-\c extern  _GLOBAL_OFFSET_TABLE_   ; in ELF
-\c extern  __GLOBAL_OFFSET_TABLE_  ; in BSD a.out
-
-At the beginning of any function in your shared library which plans
-to access your data or BSS sections, you must first calculate the
-address of the GOT. This is typically done by writing the function
-in this form:
-
-\c func:   push    ebp
-\c         mov     ebp,esp
-\c         push    ebx
-\c         call    .get_GOT
-\c .get_GOT:
-\c         pop     ebx
-\c         add     ebx,_GLOBAL_OFFSET_TABLE_+$$-.get_GOT wrt ..gotpc
-\c
-\c         ; the function body comes here
-\c
-\c         mov     ebx,[ebp-4]
-\c         mov     esp,ebp
-\c         pop     ebp
-\c         ret
-
-(For BSD, again, the symbol \c{_GLOBAL_OFFSET_TABLE} requires a
-second leading underscore.)
-
-The first two lines of this function are simply the standard C
-prologue to set up a stack frame, and the last three lines are
-standard C function epilogue. The third line, and the fourth to last
-line, save and restore the \c{EBX} register, because PIC shared
-libraries use this register to store the address of the GOT.
-
-The interesting bit is the \c{CALL} instruction and the following
-two lines. The \c{CALL} and \c{POP} combination obtains the address
-of the label \c{.get_GOT}, without having to know in advance where
-the program was loaded (since the \c{CALL} instruction is encoded
-relative to the current position). The \c{ADD} instruction makes use
-of one of the special PIC relocation types: \i{GOTPC relocation}.
-With the \i\c{WRT ..gotpc} qualifier specified, the symbol
-referenced (here \c{_GLOBAL_OFFSET_TABLE_}, the special symbol
-assigned to the GOT) is given as an offset from the beginning of the
-section. (Actually, \c{ELF} encodes it as the offset from the operand
-field of the \c{ADD} instruction, but NASM simplifies this
-deliberately, so you do things the same way for both \c{ELF} and
-\c{BSD}.) So the instruction then \e{adds} the beginning of the section,
-to get the real address of the GOT, and subtracts the value of
-\c{.get_GOT} which it knows is in \c{EBX}. Therefore, by the time
-that instruction has finished, \c{EBX} contains the address of the GOT.
-
-If you didn't follow that, don't worry: it's never necessary to
-obtain the address of the GOT by any other means, so you can put
-those three instructions into a macro and safely ignore them:
-
-\c %macro  get_GOT 0
-\c
-\c         call    %%getgot
-\c   %%getgot:
-\c         pop     ebx
-\c         add     ebx,_GLOBAL_OFFSET_TABLE_+$$-%%getgot wrt ..gotpc
-\c
-\c %endmacro
-
-\S{piclocal} Finding Your Local Data Items
-
-Having got the GOT, you can then use it to obtain the addresses of
-your data items. Most variables will reside in the sections you have
-declared; they can be accessed using the \I{GOTOFF
-relocation}\c{..gotoff} special \I\c{WRT ..gotoff}\c{WRT} type. The
-way this works is like this:
-
-\c         lea     eax,[ebx+myvar wrt ..gotoff]
-
-The expression \c{myvar wrt ..gotoff} is calculated, when the shared
-library is linked, to be the offset to the local variable \c{myvar}
-from the beginning of the GOT. Therefore, adding it to \c{EBX} as
-above will place the real address of \c{myvar} in \c{EAX}.
-
-If you declare variables as \c{GLOBAL} without specifying a size for
-them, they are shared between code modules in the library, but do
-not get exported from the library to the program that loaded it.
-They will still be in your ordinary data and BSS sections, so you
-can access them in the same way as local variables, using the above
-\c{..gotoff} mechanism.
-
-Note that due to a peculiarity of the way BSD \c{a.out} format
-handles this relocation type, there must be at least one non-local
-symbol in the same section as the address you're trying to access.
-
-
-\S{picextern} Finding External and Common Data Items
-
-If your library needs to get at an external variable (external to
-the \e{library}, not just to one of the modules within it), you must
-use the \I{GOT relocations}\I\c{WRT ..got}\c{..got} type to get at
-it. The \c{..got} type, instead of giving you the offset from the
-GOT base to the variable, gives you the offset from the GOT base to
-a GOT \e{entry} containing the address of the variable. The linker
-will set up this GOT entry when it builds the library, and the
-dynamic linker will place the correct address in it at load time. So
-to obtain the address of an external variable \c{extvar} in \c{EAX},
-you would code
-
-\c         mov     eax,[ebx+extvar wrt ..got]
-
-This loads the address of \c{extvar} out of an entry in the GOT. The
-linker, when it builds the shared library, collects together every
-relocation of type \c{..got}, and builds the GOT so as to ensure it
-has every necessary entry present.
-
-Common variables must also be accessed in this way.
-
-
-\S{picglobal} Exporting Symbols to the Library User
-
-If you want to export symbols to the user of the library, you have
-to declare whether they are functions or data, and if they are data,
-you have to give the size of the data item. This is because the
-dynamic linker has to build \I{PLT}\i{procedure linkage table}
-entries for any exported functions, and also moves exported data
-items away from the library's data section in which they were
-declared.
-
-So to export a function to users of the library, you must use
-
-\c global  func:function           ; declare it as a function
-\c
-\c func:   push    ebp
-\c
-\c         ; etc.
-
-And to export a data item such as an array, you would have to code
-
-\c global  array:data array.end-array      ; give the size too
-\c
-\c array:  resd    128
-\c .end:
-
-Be careful: If you export a variable to the library user, by
-declaring it as \c{GLOBAL} and supplying a size, the variable will
-end up living in the data section of the main program, rather than
-in your library's data section, where you declared it. So you will
-have to access your own global variable with the \c{..got} mechanism
-rather than \c{..gotoff}, as if it were external (which,
-effectively, it has become).
-
-Equally, if you need to store the address of an exported global in
-one of your data sections, you can't do it by means of the standard
-sort of code:
-
-\c dataptr:        dd      global_data_item        ; WRONG
-
-NASM will interpret this code as an ordinary relocation, in which
-\c{global_data_item} is merely an offset from the beginning of the
-\c{.data} section (or whatever); so this reference will end up
-pointing at your data section instead of at the exported global
-which resides elsewhere.
-
-Instead of the above code, then, you must write
-
-\c dataptr:        dd      global_data_item wrt ..sym
-
-which makes use of the special \c{WRT} type \I\c{WRT ..sym}\c{..sym}
-to instruct NASM to search the symbol table for a particular symbol
-at that address, rather than just relocating by section base.
-
-Either method will work for functions: referring to one of your
-functions by means of
-
-\c funcptr:        dd      my_function
-
-will give the user the address of the code you wrote, whereas
-
-\c funcptr:        dd      my_function wrt ..sym
-
-will give the address of the procedure linkage table for the
-function, which is where the calling program will \e{believe} the
-function lives. Either address is a valid way to call the function.
-
-
-\S{picproc} Calling Procedures Outside the Library
-
-Calling procedures outside your shared library has to be done by
-means of a \i\e{procedure linkage table}, or \i{PLT}. The PLT is
-placed at a known offset from where the library is loaded, so the
-library code can make calls to the PLT in a position-independent
-way. Within the PLT there is code to jump to offsets contained in
-the GOT, so function calls to other shared libraries or to routines
-in the main program can be transparently passed off to their real
-destinations.
-
-To call an external routine, you must use another special PIC
-relocation type, \I{PLT relocations}\i\c{WRT ..plt}. This is much
-easier than the GOT-based ones: you simply replace calls such as
-\c{CALL printf} with the PLT-relative version \c{CALL printf WRT
-..plt}.
-
-
-\S{link} Generating the Library File
-
-Having written some code modules and assembled them to \c{.o} files,
-you then generate your shared library with a command such as
-
-\c ld -shared -o library.so module1.o module2.o       # for ELF
-\c ld -Bshareable -o library.so module1.o module2.o   # for BSD
-
-For ELF, if your shared library is going to reside in system
-directories such as \c{/usr/lib} or \c{/lib}, it is usually worth
-using the \i\c{-soname} flag to the linker, to store the final
-library file name, with a version number, into the library:
-
-\c ld -shared -soname library.so.1 -o library.so.1.2 *.o
-
-You would then copy \c{library.so.1.2} into the library directory,
-and create \c{library.so.1} as a symbolic link to it.
-
-
-\C{mixsize} Mixing 16 and 32 Bit Code
-
-This chapter tries to cover some of the issues, largely related to
-unusual forms of addressing and jump instructions, encountered when
-writing operating system code such as protected-mode initialisation
-routines, which require code that operates in mixed segment sizes,
-such as code in a 16-bit segment trying to modify data in a 32-bit
-one, or jumps between different-size segments.
-
-
-\H{mixjump} Mixed-Size Jumps\I{jumps, mixed-size}
-
-\I{operating system, writing}\I{writing operating systems}The most
-common form of \i{mixed-size instruction} is the one used when
-writing a 32-bit OS: having done your setup in 16-bit mode, such as
-loading the kernel, you then have to boot it by switching into
-protected mode and jumping to the 32-bit kernel start address. In a
-fully 32-bit OS, this tends to be the \e{only} mixed-size
-instruction you need, since everything before it can be done in pure
-16-bit code, and everything after it can be pure 32-bit.
-
-This jump must specify a 48-bit far address, since the target
-segment is a 32-bit one. However, it must be assembled in a 16-bit
-segment, so just coding, for example,
-
-\c         jmp     0x1234:0x56789ABC       ; wrong!
-
-will not work, since the offset part of the address will be
-truncated to \c{0x9ABC} and the jump will be an ordinary 16-bit far
-one.
-
-The Linux kernel setup code gets round the inability of \c{as86} to
-generate the required instruction by coding it manually, using
-\c{DB} instructions. NASM can go one better than that, by actually
-generating the right instruction itself. Here's how to do it right:
-
-\c         jmp     dword 0x1234:0x56789ABC         ; right
-
-\I\c{JMP DWORD}The \c{DWORD} prefix (strictly speaking, it should
-come \e{after} the colon, since it is declaring the \e{offset} field
-to be a doubleword; but NASM will accept either form, since both are
-unambiguous) forces the offset part to be treated as far, in the
-assumption that you are deliberately writing a jump from a 16-bit
-segment to a 32-bit one.
-
-You can do the reverse operation, jumping from a 32-bit segment to a
-16-bit one, by means of the \c{WORD} prefix:
-
-\c         jmp     word 0x8765:0x4321      ; 32 to 16 bit
-
-If the \c{WORD} prefix is specified in 16-bit mode, or the \c{DWORD}
-prefix in 32-bit mode, they will be ignored, since each is
-explicitly forcing NASM into a mode it was in anyway.
-
-
-\H{mixaddr} Addressing Between Different-Size Segments\I{addressing,
-mixed-size}\I{mixed-size addressing}
-
-If your OS is mixed 16 and 32-bit, or if you are writing a DOS
-extender, you are likely to have to deal with some 16-bit segments
-and some 32-bit ones. At some point, you will probably end up
-writing code in a 16-bit segment which has to access data in a
-32-bit segment, or vice versa.
-
-If the data you are trying to access in a 32-bit segment lies within
-the first 64K of the segment, you may be able to get away with using
-an ordinary 16-bit addressing operation for the purpose; but sooner
-or later, you will want to do 32-bit addressing from 16-bit mode.
-
-The easiest way to do this is to make sure you use a register for
-the address, since any effective address containing a 32-bit
-register is forced to be a 32-bit address. So you can do
-
-\c         mov     eax,offset_into_32_bit_segment_specified_by_fs
-\c         mov     dword [fs:eax],0x11223344
-
-This is fine, but slightly cumbersome (since it wastes an
-instruction and a register) if you already know the precise offset
-you are aiming at. The x86 architecture does allow 32-bit effective
-addresses to specify nothing but a 4-byte offset, so why shouldn't
-NASM be able to generate the best instruction for the purpose?
-
-It can. As in \k{mixjump}, you need only prefix the address with the
-\c{DWORD} keyword, and it will be forced to be a 32-bit address:
-
-\c         mov     dword [fs:dword my_offset],0x11223344
-
-Also as in \k{mixjump}, NASM is not fussy about whether the
-\c{DWORD} prefix comes before or after the segment override, so
-arguably a nicer-looking way to code the above instruction is
-
-\c         mov     dword [dword fs:my_offset],0x11223344
-
-Don't confuse the \c{DWORD} prefix \e{outside} the square brackets,
-which controls the size of the data stored at the address, with the
-one \c{inside} the square brackets which controls the length of the
-address itself. The two can quite easily be different:
-
-\c         mov     word [dword 0x12345678],0x9ABC
-
-This moves 16 bits of data to an address specified by a 32-bit
-offset.
-
-You can also specify \c{WORD} or \c{DWORD} prefixes along with the
-\c{FAR} prefix to indirect far jumps or calls. For example:
-
-\c         call    dword far [fs:word 0x4321]
-
-This instruction contains an address specified by a 16-bit offset;
-it loads a 48-bit far pointer from that (16-bit segment and 32-bit
-offset), and calls that address.
-
-
-\H{mixother} Other Mixed-Size Instructions
-
-The other way you might want to access data might be using the
-string instructions (\c{LODSx}, \c{STOSx} and so on) or the
-\c{XLATB} instruction. These instructions, since they take no
-parameters, might seem to have no easy way to make them perform
-32-bit addressing when assembled in a 16-bit segment.
-
-This is the purpose of NASM's \i\c{a16}, \i\c{a32} and \i\c{a64} prefixes. If
-you are coding \c{LODSB} in a 16-bit segment but it is supposed to
-be accessing a string in a 32-bit segment, you should load the
-desired address into \c{ESI} and then code
-
-\c         a32     lodsb
-
-The prefix forces the addressing size to 32 bits, meaning that
-\c{LODSB} loads from \c{[DS:ESI]} instead of \c{[DS:SI]}. To access
-a string in a 16-bit segment when coding in a 32-bit one, the
-corresponding \c{a16} prefix can be used.
-
-The \c{a16}, \c{a32} and \c{a64} prefixes can be applied to any instruction
-in NASM's instruction table, but most of them can generate all the
-useful forms without them. The prefixes are necessary only for
-instructions with implicit addressing:
-\# \c{CMPSx} (\k{insCMPSB}),
-\# \c{SCASx} (\k{insSCASB}), \c{LODSx} (\k{insLODSB}), \c{STOSx}
-\# (\k{insSTOSB}), \c{MOVSx} (\k{insMOVSB}), \c{INSx} (\k{insINSB}),
-\# \c{OUTSx} (\k{insOUTSB}), and \c{XLATB} (\k{insXLATB}).
-\c{CMPSx}, \c{SCASx}, \c{LODSx}, \c{STOSx}, \c{MOVSx}, \c{INSx},
-\c{OUTSx}, and \c{XLATB}.
-Also, the
-various push and pop instructions (\c{PUSHA} and \c{POPF} as well as
-the more usual \c{PUSH} and \c{POP}) can accept \c{a16}, \c{a32} or \c{a64}
-prefixes to force a particular one of \c{SP}, \c{ESP} or \c{RSP} to be used
-as a stack pointer, in case the stack segment in use is a different
-size from the code segment.
-
-\c{PUSH} and \c{POP}, when applied to segment registers in 32-bit
-mode, also have the slightly odd behaviour that they push and pop 4
-bytes at a time, of which the top two are ignored and the bottom two
-give the value of the segment register being manipulated. To force
-the 16-bit behaviour of segment-register push and pop instructions,
-you can use the operand-size prefix \i\c{o16}:
-
-\c         o16 push    ss
-\c         o16 push    ds
-
-This code saves a doubleword of stack space by fitting two segment
-registers into the space which would normally be consumed by pushing
-one.
-
-(You can also use the \i\c{o32} prefix to force the 32-bit behaviour
-when in 16-bit mode, but this seems less useful.)
-
-
-\C{64bit} Writing 64-bit Code (Unix, Win64)
-
-This chapter attempts to cover some of the common issues involved when
-writing 64-bit code, to run under \i{Win64} or Unix.  It covers how to
-write assembly code to interface with 64-bit C routines, and how to
-write position-independent code for shared libraries.
-
-All 64-bit code uses a flat memory model, since segmentation is not
-available in 64-bit mode.  The one exception is the \c{FS} and \c{GS}
-registers, which still add their bases.
-
-Position independence in 64-bit mode is significantly simpler, since
-the processor supports \c{RIP}-relative addressing directly; see the
-\c{REL} keyword (\k{effaddr}).  On most 64-bit platforms, it is
-probably desirable to make that the default, using the directive
-\c{DEFAULT REL} (\k{default}).
-
-64-bit programming is relatively similar to 32-bit programming, but
-of course pointers are 64 bits long; additionally, all existing
-platforms pass arguments in registers rather than on the stack.
-Furthermore, 64-bit platforms use SSE2 by default for floating point.
-Please see the ABI documentation for your platform.
-
-64-bit platforms differ in the sizes of the fundamental datatypes, not
-just from 32-bit platforms but from each other.  If a specific size
-data type is desired, it is probably best to use the types defined in
-the Standard C header \c{<inttypes.h>}.
-
-In 64-bit mode, the default instruction size is still 32 bits.  When
-loading a value into a 32-bit register (but not an 8- or 16-bit
-register), the upper 32 bits of the corresponding 64-bit register are
-set to zero.
-
-\H{reg64} Register Names in 64-bit Mode
-
-NASM uses the following names for general-purpose registers in 64-bit
-mode, for 8-, 16-, 32- and 64-bit references, respectively:
-
-\c      AL/AH, CL/CH, DL/DH, BL/BH, SPL, BPL, SIL, DIL, R8B-R15B
-\c      AX, CX, DX, BX, SP, BP, SI, DI, R8W-R15W
-\c      EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI, R8D-R15D
-\c      RAX, RCX, RDX, RBX, RSP, RBP, RSI, RDI, R8-R15
-
-This is consistent with the AMD documentation and most other
-assemblers.  The Intel documentation, however, uses the names
-\c{R8L-R15L} for 8-bit references to the higher registers.  It is
-possible to use those names by definiting them as macros; similarly,
-if one wants to use numeric names for the low 8 registers, define them
-as macros.  The standard macro package \c{altreg} (see \k{pkg_altreg})
-can be used for this purpose.
-
-\H{id64} Immediates and Displacements in 64-bit Mode
-
-In 64-bit mode, immediates and displacements are generally only 32
-bits wide.  NASM will therefore truncate most displacements and
-immediates to 32 bits.
-
-The only instruction which takes a full \i{64-bit immediate} is:
-
-\c      MOV reg64,imm64
-
-NASM will produce this instruction whenever the programmer uses
-\c{MOV} with an immediate into a 64-bit register.  If this is not
-desirable, simply specify the equivalent 32-bit register, which will
-be automatically zero-extended by the processor, or specify the
-immediate as \c{DWORD}:
-
-\c      mov rax,foo             ; 64-bit immediate
-\c      mov rax,qword foo       ; (identical)
-\c      mov eax,foo             ; 32-bit immediate, zero-extended
-\c      mov rax,dword foo       ; 32-bit immediate, sign-extended
-
-The length of these instructions are 10, 5 and 7 bytes, respectively.
-
-The only instructions which take a full \I{64-bit displacement}64-bit
-\e{displacement} is loading or storing, using \c{MOV}, \c{AL}, \c{AX},
-\c{EAX} or \c{RAX} (but no other registers) to an absolute 64-bit address.
-Since this is a relatively rarely used instruction (64-bit code generally uses
-relative addressing), the programmer has to explicitly declare the
-displacement size as \c{QWORD}:
-
-\c      default abs
-\c
-\c      mov eax,[foo]           ; 32-bit absolute disp, sign-extended
-\c      mov eax,[a32 foo]       ; 32-bit absolute disp, zero-extended
-\c      mov eax,[qword foo]     ; 64-bit absolute disp
-\c
-\c      default rel
-\c
-\c      mov eax,[foo]           ; 32-bit relative disp
-\c      mov eax,[a32 foo]       ; d:o, address truncated to 32 bits(!)
-\c      mov eax,[qword foo]     ; error
-\c      mov eax,[abs qword foo] ; 64-bit absolute disp
-
-A sign-extended absolute displacement can access from -2 GB to +2 GB;
-a zero-extended absolute displacement can access from 0 to 4 GB.
-
-\H{unix64} Interfacing to 64-bit C Programs (Unix)
-
-On Unix, the 64-bit ABI is defined by the document:
-
-\W{http://www.nasm.us/links/unix64abi}\c{http://www.nasm.us/links/unix64abi}
-
-Although written for AT&T-syntax assembly, the concepts apply equally
-well for NASM-style assembly.  What follows is a simplified summary.
-
-The first six integer arguments (from the left) are passed in \c{RDI},
-\c{RSI}, \c{RDX}, \c{RCX}, \c{R8}, and \c{R9}, in that order.
-Additional integer arguments are passed on the stack.  These
-registers, plus \c{RAX}, \c{R10} and \c{R11} are destroyed by function
-calls, and thus are available for use by the function without saving.
-
-Integer return values are passed in \c{RAX} and \c{RDX}, in that order.
-
-Floating point is done using SSE registers, except for \c{long
-double}.  Floating-point arguments are passed in \c{XMM0} to \c{XMM7};
-return is \c{XMM0} and \c{XMM1}.  \c{long double} are passed on the
-stack, and returned in \c{ST0} and \c{ST1}.
-
-All SSE and x87 registers are destroyed by function calls.
-
-On 64-bit Unix, \c{long} is 64 bits.
-
-Integer and SSE register arguments are counted separately, so for the case of
-
-\c      void foo(long a, double b, int c)
-
-\c{a} is passed in \c{RDI}, \c{b} in \c{XMM0}, and \c{c} in \c{ESI}.
-
-\H{win64} Interfacing to 64-bit C Programs (Win64)
-
-The Win64 ABI is described at:
-
-\W{http://www.nasm.us/links/win64abi}\c{http://www.nasm.us/links/win64abi}
-
-What follows is a simplified summary.
-
-The first four integer arguments are passed in \c{RCX}, \c{RDX},
-\c{R8} and \c{R9}, in that order.  Additional integer arguments are
-passed on the stack.  These registers, plus \c{RAX}, \c{R10} and
-\c{R11} are destroyed by function calls, and thus are available for
-use by the function without saving.
-
-Integer return values are passed in \c{RAX} only.
-
-Floating point is done using SSE registers, except for \c{long
-double}.  Floating-point arguments are passed in \c{XMM0} to \c{XMM3};
-return is \c{XMM0} only.
-
-On Win64, \c{long} is 32 bits; \c{long long} or \c{_int64} is 64 bits.
-
-Integer and SSE register arguments are counted together, so for the case of
-
-\c      void foo(long long a, double b, int c)
-
-\c{a} is passed in \c{RCX}, \c{b} in \c{XMM1}, and \c{c} in \c{R8D}.
-
-\C{trouble} Troubleshooting
-
-This chapter describes some of the common problems that users have
-been known to encounter with NASM, and answers them. It also gives
-instructions for reporting bugs in NASM if you find a difficulty
-that isn't listed here.
-
-
-\H{problems} Common Problems
-
-\S{inefficient} NASM Generates \i{Inefficient Code}
-
-We sometimes get `bug' reports about NASM generating inefficient, or
-even `wrong', code on instructions such as \c{ADD ESP,8}. This is a
-deliberate design feature, connected to predictability of output:
-NASM, on seeing \c{ADD ESP,8}, will generate the form of the
-instruction which leaves room for a 32-bit offset. You need to code
-\I\c{BYTE}\c{ADD ESP,BYTE 8} if you want the space-efficient form of
-the instruction. This isn't a bug, it's user error: if you prefer to
-have NASM produce the more efficient code automatically enable
-optimization with the \c{-O} option (see \k{opt-O}).
-
-
-\S{jmprange} My Jumps are Out of Range\I{out of range, jumps}
-
-Similarly, people complain that when they issue \i{conditional
-jumps} (which are \c{SHORT} by default) that try to jump too far,
-NASM reports `short jump out of range' instead of making the jumps
-longer.
-
-This, again, is partly a predictability issue, but in fact has a
-more practical reason as well. NASM has no means of being told what
-type of processor the code it is generating will be run on; so it
-cannot decide for itself that it should generate \i\c{Jcc NEAR} type
-instructions, because it doesn't know that it's working for a 386 or
-above. Alternatively, it could replace the out-of-range short
-\c{JNE} instruction with a very short \c{JE} instruction that jumps
-over a \c{JMP NEAR}; this is a sensible solution for processors
-below a 386, but hardly efficient on processors which have good
-branch prediction \e{and} could have used \c{JNE NEAR} instead. So,
-once again, it's up to the user, not the assembler, to decide what
-instructions should be generated. See \k{opt-O}.
-
-
-\S{proborg} \i\c{ORG} Doesn't Work
-
-People writing \i{boot sector} programs in the \c{bin} format often
-complain that \c{ORG} doesn't work the way they'd like: in order to
-place the \c{0xAA55} signature word at the end of a 512-byte boot
-sector, people who are used to MASM tend to code
-
-\c         ORG 0
-\c
-\c         ; some boot sector code
-\c
-\c         ORG 510
-\c         DW 0xAA55
-
-This is not the intended use of the \c{ORG} directive in NASM, and
-will not work. The correct way to solve this problem in NASM is to
-use the \i\c{TIMES} directive, like this:
-
-\c         ORG 0
-\c
-\c         ; some boot sector code
-\c
-\c         TIMES 510-($-$$) DB 0
-\c         DW 0xAA55
-
-The \c{TIMES} directive will insert exactly enough zero bytes into
-the output to move the assembly point up to 510. This method also
-has the advantage that if you accidentally fill your boot sector too
-full, NASM will catch the problem at assembly time and report it, so
-you won't end up with a boot sector that you have to disassemble to
-find out what's wrong with it.
-
-
-\S{probtimes} \i\c{TIMES} Doesn't Work
-
-The other common problem with the above code is people who write the
-\c{TIMES} line as
-
-\c         TIMES 510-$ DB 0
-
-by reasoning that \c{$} should be a pure number, just like 510, so
-the difference between them is also a pure number and can happily be
-fed to \c{TIMES}.
-
-NASM is a \e{modular} assembler: the various component parts are
-designed to be easily separable for re-use, so they don't exchange
-information unnecessarily. In consequence, the \c{bin} output
-format, even though it has been told by the \c{ORG} directive that
-the \c{.text} section should start at 0, does not pass that
-information back to the expression evaluator. So from the
-evaluator's point of view, \c{$} isn't a pure number: it's an offset
-from a section base. Therefore the difference between \c{$} and 510
-is also not a pure number, but involves a section base. Values
-involving section bases cannot be passed as arguments to \c{TIMES}.
-
-The solution, as in the previous section, is to code the \c{TIMES}
-line in the form
-
-\c         TIMES 510-($-$$) DB 0
-
-in which \c{$} and \c{$$} are offsets from the same section base,
-and so their difference is a pure number. This will solve the
-problem and generate sensible code.
-
-
-\H{bugs} \i{Bugs}\I{reporting bugs}
-
-We have never yet released a version of NASM with any \e{known}
-bugs. That doesn't usually stop there being plenty we didn't know
-about, though. Any that you find should be reported firstly via the
-\i\c{bugtracker} at
-\W{http://www.nasm.us/}\c{http://www.nasm.us/}
-(click on "Bug Tracker"), or if that fails then through one of the
-contacts in \k{contact}.
-
-Please read \k{qstart} first, and don't report the bug if it's
-listed in there as a deliberate feature. (If you think the feature
-is badly thought out, feel free to send us reasons why you think it
-should be changed, but don't just send us mail saying `This is a
-bug' if the documentation says we did it on purpose.) Then read
-\k{problems}, and don't bother reporting the bug if it's listed
-there.
-
-If you do report a bug, \e{please} give us all of the following
-information:
-
-\b What operating system you're running NASM under. DOS, Linux,
-NetBSD, Win16, Win32, VMS (I'd be impressed), whatever.
-
-\b If you're running NASM under DOS or Win32, tell us whether you've
-compiled your own executable from the DOS source archive, or whether
-you were using the standard distribution binaries out of the
-archive. If you were using a locally built executable, try to
-reproduce the problem using one of the standard binaries, as this
-will make it easier for us to reproduce your problem prior to fixing
-it.
-
-\b Which version of NASM you're using, and exactly how you invoked
-it. Give us the precise command line, and the contents of the
-\c{NASMENV} environment variable if any.
-
-\b Which versions of any supplementary programs you're using, and
-how you invoked them. If the problem only becomes visible at link
-time, tell us what linker you're using, what version of it you've
-got, and the exact linker command line. If the problem involves
-linking against object files generated by a compiler, tell us what
-compiler, what version, and what command line or options you used.
-(If you're compiling in an IDE, please try to reproduce the problem
-with the command-line version of the compiler.)
-
-\b If at all possible, send us a NASM source file which exhibits the
-problem. If this causes copyright problems (e.g. you can only
-reproduce the bug in restricted-distribution code) then bear in mind
-the following two points: firstly, we guarantee that any source code
-sent to us for the purposes of debugging NASM will be used \e{only}
-for the purposes of debugging NASM, and that we will delete all our
-copies of it as soon as we have found and fixed the bug or bugs in
-question; and secondly, we would prefer \e{not} to be mailed large
-chunks of code anyway. The smaller the file, the better. A
-three-line sample file that does nothing useful \e{except}
-demonstrate the problem is much easier to work with than a
-fully fledged ten-thousand-line program. (Of course, some errors
-\e{do} only crop up in large files, so this may not be possible.)
-
-\b A description of what the problem actually \e{is}. `It doesn't
-work' is \e{not} a helpful description! Please describe exactly what
-is happening that shouldn't be, or what isn't happening that should.
-Examples might be: `NASM generates an error message saying Line 3
-for an error that's actually on Line 5'; `NASM generates an error
-message that I believe it shouldn't be generating at all'; `NASM
-fails to generate an error message that I believe it \e{should} be
-generating'; `the object file produced from this source code crashes
-my linker'; `the ninth byte of the output file is 66 and I think it
-should be 77 instead'.
-
-\b If you believe the output file from NASM to be faulty, send it to
-us. That allows us to determine whether our own copy of NASM
-generates the same file, or whether the problem is related to
-portability issues between our development platforms and yours. We
-can handle binary files mailed to us as MIME attachments, uuencoded,
-and even BinHex. Alternatively, we may be able to provide an FTP
-site you can upload the suspect files to; but mailing them is easier
-for us.
-
-\b Any other information or data files that might be helpful. If,
-for example, the problem involves NASM failing to generate an object
-file while TASM can generate an equivalent file without trouble,
-then send us \e{both} object files, so we can see what TASM is doing
-differently from us.
-
-
-\A{ndisasm} \i{Ndisasm}
-
-                  The Netwide Disassembler, NDISASM
-
-\H{ndisintro} Introduction
-
-
-The Netwide Disassembler is a small companion program to the Netwide
-Assembler, NASM. It seemed a shame to have an x86 assembler,
-complete with a full instruction table, and not make as much use of
-it as possible, so here's a disassembler which shares the
-instruction table (and some other bits of code) with NASM.
-
-The Netwide Disassembler does nothing except to produce
-disassemblies of \e{binary} source files. NDISASM does not have any
-understanding of object file formats, like \c{objdump}, and it will
-not understand \c{DOS .EXE} files like \c{debug} will. It just
-disassembles.
-
-
-\H{ndisstart} Getting Started: Installation
-
-See \k{install} for installation instructions. NDISASM, like NASM,
-has a \c{man page} which you may want to put somewhere useful, if you
-are on a Unix system.
-
-
-\H{ndisrun} Running NDISASM
-
-To disassemble a file, you will typically use a command of the form
-
-\c        ndisasm -b {16|32|64} filename
-
-NDISASM can disassemble 16-, 32- or 64-bit code equally easily,
-provided of course that you remember to specify which it is to work
-with. If no \i\c{-b} switch is present, NDISASM works in 16-bit mode
-by default. The \i\c{-u} switch (for USE32) also invokes 32-bit mode.
-
-Two more command line options are \i\c{-r} which reports the version
-number of NDISASM you are running, and \i\c{-h} which gives a short
-summary of command line options.
-
-
-\S{ndiscom} COM Files: Specifying an Origin
-
-To disassemble a \c{DOS .COM} file correctly, a disassembler must assume
-that the first instruction in the file is loaded at address \c{0x100},
-rather than at zero. NDISASM, which assumes by default that any file
-you give it is loaded at zero, will therefore need to be informed of
-this.
-
-The \i\c{-o} option allows you to declare a different origin for the
-file you are disassembling. Its argument may be expressed in any of
-the NASM numeric formats: decimal by default, if it begins with `\c{$}'
-or `\c{0x}' or ends in `\c{H}' it's \c{hex}, if it ends in `\c{Q}' it's
-\c{octal}, and if it ends in `\c{B}' it's \c{binary}.
-
-Hence, to disassemble a \c{.COM} file:
-
-\c        ndisasm -o100h filename.com
-
-will do the trick.
-
-
-\S{ndissync} Code Following Data: Synchronisation
-
-Suppose you are disassembling a file which contains some data which
-isn't machine code, and \e{then} contains some machine code. NDISASM
-will faithfully plough through the data section, producing machine
-instructions wherever it can (although most of them will look
-bizarre, and some may have unusual prefixes, e.g. `\c{FS OR AX,0x240A}'),
-and generating `DB' instructions ever so often if it's totally stumped.
-Then it will reach the code section.
-
-Supposing NDISASM has just finished generating a strange machine
-instruction from part of the data section, and its file position is
-now one byte \e{before} the beginning of the code section. It's
-entirely possible that another spurious instruction will get
-generated, starting with the final byte of the data section, and
-then the correct first instruction in the code section will not be
-seen because the starting point skipped over it. This isn't really
-ideal.
-
-To avoid this, you can specify a `\i\c{synchronisation}' point, or indeed
-as many synchronisation points as you like (although NDISASM can
-only handle 2147483647 sync points internally). The definition of a sync
-point is this: NDISASM guarantees to hit sync points exactly during
-disassembly. If it is thinking about generating an instruction which
-would cause it to jump over a sync point, it will discard that
-instruction and output a `\c{db}' instead. So it \e{will} start
-disassembly exactly from the sync point, and so you \e{will} see all
-the instructions in your code section.
-
-Sync points are specified using the \i\c{-s} option: they are measured
-in terms of the program origin, not the file position. So if you
-want to synchronize after 32 bytes of a \c{.COM} file, you would have to
-do
-
-\c        ndisasm -o100h -s120h file.com
-
-rather than
-
-\c        ndisasm -o100h -s20h file.com
-
-As stated above, you can specify multiple sync markers if you need
-to, just by repeating the \c{-s} option.
-
-
-\S{ndisisync} Mixed Code and Data: Automatic (Intelligent) Synchronisation
-\I\c{auto-sync}
-
-Suppose you are disassembling the boot sector of a \c{DOS} floppy (maybe
-it has a virus, and you need to understand the virus so that you
-know what kinds of damage it might have done you). Typically, this
-will contain a \c{JMP} instruction, then some data, then the rest of the
-code. So there is a very good chance of NDISASM being \e{misaligned}
-when the data ends and the code begins. Hence a sync point is
-needed.
-
-On the other hand, why should you have to specify the sync point
-manually? What you'd do in order to find where the sync point would
-be, surely, would be to read the \c{JMP} instruction, and then to use
-its target address as a sync point. So can NDISASM do that for you?
-
-The answer, of course, is yes: using either of the synonymous
-switches \i\c{-a} (for automatic sync) or \i\c{-i} (for intelligent
-sync) will enable \c{auto-sync} mode. Auto-sync mode automatically
-generates a sync point for any forward-referring PC-relative jump or
-call instruction that NDISASM encounters. (Since NDISASM is one-pass,
-if it encounters a PC-relative jump whose target has already been
-processed, there isn't much it can do about it...)
-
-Only PC-relative jumps are processed, since an absolute jump is
-either through a register (in which case NDISASM doesn't know what
-the register contains) or involves a segment address (in which case
-the target code isn't in the same segment that NDISASM is working
-in, and so the sync point can't be placed anywhere useful).
-
-For some kinds of file, this mechanism will automatically put sync
-points in all the right places, and save you from having to place
-any sync points manually. However, it should be stressed that
-auto-sync mode is \e{not} guaranteed to catch all the sync points, and
-you may still have to place some manually.
-
-Auto-sync mode doesn't prevent you from declaring manual sync
-points: it just adds automatically generated ones to the ones you
-provide. It's perfectly feasible to specify \c{-i} \e{and} some \c{-s}
-options.
-
-Another caveat with auto-sync mode is that if, by some unpleasant
-fluke, something in your data section should disassemble to a
-PC-relative call or jump instruction, NDISASM may obediently place a
-sync point in a totally random place, for example in the middle of
-one of the instructions in your code section. So you may end up with
-a wrong disassembly even if you use auto-sync. Again, there isn't
-much I can do about this. If you have problems, you'll have to use
-manual sync points, or use the \c{-k} option (documented below) to
-suppress disassembly of the data area.
-
-
-\S{ndisother} Other Options
-
-The \i\c{-e} option skips a header on the file, by ignoring the first N
-bytes. This means that the header is \e{not} counted towards the
-disassembly offset: if you give \c{-e10 -o10}, disassembly will start
-at byte 10 in the file, and this will be given offset 10, not 20.
-
-The \i\c{-k} option is provided with two comma-separated numeric
-arguments, the first of which is an assembly offset and the second
-is a number of bytes to skip. This \e{will} count the skipped bytes
-towards the assembly offset: its use is to suppress disassembly of a
-data section which wouldn't contain anything you wanted to see
-anyway.
-
-
-\H{ndisbugs} Bugs and Improvements
-
-There are no known bugs. However, any you find, with patches if
-possible, should be sent to
-\W{mailto:nasm-bugs@lists.sourceforge.net}\c{nasm-bugs@lists.sourceforge.net}, or to the
-developer's site at
-\W{http://www.nasm.us/}\c{http://www.nasm.us/}
-and we'll try to fix them. Feel free to send contributions and
-new features as well.
-
-\A{inslist} \i{Instruction List}
-
-\H{inslistintro} Introduction
-
-The following sections show the instructions which NASM currently supports. For each
-instruction, there is a separate entry for each supported addressing mode. The third
-column shows the processor type in which the instruction was introduced and,
- when appropriate, one or more usage flags.
-
-\& inslist.src
-
-\A{changelog} \i{NASM Version History}
-
-\& changes.src
--- a/nasmbuild/nasm-2.13rc9/doc/nasmlogo.eps	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,212 +0,0 @@
-%!PS-Adobe-3.0 EPSF-3.0
-%%Creator: cairo 1.10.2 (http://cairographics.org)
-%%CreationDate: Sun Feb 26 02:08:42 2012
-%%Pages: 1
-%%BoundingBox: 44 42 306 306
-%%DocumentData: Clean7Bit
-%%LanguageLevel: 2
-%%EndComments
-%%BeginProlog
-/cairo_eps_state save def
-/dict_count countdictstack def
-/op_count count 1 sub def
-userdict begin
-/q { gsave } bind def
-/Q { grestore } bind def
-/cm { 6 array astore concat } bind def
-/w { setlinewidth } bind def
-/J { setlinecap } bind def
-/j { setlinejoin } bind def
-/M { setmiterlimit } bind def
-/d { setdash } bind def
-/m { moveto } bind def
-/l { lineto } bind def
-/c { curveto } bind def
-/h { closepath } bind def
-/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
-      0 exch rlineto 0 rlineto closepath } bind def
-/S { stroke } bind def
-/f { fill } bind def
-/f* { eofill } bind def
-/n { newpath } bind def
-/W { clip } bind def
-/W* { eoclip } bind def
-/BT { } bind def
-/ET { } bind def
-/pdfmark where { pop globaldict /?pdfmark /exec load put }
-    { globaldict begin /?pdfmark /pop load def /pdfmark
-    /cleartomark load def end } ifelse
-/BDC { mark 3 1 roll /BDC pdfmark } bind def
-/EMC { mark /EMC pdfmark } bind def
-/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
-/Tj { show currentpoint cairo_store_point } bind def
-/TJ {
-  {
-    dup
-    type /stringtype eq
-    { show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
-  } forall
-  currentpoint cairo_store_point
-} bind def
-/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
-    cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
-/Tf { pop /cairo_font exch def /cairo_font_matrix where
-      { pop cairo_selectfont } if } bind def
-/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
-      /cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
-      /cairo_font where { pop cairo_selectfont } if } bind def
-/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
-      cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
-/g { setgray } bind def
-/rg { setrgbcolor } bind def
-/d1 { setcachedevice } bind def
-%%EndProlog
-%%Page: 1 1
-%%BeginPageSetup
-%%PageBoundingBox: 44 42 306 306
-%%EndPageSetup
-q 44 42 262 264 rectclip q
-0.501961 g
-279.656 304.422 m 265.238 304.422 253.559 292.734 253.559 278.32 c 
-253.559 273.254 255.023 268.539 257.523 264.535 c 240.906 247.918 l 
-220.031 266.812 192.352 278.32 161.977 278.32 c 96.988 278.32 44.297 
-225.633 44.297 160.64 c 44.297 95.648 96.988 42.965 161.977 42.965 c 
-226.969 42.965 279.656 95.648 279.656 160.64 c 279.656 191.012 268.145 
-218.695 249.254 239.574 c 265.871 256.191 l 269.875 253.691 274.59 
-252.223 279.66 252.223 c 294.07 252.223 305.754 263.906 305.754 278.32 
-c 305.754 292.73 294.07 304.422 279.656 304.422 c h
-279.656 304.422 m f
-1 g
-107.184 140.832 m 107 140.492 106.547 140.324 105.816 140.324 c 97.219 
-140.324 l 96.07 140.324 95.5 140.871 95.5 141.965 c 95.5 145.406 95.508 
-148.82 95.535 152.207 c 95.562 155.594 95.574 159.008 95.574 162.445 c 
-95.574 164.637 95.195 166.187 94.441 167.098 c 93.684 168.008 92.469 
-168.465 90.805 168.465 c 89.555 168.465 88.199 168.164 86.742 167.566 c 
-85.281 166.965 84.086 166.508 83.145 166.195 c 83.145 141.965 l 83.145 
-141.547 83.051 141.172 82.871 140.828 c 82.688 140.492 82.234 140.324 
-81.504 140.324 c 72.984 140.324 l 72.309 140.324 71.852 140.465 71.617 
-140.754 c 71.379 141.039 71.266 141.445 71.266 141.965 c 71.266 177.14 
-l 71.266 177.664 71.379 178.078 71.617 178.39 c 71.852 178.703 72.309 
-178.863 72.984 178.863 c 81.504 178.863 l 82.23 178.863 82.688 178.676 
-82.871 178.312 c 83.055 177.949 83.145 177.558 83.145 177.14 c 83.145 
-175.265 l 83.195 175.265 83.238 175.25 83.262 175.226 c 83.289 175.199 
-83.324 175.187 83.379 175.187 c 85.098 176.492 87.105 177.547 89.398 
-178.351 c 91.688 179.16 93.773 179.566 95.648 179.566 c 98.414 179.566 
-100.59 179.109 102.176 178.199 c 103.77 177.285 104.953 176.086 105.734 
-174.601 c 106.52 173.117 106.996 171.461 107.18 169.637 c 107.363 
-167.812 107.453 165.988 107.453 164.168 c 107.453 141.965 l 107.461 
-141.547 107.367 141.172 107.184 140.832 c h
-107.184 140.832 m f
-137.324 145.015 m 136.281 144.078 135.16 143.269 133.965 142.594 c 
-132.766 141.914 131.543 141.355 130.289 140.914 c 129.039 140.469 
-127.812 140.16 126.613 139.976 c 125.414 139.793 124.32 139.703 123.332 
-139.703 c 121.039 139.703 119.176 140.027 117.742 140.68 c 116.309 
-141.328 115.199 142.18 114.422 143.223 c 113.637 144.262 113.102 
-145.473 112.82 146.855 c 112.531 148.234 112.391 149.68 112.391 151.195 
-c 112.336 153.594 112.66 155.621 113.367 157.293 c 114.07 158.961 
-115.074 160.301 116.375 161.316 c 117.68 162.332 119.27 163.066 121.145 
-163.508 c 123.02 163.949 125.105 164.172 127.398 164.172 c 136.391 
-164.172 l 136.391 165.422 l 136.391 166.254 136.293 166.961 136.117 
-167.531 c 135.93 168.105 135.594 168.574 135.102 168.937 c 134.605 
-169.305 133.914 169.578 133.027 169.762 c 132.141 169.941 130.969 
-170.035 129.512 170.035 c 128.938 170.035 128.219 170.008 127.359 
-169.957 c 126.5 169.902 125.605 169.851 124.664 169.797 c 123.727 
-169.746 122.785 169.668 121.848 169.562 c 120.91 169.461 120.051 
-169.379 119.27 169.328 c 118.176 169.226 117.457 169.226 117.121 
-169.328 c 116.781 169.433 116.508 169.879 116.301 170.66 c 115.441 
-174.723 l 115.336 175.398 115.43 175.957 115.715 176.402 c 116 176.844 
-116.742 177.301 117.941 177.769 c 118.828 178.086 119.855 178.355 
-121.031 178.594 c 122.203 178.828 123.402 179.023 124.625 179.18 c 
-125.852 179.336 127.062 179.453 128.262 179.531 c 129.461 179.609 
-130.504 179.644 131.391 179.644 c 135.035 179.644 137.969 179.308 
-140.184 178.629 c 142.398 177.953 144.09 176.988 145.266 175.738 c 
-146.438 174.488 147.203 172.949 147.57 171.125 c 147.934 169.301 
-148.117 167.219 148.117 164.871 c 148.117 152.523 l 148.117 151.687 
-148.156 151.035 148.238 150.566 c 148.312 150.098 148.457 149.746 
-148.664 149.512 c 148.871 149.277 149.16 149.105 149.523 149.004 c 
-149.887 148.898 150.383 148.82 151.008 148.769 c 151.688 148.715 
-152.129 148.598 152.336 148.418 c 152.547 148.234 152.652 147.91 
-152.652 147.441 c 152.652 142.433 l 152.652 141.394 151.895 140.715 
-150.383 140.402 c 148.926 140.039 147.309 139.855 145.535 139.855 c 
-143.609 139.855 141.914 140.183 140.453 140.832 c 138.996 141.484 
-138.004 142.851 137.484 144.937 c h
-136.152 156.586 m 129.121 156.586 l 127.66 156.586 126.512 156.246 
-125.68 155.57 c 124.844 154.89 124.426 153.637 124.426 151.816 c 
-124.426 150.617 124.676 149.781 125.172 149.316 c 125.664 148.848 
-126.59 148.609 127.945 148.609 c 129.145 148.609 130.539 148.894 
-132.129 149.469 c 133.719 150.039 135.062 150.668 136.156 151.344 c 
-136.156 156.586 l h
-136.152 156.586 m f
-187.52 152.488 m 187.52 150.043 187.035 148 186.074 146.367 c 185.105 
-144.726 183.82 143.414 182.203 142.426 c 180.586 141.437 178.746 
-140.726 176.691 140.281 c 174.633 139.844 172.484 139.621 170.242 
-139.621 c 169.305 139.621 168.289 139.66 167.195 139.734 c 166.102 
-139.812 164.992 139.93 163.875 140.082 c 162.754 140.238 161.684 
-140.418 160.668 140.629 c 159.652 140.832 158.754 141.066 157.969 
-141.328 c 156.668 141.793 155.832 142.269 155.469 142.762 c 155.105 
-143.25 155.051 144.015 155.312 145.047 c 156.172 148.769 l 156.328 
-149.496 156.562 149.941 156.879 150.094 c 157.191 150.254 157.789 
-150.254 158.676 150.094 c 160.5 149.781 162.477 149.535 164.613 149.351 
-c 166.754 149.168 168.5 149.078 169.855 149.078 c 171.832 149.078 
-173.238 149.301 174.074 149.746 c 174.91 150.191 175.324 150.933 
-175.324 151.98 c 175.324 153.129 175.012 153.898 174.391 154.293 c 
-173.762 154.683 172.617 154.984 170.949 155.191 c 168.812 155.508 
-166.816 155.875 164.965 156.289 c 163.117 156.707 161.488 157.336 
-160.082 158.172 c 158.676 159.008 157.57 160.133 156.758 161.543 c 
-155.949 162.953 155.551 164.808 155.551 167.105 c 155.551 169.195 
-155.949 171.023 156.754 172.59 c 157.551 174.156 158.652 175.465 
-160.051 176.508 c 161.449 177.555 163.121 178.336 165.066 178.859 c 
-167.004 179.383 169.125 179.64 171.418 179.64 c 172.305 179.64 173.281 
-179.601 174.352 179.523 c 175.418 179.445 176.5 179.34 177.594 179.211 
-c 178.688 179.078 179.746 178.906 180.762 178.699 c 181.777 178.484 
-182.703 178.226 183.535 177.91 c 184.578 177.543 185.348 177.16 185.84 
-176.765 c 186.336 176.371 186.453 175.676 186.191 174.676 c 185.332 
-170.656 l 185.125 169.926 184.906 169.48 184.668 169.324 c 184.434 
-169.168 183.875 169.14 182.988 169.246 c 182.102 169.351 181.141 
-169.465 180.098 169.598 c 179.055 169.726 178.027 169.832 177.012 
-169.91 c 175.996 169.988 175.039 170.055 174.156 170.105 c 173.27 
-170.156 172.516 170.183 171.891 170.183 c 169.91 170.234 168.668 
-170.012 168.176 169.519 c 167.68 169.027 167.434 168.363 167.434 
-167.531 c 167.434 166.543 167.891 165.91 168.809 165.625 c 169.723 
-165.336 170.887 165.066 172.301 164.805 c 174.34 164.547 176.273 
-164.219 178.105 163.832 c 179.938 163.441 181.547 162.805 182.934 
-161.922 c 184.316 161.035 185.43 159.855 186.266 158.371 c 187.102 
-156.89 187.52 154.93 187.52 152.488 c h
-187.52 152.488 m f
-250.336 140.832 m 250.152 140.492 249.723 140.324 249.047 140.324 c 
-240.449 140.324 l 239.77 140.324 239.312 140.469 239.078 140.754 c 
-238.844 141.039 238.727 141.445 238.727 141.965 c 238.727 162.527 l 
-238.727 164.922 238.363 166.512 237.633 167.293 c 236.902 168.078 
-235.809 168.465 234.352 168.465 c 233.414 168.465 232.266 168.219 
-230.91 167.723 c 229.555 167.23 228.383 166.719 227.391 166.199 c 
-227.391 141.965 l 227.391 141.551 227.301 141.172 227.117 140.832 c 
-226.938 140.492 226.48 140.324 225.75 140.324 c 217.152 140.324 l 
-216.523 140.324 216.098 140.469 215.863 140.754 c 215.629 141.039 
-215.512 141.445 215.512 141.965 c 215.512 162.762 l 215.512 164.949 
-215.16 166.445 214.449 167.254 c 213.738 168.062 212.676 168.469 
-211.262 168.469 c 210.312 168.469 209.172 168.234 207.836 167.765 c 
-206.496 167.293 205.277 166.773 204.176 166.199 c 204.176 141.969 l 
-204.176 141.551 204.07 141.176 203.863 140.832 c 203.656 140.496 
-203.191 140.328 202.465 140.328 c 193.926 140.328 l 193.301 140.328 
-192.875 140.469 192.641 140.758 c 192.406 141.039 192.297 141.449 
-192.297 141.969 c 192.297 177.144 l 192.297 177.664 192.406 178.082 
-192.641 178.394 c 192.875 178.707 193.301 178.867 193.926 178.867 c 
-202.465 178.867 l 203.191 178.867 203.656 178.68 203.863 178.316 c 
-204.07 177.953 204.176 177.562 204.176 177.144 c 204.176 175.348 l 
-204.332 175.269 l 206 176.621 207.824 177.68 209.801 178.433 c 211.781 
-179.187 213.789 179.566 215.824 179.566 c 218.168 179.566 220.223 
-179.14 221.996 178.277 c 223.766 177.418 225.074 176.074 225.906 174.25 
-c 227.73 175.762 229.801 177.027 232.117 178.043 c 234.438 179.058 
-236.77 179.566 239.113 179.566 c 241.879 179.566 244.027 179.109 
-245.562 178.199 c 247.102 177.285 248.25 176.101 249.004 174.644 c 
-249.758 173.183 250.215 171.543 250.371 169.719 c 250.527 167.894 
-250.605 166.07 250.605 164.246 c 250.605 141.965 l 250.609 141.547 
-250.52 141.172 250.336 140.832 c h
-250.336 140.832 m f
-Q Q
-showpage
-%%Trailer
-count op_count sub {pop} repeat
-countdictstack dict_count sub {end} repeat
-cairo_eps_state restore
-%%EOF
--- a/nasmbuild/nasm-2.13rc9/doc/opt_var.txt	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-                     NASM Optimizer Usage of
-              Certain Variables to Control Assembly
-
-                  prepared by:  John R Coffman
-                       date:  07-Mar-2005
-
-
-GLOBAL variables:
-        optimizing      -1 flags nasm 0.98 compatible operation;
-                            offsets usually are explicit (short/near)
-                            no optimization passes
-                        0 flags non-optimized assembly; forward
-                            references generate long offsets; always
-                            assembles
-                            no optimization passes
-                        2 or more specifies optmization passes.  5 is
-                            the actual recommended minimum setting
-                            optimization passes (2 or more, plus
-                            passes 1 and 2 will be required)
-
-
-        pass0           0 flags an optimizer pass (multiple passes)
-                        1 flags pass1 (define labels)
-                        2 flags pass2 (spit out code)
-
-
-LOCAL variables:        local to 'assemble_file' (nasm.c)
-
-        pass_max        2 for non-optimized assembly
-                        4 or more for optimized assembly
-
-        pass            index of the FOR loop (1..pass_max)
-                        with optimized assembly, this variable is
-                            advanced to 'pass_max - 1' in the logic
-                            at the end of the loop to terminate
-                            an optimized assembly before all passes
-                            are used; i.e., when convergence has 
-                            occurred
-                
-
-        pass1           flag for making parts of the assembler do
-                            pass 1 behaviors on optimizer passes
-
-        pass2           flag for making parts of the assembler do
-                            pass 2 behaviors on optimizer passes
-
-        pass_cnt        benign counter for counting the actual
-                            number of passes taken.  Since 'pass'
-                            may be jerked upward early on optimized
-                            assembly, it does not accurately reflect
-                            the number of passes taken.
-                        always ends at 2 for non-optimized assembly
-
-
-
-        How the variables sequence:
-
-
-NON-OPTIMIZED assembly:
-
-                
-        pass0           1  2        all indicate, pass 1 and pass 2
-        pass1           1  2
-        pass2           1  2
-
-        pass            1  2
-   ----------------------------------------
-
-        pass_max        pre-set to 2
-        pass_cnt        ends at 2
-
-
-OPTIMIZED assembly:
-
-        optimizing      set to 2 or greater
-
-        pass0           0  0  0  0  0 ... 0  0  1  2
-        pass1           1  1  1  1  1 ... 1  1  1  2
-        pass2           1  2  2  2  2 ... 2  2  2  2
-
-        pass            1  2  3  4  5 ... 7  8  9  12
-
-        pass_max        pre-set to, say, 12
-        pass_cnt        ends at 10 for this assembly
-
->From pass_cnt, the reported number of passes will be 1+8+1, meaning 
-8 optimization passes, plus pass 1, plus pass 2.
-
-Subroutines may check 'pass0' to see if an optimizer pass is in
-progress (pass0==0).  Many have arguments to tell what pass is in
-progress.  But these variables are passed in as 'pass1' or 'pass2'.
-
->From the sequences above, 'pass' bears no relation to the desired
-pass 1 or pass 2 behavior of the assembler.  'pass1' is used to tell
-parts of the assembler, on multiple occasions, that pass 1 is in
-progress, and only once that pass 2 is being performed.  Other parts
-of the assembler need to be told only once that pass 1 is being
-performed, but may be told multiple times that pass 2 is being done.
-
-For instance, the preprocessor reset operation looks at pass1, and it
-thinks many pass 1 resets are being done, but only one pass 2 reset
-is done.  Also, certain errors are non-fatal on pass 1, but fatal on
-pass 2; hence, they are tied to the 'pass1' variable to determine the
-assembler pass number.
-
-Further, segment definitions look at the 'pass2' variable, since they
-do some initialization on pass 1, but are pretty much no-ops on pass
-2.  Hence, they should see pass 1 only once, but may see pass 2
-multiple times.
-
-
- 
-[end]
-
--- a/nasmbuild/nasm-2.13rc9/doc/psfonts.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-#!/usr/bin/perl
-#
-# Font metrics for the PS code generator
-#
-
-# These files are generated from AFM files
-require 'metrics/ptmr8a.ph';	# Times-Roman
-require 'metrics/ptmb8a.ph';	# Times-Bold
-require 'metrics/ptmri8a.ph';	# Times-Italic
-require 'metrics/ptmbi8a.ph';	# Times-BoldItalic
-require 'metrics/pcrr8a.ph';	# Courier
-require 'metrics/pcrb8a.ph';	# Courier-Bold
-require 'metrics/phvr8a.ph';	# Helvetica
-require 'metrics/phvro8a.ph';	# Helvetica-Oblique
-require 'metrics/phvb8a.ph';	# Helvetica-Bold
-require 'metrics/phvbo8a.ph';	# Helvetica-BoldOblique
-
-# The fonts we want to use for various things
-# The order is: <normal> <emphatic> <code>
-
-if ( 1 ) {
-    # Times family fonts
-
-    %TitlFont = (name => 'tfont',
-		 leading => 24,
-	     fonts => [[20,\%PS_Times_Bold],
-		       [20,\%PS_Times_BoldItalic],
-		       [20,\%PS_Courier_Bold]]);
-    %ChapFont = (name => 'cfont',
-		 leading => 21.6,
-		 fonts => [[18,\%PS_Times_Bold],
-			   [18,\%PS_Times_BoldItalic],
-			   [18,\%PS_Courier_Bold]]);
-    %HeadFont = (name => 'hfont',
-		 leading => 16.8,
-		 fonts => [[14,\%PS_Times_Bold],
-			   [14,\%PS_Times_BoldItalic],
-			   [14,\%PS_Courier_Bold]]);
-    %SubhFont = (name => 'sfont',
-		 leading => 14.4,
-		 fonts => [[12,\%PS_Times_Bold],
-			   [12,\%PS_Times_BoldItalic],
-			   [12,\%PS_Courier_Bold]]);
-    %BodyFont = (name => 'bfont',
-		 leading => 12,
-		 fonts => [[10,\%PS_Times_Roman],
-			   [10,\%PS_Times_Italic],
-			   [10,\%PS_Courier]]);
-} elsif ( 0 ) {
-    # Helvetica family fonts
-
-    %TitlFont = (name => 'tfont',
-		 leading => 24,
-		 fonts => [[20,\%PS_Helvetica_Bold],
-			   [20,\%PS_Helvetica_BoldOblique],
-			   [20,\%PS_Courier_Bold]]);
-    %ChapFont = (name => 'cfont',
-		 leading => 21.6,
-		 fonts => [[18,\%PS_Helvetica_Bold],
-			   [18,\%PS_Helvetica_BoldOblique],
-			   [18,\%PS_Courier_Bold]]);
-    %HeadFont = (name => 'hfont',
-		 leading => 16.8,
-		 fonts => [[14,\%PS_Helvetica_Bold],
-			   [14,\%PS_Helvetica_BoldOblique],
-			   [14,\%PS_Courier_Bold]]);
-    %SubhFont = (name => 'sfont',
-		 leading => 14.4,
-		 fonts => [[12,\%PS_Helvetica_Bold],
-			   [12,\%PS_Helvetica_BoldOblique],
-			   [12,\%PS_Courier_Bold]]);
-    %BodyFont = (name => 'bfont',
-		 leading => 12,
-		 fonts => [[10,\%PS_Helvetica],
-			   [10,\%PS_Helvetica_Oblique],
-			   [10,\%PS_Courier]]);
-} else {
-    # Body text Times; headings Helvetica
-    %TitlFont = (name => 'tfont',
-		 leading => 24,
-		 fonts => [[20,\%PS_Helvetica_Bold],
-			   [20,\%PS_Helvetica_BoldOblique],
-			   [20,\%PS_Courier_Bold]]);
-    %ChapFont = (name => 'cfont',
-		 leading => 21.6,
-		 fonts => [[18,\%PS_Helvetica_Bold],
-			   [18,\%PS_Helvetica_BoldOblique],
-			   [18,\%PS_Courier_Bold]]);
-    %HeadFont = (name => 'hfont',
-		 leading => 16.8,
-		 fonts => [[14,\%PS_Helvetica_Bold],
-			   [14,\%PS_Helvetica_BoldOblique],
-			   [14,\%PS_Courier_Bold]]);
-    %SubhFont = (name => 'sfont',
-		 leading => 14.4,
-		 fonts => [[12,\%PS_Helvetica_Bold],
-			   [12,\%PS_Helvetica_BoldOblique],
-			   [12,\%PS_Courier_Bold]]);
-    %BodyFont = (name => 'bfont',
-		 leading => 12,
-		 fonts => [[10,\%PS_Times_Roman],
-			   [10,\%PS_Times_Italic],
-			   [10,\%PS_Courier]]);
-}
-
-#
-# List of all fontsets; used to compute the list of fonts needed
-#
-@AllFonts = ( \%TitlFont, \%ChapFont, \%HeadFont, \%SubhFont, \%BodyFont );
-
-# OK
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/pswidth.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-#!/usr/bin/perl
-#
-# Get the width of a PostScript string in font units
-# (1000 font units == the font point height) given a set of
-# font metrics and an encoding vector.
-#
-sub ps_width($$$) {
-    my($str, $met, $encoding) = @_;
-    my($w) = 0;
-    my($i,$c,$p);
-
-    $l = length($str);
-    undef $p;
-    for ( $i = 0 ; $i < $l ; $i++ ) {
-	$c = substr($str,$i,1);
-	$w += $$met{widths}{$encoding->[ord($c)]};
-	# The standard PostScript "show" operator doesn't do kerning.
-	# $w += $$met{kern}{$p.$c};
-	$p = $c;
-    }
-    
-    return $w;
-}
-
-# OK
-1;
--- a/nasmbuild/nasm-2.13rc9/doc/rdsrc.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1531 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##
-##   Copyright 1996-2016 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-
-# Read the source-form of the NASM manual and generate the various
-# output forms.
-
-# TODO:
-#
-# Ellipsis support would be nice.
-
-# Source-form features:
-# ---------------------
-#
-# Bullet \b
-#   Bullets the paragraph. Rest of paragraph is indented to cope. In
-#   HTML, consecutive groups of bulleted paragraphs become unordered
-#   lists.
-#
-# Emphasis \e{foobar}
-#   produces `_foobar_' in text and italics in HTML, PS, RTF
-#
-# Inline code \c{foobar}
-#   produces ``foobar'' in text, and fixed-pitch font in HTML, PS, RTF
-#
-# Display code
-# \c  line one
-# \c   line two
-#   produces fixed-pitch font where appropriate, and doesn't break
-#   pages except sufficiently far into the middle of a display.
-#
-# Chapter, header and subheader
-# \C{intro} Introduction
-# \H{whatsnasm} What is NASM?
-# \S{free} NASM Is Free
-#   dealt with as appropriate. Chapters begin on new sides, possibly
-#   even new _pages_. (Sub)?headers are good places to begin new
-#   pages. Just _after_ a (sub)?header isn't.
-#   The keywords can be substituted with \K and \k.
-#
-# Keyword \K{cintro} \k{cintro}
-#   Expands to `Chapter 1', `Section 1.1', `Section 1.1.1'. \K has an
-#   initial capital whereas \k doesn't. In HTML, will produce
-#   hyperlinks.
-#
-# Web link \W{http://foobar/}{text} or \W{mailto:me@here}\c{me@here}
-#   the \W prefix is ignored except in HTML; in HTML the last part
-#   becomes a hyperlink to the first part.
-#
-# Literals \{ \} \\
-#   In case it's necessary, they expand to the real versions.
-#
-# Nonbreaking hyphen \-
-#   Need more be said?
-#
-# Source comment \#
-#   Causes everything after it on the line to be ignored by the
-#   source-form processor.
-#
-# Indexable word \i{foobar} (or \i\e{foobar} or \i\c{foobar}, equally)
-#   makes word appear in index, referenced to that point
-#   \i\c comes up in code style even in the index; \i\e doesn't come
-#   up in emphasised style.
-#
-# Indexable non-displayed word \I{foobar} or \I\c{foobar}
-#   just as \i{foobar} except that nothing is displayed for it
-#
-# Index rewrite
-# \IR{foobar} \c{foobar} operator, uses of
-#   tidies up the appearance in the index of something the \i or \I
-#   operator was applied to
-#
-# Index alias
-# \IA{foobar}{bazquux}
-#   aliases one index tag (as might be supplied to \i or \I) to
-#   another, so that \I{foobar} has the effect of \I{bazquux}, and
-#   \i{foobar} has the effect of \I{bazquux}foobar
-#
-# Metadata
-# \M{key}{something}
-#   defines document metadata, such as authorship, title and copyright;
-#   different output formats use this differently.
-#
-# Include subfile
-# \&{filename}
-#  Includes filename. Recursion is allowed.
-#
-
-use File::Spec;
-
-@include_path = ();
-
-$diag = 1, shift @ARGV if $ARGV[0] eq "-d";
-while ($ARGV[0] =~ /^\-[Ii](.*)$/) {
-    push(@include_path, $1);
-    shift;
-}
-
-$out_format = shift(@ARGV);
-@files = @ARGV;
-@files = ('-') unless(scalar(@files));
-
-$| = 1;
-
-$tstruct_previtem = $node = "Top";
-$nodes = ($node);
-$tstruct_level{$tstruct_previtem} = 0;
-$tstruct_last[$tstruct_level{$tstruct_previtem}] = $tstruct_previtem;
-$MAXLEVEL = 10;  # really 3, but play safe ;-)
-
-# Read the file; pass a paragraph at a time to the paragraph processor.
-print "Reading input...";
-$pname = "para000000";
-@pnames = @pflags = ();
-$para = undef;
-foreach $file (@files) {
-  &include($file);
-}
-&got_para($para);
-print "done.\n";
-
-# Now we've read in the entire document and we know what all the
-# heading keywords refer to. Go through and fix up the \k references.
-print "Fixing up cross-references...";
-&fixup_xrefs;
-print "done.\n";
-
-# Sort the index tags, according to the slightly odd order I've decided on.
-print "Sorting index tags...";
-&indexsort;
-print "done.\n";
-
-if ($diag) {
-  print "Writing index-diagnostic file...";
-  &indexdiag;
-  print "done.\n";
-}
-
-# OK. Write out the various output files.
-if ($out_format eq 'txt') {
-    print "Producing text output: ";
-    &write_txt;
-    print "done.\n";
-} elsif ($out_format eq 'html') {
-    print "Producing HTML output: ";
-    &write_html;
-    print "done.\n";
-} elsif ($out_format eq 'texi') {
-    print "Producing Texinfo output: ";
-    &write_texi;
-    print "done.\n";
-} elsif ($out_format eq 'hlp') {
-    print "Producing WinHelp output: ";
-    &write_hlp;
-    print "done.\n";
-} elsif ($out_format eq 'dip') {
-    print "Producing Documentation Intermediate Paragraphs: ";
-    &write_dip;
-    print "done.\n";
-} else {
-    die "$0: unknown output format: $out_format\n";
-}
-
-sub untabify($) {
-  my($s) = @_;
-  my $o = '';
-  my($c, $i, $p);
-
-  $p = 0;
-  for ($i = 0; $i < length($s); $i++) {
-    $c = substr($s, $i, 1);
-    if ($c eq "\t") {
-      do {
-	$o .= ' ';
-	$p++;
-      } while ($p & 7);
-    } else {
-      $o .= $c;
-      $p++;
-    }
-  }
-  return $o;
-}
-sub read_line {
-  local $_ = shift;
-  $_ = &untabify($_);
-  if (/\\& (\S+)/) {
-     &include($1);
-  } else {
-     &get_para($_);
-  }
-}
-sub get_para($_) {
-  chomp;
-  if (!/\S/ || /^\\(IA|IR|M)/) { # special case: \IA \IR \M imply new-paragraph
-    &got_para($para);
-    $para = undef;
-  }
-  if (/\S/) {
-    s/\\#.*$//; # strip comments
-    $para .= " " . $_;
-  }
-}
-sub include {
-  my $name = shift;
-  my $F;
-
-  if ($name eq '-') {
-    open($F, '<-');		# stdin
-  } else {
-    my $found = 0;
-    foreach my $idir ( File::Spec->curdir, @include_path ) {
-	my $fpath = File::Spec->catfile($idir, $name);
-      if (open($F, '<', $fpath)) {
-	$found = 1;
-	last;
-      }
-    }
-    die "Cannot open $name: $!\n" unless ($found);
-  }
-  while (defined($_ = <$F>)) {
-     &read_line($_);
-  }
-  close($F);
-}
-sub got_para {
-  local ($_) = @_;
-  my $pflags = "", $i, $w, $l, $t;
-  return if !/\S/;
-
-  @$pname = ();
-
-  # Strip off _leading_ spaces, then determine type of paragraph.
-  s/^\s*//;
-  $irewrite = undef;
-  if (/^\\c[^{]/) {
-    # A code paragraph. The paragraph-array will contain the simple
-    # strings which form each line of the paragraph.
-    $pflags = "code";
-    while (/^\\c (([^\\]|\\[^c])*)(.*)$/) {
-      $l = $1;
-      $_ = $3;
-      $l =~ s/\\\{/\{/g;
-      $l =~ s/\\\}/}/g;
-      $l =~ s/\\\\/\\/g;
-      push @$pname, $l;
-    }
-    $_ = ''; # suppress word-by-word code
-  } elsif (/^\\C/) {
-    # A chapter heading. Define the keyword and allocate a chapter
-    # number.
-    $cnum++;
-    $hnum = 0;
-    $snum = 0;
-    $xref = "chapter-$cnum";
-    $pflags = "chap $cnum :$xref";
-    die "badly formatted chapter heading: $_\n" if !/^\\C\{([^\}]*)\}\s*(.*)$/;
-    $refs{$1} = "chapter $cnum";
-    $node = "Chapter $cnum";
-    &add_item($node, 1);
-    $xrefnodes{$node} = $xref; $nodexrefs{$xref} = $node;
-    $xrefs{$1} = $xref;
-    $_ = $2;
-    # the standard word-by-word code will happen next
-  } elsif (/^\\A/) {
-    # An appendix heading. Define the keyword and allocate an appendix
-    # letter.
-    $cnum++;
-    $cnum = 'A' if $cnum =~ /[0-9]+/;
-    $hnum = 0;
-    $snum = 0;
-    $xref = "appendix-$cnum";
-    $pflags = "appn $cnum :$xref";
-    die "badly formatted appendix heading: $_\n" if !/^\\A\{([^\}]*)}\s*(.*)$/;
-    $refs{$1} = "appendix $cnum";
-    $node = "Appendix $cnum";
-    &add_item($node, 1);
-    $xrefnodes{$node} = $xref; $nodexrefs{$xref} = $node;
-    $xrefs{$1} = $xref;
-    $_ = $2;
-    # the standard word-by-word code will happen next
-  } elsif (/^\\H/) {
-    # A major heading. Define the keyword and allocate a section number.
-    $hnum++;
-    $snum = 0;
-    $xref = "section-$cnum.$hnum";
-    $pflags = "head $cnum.$hnum :$xref";
-    die "badly formatted heading: $_\n" if !/^\\[HP]{([^\}]*)}\s*(.*)$/;
-    $refs{$1} = "section $cnum.$hnum";
-    $node = "Section $cnum.$hnum";
-    &add_item($node, 2);
-    $xrefnodes{$node} = $xref; $nodexrefs{$xref} = $node;
-    $xrefs{$1} = $xref;
-    $_ = $2;
-    # the standard word-by-word code will happen next
-  } elsif (/^\\S/) {
-    # A sub-heading. Define the keyword and allocate a section number.
-    $snum++;
-    $xref = "section-$cnum.$hnum.$snum";
-    $pflags = "subh $cnum.$hnum.$snum :$xref";
-    die "badly formatted subheading: $_\n" if !/^\\S\{([^\}]*)\}\s*(.*)$/;
-    $refs{$1} = "section $cnum.$hnum.$snum";
-    $node = "Section $cnum.$hnum.$snum";
-    &add_item($node, 3);
-    $xrefnodes{$node} = $xref; $nodexrefs{$xref} = $node;
-    $xrefs{$1} = $xref;
-    $_ = $2;
-    # the standard word-by-word code will happen next
-  } elsif (/^\\IR/) {
-    # An index-rewrite.
-    die "badly formatted index rewrite: $_\n" if !/^\\IR\{([^\}]*)\}\s*(.*)$/;
-    $irewrite = $1;
-    $_ = $2;
-    # the standard word-by-word code will happen next
-  } elsif (/^\\IA/) {
-    # An index-alias.
-    die "badly formatted index alias: $_\n" if !/^\\IA\{([^\}]*)}\{([^\}]*)\}\s*$/;
-    $idxalias{$1} = $2;
-    return; # avoid word-by-word code
-  } elsif (/^\\M/) {
-    # Metadata
-    die "badly formed metadata: $_\n" if !/^\\M\{([^\}]*)}\{([^\}]*)\}\s*$/;
-    $metadata{$1} = $2;
-    return; # avoid word-by-word code
-  } elsif (/^\\b/) {
-    # A bulleted paragraph. Strip off the initial \b and let the
-    # word-by-word code take care of the rest.
-    $pflags = "bull";
-    s/^\\b\s*//;
-  } else {
-    # A normal paragraph. Just set $pflags: the word-by-word code does
-    # the rest.
-    $pflags = "norm";
-  }
-
-  # The word-by-word code: unless @$pname is already defined (which it
-  # will be in the case of a code paragraph), split the paragraph up
-  # into words and push each on @$pname.
-  #
-  # Each thing pushed on @$pname should have a two-character type
-  # code followed by the text.
-  #
-  # Type codes are:
-  # "n " for normal
-  # "da" for a dash
-  # "es" for first emphasised word in emphasised bit
-  # "e " for emphasised in mid-emphasised-bit
-  # "ee" for last emphasised word in emphasised bit
-  # "eo" for single (only) emphasised word
-  # "c " for code
-  # "k " for cross-ref
-  # "kK" for capitalised cross-ref
-  # "w " for Web link
-  # "wc" for code-type Web link
-  # "x " for beginning of resolved cross-ref; generates no visible output,
-  #      and the text is the cross-reference code
-  # "xe" for end of resolved cross-ref; text is same as for "x ".
-  # "i " for point to be indexed: the text is the internal index into the
-  #      index-items arrays
-  # "sp" for space
-  while (/\S/) {
-    s/^\s*//, push @$pname, "sp" if /^\s/;
-    $indexing = $qindex = 0;
-    if (/^(\\[iI])?\\c/) {
-      $qindex = 1 if $1 eq "\\I";
-      $indexing = 1, s/^\\[iI]// if $1;
-      s/^\\c//;
-      die "badly formatted \\c: \\c$_\n" if !/\{(([^\\}]|\\.)*)\}(.*)$/;
-      $w = $1;
-      $_ = $3;
-      $w =~ s/\\\{/\{/g;
-      $w =~ s/\\\}/\}/g;
-      $w =~ s/\\-/-/g;
-      $w =~ s/\\\\/\\/g;
-      (push @$pname,"i"),$lastp = $#$pname if $indexing;
-      push @$pname,"c $w" if !$qindex;
-      $$pname[$lastp] = &addidx($node, $w, "c $w") if $indexing;
-    } elsif (/^\\[iIe]/) {
-      /^(\\[iI])?(\\e)?/;
-      $emph = 0;
-      $qindex = 1 if $1 eq "\\I";
-      $indexing = 1, $type = "\\i" if $1;
-      $emph = 1, $type = "\\e" if $2;
-      s/^(\\[iI])?(\\e?)//;
-      die "badly formatted $type: $type$_\n" if !/\{(([^\\}]|\\.)*)\}(.*)$/;
-      $w = $1;
-      $_ = $3;
-      $w =~ s/\\\{/\{/g;
-      $w =~ s/\\\}/\}/g;
-      $w =~ s/\\-/-/g;
-      $w =~ s/\\\\/\\/g;
-      $t = $emph ? "es" : "n ";
-      @ientry = ();
-      (push @$pname,"i"),$lastp = $#$pname if $indexing;
-      foreach $i (split /\s+/,$w) {  # \e and \i can be multiple words
-        push @$pname,"$t$i","sp" if !$qindex;
-	($ii=$i) =~ tr/A-Z/a-z/, push @ientry,"n $ii","sp" if $indexing;
-	$t = $emph ? "e " : "n ";
-      }
-      $w =~ tr/A-Z/a-z/, pop @ientry if $indexing;
-      $$pname[$lastp] = &addidx($node, $w, @ientry) if $indexing;
-      pop @$pname if !$qindex; # remove final space
-      if (substr($$pname[$#$pname],0,2) eq "es" && !$qindex) {
-        substr($$pname[$#$pname],0,2) = "eo";
-      } elsif ($emph && !$qindex) {
-        substr($$pname[$#$pname],0,2) = "ee";
-      }
-    } elsif (/^\\[kK]/) {
-      $t = "k ";
-      $t = "kK" if /^\\K/;
-      s/^\\[kK]//;
-      die "badly formatted \\k: \\k$_\n" if !/\{([^\}]*)\}(.*)$/;
-      $_ = $2;
-      push @$pname,"$t$1";
-    } elsif (/^\\W/) {
-      s/^\\W//;
-      die "badly formatted \\W: \\W$_\n"
-          if !/\{([^\}]*)\}(\\i)?(\\c)?\{(([^\\}]|\\.)*)\}(.*)$/;
-      $l = $1;
-      $w = $4;
-      $_ = $6;
-      $t = "w ";
-      $t = "wc" if $3 eq "\\c";
-      $indexing = 1 if $2;
-      $w =~ s/\\\{/\{/g;
-      $w =~ s/\\\}/\}/g;
-      $w =~ s/\\-/-/g;
-      $w =~ s/\\\\/\\/g;
-      (push @$pname,"i"),$lastp = $#$pname if $indexing;
-      push @$pname,"$t<$l>$w";
-      $$pname[$lastp] = &addidx($node, $w, "c $w") if $indexing;
-    } else {
-      die "what the hell? $_\n" if !/^(([^\s\\\-]|\\[\\{}\-])*-?)(.*)$/;
-      die "painful death! $_\n" if !length $1;
-      $w = $1;
-      $_ = $3;
-      $w =~ s/\\\{/\{/g;
-      $w =~ s/\\\}/\}/g;
-      $w =~ s/\\-/-/g;
-      $w =~ s/\\\\/\\/g;
-      if ($w eq "-") {
-        push @$pname,"da";
-      } else {
-        push @$pname,"n $w";
-      }
-    }
-  }
-  if ($irewrite ne undef) {
-    &addidx(undef, $irewrite, @$pname);
-    @$pname = ();
-  } else {
-    push @pnames, $pname;
-    push @pflags, $pflags;
-    $pname++;
-  }
-}
-
-sub addidx {
-  my ($node, $text, @ientry) = @_;
-  $text = $idxalias{$text} || $text;
-  if ($node eq undef || !$idxmap{$text}) {
-    @$ientry = @ientry;
-    $idxmap{$text} = $ientry;
-    $ientry++;
-  }
-  if ($node) {
-    $idxnodes{$node,$text} = 1;
-    return "i $text";
-  }
-}
-
-sub indexsort {
-  my $iitem, $ientry, $i, $piitem, $pcval, $cval, $clrcval;
-
-  @itags = map { # get back the original data as the 1st elt of each list
-             $_->[0]
-	   } sort { # compare auxiliary (non-first) elements of lists
-	     $a->[1] cmp $b->[1] ||
-	     $a->[2] cmp $b->[2] ||
-	     $a->[0] cmp $b->[0]
-           } map { # transform array into list of 3-element lists
-	     my $ientry = $idxmap{$_};
-	     my $a = substr($$ientry[0],2);
-	     $a =~ tr/A-Za-z0-9//cd;
-	     [$_, uc($a), substr($$ientry[0],0,2)]
-	   } keys %idxmap;
-
-  # Having done that, check for comma-hood.
-  $cval = 0;
-  foreach $iitem (@itags) {
-    $ientry = $idxmap{$iitem};
-    $clrcval = 1;
-    $pcval = $cval;
-    FL:for ($i=0; $i <= $#$ientry; $i++) {
-      if ($$ientry[$i] =~ /^(n .*,)(.*)/) {
-        $$ientry[$i] = $1;
-	splice @$ientry,$i+1,0,"n $2" if length $2;
-	$commapos{$iitem} = $i+1;
-	$cval = join("\002", @$ientry[0..$i]);
-	$clrcval = 0;
-	last FL;
-      }
-    }
-    $cval = undef if $clrcval;
-    $commanext{$iitem} = $commaafter{$piitem} = 1
-      if $cval and ($cval eq $pcval);
-    $piitem = $iitem;
-  }
-}
-
-sub indexdiag {
-  my $iitem,$ientry,$w,$ww,$foo,$node;
-  open INDEXDIAG,">index.diag";
-  foreach $iitem (@itags) {
-    $ientry = $idxmap{$iitem};
-    print INDEXDIAG "<$iitem> ";
-    foreach $w (@$ientry) {
-      $ww = &word_txt($w);
-      print INDEXDIAG $ww unless $ww eq "\001";
-    }
-    print INDEXDIAG ":";
-    $foo = " ";
-    foreach $node (@nodes) {
-      (print INDEXDIAG $foo,$node), $foo = ", " if $idxnodes{$node,$iitem};
-    }
-    print INDEXDIAG "\n";
-  }
-  close INDEXDIAG;
-}
-
-sub fixup_xrefs {
-  my $pname, $p, $i, $j, $k, $caps, @repl;
-
-  for ($p=0; $p<=$#pnames; $p++) {
-    next if $pflags[$p] eq "code";
-    $pname = $pnames[$p];
-    for ($i=$#$pname; $i >= 0; $i--) {
-      if ($$pname[$i] =~ /^k/) {
-        $k = $$pname[$i];
-        $caps = ($k =~ /^kK/);
-	$k = substr($k,2);
-        $repl = $refs{$k};
-	die "undefined keyword `$k'\n" unless $repl;
-	substr($repl,0,1) =~ tr/a-z/A-Z/ if $caps;
-	@repl = ();
-	push @repl,"x $xrefs{$k}";
-	foreach $j (split /\s+/,$repl) {
-	  push @repl,"n $j";
-	  push @repl,"sp";
-	}
-	pop @repl; # remove final space
-	push @repl,"xe$xrefs{$k}";
-	splice @$pname,$i,1,@repl;
-      }
-    }
-  }
-}
-
-sub write_txt {
-  # This is called from the top level, so I won't bother using
-  # my or local.
-
-  # Open file.
-  print "writing file...";
-  open TEXT,">nasmdoc.txt";
-  select TEXT;
-
-  # Preamble.
-  $title = "The Netwide Assembler: NASM";
-  $spaces = ' ' x ((75-(length $title))/2);
-  ($underscore = $title) =~ s/./=/g;
-  print "$spaces$title\n$spaces$underscore\n";
-
-  for ($para = 0; $para <= $#pnames; $para++) {
-    $pname = $pnames[$para];
-    $pflags = $pflags[$para];
-    $ptype = substr($pflags,0,4);
-
-    print "\n"; # always one of these before a new paragraph
-
-    if ($ptype eq "chap") {
-      # Chapter heading. "Chapter N: Title" followed by a line of
-      # minus signs.
-      $pflags =~ /chap (.*) :(.*)/;
-      $title = "Chapter $1: ";
-      foreach $i (@$pname) {
-        $ww = &word_txt($i);
-        $title .= $ww unless $ww eq "\001";
-      }
-      print "$title\n";
-      $title =~ s/./-/g;
-      print "$title\n";
-    } elsif ($ptype eq "appn") {
-      # Appendix heading. "Appendix N: Title" followed by a line of
-      # minus signs.
-      $pflags =~ /appn (.*) :(.*)/;
-      $title = "Appendix $1: ";
-      foreach $i (@$pname) {
-        $ww = &word_txt($i);
-        $title .= $ww unless $ww eq "\001";
-      }
-      print "$title\n";
-      $title =~ s/./-/g;
-      print "$title\n";
-    } elsif ($ptype eq "head" || $ptype eq "subh") {
-      # Heading or subheading. Just a number and some text.
-      $pflags =~ /.... (.*) :(.*)/;
-      $title = sprintf "%6s ", $1;
-      foreach $i (@$pname) {
-        $ww = &word_txt($i);
-        $title .= $ww unless $ww eq "\001";
-      }
-      print "$title\n";
-    } elsif ($ptype eq "code") {
-      # Code paragraph. Emit each line with a seven character indent.
-      foreach $i (@$pname) {
-        warn "code line longer than 68 chars: $i\n" if length $i > 68;
-        print ' 'x7, $i, "\n";
-      }
-    } elsif ($ptype eq "bull" || $ptype eq "norm") {
-      # Ordinary paragraph, optionally bulleted. We wrap, with ragged
-      # 75-char right margin and either 7 or 11 char left margin
-      # depending on bullets.
-      if ($ptype eq "bull") {
-        $line = ' 'x7 . '(*) ';
-	$next = ' 'x11;
-      } else {
-        $line = $next = ' 'x7;
-      }
-      @a = @$pname;
-      $wd = $wprev = '';
-      do {
-        do { $w = &word_txt(shift @a) } while $w eq "\001"; # nasty hack
-	$wd .= $wprev;
-	if ($wprev =~ /-$/ || $w eq ' ' || $w eq '' || $w eq undef) {
-	  if (length ($line . $wd) > 75) {
-	    $line =~ s/\s*$//; # trim trailing spaces
-	    print "$line\n";
-	    $line = $next;
-	    $wd =~ s/^\s*//; # trim leading spaces
-	  }
-	  $line .= $wd;
-	  $wd = '';
-	}
-	$wprev = $w;
-      } while ($w ne '' && $w ne undef);
-      if ($line =~ /\S/) {
-	$line =~ s/\s*$//; # trim trailing spaces
-	print "$line\n";
-      }
-    }
-  }
-
-  # Close file.
-  select STDOUT;
-  close TEXT;
-}
-
-sub word_txt {
-  my ($w) = @_;
-  my $wtype, $wmajt;
-
-  return undef if $w eq '' || $w eq undef;
-  $wtype = substr($w,0,2);
-  $wmajt = substr($wtype,0,1);
-  $w = substr($w,2);
-  $w =~ s/<.*>// if $wmajt eq "w"; # remove web links
-  if ($wmajt eq "n" || $wtype eq "e " || $wtype eq "w ") {
-    return $w;
-  } elsif ($wtype eq "sp") {
-    return ' ';
-  } elsif ($wtype eq "da") {
-    return '-';
-  } elsif ($wmajt eq "c" || $wtype eq "wc") {
-    return "`${w}'";
-  } elsif ($wtype eq "es") {
-    return "_${w}";
-  } elsif ($wtype eq "ee") {
-    return "${w}_";
-  } elsif ($wtype eq "eo") {
-    return "_${w}_";
-  } elsif ($wmajt eq "x" || $wmajt eq "i") {
-    return "\001";
-  } else {
-    die "panic in word_txt: $wtype$w\n";
-  }
-}
-
-sub write_html {
-  # This is called from the top level, so I won't bother using
-  # my or local.
-
-  # Write contents file. Just the preamble, then a menu of links to the
-  # separate chapter files and the nodes therein.
-  print "writing contents file...";
-  open TEXT,">nasmdoc0.html";
-  select TEXT;
-  &html_preamble(0);
-  print "<p>This manual documents NASM, the Netwide Assembler: an assembler\n";
-  print "targetting the Intel x86 series of processors, with portable source.\n";
-  print "<p>";
-  for ($node = $tstruct_next{'Top'}; $node; $node = $tstruct_next{$node}) {
-    if ($tstruct_level{$node} == 1) {
-      # Invent a file name.
-      ($number = lc($xrefnodes{$node})) =~ s/.*-//;
-      $fname="nasmdocx.html";
-      substr($fname,8 - length $number, length $number) = $number;
-      $html_fnames{$node} = $fname;
-      $link = $fname;
-      print "<p>";
-    } else {
-      # Use the preceding filename plus a marker point.
-      $link = $fname . "#$xrefnodes{$node}";
-    }
-    $title = "$node: ";
-    $pname = $tstruct_pname{$node};
-    foreach $i (@$pname) {
-      $ww = &word_html($i);
-      $title .= $ww unless $ww eq "\001";
-    }
-    print "<a href=\"$link\">$title</a><br>\n";
-  }
-  print "<p><a href=\"nasmdoci.html\">Index</a>\n";
-  print "</body></html>\n";
-  select STDOUT;
-  close TEXT;
-
-  # Open a null file, to ensure output (eg random &html_jumppoints calls)
-  # goes _somewhere_.
-  print "writing chapter files...";
-  open TEXT,">/dev/null";
-  select TEXT;
-  $html_lastf = '';
-
-  $in_list = 0;
-
-  for ($para = 0; $para <= $#pnames; $para++) {
-    $pname = $pnames[$para];
-    $pflags = $pflags[$para];
-    $ptype = substr($pflags,0,4);
-
-    $in_list = 0, print "</ul>\n" if $in_list && $ptype ne "bull";
-    if ($ptype eq "chap") {
-      # Chapter heading. Begin a new file.
-      $pflags =~ /chap (.*) :(.*)/;
-      $title = "Chapter $1: ";
-      $xref = $2;
-      &html_jumppoints; print "</body></html>\n"; select STDOUT; close TEXT;
-      $html_lastf = $html_fnames{$chapternode};
-      $chapternode = $nodexrefs{$xref};
-      $html_nextf = $html_fnames{$tstruct_mnext{$chapternode}};
-      open TEXT,">$html_fnames{$chapternode}"; select TEXT; &html_preamble(1);
-      foreach $i (@$pname) {
-        $ww = &word_html($i);
-        $title .= $ww unless $ww eq "\001";
-      }
-      $h = "<h2><a name=\"$xref\">$title</a></h2>\n";
-      print $h; print FULL $h;
-    } elsif ($ptype eq "appn") {
-      # Appendix heading. Begin a new file.
-      $pflags =~ /appn (.*) :(.*)/;
-      $title = "Appendix $1: ";
-      $xref = $2;
-      &html_jumppoints; print "</body></html>\n"; select STDOUT; close TEXT;
-      $html_lastf = $html_fnames{$chapternode};
-      $chapternode = $nodexrefs{$xref};
-      $html_nextf = $html_fnames{$tstruct_mnext{$chapternode}};
-      open TEXT,">$html_fnames{$chapternode}"; select TEXT; &html_preamble(1);
-      foreach $i (@$pname) {
-        $ww = &word_html($i);
-        $title .= $ww unless $ww eq "\001";
-      }
-      print "<h2><a name=\"$xref\">$title</a></h2>\n";
-    } elsif ($ptype eq "head" || $ptype eq "subh") {
-      # Heading or subheading.
-      $pflags =~ /.... (.*) :(.*)/;
-      $hdr = ($ptype eq "subh" ? "h4" : "h3");
-      $title = $1 . " ";
-      $xref = $2;
-      foreach $i (@$pname) {
-        $ww = &word_html($i);
-        $title .= $ww unless $ww eq "\001";
-      }
-      print "<$hdr><a name=\"$xref\">$title</a></$hdr>\n";
-    } elsif ($ptype eq "code") {
-      # Code paragraph.
-      print "<p><pre>\n";
-      foreach $i (@$pname) {
-	$w = $i;
-	$w =~ s/&/&amp;/g;
-	$w =~ s/</&lt;/g;
-	$w =~ s/>/&gt;/g;
-        print $w, "\n";
-      }
-      print "</pre>\n";
-    } elsif ($ptype eq "bull" || $ptype eq "norm") {
-      # Ordinary paragraph, optionally bulleted. We wrap, with ragged
-      # 75-char right margin and either 7 or 11 char left margin
-      # depending on bullets.
-      if ($ptype eq "bull") {
-        $in_list = 1, print "<ul>\n" unless $in_list;
-        $line = '<li>';
-      } else {
-        $line = '<p>';
-      }
-      @a = @$pname;
-      $wd = $wprev = '';
-      do {
-        do { $w = &word_html(shift @a) } while $w eq "\001"; # nasty hack
-	$wd .= $wprev;
-	if ($w eq ' ' || $w eq '' || $w eq undef) {
-	  if (length ($line . $wd) > 75) {
-	    $line =~ s/\s*$//; # trim trailing spaces
-	    print "$line\n";
-	    $line = '';
-	    $wd =~ s/^\s*//; # trim leading spaces
-	  }
-	  $line .= $wd;
-	  $wd = '';
-	}
-	$wprev = $w;
-      } while ($w ne '' && $w ne undef);
-      if ($line =~ /\S/) {
-	$line =~ s/\s*$//; # trim trailing spaces
-	print "$line\n";
-      }
-    }
-  }
-
-  # Close whichever file was open.
-  &html_jumppoints;
-  print "</body></html>\n";
-  select STDOUT;
-  close TEXT;
-
-  print "\n   writing index file...";
-  open TEXT,">nasmdoci.html";
-  select TEXT;
-  &html_preamble(0);
-  print "<p align=center><a href=\"nasmdoc0.html\">Contents</a>\n";
-  print "<p>";
-  &html_index;
-  print "<p align=center><a href=\"nasmdoc0.html\">Contents</a>\n";
-  print "</body></html>\n";
-  select STDOUT;
-  close TEXT;
-}
-
-sub html_preamble {
-  print "<html><head><title>NASM Manual</title></head>\n";
-  print "<body><h1 align=center>The Netwide Assembler: NASM</h1>\n\n";
-  &html_jumppoints if $_[0];
-}
-
-sub html_jumppoints {
-  print "<p align=center>";
-  print "<a href=\"$html_nextf\">Next Chapter</a> |\n" if $html_nextf;
-  print "<a href=\"$html_lastf\">Previous Chapter</a> |\n" if $html_lastf;
-  print "<a href=\"nasmdoc0.html\">Contents</a> |\n";
-  print "<a href=\"nasmdoci.html\">Index</a>\n";
-}
-
-sub html_index {
-  my $itag, $a, @ientry, $sep, $w, $wd, $wprev, $line;
-
-  $chapternode = '';
-  foreach $itag (@itags) {
-    $ientry = $idxmap{$itag};
-    @a = @$ientry;
-    push @a, "n :";
-    $sep = 0;
-    foreach $node (@nodes) {
-      next if !$idxnodes{$node,$itag};
-      push @a, "n ," if $sep;
-      push @a, "sp", "x $xrefnodes{$node}", "n $node", "xe$xrefnodes{$node}";
-      $sep = 1;
-    }
-    $line = '';
-    do {
-      do { $w = &word_html(shift @a) } while $w eq "\001"; # nasty hack
-      $wd .= $wprev;
-      if ($w eq ' ' || $w eq '' || $w eq undef) {
-        if (length ($line . $wd) > 75) {
-	  $line =~ s/\s*$//; # trim trailing spaces
-	  print "$line\n";
-	  $line = '';
-	  $wd =~ s/^\s*//; # trim leading spaces
-	}
-	$line .= $wd;
-	$wd = '';
-      }
-      $wprev = $w;
-    } while ($w ne '' && $w ne undef);
-    if ($line =~ /\S/) {
-      $line =~ s/\s*$//; # trim trailing spaces
-      print "$line\n";
-    }
-    print "<br>\n";
-  }
-}
-
-sub word_html {
-  my ($w) = @_;
-  my $wtype, $wmajt, $pfx, $sfx;
-
-  return undef if $w eq '' || $w eq undef;
-
-  $wtype = substr($w,0,2);
-  $wmajt = substr($wtype,0,1);
-  $w = substr($w,2);
-  $pfx = $sfx = '';
-  $pfx = "<a href=\"$1\">", $sfx = "</a>", $w = $2
-    if $wmajt eq "w" && $w =~ /^<(.*)>(.*)$/;
-  $w =~ s/&/&amp;/g;
-  $w =~ s/</&lt;/g;
-  $w =~ s/>/&gt;/g;
-  if ($wmajt eq "n" || $wtype eq "e " || $wtype eq "w ") {
-    return $pfx . $w . $sfx;
-  } elsif ($wtype eq "sp") {
-    return ' ';
-  } elsif ($wtype eq "da") {
-    return '-'; # sadly, en-dashes are non-standard in HTML
-  } elsif ($wmajt eq "c" || $wtype eq "wc") {
-    return $pfx . "<code><nobr>${w}</nobr></code>" . $sfx;
-  } elsif ($wtype eq "es") {
-    return "<em>${w}";
-  } elsif ($wtype eq "ee") {
-    return "${w}</em>";
-  } elsif ($wtype eq "eo") {
-    return "<em>${w}</em>";
-  } elsif ($wtype eq "x ") {
-    # Magic: we must resolve the cross reference into file and marker
-    # parts, then dispose of the file part if it's us, and dispose of
-    # the marker part if the cross reference describes the top node of
-    # another file.
-    my $node = $nodexrefs{$w}; # find the node we're aiming at
-    my $level = $tstruct_level{$node}; # and its level
-    my $up = $node, $uplev = $level-1;
-    $up = $tstruct_up{$up} while $uplev--; # get top node of containing file
-    my $file = ($up ne $chapternode) ? $html_fnames{$up} : "";
-    my $marker = ($level == 1 and $file) ? "" : "#$w";
-    return "<a href=\"$file$marker\">";
-  } elsif ($wtype eq "xe") {
-    return "</a>";
-  } elsif ($wmajt eq "i") {
-    return "\001";
-  } else {
-    die "panic in word_html: $wtype$w\n";
-  }
-}
-
-sub write_texi {
-  # This is called from the top level, so I won't bother using
-  # my or local.
-
-  # Open file.
-  print "writing file...";
-  open TEXT,">nasmdoc.texi";
-  select TEXT;
-
-  # Preamble.
-  print "\\input texinfo   \@c -*-texinfo-*-\n";
-  print "\@c \%**start of header\n";
-  print "\@setfilename ",$metadata{'infofile'},".info\n";
-  print "\@dircategory ",$metadata{'category'},"\n";
-  print "\@direntry\n";
-  printf "* %-28s %s.\n",
-  sprintf('%s: (%s).', $metadata{'infoname'}, $metadata{'infofile'}),
-  $metadata{'infotitle'};
-  print "\@end direntry\n";
-  print "\@settitle ", $metadata{'title'},"\n";
-  print "\@setchapternewpage odd\n";
-  print "\@c \%**end of header\n";
-  print "\n";
-  print "\@ifinfo\n";
-  print $metadata{'summary'}, "\n";
-  print "\n";
-  print "Copyright ",$metadata{'year'}," ",$metadata{'author'},"\n";
-  print "\n";
-  print $metadata{'license'}, "\n";
-  print "\@end ifinfo\n";
-  print "\n";
-  print "\@titlepage\n";
-  $title = $metadata{'title'};
-  $title =~ s/ - / --- /g;
-  print "\@title ${title}\n";
-  print "\@author ",$metadata{'author'},"\n";
-  print "\n";
-  print "\@page\n";
-  print "\@vskip 0pt plus 1filll\n";
-  print "Copyright \@copyright{} ",$metadata{'year'},' ',$metadata{'author'},"\n";
-  print "\n";
-  print $metadata{'license'}, "\n";
-  print "\@end titlepage\n";
-  print "\n";
-  print "\@node Top, $tstruct_next{'Top'}, (dir), (dir)\n";
-  print "\@top ",$metadata{'infotitle'},"\n";
-  print "\n";
-  print "\@ifinfo\n";
-  print $metadata{'summary'}, "\n";
-  print "\@end ifinfo\n";
-
-  $node = "Top";
-
-  $bulleting = 0;
-  for ($para = 0; $para <= $#pnames; $para++) {
-    $pname = $pnames[$para];
-    $pflags = $pflags[$para];
-    $ptype = substr($pflags,0,4);
-
-    $bulleting = 0, print "\@end itemize\n" if $bulleting && $ptype ne "bull";
-    print "\n"; # always one of these before a new paragraph
-
-    if ($ptype eq "chap") {
-      # Chapter heading. Begin a new node.
-      &texi_menu($node)
-        if $tstruct_level{$tstruct_next{$node}} > $tstruct_level{$node};
-      $pflags =~ /chap (.*) :(.*)/;
-      $node = "Chapter $1";
-      $title = "Chapter $1: ";
-      foreach $i (@$pname) {
-        $ww = &word_texi($i);
-        $title .= $ww unless $ww eq "\001";
-      }
-      print "\@node $node, $tstruct_next{$node}, $tstruct_prev{$node},";
-      print " $tstruct_up{$node}\n\@unnumbered $title\n";
-    } elsif ($ptype eq "appn") {
-      # Appendix heading. Begin a new node.
-      &texi_menu($node)
-        if $tstruct_level{$tstruct_next{$node}} > $tstruct_level{$node};
-      $pflags =~ /appn (.*) :(.*)/;
-      $node = "Appendix $1";
-      $title = "Appendix $1: ";
-      foreach $i (@$pname) {
-        $ww = &word_texi($i);
-        $title .= $ww unless $ww eq "\001";
-      }
-      print "\@node $node, $tstruct_next{$node}, $tstruct_prev{$node},";
-      print " $tstruct_up{$node}\n\@unnumbered $title\n";
-    } elsif ($ptype eq "head" || $ptype eq "subh") {
-      # Heading or subheading. Begin a new node.
-      &texi_menu($node)
-        if $tstruct_level{$tstruct_next{$node}} > $tstruct_level{$node};
-      $pflags =~ /.... (.*) :(.*)/;
-      $node = "Section $1";
-      $title = "$1. ";
-      foreach $i (@$pname) {
-        $ww = &word_texi($i);
-        $title .= $ww unless $ww eq "\001";
-      }
-      print "\@node $node, $tstruct_next{$node}, $tstruct_prev{$node},";
-      print " $tstruct_up{$node}\n";
-      $hdr = ($ptype eq "subh" ? "\@unnumberedsubsec" : "\@unnumberedsec");
-      print "$hdr $title\n";
-    } elsif ($ptype eq "code") {
-      # Code paragraph. Surround with @example / @end example.
-      print "\@example\n";
-      foreach $i (@$pname) {
-        warn "code line longer than 68 chars: $i\n" if length $i > 68;
-	$i =~ s/\@/\@\@/g;
-	$i =~ s/\{/\@\{/g;
-	$i =~ s/\}/\@\}/g;
-        print "$i\n";
-      }
-      print "\@end example\n";
-    } elsif ($ptype eq "bull" || $ptype eq "norm") {
-      # Ordinary paragraph, optionally bulleted. We wrap, FWIW.
-      if ($ptype eq "bull") {
-        $bulleting = 1, print "\@itemize \@bullet\n" if !$bulleting;
-	print "\@item\n";
-      }
-      $line = '';
-      @a = @$pname;
-      $wd = $wprev = '';
-      do {
-        do { $w = &word_texi(shift @a); } while $w eq "\001"; # hack
-	$wd .= $wprev;
-	if ($wprev =~ /-$/ || $w eq ' ' || $w eq '' || $w eq undef) {
-	  if (length ($line . $wd) > 75) {
-	    $line =~ s/\s*$//; # trim trailing spaces
-	    print "$line\n";
-	    $line = '';
-	    $wd =~ s/^\s*//; # trim leading spaces
-	  }
-	  $line .= $wd;
-	  $wd = '';
-	}
-	$wprev = $w;
-      } while ($w ne '' && $w ne undef);
-      if ($line =~ /\S/) {
-	$line =~ s/\s*$//; # trim trailing spaces
-	print "$line\n";
-      }
-    }
-  }
-
-  # Write index.
-  &texi_index;
-
-  # Close file.
-  print "\n\@contents\n\@bye\n";
-  select STDOUT;
-  close TEXT;
-}
-
-# Side effect of this procedure: update global `texiwdlen' to be the length
-# in chars of the formatted version of the word.
-sub word_texi {
-  my ($w) = @_;
-  my $wtype, $wmajt;
-
-  return undef if $w eq '' || $w eq undef;
-  $wtype = substr($w,0,2);
-  $wmajt = substr($wtype,0,1);
-  $w = substr($w,2);
-  $wlen = length $w;
-  $w =~ s/\@/\@\@/g;
-  $w =~ s/\{/\@\{/g;
-  $w =~ s/\}/\@\}/g;
-  $w =~ s/<.*>// if $wmajt eq "w"; # remove web links
-  substr($w,0,1) =~ tr/a-z/A-Z/, $capital = 0 if $capital;
-  if ($wmajt eq "n" || $wtype eq "e " || $wtype eq "w ") {
-    $texiwdlen = $wlen;
-    return $w;
-  } elsif ($wtype eq "sp") {
-    $texiwdlen = 1;
-    return ' ';
-  } elsif ($wtype eq "da") {
-    $texiwdlen = 2;
-    return '--';
-  } elsif ($wmajt eq "c" || $wtype eq "wc") {
-    $texiwdlen = 2 + $wlen;
-    return "\@code\{$w\}";
-  } elsif ($wtype eq "es") {
-    $texiwdlen = 1 + $wlen;
-    return "\@emph\{${w}";
-  } elsif ($wtype eq "ee") {
-    $texiwdlen = 1 + $wlen;
-    return "${w}\}";
-  } elsif ($wtype eq "eo") {
-    $texiwdlen = 2 + $wlen;
-    return "\@emph\{${w}\}";
-  } elsif ($wtype eq "x ") {
-    $texiwdlen = 0; # we don't need it in this case
-    $capital = 1; # hack
-    return "\@ref\{";
-  } elsif ($wtype eq "xe") {
-    $texiwdlen = 0; # we don't need it in this case
-    return "\}";
-  } elsif ($wmajt eq "i") {
-    $texiwdlen = 0; # we don't need it in this case
-    return "\001";
-  } else {
-    die "panic in word_texi: $wtype$w\n";
-  }
-}
-
-sub texi_menu {
-  my ($topitem) = @_;
-  my $item, $i, $mpname, $title, $wd;
-
-  $item = $tstruct_next{$topitem};
-  print "\@menu\n";
-  while ($item) {
-    $title = "";
-    $mpname = $tstruct_pname{$item};
-    foreach $i (@$mpname) {
-      $wd = &word_texi($i);
-      $title .= $wd unless $wd eq "\001";
-    }
-    print "* ${item}:: $title\n";
-    $item = $tstruct_mnext{$item};
-  }
-  print "* Index::\n" if $topitem eq "Top";
-  print "\@end menu\n";
-}
-
-sub texi_index {
-  my $itag, $ientry, @a, $wd, $item, $len;
-  my $subnums = "123456789ABCDEFGHIJKLMNOPQRSTU" .
-                "VWXYZabcdefghijklmnopqrstuvwxyz";
-
-  print "\@ifinfo\n\@node Index, , $FIXMElastnode, Top\n";
-  print "\@unnumbered Index\n\n\@menu\n";
-
-  foreach $itag (@itags) {
-    $ientry = $idxmap{$itag};
-    @a = @$ientry;
-    $item = '';
-    $len = 0;
-    foreach $i (@a) {
-      $wd = &word_texi($i);
-      $item .= $wd, $len += $texiwdlen unless $wd eq "\001";
-    }
-    $i = 0;
-    foreach $node (@nodes) {
-      next if !$idxnodes{$node,$itag};
-      printf "* %s%s (%s): %s.\n",
-          $item, " " x (40-$len), substr($subnums,$i++,1), $node;
-    }
-  }
-  print "\@end menu\n\@end ifinfo\n";
-}
-
-sub write_hlp {
-  # This is called from the top level, so I won't bother using
-  # my or local.
-
-  # Build the index-tag text forms.
-  print "building index entries...";
-  @hlp_index = map {
-                 my $i,$ww;
-		 my $ientry = $idxmap{$_};
-		 my $title = "";
-                 foreach $i (@$ientry) {
-		   $ww = &word_hlp($i,0);
-		   $title .= $ww unless $ww eq "\001";
-		 }
-		 $title;
-               } @itags;
-
-  # Write the HPJ project-description file.
-  print "writing .hpj file...";
-  open HPJ,">nasmdoc.hpj";
-  print HPJ "[OPTIONS]\ncompress=true\n";
-  print HPJ "title=NASM: The Netwide Assembler\noldkeyphrase=no\n\n";
-  print HPJ "[FILES]\nnasmdoc.rtf\n\n";
-  print HPJ "[CONFIG]\n";
-  print HPJ 'CreateButton("btn_up", "&Up",'.
-            ' "JumpContents(`nasmdoc.hlp'."'".')")';
-  print HPJ "\nBrowseButtons()\n";
-  close HPJ;
-
-  # Open file.
-  print "\n   writing .rtf file...";
-  open TEXT,">nasmdoc.rtf";
-  select TEXT;
-
-  # Preamble.
-  print "{\\rtf1\\ansi{\\fonttbl\n";
-  print "\\f0\\froman Times New Roman;\\f1\\fmodern Courier New;\n";
-  print "\\f2\\fswiss Arial;\\f3\\ftech Wingdings}\\deff0\n";
-  print "#{\\footnote Top}\n";
-  print "\${\\footnote Contents}\n";
-  print "+{\\footnote browse:00000}\n";
-  print "!{\\footnote DisableButton(\"btn_up\")}\n";
-  print "\\keepn\\f2\\b\\fs30\\sb0\n";
-  print "NASM: The Netwide Assembler\n";
-  print "\\par\\pard\\plain\\sb120\n";
-  print "This file documents NASM, the Netwide Assembler: an assembler \n";
-  print "targetting the Intel x86 series of processors, with portable source.\n";
-
-  $node = "Top";
-  $browse = 0;
-
-  $newpar = "\\par\\sb120\n";
-  for ($para = 0; $para <= $#pnames; $para++) {
-    $pname = $pnames[$para];
-    $pflags = $pflags[$para];
-    $ptype = substr($pflags,0,4);
-
-    print $newpar;
-    $newpar = "\\par\\sb120\n";
-
-    if ($ptype eq "chap") {
-      # Chapter heading. Begin a new node.
-      &hlp_menu($node)
-        if $tstruct_level{$tstruct_next{$node}} > $tstruct_level{$node};
-      $pflags =~ /chap (.*) :(.*)/;
-      $node = "Chapter $1";
-      $title = $footnotetitle = "Chapter $1: ";
-      foreach $i (@$pname) {
-        $ww = &word_hlp($i,1);
-	$title .= $ww, $footnotetitle .= &word_hlp($i,0) unless $ww eq "\001";
-      }
-      print "\\page\n";
-      printf "#{\\footnote %s}\n", &hlp_sectkw($node);
-      print "\${\\footnote $footnotetitle}\n";
-      printf "+{\\footnote browse:%05d}\n", ++$browse;
-      printf "!{\\footnote ChangeButtonBinding(\"btn_up\"," .
-             "\"JumpId(\`nasmdoc.hlp',\`%s')\");\n",
-	     &hlp_sectkw($tstruct_up{$node});
-      print "EnableButton(\"btn_up\")}\n";
-      &hlp_keywords($node);
-      print "\\keepn\\f2\\b\\fs30\\sb60\\sa60\n";
-      print "$title\n";
-      $newpar = "\\par\\pard\\plain\\sb120\n";
-    } elsif ($ptype eq "appn") {
-      # Appendix heading. Begin a new node.
-      &hlp_menu($node)
-        if $tstruct_level{$tstruct_next{$node}} > $tstruct_level{$node};
-      $pflags =~ /appn (.*) :(.*)/;
-      $node = "Appendix $1";
-      $title = $footnotetitle = "Appendix $1: ";
-      foreach $i (@$pname) {
-        $ww = &word_hlp($i,1);
-	$title .= $ww, $footnotetitle .= &word_hlp($i,0) unless $ww eq "\001";
-      }
-      print "\\page\n";
-      printf "#{\\footnote %s}\n", &hlp_sectkw($node);
-      print "\${\\footnote $footnotetitle}\n";
-      printf "+{\\footnote browse:%05d}\n", ++$browse;
-      printf "!{\\footnote ChangeButtonBinding(\"btn_up\"," .
-             "\"JumpId(\`nasmdoc.hlp',\`%s')\");\n",
-	     &hlp_sectkw($tstruct_up{$node});
-      print "EnableButton(\"btn_up\")}\n";
-      &hlp_keywords($node);
-      print "\\keepn\\f2\\b\\fs30\\sb60\\sa60\n";
-      print "$title\n";
-      $newpar = "\\par\\pard\\plain\\sb120\n";
-    } elsif ($ptype eq "head" || $ptype eq "subh") {
-      # Heading or subheading. Begin a new node.
-      &hlp_menu($node)
-        if $tstruct_level{$tstruct_next{$node}} > $tstruct_level{$node};
-      $pflags =~ /.... (.*) :(.*)/;
-      $node = "Section $1";
-      $title = $footnotetitle = "$1. ";
-      foreach $i (@$pname) {
-        $ww = &word_hlp($i,1);
-	$title .= $ww, $footnotetitle .= &word_hlp($i,0) unless $ww eq "\001";
-      }
-      print "\\page\n";
-      printf "#{\\footnote %s}\n", &hlp_sectkw($node);
-      print "\${\\footnote $footnotetitle}\n";
-      printf "+{\\footnote browse:%05d}\n", ++$browse;
-      printf "!{\\footnote ChangeButtonBinding(\"btn_up\"," .
-             "\"JumpId(\`nasmdoc.hlp',\`%s')\");\n",
-	     &hlp_sectkw($tstruct_up{$node});
-      print "EnableButton(\"btn_up\")}\n";
-      &hlp_keywords($node);
-      print "\\keepn\\f2\\b\\fs30\\sb60\\sa60\n";
-      print "$title\n";
-      $newpar = "\\par\\pard\\plain\\sb120\n";
-    } elsif ($ptype eq "code") {
-      # Code paragraph.
-      print "\\keep\\f1\\sb120\n";
-      foreach $i (@$pname) {
-	my $x = $i;
-        warn "code line longer than 68 chars: $i\n" if length $i > 68;
-	$x =~ s/\\/\\\\/g;
-	$x =~ s/\{/\\\{/g;
-	$x =~ s/\}/\\\}/g;
-        print "$x\\par\\sb0\n";
-      }
-      $newpar = "\\pard\\f0\\sb120\n";
-    } elsif ($ptype eq "bull" || $ptype eq "norm") {
-      # Ordinary paragraph, optionally bulleted. We wrap, FWIW.
-      if ($ptype eq "bull") {
-        print "\\tx360\\li360\\fi-360{\\f3\\'9F}\\tab\n";
-	$newpar = "\\par\\pard\\sb120\n";
-      } else {
-	$newpar = "\\par\\sb120\n";
-      }
-      $line = '';
-      @a = @$pname;
-      $wd = $wprev = '';
-      do {
-        do { $w = &word_hlp((shift @a),1); } while $w eq "\001"; # hack
-	$wd .= $wprev;
-	if ($w eq ' ' || $w eq '' || $w eq undef) {
-	  if (length ($line . $wd) > 75) {
-	    $line =~ s/\s*$//; # trim trailing spaces
-	    print "$line \n"; # and put one back
-	    $line = '';
-	    $wd =~ s/^\s*//; # trim leading spaces
-	  }
-	  $line .= $wd;
-	  $wd = '';
-	}
-	$wprev = $w;
-      } while ($w ne '' && $w ne undef);
-      if ($line =~ /\S/) {
-	$line =~ s/\s*$//; # trim trailing spaces
-	print "$line\n";
-      }
-    }
-  }
-
-  # Close file.
-  print "\\page}\n";
-  select STDOUT;
-  close TEXT;
-}
-
-sub word_hlp {
-  my ($w, $docode) = @_;
-  my $wtype, $wmajt;
-
-  return undef if $w eq '' || $w eq undef;
-  $wtype = substr($w,0,2);
-  $wmajt = substr($wtype,0,1);
-  $w = substr($w,2);
-  $w =~ s/\\/\\\\/g;
-  $w =~ s/\{/\\\{/g;
-  $w =~ s/\}/\\\}/g;
-  $w =~ s/<.*>// if $wmajt eq "w"; # remove web links
-  substr($w,0,length($w)-1) =~ s/-/\\\'AD/g if $wmajt ne "x"; #nonbreakhyphens
-  if ($wmajt eq "n" || $wtype eq "e " || $wtype eq "w ") {
-    return $w;
-  } elsif ($wtype eq "sp") {
-    return ' ';
-  } elsif ($wtype eq "da") {
-    return "\\'96";
-  } elsif ($wmajt eq "c" || $wtype eq "wc") {
-    $w =~ s/ /\\\'A0/g; # make spaces non-breaking
-    return $docode ? "{\\f1 ${w}}" : $w;
-  } elsif ($wtype eq "es") {
-    return "{\\i ${w}";
-  } elsif ($wtype eq "ee") {
-    return "${w}}";
-  } elsif ($wtype eq "eo") {
-    return "{\\i ${w}}";
-  } elsif ($wtype eq "x ") {
-    return "{\\uldb ";
-  } elsif ($wtype eq "xe") {
-    $w = &hlp_sectkw($w);
-    return "}{\\v ${w}}";
-  } elsif ($wmajt eq "i") {
-    return "\001";
-  } else {
-    die "panic in word_hlp: $wtype$w\n";
-  }
-}
-
-sub hlp_menu {
-  my ($topitem) = @_;
-  my $item, $kword, $i, $mpname, $title;
-
-  $item = $tstruct_next{$topitem};
-  print "\\li360\\fi-360\n";
-  while ($item) {
-    $title = "";
-    $mpname = $tstruct_pname{$item};
-    foreach $i (@$mpname) {
-      $ww = &word_hlp($i, 0);
-      $title .= $ww unless $ww eq "\001";
-    }
-    $kword = &hlp_sectkw($item);
-    print "{\\uldb ${item}: $title}{\\v $kword}\\par\\sb0\n";
-    $item = $tstruct_mnext{$item};
-  }
-  print "\\pard\\sb120\n";
-}
-
-sub hlp_sectkw {
-  my ($node) = @_;
-  $node =~ tr/A-Z/a-z/;
-  $node =~ tr/- ./___/;
-  $node;
-}
-
-sub hlp_keywords {
-  my ($node) = @_;
-  my $pfx = "K{\\footnote ";
-  my $done = 0;
-  foreach $i (0..$#itags) {
-    (print $pfx,$hlp_index[$i]), $pfx = ";\n", $done++
-        if $idxnodes{$node,$itags[$i]};
-  }
-  print "}\n" if $done;
-}
-
-# Make tree structures. $tstruct_* is top-level and global.
-sub add_item {
-  my ($item, $level) = @_;
-  my $i;
-
-  $tstruct_pname{$item} = $pname;
-  $tstruct_next{$tstruct_previtem} = $item;
-  $tstruct_prev{$item} = $tstruct_previtem;
-  $tstruct_level{$item} = $level;
-  $tstruct_up{$item} = $tstruct_last[$level-1];
-  $tstruct_mnext{$tstruct_last[$level]} = $item;
-  $tstruct_last[$level] = $item;
-  for ($i=$level+1; $i<$MAXLEVEL; $i++) { $tstruct_last[$i] = undef; }
-  $tstruct_previtem = $item;
-  push @nodes, $item;
-}
-
-#
-# This produces documentation intermediate paragraph format; this is
-# basically the digested output of the front end.  Intended for use
-# by future backends, instead of putting it all in the same script.
-#
-sub write_dip {
-  open(PARAS, "> nasmdoc.dip");
-  foreach $k (sort(keys(%metadata))) {
-      print PARAS 'meta :', $k, "\n";
-      print PARAS $metadata{$k},"\n";
-  }
-  for ($para = 0; $para <= $#pnames; $para++) {
-      print PARAS $pflags[$para], "\n";
-      print PARAS join("\037", @{$pnames[$para]}, "\n");
-  }
-  foreach $k (@itags) {
-      print PARAS 'indx :', $k, "\n";
-      print PARAS join("\037", @{$idxmap{$k}}), "\n";
-  }
-  close(PARAS);
-}
--- a/nasmbuild/nasm-2.13rc9/headers/c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2010 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
--- a/nasmbuild/nasm-2.13rc9/headers/doc	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-\# --------------------------------------------------------------------------
-\#
-\#   Copyright 1996-2010 The NASM Authors - All Rights Reserved
-\#   See the file AUTHORS included with the NASM distribution for
-\#   the specific copyright holders.
-\#
-\#   Redistribution and use in source and binary forms, with or without
-\#   modification, are permitted provided that the following
-\#   conditions are met:
-\#
-\#   * Redistributions of source code must retain the above copyright
-\#     notice, this list of conditions and the following disclaimer.
-\#   * Redistributions in binary form must reproduce the above
-\#     copyright notice, this list of conditions and the following
-\#     disclaimer in the documentation and/or other materials provided
-\#     with the distribution.
-\#
-\#     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-\#     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-\#     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-\#     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-\#     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-\#     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-\#     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-\#     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-\#     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-\#     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-\#     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-\#     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-\#     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-\#
-\# --------------------------------------------------------------------------
-
--- a/nasmbuild/nasm-2.13rc9/headers/mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-;; --------------------------------------------------------------------------
-;;
-;;   Copyright 1996-2010 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
--- a/nasmbuild/nasm-2.13rc9/headers/perl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-## --------------------------------------------------------------------------
-##   
-##   Copyright 1996-2010 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##     
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
--- a/nasmbuild/nasm-2.13rc9/include/compiler.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,275 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 2007-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * compiler.h
- *
- * Compiler-specific macros for NASM.  Feel free to add support for
- * other compilers in here.
- *
- * This header file should be included before any other header.
- */
-
-#ifndef NASM_COMPILER_H
-#define NASM_COMPILER_H 1
-
-/*
- * At least DJGPP and Cygwin have broken header files if __STRICT_ANSI__
- * is defined.
- */
-#ifdef __GNUC__
-# undef __STRICT_ANSI__
-#endif
-
-/* On Microsoft platforms we support multibyte character sets in filenames */
-#define _MBCS 1
-
-#ifdef HAVE_CONFIG_H
-# include "config/config.h"
-#elif defined(_MSC_VER) && (_MSC_VER >= 1310)
-# include "config/msvc.h"
-#elif defined(__WATCOMC__)
-# include "config/watcom.h"
-#else
-# include "config/unknown.h"
-#endif /* Configuration file */
-
-/* This is required to get the standard <inttypes.h> macros when compiling
-   with a C++ compiler.  This must be defined *before* <inttypes.h> is
-   included, directly or indirectly. */
-#define __STDC_CONSTANT_MACROS	1
-#define __STDC_LIMIT_MACROS	1
-#define __STDC_FORMAT_MACROS	1
-
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#else
-# include "nasmint.h"
-#endif
-
-#include <assert.h>
-#include <stddef.h>
-#include <stdarg.h>
-#include <stdio.h>
-#include <limits.h>
-
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
-/* Some versions of MSVC have these only with underscores in front */
-#ifndef HAVE_SNPRINTF
-# ifdef HAVE__SNPRINTF
-#  define snprintf _snprintf
-# else
-int snprintf(char *, size_t, const char *, ...);
-# endif
-#endif
-
-#ifndef HAVE_VSNPRINTF
-# ifdef HAVE__VSNPRINTF
-#  define vsnprintf _vsnprintf
-# else
-int vsnprintf(char *, size_t, const char *, va_list);
-# endif
-#endif
-
-#if !defined(HAVE_STRLCPY) || !HAVE_DECL_STRLCPY
-size_t strlcpy(char *, const char *, size_t);
-#endif
-
-#ifndef __cplusplus		/* C++ has false, true, bool as keywords */
-# ifdef HAVE_STDBOOL_H
-#  include <stdbool.h>
-# elif defined(HAVE__BOOL)
-#  typedef _Bool bool
-#  define false 0
-#  define true 1
-# else
-/* This is sort of dangerous, since casts will behave different than
-   casting to the standard boolean type.  Always use !!, not (bool). */
-typedef enum bool { false, true } bool;
-# endif
-#endif
-
-/* Provide a substitute for offsetof() if we don't have one.  This
-   variant works on most (but not *all*) systems... */
-#ifndef offsetof
-# define offsetof(t,m) ((size_t)&(((t *)0)->m))
-#endif
-
-/* The container_of construct: if p is a pointer to member m of
-   container class c, then return a pointer to the container of which
-   *p is a member. */
-#ifndef container_of
-# define container_of(p, c, m) ((c *)((char *)(p) - offsetof(c,m)))
-#endif
-
-/* Some misguided platforms hide the defs for these */
-#if defined(HAVE_STRCASECMP) && !HAVE_DECL_STRCASECMP
-int strcasecmp(const char *, const char *);
-#endif
-
-#if defined(HAVE_STRICMP) && !HAVE_DECL_STRICMP
-int stricmp(const char *, const char *);
-#endif
-
-#if defined(HAVE_STRNCASECMP) && !HAVE_DECL_STRNCASECMP
-int strncasecmp(const char *, const char *, size_t);
-#endif
-
-#if defined(HAVE_STRNICMP) && !HAVE_DECL_STRNICMP
-int strnicmp(const char *, const char *, size_t);
-#endif
-
-#if defined(HAVE_STRSEP) && !HAVE_DECL_STRSEP
-char *strsep(char **, const char *);
-#endif
-
-#if !HAVE_DECL_STRNLEN
-size_t strnlen(const char *s, size_t maxlen);
-#endif
-
-/*
- * Define this to 1 for faster performance if this is a littleendian
- * platform which can do unaligned memory references.  It is safe
- * to leave it defined to 0 even if that is true.
- */
-#if defined(__386__) || defined(__i386__) || defined(__x86_64__)
-# define X86_MEMORY 1
-# ifndef WORDS_LITTLEENDIAN
-#  define WORDS_LITTLEENDIAN 1
-# endif
-#else
-# define X86_MEMORY 0
-#endif
-
-/*
- * Hints to the compiler that a particular branch of code is more or
- * less likely to be taken.
- */
-#if HAVE___BUILTIN_EXPECT
-# define likely(x)	__builtin_expect(!!(x), 1)
-# define unlikely(x)	__builtin_expect(!!(x), 0)
-#else
-# define likely(x)	(!!(x))
-# define unlikely(x)	(!!(x))
-#endif
-
-/*
- * Hints about malloc-like functions that never return NULL
- */
-#ifdef HAVE_FUNC_ATTRIBUTE_RETURNS_NONNULL
-# define never_null __attribute__((returns_nonnull))
-#else
-# define never_null
-#endif
-
-#ifdef HAVE_FUNC_ATTRIBUTE_MALLOC
-# define safe_alloc never_null __attribute__((malloc))
-#else
-# define safe_alloc
-#endif
-
-#ifdef HAVE_FUNC_ATTRIBUTE_ALLOC_SIZE
-#   define safe_malloc(s) safe_alloc __attribute__((alloc_size(s)))
-#   define safe_malloc2(s1,s2) safe_alloc __attribute__((alloc_size(s1,s2)))
-#   define safe_realloc(s) never_null __attribute__((alloc_size(s)))
-#else
-# define safe_malloc(s) safe_alloc
-# define safe_malloc2(s1,s2) safe_alloc
-# define safe_realloc(s) never_null
-#endif
-
-/*
- * How to tell the compiler that a function doesn't return
- */
-#ifdef HAVE_STDNORETURN_H
-# include <stdnoreturn.h>
-# define no_return noreturn void
-#elif defined(HAVE_FUNC_ATTRIBUTE_NORETURN)
-# define no_return void __attribute__((noreturn))
-#else
-# define no_return void
-#endif
-
-/*
- * How to tell the compiler that a function takes a printf-like string
- */
-#ifdef HAVE_FUNC_ATTRIBUTE_FORMAT
-# define printf_func(fmt, list) __attribute__((format(printf, fmt, list)))
-#else
-# define printf_func(fmt, list)
-#endif
-
-/*
- * How to tell the compiler that a function is pure arithmetic
- */
-#ifdef HAVE_FUNC_ATTRIBUTE_CONST
-# define const_func __attribute__((const))
-#else
-# define const_func
-#endif
-
-/*
- * This function has no side effects, but depends on its arguments,
- * memory pointed to by its arguments, or global variables.
- * NOTE: functions that return a value by modifying memory pointed to
- * by a pointer argument are *NOT* considered pure.
- */
-#ifdef HAVE_FUNC_ATTRIBUTE_PURE
-# define pure_func __attribute__((pure))
-#else
-# define pure_func
-#endif
-
-/* Watcom doesn't handle switch statements with 64-bit types, hack around it */
-#ifdef __WATCOMC__
-# define BOGUS_CASE 0x76543210
-
-static inline unsigned int watcom_switch_hack(uint64_t x)
-{
-    if (x > (uint64_t)UINT_MAX)
-        return BOGUS_CASE;
-    else
-        return (unsigned int)x;
-}
-
-# define switch(x) switch(sizeof(x) > sizeof(unsigned int) \
-                          ? watcom_switch_hack(x) : (unsigned int)(x))
-
-/* This is to make sure BOGUS_CASE doesn't conflict with anything real... */
-# define default case BOGUS_CASE: default
-#endif
-
-#endif	/* NASM_COMPILER_H */
--- a/nasmbuild/nasm-2.13rc9/include/disp8.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2013 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * disp8.h   header file for disp8.c
- */
-
-#ifndef NASM_DISP8_H
-#define NASM_DISP8_H
-
-#include "nasm.h"
-
-uint8_t get_disp8N(insn *ins);
-bool is_disp8n(operand *input, insn *ins, int8_t *compdisp);
-#endif  /* NASM_DISP8_H */
--- a/nasmbuild/nasm-2.13rc9/include/error.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * Error reporting functions for the assembler
- */
-
-#ifndef NASM_ERROR_H
-#define NASM_ERROR_H 1
-
-#include "compiler.h"
-
-/*
- * An error reporting function should look like this.
- */
-void printf_func(2, 3) nasm_error(int severity, const char *fmt, ...);
-no_return printf_func(2, 3) nasm_fatal(int flags, const char *fmt, ...);
-no_return printf_func(2, 3) nasm_panic(int flags, const char *fmt, ...);
-no_return nasm_panic_from_macro(const char *file, int line);
-#define panic() nasm_panic_from_macro(__FILE__, __LINE__);
-
-typedef void (*vefunc) (int severity, const char *fmt, va_list ap);
-extern vefunc nasm_verror;
-static inline vefunc nasm_set_verror(vefunc ve)
-{
-    vefunc old_verror = nasm_verror;
-    nasm_verror = ve;
-    return old_verror;
-}
-
-/*
- * These are the error severity codes which get passed as the first
- * argument to an efunc.
- */
-
-#define ERR_DEBUG       0x00000000      /* put out debugging message */
-#define ERR_WARNING     0x00000001      /* warn only: no further action */
-#define ERR_NONFATAL    0x00000002      /* terminate assembly after phase */
-#define ERR_FATAL       0x00000006      /* instantly fatal: exit with error */
-#define ERR_PANIC       0x00000007      /* internal error: panic instantly
-                                         * and dump core for reference */
-#define ERR_MASK        0x00000007      /* mask off the above codes */
-#define ERR_NOFILE      0x00000010      /* don't give source file name/line */
-#define ERR_USAGE       0x00000020      /* print a usage message */
-#define ERR_PASS1       0x00000040      /* only print this error on pass one */
-#define ERR_PASS2       0x00000080
-
-#define ERR_NO_SEVERITY 0x00000100      /* suppress printing severity */
-#define ERR_PP_PRECOND	0x00000200	/* for preprocessor use */
-#define ERR_PP_LISTMACRO 0x00000400	/* from preproc->error_list_macros() */
-
-/*
- * These codes define specific types of suppressible warning.
- */
-
-#define ERR_WARN_MASK   0xFFFFF000      /* the mask for this feature */
-#define ERR_WARN_SHR    12              /* how far to shift right */
-
-#define WARN(x)         ((x) << ERR_WARN_SHR)
-#define WARN_IDX(x)     (((x) & ERR_WARN_MASK) >> ERR_WARN_SHR)
-
-#define ERR_WARN_OTHER          WARN( 0) /* any noncategorized warning */
-#define ERR_WARN_MNP            WARN( 1) /* macro-num-parameters warning */
-#define ERR_WARN_MSR            WARN( 2) /* macro self-reference */
-#define ERR_WARN_MDP            WARN( 3) /* macro default parameters check */
-#define ERR_WARN_OL             WARN( 4) /* orphan label (no colon, and
-                                          * alone on line) */
-#define ERR_WARN_NOV            WARN( 5) /* numeric overflow */
-#define ERR_WARN_GNUELF         WARN( 6) /* using GNU ELF extensions */
-#define ERR_WARN_FL_OVERFLOW    WARN( 7) /* FP overflow */
-#define ERR_WARN_FL_DENORM      WARN( 8) /* FP denormal */
-#define ERR_WARN_FL_UNDERFLOW   WARN( 9) /* FP underflow */
-#define ERR_WARN_FL_TOOLONG     WARN(10) /* FP too many digits */
-#define ERR_WARN_USER           WARN(11) /* %warning directives */
-#define ERR_WARN_LOCK		WARN(12) /* bad LOCK prefixes */
-#define ERR_WARN_HLE		WARN(13) /* bad HLE prefixes */
-#define ERR_WARN_BND		WARN(14) /* bad BND prefixes */
-#define ERR_WARN_ZEXTRELOC	WARN(15) /* relocation zero-extended */
-#define ERR_WARN_PTR		WARN(16) /* not a NASM keyword */
-#define ERR_WARN_BAD_PRAGMA	WARN(17) /* malformed pragma */
-#define ERR_WARN_UNKNOWN_PRAGMA	WARN(18) /* unknown pragma */
-#define ERR_WARN_NOTMY_PRAGMA	WARN(19) /* pragma inapplicable */
-#define ERR_WARN_UNK_WARNING	WARN(20) /* unknown warning */
-
-/* The "all" warning acts as a global switch, it must come last */
-#define ERR_WARN_ALL            21 /* Do not use WARN() here */
-
-struct warning {
-    const char *name;
-    const char *help;
-    bool enabled;
-};
-extern const struct warning warnings[ERR_WARN_ALL+1];
-
-/* This is a bitmask */
-#define WARN_ST_ENABLED      1   /* Warning is currently enabled */
-#define WARN_ST_ERROR        2   /* Treat this warning as an error */
-
-extern uint8_t warning_state[ERR_WARN_ALL];
-extern uint8_t warning_state_init[ERR_WARN_ALL];
-
-/* Process a warning option or directive */
-bool set_warning_status(const char *);
-
-#endif /* NASM_ERROR_H */
--- a/nasmbuild/nasm-2.13rc9/include/hashtbl.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * hashtbl.h
- *
- * Efficient dictionary hash table class.
- */
-
-#ifndef NASM_HASHTBL_H
-#define NASM_HASHTBL_H
-
-#include <stddef.h>
-#include "nasmlib.h"
-
-struct hash_tbl_node {
-    uint64_t hash;
-    const char *key;
-    void *data;
-};
-
-struct hash_table {
-    struct hash_tbl_node *table;
-    size_t load;
-    size_t size;
-    size_t max_load;
-};
-
-struct hash_insert {
-    uint64_t hash;
-    struct hash_table *head;
-    struct hash_tbl_node *where;
-};
-
-uint64_t crc64(uint64_t crc, const char *string);
-uint64_t crc64i(uint64_t crc, const char *string);
-#define CRC64_INIT UINT64_C(0xffffffffffffffff)
-
-/* Some reasonable initial sizes... */
-#define HASH_SMALL	4
-#define HASH_MEDIUM	16
-#define HASH_LARGE	256
-
-void hash_init(struct hash_table *head, size_t size);
-void **hash_find(struct hash_table *head, const char *string,
-		struct hash_insert *insert);
-void **hash_findi(struct hash_table *head, const char *string,
-		struct hash_insert *insert);
-void **hash_add(struct hash_insert *insert, const char *string, void *data);
-void *hash_iterate(const struct hash_table *head,
-		   struct hash_tbl_node **iterator,
-		   const char **key);
-void hash_free(struct hash_table *head);
-
-#endif /* NASM_HASHTBL_H */
--- a/nasmbuild/nasm-2.13rc9/include/iflag.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-#ifndef NASM_IFLAG_H
-#define NASM_IFLAG_H
-
-#include <string.h>
-
-#include "compiler.h"
-
-int ilog2_32(uint32_t v);
-
-#include "iflaggen.h"
-
-#define IF_GENBIT(bit)          (UINT32_C(1) << (bit))
-
-static inline unsigned int iflag_test(const iflag_t *f, unsigned int bit)
-{
-    unsigned int index = bit / 32;
-    return f->field[index] & (UINT32_C(1) << (bit - (index * 32)));
-}
-
-static inline void iflag_set(iflag_t *f, unsigned int bit)
-{
-    unsigned int index = bit / 32;
-    f->field[index] |= (UINT32_C(1) << (bit - (index * 32)));
-}
-
-static inline void iflag_clear(iflag_t *f, unsigned int bit)
-{
-    unsigned int index = bit / 32;
-    f->field[index] &= ~(UINT32_C(1) << (bit - (index * 32)));
-}
-
-static inline void iflag_clear_all(iflag_t *f)
-{
-     memset(f, 0, sizeof(*f));
-}
-
-static inline void iflag_set_all(iflag_t *f)
-{
-     memset(f, 0xff, sizeof(*f));
-}
-
-static inline int iflag_cmp(const iflag_t *a, const iflag_t *b)
-{
-    int i;
-
-    for (i = sizeof(a->field) / sizeof(a->field[0]) - 1; i >= 0; i--) {
-        if (a->field[i] == b->field[i])
-            continue;
-
-        return (a->field[i] > b->field[i]) ? 1 : -1;
-    }
-
-    return 0;
-}
-
-static inline int iflag_cmp_cpu(const iflag_t *a, const iflag_t *b)
-{
-    if (a->field[3] < b->field[3])
-        return -1;
-    else if (a->field[3] > b->field[3])
-        return 1;
-    return 0;
-}
-
-static inline unsigned int iflag_ffs(const iflag_t *a)
-{
-    unsigned int i;
-
-    for (i = 0; i < sizeof(a->field) / sizeof(a->field[0]); i++) {
-        if (a->field[i])
-            return ilog2_32(a->field[i]) + (i * 32);
-    }
-
-    return 0;
-}
-
-#define IF_GEN_HELPER(name, op)                                         \
-    static inline iflag_t iflag_##name(const iflag_t *a, const iflag_t *b) \
-    {                                                                   \
-        unsigned int i;                                                 \
-        iflag_t res;                                                    \
-                                                                        \
-        for (i = 0; i < sizeof(a->field) / sizeof(a->field[0]); i++)    \
-            res.field[i] = a->field[i] op b->field[i];                  \
-                                                                        \
-        return res;                                                     \
-    }
-
-IF_GEN_HELPER(xor, ^)
-
-
-/* Use this helper to test instruction template flags */
-#define itemp_has(itemp, bit)   iflag_test(&insns_flags[(itemp)->iflag_idx], bit)
-
-
-/* Maximum processor level at moment */
-#define IF_PLEVEL               IF_IA64
-/* Some helpers which are to work with predefined masks */
-#define IF_SMASK        \
-    (IF_GENBIT(IF_SB)  |\
-     IF_GENBIT(IF_SW)  |\
-     IF_GENBIT(IF_SD)  |\
-     IF_GENBIT(IF_SQ)  |\
-     IF_GENBIT(IF_SO)  |\
-     IF_GENBIT(IF_SY)  |\
-     IF_GENBIT(IF_SZ)  |\
-     IF_GENBIT(IF_SIZE))
-#define IF_ARMASK       \
-    (IF_GENBIT(IF_AR0) |\
-     IF_GENBIT(IF_AR1) |\
-     IF_GENBIT(IF_AR2) |\
-     IF_GENBIT(IF_AR3) |\
-     IF_GENBIT(IF_AR4))
-
-#define _itemp_smask(idx)      (insns_flags[(idx)].field[0] & IF_SMASK)
-#define _itemp_armask(idx)     (insns_flags[(idx)].field[0] & IF_ARMASK)
-#define _itemp_arg(idx)        ((_itemp_armask(idx) >> IF_AR0) - 1)
-
-#define itemp_smask(itemp)      _itemp_smask((itemp)->iflag_idx)
-#define itemp_arg(itemp)        _itemp_arg((itemp)->iflag_idx)
-#define itemp_armask(itemp)     _itemp_armask((itemp)->iflag_idx)
-
-static inline int iflag_cmp_cpu_level(const iflag_t *a, const iflag_t *b)
-{
-    iflag_t v1 = *a;
-    iflag_t v2 = *b;
-
-    iflag_clear(&v1, IF_CYRIX);
-    iflag_clear(&v1, IF_AMD);
-
-    iflag_clear(&v2, IF_CYRIX);
-    iflag_clear(&v2, IF_AMD);
-
-    if (v1.field[3] < v2.field[3])
-        return -1;
-    else if (v1.field[3] > v2.field[3])
-        return 1;
-
-    return 0;
-}
-
-static inline iflag_t _iflag_pfmask(const iflag_t *a)
-{
-    iflag_t r;
-
-    iflag_clear_all(&r);
-
-    if (iflag_test(a, IF_CYRIX))
-        iflag_set(&r, IF_CYRIX);
-    if (iflag_test(a, IF_AMD))
-        iflag_set(&r, IF_AMD);
-
-    return r;
-}
-
-#define iflag_pfmask(itemp)     _iflag_pfmask(&insns_flags[(itemp)->iflag_idx])
-
-#endif /* NASM_IFLAG_H */
--- a/nasmbuild/nasm-2.13rc9/include/insns.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/* insns.h   header file for insns.c
- *
- * The Netwide Assembler is copyright (C) 1996 Simon Tatham and
- * Julian Hall. All rights reserved. The software is
- * redistributable under the license given in the file "LICENSE"
- * distributed in the NASM archive.
- */
-
-#ifndef NASM_INSNS_H
-#define NASM_INSNS_H
-
-#include "nasm.h"
-#include "tokens.h"
-#include "iflag.h"
-
-/* if changed, ITEMPLATE_END should be also changed accordingly */
-struct itemplate {
-    enum opcode     opcode;             /* the token, passed from "parser.c" */
-    int             operands;           /* number of operands */
-    opflags_t       opd[MAX_OPERANDS];  /* bit flags for operand types */
-    decoflags_t     deco[MAX_OPERANDS]; /* bit flags for operand decorators */
-    const uint8_t   *code;              /* the code it assembles to */
-    uint32_t        iflag_idx;          /* some flags referenced by index */
-};
-
-/* Disassembler table structure */
-
-/*
- * If n == -1, then p points to another table of 256
- * struct disasm_index, otherwise p points to a list of n
- * struct itemplates to consider.
- */
-struct disasm_index {
-    const void *p;
-    int n;
-};
-
-/* Tables for the assembler and disassembler, respectively */
-extern const struct itemplate * const nasm_instructions[];
-extern const struct disasm_index itable[256];
-extern const struct disasm_index * const itable_vex[NASM_VEX_CLASSES][32][4];
-
-/* Common table for the byte codes */
-extern const uint8_t nasm_bytecodes[];
-
-/*
- * this define is used to signify the end of an itemplate
- */
-#define ITEMPLATE_END {-1,-1,{-1,-1,-1,-1,-1},{-1,-1,-1,-1,-1},NULL,0}
-
-#endif /* NASM_INSNS_H */
--- a/nasmbuild/nasm-2.13rc9/include/labels.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,60 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/* 
- * labels.h  header file for labels.c
- */
-
-#ifndef LABELS_H
-#define LABELS_H
-
-#include "compiler.h"
-
-extern char lprefix[PREFIX_MAX];
-extern char lpostfix[PREFIX_MAX];
-
-bool lookup_label(const char *label, int32_t *segment, int64_t *offset);
-bool is_extern(const char *label);
-void define_label(char *label, int32_t segment, int64_t offset, char *special,
-                  bool is_norm, bool isextrn);
-void redefine_label(char *label, int32_t segment, int64_t offset, char *special,
-                    bool is_norm, bool isextrn);
-void define_common(char *label, int32_t segment, int32_t size, char *special);
-void declare_as_global(char *label, char *special);
-int init_labels(void);
-void cleanup_labels(void);
-char *local_scope(char *label);
-
-extern uint64_t global_offset_changed;
-
-#endif /* LABELS_H */
--- a/nasmbuild/nasm-2.13rc9/include/md5.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-#ifndef MD5_H
-#define MD5_H
-
-#include "compiler.h"
-
-#define MD5_HASHBYTES 16
-
-typedef struct MD5Context {
-	uint32_t buf[4];
-	uint32_t bits[2];
-	unsigned char in[64];
-} MD5_CTX;
-
-extern void   MD5Init(MD5_CTX *context);
-extern void   MD5Update(MD5_CTX *context, unsigned char const *buf,
-	       unsigned len);
-extern void   MD5Final(unsigned char digest[MD5_HASHBYTES], MD5_CTX *context);
-extern void   MD5Transform(uint32_t buf[4], uint32_t const in[16]);
-extern char * MD5End(MD5_CTX *, char *);
-
-#endif /* !MD5_H */
--- a/nasmbuild/nasm-2.13rc9/include/nasm.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1241 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * nasm.h   main header file for the Netwide Assembler: inter-module interface
- */
-
-#ifndef NASM_NASM_H
-#define NASM_NASM_H
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include "nasmlib.h"
-#include "strlist.h"
-#include "preproc.h"
-#include "insnsi.h"     /* For enum opcode */
-#include "directiv.h"   /* For enum directive */
-#include "opflags.h"
-#include "regs.h"
-
-#define NO_SEG -1L              /* null segment value */
-#define SEG_ABS 0x40000000L     /* mask for far-absolute segments */
-
-#ifndef FILENAME_MAX
-#define FILENAME_MAX 256
-#endif
-
-#ifndef PREFIX_MAX
-#define PREFIX_MAX 10
-#endif
-
-#ifndef POSTFIX_MAX
-#define POSTFIX_MAX 10
-#endif
-
-#define IDLEN_MAX 4096
-#define DECOLEN_MAX 32
-
-/*
- * Name pollution problems: <time.h> on Digital UNIX pulls in some
- * strange hardware header file which sees fit to define R_SP. We
- * undefine it here so as not to break the enum below.
- */
-#ifdef R_SP
-#undef R_SP
-#endif
-
-/*
- * We must declare the existence of this structure type up here,
- * since we have to reference it before we define it...
- */
-struct ofmt;
-
-/*
- * Values for the `type' parameter to an output function.
- */
-enum out_type {
-    OUT_RAWDATA,    /* Plain bytes */
-    OUT_RESERVE,    /* Reserved bytes (RESB et al) */
-    OUT_ADDRESS,    /* An address (symbol value) */
-    OUT_RELADDR,    /* A relative address */
-    OUT_SEGMENT,    /* A segment number */
-
-    /*
-     * These values are used by the legacy backend interface only;
-     * see output/legacy.c for more information.  These should never
-     * be used otherwise.  Once all backends have been migrated to the
-     * new interface they should be removed.
-     */
-    OUT_REL1ADR,
-    OUT_REL2ADR,
-    OUT_REL4ADR,
-    OUT_REL8ADR
-};
-
-enum out_sign {
-    OUT_WRAP,                   /* Undefined signedness (wraps) */
-    OUT_SIGNED,                 /* Value is signed */
-    OUT_UNSIGNED                /* Value is unsigned */
-};
-
-/*
- * The data we send down to the backend.
- * XXX: We still want to push down the base address symbol if
- * available, and replace the segment numbers with a structure.
- */
-struct out_data {
-    int64_t offset;             /* Offset within segment */
-    int32_t segment;            /* Segment written to */
-    enum out_type type;         /* See above */
-    enum out_sign sign;         /* See above */
-    int inslen;                 /* Length of instruction */
-    int insoffs;                /* Offset inside instruction */
-    int bits;                   /* Bits mode of compilation */
-    uint64_t size;              /* Size of output */
-    const struct itemplate *itemp; /* Instruction template */
-    const void *data;           /* Data for OUT_RAWDATA */
-    uint64_t toffset;           /* Target address offset for relocation */
-    int32_t tsegment;           /* Target segment for relocation */
-    int32_t twrt;               /* Relocation with respect to */
-    int64_t relbase;            /* Relative base for OUT_RELADDR */
-};
-
-/*
- * A label-lookup function.
- */
-typedef bool (*lfunc)(char *label, int32_t *segment, int64_t *offset);
-
-/*
- * And a label-definition function. The boolean parameter
- * `is_norm' states whether the label is a `normal' label (which
- * should affect the local-label system), or something odder like
- * an EQU or a segment-base symbol, which shouldn't.
- */
-typedef void (*ldfunc)(char *label, int32_t segment, int64_t offset,
-                       char *special, bool is_norm, bool isextrn);
-
-void define_label(char *label, int32_t segment, int64_t offset,
-                  char *special, bool is_norm, bool isextrn);
-
-/*
- * Token types returned by the scanner, in addition to ordinary
- * ASCII character values, and zero for end-of-string.
- */
-enum token_type { /* token types, other than chars */
-    TOKEN_INVALID = -1, /* a placeholder value */
-    TOKEN_EOS = 0,      /* end of string */
-    TOKEN_EQ = '=',
-    TOKEN_GT = '>',
-    TOKEN_LT = '<',     /* aliases */
-    TOKEN_ID = 256,     /* identifier */
-    TOKEN_NUM,          /* numeric constant */
-    TOKEN_ERRNUM,       /* malformed numeric constant */
-    TOKEN_STR,          /* string constant */
-    TOKEN_ERRSTR,       /* unterminated string constant */
-    TOKEN_FLOAT,        /* floating-point constant */
-    TOKEN_REG,          /* register name */
-    TOKEN_INSN,         /* instruction name */
-    TOKEN_HERE,         /* $ */
-    TOKEN_BASE,         /* $$ */
-    TOKEN_SPECIAL,      /* BYTE, WORD, DWORD, QWORD, FAR, NEAR, etc */
-    TOKEN_PREFIX,       /* A32, O16, LOCK, REPNZ, TIMES, etc */
-    TOKEN_SHL,          /* << */
-    TOKEN_SHR,          /* >> */
-    TOKEN_SDIV,         /* // */
-    TOKEN_SMOD,         /* %% */
-    TOKEN_GE,           /* >= */
-    TOKEN_LE,           /* <= */
-    TOKEN_NE,           /* <> (!= is same as <>) */
-    TOKEN_DBL_AND,      /* && */
-    TOKEN_DBL_OR,       /* || */
-    TOKEN_DBL_XOR,      /* ^^ */
-    TOKEN_SEG,          /* SEG */
-    TOKEN_WRT,          /* WRT */
-    TOKEN_FLOATIZE,     /* __floatX__ */
-    TOKEN_STRFUNC,      /* __utf16*__, __utf32*__ */
-    TOKEN_IFUNC,        /* __ilog2*__ */
-    TOKEN_DECORATOR,    /* decorators such as {...} */
-    TOKEN_OPMASK        /* translated token for opmask registers */
-};
-
-enum floatize {
-    FLOAT_8,
-    FLOAT_16,
-    FLOAT_32,
-    FLOAT_64,
-    FLOAT_80M,
-    FLOAT_80E,
-    FLOAT_128L,
-    FLOAT_128H
-};
-
-/* Must match the list in string_transform(), in strfunc.c */
-enum strfunc {
-    STRFUNC_UTF16,
-    STRFUNC_UTF16LE,
-    STRFUNC_UTF16BE,
-    STRFUNC_UTF32,
-    STRFUNC_UTF32LE,
-    STRFUNC_UTF32BE
-};
-
-enum ifunc {
-    IFUNC_ILOG2E,
-    IFUNC_ILOG2W,
-    IFUNC_ILOG2F,
-    IFUNC_ILOG2C
-};
-
-size_t string_transform(char *, size_t, char **, enum strfunc);
-
-/*
- * The expression evaluator must be passed a scanner function; a
- * standard scanner is provided as part of nasmlib.c. The
- * preprocessor will use a different one. Scanners, and the
- * token-value structures they return, look like this.
- *
- * The return value from the scanner is always a copy of the
- * `t_type' field in the structure.
- */
-struct tokenval {
-    char                *t_charptr;
-    int64_t             t_integer;
-    int64_t             t_inttwo;
-    enum token_type     t_type;
-    int8_t              t_flag;
-};
-typedef int (*scanner)(void *private_data, struct tokenval *tv);
-
-struct location {
-    int64_t offset;
-    int32_t segment;
-    int     known;
-};
-extern struct location location;
-
-/*
- * Expression-evaluator datatype. Expressions, within the
- * evaluator, are stored as an array of these beasts, terminated by
- * a record with type==0. Mostly, it's a vector type: each type
- * denotes some kind of a component, and the value denotes the
- * multiple of that component present in the expression. The
- * exception is the WRT type, whose `value' field denotes the
- * segment to which the expression is relative. These segments will
- * be segment-base types, i.e. either odd segment values or SEG_ABS
- * types. So it is still valid to assume that anything with a
- * `value' field of zero is insignificant.
- */
-typedef struct {
-    int32_t type;                  /* a register, or EXPR_xxx */
-    int64_t value;                 /* must be >= 32 bits */
-} expr;
-
-/*
- * Library routines to manipulate expression data types.
- */
-bool is_reloc(const expr *vect);
-bool is_simple(const expr *vect);
-bool is_really_simple(const expr *vect);
-bool is_unknown(const expr *vect);
-bool is_just_unknown(const expr *vect);
-int64_t reloc_value(const expr *vect);
-int32_t reloc_seg(const expr *vect);
-int32_t reloc_wrt(const expr *vect);
-bool is_self_relative(const expr *vect);
-void dump_expr(const expr *vect);
-
-/*
- * The evaluator can also return hints about which of two registers
- * used in an expression should be the base register. See also the
- * `operand' structure.
- */
-struct eval_hints {
-    int64_t base;
-    int     type;
-};
-
-/*
- * The actual expression evaluator function looks like this. When
- * called, it expects the first token of its expression to already
- * be in `*tv'; if it is not, set tv->t_type to TOKEN_INVALID and
- * it will start by calling the scanner.
- *
- * If a forward reference happens during evaluation, the evaluator
- * must set `*fwref' to true if `fwref' is non-NULL.
- *
- * `critical' is non-zero if the expression may not contain forward
- * references. The evaluator will report its own error if this
- * occurs; if `critical' is 1, the error will be "symbol not
- * defined before use", whereas if `critical' is 2, the error will
- * be "symbol undefined".
- *
- * If `critical' has bit 8 set (in addition to its main value: 0x101
- * and 0x102 correspond to 1 and 2) then an extended expression
- * syntax is recognised, in which relational operators such as =, <
- * and >= are accepted, as well as low-precedence logical operators
- * &&, ^^ and ||.
- *
- * If `hints' is non-NULL, it gets filled in with some hints as to
- * the base register in complex effective addresses.
- */
-#define CRITICAL 0x100
-typedef expr *(*evalfunc)(scanner sc, void *scprivate,
-                          struct tokenval *tv, int *fwref, int critical,
-                          struct eval_hints *hints);
-
-/*
- * Special values for expr->type.
- * These come after EXPR_REG_END as defined in regs.h.
- * Expr types : 0 ~ EXPR_REG_END, EXPR_UNKNOWN, EXPR_...., EXPR_RDSAE,
- *              EXPR_SEGBASE ~ EXPR_SEGBASE + SEG_ABS, ...
- */
-#define EXPR_UNKNOWN    (EXPR_REG_END+1) /* forward references */
-#define EXPR_SIMPLE     (EXPR_REG_END+2)
-#define EXPR_WRT        (EXPR_REG_END+3)
-#define EXPR_RDSAE      (EXPR_REG_END+4)
-#define EXPR_SEGBASE    (EXPR_REG_END+5)
-
-/*
- * preprocessors ought to look like this:
- */
-struct preproc_ops {
-    /*
-     * Called once at the very start of assembly.
-     */
-    void (*init)(void);
-
-    /*
-     * Called at the start of a pass; given a file name, the number
-     * of the pass, an error reporting function, an evaluator
-     * function, and a listing generator to talk to.
-     */
-    void (*reset)(char *file, int pass, StrList **deplist);
-
-    /*
-     * Called to fetch a line of preprocessed source. The line
-     * returned has been malloc'ed, and so should be freed after
-     * use.
-     */
-    char *(*getline)(void);
-
-    /* Called at the end of a pass */
-    void (*cleanup)(int pass);
-
-    /* Additional macros specific to output format */
-    void (*extra_stdmac)(macros_t *macros);
-
-    /* Early definitions and undefinitions for macros */
-    void (*pre_define)(char *definition);
-    void (*pre_undefine)(char *definition);
-
-    /* Include file from command line */
-    void (*pre_include)(char *fname);
-
-    /* Include path from command line */
-    void (*include_path)(char *path);
-
-    /* Unwind the macro stack when printing an error message */
-    void (*error_list_macros)(int severity);
-};
-
-extern const struct preproc_ops nasmpp;
-extern const struct preproc_ops preproc_nop;
-
-/*
- * Some lexical properties of the NASM source language, included
- * here because they are shared between the parser and preprocessor.
- */
-
-/*
- * isidstart matches any character that may start an identifier, and isidchar
- * matches any character that may appear at places other than the start of an
- * identifier. E.g. a period may only appear at the start of an identifier
- * (for local labels), whereas a number may appear anywhere *but* at the
- * start.
- * isbrcchar matches any character that may placed inside curly braces as a
- * decorator. E.g. {rn-sae}, {1to8}, {k1}{z}
- */
-
-#define isidstart(c) (nasm_isalpha(c)   ||  \
-                      (c) == '_'        ||  \
-                      (c) == '.'        ||  \
-                      (c) == '?'        ||  \
-                      (c) == '@')
-
-#define isidchar(c) (isidstart(c)       ||  \
-                     nasm_isdigit(c)    ||  \
-                     (c) == '$'         ||  \
-                     (c) == '#'         ||  \
-                     (c) == '~')
-
-#define isbrcchar(c) (isidchar(c)       ||  \
-                      (c) == '-')
-
-/* Ditto for numeric constants. */
-
-#define isnumstart(c)  (nasm_isdigit(c) || (c) == '$')
-#define isnumchar(c)   (nasm_isalnum(c) || (c) == '_')
-
-/*
- * inline function to skip past an identifier; returns the first character past
- * the identifier if valid, otherwise NULL.
- */
-static inline char *nasm_skip_identifier(const char *str)
-{
-    const char *p = str;
-
-    if (!isidstart(*p++)) {
-        p = NULL;
-    } else {
-        while (isidchar(*p++))
-            ;
-    }
-    return (char *)p;
-}
-
-/*
- * Data-type flags that get passed to listing-file routines.
- */
-enum {
-    LIST_READ,
-    LIST_MACRO,
-    LIST_MACRO_NOLIST,
-    LIST_INCLUDE,
-    LIST_INCBIN,
-    LIST_TIMES
-};
-
-/*
- * -----------------------------------------------------------
- * Format of the `insn' structure returned from `parser.c' and
- * passed into `assemble.c'
- * -----------------------------------------------------------
- */
-
-/* Verify value to be a valid register */
-static inline bool is_register(int reg)
-{
-    return reg >= EXPR_REG_START && reg < REG_ENUM_LIMIT;
-}
-
-enum ccode { /* condition code names */
-    C_A, C_AE, C_B, C_BE, C_C, C_E, C_G, C_GE, C_L, C_LE, C_NA, C_NAE,
-    C_NB, C_NBE, C_NC, C_NE, C_NG, C_NGE, C_NL, C_NLE, C_NO, C_NP,
-    C_NS, C_NZ, C_O, C_P, C_PE, C_PO, C_S, C_Z,
-    C_none = -1
-};
-
-/*
- * token flags
- */
-#define TFLAG_BRC       (1 << 0)    /* valid only with braces. {1to8}, {rd-sae}, ...*/
-#define TFLAG_BRC_OPT   (1 << 1)    /* may or may not have braces. opmasks {k1} */
-#define TFLAG_BRC_ANY   (TFLAG_BRC | TFLAG_BRC_OPT)
-#define TFLAG_BRDCAST   (1 << 2)    /* broadcasting decorator */
-#define TFLAG_WARN	(1 << 3)    /* warning only, treat as ID */
-
-static inline uint8_t get_cond_opcode(enum ccode c)
-{
-    static const uint8_t ccode_opcodes[] = {
-        0x7, 0x3, 0x2, 0x6, 0x2, 0x4, 0xf, 0xd, 0xc, 0xe, 0x6, 0x2,
-        0x3, 0x7, 0x3, 0x5, 0xe, 0xc, 0xd, 0xf, 0x1, 0xb, 0x9, 0x5,
-        0x0, 0xa, 0xa, 0xb, 0x8, 0x4
-    };
-
-	return ccode_opcodes[(int)c];
-}
-
-/*
- * REX flags
- */
-#define REX_MASK    0x4f    /* Actual REX prefix bits */
-#define REX_B       0x01    /* ModRM r/m extension */
-#define REX_X       0x02    /* SIB index extension */
-#define REX_R       0x04    /* ModRM reg extension */
-#define REX_W       0x08    /* 64-bit operand size */
-#define REX_L       0x20    /* Use LOCK prefix instead of REX.R */
-#define REX_P       0x40    /* REX prefix present/required */
-#define REX_H       0x80    /* High register present, REX forbidden */
-#define REX_V       0x0100  /* Instruction uses VEX/XOP instead of REX */
-#define REX_NH      0x0200  /* Instruction which doesn't use high regs */
-#define REX_EV      0x0400  /* Instruction uses EVEX instead of REX */
-
-/*
- * EVEX bit field
- */
-#define EVEX_P0MM       0x0f        /* EVEX P[3:0] : Opcode map           */
-#define EVEX_P0RP       0x10        /* EVEX P[4] : High-16 reg            */
-#define EVEX_P0X        0x40        /* EVEX P[6] : High-16 rm             */
-#define EVEX_P1PP       0x03        /* EVEX P[9:8] : Legacy prefix        */
-#define EVEX_P1VVVV     0x78        /* EVEX P[14:11] : NDS register       */
-#define EVEX_P1W        0x80        /* EVEX P[15] : Osize extension       */
-#define EVEX_P2AAA      0x07        /* EVEX P[18:16] : Embedded opmask    */
-#define EVEX_P2VP       0x08        /* EVEX P[19] : High-16 NDS reg       */
-#define EVEX_P2B        0x10        /* EVEX P[20] : Broadcast / RC / SAE  */
-#define EVEX_P2LL       0x60        /* EVEX P[22:21] : Vector length      */
-#define EVEX_P2RC       EVEX_P2LL   /* EVEX P[22:21] : Rounding control   */
-#define EVEX_P2Z        0x80        /* EVEX P[23] : Zeroing/Merging       */
-
-/*
- * REX_V "classes" (prefixes which behave like VEX)
- */
-enum vex_class {
-    RV_VEX      = 0,    /* C4/C5 */
-    RV_XOP      = 1,    /* 8F */
-    RV_EVEX     = 2     /* 62 */
-};
-
-/*
- * Note that because segment registers may be used as instruction
- * prefixes, we must ensure the enumerations for prefixes and
- * register names do not overlap.
- */
-enum prefixes { /* instruction prefixes */
-    P_none = 0,
-    PREFIX_ENUM_START = REG_ENUM_LIMIT,
-    P_A16 = PREFIX_ENUM_START,
-    P_A32,
-    P_A64,
-    P_ASP,
-    P_LOCK,
-    P_O16,
-    P_O32,
-    P_O64,
-    P_OSP,
-    P_REP,
-    P_REPE,
-    P_REPNE,
-    P_REPNZ,
-    P_REPZ,
-    P_TIMES,
-    P_WAIT,
-    P_XACQUIRE,
-    P_XRELEASE,
-    P_BND,
-    P_NOBND,
-    P_EVEX,
-    P_VEX3,
-    P_VEX2,
-    PREFIX_ENUM_LIMIT
-};
-
-enum extop_type { /* extended operand types */
-    EOT_NOTHING,
-    EOT_DB_STRING,      /* Byte string */
-    EOT_DB_STRING_FREE, /* Byte string which should be nasm_free'd*/
-    EOT_DB_NUMBER       /* Integer */
-};
-
-enum ea_flags { /* special EA flags */
-    EAF_BYTEOFFS    =  1,   /* force offset part to byte size */
-    EAF_WORDOFFS    =  2,   /* force offset part to [d]word size */
-    EAF_TIMESTWO    =  4,   /* really do EAX*2 not EAX+EAX */
-    EAF_REL         =  8,   /* IP-relative addressing */
-    EAF_ABS         = 16,   /* non-IP-relative addressing */
-    EAF_FSGS        = 32,   /* fs/gs segment override present */
-    EAF_MIB         = 64    /* mib operand */
-};
-
-enum eval_hint { /* values for `hinttype' */
-    EAH_NOHINT   = 0,       /* no hint at all - our discretion */
-    EAH_MAKEBASE = 1,       /* try to make given reg the base */
-    EAH_NOTBASE  = 2,       /* try _not_ to make reg the base */
-    EAH_SUMMED   = 3        /* base and index are summed into index */
-};
-
-typedef struct operand { /* operand to an instruction */
-    opflags_t       type;       /* type of operand */
-    int             disp_size;  /* 0 means default; 16; 32; 64 */
-    enum reg_enum   basereg;
-    enum reg_enum   indexreg;   /* address registers */
-    int             scale;      /* index scale */
-    int             hintbase;
-    enum eval_hint  hinttype;   /* hint as to real base register */
-    int32_t         segment;    /* immediate segment, if needed */
-    int64_t         offset;     /* any immediate number */
-    int32_t         wrt;        /* segment base it's relative to */
-    int             eaflags;    /* special EA flags */
-    int             opflags;    /* see OPFLAG_* defines below */
-    decoflags_t     decoflags;  /* decorator flags such as {...} */
-} operand;
-
-#define OPFLAG_FORWARD      1   /* operand is a forward reference */
-#define OPFLAG_EXTERN       2   /* operand is an external reference */
-#define OPFLAG_UNKNOWN      4   /* operand is an unknown reference
-                                   (always a forward reference also) */
-#define OPFLAG_RELATIVE     8   /* operand is self-relative, e.g. [foo - $]
-                                   where foo is not in the current segment */
-
-typedef struct extop { /* extended operand */
-    struct extop    *next;      /* linked list */
-    char            *stringval; /* if it's a string, then here it is */
-    size_t          stringlen;  /* ... and here's how long it is */
-    int64_t         offset;     /* ... it's given here ... */
-    int32_t         segment;    /* if it's a number/address, then... */
-    int32_t         wrt;        /* ... and here */
-    bool            relative;   /* self-relative expression */
-    enum extop_type type;       /* defined above */
-} extop;
-
-enum ea_type {
-    EA_INVALID,     /* Not a valid EA at all */
-    EA_SCALAR,      /* Scalar EA */
-    EA_XMMVSIB,     /* XMM vector EA */
-    EA_YMMVSIB,     /* YMM vector EA */
-    EA_ZMMVSIB      /* ZMM vector EA */
-};
-
-/*
- * Prefix positions: each type of prefix goes in a specific slot.
- * This affects the final ordering of the assembled output, which
- * shouldn't matter to the processor, but if you have stylistic
- * preferences, you can change this.  REX prefixes are handled
- * differently for the time being.
- *
- * LOCK and REP used to be one slot; this is no longer the case since
- * the introduction of HLE.
- */
-enum prefix_pos {
-    PPS_WAIT,   /* WAIT (technically not a prefix!) */
-    PPS_REP,    /* REP/HLE prefix */
-    PPS_LOCK,   /* LOCK prefix */
-    PPS_SEG,    /* Segment override prefix */
-    PPS_OSIZE,  /* Operand size prefix */
-    PPS_ASIZE,  /* Address size prefix */
-    PPS_VEX,    /* VEX type */
-    MAXPREFIX   /* Total number of prefix slots */
-};
-
-/*
- * Tuple types that are used when determining Disp8*N eligibility
- * The order must match with a hash %tuple_codes in insns.pl
- */
-enum ttypes {
-    FV    = 001,
-    HV    = 002,
-    FVM   = 003,
-    T1S8  = 004,
-    T1S16 = 005,
-    T1S   = 006,
-    T1F32 = 007,
-    T1F64 = 010,
-    T2    = 011,
-    T4    = 012,
-    T8    = 013,
-    HVM   = 014,
-    QVM   = 015,
-    OVM   = 016,
-    M128  = 017,
-    DUP   = 020
-};
-
-/* EVEX.L'L : Vector length on vector insns */
-enum vectlens {
-    VL128 = 0,
-    VL256 = 1,
-    VL512 = 2,
-    VLMAX = 3
-};
-
-/* If you need to change this, also change it in insns.pl */
-#define MAX_OPERANDS 5
-
-typedef struct insn { /* an instruction itself */
-    char            *label;                 /* the label defined, or NULL */
-    int             prefixes[MAXPREFIX];    /* instruction prefixes, if any */
-    enum opcode     opcode;                 /* the opcode - not just the string */
-    enum ccode      condition;              /* the condition code, if Jcc/SETcc */
-    int             operands;               /* how many operands? 0-3 (more if db et al) */
-    int             addr_size;              /* address size */
-    operand         oprs[MAX_OPERANDS];     /* the operands, defined as above */
-    extop           *eops;                  /* extended operands */
-    int             eops_float;             /* true if DD and floating */
-    int32_t         times;                  /* repeat count (TIMES prefix) */
-    bool            forw_ref;               /* is there a forward reference? */
-    bool            rex_done;               /* REX prefix emitted? */
-    int             rex;                    /* Special REX Prefix */
-    int             vexreg;                 /* Register encoded in VEX prefix */
-    int             vex_cm;                 /* Class and M field for VEX prefix */
-    int             vex_wlp;                /* W, P and L information for VEX prefix */
-    uint8_t         evex_p[3];              /* EVEX.P0: [RXB,R',00,mm], P1: [W,vvvv,1,pp] */
-                                            /* EVEX.P2: [z,L'L,b,V',aaa] */
-    enum ttypes     evex_tuple;             /* Tuple type for compressed Disp8*N */
-    int             evex_rm;                /* static rounding mode for AVX512 (EVEX) */
-    int8_t          evex_brerop;            /* BR/ER/SAE operand position */
-} insn;
-
-enum geninfo { GI_SWITCH };
-
-/* Instruction flags type: IF_* flags are defined in insns.h */
-typedef uint64_t iflags_t;
-
-/*
- * What to return from a directive- or pragma-handling function.
- * Currently DIRR_OK and DIRR_ERROR are treated the same way;
- * in both cases the backend is expected to produce the appropriate
- * error message on its own.
- *
- * DIRR_BADPARAM causes a generic error message to be printed.  Note
- * that it is an error, not a warning, even in the case of pragmas;
- * don't use it where forward compatiblity would be compromised
- * (instead consider adding a DIRR_WARNPARAM.)
- */
-enum directive_result {
-    DIRR_UNKNOWN,               /* Directive not handled by backend */
-    DIRR_OK,                    /* Directive processed */
-    DIRR_ERROR,                 /* Directive processed unsuccessfully */
-    DIRR_BADPARAM               /* Print bad argument error message */
-};
-
-/*
- * A pragma facility: this structure is used to request passing a
- * parsed pragma directive for a specific facility.  If the handler is
- * NULL then this pragma facility is recognized but ignored; pragma
- * processing stops at that point.
- *
- * Note that the handler is passed a pointer to the facility structure
- * as part of the struct pragma.
- */
-struct pragma;
-
-struct pragma_facility {
-    const char *name;
-    enum directive_result (*handler)(const struct pragma *);
-};
-
-/*
- * This structure defines how a pragma directive is passed to a
- * facility.  This structure may be augmented in the future.
- *
- * Any facility MAY, but is not required to, add its operations
- * keywords or a subset thereof into asm/directiv.dat, in which case
- * the "opcode" field will be set to the corresponding D_ constant
- * from directiv.h; otherwise it will be D_unknown.
- */
-struct pragma {
-    const struct pragma_facility *facility;
-    const char *facility_name;  /* Facility name exactly as entered by user */
-    const char *opname;         /* First word after the facility name */
-    const char *tail;           /* Anything after the operation */
-    enum directives opcode;     /* Operation as a D_ directives constant */
-};
-
-/*
- * The data structure defining an output format driver, and the
- * interfaces to the functions therein.
- */
-struct ofmt {
-    /*
-     * This is a short (one-liner) description of the type of
-     * output generated by the driver.
-     */
-    const char *fullname;
-
-    /*
-     * This is a single keyword used to select the driver.
-     */
-    const char *shortname;
-
-    /*
-     * Output format flags.
-     */
-#define OFMT_TEXT   1		/* Text file format */
-    unsigned int flags;
-
-    int maxbits;                /* Maximum segment bits supported */
-
-    /*
-     * this is a pointer to the first element of the debug information
-     */
-    const struct dfmt * const *debug_formats;
-
-    /*
-     * the default debugging format if -F is not specified
-     */
-    const struct dfmt *default_dfmt;
-
-    /*
-     * This, if non-NULL, is a NULL-terminated list of `char *'s
-     * pointing to extra standard macros supplied by the object
-     * format (e.g. a sensible initial default value of __SECT__,
-     * and user-level equivalents for any format-specific
-     * directives).
-     */
-    macros_t *stdmac;
-
-    /*
-     * This procedure is called at the start of an output session to set
-     * up internal parameters.
-     */
-    void (*init)(void);
-
-    /*
-     * This procedure is called to pass generic information to the
-     * object file.  The first parameter gives the information type
-     * (currently only command line switches)
-     * and the second parameter gives the value.  This function returns
-     * 1 if recognized, 0 if unrecognized
-     */
-    int (*setinfo)(enum geninfo type, char **string);
-
-    /*
-     * This is the modern output function, which gets passed
-     * a struct out_data with much more information.  See the
-     * definition of struct out_data.
-     */
-    void (*output)(const struct out_data *data);
-
-    /*
-     * This procedure is called by assemble() to write actual
-     * generated code or data to the object file. Typically it
-     * doesn't have to actually _write_ it, just store it for
-     * later.
-     *
-     * The `type' argument specifies the type of output data, and
-     * usually the size as well: its contents are described below.
-     *
-     * This is used for backends which have not yet been ported to
-     * the new interface, and should be NULL on ported backends.
-     * To use this entry point, set the output pointer to
-     * nasm_do_legacy_output.
-     */
-    void (*legacy_output)(int32_t segto, const void *data,
-                          enum out_type type, uint64_t size,
-                          int32_t segment, int32_t wrt);
-
-    /*
-     * This procedure is called once for every symbol defined in
-     * the module being assembled. It gives the name and value of
-     * the symbol, in NASM's terms, and indicates whether it has
-     * been declared to be global. Note that the parameter "name",
-     * when passed, will point to a piece of static storage
-     * allocated inside the label manager - it's safe to keep using
-     * that pointer, because the label manager doesn't clean up
-     * until after the output driver has.
-     *
-     * Values of `is_global' are: 0 means the symbol is local; 1
-     * means the symbol is global; 2 means the symbol is common (in
-     * which case `offset' holds the _size_ of the variable).
-     * Anything else is available for the output driver to use
-     * internally.
-     *
-     * This routine explicitly _is_ allowed to call the label
-     * manager to define further symbols, if it wants to, even
-     * though it's been called _from_ the label manager. That much
-     * re-entrancy is guaranteed in the label manager. However, the
-     * label manager will in turn call this routine, so it should
-     * be prepared to be re-entrant itself.
-     *
-     * The `special' parameter contains special information passed
-     * through from the command that defined the label: it may have
-     * been an EXTERN, a COMMON or a GLOBAL. The distinction should
-     * be obvious to the output format from the other parameters.
-     */
-    void (*symdef)(char *name, int32_t segment, int64_t offset,
-                   int is_global, char *special);
-
-    /*
-     * This procedure is called when the source code requests a
-     * segment change. It should return the corresponding segment
-     * _number_ for the name, or NO_SEG if the name is not a valid
-     * segment name.
-     *
-     * It may also be called with NULL, in which case it is to
-     * return the _default_ section number for starting assembly in.
-     *
-     * It is allowed to modify the string it is given a pointer to.
-     *
-     * It is also allowed to specify a default instruction size for
-     * the segment, by setting `*bits' to 16 or 32. Or, if it
-     * doesn't wish to define a default, it can leave `bits' alone.
-     */
-    int32_t (*section)(char *name, int pass, int *bits);
-
-    /*
-     * This procedure is called to modify section alignment,
-     * note there is a trick, the alignment can only increase
-     */
-    void (*sectalign)(int32_t seg, unsigned int value);
-
-    /*
-     * This procedure is called to modify the segment base values
-     * returned from the SEG operator. It is given a segment base
-     * value (i.e. a segment value with the low bit set), and is
-     * required to produce in return a segment value which may be
-     * different. It can map segment bases to absolute numbers by
-     * means of returning SEG_ABS types.
-     *
-     * It should return NO_SEG if the segment base cannot be
-     * determined; the evaluator (which calls this routine) is
-     * responsible for throwing an error condition if that occurs
-     * in pass two or in a critical expression.
-     */
-    int32_t (*segbase)(int32_t segment);
-
-    /*
-     * This procedure is called to allow the output driver to
-     * process its own specific directives. When called, it has the
-     * directive word in `directive' and the parameter string in
-     * `value'. It is called in both assembly passes, and `pass'
-     * will be either 1 or 2.
-     *
-     * The following values are (currently) possible for
-     * directive_result:
-     *
-     * 0 - DIRR_UNKNOWN		- directive not recognized by backend
-     * 1 - DIRR_OK		- directive processed ok
-     * 2 - DIRR_ERROR		- backend printed its own error message
-     * 3 - DIRR_BADPARAM	- print the generic message
-     *				  "invalid parameter to [*] directive"
-     */
-    enum directive_result
-    (*directive)(enum directives directive, char *value, int pass);
-
-    /*
-     * This procedure is called before anything else - even before
-     * the "init" routine - and is passed the name of the input
-     * file from which this output file is being generated. It
-     * should return its preferred name for the output file in
-     * `outname', if outname[0] is not '\0', and do nothing to
-     * `outname' otherwise. Since it is called before the driver is
-     * properly initialized, it has to be passed its error handler
-     * separately.
-     *
-     * This procedure may also take its own copy of the input file
-     * name for use in writing the output file: it is _guaranteed_
-     * that it will be called before the "init" routine.
-     *
-     * The parameter `outname' points to an area of storage
-     * guaranteed to be at least FILENAME_MAX in size.
-     */
-    void (*filename)(char *inname, char *outname);
-
-    /*
-     * This procedure is called after assembly finishes, to allow
-     * the output driver to clean itself up and free its memory.
-     * Typically, it will also be the point at which the object
-     * file actually gets _written_.
-     *
-     * One thing the cleanup routine should always do is to close
-     * the output file pointer.
-     */
-    void (*cleanup)(void);
-
-    /*
-     * List of pragma facility names that apply to this backend.
-     */
-    const struct pragma_facility *pragmas;
-};
-
-/*
- * Output format driver alias
- */
-struct ofmt_alias {
-    const char  *shortname;
-    const char  *fullname;
-    const struct ofmt *ofmt;
-};
-
-extern const struct ofmt *ofmt;
-extern FILE *ofile;
-
-/*
- * ------------------------------------------------------------
- * The data structure defining a debug format driver, and the
- * interfaces to the functions therein.
- * ------------------------------------------------------------
- */
-
-struct dfmt {
-    /*
-     * This is a short (one-liner) description of the type of
-     * output generated by the driver.
-     */
-    const char *fullname;
-
-    /*
-     * This is a single keyword used to select the driver.
-     */
-    const char *shortname;
-
-    /*
-     * init - called initially to set up local pointer to object format.
-     */
-    void (*init)(void);
-
-    /*
-     * linenum - called any time there is output with a change of
-     * line number or file.
-     */
-    void (*linenum)(const char *filename, int32_t linenumber, int32_t segto);
-
-    /*
-     * debug_deflabel - called whenever a label is defined. Parameters
-     * are the same as to 'symdef()' in the output format. This function
-     * is called after the output format version.
-     */
-
-    void (*debug_deflabel)(char *name, int32_t segment, int64_t offset,
-                           int is_global, char *special);
-    /*
-     * debug_directive - called whenever a DEBUG directive other than 'LINE'
-     * is encountered. 'directive' contains the first parameter to the
-     * DEBUG directive, and params contains the rest. For example,
-     * 'DEBUG VAR _somevar:int' would translate to a call to this
-     * function with 'directive' equal to "VAR" and 'params' equal to
-     * "_somevar:int".
-     */
-    void (*debug_directive)(const char *directive, const char *params);
-
-    /*
-     * typevalue - called whenever the assembler wishes to register a type
-     * for the last defined label.  This routine MUST detect if a type was
-     * already registered and not re-register it.
-     */
-    void (*debug_typevalue)(int32_t type);
-
-    /*
-     * debug_output - called whenever output is required
-     * 'type' is the type of info required, and this is format-specific
-     */
-    void (*debug_output)(int type, void *param);
-
-    /*
-     * cleanup - called after processing of file is complete
-     */
-    void (*cleanup)(void);
-
-    /*
-     * List of pragma facility names that apply to this backend.
-     */
-    const struct pragma_facility *pragmas;
-};
-
-extern const struct dfmt *dfmt;
-
-/*
- * The type definition macros
- * for debugging
- *
- * low 3 bits: reserved
- * next 5 bits: type
- * next 24 bits: number of elements for arrays (0 for labels)
- */
-
-#define TY_UNKNOWN 0x00
-#define TY_LABEL   0x08
-#define TY_BYTE    0x10
-#define TY_WORD    0x18
-#define TY_DWORD   0x20
-#define TY_FLOAT   0x28
-#define TY_QWORD   0x30
-#define TY_TBYTE   0x38
-#define TY_OWORD   0x40
-#define TY_YWORD   0x48
-#define TY_COMMON  0xE0
-#define TY_SEG     0xE8
-#define TY_EXTERN  0xF0
-#define TY_EQU     0xF8
-
-#define TYM_TYPE(x)     ((x) & 0xF8)
-#define TYM_ELEMENTS(x) (((x) & 0xFFFFFF00) >> 8)
-
-#define TYS_ELEMENTS(x) ((x) << 8)
-
-enum special_tokens {
-    SPECIAL_ENUM_START  = PREFIX_ENUM_LIMIT,
-    S_ABS               = SPECIAL_ENUM_START,
-    S_BYTE,
-    S_DWORD,
-    S_FAR,
-    S_LONG,
-    S_NEAR,
-    S_NOSPLIT,
-    S_OWORD,
-    S_QWORD,
-    S_REL,
-    S_SHORT,
-    S_STRICT,
-    S_TO,
-    S_TWORD,
-    S_WORD,
-    S_YWORD,
-    S_ZWORD,
-    SPECIAL_ENUM_LIMIT
-};
-
-enum decorator_tokens {
-    DECORATOR_ENUM_START    = SPECIAL_ENUM_LIMIT,
-    BRC_1TO2                = DECORATOR_ENUM_START,
-    BRC_1TO4,
-    BRC_1TO8,
-    BRC_1TO16,
-    BRC_RN,
-    BRC_RD,
-    BRC_RU,
-    BRC_RZ,
-    BRC_SAE,
-    BRC_Z,
-    DECORATOR_ENUM_LIMIT
-};
-
-/*
- * AVX512 Decorator (decoflags_t) bits distribution (counted from 0)
- *  3         2         1
- * 10987654321098765432109876543210
- *                |
- *                | word boundary
- * ............................1111 opmask
- * ...........................1.... zeroing / merging
- * ..........................1..... broadcast
- * .........................1...... static rounding
- * ........................1....... SAE
- * ......................11........ broadcast element size
- * ....................11.......... number of broadcast elements
- */
-#define OP_GENVAL(val, bits, shift)     (((val) & ((UINT64_C(1) << (bits)) - 1)) << (shift))
-
-/*
- * Opmask register number
- * identical to EVEX.aaa
- *
- * Bits: 0 - 3
- */
-#define OPMASK_SHIFT            (0)
-#define OPMASK_BITS             (4)
-#define OPMASK_MASK             OP_GENMASK(OPMASK_BITS, OPMASK_SHIFT)
-#define GEN_OPMASK(bit)         OP_GENBIT(bit, OPMASK_SHIFT)
-#define VAL_OPMASK(val)         OP_GENVAL(val, OPMASK_BITS, OPMASK_SHIFT)
-
-/*
- * zeroing / merging control available
- * matching to EVEX.z
- *
- * Bits: 4
- */
-#define Z_SHIFT                 (4)
-#define Z_BITS                  (1)
-#define Z_MASK                  OP_GENMASK(Z_BITS, Z_SHIFT)
-#define GEN_Z(bit)              OP_GENBIT(bit, Z_SHIFT)
-
-/*
- * broadcast - Whether this operand can be broadcasted
- *
- * Bits: 5
- */
-#define BRDCAST_SHIFT           (5)
-#define BRDCAST_BITS            (1)
-#define BRDCAST_MASK            OP_GENMASK(BRDCAST_BITS, BRDCAST_SHIFT)
-#define GEN_BRDCAST(bit)        OP_GENBIT(bit, BRDCAST_SHIFT)
-
-/*
- * Whether this instruction can have a static rounding mode.
- * It goes with the last simd operand because the static rounding mode
- * decorator is located between the last simd operand and imm8 (if any).
- *
- * Bits: 6
- */
-#define STATICRND_SHIFT         (6)
-#define STATICRND_BITS          (1)
-#define STATICRND_MASK          OP_GENMASK(STATICRND_BITS, STATICRND_SHIFT)
-#define GEN_STATICRND(bit)      OP_GENBIT(bit, STATICRND_SHIFT)
-
-/*
- * SAE(Suppress all exception) available
- *
- * Bits: 7
- */
-#define SAE_SHIFT               (7)
-#define SAE_BITS                (1)
-#define SAE_MASK                OP_GENMASK(SAE_BITS, SAE_SHIFT)
-#define GEN_SAE(bit)            OP_GENBIT(bit, SAE_SHIFT)
-
-/*
- * Broadcasting element size.
- *
- * Bits: 8 - 9
- */
-#define BRSIZE_SHIFT            (8)
-#define BRSIZE_BITS             (2)
-#define BRSIZE_MASK             OP_GENMASK(BRSIZE_BITS, BRSIZE_SHIFT)
-#define GEN_BRSIZE(bit)         OP_GENBIT(bit, BRSIZE_SHIFT)
-
-#define BR_BITS32               GEN_BRSIZE(0)
-#define BR_BITS64               GEN_BRSIZE(1)
-
-/*
- * Number of broadcasting elements
- *
- * Bits: 10 - 11
- */
-#define BRNUM_SHIFT             (10)
-#define BRNUM_BITS              (2)
-#define BRNUM_MASK              OP_GENMASK(BRNUM_BITS, BRNUM_SHIFT)
-#define VAL_BRNUM(val)          OP_GENVAL(val, BRNUM_BITS, BRNUM_SHIFT)
-
-#define BR_1TO2                 VAL_BRNUM(0)
-#define BR_1TO4                 VAL_BRNUM(1)
-#define BR_1TO8                 VAL_BRNUM(2)
-#define BR_1TO16                VAL_BRNUM(3)
-
-#define MASK                    OPMASK_MASK             /* Opmask (k1 ~ 7) can be used */
-#define Z                       Z_MASK
-#define B32                     (BRDCAST_MASK|BR_BITS32) /* {1to16} : broadcast 32b * 16 to zmm(512b) */
-#define B64                     (BRDCAST_MASK|BR_BITS64) /* {1to8}  : broadcast 64b *  8 to zmm(512b) */
-#define ER                      STATICRND_MASK          /* ER(Embedded Rounding) == Static rounding mode */
-#define SAE                     SAE_MASK                /* SAE(Suppress All Exception) */
-
-/*
- * Global modes
- */
-
-/*
- * This declaration passes the "pass" number to all other modules
- * "pass0" assumes the values: 0, 0, ..., 0, 1, 2
- * where 0 = optimizing pass
- *       1 = pass 1
- *       2 = pass 2
- */
-
-extern int pass0;
-extern int passn;               /* Actual pass number */
-
-extern bool tasm_compatible_mode;
-extern int optimizing;
-extern int globalbits;          /* 16, 32 or 64-bit mode */
-extern int globalrel;           /* default to relative addressing? */
-extern int globalbnd;           /* default to using bnd prefix? */
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/include/nasmint.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,219 +0,0 @@
-/*
- * nasmint.h
- *
- * Small ersatz subset of <inttypes.h>, deriving the types from
- * <limits.h>.
- *
- * Important: the preprocessor may truncate numbers too large for it.
- * Therefore, test the signed types only ... truncation won't generate
- * a 01111111... bit pattern.
- */
-
-#ifndef NASM_NASMINT_H
-#define NASM_NASMINT_H
-
-#include <limits.h>
-
-/*** 64-bit type: __int64, long or long long ***/
-
-/* Some old versions of gcc <limits.h> omit LLONG_MAX */
-#ifndef LLONG_MAX
-# ifdef __LONG_LONG_MAX__
-#  define LLONG_MAX __LONG_LONG_MAX__
-# else
-#  define LLONG_MAX 0		/* Assume long long is unusable */
-# endif
-#endif
-
-#ifndef _I64_MAX
-# ifdef _MSC_VER
-#  define _I64_MAX 9223372036854775807
-# else
-#  define _I64_MAX 0
-# endif
-#endif
-
-#if _I64_MAX == 9223372036854775807
-
-/* Windows-based compiler: use __int64 */
-typedef signed __int64		int64_t;
-typedef unsigned __int64	uint64_t;
-#define _scn64			"I64"
-#define _pri64			"I64"
-#define INT64_C(x)		x ## i64
-#define UINT64_C(x)		x ## ui64
-
-#elif LONG_MAX == 9223372036854775807L
-
-/* long is 64 bits */
-typedef signed long		int64_t;
-typedef unsigned long		uint64_t;
-#define _scn64			"l"
-#define _pri64			"l"
-#define INT64_C(x)		x ## L
-#define UINT64_C(x)		x ## UL
-
-#elif LLONG_MAX == 9223372036854775807LL
-
-/* long long is 64 bits */
-typedef signed long long	int64_t;
-typedef unsigned long long	uint64_t;
-#define _scn64			"ll"
-#define _pri64			"ll"
-#define INT64_C(x)		x ## LL
-#define UINT64_C(x)		x ## ULL
-
-#else
-
-#error "Neither long nor long long is 64 bits in size"
-
-#endif
-
-/*** 32-bit type: int or long ***/
-
-#if INT_MAX == 2147483647
-
-/* int is 32 bits */
-typedef signed int		int32_t;
-typedef unsigned int		uint32_t;
-#define _scn32			""
-#define _pri32			""
-#define INT32_C(x)		x
-#define UINT32_C(x)		x ## U
-
-#elif LONG_MAX == 2147483647L
-
-/* long is 32 bits */
-typedef signed long		int32_t;
-typedef unsigned long		uint32_t;
-#define _scn32			"l"
-#define _pri32			"l"
-#define INT32_C(x)		x ## L
-#define UINT32_C(x)		x ## UL
-
-#else
-
-#error "Neither int nor long is 32 bits in size"
-
-#endif
-
-/*** 16-bit size: int or short ***/
-
-#if INT_MAX == 32767
-
-/* int is 16 bits */
-typedef signed int		int16_t;
-typedef unsigned int		uint16_t;
-#define _scn16			""
-#define _pri16			""
-#define INT16_C(x)		x
-#define UINT16_C(x)		x ## U
-
-#elif SHRT_MAX == 32767
-
-/* short is 16 bits */
-typedef signed short		int16_t;
-typedef unsigned short		uint16_t;
-#define _scn16			"h"
-#define _pri16			""
-#define INT16_C(x)		x
-#define UINT16_C(x)		x ## U
-
-#else
-
-#error "Neither short nor int is 16 bits in size"
-
-#endif
-
-/*** 8-bit size: char ***/
-
-#if SCHAR_MAX == 127
-
-/* char is 8 bits */
-typedef signed char		int8_t;
-typedef unsigned char		uint8_t;
-#define _scn8			"hh"
-#define _pri8			""
-#define INT8_C(x)		x
-#define UINT8_C(x)		x ## U
-
-#else
-
-#error "char is not 8 bits in size"
-
-#endif
-
-/* The rest of this is common to all models */
-
-#define PRId8		_pri8  "d"
-#define PRId16		_pri16 "d"
-#define PRId32		_pri32 "d"
-#define PRId64		_pri64 "d"
-
-#define PRIi8		_pri8  "i"
-#define PRIi16		_pri16 "i"
-#define PRIi32		_pri32 "i"
-#define PRIi64		_pri64 "i"
-
-#define PRIo8		_pri8  "o"
-#define PRIo16		_pri16 "o"
-#define PRIo32		_pri32 "o"
-#define PRIo64		_pri64 "o"
-
-#define PRIu8		_pri8  "u"
-#define PRIu16		_pri16 "u"
-#define PRIu32		_pri32 "u"
-#define PRIu64		_pri64 "u"
-
-#define PRIx8		_pri8  "x"
-#define PRIx16		_pri16 "x"
-#define PRIx32		_pri32 "x"
-#define PRIx64		_pri64 "x"
-
-#define PRIX8		_pri8  "X"
-#define PRIX16		_pri16 "X"
-#define PRIX32		_pri32 "X"
-#define PRIX64		_pri64 "X"
-
-#define SCNd8		_scn8  "d"
-#define SCNd16		_scn16 "d"
-#define SCNd32		_scn32 "d"
-#define SCNd64		_scn64 "d"
-
-#define SCNi8		_scn8  "i"
-#define SCNi16		_scn16 "i"
-#define SCNi32		_scn32 "i"
-#define SCNi64		_scn64 "i"
-
-#define SCNo8		_scn8  "o"
-#define SCNo16		_scn16 "o"
-#define SCNo32		_scn32 "o"
-#define SCNo64		_scn64 "o"
-
-#define SCNu8		_scn8  "u"
-#define SCNu16		_scn16 "u"
-#define SCNu32		_scn32 "u"
-#define SCNu64		_scn64 "u"
-
-#define SCNx8		_scn8  "x"
-#define SCNx16		_scn16 "x"
-#define SCNx32		_scn32 "x"
-#define SCNx64		_scn64 "x"
-
-#define INT8_MIN	INT8_C(-128)
-#define INT8_MAX	INT8_C(127)
-#define UINT8_MAX	UINT8_C(255)
-
-#define INT16_MIN	INT16_C(-32768)
-#define INT16_MAX	INT16_C(32767)
-#define UINT16_MAX	UINT16_C(65535)
-
-#define INT32_MIN	INT32_C(-2147483648)
-#define INT32_MAX	INT32_C(2147483647)
-#define UINT32_MAX	UINT32_C(4294967295)
-
-#define INT64_MIN	INT64_C(-9223372036854775808)
-#define INT64_MAX	INT64_C(9223372036854775807)
-#define UINT64_MAX	UINT64_C(18446744073709551615)
-
-#endif /* NASM_NASMINT_H */
--- a/nasmbuild/nasm-2.13rc9/include/nasmlib.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,513 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * nasmlib.h    header file for nasmlib.c
- */
-
-#ifndef NASM_NASMLIB_H
-#define NASM_NASMLIB_H
-
-#include "compiler.h"
-
-#include <ctype.h>
-#include <stdio.h>
-#include <string.h>
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-
-/*
- * tolower table -- avoids a function call on some platforms.
- * NOTE: unlike the tolower() function in ctype, EOF is *NOT*
- * a permitted value, for obvious reasons.
- */
-void tolower_init(void);
-extern unsigned char nasm_tolower_tab[256];
-#define nasm_tolower(x) nasm_tolower_tab[(unsigned char)(x)]
-
-/* Wrappers around <ctype.h> functions */
-/* These are only valid for values that cannot include EOF */
-#define nasm_isspace(x)  isspace((unsigned char)(x))
-#define nasm_isalpha(x)  isalpha((unsigned char)(x))
-#define nasm_isdigit(x)  isdigit((unsigned char)(x))
-#define nasm_isalnum(x)  isalnum((unsigned char)(x))
-#define nasm_isxdigit(x) isxdigit((unsigned char)(x))
-
-/*
- * Wrappers around malloc, realloc and free. nasm_malloc will
- * fatal-error and die rather than return NULL; nasm_realloc will
- * do likewise, and will also guarantee to work right on being
- * passed a NULL pointer; nasm_free will do nothing if it is passed
- * a NULL pointer.
- */
-void * safe_malloc(1) nasm_malloc(size_t);
-void * safe_malloc(1) nasm_zalloc(size_t);
-void * safe_malloc2(1,2) nasm_calloc(size_t, size_t);
-void * safe_realloc(2) nasm_realloc(void *, size_t);
-void nasm_free(void *);
-char * safe_alloc nasm_strdup(const char *);
-char * safe_alloc nasm_strndup(const char *, size_t);
-
-/* Assert the argument is a pointer without evaluating it */
-#define nasm_assert_pointer(p) ((void)sizeof(*(p)))
-
-#define nasm_new(p) ((p) = nasm_zalloc(sizeof(*(p))))
-#define nasm_newn(p,n) ((p) = nasm_calloc(sizeof(*(p)),(n)))
-/*
- * This is broken on platforms where there are pointers which don't
- * match void * in their internal layout.  It unfortunately also
- * loses any "const" part of the argument, although hopefully the
- * compiler will warn in that case.
- */
-#define nasm_delete(p)						\
-    do {							\
-	void **_pp = (void **)&(p);				\
-	nasm_assert_pointer(p);					\
-	nasm_free(*_pp);					\
-	*_pp = NULL;						\
-    } while (0)
-#define nasm_zero(p) (memset((p), 0, sizeof(*(p))))
-#define nasm_zeron(p,n) (memset((p), 0, (n)*sizeof(*(p))))
-
-/*
- * Wrapper around fwrite() which fatal-errors on output failure.
- */
-void nasm_write(const void *, size_t, FILE *);
-
-/*
- * NASM assert failure
- */
-no_return nasm_assert_failed(const char *, int, const char *);
-#define nasm_assert(x)                                          \
-    do {                                                        \
-        if (unlikely(!(x)))                                     \
-            nasm_assert_failed(__FILE__,__LINE__,#x);           \
-    } while (0)
-
-/*
- * NASM failure at build time if the argument is false
- */
-#ifdef static_assert
-# define nasm_static_assert(x) static_assert(x, #x)
-#elif defined(HAVE_FUNC_ATTRIBUTE_ERROR) && defined(__OPTIMIZE__)
-# define nasm_static_assert(x)                                           \
-    if (!(x)) {                                                         \
-        extern void __attribute__((error("assertion " #x " failed")))   \
-            _nasm_static_fail(void);					\
-        _nasm_static_fail();                                            \
-    }
-#else
-/* See http://www.drdobbs.com/compile-time-assertions/184401873 */
-# define nasm_static_assert(x) \
-    do { enum { _static_assert_failed = 1/(!!(x)) }; } while (0)
-#endif
-
-/*
- * ANSI doesn't guarantee the presence of `stricmp' or
- * `strcasecmp'.
- */
-#if defined(HAVE_STRCASECMP)
-#define nasm_stricmp strcasecmp
-#elif defined(HAVE_STRICMP)
-#define nasm_stricmp stricmp
-#else
-int pure_func nasm_stricmp(const char *, const char *);
-#endif
-
-#if defined(HAVE_STRNCASECMP)
-#define nasm_strnicmp strncasecmp
-#elif defined(HAVE_STRNICMP)
-#define nasm_strnicmp strnicmp
-#else
-int pure_func nasm_strnicmp(const char *, const char *, size_t);
-#endif
-
-int pure_func nasm_memicmp(const char *, const char *, size_t);
-
-#if defined(HAVE_STRSEP)
-#define nasm_strsep strsep
-#else
-char *nasm_strsep(char **stringp, const char *delim);
-#endif
-
-#ifndef HAVE_DECL_STRNLEN
-size_t pure_func strnlen(const char *, size_t);
-#endif
-
-/* This returns the numeric value of a given 'digit'. */
-#define numvalue(c)         ((c) >= 'a' ? (c) - 'a' + 10 : (c) >= 'A' ? (c) - 'A' + 10 : (c) - '0')
-
-/*
- * Convert a string into a number, using NASM number rules. Sets
- * `*error' to true if an error occurs, and false otherwise.
- */
-int64_t readnum(char *str, bool *error);
-
-/*
- * Convert a character constant into a number. Sets
- * `*warn' to true if an overflow occurs, and false otherwise.
- * str points to and length covers the middle of the string,
- * without the quotes.
- */
-int64_t readstrnum(char *str, int length, bool *warn);
-
-/*
- * seg_init: Initialise the segment-number allocator.
- * seg_alloc: allocate a hitherto unused segment number.
- */
-void pure_func seg_init(void);
-int32_t pure_func seg_alloc(void);
-
-/*
- * many output formats will be able to make use of this: a standard
- * function to add an extension to the name of the input file
- */
-void standard_extension(char *inname, char *outname, char *extension);
-
-/*
- * Utility macros...
- *
- * This is a useful #define which I keep meaning to use more often:
- * the number of elements of a statically defined array.
- */
-#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
-
-/*
- * List handling
- *
- *  list_for_each - regular iterator over list
- *  list_for_each_safe - the same but safe against list items removal
- *  list_last - find the last element in a list
- */
-#define list_for_each(pos, head)                        \
-    for (pos = head; pos; pos = pos->next)
-#define list_for_each_safe(pos, n, head)                \
-    for (pos = head, n = (pos ? pos->next : NULL); pos; \
-        pos = n, n = (n ? n->next : NULL))
-#define list_last(pos, head)                            \
-    for (pos = head; pos && pos->next; pos = pos->next) \
-        ;
-#define list_reverse(head, prev, next)                  \
-    do {                                                \
-        if (!head || !head->next)                       \
-            break;                                      \
-        prev = NULL;                                    \
-        while (head) {                                  \
-            next = head->next;                          \
-            head->next = prev;                          \
-            prev = head;                                \
-            head = next;                                \
-        }                                               \
-        head = prev;                                    \
-    } while (0)
-
-/*
- * Power of 2 align helpers
- */
-#undef ALIGN_MASK		/* Some BSD flavors define these in system headers */
-#undef ALIGN
-#define ALIGN_MASK(v, mask)     (((v) + (mask)) & ~(mask))
-#define ALIGN(v, a)             ALIGN_MASK(v, (a) - 1)
-#define IS_ALIGNED(v, a)        (((v) & ((a) - 1)) == 0)
-
-/*
- * some handy macros that will probably be of use in more than one
- * output format: convert integers into little-endian byte packed
- * format in memory
- */
-
-#if X86_MEMORY
-
-#define WRITECHAR(p,v)                          \
-    do {                                        \
-        *(uint8_t *)(p) = (v);                  \
-        (p) += 1;                               \
-    } while (0)
-
-#define WRITESHORT(p,v)                         \
-    do {                                        \
-        *(uint16_t *)(p) = (v);                 \
-        (p) += 2;                               \
-    } while (0)
-
-#define WRITELONG(p,v)                          \
-    do {                                        \
-        *(uint32_t *)(p) = (v);                 \
-        (p) += 4;                               \
-    } while (0)
-
-#define WRITEDLONG(p,v)                         \
-    do {                                        \
-        *(uint64_t *)(p) = (v);                 \
-        (p) += 8;                               \
-    } while (0)
-
-#define WRITEADDR(p,v,s)                        \
-    do {                                        \
-        uint64_t _wa_v = (v);                   \
-        memcpy((p), &_wa_v, (s));               \
-        (p) += (s);                             \
-    } while (0)
-
-#else /* !X86_MEMORY */
-
-#define WRITECHAR(p,v)                          \
-    do {                                        \
-        uint8_t *_wc_p = (uint8_t *)(p);        \
-        uint8_t _wc_v = (v);                    \
-        _wc_p[0] = _wc_v;                       \
-        (p) = (void *)(_wc_p + 1);              \
-    } while (0)
-
-#define WRITESHORT(p,v)                         \
-    do {                                        \
-        uint8_t *_ws_p = (uint8_t *)(p);        \
-        uint16_t _ws_v = (v);                   \
-        _ws_p[0] = _ws_v;                       \
-        _ws_p[1] = _ws_v >> 8;                  \
-        (p) = (void *)(_ws_p + 2);              \
-    } while (0)
-
-#define WRITELONG(p,v)                          \
-    do {                                        \
-        uint8_t *_wl_p = (uint8_t *)(p);        \
-        uint32_t _wl_v = (v);                   \
-        _wl_p[0] = _wl_v;                       \
-        _wl_p[1] = _wl_v >> 8;                  \
-        _wl_p[2] = _wl_v >> 16;                 \
-        _wl_p[3] = _wl_v >> 24;                 \
-        (p) = (void *)(_wl_p + 4);              \
-    } while (0)
-
-#define WRITEDLONG(p,v)                         \
-    do {                                        \
-        uint8_t *_wq_p = (uint8_t *)(p);        \
-        uint64_t _wq_v = (v);                   \
-        _wq_p[0] = _wq_v;                       \
-        _wq_p[1] = _wq_v >> 8;                  \
-        _wq_p[2] = _wq_v >> 16;                 \
-        _wq_p[3] = _wq_v >> 24;                 \
-        _wq_p[4] = _wq_v >> 32;                 \
-        _wq_p[5] = _wq_v >> 40;                 \
-        _wq_p[6] = _wq_v >> 48;                 \
-        _wq_p[7] = _wq_v >> 56;                 \
-        (p) = (void *)(_wq_p + 8);              \
-    } while (0)
-
-#define WRITEADDR(p,v,s)                        \
-    do {                                        \
-        int _wa_s = (s);                        \
-        uint64_t _wa_v = (v);                   \
-        while (_wa_s--) {                       \
-            WRITECHAR(p,_wa_v);                 \
-            _wa_v >>= 8;                        \
-        }                                       \
-    } while(0)
-
-#endif
-
-/*
- * and routines to do the same thing to a file
- */
-#define fwriteint8_t(d,f) putc(d,f)
-void fwriteint16_t(uint16_t data, FILE * fp);
-void fwriteint32_t(uint32_t data, FILE * fp);
-void fwriteint64_t(uint64_t data, FILE * fp);
-void fwriteaddr(uint64_t data, int size, FILE * fp);
-
-/*
- * Binary search routine. Returns index into `array' of an entry
- * matching `string', or <0 if no match. `array' is taken to
- * contain `size' elements.
- *
- * bsi() is case sensitive, bsii() is case insensitive.
- */
-int bsi(const char *string, const char **array, int size);
-int bsii(const char *string, const char **array, int size);
-
-/*
- * These functions are used to keep track of the source code file and name.
- */
-void src_init(void);
-void src_free(void);
-const char *src_set_fname(const char *newname);
-const char *src_get_fname(void);
-int32_t src_set_linnum(int32_t newline);
-int32_t src_get_linnum(void);
-/* Can be used when there is no need for the old information */
-void src_set(int32_t line, const char *filename);
-/*
- * src_get gets both the source file name and line.
- * It is also used if you maintain private status about the source location
- * It return 0 if the information was the same as the last time you
- * checked, -2 if the name changed and (new-old) if just the line changed.
- */
-int32_t src_get(int32_t *xline, const char **xname);
-
-char *nasm_strcat(const char *one, const char *two);
-
-char *nasm_skip_spaces(const char *p);
-char *nasm_skip_word(const char *p);
-char *nasm_zap_spaces_fwd(char *p);
-char *nasm_zap_spaces_rev(char *p);
-char *nasm_trim_spaces(char *p);
-char *nasm_get_word(char *p, char **tail);
-char *nasm_opt_val(char *p, char **opt, char **val);
-
-/*
- * Converts a relative pathname rel_path into an absolute path name.
- *
- * The buffer returned must be freed by the caller
- */
-char *nasm_realpath(const char *rel_path);
-
-const char * pure_func prefix_name(int);
-
-/*
- * Wrappers around fopen()... for future change to a dedicated structure
- */
-enum file_flags {
-    NF_BINARY	= 0x00000000,   /* Binary file (default) */
-    NF_TEXT	= 0x00000001,   /* Text file */
-    NF_NONFATAL = 0x00000000,   /* Don't die on open failure (default) */
-    NF_FATAL    = 0x00000002,   /* Die on open failure */
-    NF_FORMAP   = 0x00000004    /* Intended to use nasm_map_file() */
-};
-
-FILE *nasm_open_read(const char *filename, enum file_flags flags);
-FILE *nasm_open_write(const char *filename, enum file_flags flags);
-
-/* Probe for existence of a file */
-bool nasm_file_exists(const char *filename);
-
-#define ZERO_BUF_SIZE 65536     /* Default value */
-#if defined(BUFSIZ) && (BUFSIZ > ZERO_BUF_SIZE)
-# undef ZERO_BUF_SIZE
-# define ZERO_BUF_SIZE BUFSIZ
-#endif
-extern const uint8_t zero_buffer[ZERO_BUF_SIZE];
-
-/* Missing fseeko/ftello */
-#ifndef HAVE_FSEEKO
-# undef off_t                   /* Just in case it is a macro */
-# ifdef HAVE__FSEEKI64
-#  define fseeko _fseeki64
-#  define ftello _ftelli64
-#  define off_t  int64_t
-# else
-#  define fseeko fseek
-#  define ftello ftell
-#  define off_t  long
-# endif
-#endif
-
-const void *nasm_map_file(FILE *fp, off_t start, off_t len);
-void nasm_unmap_file(const void *p, size_t len);
-off_t nasm_file_size(FILE *f);
-off_t nasm_file_size_by_path(const char *pathname);
-void fwritezero(off_t bytes, FILE *fp);
-
-static inline bool const_func overflow_general(int64_t value, int bytes)
-{
-    int sbit;
-    int64_t vmax, vmin;
-
-    if (bytes >= 8)
-        return false;
-
-    sbit = (bytes << 3) - 1;
-    vmax =  ((int64_t)2 << sbit) - 1;
-    vmin = -((int64_t)1 << sbit);
-
-    return value < vmin || value > vmax;
-}
-
-static inline bool const_func overflow_signed(int64_t value, int bytes)
-{
-    int sbit;
-    int64_t vmax, vmin;
-
-    if (bytes >= 8)
-        return false;
-
-    sbit = (bytes << 3) - 1;
-    vmax =  ((int64_t)1 << sbit) - 1;
-    vmin = -((int64_t)1 << sbit);
-
-    return value < vmin || value > vmax;
-}
-
-static inline bool const_func overflow_unsigned(int64_t value, int bytes)
-{
-    int sbit;
-    int64_t vmax, vmin;
-
-    if (bytes >= 8)
-        return false;
-
-    sbit = (bytes << 3) - 1;
-    vmax = ((int64_t)2 << sbit) - 1;
-    vmin = 0;
-
-    return value < vmin || value > vmax;
-}
-
-static inline int64_t const_func signed_bits(int64_t value, int bits)
-{
-    if (bits < 64) {
-        value &= ((int64_t)1 << bits) - 1;
-        if (value & (int64_t)1 << (bits - 1))
-            value |= (int64_t)((uint64_t)-1 << bits);
-    }
-    return value;
-}
-
-int const_func idata_bytes(int opcode);
-
-/* check if value is power of 2 */
-#define is_power2(v)   ((v) && ((v) & ((v) - 1)) == 0)
-
-/*
- * floor(log2(v))
- */
-int const_func ilog2_32(uint32_t v);
-int const_func ilog2_64(uint64_t v);
-
-/*
- * v == 0 ? 0 : is_power2(x) ? ilog2_X(v) : -1
- */
-int const_func alignlog2_32(uint32_t v);
-int const_func alignlog2_64(uint64_t v);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/include/opflags.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,271 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2013 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * opflags.h - operand flags
- */
-
-#ifndef NASM_OPFLAGS_H
-#define NASM_OPFLAGS_H
-
-#include "compiler.h"
-#include "tables.h"     /* for opflags_t and nasm_reg_flags[] */
-
-/*
- * Here we define the operand types. These are implemented as bit
- * masks, since some are subsets of others; e.g. AX in a MOV
- * instruction is a special operand type, whereas AX in other
- * contexts is just another 16-bit register. (Also, consider CL in
- * shift instructions, DX in OUT, etc.)
- *
- * The basic concept here is that
- *    (class & ~operand) == 0
- *
- * if and only if "operand" belongs to class type "class".
- */
-
-#define OP_GENMASK(bits, shift)         (((UINT64_C(1) << (bits)) - 1) << (shift))
-#define OP_GENBIT(bit, shift)           (UINT64_C(1) << ((shift) + (bit)))
-
-/*
- * Type of operand: memory reference, register, etc.
- *
- * Bits: 0 - 3
- */
-#define OPTYPE_SHIFT            (0)
-#define OPTYPE_BITS             (4)
-#define OPTYPE_MASK             OP_GENMASK(OPTYPE_BITS, OPTYPE_SHIFT)
-#define GEN_OPTYPE(bit)         OP_GENBIT(bit, OPTYPE_SHIFT)
-
-/*
- * Modifiers.
- *
- * Bits: 4 - 6
- */
-#define MODIFIER_SHIFT          (4)
-#define MODIFIER_BITS           (3)
-#define MODIFIER_MASK           OP_GENMASK(MODIFIER_BITS, MODIFIER_SHIFT)
-#define GEN_MODIFIER(bit)       OP_GENBIT(bit, MODIFIER_SHIFT)
-
-/*
- * Register classes.
- *
- * Bits: 7 - 16
- */
-#define REG_CLASS_SHIFT         (7)
-#define REG_CLASS_BITS          (10)
-#define REG_CLASS_MASK          OP_GENMASK(REG_CLASS_BITS, REG_CLASS_SHIFT)
-#define GEN_REG_CLASS(bit)      OP_GENBIT(bit, REG_CLASS_SHIFT)
-
-/*
- * Subclasses. Depends on type of operand.
- *
- * Bits: 17 - 24
- */
-#define SUBCLASS_SHIFT          (17)
-#define SUBCLASS_BITS           (8)
-#define SUBCLASS_MASK           OP_GENMASK(SUBCLASS_BITS, SUBCLASS_SHIFT)
-#define GEN_SUBCLASS(bit)       OP_GENBIT(bit, SUBCLASS_SHIFT)
-
-/*
- * Special flags. Context dependant.
- *
- * Bits: 25 - 31
- */
-#define SPECIAL_SHIFT           (25)
-#define SPECIAL_BITS            (7)
-#define SPECIAL_MASK            OP_GENMASK(SPECIAL_BITS, SPECIAL_SHIFT)
-#define GEN_SPECIAL(bit)        OP_GENBIT(bit, SPECIAL_SHIFT)
-
-/*
- * Sizes of the operands and attributes.
- *
- * Bits: 32 - 42
- */
-#define SIZE_SHIFT              (32)
-#define SIZE_BITS               (11)
-#define SIZE_MASK               OP_GENMASK(SIZE_BITS, SIZE_SHIFT)
-#define GEN_SIZE(bit)           OP_GENBIT(bit, SIZE_SHIFT)
-
-/*
- * Bits distribution (counted from 0)
- *
- *    6         5         4         3         2         1
- * 3210987654321098765432109876543210987654321098765432109876543210
- *                                 |
- *                                 | dword bound
- *
- * ............................................................1111 optypes
- * .........................................................111.... modifiers
- * ...............................................1111111111....... register classes
- * .......................................11111111................. subclasses
- * ................................1111111......................... specials
- * .....................11111111111................................ sizes
- */
-
-#define REGISTER                GEN_OPTYPE(0)                   /* register number in 'basereg' */
-#define IMMEDIATE               GEN_OPTYPE(1)
-#define REGMEM                  GEN_OPTYPE(2)                   /* for r/m, ie EA, operands */
-#define MEMORY                  (GEN_OPTYPE(3) | REGMEM)
-
-#define BITS8                   GEN_SIZE(0)                     /*   8 bits (BYTE) */
-#define BITS16                  GEN_SIZE(1)                     /*  16 bits (WORD) */
-#define BITS32                  GEN_SIZE(2)                     /*  32 bits (DWORD) */
-#define BITS64                  GEN_SIZE(3)                     /*  64 bits (QWORD), x64 and FPU only */
-#define BITS80                  GEN_SIZE(4)                     /*  80 bits (TWORD), FPU only */
-#define BITS128                 GEN_SIZE(5)                     /* 128 bits (OWORD) */
-#define BITS256                 GEN_SIZE(6)                     /* 256 bits (YWORD) */
-#define BITS512                 GEN_SIZE(7)                     /* 512 bits (ZWORD) */
-#define FAR                     GEN_SIZE(8)                     /* grotty: this means 16:16 or 16:32, like in CALL/JMP */
-#define NEAR                    GEN_SIZE(9)
-#define SHORT                   GEN_SIZE(10)                    /* and this means what it says :) */
-
-#define TO                      GEN_MODIFIER(0)                 /* reverse effect in FADD, FSUB &c */
-#define COLON                   GEN_MODIFIER(1)                 /* operand is followed by a colon */
-#define STRICT                  GEN_MODIFIER(2)                 /* do not optimize this operand */
-
-#define REG_CLASS_CDT           GEN_REG_CLASS(0)
-#define REG_CLASS_GPR           GEN_REG_CLASS(1)
-#define REG_CLASS_SREG          GEN_REG_CLASS(2)
-#define REG_CLASS_FPUREG        GEN_REG_CLASS(3)
-#define REG_CLASS_RM_MMX        GEN_REG_CLASS(4)
-#define REG_CLASS_RM_XMM        GEN_REG_CLASS(5)
-#define REG_CLASS_RM_YMM        GEN_REG_CLASS(6)
-#define REG_CLASS_RM_ZMM        GEN_REG_CLASS(7)
-#define REG_CLASS_OPMASK        GEN_REG_CLASS(8)
-#define REG_CLASS_BND           GEN_REG_CLASS(9)
-
-#define is_class(class, op)         (!((opflags_t)(class) & ~(opflags_t)(op)))
-#define is_reg_class(class, reg)    is_class((class), nasm_reg_flags[(reg)])
-
-#define IS_SREG(reg)                is_reg_class(REG_SREG, (reg))
-#define IS_FSGS(reg)                is_reg_class(REG_FSGS, (reg))
-
-/* Register classes */
-#define REG_EA                  (                                               REGMEM | REGISTER)      /* 'normal' reg, qualifies as EA */
-#define RM_GPR                  (                  REG_CLASS_GPR              | REGMEM)                 /* integer operand */
-#define REG_GPR                 (                  REG_CLASS_GPR              | REGMEM | REGISTER)      /* integer register */
-#define REG8                    (                  REG_CLASS_GPR    | BITS8   | REGMEM | REGISTER)      /*  8-bit GPR  */
-#define REG16                   (                  REG_CLASS_GPR    | BITS16  | REGMEM | REGISTER)      /* 16-bit GPR */
-#define REG32                   (                  REG_CLASS_GPR    | BITS32  | REGMEM | REGISTER)      /* 32-bit GPR */
-#define REG64                   (                  REG_CLASS_GPR    | BITS64  | REGMEM | REGISTER)      /* 64-bit GPR */
-#define FPUREG                  (                  REG_CLASS_FPUREG                    | REGISTER)      /* floating point stack registers */
-#define FPU0                    (GEN_SUBCLASS(1) | REG_CLASS_FPUREG                    | REGISTER)      /* FPU stack register zero */
-#define RM_MMX                  (                  REG_CLASS_RM_MMX           | REGMEM)                 /* MMX operand */
-#define MMXREG                  (                  REG_CLASS_RM_MMX           | REGMEM | REGISTER)      /* MMX register */
-#define RM_XMM                  (                  REG_CLASS_RM_XMM           | REGMEM)                 /* XMM (SSE) operand */
-#define XMMREG                  (                  REG_CLASS_RM_XMM           | REGMEM | REGISTER)      /* XMM (SSE) register */
-#define RM_YMM                  (                  REG_CLASS_RM_YMM           | REGMEM)                 /* YMM (AVX) operand */
-#define YMMREG                  (                  REG_CLASS_RM_YMM           | REGMEM | REGISTER)      /* YMM (AVX) register */
-#define RM_ZMM                  (                  REG_CLASS_RM_ZMM           | REGMEM)                 /* ZMM (AVX512) operand */
-#define ZMMREG                  (                  REG_CLASS_RM_ZMM           | REGMEM | REGISTER)      /* ZMM (AVX512) register */
-#define RM_OPMASK               (                  REG_CLASS_OPMASK           | REGMEM)                 /* Opmask operand */
-#define OPMASKREG               (                  REG_CLASS_OPMASK           | REGMEM | REGISTER)      /* Opmask register */
-#define OPMASK0                 (GEN_SUBCLASS(1) | REG_CLASS_OPMASK           | REGMEM | REGISTER)      /* Opmask register zero (k0) */
-#define RM_K                    RM_OPMASK
-#define KREG                    OPMASKREG
-#define RM_BND                  (                  REG_CLASS_BND              | REGMEM)                 /* Bounds operand */
-#define BNDREG                  (                  REG_CLASS_BND              | REGMEM | REGISTER)      /* Bounds register */
-#define REG_CDT                 (                  REG_CLASS_CDT    | BITS32           | REGISTER)      /* CRn, DRn and TRn */
-#define REG_CREG                (GEN_SUBCLASS(1) | REG_CLASS_CDT    | BITS32           | REGISTER)      /* CRn */
-#define REG_DREG                (GEN_SUBCLASS(2) | REG_CLASS_CDT    | BITS32           | REGISTER)      /* DRn */
-#define REG_TREG                (GEN_SUBCLASS(3) | REG_CLASS_CDT    | BITS32           | REGISTER)      /* TRn */
-#define REG_SREG                (                  REG_CLASS_SREG   | BITS16           | REGISTER)      /* any segment register */
-
-/* Segment registers */
-#define REG_ES                  (GEN_SUBCLASS(0) | GEN_SUBCLASS(2) | REG_CLASS_SREG | BITS16 | REGISTER)      /* ES */
-#define REG_CS                  (GEN_SUBCLASS(1) | GEN_SUBCLASS(2) | REG_CLASS_SREG | BITS16 | REGISTER)      /* CS */
-#define REG_SS                  (GEN_SUBCLASS(0) | GEN_SUBCLASS(3) | REG_CLASS_SREG | BITS16 | REGISTER)      /* SS */
-#define REG_DS                  (GEN_SUBCLASS(1) | GEN_SUBCLASS(3) | REG_CLASS_SREG | BITS16 | REGISTER)      /* DS */
-#define REG_FS                  (GEN_SUBCLASS(0) | GEN_SUBCLASS(4) | REG_CLASS_SREG | BITS16 | REGISTER)      /* FS */
-#define REG_GS                  (GEN_SUBCLASS(1) | GEN_SUBCLASS(4) | REG_CLASS_SREG | BITS16 | REGISTER)      /* GS */
-#define REG_FSGS                (                  GEN_SUBCLASS(4) | REG_CLASS_SREG | BITS16 | REGISTER)      /* FS or GS */
-#define REG_SEG67               (                  GEN_SUBCLASS(5) | REG_CLASS_SREG | BITS16 | REGISTER)      /* Unimplemented segment registers */
-
-/* Special GPRs */
-#define REG_SMASK               SUBCLASS_MASK                                                                           /* a mask for the following */
-#define REG_ACCUM               (GEN_SUBCLASS(1)                   | REG_CLASS_GPR           | REGMEM | REGISTER)       /* accumulator: AL, AX, EAX, RAX */
-#define REG_AL                  (GEN_SUBCLASS(1)                   | REG_CLASS_GPR | BITS8   | REGMEM | REGISTER)
-#define REG_AX                  (GEN_SUBCLASS(1)                   | REG_CLASS_GPR | BITS16  | REGMEM | REGISTER)
-#define REG_EAX                 (GEN_SUBCLASS(1)                   | REG_CLASS_GPR | BITS32  | REGMEM | REGISTER)
-#define REG_RAX                 (GEN_SUBCLASS(1)                   | REG_CLASS_GPR | BITS64  | REGMEM | REGISTER)
-#define REG_COUNT               (GEN_SUBCLASS(5) | GEN_SUBCLASS(2) | REG_CLASS_GPR           | REGMEM | REGISTER)       /* counter: CL, CX, ECX, RCX */
-#define REG_CL                  (GEN_SUBCLASS(5) | GEN_SUBCLASS(2) | REG_CLASS_GPR | BITS8   | REGMEM | REGISTER)
-#define REG_CX                  (GEN_SUBCLASS(5) | GEN_SUBCLASS(2) | REG_CLASS_GPR | BITS16  | REGMEM | REGISTER)
-#define REG_ECX                 (GEN_SUBCLASS(5) | GEN_SUBCLASS(2) | REG_CLASS_GPR | BITS32  | REGMEM | REGISTER)
-#define REG_RCX                 (GEN_SUBCLASS(5) | GEN_SUBCLASS(2) | REG_CLASS_GPR | BITS64  | REGMEM | REGISTER)
-#define REG_DL                  (GEN_SUBCLASS(5) | GEN_SUBCLASS(3) | REG_CLASS_GPR | BITS8   | REGMEM | REGISTER)       /* data: DL, DX, EDX, RDX */
-#define REG_DX                  (GEN_SUBCLASS(5) | GEN_SUBCLASS(3) | REG_CLASS_GPR | BITS16  | REGMEM | REGISTER)
-#define REG_EDX                 (GEN_SUBCLASS(5) | GEN_SUBCLASS(3) | REG_CLASS_GPR | BITS32  | REGMEM | REGISTER)
-#define REG_RDX                 (GEN_SUBCLASS(5) | GEN_SUBCLASS(3) | REG_CLASS_GPR | BITS64  | REGMEM | REGISTER)
-#define REG_HIGH                (GEN_SUBCLASS(5) | GEN_SUBCLASS(4) | REG_CLASS_GPR | BITS8   | REGMEM | REGISTER)       /* high regs: AH, CH, DH, BH */
-#define REG_NOTACC              GEN_SUBCLASS(5)                                                                         /* non-accumulator register */
-#define REG8NA                  (GEN_SUBCLASS(5)                   | REG_CLASS_GPR | BITS8   | REGMEM | REGISTER)       /*  8-bit non-acc GPR  */
-#define REG16NA                 (GEN_SUBCLASS(5)                   | REG_CLASS_GPR | BITS16  | REGMEM | REGISTER)       /* 16-bit non-acc GPR */
-#define REG32NA                 (GEN_SUBCLASS(5)                   | REG_CLASS_GPR | BITS32  | REGMEM | REGISTER)       /* 32-bit non-acc GPR */
-#define REG64NA                 (GEN_SUBCLASS(5)                   | REG_CLASS_GPR | BITS64  | REGMEM | REGISTER)       /* 64-bit non-acc GPR */
-
-/* special types of EAs */
-#define MEM_OFFS                (GEN_SUBCLASS(1) | MEMORY)      /* simple [address] offset - absolute! */
-#define IP_REL                  (GEN_SUBCLASS(2) | MEMORY)      /* IP-relative offset */
-#define XMEM                    (GEN_SUBCLASS(3) | MEMORY)      /* 128-bit vector SIB */
-#define YMEM                    (GEN_SUBCLASS(4) | MEMORY)      /* 256-bit vector SIB */
-#define ZMEM                    (GEN_SUBCLASS(5) | MEMORY)      /* 512-bit vector SIB */
-
-/* memory which matches any type of r/m operand */
-#define MEMORY_ANY              (MEMORY | RM_GPR | RM_MMX | RM_XMM_L16 | RM_YMM_L16 | RM_ZMM_L16 | RM_OPMASK | RM_BND)
-
-/* special immediate values */
-#define UNITY                   (GEN_SUBCLASS(0) | IMMEDIATE)   /* operand equals 1 */
-#define SBYTEWORD               (GEN_SUBCLASS(1) | IMMEDIATE)   /* operand is in the range -128..127 mod 2^16 */
-#define SBYTEDWORD              (GEN_SUBCLASS(2) | IMMEDIATE)   /* operand is in the range -128..127 mod 2^32 */
-#define SDWORD                  (GEN_SUBCLASS(3) | IMMEDIATE)   /* operand is in the range -0x80000000..0x7FFFFFFF */
-#define UDWORD                  (GEN_SUBCLASS(4) | IMMEDIATE)   /* operand is in the range 0..0xFFFFFFFF */
-
-/*
- * Subset of vector registers: register 0 only and registers 0-15.
- * Avoid conflicts in subclass bitfield with any of special EA types!
- */
-#define RM_XMM_L16              (GEN_SUBCLASS(6) | RM_XMM)                                              /* XMM r/m operand  0 ~ 15 */
-#define XMM0                    (GEN_SUBCLASS(1) | GEN_SUBCLASS(6) | XMMREG)                            /* XMM register   zero  */
-#define XMM_L16                 (                  GEN_SUBCLASS(6) | XMMREG)                            /* XMM register  0 ~ 15 */
-
-#define RM_YMM_L16              (GEN_SUBCLASS(6) | RM_YMM)                                              /* YMM r/m operand  0 ~ 15 */
-#define YMM0                    (GEN_SUBCLASS(1) | GEN_SUBCLASS(6) | YMMREG)                            /* YMM register   zero  */
-#define YMM_L16                 (                  GEN_SUBCLASS(6) | YMMREG)                            /* YMM register  0 ~ 15 */
-
-#define RM_ZMM_L16              (GEN_SUBCLASS(6) | RM_ZMM)                                              /* ZMM r/m operand  0 ~ 15 */
-#define ZMM0                    (GEN_SUBCLASS(1) | GEN_SUBCLASS(6) | ZMMREG)                            /* ZMM register   zero  */
-#define ZMM_L16                 (                  GEN_SUBCLASS(6) | ZMMREG)                            /* ZMM register  0 ~ 15 */
-
-#endif /* NASM_OPFLAGS_H */
--- a/nasmbuild/nasm-2.13rc9/include/raa.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#ifndef NASM_RAA_H
-#define NASM_RAA_H 1
-
-#include "compiler.h"
-
-struct RAA;
-
-struct RAA *raa_init(void);
-void raa_free(struct RAA *);
-int64_t raa_read(struct RAA *, int32_t);
-struct RAA *raa_write(struct RAA *r, int32_t posn, int64_t value);
-
-#endif                          /* NASM_RAA_H */
--- a/nasmbuild/nasm-2.13rc9/include/rbtree.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#ifndef NASM_RBTREE_H
-#define NASM_RBTREE_H
-
-#include "compiler.h"
-
-/* This structure should be embedded in a larger data structure;
-   the final output from rb_search() can then be converted back
-   to the larger data structure via container_of(). */
-struct rbtree {
-    uint64_t key;
-    struct rbtree *left, *right;
-    bool red;
-};
-
-struct rbtree *rb_insert(struct rbtree *, struct rbtree *);
-struct rbtree *rb_search(struct rbtree *, uint64_t);
-
-#endif /* NASM_RBTREE_H */
--- a/nasmbuild/nasm-2.13rc9/include/rdoff.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,292 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * rdoff.h	RDOFF Object File manipulation routines header file
- */
-
-#ifndef RDOFF_RDOFF_H
-#define RDOFF_RDOFF_H 1
-
-
-/*
- * RDOFF definitions. They are used by RDOFF utilities and by NASM's
- * 'outrdf2.c' output module.
- */
-
-/* RDOFF format revision (currently used only when printing the version) */
-#define RDOFF2_REVISION		"0.6.1"
-
-/* RDOFF2 file signature */
-#define RDOFF2_SIGNATURE	"RDOFF2"
-
-/* Maximum size of an import/export label (including trailing zero) */
-#define EXIM_LABEL_MAX		256
-
-/* Maximum size of library or module name (including trailing zero) */
-#define MODLIB_NAME_MAX		128
-
-/* Maximum number of segments that we can handle in one file */
-#define RDF_MAXSEGS		64
-
-/* Record types that may present the RDOFF header */
-#define RDFREC_GENERIC		0
-#define RDFREC_RELOC		1
-#define RDFREC_IMPORT		2
-#define RDFREC_GLOBAL		3
-#define RDFREC_DLL		4
-#define RDFREC_BSS		5
-#define RDFREC_SEGRELOC		6
-#define RDFREC_FARIMPORT	7
-#define RDFREC_MODNAME		8
-#define RDFREC_COMMON		10
-
-/*
- * Generic record - contains the type and length field, plus a 128 byte
- * array 'data'
- */
-struct GenericRec {
-    uint8_t type;
-    uint8_t reclen;
-    char data[128];
-};
-
-/*
- * Relocation record
- */
-struct RelocRec {
-    uint8_t type;                  /* must be 1 */
-    uint8_t reclen;                /* content length */
-    uint8_t segment;               /* only 0 for code, or 1 for data supported,
-                                   but add 64 for relative refs (ie do not require
-                                   reloc @ loadtime, only linkage) */
-    int32_t offset;                /* from start of segment in which reference is loc'd */
-    uint8_t length;                /* 1 2 or 4 bytes */
-    uint16_t refseg;              /* segment to which reference refers to */
-};
-
-/*
- * Extern/import record
- */
-struct ImportRec {
-    uint8_t type;                  /* must be 2 */
-    uint8_t reclen;                /* content length */
-    uint8_t flags;                 /* SYM_* flags (see below) */
-    uint16_t segment;             /* segment number allocated to the label for reloc
-                                   records - label is assumed to be at offset zero
-                                   in this segment, so linker must fix up with offset
-                                   of segment and of offset within segment */
-    char label[EXIM_LABEL_MAX]; /* zero terminated, should be written to file
-                                   until the zero, but not after it */
-};
-
-/*
- * Public/export record
- */
-struct ExportRec {
-    uint8_t type;                  /* must be 3 */
-    uint8_t reclen;                /* content length */
-    uint8_t flags;                 /* SYM_* flags (see below) */
-    uint8_t segment;               /* segment referred to (0/1/2) */
-    int32_t offset;                /* offset within segment */
-    char label[EXIM_LABEL_MAX]; /* zero terminated as in import */
-};
-
-/*
- * DLL record
- */
-struct DLLRec {
-    uint8_t type;                  /* must be 4 */
-    uint8_t reclen;                /* content length */
-    char libname[MODLIB_NAME_MAX];      /* name of library to link with at load time */
-};
-
-/*
- * BSS record
- */
-struct BSSRec {
-    uint8_t type;                  /* must be 5 */
-    uint8_t reclen;                /* content length */
-    int32_t amount;                /* number of bytes BSS to reserve */
-};
-
-/*
- * Module name record
- */
-struct ModRec {
-    uint8_t type;                  /* must be 8 */
-    uint8_t reclen;                /* content length */
-    char modname[MODLIB_NAME_MAX];      /* module name */
-};
-
-/*
- * Common variable record
- */
-struct CommonRec {
-    uint8_t type;                  /* must be 10 */
-    uint8_t reclen;                /* equals 7+label length */
-    uint16_t segment;             /* segment number */
-    int32_t size;                  /* size of common variable */
-    uint16_t align;               /* alignment (power of two) */
-    char label[EXIM_LABEL_MAX]; /* zero terminated as in import */
-};
-
-/* Flags for ExportRec */
-#define SYM_DATA	1
-#define SYM_FUNCTION	2
-#define SYM_GLOBAL	4
-#define SYM_IMPORT	8
-
-/*** The following part is used only by the utilities *************************/
-
-#ifdef RDOFF_UTILS
-
-/* Some systems don't define this automatically */
-#if !defined(strdup)
-extern char *strdup(const char *);
-#endif
-
-typedef union RDFHeaderRec {
-    char type;                  /* invariant throughout all below */
-    struct GenericRec g;        /* type 0 */
-    struct RelocRec r;          /* type == 1 / 6 */
-    struct ImportRec i;         /* type == 2 / 7 */
-    struct ExportRec e;         /* type == 3 */
-    struct DLLRec d;            /* type == 4 */
-    struct BSSRec b;            /* type == 5 */
-    struct ModRec m;            /* type == 8 */
-    struct CommonRec c;         /* type == 10 */
-} rdfheaderrec;
-
-struct SegmentHeaderRec {
-    /* information from file */
-    uint16_t type;
-    uint16_t number;
-    uint16_t reserved;
-    int32_t length;
-
-    /* information built up here */
-    int32_t offset;
-    uint8_t *data;                 /* pointer to segment data if it exists in memory */
-};
-
-typedef struct RDFFileInfo {
-    FILE *fp;                   /* file descriptor; must be open to use this struct */
-    int rdoff_ver;              /* should be 1; any higher => not guaranteed to work */
-    int32_t header_len;
-    int32_t header_ofs;
-
-    uint8_t *header_loc;           /* keep location of header */
-    int32_t header_fp;             /* current location within header for reading */
-
-    struct SegmentHeaderRec seg[RDF_MAXSEGS];
-    int nsegs;
-
-    int32_t eof_offset;            /* offset of the first uint8_t beyond the end of this
-                                   module */
-
-    char *name;                 /* name of module in libraries */
-    int *refcount;              /* pointer to reference count on file, or NULL */
-} rdffile;
-
-#define BUF_BLOCK_LEN 4088      /* selected to match page size (4096)
-                                 * on 80x86 machines for efficiency */
-typedef struct memorybuffer {
-    int length;
-    uint8_t buffer[BUF_BLOCK_LEN];
-    struct memorybuffer *next;
-} memorybuffer;
-
-typedef struct {
-    memorybuffer *buf;          /* buffer containing header records */
-    int nsegments;              /* number of segments to be written */
-    int32_t seglength;             /* total length of all the segments */
-} rdf_headerbuf;
-
-/* segments used by RDOFF, understood by rdoffloadseg */
-#define RDOFF_CODE	0
-#define RDOFF_DATA	1
-#define RDOFF_HEADER	-1
-/* mask for 'segment' in relocation records to find if relative relocation */
-#define RDOFF_RELATIVEMASK 64
-/* mask to find actual segment value in relocation records */
-#define RDOFF_SEGMENTMASK 63
-
-extern int rdf_errno;
-
-/* rdf_errno can hold these error codes */
-enum {
-    /* 0 */ RDF_OK,
-    /* 1 */ RDF_ERR_OPEN,
-    /* 2 */ RDF_ERR_FORMAT,
-    /* 3 */ RDF_ERR_READ,
-    /* 4 */ RDF_ERR_UNKNOWN,
-    /* 5 */ RDF_ERR_HEADER,
-    /* 6 */ RDF_ERR_NOMEM,
-    /* 7 */ RDF_ERR_VER,
-    /* 8 */ RDF_ERR_RECTYPE,
-    /* 9 */ RDF_ERR_RECLEN,
-    /* 10 */ RDF_ERR_SEGMENT
-};
-
-/* utility functions */
-int32_t translateint32_t(int32_t in);
-uint16_t translateint16_t(uint16_t in);
-char *translatesegmenttype(uint16_t type);
-
-/* RDOFF file manipulation functions */
-int rdfopen(rdffile * f, const char *name);
-int rdfopenhere(rdffile * f, FILE * fp, int *refcount, const char *name);
-int rdfclose(rdffile * f);
-int rdffindsegment(rdffile * f, int segno);
-int rdfloadseg(rdffile * f, int segment, void *buffer);
-rdfheaderrec *rdfgetheaderrec(rdffile * f);     /* returns static storage */
-void rdfheaderrewind(rdffile * f);      /* back to start of header */
-void rdfperror(const char *app, const char *name);
-
-/* functions to write a new RDOFF header to a file -
-   use rdfnewheader to allocate a header, rdfaddheader to add records to it,
-   rdfaddsegment to notify the header routines that a segment exists, and
-   to tell it how int32_t the segment will be.
-   rdfwriteheader to write the file id, object length, and header
-   to a file, and then rdfdoneheader to dispose of the header */
-
-rdf_headerbuf *rdfnewheader(void);
-int rdfaddheader(rdf_headerbuf * h, rdfheaderrec * r);
-int rdfaddsegment(rdf_headerbuf * h, int32_t seglength);
-int rdfwriteheader(FILE * fp, rdf_headerbuf * h);
-void rdfdoneheader(rdf_headerbuf * h);
-
-#endif                          /* RDOFF_UTILS */
-
-#endif                          /* RDOFF_RDOFF_H */
--- a/nasmbuild/nasm-2.13rc9/include/saa.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#ifndef NASM_SAA_H
-#define NASM_SAA_H
-
-#include "compiler.h"
-
-/*
- * Routines to manage a dynamic sequential-access array, under the
- * same restriction on maximum mallocable block. This array may be
- * written to in two ways: a contiguous chunk can be reserved of a
- * given size with a pointer returned OR single-byte data may be
- * written. The array can also be read back in the same two ways:
- * as a series of big byte-data blocks or as a list of structures
- * of a given size.
- */
-
-struct SAA {
-    /*
-     * members `end' and `elem_len' are only valid in first link in
-     * list; `rptr' and `rpos' are used for reading
-     */
-    size_t elem_len;            /* Size of each element */
-    size_t blk_len;             /* Size of each allocation block */
-    size_t nblks;               /* Total number of allocated blocks */
-    size_t nblkptrs;            /* Total number of allocation block pointers */
-    size_t length;              /* Total allocated length of the array */
-    size_t datalen;             /* Total data length of the array */
-    char **wblk;                /* Write block pointer */
-    size_t wpos;                /* Write position inside block */
-    size_t wptr;                /* Absolute write position */
-    char **rblk;                /* Read block pointer */
-    size_t rpos;                /* Read position inside block */
-    size_t rptr;                /* Absolute read position */
-    char **blk_ptrs;            /* Pointer to pointer blocks */
-};
-
-struct SAA *saa_init(size_t elem_len);  /* 1 == byte */
-void saa_free(struct SAA *);
-void *saa_wstruct(struct SAA *);        /* return a structure of elem_len */
-void saa_wbytes(struct SAA *, const void *, size_t);    /* write arbitrary bytes */
-void saa_rewind(struct SAA *);  /* for reading from beginning */
-void *saa_rstruct(struct SAA *);        /* return NULL on EOA */
-const void *saa_rbytes(struct SAA *, size_t *); /* return 0 on EOA */
-void saa_rnbytes(struct SAA *, void *, size_t); /* read a given no. of bytes */
-/* random access */
-void saa_fread(struct SAA *, size_t, void *, size_t);
-void saa_fwrite(struct SAA *, size_t, const void *, size_t);
-
-/* dump to file */
-void saa_fpwrite(struct SAA *, FILE *);
-
-/* Write specific-sized values */
-void saa_write8(struct SAA *s, uint8_t v);
-void saa_write16(struct SAA *s, uint16_t v);
-void saa_write32(struct SAA *s, uint32_t v);
-void saa_write64(struct SAA *s, uint64_t v);
-void saa_wleb128u(struct SAA *, int);   /* write unsigned LEB128 value */
-void saa_wleb128s(struct SAA *, int);   /* write signed LEB128 value */
-void saa_writeaddr(struct SAA *, uint64_t, size_t);
-
-#endif                          /* NASM_SAA_H */
--- a/nasmbuild/nasm-2.13rc9/include/strlist.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * strlist.h - simple linked list of strings
- */
-
-#ifndef NASM_STRLIST_H
-#define NASM_STRLIST_H
-
-#include "compiler.h"
-
-#include <string.h>
-
-#include "nasmlib.h"
-
-typedef struct string_list {
-    struct string_list  *next;
-    char                str[1];
-} StrList;
-
-bool nasm_add_to_strlist(StrList **head, StrList *entry);
-bool nasm_add_string_to_strlist(StrList **head, const char *str);
-
-#endif /* NASM_STRLIST_H */
--- a/nasmbuild/nasm-2.13rc9/include/tables.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * tables.h
- *
- * Declarations for auto-generated tables
- */
-
-#ifndef NASM_TABLES_H
-#define NASM_TABLES_H
-
-#include "compiler.h"
-#include "insnsi.h"		/* For enum opcode */
-
-/* --- From standard.mac via macros.pl: --- */
-
-/* macros.c */
-extern const unsigned char nasm_stdmac_tasm[];
-extern const unsigned char nasm_stdmac_nasm[];
-extern const unsigned char nasm_stdmac_version[];
-const unsigned char *nasm_stdmac_find_package(const char *);
-
-/* --- From insns.dat via insns.pl: --- */
-
-/* insnsn.c */
-extern const char * const nasm_insn_names[];
-
-/* --- From regs.dat via regs.pl: --- */
-
-/* regs.c */
-extern const char * const nasm_reg_names[];
-/* regflags.c */
-typedef uint64_t opflags_t;
-typedef uint16_t  decoflags_t;
-extern const opflags_t nasm_reg_flags[];
-/* regvals.c */
-extern const int nasm_regvals[];
-
-#endif /* NASM_TABLES_H */
--- a/nasmbuild/nasm-2.13rc9/include/ver.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * NASM version strings, defined in ver.c
- */
-
-#ifndef NASM_VER_H
-#define NASM_VER_H
-
-extern const char nasm_version[];
-extern const char nasm_date[];
-extern const char nasm_compile_options[];
-extern const char nasm_comment[];
-extern const char nasm_signature[];
-
-#endif /* NASM_VER_H */
--- a/nasmbuild/nasm-2.13rc9/install-sh	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,250 +0,0 @@
-#! /bin/sh
-# 
-# install - install a program, script, or datafile
-# This comes from X11R5 (mit/util/scripts/install.sh).
-#
-# Copyright 1991 by the Massachusetts Institute of Technology
-#
-# Permission to use, copy, modify, distribute, and sell this software and its
-# documentation for any purpose is hereby granted without fee, provided that
-# the above copyright notice appear in all copies and that both that
-# copyright notice and this permission notice appear in supporting
-# documentation, and that the name of M.I.T. not be used in advertising or
-# publicity pertaining to distribution of the software without specific,
-# written prior permission.  M.I.T. makes no representations about the
-# suitability of this software for any purpose.  It is provided "as is"
-# without express or implied warranty.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
-
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
-
-
-# put in absolute paths if you don't have them in your path; or use env. vars.
-
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
-
-transformbasename=""
-transform_arg=""
-instcmd="$mvprog"
-chmodcmd="$chmodprog 0755"
-chowncmd=""
-chgrpcmd=""
-stripcmd=""
-rmcmd="$rmprog -f"
-mvcmd="$mvprog"
-src=""
-dst=""
-dir_arg=""
-
-while [ x"$1" != x ]; do
-    case $1 in
-	-c) instcmd="$cpprog"
-	    shift
-	    continue;;
-
-	-d) dir_arg=true
-	    shift
-	    continue;;
-
-	-m) chmodcmd="$chmodprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-o) chowncmd="$chownprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-g) chgrpcmd="$chgrpprog $2"
-	    shift
-	    shift
-	    continue;;
-
-	-s) stripcmd="$stripprog"
-	    shift
-	    continue;;
-
-	-t=*) transformarg=`echo $1 | sed 's/-t=//'`
-	    shift
-	    continue;;
-
-	-b=*) transformbasename=`echo $1 | sed 's/-b=//'`
-	    shift
-	    continue;;
-
-	*)  if [ x"$src" = x ]
-	    then
-		src=$1
-	    else
-		# this colon is to work around a 386BSD /bin/sh bug
-		:
-		dst=$1
-	    fi
-	    shift
-	    continue;;
-    esac
-done
-
-if [ x"$src" = x ]
-then
-	echo "install:	no input file specified"
-	exit 1
-else
-	true
-fi
-
-if [ x"$dir_arg" != x ]; then
-	dst=$src
-	src=""
-	
-	if [ -d $dst ]; then
-		instcmd=:
-	else
-		instcmd=mkdir
-	fi
-else
-
-# Waiting for this to be detected by the "$instcmd $src $dsttmp" command
-# might cause directories to be created, which would be especially bad 
-# if $src (and thus $dsttmp) contains '*'.
-
-	if [ -f $src -o -d $src ]
-	then
-		true
-	else
-		echo "install:  $src does not exist"
-		exit 1
-	fi
-	
-	if [ x"$dst" = x ]
-	then
-		echo "install:	no destination specified"
-		exit 1
-	else
-		true
-	fi
-
-# If destination is a directory, append the input filename; if your system
-# does not like double slashes in filenames, you may need to add some logic
-
-	if [ -d $dst ]
-	then
-		dst="$dst"/`basename $src`
-	else
-		true
-	fi
-fi
-
-## this sed command emulates the dirname command
-dstdir=`echo $dst | sed -e 's,[^/]*$,,;s,/$,,;s,^$,.,'`
-
-# Make sure that the destination directory exists.
-#  this part is taken from Noah Friedman's mkinstalldirs script
-
-# Skip lots of stat calls in the usual case.
-if [ ! -d "$dstdir" ]; then
-defaultIFS='	
-'
-IFS="${IFS-${defaultIFS}}"
-
-oIFS="${IFS}"
-# Some sh's can't handle IFS=/ for some reason.
-IFS='%'
-set - `echo ${dstdir} | sed -e 's@/@%@g' -e 's@^%@/@'`
-IFS="${oIFS}"
-
-pathcomp=''
-
-while [ $# -ne 0 ] ; do
-	pathcomp="${pathcomp}${1}"
-	shift
-
-	if [ ! -d "${pathcomp}" ] ;
-        then
-		$mkdirprog "${pathcomp}"
-	else
-		true
-	fi
-
-	pathcomp="${pathcomp}/"
-done
-fi
-
-if [ x"$dir_arg" != x ]
-then
-	$doit $instcmd $dst &&
-
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dst; else true ; fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dst; else true ; fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dst; else true ; fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dst; else true ; fi
-else
-
-# If we're going to rename the final executable, determine the name now.
-
-	if [ x"$transformarg" = x ] 
-	then
-		dstfile=`basename $dst`
-	else
-		dstfile=`basename $dst $transformbasename | 
-			sed $transformarg`$transformbasename
-	fi
-
-# don't allow the sed command to completely eliminate the filename
-
-	if [ x"$dstfile" = x ] 
-	then
-		dstfile=`basename $dst`
-	else
-		true
-	fi
-
-# Make a temp file name in the proper directory.
-
-	dsttmp=$dstdir/#inst.$$#
-
-# Move or copy the file name to the temp name
-
-	$doit $instcmd $src $dsttmp &&
-
-	trap "rm -f ${dsttmp}" 0 &&
-
-# and set any options; do chmod last to preserve setuid bits
-
-# If any of these fail, we abort the whole thing.  If we want to
-# ignore errors from any of these, just make sure not to ignore
-# errors from the above "$doit $instcmd $src $dsttmp" command.
-
-	if [ x"$chowncmd" != x ]; then $doit $chowncmd $dsttmp; else true;fi &&
-	if [ x"$chgrpcmd" != x ]; then $doit $chgrpcmd $dsttmp; else true;fi &&
-	if [ x"$stripcmd" != x ]; then $doit $stripcmd $dsttmp; else true;fi &&
-	if [ x"$chmodcmd" != x ]; then $doit $chmodcmd $dsttmp; else true;fi &&
-
-# Now rename the file to the real destination.
-
-	$doit $rmcmd -f $dstdir/$dstfile &&
-	$doit $mvcmd $dsttmp $dstdir/$dstfile 
-
-fi &&
-
-
-exit 0
--- a/nasmbuild/nasm-2.13rc9/macros/altreg.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,107 +0,0 @@
-;; --------------------------------------------------------------------------
-;;   
-;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;     
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-;;
-;; altreg.mac
-;;
-;; Alternate register names for 64-bit mode
-;;
-
-USE: altreg
-
-;;
-;; Intel documents R8L-R15L instead of R8B-R15B
-;; (Warning: this may confuse people with an AT&T-style assembly
-;; background, where "r8l" means R8D, etc.)
-;;
-%idefine r8l  r8b
-%idefine r9l  r9b
-%idefine r10l r10b
-%idefine r11l r11b
-%idefine r12l r12b
-%idefine r13l r13b
-%idefine r14l r14b
-%idefine r15l r15b
-
-;;
-;; Numeric register names for the lower 8 registers
-;;
-%idefine r0  rax
-%idefine r1  rcx
-%idefine r2  rdx
-%idefine r3  rbx
-%idefine r4  rsp
-%idefine r5  rbp
-%idefine r6  rsi
-%idefine r7  rdi
-
-%idefine r0d eax
-%idefine r1d ecx
-%idefine r2d edx
-%idefine r3d ebx
-%idefine r4d esp
-%idefine r5d ebp
-%idefine r6d esi
-%idefine r7d edi
-
-%idefine r0w ax
-%idefine r1w cx
-%idefine r2w dx
-%idefine r3w bx
-%idefine r4w sp
-%idefine r5w bp
-%idefine r6w si
-%idefine r7w di
-
-%idefine r0b al
-%idefine r1b cl
-%idefine r2b dl
-%idefine r3b bl
-%idefine r4b spl
-%idefine r5b bpl
-%idefine r6b sil
-%idefine r7b dil
-
-%idefine r0l al
-%idefine r1l cl
-%idefine r2l dl
-%idefine r3l bl
-%idefine r4l spl
-%idefine r5l bpl
-%idefine r6l sil
-%idefine r7l dil
-
-%idefine r0h ah
-%idefine r1h ch
-%idefine r2h dh
-%idefine r3h bh
--- a/nasmbuild/nasm-2.13rc9/macros/fp.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-;; --------------------------------------------------------------------------
-;;   
-;;   Copyright 2010 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;     
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-;;
-;; fp.mac
-;;
-;; Floating-point utility macros
-;;
-
-USE: fp
-
-%define	Inf		__Infinity__
-%define NaN		__QNaN__
-%define QNaN		__QNaN__
-%define SNaN		__SNaN__
-
-%define float8(x)	__float8__(x)
-%define float16(x)	__float16__(x)
-%define float32(x)	__float32__(x)
-%define float64(x)	__float64__(x)
-%define float80m(x)	__float80m__(x)
-%define float80e(x)	__float80e__(x)
-%define float128l(x)	__float128l__(x)
-%define float128h(x)	__float128h__(x)
--- a/nasmbuild/nasm-2.13rc9/macros/ifunc.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-;; --------------------------------------------------------------------------
-;;   
-;;   Copyright 2012-2016 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;     
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-;;
-;; ifunc.mac
-;;
-;; Integer function utility macros
-;;
-
-USE: ifunc
-
-%idefine ilog2(x)	(__ilog2e__(x))
-%idefine ilog2e(x)	(__ilog2e__(x))
-%idefine ilog2w(x)	(__ilog2w__(x))
-%idefine ilog2fw(x)	(__ilog2w__(x))
-%idefine ilog2f(x)	(__ilog2f__(x))
-%idefine ilog2cw(x)	(__ilog2w__(x) * 0 + __ilog2c__(x))
-%idefine ilog2c(x)	(__ilog2c__(x))
--- a/nasmbuild/nasm-2.13rc9/macros/macros.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,612 +0,0 @@
-/*
- * Do not edit - this file auto-generated by macros.pl from:
- *   version.mac
- *   ./macros/altreg.mac
- *   ./macros/fp.mac
- *   ./macros/ifunc.mac
- *   ./macros/smartalign.mac
- *   ./macros/standard.mac
- *   ./output/outaout.mac
- *   ./output/outas86.mac
- *   ./output/outbin.mac
- *   ./output/outcoff.mac
- *   ./output/outelf.mac
- *   ./output/outmacho.mac
- *   ./output/outobj.mac
- *   ./output/outrdf2.mac
- *   ./output/outrdf.mac
- */
-
-#include "tables.h"
-#include "nasmlib.h"
-#include "hashtbl.h"
-#include "outform.h"
-
-
-#if 1
-const unsigned char nasm_stdmac_version[] = {
-    /* From version.mac */
-        /*    0 */ 195,'_','_','N','A','S','M','_','M','A','J','O','R','_','_',' ','2',0,
-        /*   18 */ 195,'_','_','N','A','S','M','_','M','I','N','O','R','_','_',' ','1','2',0,
-        /*   37 */ 195,'_','_','N','A','S','M','_','S','U','B','M','I','N','O','R','_','_',' ','9','9',0,
-        /*   59 */ 195,'_','_','N','A','S','M','_','P','A','T','C','H','L','E','V','E','L','_','_',' ','9','9',0,
-        /*   83 */ 195,'_','_','N','A','S','M','_','V','E','R','S','I','O','N','_','I','D','_','_',' ','0','0','2','0','C','6','3','6','3','h',0,
-        /*  115 */ 195,'_','_','N','A','S','M','_','V','E','R','_','_',' ', 34,'2','.','1','3','r','c','9', 34,0,
-        /*  139 */ 0
-};
-#endif
-
-#if 1
-static const unsigned char nasm_usemac_altreg[] = {
-    /* From ./macros/altreg.mac */
-        /*    0 */ 195,'_','_','U','S','E','_','A','L','T','R','E','G','_','_',0,
-        /*   16 */ 209,'r','8','l',' ','r','8','b',0,
-        /*   26 */ 209,'r','9','l',' ','r','9','b',0,
-        /*   36 */ 209,'r','1','0','l',' ','r','1','0','b',0,
-        /*   47 */ 209,'r','1','1','l',' ','r','1','1','b',0,
-        /*   58 */ 209,'r','1','2','l',' ','r','1','2','b',0,
-        /*   69 */ 209,'r','1','3','l',' ','r','1','3','b',0,
-        /*   80 */ 209,'r','1','4','l',' ','r','1','4','b',0,
-        /*   91 */ 209,'r','1','5','l',' ','r','1','5','b',0,
-        /*  102 */ 209,'r','0',' ','r','a','x',0,
-        /*  111 */ 209,'r','1',' ','r','c','x',0,
-        /*  120 */ 209,'r','2',' ','r','d','x',0,
-        /*  129 */ 209,'r','3',' ','r','b','x',0,
-        /*  138 */ 209,'r','4',' ','r','s','p',0,
-        /*  147 */ 209,'r','5',' ','r','b','p',0,
-        /*  156 */ 209,'r','6',' ','r','s','i',0,
-        /*  165 */ 209,'r','7',' ','r','d','i',0,
-        /*  174 */ 209,'r','0','d',' ','e','a','x',0,
-        /*  183 */ 209,'r','1','d',' ','e','c','x',0,
-        /*  192 */ 209,'r','2','d',' ','e','d','x',0,
-        /*  201 */ 209,'r','3','d',' ','e','b','x',0,
-        /*  210 */ 209,'r','4','d',' ','e','s','p',0,
-        /*  219 */ 209,'r','5','d',' ','e','b','p',0,
-        /*  228 */ 209,'r','6','d',' ','e','s','i',0,
-        /*  237 */ 209,'r','7','d',' ','e','d','i',0,
-        /*  246 */ 209,'r','0','w',' ','a','x',0,
-        /*  254 */ 209,'r','1','w',' ','c','x',0,
-        /*  262 */ 209,'r','2','w',' ','d','x',0,
-        /*  270 */ 209,'r','3','w',' ','b','x',0,
-        /*  278 */ 209,'r','4','w',' ','s','p',0,
-        /*  286 */ 209,'r','5','w',' ','b','p',0,
-        /*  294 */ 209,'r','6','w',' ','s','i',0,
-        /*  302 */ 209,'r','7','w',' ','d','i',0,
-        /*  310 */ 209,'r','0','b',' ','a','l',0,
-        /*  318 */ 209,'r','1','b',' ','c','l',0,
-        /*  326 */ 209,'r','2','b',' ','d','l',0,
-        /*  334 */ 209,'r','3','b',' ','b','l',0,
-        /*  342 */ 209,'r','4','b',' ','s','p','l',0,
-        /*  351 */ 209,'r','5','b',' ','b','p','l',0,
-        /*  360 */ 209,'r','6','b',' ','s','i','l',0,
-        /*  369 */ 209,'r','7','b',' ','d','i','l',0,
-        /*  378 */ 209,'r','0','l',' ','a','l',0,
-        /*  386 */ 209,'r','1','l',' ','c','l',0,
-        /*  394 */ 209,'r','2','l',' ','d','l',0,
-        /*  402 */ 209,'r','3','l',' ','b','l',0,
-        /*  410 */ 209,'r','4','l',' ','s','p','l',0,
-        /*  419 */ 209,'r','5','l',' ','b','p','l',0,
-        /*  428 */ 209,'r','6','l',' ','s','i','l',0,
-        /*  437 */ 209,'r','7','l',' ','d','i','l',0,
-        /*  446 */ 209,'r','0','h',' ','a','h',0,
-        /*  454 */ 209,'r','1','h',' ','c','h',0,
-        /*  462 */ 209,'r','2','h',' ','d','h',0,
-        /*  470 */ 209,'r','3','h',' ','b','h',0,
-        /*  478 */ 0
-};
-#endif
-
-#if 1
-static const unsigned char nasm_usemac_fp[] = {
-    /* From ./macros/fp.mac */
-        /*    0 */ 195,'_','_','U','S','E','_','F','P','_','_',0,
-        /*   12 */ 195,'I','n','f',' ','_','_','I','n','f','i','n','i','t','y','_','_',0,
-        /*   31 */ 195,'N','a','N',' ','_','_','Q','N','a','N','_','_',0,
-        /*   46 */ 195,'Q','N','a','N',' ','_','_','Q','N','a','N','_','_',0,
-        /*   62 */ 195,'S','N','a','N',' ','_','_','S','N','a','N','_','_',0,
-        /*   78 */ 195,'f','l','o','a','t','8','(','x',')',' ','_','_','f','l','o','a','t','8','_','_','(','x',')',0,
-        /*  103 */ 195,'f','l','o','a','t','1','6','(','x',')',' ','_','_','f','l','o','a','t','1','6','_','_','(','x',')',0,
-        /*  130 */ 195,'f','l','o','a','t','3','2','(','x',')',' ','_','_','f','l','o','a','t','3','2','_','_','(','x',')',0,
-        /*  157 */ 195,'f','l','o','a','t','6','4','(','x',')',' ','_','_','f','l','o','a','t','6','4','_','_','(','x',')',0,
-        /*  184 */ 195,'f','l','o','a','t','8','0','m','(','x',')',' ','_','_','f','l','o','a','t','8','0','m','_','_','(','x',')',0,
-        /*  213 */ 195,'f','l','o','a','t','8','0','e','(','x',')',' ','_','_','f','l','o','a','t','8','0','e','_','_','(','x',')',0,
-        /*  242 */ 195,'f','l','o','a','t','1','2','8','l','(','x',')',' ','_','_','f','l','o','a','t','1','2','8','l','_','_','(','x',')',0,
-        /*  273 */ 195,'f','l','o','a','t','1','2','8','h','(','x',')',' ','_','_','f','l','o','a','t','1','2','8','h','_','_','(','x',')',0,
-        /*  304 */ 0
-};
-#endif
-
-#if 1
-static const unsigned char nasm_usemac_ifunc[] = {
-    /* From ./macros/ifunc.mac */
-        /*    0 */ 195,'_','_','U','S','E','_','I','F','U','N','C','_','_',0,
-        /*   15 */ 209,'i','l','o','g','2','(','x',')',' ','(','_','_','i','l','o','g','2','e','_','_','(','x',')',')',0,
-        /*   41 */ 209,'i','l','o','g','2','e','(','x',')',' ','(','_','_','i','l','o','g','2','e','_','_','(','x',')',')',0,
-        /*   68 */ 209,'i','l','o','g','2','w','(','x',')',' ','(','_','_','i','l','o','g','2','w','_','_','(','x',')',')',0,
-        /*   95 */ 209,'i','l','o','g','2','f','w','(','x',')',' ','(','_','_','i','l','o','g','2','w','_','_','(','x',')',')',0,
-        /*  123 */ 209,'i','l','o','g','2','f','(','x',')',' ','(','_','_','i','l','o','g','2','f','_','_','(','x',')',')',0,
-        /*  150 */ 209,'i','l','o','g','2','c','w','(','x',')',' ','(','_','_','i','l','o','g','2','w','_','_','(','x',')',' ','*',' ','0',' ','+',' ','_','_','i','l','o','g','2','c','_','_','(','x',')',')',0,
-        /*  198 */ 209,'i','l','o','g','2','c','(','x',')',' ','(','_','_','i','l','o','g','2','c','_','_','(','x',')',')',0,
-        /*  225 */ 0
-};
-#endif
-
-#if 1
-static const unsigned char nasm_usemac_smartalign[] = {
-    /* From ./macros/smartalign.mac */
-        /*    0 */ 195,'_','_','U','S','E','_','S','M','A','R','T','A','L','I','G','N','_','_',0,
-        /*   20 */ 212,'a','l','i','g','n','m','o','d','e',' ','1','-','2','.','n','o','l','i','s','t',0,
-        /*   42 */ 174,'%','1',',','n','o','p',0,
-        /*   50 */ 195,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','1','6',0,
-        /*   78 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /*  103 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','G','R','O','U','P','_','_',' ','1',0,
-        /*  128 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /*  153 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','_','_',' ','1',0,
-        /*  178 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /*  203 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','_','_',' ','1',0,
-        /*  228 */ 142,'%','1',',','g','e','n','e','r','i','c',0,
-        /*  240 */ 195,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','8',0,
-        /*  267 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /*  292 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','2','B','_','_',' ','0','x','8','9',',','0','x','f','6',0,
-        /*  322 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','3','B','_','_',' ','0','x','8','d',',','0','x','7','4',',','0','x','0','0',0,
-        /*  357 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','4','B','_','_',' ','0','x','8','d',',','0','x','b','4',',','0','x','0','0',',','0','x','0','0',0,
-        /*  397 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','5','B','_','_',' ','0','x','8','d',',','0','x','b','4',',','0','x','0','0',',','0','x','0','0',',','0','x','9','0',0,
-        /*  442 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','6','B','_','_',' ','0','x','8','d',',','0','x','b','4',',','0','x','0','0',',','0','x','0','0',',','0','x','8','9',',','0','x','f','f',0,
-        /*  492 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','7','B','_','_',' ','0','x','8','d',',','0','x','b','4',',','0','x','0','0',',','0','x','0','0',',','0','x','8','d',',','0','x','7','d',',','0','x','0','0',0,
-        /*  547 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','8','B','_','_',' ','0','x','8','d',',','0','x','b','4',',','0','x','0','0',',','0','x','0','0',',','0','x','8','d',',','0','x','b','d',',','0','x','0','0',',','0','x','0','0',0,
-        /*  607 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','G','R','O','U','P','_','_',' ','8',0,
-        /*  632 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /*  657 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','2','B','_','_',' ','0','x','8','9',',','0','x','f','6',0,
-        /*  687 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','3','B','_','_',' ','0','x','8','d',',','0','x','7','6',',','0','x','0','0',0,
-        /*  722 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','4','B','_','_',' ','0','x','8','d',',','0','x','7','4',',','0','x','2','6',',','0','x','0','0',0,
-        /*  762 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','5','B','_','_',' ','0','x','9','0',',','0','x','8','d',',','0','x','7','4',',','0','x','2','6',',','0','x','0','0',0,
-        /*  807 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','6','B','_','_',' ','0','x','8','d',',','0','x','b','6',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
-        /*  857 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','7','B','_','_',' ','0','x','8','d',',','0','x','b','4',',','0','x','2','6',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
-        /*  912 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','_','_',' ','7',0,
-        /*  937 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /*  962 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
-        /*  992 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','3','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
-        /* 1027 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','4','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
-        /* 1067 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','_','_',' ','4',0,
-        /* 1092 */ 142,'%','1',',','k','8',0,
-        /* 1099 */ 195,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','1','6',0,
-        /* 1127 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /* 1152 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
-        /* 1182 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','3','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
-        /* 1217 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','4','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
-        /* 1257 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','G','R','O','U','P','_','_',' ','4',0,
-        /* 1282 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /* 1307 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
-        /* 1337 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','3','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
-        /* 1372 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','4','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
-        /* 1412 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','_','_',' ','4',0,
-        /* 1437 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /* 1462 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
-        /* 1492 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','3','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
-        /* 1527 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','4','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
-        /* 1567 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','_','_',' ','4',0,
-        /* 1592 */ 142,'%','1',',','k','7',0,
-        /* 1599 */ 195,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','1','6',0,
-        /* 1627 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /* 1652 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
-        /* 1682 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','3','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
-        /* 1717 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','4','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
-        /* 1757 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','_','_',' ','4',0,
-        /* 1782 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /* 1807 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','2','B','_','_',' ','0','x','8','b',',','0','x','c','0',0,
-        /* 1837 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','3','B','_','_',' ','0','x','8','d',',','0','x','0','4',',','0','x','2','0',0,
-        /* 1872 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','4','B','_','_',' ','0','x','8','d',',','0','x','4','4',',','0','x','2','0',',','0','x','0','0',0,
-        /* 1912 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','5','B','_','_',' ','0','x','8','d',',','0','x','4','4',',','0','x','2','0',',','0','x','0','0',',','0','x','9','0',0,
-        /* 1957 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','6','B','_','_',' ','0','x','8','d',',','0','x','8','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
-        /* 2007 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','7','B','_','_',' ','0','x','8','d',',','0','x','0','4',',','0','x','0','5',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
-        /* 2062 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','_','_',' ','7',0,
-        /* 2087 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /* 2112 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
-        /* 2142 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','3','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
-        /* 2177 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','4','B','_','_',' ','0','x','6','6',',','0','x','6','6',',','0','x','6','6',',','0','x','9','0',0,
-        /* 2217 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','_','_',' ','4',0,
-        /* 2242 */ 142,'%','1',',','p','6',0,
-        /* 2249 */ 195,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','1','6',0,
-        /* 2277 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /* 2302 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
-        /* 2332 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','3','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','0','0',0,
-        /* 2367 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','4','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','4','0',',','0','x','0','0',0,
-        /* 2407 */ 195,'_','_','A','L','I','G','N','_','1','6','B','I','T','_','G','R','O','U','P','_','_',' ','4',0,
-        /* 2432 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /* 2457 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
-        /* 2487 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','3','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','0','0',0,
-        /* 2522 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','4','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','4','0',',','0','x','0','0',0,
-        /* 2562 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','5','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','4','4',',','0','x','0','0',',','0','x','0','0',0,
-        /* 2607 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','6','B','_','_',' ','0','x','6','6',',','0','x','0','f',',','0','x','1','f',',','0','x','4','4',',','0','x','0','0',',','0','x','0','0',0,
-        /* 2657 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','7','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','8','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
-        /* 2712 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','8','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','8','4',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
-        /* 2772 */ 195,'_','_','A','L','I','G','N','_','3','2','B','I','T','_','G','R','O','U','P','_','_',' ','8',0,
-        /* 2797 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','1','B','_','_',' ','0','x','9','0',0,
-        /* 2822 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','2','B','_','_',' ','0','x','6','6',',','0','x','9','0',0,
-        /* 2852 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','3','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','0','0',0,
-        /* 2887 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','4','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','4','0',',','0','x','0','0',0,
-        /* 2927 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','5','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','4','4',',','0','x','0','0',',','0','x','0','0',0,
-        /* 2972 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','6','B','_','_',' ','0','x','6','6',',','0','x','0','f',',','0','x','1','f',',','0','x','4','4',',','0','x','0','0',',','0','x','0','0',0,
-        /* 3022 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','7','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','8','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
-        /* 3077 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','8','B','_','_',' ','0','x','0','f',',','0','x','1','f',',','0','x','8','4',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',',','0','x','0','0',0,
-        /* 3137 */ 195,'_','_','A','L','I','G','N','_','6','4','B','I','T','_','G','R','O','U','P','_','_',' ','8',0,
-        /* 3162 */ 199,0,
-        /* 3164 */ 204,'u','n','k','n','o','w','n',' ','a','l','i','g','n','m','e','n','t',' ','m','o','d','e',':',' ','%','1',0,
-        /* 3192 */ 200,0,
-        /* 3194 */ 167,'%','2',0,
-        /* 3198 */ 174,'%','2',',','n','o','j','m','p',0,
-        /* 3208 */ 236,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','-','1',0,
-        /* 3236 */ 199,0,
-        /* 3238 */ 236,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','%','2',0,
-        /* 3266 */ 200,0,
-        /* 3268 */ 200,0,
-        /* 3270 */ 236,'_','_','A','L','I','G','N','M','O','D','E','_','_',' ','%','1',',','_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',0,
-        /* 3312 */ 202,0,
-        /* 3314 */ 232,'a','l','i','g','n',' ','1','-','2','+','.','n','o','l','i','s','t',0,
-        /* 3333 */ 212,'a','l','i','g','n',' ','1','-','2','+','.','n','o','l','i','s','t',0,
-        /* 3352 */ 's','e','c','t','a','l','i','g','n',' ','%','1',0,
-        /* 3365 */ 167,'%','2',0,
-        /* 3369 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','%','2',0,
-        /* 3412 */ 128,'_','_','P','A','S','S','_','_',' ','=','=',' ','0',' ','|','|',' ','_','_','P','A','S','S','_','_',' ','=','=',' ','3',0,
-        /* 3444 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','n','o','p',0,
-        /* 3488 */ 199,0,
-        /* 3490 */ 222,0,
-        /* 3492 */ 193,'%','$','p','a','d',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',0,
-        /* 3533 */ 160,'_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',' ','!','=',' ','-','1',' ','&','&',' ','%','$','p','a','d',' ','>',' ','_','_','A','L','I','G','N','_','J','M','P','_','T','H','R','E','S','H','O','L','D','_','_',0,
-        /* 3599 */ 'j','m','p',' ','%','$','e','n','d',0,
-        /* 3609 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','n','o','p',0,
-        /* 3653 */ '%','$','e','n','d',':',0,
-        /* 3660 */ 199,0,
-        /* 3662 */ 't','i','m','e','s',' ','(','%','$','p','a','d',' ','/',' ','_','_','A','L','I','G','N','_','%','[','_','_','B','I','T','S','_','_',']','B','I','T','_','G','R','O','U','P','_','_',')',' ','d','b',' ','_','_','A','L','I','G','N','_','%','[','_','_','B','I','T','S','_','_',']','B','I','T','_','%','[','_','_','A','L','I','G','N','_','%','[','_','_','B','I','T','S','_','_',']','B','I','T','_','G','R','O','U','P','_','_',']','B','_','_',0,
-        /* 3780 */ 193,'%','$','p','a','d',' ','%','$','p','a','d',' ','%',' ','_','_','A','L','I','G','N','_','%','[','_','_','B','I','T','S','_','_',']','B','I','T','_','G','R','O','U','P','_','_',0,
-        /* 3826 */ 160,'%','$','p','a','d',' ','>',' ','0',0,
-        /* 3837 */ 'd','b',' ','_','_','A','L','I','G','N','_','%','[','_','_','B','I','T','S','_','_',']','B','I','T','_','%','[','%','$','p','a','d',']','B','_','_',0,
-        /* 3875 */ 200,0,
-        /* 3877 */ 200,0,
-        /* 3879 */ 220,0,
-        /* 3881 */ 200,0,
-        /* 3883 */ 202,0,
-        /* 3885 */ 'a','l','i','g','n','m','o','d','e',' ','g','e','n','e','r','i','c',0,
-        /* 3903 */ 0
-};
-#endif
-
-#if 1
-const unsigned char nasm_stdmac_tasm[] = {
-    /* From ./macros/standard.mac */
-        /*    0 */ 209,'I','D','E','A','L',0,
-        /*    7 */ 209,'J','U','M','P','S',0,
-        /*   14 */ 209,'P','3','8','6',0,
-        /*   20 */ 209,'P','4','8','6',0,
-        /*   26 */ 209,'P','5','8','6',0,
-        /*   32 */ 209,'E','N','D',0,
-        /*   37 */ 0
-};
-#endif
-
-#if 1
-const unsigned char nasm_stdmac_nasm[] = {
-    /* From ./macros/standard.mac */
-        /*    0 */ 195,'_','_','F','I','L','E','_','_',0,
-        /*   10 */ 195,'_','_','L','I','N','E','_','_',0,
-        /*   20 */ 195,'_','_','B','I','T','S','_','_',0,
-        /*   30 */ 195,'_','_','S','E','C','T','_','_',0,
-        /*   40 */ 212,'s','e','c','t','i','o','n',' ','1','+','.','n','o','l','i','s','t',0,
-        /*   59 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','%','1',']',0,
-        /*   82 */ '_','_','S','E','C','T','_','_',0,
-        /*   91 */ 202,0,
-        /*   93 */ 212,'s','e','g','m','e','n','t',' ','1','+','.','n','o','l','i','s','t',0,
-        /*  112 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','g','m','e','n','t',' ','%','1',']',0,
-        /*  135 */ '_','_','S','E','C','T','_','_',0,
-        /*  144 */ 202,0,
-        /*  146 */ 195,'_','_','S','E','C','T','A','L','I','G','N','_','A','L','I','G','N','_','U','P','D','A','T','E','S','_','S','E','C','T','I','O','N','_','_',' ','1',0,
-        /*  185 */ 212,'s','e','c','t','a','l','i','g','n',' ','1','.','n','o','l','i','s','t',0,
-        /*  205 */ 178,'%','1',0,
-        /*  209 */ 160,'_','_','S','E','C','T','A','L','I','G','N','_','A','L','I','G','N','_','U','P','D','A','T','E','S','_','S','E','C','T','I','O','N','_','_',' ','=',' ','1',0,
-        /*  250 */ '[','s','e','c','t','a','l','i','g','n',' ','%','1',']',0,
-        /*  265 */ 200,0,
-        /*  267 */ 199,0,
-        /*  269 */ 174,'%','1',',','o','f','f',0,
-        /*  277 */ 195,'_','_','S','E','C','T','A','L','I','G','N','_','A','L','I','G','N','_','U','P','D','A','T','E','S','_','S','E','C','T','I','O','N','_','_',' ','0',0,
-        /*  316 */ 142,'%','1',',','o','n',0,
-        /*  323 */ 195,'_','_','S','E','C','T','A','L','I','G','N','_','A','L','I','G','N','_','U','P','D','A','T','E','S','_','S','E','C','T','I','O','N','_','_',' ','1',0,
-        /*  362 */ 200,0,
-        /*  364 */ 200,0,
-        /*  366 */ 202,0,
-        /*  368 */ 212,'a','b','s','o','l','u','t','e',' ','1','+','.','n','o','l','i','s','t',0,
-        /*  388 */ 195,'_','_','S','E','C','T','_','_',' ','[','a','b','s','o','l','u','t','e',' ','%','1',']',0,
-        /*  412 */ '_','_','S','E','C','T','_','_',0,
-        /*  421 */ 202,0,
-        /*  423 */ 212,'s','t','r','u','c',' ','1','-','2','.','n','o','l','i','s','t',' ','0',0,
-        /*  443 */ 222,0,
-        /*  445 */ 195,'%','$','s','t','r','u','c','n','a','m','e',' ','%','1',0,
-        /*  461 */ '[','a','b','s','o','l','u','t','e',' ','%','2',']',0,
-        /*  475 */ '%','$','s','t','r','u','c','n','a','m','e',':',0,
-        /*  488 */ 202,0,
-        /*  490 */ 212,'e','n','d','s','t','r','u','c',' ','0','.','n','o','l','i','s','t',0,
-        /*  509 */ '%','{','$','s','t','r','u','c','n','a','m','e','}','_','s','i','z','e',' ','e','q','u',' ','(','$','-','%','$','s','t','r','u','c','n','a','m','e',')',0,
-        /*  548 */ 220,0,
-        /*  550 */ '_','_','S','E','C','T','_','_',0,
-        /*  559 */ 202,0,
-        /*  561 */ 212,'i','s','t','r','u','c',' ','1','.','n','o','l','i','s','t',0,
-        /*  578 */ 222,0,
-        /*  580 */ 195,'%','$','s','t','r','u','c','n','a','m','e',' ','%','1',0,
-        /*  596 */ '%','$','s','t','r','u','c','s','t','a','r','t',':',0,
-        /*  610 */ 202,0,
-        /*  612 */ 212,'a','t',' ','1','-','2','+','.','n','o','l','i','s','t',0,
-        /*  628 */ 't','i','m','e','s',' ','(','%','1','-','%','$','s','t','r','u','c','n','a','m','e',')','-','(','$','-','%','$','s','t','r','u','c','s','t','a','r','t',')',' ','d','b',' ','0',0,
-        /*  673 */ '%','2',0,
-        /*  676 */ 202,0,
-        /*  678 */ 212,'i','e','n','d',' ','0','.','n','o','l','i','s','t',0,
-        /*  693 */ 't','i','m','e','s',' ','%','{','$','s','t','r','u','c','n','a','m','e','}','_','s','i','z','e','-','(','$','-','%','$','s','t','r','u','c','s','t','a','r','t',')',' ','d','b',' ','0',0,
-        /*  740 */ 220,0,
-        /*  742 */ 202,0,
-        /*  744 */ 212,'a','l','i','g','n',' ','1','-','2','+','.','n','o','l','i','s','t',' ','n','o','p',0,
-        /*  767 */ 's','e','c','t','a','l','i','g','n',' ','%','1',0,
-        /*  780 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','%','2',0,
-        /*  823 */ 202,0,
-        /*  825 */ 212,'a','l','i','g','n','b',' ','1','-','2','+','.','n','o','l','i','s','t',0,
-        /*  845 */ 's','e','c','t','a','l','i','g','n',' ','%','1',0,
-        /*  858 */ 166,'%','2',0,
-        /*  862 */ 'r','e','s','b',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',0,
-        /*  901 */ 199,0,
-        /*  903 */ 't','i','m','e','s',' ','(','(','(','%','1',')',' ','-',' ','(','(','$','-','$','$',')',' ','%',' ','(','%','1',')',')',')',' ','%',' ','(','%','1',')',')',' ','%','2',0,
-        /*  946 */ 200,0,
-        /*  948 */ 202,0,
-        /*  950 */ 212,'e','x','t','e','r','n',' ','1','-','*','.','n','o','l','i','s','t',0,
-        /*  969 */ 223,'%','0',0,
-        /*  973 */ '[','e','x','t','e','r','n',' ','%','1',']',0,
-        /*  985 */ 226,'1',0,
-        /*  988 */ 203,0,
-        /*  990 */ 202,0,
-        /*  992 */ 212,'b','i','t','s',' ','1','+','.','n','o','l','i','s','t',0,
-        /* 1008 */ '[','b','i','t','s',' ','%','1',']',0,
-        /* 1018 */ 202,0,
-        /* 1020 */ 212,'u','s','e','1','6',' ','0','.','n','o','l','i','s','t',0,
-        /* 1036 */ '[','b','i','t','s',' ','1','6',']',0,
-        /* 1046 */ 202,0,
-        /* 1048 */ 212,'u','s','e','3','2',' ','0','.','n','o','l','i','s','t',0,
-        /* 1064 */ '[','b','i','t','s',' ','3','2',']',0,
-        /* 1074 */ 202,0,
-        /* 1076 */ 212,'u','s','e','6','4',' ','0','.','n','o','l','i','s','t',0,
-        /* 1092 */ '[','b','i','t','s',' ','6','4',']',0,
-        /* 1102 */ 202,0,
-        /* 1104 */ 212,'g','l','o','b','a','l',' ','1','-','*','.','n','o','l','i','s','t',0,
-        /* 1123 */ 223,'%','0',0,
-        /* 1127 */ '[','g','l','o','b','a','l',' ','%','1',']',0,
-        /* 1139 */ 226,'1',0,
-        /* 1142 */ 203,0,
-        /* 1144 */ 202,0,
-        /* 1146 */ 212,'c','o','m','m','o','n',' ','1','-','*','.','n','o','l','i','s','t',0,
-        /* 1165 */ 223,'%','0',0,
-        /* 1169 */ '[','c','o','m','m','o','n',' ','%','1',']',0,
-        /* 1181 */ 226,'1',0,
-        /* 1184 */ 203,0,
-        /* 1186 */ 202,0,
-        /* 1188 */ 212,'c','p','u',' ','1','+','.','n','o','l','i','s','t',0,
-        /* 1203 */ '[','c','p','u',' ','%','1',']',0,
-        /* 1212 */ 202,0,
-        /* 1214 */ 195,'_','_','F','L','O','A','T','_','D','A','Z','_','_',' ','n','o','d','a','z',0,
-        /* 1235 */ 195,'_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',' ','n','e','a','r',0,
-        /* 1257 */ 195,'_','_','F','L','O','A','T','_','_',' ','_','_','F','L','O','A','T','_','D','A','Z','_','_',',','_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',0,
-        /* 1298 */ 212,'f','l','o','a','t',' ','1','-','*','.','n','o','l','i','s','t',0,
-        /* 1316 */ 223,'%','0',0,
-        /* 1320 */ '[','f','l','o','a','t',' ','%','1',']',0,
-        /* 1331 */ 174,'%','1',',','d','a','z',0,
-        /* 1339 */ 195,'_','_','F','L','O','A','T','_','D','A','Z','_','_',' ','d','a','z',0,
-        /* 1358 */ 142,'%','1',',','n','o','d','a','z',0,
-        /* 1368 */ 195,'_','_','F','L','O','A','T','_','D','A','Z','_','_',' ','n','o','d','a','z',0,
-        /* 1389 */ 142,'%','1',',','n','e','a','r',0,
-        /* 1398 */ 195,'_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',' ','n','e','a','r',0,
-        /* 1420 */ 142,'%','1',',','u','p',0,
-        /* 1427 */ 195,'_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',' ','u','p',0,
-        /* 1447 */ 142,'%','1',',','d','o','w','n',0,
-        /* 1456 */ 195,'_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',' ','d','o','w','n',0,
-        /* 1478 */ 142,'%','1',',','z','e','r','o',0,
-        /* 1487 */ 195,'_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',' ','z','e','r','o',0,
-        /* 1509 */ 142,'%','1',',','d','e','f','a','u','l','t',0,
-        /* 1521 */ 195,'_','_','F','L','O','A','T','_','D','A','Z','_','_',' ','n','o','d','a','z',0,
-        /* 1542 */ 195,'_','_','F','L','O','A','T','_','R','O','U','N','D','_','_',' ','n','e','a','r',0,
-        /* 1564 */ 200,0,
-        /* 1566 */ 226,'1',0,
-        /* 1569 */ 203,0,
-        /* 1571 */ 202,0,
-        /* 1573 */ 212,'d','e','f','a','u','l','t',' ','1','+','.','n','o','l','i','s','t',0,
-        /* 1592 */ '[','d','e','f','a','u','l','t',' ','%','1',']',0,
-        /* 1605 */ 202,0,
-        /* 1607 */ 212,'u','s','e','r','e','l',' ','0','.','n','o','l','i','s','t',0,
-        /* 1624 */ '[','d','e','f','a','u','l','t',' ','r','e','l',']',0,
-        /* 1638 */ 202,0,
-        /* 1640 */ 212,'u','s','e','a','b','s',' ','0','.','n','o','l','i','s','t',0,
-        /* 1657 */ '[','d','e','f','a','u','l','t',' ','a','b','s',']',0,
-        /* 1671 */ 202,0,
-        /* 1673 */ 212,'u','s','e','b','n','d',' ','0','.','n','o','l','i','s','t',0,
-        /* 1690 */ '[','d','e','f','a','u','l','t',' ','b','n','d',']',0,
-        /* 1704 */ 202,0,
-        /* 1706 */ 212,'u','s','e','n','o','b','n','d',' ','0','.','n','o','l','i','s','t',0,
-        /* 1725 */ '[','d','e','f','a','u','l','t',' ','n','o','b','n','d',']',0,
-        /* 1741 */ 202,0,
-        /* 1743 */ 212,'i','n','c','b','i','n',' ','1','-','2','+','.','n','o','l','i','s','t',' ','0',0,
-        /* 1765 */ 222,0,
-        /* 1767 */ 219,'%','$','d','e','p',' ','%','1',0,
-        /* 1777 */ 198,'%','$','d','e','p',0,
-        /* 1784 */ '%','?',' ','%','$','d','e','p',',','%','2',0,
-        /* 1796 */ 220,0,
-        /* 1798 */ 202,0,
-        /* 1800 */ 0
-};
-#endif
-
-#if defined(OF_AOUT) || defined(OF_AOUTB)
-const unsigned char aout_stdmac[] = {
-    /* From ./output/outaout.mac */
-        /*    0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
-        /*   26 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
-        /*   44 */ 202,0,
-        /*   46 */ 0
-};
-#endif
-
-#if defined(OF_AS86)
-const unsigned char as86_stdmac[] = {
-    /* From ./output/outas86.mac */
-        /*    0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
-        /*   26 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
-        /*   44 */ 202,0,
-        /*   46 */ 0
-};
-#endif
-
-#if defined(OF_BIN)
-const unsigned char bin_stdmac[] = {
-    /* From ./output/outbin.mac */
-        /*    0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
-        /*   26 */ 212,'o','r','g',' ','1','+','.','n','o','l','i','s','t',0,
-        /*   41 */ '[','o','r','g',' ','%','1',']',0,
-        /*   50 */ 202,0,
-        /*   52 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
-        /*   70 */ 202,0,
-        /*   72 */ 0
-};
-#endif
-
-#if defined(OF_COFF) || defined(OF_WIN32) || defined(OF_WIN64)
-const unsigned char coff_stdmac[] = {
-    /* From ./output/outcoff.mac */
-        /*    0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
-        /*   26 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
-        /*   44 */ 202,0,
-        /*   46 */ 212,'e','x','p','o','r','t',' ','1','+','.','n','o','l','i','s','t',0,
-        /*   64 */ '[','e','x','p','o','r','t',' ','%','1',']',0,
-        /*   76 */ 202,0,
-        /*   78 */ 212,'s','a','f','e','s','e','h',' ','1','.','n','o','l','i','s','t',0,
-        /*   96 */ '[','s','a','f','e','s','e','h',' ','%','1',']',0,
-        /*  109 */ 202,0,
-        /*  111 */ 0
-};
-#endif
-
-#if defined(OF_ELF) || defined(OF_ELF32) || defined(OF_ELF64)
-const unsigned char elf_stdmac[] = {
-    /* From ./output/outelf.mac */
-        /*    0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
-        /*   26 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
-        /*   44 */ 195,'$','_','%','1',' ','$','%','1',0,
-        /*   54 */ 202,0,
-        /*   56 */ 212,'o','s','a','b','i',' ','1','+','.','n','o','l','i','s','t',0,
-        /*   73 */ '[','%','?',' ','%','1',']',0,
-        /*   81 */ 202,0,
-        /*   83 */ 0
-};
-#endif
-
-#if defined(OF_MACHO) || defined(OF_MACHO32) || defined(OF_MACHO64)
-const unsigned char macho_stdmac[] = {
-    /* From ./output/outmacho.mac */
-        /*    0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
-        /*   26 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
-        /*   44 */ 202,0,
-        /*   46 */ 212,'s','u','b','s','e','c','t','i','o','n','s','_','v','i','a','_','s','y','m','b','o','l','s',' ','0','.','n','o','l','i','s','t',0,
-        /*   80 */ 221,'_','_','O','U','T','P','U','T','_','F','O','R','M','A','T','_','_',' ','%','?',0,
-        /*  102 */ 202,0,
-        /*  104 */ 212,'n','o','_','d','e','a','d','_','s','t','r','i','p',' ','1','-','*','.','n','o','l','i','s','t',0,
-        /*  130 */ 223,'%','0',0,
-        /*  134 */ 221,'_','_','O','U','T','P','U','T','_','F','O','R','M','A','T','_','_',' ','%','?',' ','%','1',0,
-        /*  159 */ 226,'1',0,
-        /*  162 */ 203,0,
-        /*  164 */ 202,0,
-        /*  166 */ 0
-};
-#endif
-
-#if defined(OF_OBJ)
-const unsigned char obj_stdmac[] = {
-    /* From ./output/outobj.mac */
-        /*    0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
-        /*   26 */ 212,'g','r','o','u','p',' ','1','+','.','n','o','l','i','s','t',0,
-        /*   43 */ '[','g','r','o','u','p',' ','%','1',']',0,
-        /*   54 */ 202,0,
-        /*   56 */ 212,'u','p','p','e','r','c','a','s','e',' ','0','+','.','n','o','l','i','s','t',0,
-        /*   77 */ '[','u','p','p','e','r','c','a','s','e',' ','%','1',']',0,
-        /*   92 */ 202,0,
-        /*   94 */ 212,'e','x','p','o','r','t',' ','1','+','.','n','o','l','i','s','t',0,
-        /*  112 */ '[','e','x','p','o','r','t',' ','%','1',']',0,
-        /*  124 */ 202,0,
-        /*  126 */ 212,'i','m','p','o','r','t',' ','1','+','.','n','o','l','i','s','t',0,
-        /*  144 */ '[','i','m','p','o','r','t',' ','%','1',']',0,
-        /*  156 */ 202,0,
-        /*  158 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
-        /*  176 */ 202,0,
-        /*  178 */ 0
-};
-#endif
-
-#if defined(OF_RDF2)
-const unsigned char rdf2_stdmac[] = {
-    /* From ./output/outrdf2.mac */
-        /*    0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
-        /*   26 */ 212,'l','i','b','r','a','r','y',' ','1','+','.','n','o','l','i','s','t',0,
-        /*   45 */ '[','l','i','b','r','a','r','y',' ','%','1',']',0,
-        /*   58 */ 202,0,
-        /*   60 */ 212,'m','o','d','u','l','e',' ','1','+','.','n','o','l','i','s','t',0,
-        /*   78 */ '[','m','o','d','u','l','e',' ','%','1',']',0,
-        /*   90 */ 202,0,
-        /*   92 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
-        /*  110 */ 202,0,
-        /*  112 */ 0
-};
-#endif
-
-#if defined(OF_RDF)
-const unsigned char rdf_stdmac[] = {
-    /* From ./output/outrdf.mac */
-        /*    0 */ 195,'_','_','S','E','C','T','_','_',' ','[','s','e','c','t','i','o','n',' ','.','t','e','x','t',']',0,
-        /*   26 */ 212,'l','i','b','r','a','r','y',' ','1','+','.','n','o','l','i','s','t',0,
-        /*   45 */ '[','l','i','b','r','a','r','y',' ','%','1',']',0,
-        /*   58 */ 202,0,
-        /*   60 */ 218,'_','_','N','A','S','M','_','C','D','e','c','l','_','_',' ','1',0,
-        /*   78 */ 202,0,
-        /*   80 */ 0
-};
-#endif
-const unsigned char *nasm_stdmac_find_package(const char *package)
-{
-    static const struct {
-         const char *package;
-         const unsigned char *macros;
-    } packages[4] = {
-        { "altreg", nasm_usemac_altreg },
-        { "fp", nasm_usemac_fp },
-        { "ifunc", nasm_usemac_ifunc },
-        { "smartalign", nasm_usemac_smartalign },
-    };
-#define UNUSED (65535/3)
-    static const int16_t hash1[4] = {
-        0,
-        0,
-        2,
-        -1,
-    };
-    static const int16_t hash2[4] = {
-        1,
-        2,
-        UNUSED,
-        UNUSED,
-    };
-    uint32_t k1, k2;
-    uint64_t crc;
-    uint16_t ix;
-
-    crc = crc64i(UINT64_C(0x076259c3e291c26c), package);
-    k1 = (uint32_t)crc;
-    k2 = (uint32_t)(crc >> 32);
-
-    ix = hash1[k1 & 0x3] + hash2[k2 & 0x3];
-    if (ix >= 4)
-        return NULL;
-
-    if (nasm_stricmp(packages[ix].package, package))
-        return NULL;
-
-    return packages[ix].macros;
-}
--- a/nasmbuild/nasm-2.13rc9/macros/macros.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,294 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##   
-##   Copyright 1996-2009 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##     
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# macros.pl   produce macros.c from standard.mac
-#
-
-require 'phash.ph';
-require 'asm/pptok.ph';
-
-use bytes;
-
-my $fname;
-my $line = 0;
-my $index      = 0;
-my $tasm_count = 0;
-
-#
-# Print out a string as a character array
-#
-sub charcify(@) {
-    my $l = '';
-    my $c, $o;
-    my $space = 1;
-    my $quote = 0;
-
-    foreach $o (unpack("C*", join('',@_))) {
-	$c = pack("C", $o);
-	if ($quote) {
-	    if ($o == $quote) {
-		$quote = 0;
-	    }
-	} elsif ($c =~ /^[\'\"\`]$/) {
-	    $quote = $o;
-	} else {
-	    if ($c =~ /\s/) {
-		next if ($space);
-		$o = 32;
-		$c = ' ';
-		$space = 1;
-	    } elsif ($o > 126) {
-		$space = 1;	# Implicit space after compacted directive
-	    } else {
-		$space = 0;
-	    }
-	}
-
-	if ($o < 32 || $o > 126 || $c eq '"' || $c eq "\\") {
-	    $l .= sprintf("%3d,", $o);
-	} else {
-	    $c =~ s/\'/\\'/;	# << sanitize single quote. 
-	    $l .= "\'".$c."\',";
-	}
-    }
-    return $l;
-}
-
-
-#
-# Generate macros.c
-#
-open(OUT,"> macros/macros.c\0") or die "unable to open macros.c\n";
-
-print OUT "/*\n";
-print OUT " * Do not edit - this file auto-generated by macros.pl from:\n";
-print OUT " *   ", join("\n *   ", @ARGV), "\n";
-print OUT " */\n";
-print OUT "\n";
-print OUT "#include \"tables.h\"\n";
-print OUT "#include \"nasmlib.h\"\n";
-print OUT "#include \"hashtbl.h\"\n";
-print OUT "#include \"outform.h\"\n";
-print OUT "\n";
-
-my $name = undef;
-my $npkg = 0;
-my @pkg_list   = ();
-my %pkg_number = ();
-my $pkg;
-my @out_list   = ();
-my $outfmt;
-my $lastname;
-my $z;
-
-foreach $args ( @ARGV ) {
-    my @file_list = glob ( $args );
-    foreach $fname ( @file_list ) {
-        open(INPUT,"< $fname\0") or die "$0: $fname: $!\n";
-	while (<INPUT>) {
-	    $line++;
-	    chomp;
-	    while (/^(.*)\\$/) {
-		$_ = $1;
-		$_ .= <INPUT>;
-		chomp;
-		$line++;
-	    }
-	    if (m/^OUT:\s*(.*\S)\s*$/) {
-		undef $pkg;
-		my @out_alias = split(/\s+/, $1);
-		if (defined($name)) {
-		    printf OUT "        /* %4d */ 0\n", $index++;
-		    print OUT "};\n#endif\n";
-		    undef $name;
-		}
-		$index = 0;
-		print OUT "\n";
-		my $pfx = '#if';
-		foreach my $al (@out_alias) {
-		    print OUT $pfx, " defined(OF_\U${al}\E)";
-		    $pfx = ' ||';
-		}
-		$name = $out_alias[0] . '_stdmac';
-		print OUT "\nconst unsigned char ${name}[] = {\n";
-		print OUT "    /* From $fname */\n";
-		$lastname = $fname;
-		push(@out_list, $out_alias[0]);
-		$out_index{$out_alias[0]} = $index;
-	    } elsif (m/^STD:\s*(.*\S)\s*$/) {
-		undef $pkg;
-		my @out_alias = split(/\s+/, $1);
-		if (defined($name)) {
-		    printf OUT "        /* %4d */ 0\n", $index++;
-		    print OUT "};\n#endif\n";
-		    undef $name;
-		}
-		$index = 0;
-		print OUT "\n#if 1";
-		$name = 'nasm_stdmac_' . $out_alias[0];
-		print OUT "\nconst unsigned char ${name}[] = {\n";
-		print OUT "    /* From $fname */\n";
-		$lastname = $fname;
-		push(@std_list, $out_alias[0]);
-		$std_index{$std_alias[0]} = $index;
-	    } elsif (m/^USE:\s*(\S+)\s*$/) {
-		$pkg = $1;
-		if (defined($pkg_number{$pkg})) {
-		    die "$0: $fname: duplicate package: $pkg\n";
-		}
-		if (defined($name)) {
-		    printf OUT "        /* %4d */ 0\n", $index++;
-		    print OUT "};\n#endif\n";
-		    undef $name;
-		}
-		$index = 0;
-		print OUT "\n#if 1";
-		$name = 'nasm_usemac_' . $pkg;
-		print OUT "\nstatic const unsigned char ${name}[] = {\n";
-		print OUT "    /* From $fname */\n";
-		$lastname = $fname;
-		push(@pkg_list, $pkg);
-		$pkg_number{$pkg} = $npkg++;
-		$z = pack("C", $pptok_hash{'%define'}+128)."__USE_\U$pkg\E__";
-		printf OUT "        /* %4d */ %s0,\n", $index, charcify($z);
-		$index += length($z)+1;
-	    } elsif (m/^\s*((\s*([^\"\';\s]+|\"[^\"]*\"|\'[^\']*\'))*)\s*(;.*)?$/) {
-		my $s1, $s2, $pd, $ws;
-
-		if (!defined($name)) {
-		    die "$0: $fname: macro declarations outside a known block\n";
-		}
-		
-		$s1 = $1;
-		$s2 = '';
-		while ($s1 =~ /(\%[a-zA-Z_][a-zA-Z0-9_]*)((\s+)(.*)|)$/) {
-		    $s2 .= "$'";
-		    $pd = $1;
-		    $ws = $3;
-		    $s1 = $4;
-		    if (defined($pptok_hash{$pd}) &&
-			$pptok_hash{$pd} <= 127) {
-			$s2 .= pack("C", $pptok_hash{$pd}+128);
-		    } else {
-			$s2 .= $pd.$ws;
-		    }
-		}
-		$s2 .= $s1;
-		if (length($s2) > 0) {
-		    if ($lastname ne $fname) {
-			print OUT "\n    /* From $fname */\n";
-			$lastname = $fname;
-		    }	
-		    printf OUT "        /* %4d */ %s0,\n",
-			$index, charcify($s2);
-		    $index += length($s2)+1;
-		}
-	    } else {
-		die "$fname:$line:  error unterminated quote";
-	    }
-	}
-        close(INPUT);
-    }
-}
-
-if (defined($name)) {
-    printf OUT "        /* %4d */ 0\n", $index++;
-    print OUT "};\n#endif\n";
-    undef $name;
-}
-
-my @hashinfo = gen_perfect_hash(\%pkg_number);
-if (!@hashinfo) {
-    die "$0: no hash found\n";
-}
-# Paranoia...
-verify_hash_table(\%pkg_number, \@hashinfo);
-my ($n, $sv, $g) = @hashinfo;
-die if ($n & ($n-1));
-
-print OUT "const unsigned char *nasm_stdmac_find_package(const char *package)\n";
-print OUT "{\n";
-print OUT "    static const struct {\n";
-print OUT "         const char *package;\n";
-print OUT "         const unsigned char *macros;\n";
-print OUT "    } packages[$npkg] = {\n";
-foreach $pkg (@pkg_list) {
-    printf OUT "        { \"%s\", nasm_usemac_%s },\n",
-	$pkg, $pkg;
-}
-print OUT "    };\n";
-
-# Put a large value in unused slots.  This makes it extremely unlikely
-# that any combination that involves unused slot will pass the range test.
-# This speeds up rejection of unrecognized tokens, i.e. identifiers.
-print OUT "#define UNUSED (65535/3)\n";
-
-print OUT "    static const int16_t hash1[$n] = {\n";
-for ($i = 0; $i < $n; $i++) {
-    my $h = ${$g}[$i*2+0];
-    print OUT "        ", defined($h) ? $h : 'UNUSED', ",\n";
-}
-print OUT "    };\n";
-
-print OUT "    static const int16_t hash2[$n] = {\n";
-for ($i = 0; $i < $n; $i++) {
-    my $h = ${$g}[$i*2+1];
-    print OUT "        ", defined($h) ? $h : 'UNUSED', ",\n";
-}
-print OUT "    };\n";
-
-print OUT  "    uint32_t k1, k2;\n";
-print OUT  "    uint64_t crc;\n";
-# For correct overflow behavior, "ix" should be unsigned of the same
-# width as the hash arrays.
-print OUT  "    uint16_t ix;\n";
-print OUT  "\n";
-
-printf OUT "    crc = crc64i(UINT64_C(0x%08x%08x), package);\n",
-    $$sv[0], $$sv[1];
-print  OUT "    k1 = (uint32_t)crc;\n";
-print  OUT "    k2 = (uint32_t)(crc >> 32);\n";
-print  OUT "\n";
-printf OUT "    ix = hash1[k1 & 0x%x] + hash2[k2 & 0x%x];\n", $n-1, $n-1;
-printf OUT "    if (ix >= %d)\n", scalar(@pkg_list);
-print OUT  "        return NULL;\n";
-print OUT  "\n";
-print OUT  "    if (nasm_stricmp(packages[ix].package, package))\n";
-print OUT  "        return NULL;\n";
-print OUT  "\n";
-print OUT  "    return packages[ix].macros;\n";
-print OUT  "}\n";
-
-close(OUT);
--- a/nasmbuild/nasm-2.13rc9/macros/smartalign.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-;; --------------------------------------------------------------------------
-;;   
-;;   Copyright 1996-2016 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;     
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-;
-; Smart alignment macros
-;
-USE: smartalign
-
-%imacro alignmode 1-2.nolist
-  %ifidni %1,nop
-    %define __ALIGN_JMP_THRESHOLD__ 16
-
-    %define __ALIGN_16BIT_1B__ 0x90
-    %define __ALIGN_16BIT_GROUP__ 1
-
-    %define __ALIGN_32BIT_1B__ 0x90
-    %define __ALIGN_32BIT_GROUP__ 1
-
-    %define __ALIGN_64BIT_1B__ 0x90
-    %define __ALIGN_64BIT_GROUP__ 1
-  %elifidni %1,generic
-    %define __ALIGN_JMP_THRESHOLD__ 8
-
-    %define __ALIGN_16BIT_1B__ 0x90
-    %define __ALIGN_16BIT_2B__ 0x89,0xf6
-    %define __ALIGN_16BIT_3B__ 0x8d,0x74,0x00
-    %define __ALIGN_16BIT_4B__ 0x8d,0xb4,0x00,0x00
-    %define __ALIGN_16BIT_5B__ 0x8d,0xb4,0x00,0x00,0x90
-    %define __ALIGN_16BIT_6B__ 0x8d,0xb4,0x00,0x00,0x89,0xff
-    %define __ALIGN_16BIT_7B__ 0x8d,0xb4,0x00,0x00,0x8d,0x7d,0x00
-    %define __ALIGN_16BIT_8B__ 0x8d,0xb4,0x00,0x00,0x8d,0xbd,0x00,0x00
-    %define __ALIGN_16BIT_GROUP__ 8
-
-    %define __ALIGN_32BIT_1B__ 0x90
-    %define __ALIGN_32BIT_2B__ 0x89,0xf6
-    %define __ALIGN_32BIT_3B__ 0x8d,0x76,0x00
-    %define __ALIGN_32BIT_4B__ 0x8d,0x74,0x26,0x00
-    %define __ALIGN_32BIT_5B__ 0x90,0x8d,0x74,0x26,0x00
-    %define __ALIGN_32BIT_6B__ 0x8d,0xb6,0x00,0x00,0x00,0x00
-    %define __ALIGN_32BIT_7B__ 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00
-    %define __ALIGN_32BIT_GROUP__ 7
-
-    %define __ALIGN_64BIT_1B__ 0x90
-    %define __ALIGN_64BIT_2B__ 0x66,0x90
-    %define __ALIGN_64BIT_3B__ 0x66,0x66,0x90
-    %define __ALIGN_64BIT_4B__ 0x66,0x66,0x66,0x90
-    %define __ALIGN_64BIT_GROUP__ 4
-  %elifidni %1,k8
-    %define __ALIGN_JMP_THRESHOLD__ 16
-
-    %define __ALIGN_16BIT_1B__ 0x90
-    %define __ALIGN_16BIT_2B__ 0x66,0x90
-    %define __ALIGN_16BIT_3B__ 0x66,0x66,0x90
-    %define __ALIGN_16BIT_4B__ 0x66,0x66,0x66,0x90
-    %define __ALIGN_16BIT_GROUP__ 4
-
-    %define __ALIGN_32BIT_1B__ 0x90
-    %define __ALIGN_32BIT_2B__ 0x66,0x90
-    %define __ALIGN_32BIT_3B__ 0x66,0x66,0x90
-    %define __ALIGN_32BIT_4B__ 0x66,0x66,0x66,0x90
-    %define __ALIGN_32BIT_GROUP__ 4
-
-    %define __ALIGN_64BIT_1B__ 0x90
-    %define __ALIGN_64BIT_2B__ 0x66,0x90
-    %define __ALIGN_64BIT_3B__ 0x66,0x66,0x90
-    %define __ALIGN_64BIT_4B__ 0x66,0x66,0x66,0x90
-    %define __ALIGN_64BIT_GROUP__ 4
-  %elifidni %1,k7
-    %define __ALIGN_JMP_THRESHOLD__ 16
-
-    %define __ALIGN_16BIT_1B__ 0x90
-    %define __ALIGN_16BIT_2B__ 0x66,0x90
-    %define __ALIGN_16BIT_3B__ 0x66,0x66,0x90
-    %define __ALIGN_16BIT_4B__ 0x66,0x66,0x66,0x90
-    %define __ALIGN_64BIT_GROUP__ 4
-
-    %define __ALIGN_32BIT_1B__ 0x90
-    %define __ALIGN_32BIT_2B__ 0x8b,0xc0
-    %define __ALIGN_32BIT_3B__ 0x8d,0x04,0x20
-    %define __ALIGN_32BIT_4B__ 0x8d,0x44,0x20,0x00
-    %define __ALIGN_32BIT_5B__ 0x8d,0x44,0x20,0x00,0x90
-    %define __ALIGN_32BIT_6B__ 0x8d,0x80,0x00,0x00,0x00,0x00
-    %define __ALIGN_32BIT_7B__ 0x8d,0x04,0x05,0x00,0x00,0x00,0x00
-    %define __ALIGN_32BIT_GROUP__ 7
-
-    %define __ALIGN_64BIT_1B__ 0x90
-    %define __ALIGN_64BIT_2B__ 0x66,0x90
-    %define __ALIGN_64BIT_3B__ 0x66,0x66,0x90
-    %define __ALIGN_64BIT_4B__ 0x66,0x66,0x66,0x90
-    %define __ALIGN_64BIT_GROUP__ 4
-  %elifidni %1,p6
-    %define __ALIGN_JMP_THRESHOLD__ 16
-
-    %define __ALIGN_16BIT_1B__ 0x90
-    %define __ALIGN_16BIT_2B__ 0x66,0x90
-    %define __ALIGN_16BIT_3B__ 0x0f,0x1f,0x00
-    %define __ALIGN_16BIT_4B__ 0x0f,0x1f,0x40,0x00
-    %define __ALIGN_16BIT_GROUP__ 4
-
-    %define __ALIGN_32BIT_1B__ 0x90
-    %define __ALIGN_32BIT_2B__ 0x66,0x90
-    %define __ALIGN_32BIT_3B__ 0x0f,0x1f,0x00
-    %define __ALIGN_32BIT_4B__ 0x0f,0x1f,0x40,0x00
-    %define __ALIGN_32BIT_5B__ 0x0f,0x1f,0x44,0x00,0x00
-    %define __ALIGN_32BIT_6B__ 0x66,0x0f,0x1f,0x44,0x00,0x00
-    %define __ALIGN_32BIT_7B__ 0x0f,0x1f,0x80,0x00,0x00,0x00,0x00
-    %define __ALIGN_32BIT_8B__ 0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00
-    %define __ALIGN_32BIT_GROUP__ 8
-
-    %define __ALIGN_64BIT_1B__ 0x90
-    %define __ALIGN_64BIT_2B__ 0x66,0x90
-    %define __ALIGN_64BIT_3B__ 0x0f,0x1f,0x00
-    %define __ALIGN_64BIT_4B__ 0x0f,0x1f,0x40,0x00
-    %define __ALIGN_64BIT_5B__ 0x0f,0x1f,0x44,0x00,0x00
-    %define __ALIGN_64BIT_6B__ 0x66,0x0f,0x1f,0x44,0x00,0x00
-    %define __ALIGN_64BIT_7B__ 0x0f,0x1f,0x80,0x00,0x00,0x00,0x00
-    %define __ALIGN_64BIT_8B__ 0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00
-    %define __ALIGN_64BIT_GROUP__ 8
-  %else
-    %error unknown alignment mode: %1
-  %endif
-  %ifnempty %2
-    %ifidni %2,nojmp
-      %xdefine __ALIGN_JMP_THRESHOLD__ -1
-    %else
-      %xdefine __ALIGN_JMP_THRESHOLD__ %2
-    %endif
-  %endif
-  %xdefine __ALIGNMODE__ %1,__ALIGN_JMP_THRESHOLD__
-%endmacro
-
-%unimacro align 1-2+.nolist
-%imacro align 1-2+.nolist
-  sectalign %1   ; align a segment as well
-  %ifnempty %2
-    times (((%1) - (($-$$) % (%1))) % (%1)) %2
-  %elif __PASS__ == 0 || __PASS__ == 3
-    times (((%1) - (($-$$) % (%1))) % (%1)) nop
-  %else
-    %push
-    %assign %$pad (((%1) - (($-$$) % (%1))) % (%1))
-    %if __ALIGN_JMP_THRESHOLD__ != -1 && %$pad > __ALIGN_JMP_THRESHOLD__
-      jmp %$end
-      ; We can't re-use %$pad here as $ will have changed!
-      times (((%1) - (($-$$) % (%1))) % (%1)) nop
-%$end:
-    %else
-      times (%$pad / __ALIGN_%[__BITS__]BIT_GROUP__) \
-        db __ALIGN_%[__BITS__]BIT_%[__ALIGN_%[__BITS__]BIT_GROUP__]B__
-      %assign %$pad %$pad % __ALIGN_%[__BITS__]BIT_GROUP__
-      %if %$pad > 0
-        db __ALIGN_%[__BITS__]BIT_%[%$pad]B__
-      %endif
-    %endif
-    %pop
-  %endif
-%endmacro
-
-	alignmode generic
--- a/nasmbuild/nasm-2.13rc9/macros/standard.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,226 +0,0 @@
-;; --------------------------------------------------------------------------
-;;   
-;;   Copyright 1996-2016 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-; Standard macro set for NASM -*- nasm -*-
-
-; Macros to make NASM ignore some TASM directives
-STD: tasm
-    %idefine IDEAL
-    %idefine JUMPS
-    %idefine P386
-    %idefine P486
-    %idefine P586
-    %idefine END
-
-; The normal standard macros
-STD: nasm
-
-; Note that although some user-level forms of directives are defined
-; here, not all of them are: the user-level form of a format-specific
-; directive should be defined in the module for that directive.
-
-; These three need to be defined, though the actual definitions will
-; be constantly updated during preprocessing.
-%define __FILE__
-%define __LINE__
-%define __BITS__
-
-%define __SECT__            ; it ought to be defined, even if as nothing
-
-%imacro section 1+.nolist
-    %define __SECT__ [section %1]
-    __SECT__
-%endmacro
-
-%imacro segment 1+.nolist
-    %define __SECT__ [segment %1]
-    __SECT__
-%endmacro
-
-%define __SECTALIGN_ALIGN_UPDATES_SECTION__ 1
-%imacro sectalign 1.nolist
-    %ifnum %1
-        %if __SECTALIGN_ALIGN_UPDATES_SECTION__ = 1
-            [sectalign %1]
-        %endif
-    %else
-        %ifidni %1,off
-            %define __SECTALIGN_ALIGN_UPDATES_SECTION__ 0
-        %elifidni %1,on
-            %define __SECTALIGN_ALIGN_UPDATES_SECTION__ 1
-        %endif
-    %endif
-%endmacro
-
-%imacro absolute 1+.nolist
-    %define __SECT__ [absolute %1]
-    __SECT__
-%endmacro
-
-%imacro struc 1-2.nolist 0
-    %push
-        %define %$strucname %1
-        [absolute %2]
-        %$strucname:        ; allow definition of `.member' to work sanely
-%endmacro
-
-%imacro endstruc 0.nolist
-        %{$strucname}_size equ ($-%$strucname)
-    %pop
-    __SECT__
-%endmacro
-
-%imacro istruc 1.nolist
-    %push
-        %define %$strucname %1
-        %$strucstart:
-%endmacro
-
-%imacro at 1-2+.nolist
-    times (%1-%$strucname)-($-%$strucstart) db 0
-    %2
-%endmacro
-
-%imacro iend 0.nolist
-        times %{$strucname}_size-($-%$strucstart) db 0
-    %pop
-%endmacro
-
-%imacro align 1-2+.nolist nop
-    sectalign %1
-    times (((%1) - (($-$$) % (%1))) % (%1)) %2
-%endmacro
-
-%imacro alignb 1-2+.nolist
-    sectalign %1
-    %ifempty %2
-        resb (((%1) - (($-$$) % (%1))) % (%1))
-    %else
-        times (((%1) - (($-$$) % (%1))) % (%1)) %2
-    %endif
-%endmacro
-
-%imacro extern 1-*.nolist
-    %rep %0
-        [extern %1]
-        %rotate 1
-    %endrep
-%endmacro
-
-%imacro bits 1+.nolist
-    [bits %1]
-%endmacro
-
-%imacro use16 0.nolist
-    [bits 16]
-%endmacro
-
-%imacro use32 0.nolist
-    [bits 32]
-%endmacro
-
-%imacro use64 0.nolist
-    [bits 64]
-%endmacro
-
-%imacro global 1-*.nolist
-    %rep %0
-        [global %1]
-        %rotate 1
-    %endrep
-%endmacro
-
-%imacro common 1-*.nolist
-    %rep %0
-        [common %1]
-        %rotate 1
-    %endrep
-%endmacro
-
-%imacro cpu 1+.nolist
-    [cpu %1]
-%endmacro
-
-%define __FLOAT_DAZ__ nodaz
-%define __FLOAT_ROUND__ near
-; __FLOAT__ contains the whole floating-point configuration so it can
-; be saved and restored
-%define __FLOAT__ __FLOAT_DAZ__,__FLOAT_ROUND__
-
-%imacro float 1-*.nolist
-    %rep %0
-        [float %1]
-        %ifidni %1,daz
-            %define __FLOAT_DAZ__ daz
-        %elifidni %1,nodaz
-            %define __FLOAT_DAZ__ nodaz
-        %elifidni %1,near
-            %define __FLOAT_ROUND__ near
-        %elifidni %1,up
-            %define __FLOAT_ROUND__ up
-        %elifidni %1,down
-            %define __FLOAT_ROUND__ down
-        %elifidni %1,zero
-            %define __FLOAT_ROUND__ zero
-        %elifidni %1,default
-            %define __FLOAT_DAZ__ nodaz
-            %define __FLOAT_ROUND__ near
-        %endif
-        %rotate 1
-    %endrep
-%endmacro
-
-%imacro default 1+.nolist
-    [default %1]
-%endmacro
-
-%imacro userel 0.nolist
-    [default rel]
-%endmacro
-%imacro useabs 0.nolist
-    [default abs]
-%endmacro
-%imacro usebnd 0.nolist
-    [default bnd]
-%endmacro
-%imacro usenobnd 0.nolist
-    [default nobnd]
-%endmacro
-
-%imacro incbin 1-2+.nolist 0
-    %push
-        %pathsearch %$dep %1
-        %depend %$dep
-        %? %$dep,%2
-    %pop
-%endmacro
--- a/nasmbuild/nasm-2.13rc9/misc/Doxyfile	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,752 +0,0 @@
-# Doxyfile 1.2.5
-
-# This file describes the settings to be used by doxygen for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# General configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
-# by quotes) that should identify the project. 
-
-PROJECT_NAME           = "NASM - the Netwide Assembler"
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
-# This could be handy for archiving the generated documentation or 
-# if some version control system is used.
-
-PROJECT_NUMBER         = 0.98
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
-# base path where the generated documentation will be put. 
-# If a relative path is entered, it will be relative to the location 
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = doxy
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
-# documentation generated by doxygen is written. Doxygen will use this 
-# information to generate all constant output in the proper language. 
-# The default language is English, other supported languages are: 
-# Dutch, French, Italian, Czech, Swedish, German, Finnish, Japanese, 
-# Korean, Hungarian, Norwegian, Spanish, Romanian, Russian, Croatian, 
-# Polish, Portuguese and Slovene.
-
-OUTPUT_LANGUAGE        = English
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
-# documentation are documented, even if no documentation was available. 
-# Private class members and static file members will be hidden unless 
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES 
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
-# will be included in the documentation. 
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file 
-# will be included in the documentation. 
-
-EXTRACT_STATIC         = YES
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
-# undocumented members of documented classes, files or namespaces. 
-# If set to NO (the default) these members will be included in the 
-# various overviews, but no documentation section is generated. 
-# This option has no effect if EXTRACT_ALL is enabled. 
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
-# undocumented classes that are normally visible in the class hierarchy. 
-# If set to NO (the default) these class will be included in the various 
-# overviews. This option has no effect if EXTRACT_ALL is enabled. 
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-# include brief member descriptions after the members that are listed in 
-# the file and class documentation (similar to JavaDoc). 
-# Set to NO to disable this. 
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-# the brief description of a member or function before the detailed description. 
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
-# brief descriptions will be completely suppressed. 
-
-REPEAT_BRIEF           = YES
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-# Doxygen will generate a detailed section even if there is only a brief 
-# description. 
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-# path before files name in the file list and in the header files. If set 
-# to NO the shortest path that makes the file name unique will be used. 
-
-FULL_PATH_NAMES        = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-# can be used to strip a user defined part of the path. Stripping is 
-# only done if one of the specified strings matches the left-hand part of 
-# the path. It is allowed to use relative paths in the argument list.
-
-STRIP_FROM_PATH        = 
-
-# The INTERNAL_DOCS tag determines if documentation 
-# that is typed after a \internal command is included. If the tag is set 
-# to NO (the default) then the documentation will be excluded. 
-# Set it to YES to include the internal documentation. 
-
-INTERNAL_DOCS          = NO
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a class diagram (in Html and LaTeX) for classes with base or 
-# super classes. Setting the tag to NO turns the diagrams off. 
-
-CLASS_DIAGRAMS         = YES
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources. 
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body 
-# of functions and classes directly in the documentation. 
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
-# doxygen to hide any special comment blocks from generated source code 
-# fragments. Normal C and C++ comments will always remain visible. 
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-# file names in lower case letters. If set to YES upper case letters are also 
-# allowed. This is useful if you have classes or files whose names only differ 
-# in case and if your file system supports case sensitive file names. Windows 
-# users are adviced to set this option to NO.
-
-CASE_SENSE_NAMES       = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
-# will show members with their full class and namespace scopes in the 
-# documentation. If set to YES the scope will be hidden. 
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
-# will generate a verbatim copy of the header file for each class for 
-# which an include is specified. Set to NO to disable this. 
-
-VERBATIM_HEADERS       = YES
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-# will put list of the files that are included by a file in the documentation 
-# of that file. 
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the JavaDoc 
-# comments  will behave just like the Qt-style comments (thus requiring an 
-# explict @brief command for a brief description. 
-
-JAVADOC_AUTOBRIEF      = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-# member inherits the documentation from any documented member that it 
-# reimplements. 
-
-INHERIT_DOCS           = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
-# is inserted in the documentation for inline members. 
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
-# will sort the (detailed) documentation of file and class members 
-# alphabetically by member name. If set to NO the members will appear in 
-# declaration order. 
-
-SORT_MEMBER_DOCS       = YES
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-# tag is set to YES, then doxygen will reuse the documentation of the first 
-# member in the group (if any) for the other members of the group. By default 
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-# Doxygen uses this value to replace tabs by spaces in code fragments. 
-
-TAB_SIZE               = 4
-
-# The ENABLE_SECTIONS tag can be used to enable conditional 
-# documentation sections, marked by \if sectionname ... \endif. 
-
-ENABLED_SECTIONS       = 
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or 
-# disable (NO) the todo list. This list is created by putting \todo 
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or 
-# disable (NO) the test list. This list is created by putting \test 
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# This tag can be used to specify a number of aliases that acts 
-# as commands in the documentation. An alias has the form "name=value". 
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
-# put the command \sideeffect (or @sideeffect) in the documentation, which 
-# will result in a user defined paragraph with heading "Side Effects:". 
-# You can put \n's in the value part of an alias to insert newlines. 
-
-ALIASES                = 
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-# the initial value of a variable or define consist of for it to appear in 
-# the documentation. If the initializer consists of more lines than specified 
-# here it will be hidden. Use a value of 0 to hide initializers completely. 
-# The appearance of the initializer of individual variables and defines in the 
-# documentation can be controlled using \showinitializer or \hideinitializer 
-# command in the documentation regardless of this setting. 
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources 
-# only. Doxygen will then generate output that is more tailored for C. 
-# For instance some of the names that are used will be different. The list 
-# of all members will be omitted, etc. 
-
-OPTIMIZE_OUTPUT_FOR_C  = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated 
-# by doxygen. Possible values are YES and NO. If left blank NO is used. 
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are 
-# generated by doxygen. Possible values are YES and NO. If left blank 
-# NO is used. 
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
-# automatically be disabled. 
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# The WARN_FORMAT tag determines the format of the warning messages that 
-# doxygen can produce. The string should contain the $file, $line, and $text 
-# tags, which will be replaced by the file and line number from which the 
-# warning originated and the warning text. 
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning 
-# and error messages should be written. If left blank the output is written 
-# to stderr. 
-
-WARN_LOGFILE           = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain 
-# documented source files. You may enter file names like "myfile.cpp" or 
-# directories like "/usr/src/myproject". Separate the files or directories 
-# with spaces. 
-
-INPUT                  = .
-
-# If the value of the INPUT tag contains directories, you can use the 
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included. 
-
-FILE_PATTERNS          =  *.c *.h
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
-# should be searched for input files as well. Possible values are YES and NO. 
-# If left blank NO is used. 
-
-RECURSIVE              = NO
-
-# The EXCLUDE tag can be used to specify files and/or directories that should 
-# excluded from the INPUT source files. This way you can easily exclude a 
-# subdirectory from a directory tree whose root is specified with the INPUT tag. 
-
-EXCLUDE                = 
-
-# If the value of the INPUT tag contains directories, you can use the 
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-# certain files from those directories. 
-
-EXCLUDE_PATTERNS       = 
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or 
-# directories that contain example code fragments that are included (see 
-# the \include command). 
-
-EXAMPLE_PATH           = 
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included. 
-
-EXAMPLE_PATTERNS       = 
-
-# The IMAGE_PATH tag can be used to specify one or more files or 
-# directories that contain image that are included in the documentation (see 
-# the \image command). 
-
-IMAGE_PATH             = 
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should 
-# invoke to filter for each input file. Doxygen will invoke the filter program 
-# by executing (via popen()) the command <filter> <input-file>, where <filter> 
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
-# input file. Doxygen will then use the output that the filter program writes 
-# to standard output. 
-
-INPUT_FILTER           = 
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
-# INPUT_FILTER) will be used to filter the input files when producing source 
-# files to browse. 
-
-FILTER_SOURCE_FILES    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
-# of all compounds will be generated. Enable this if the project 
-# contains a lot of classes, structs, unions or interfaces. 
-
-ALPHABETICAL_INDEX     = NO
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
-# in which this list will be split (can be a number in the range [1..20]) 
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all 
-# classes will be put under the same header in the alphabetical index. 
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
-# should be ignored while generating the index headers. 
-
-IGNORE_PREFIX          = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
-# generate HTML output. 
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `html' will be used as the default path. 
-
-HTML_OUTPUT            = html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard header.
-
-HTML_HEADER            = 
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard footer.
-
-HTML_FOOTER            = 
-
-# The HTML_STYLESHEET tag can be used to specify a user defined cascading 
-# style sheet that is used by each HTML page. It can be used to 
-# fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet 
-
-HTML_STYLESHEET        = 
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
-# files or namespaces will be aligned in HTML using tables. If set to 
-# NO a bullet list will be used. 
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
-# will be generated that can be used as input for tools like the 
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
-# of the generated HTML documentation. 
-
-GENERATE_HTMLHELP      = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
-# top of each HTML page. The value NO (the default) enables the index and 
-# the value YES disables it. 
-
-DISABLE_INDEX          = NO
-
-# This tag can be used to set the number of enum values (range [1..20]) 
-# that doxygen will group on one line in the generated HTML documentation. 
-
-ENUM_VALUES_PER_LINE   = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that 
-# is generated for HTML Help). For this to work a browser that supports 
-# JavaScript and frames is required (for instance Netscape 4.0+ 
-# or Internet explorer 4.0+). 
-
-GENERATE_TREEVIEW      = YES
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
-# used to set the initial width (in pixels) of the frame in which the tree 
-# is shown. 
-
-TREEVIEW_WIDTH         = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
-# generate Latex output. 
-
-GENERATE_LATEX         = YES
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `latex' will be used as the default path. 
-
-LATEX_OUTPUT           = latex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
-# LaTeX documents. This may be useful for small projects and may help to 
-# save some trees in general. 
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used 
-# by the printer. Possible values are: a4, a4wide, letter, legal and 
-# executive. If left blank a4wide will be used. 
-
-PAPER_TYPE             = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
-# packages that should be included in the LaTeX output. 
-
-EXTRA_PACKAGES         = 
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
-# the generated latex document. The header should contain everything until 
-# the first chapter. If it is left blank doxygen will generate a 
-# standard header. Notice: only use this tag if you know what you are doing! 
-
-LATEX_HEADER           = 
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
-# contain links (just like the HTML output) instead of page references 
-# This makes the output suitable for online browsing using a pdf viewer. 
-
-PDF_HYPERLINKS         = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
-# plain latex in the generated Makefile. Set this option to YES to get a 
-# higher quality PDF documentation. 
-
-USE_PDFLATEX           = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
-# command to the generated LaTeX files. This will instruct LaTeX to keep 
-# running if errors occur, instead of asking the user for help. 
-# This option is also used when generating formulas in HTML. 
-
-LATEX_BATCHMODE        = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-# The RTF output is optimised for Word 97 and may not look very pretty with 
-# other RTF readers or editors.
-
-GENERATE_RTF           = YES
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `rtf' will be used as the default path. 
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
-# RTF documents. This may be useful for small projects and may help to 
-# save some trees in general. 
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
-# will contain hyperlink fields. The RTF file will 
-# contain links (just like the HTML output) instead of page references. 
-# This makes the output suitable for online browsing using a WORD or other. 
-# programs which support those fields. 
-# Note: wordpad (write) and others do not support links. 
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's 
-# config file, i.e. a series of assigments. You only have to provide 
-# replacements, missing definitions are set to their default value. 
-
-RTF_STYLESHEET_FILE    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
-# generate man pages 
-
-GENERATE_MAN           = YES
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `man' will be used as the default path. 
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to 
-# the generated man pages (default is the subroutine's section .3) 
-
-MAN_EXTENSION          = .3
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
-# evaluate all C-preprocessor directives found in the sources and include 
-# files. 
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
-# names in the source code. If set to NO (the default) only conditional 
-# compilation will be performed. Macro expansion can be done in a controlled 
-# way by setting EXPAND_ONLY_PREDEF to YES. 
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
-# then the macro expansion is limited to the macros specified with the 
-# PREDEFINED and EXPAND_AS_PREDEFINED tags. 
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
-# in the INCLUDE_PATH (see below) will be search if a #include is found. 
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that 
-# contain include files that are not input files but should be processed by 
-# the preprocessor. 
-
-INCLUDE_PATH           = 
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
-# patterns (like *.h and *.hpp) to filter out the header-files in the 
-# directories. If left blank, the patterns specified with FILE_PATTERNS will 
-# be used. 
-
-INCLUDE_FILE_PATTERNS  = 
-
-# The PREDEFINED tag can be used to specify one or more macro names that 
-# are defined before the preprocessor is started (similar to the -D option of 
-# gcc). The argument of the tag is a list of macros of the form: name 
-# or name=definition (no spaces). If the definition and the = are 
-# omitted =1 is assumed. 
-
-PREDEFINED             = 
-
-# If the MACRO_EXPANSION and EXPAND_PREDEF_ONLY tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded. 
-# The macro definition that is found in the sources will be used. 
-# Use the PREDEFINED tag if you want to use a different macro definition. 
-
-EXPAND_AS_DEFINED      = 
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to external references   
-#---------------------------------------------------------------------------
-
-# The TAGFILES tag can be used to specify one or more tagfiles. 
-
-TAGFILES               = 
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
-# a tag file that is based on the input files it reads. 
-
-GENERATE_TAGFILE       = 
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
-# in the class index. If set to NO only the inherited external classes 
-# will be listed. 
-
-ALLEXTERNALS           = NO
-
-# The PERL_PATH should be the absolute path and name of the perl script 
-# interpreter (i.e. the result of `which perl'). 
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
-# available from the path. This tool is part of Graphviz, a graph visualization 
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
-# have no effect if this option is set to NO (the default) 
-
-HAVE_DOT               = NO
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect inheritance relations. Setting this tag to YES will force the 
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect implementation dependencies (inheritance, containment, and 
-# class references variables) of the class with other documented classes. 
-
-COLLABORATION_GRAPH    = YES
-
-# If the ENABLE_PREPROCESSING, INCLUDE_GRAPH, and HAVE_DOT tags are set to 
-# YES then doxygen will generate a graph for each documented file showing 
-# the direct and indirect include dependencies of the file with other 
-# documented files. 
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, INCLUDED_BY_GRAPH, and HAVE_DOT tags are set to 
-# YES then doxygen will generate a graph for each documented header file showing 
-# the documented files that directly or indirectly include this file 
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
-# will graphical hierarchy of all classes instead of a textual one. 
-
-GRAPHICAL_HIERARCHY    = YES
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be 
-# found. If left blank, it is assumed the dot tool can be found on the path. 
-
-DOT_PATH               = 
-
-# The MAX_DOT_GRAPH_WIDTH tag can be used to set the maximum allowed width 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images. 
-
-MAX_DOT_GRAPH_WIDTH    = 1024
-
-# The MAX_DOT_GRAPH_HEIGHT tag can be used to set the maximum allows height 
-# (in pixels) of the graphs generated by dot. If a graph becomes larger than 
-# this value, doxygen will try to truncate the graph, so that it fits within 
-# the specified constraint. Beware that most browsers cannot cope with very 
-# large images. 
-
-MAX_DOT_GRAPH_HEIGHT   = 1024
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
-# generate a legend page explaining the meaning of the various boxes and 
-# arrows in the dot generated graphs. 
-
-GENERATE_LEGEND        = YES
-
-#---------------------------------------------------------------------------
-# Configuration::addtions related to the search engine   
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be 
-# used. If set to NO the values of all tags below this one will be ignored. 
-
-SEARCHENGINE           = NO
-
-# The CGI_NAME tag should be the name of the CGI script that 
-# starts the search engine (doxysearch) with the correct parameters. 
-# A script with this name will be generated by doxygen. 
-
-CGI_NAME               = search.cgi
-
-# The CGI_URL tag should be the absolute URL to the directory where the 
-# cgi binaries are located. See the documentation of your http daemon for 
-# details. 
-
-CGI_URL                = 
-
-# The DOC_URL tag should be the absolute URL to the directory where the 
-# documentation is located. If left blank the absolute path to the 
-# documentation, with file:// prepended to it, will be used. 
-
-DOC_URL                = 
-
-# The DOC_ABSPATH tag should be the absolute path to the directory where the 
-# documentation is located. If left blank the directory on the local machine 
-# will be used. 
-
-DOC_ABSPATH            = 
-
-# The BIN_ABSPATH tag must point to the directory where the doxysearch binary 
-# is installed. 
-
-BIN_ABSPATH            = /usr/local/bin/
-
-# The EXT_DOC_PATHS tag can be used to specify one or more paths to 
-# documentation generated for other projects. This allows doxysearch to search 
-# the documentation for these projects as well. 
-
-EXT_DOC_PATHS          = 
--- a/nasmbuild/nasm-2.13rc9/misc/Nindent	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-#!/bin/sh
-PARAM="-npro -kr -i4 -ts8 -nut -sob -l80 -ss -ncs -cp1"
-RES=`indent --version`
-V1=`echo $RES | cut -d' ' -f3 | cut -d'.' -f1`
-V2=`echo $RES | cut -d' ' -f3 | cut -d'.' -f2`
-V3=`echo $RES | cut -d' ' -f3 | cut -d'.' -f3`
-if [ $V1 -gt 2 ]; then
-  PARAM="$PARAM -il0"
-elif [ $V1 -eq 2 ]; then
-  if [ $V2 -gt 2 ]; then
-    PARAM="$PARAM -il0";
-  elif [ $V2 -eq 2 ]; then
-    if [ $V3 -ge 10 ]; then
-      PARAM="$PARAM -il0"
-    fi
-  fi
-fi
-exec indent $PARAM "$@"
--- a/nasmbuild/nasm-2.13rc9/misc/README	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-There are various helpful bits and pieces for NASM,
-including but not limited to Simon photograph =)
--- a/nasmbuild/nasm-2.13rc9/misc/c16.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-; NASM macro set to make interfacing to 16-bit programs easier -*- nasm -*-
-
-
-
-%imacro proc 1			; begin a procedure definition
-
-%push proc
-
-	  global %1
-
-%1:	  push bp
-
-	  mov bp,sp
-
-%ifdef FARCODE PASCAL		; arguments may start at bp+4 or bp+6
-
-%assign %$arg 6
-
-%define %$firstarg 6
-
-%else
-
-%assign %$arg 4
-
-%define %$firstarg 4
-
-%endif
-
-%define %$procname %1
-
-%endmacro
-
-
-
-%imacro arg 0-1 2		; used with the argument name as a label
-
-%00	  equ %$arg
-
-				; we could possibly be adding some
-
-				; debug information at this point...?
-
-%assign %$arg %1+%$arg
-
-%endmacro
-
-
-
-%imacro endproc 0
-
-%ifnctx proc
-
-%error Mismatched `endproc'/`proc'
-
-%else
-
-          mov sp,bp
-
-          pop bp
-
-%ifdef PASCAL
-
-          retf %$arg - %$firstarg
-
-%elifdef FARCODE
-
-	  retf
-
-%else
-
-	  retn
-
-%endif
-
-__end_%$procname:		; useful for calculating function size
-
-%pop
-
-%endif
-
-%endmacro
-
--- a/nasmbuild/nasm-2.13rc9/misc/c32.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-; NASM macro set to make interfacing to 32-bit programs easier -*- nasm -*-
-
-
-
-%imacro proc 1			; begin a procedure definition
-
-%push proc
-
-          global %1
-
-%1:       push ebp
-
-          mov ebp,esp
-
-%assign %$arg 8
-
-%define %$procname %1
-
-%endmacro
-
-
-
-%imacro arg 0-1 4		; used with the argument name as a label
-
-%00	  equ %$arg
-
-%assign %$arg %1+%$arg
-
-%endmacro
-
-
-
-%imacro endproc 0
-
-%ifnctx proc
-
-%error Mismatched `endproc'/`proc'
-
-%else
-
-	  leave
-
-	  ret
-
-__end_%$procname:		; useful for calculating function size
-
-%pop
-
-%endif
-
-%endmacro
-
--- a/nasmbuild/nasm-2.13rc9/misc/crcgen.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-#include <inttypes.h>
-#include <stdio.h>
-
-int main(int argc, char *argv[])
-{
-    /* Polynomial in bit-reversed notation */
-    uint64_t poly;
-    uint64_t crctab[256], v;
-    int i, j;
-
-    poly = strtoumax(argv[1], NULL, 0);
-
-    printf("/* C */\n");
-    printf("static const uint64_t crc64_tab[256] = {\n");
-    for (i = 0; i < 256; i++) {
-	v = i;
-	for (j = 0; j < 8; j++)
-	    v = (v >> 1) ^ ((v & 1) ? poly : 0);
-	crctab[i] = v;
-    }
-
-    for (i = 0; i < 256; i += 2) {
-	printf("    /* %02x */ UINT64_C(0x%016"PRIx64"), "
-	       "UINT64_C(0x%016"PRIx64")%s\n",
-	       i, crctab[i], crctab[i+1], (i == 254) ? "" : ",");
-    }
-    printf("};\n\n");
-
-    printf("# perl\n");
-    printf("@crc64_tab = (\n");
-    for (i = 0; i < 256; i += 2) {
-	printf("    [0x%08"PRIx32", 0x%08"PRIx32"], "
-	       "[0x%08"PRIx32", 0x%08"PRIx32"]%-1s    # %02x\n",
-	       (uint32_t)(crctab[i] >> 32),
-	       (uint32_t)(crctab[i]),
-	       (uint32_t)(crctab[i+1] >> 32),
-	       (uint32_t)(crctab[i+1]),
-	       (i == 254) ? "" : ",",
-	       i);
-    }
-    printf(");\n");
-
-    return 0;
-}
--- a/nasmbuild/nasm-2.13rc9/misc/exebin.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,57 +0,0 @@
-; -*- nasm -*-
-; NASM macro file to allow the `bin' output format to generate
-; simple .EXE files by constructing the EXE header by hand.
-; Adapted from a contribution by Yann Guidon <whygee_corp@hol.fr>
-
-%define EXE_stack_size EXE_realstacksize
-
-%macro EXE_begin 0
-	  ORG 0E0h
-	  section .text
-
-header_start:
-	  db 4Dh,5Ah		; EXE file signature
-	  dw EXE_allocsize % 512
-	  dw (EXE_allocsize + 511) / 512
-	  dw 0			; relocation information: none
-	  dw (header_end-header_start)/16 ; header size in paragraphs
-	  dw (EXE_absssize + EXE_realstacksize) / 16 ; min extra mem
-	  dw (EXE_absssize + EXE_realstacksize) / 16 ; max extra mem
-	  dw -10h		; Initial SS (before fixup)
-	  dw EXE_endbss + EXE_realstacksize ; Initial SP (1K DPMI+1K STACK)
-	  dw 0			; (no) Checksum
-	  dw 100h		; Initial IP - start just after the header
-	  dw -10h		; Initial CS (before fixup)
-	  dw 0			; file offset to relocation table: none
-	  dw 0			; (no overlay)
-	  align 16,db 0
-header_end:
-
-EXE_startcode:
-	  section .data
-EXE_startdata:
-	  section .bss
-EXE_startbss:
-%endmacro
-
-%macro EXE_stack 1
-EXE_realstacksize equ %1
-%define EXE_stack_size EXE_bogusstacksize ; defeat EQU in EXE_end
-%endmacro
-
-%macro EXE_end 0
-	  section .text
-EXE_endcode:
-	  section .data
-EXE_enddata:
-	  section .bss
-	  alignb 4
-EXE_endbss:
-
-EXE_acodesize equ (EXE_endcode-EXE_startcode+3) & (~3)
-EXE_datasize equ EXE_enddata-EXE_startdata
-EXE_absssize equ (EXE_endbss-EXE_startbss+3) & (~3)
-EXE_allocsize equ EXE_acodesize + EXE_datasize
-
-EXE_stack_size equ 0x800	; default if nothing else was used
-%endmacro
--- a/nasmbuild/nasm-2.13rc9/misc/exebin2.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,114 +0,0 @@
-; -*- nasm -*-
-
-; NASM macro file to allow the `bin' output format to generate
-
-; simple .EXE files by constructing the EXE header by hand.
-
-; Adapted from a contribution by Yann Guidon <whygee_corp@hol.fr>
-
-
-
-%define EXE_stack_size EXE_realstacksize
-
-
-
-%macro EXE_begin 0
-
-	  ORG 0E0h
-
-	  section .text
-
-
-
-header_start:
-
-	  db 4Dh,5Ah		; EXE file signature
-
-	  dw EXE_allocsize % 512
-
-	  dw (EXE_allocsize + 511) / 512
-
-	  dw 0			; relocation information: none
-
-	  dw (header_end-header_start)/16 ; header size in paragraphs
-
-	  dw (EXE_absssize + EXE_realstacksize) / 16 ; min extra mem
-
-	  dw (EXE_absssize + EXE_realstacksize) / 16 ; max extra mem
-
-	  dw -10h		; Initial SS (before fixup)
-
-	  dw EXE_endbss + EXE_realstacksize ; Initial SP (1K DPMI+1K STACK)
-
-	  dw 0			; (no) Checksum
-
-	  dw 100h		; Initial IP - start just after the header
-
-	  dw -10h		; Initial CS (before fixup)
-
-	  dw 0			; file offset to relocation table: none
-
-	  dw 0			; (no overlay)
-
-	  align 16,db 0
-
-header_end:
-
-
-
-EXE_startcode:
-
-	  section .data
-
-EXE_startdata:
-
-	  section .bss
-
-EXE_startbss:
-
-%endmacro
-
-
-
-%macro EXE_stack 1
-
-EXE_realstacksize equ %1
-
-%define EXE_stack_size EXE_bogusstacksize ; defeat EQU in EXE_end
-
-%endmacro
-
-
-
-%macro EXE_end 0
-
-	  section .text
-
-EXE_endcode:
-
-	  section .data
-
-EXE_enddata:
-
-	  section .bss
-
-	  alignb 4
-
-EXE_endbss:
-
-
-
-EXE_acodesize equ (EXE_endcode-EXE_startcode+3) & (~3)
-
-EXE_datasize equ EXE_enddata-EXE_startdata
-
-EXE_absssize equ (EXE_endbss-EXE_startbss+3) & (~3)
-
-EXE_allocsize equ EXE_acodesize + EXE_datasize
-
-
-
-EXE_stack_size equ 0x800	; default if nothing else was used
-
-%endmacro
-
--- a/nasmbuild/nasm-2.13rc9/misc/fmtinsns.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-#!/usr/bin/perl
-#
-# Re-align the columns in insns.dat, and enforce case conventions
-#
-
-@cols = (0, 16, 48, 96);
-
-while ($line = <STDIN>) {
-    chomp $line;
-    if ($line !~ /^\s*(\;.*|)$/) {
-	($ln = $line) =~ s/\s+$//;
-	if ($line =~ /^\s*(\S+)\s+(\S+)\s+(\S+|\[.*\])\s+(\S+)\s*$/) {
-	    @fields = ($1, $2, $3, $4);
-	    $fields[0] = "\U$fields[0]" unless ($fields[0] =~ /^[^a-z]+cc$/);
-	    $fields[3] =~ s/\,+$//;
-	    $fields[3] = "\U$fields[3]" unless ($fields[3] eq 'ignore');
-	    $c = 0;
-	    $line = '';
-	    for ($i = 0; $i < scalar(@fields); $i++) {
-		if ($i > 0 && $c >= $cols[$i]) {
-		    $line .= ' ';
-		    $c++;
-		}	
-		while ($c < $cols[$i]) {
-		    $line .= "\t";
-		    $c = ($c+8)	& ~7;
-		}
-		$line .= $fields[$i];
-		for ($j = 0; $j < length($fields[$i]); $j++) {
-		    if (substr($fields[$i], $j, 1) eq "\t") {
-			$c = ($c+8) & ~7;
-		    } else {
-			$c++;
-		    }
-		}
-	    }
-	}
-    }
-    print $line, "\n";
-}
--- a/nasmbuild/nasm-2.13rc9/misc/genfma.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-#!/usr/bin/perl
-%packed_insns = (
-    'vfmadd'    => 0x98,
-    'vfmaddsub' => 0x96,
-    'vfmsubadd' => 0x97,
-    'vfmsub'    => 0x9a,
-    'vfnmadd'   => 0x9c,
-    'vfnmsub'   => 0x9e
-    );
-
-%scalar_insns = (
-    'vfmadd'    => 0x99,
-    'vfmsub'    => 0x9b,
-    'vfnmadd'   => 0x9d,
-    'vfnmsub'   => 0x9f
-    );
-
-foreach $pi ( sort(keys(%packed_insns)) ) {
-    $op = $packed_insns{$pi};
-    foreach $order ('132', '213', '231') {
-	$xorder = substr($order,1,1).substr($order,0,1).substr($order,2,1);
-	foreach $o ($order, $xorder) {
-	    for ($w = 0; $w < 2; $w++) {
-		$suf = $w  ? 'pd' : 'ps';
-		for ($l = 128; $l <= 256; $l <<= 1) {
-		    $sx  = ($l == 256) ? 'SY' : 'SO';
-		    $mm  = ($l == 256) ? 'ymm' : 'xmm';
-		    printf "%-15s %-31s %-8s%-39s %s\n",
-		    	"\U${pi}${o}${suf}",
-			"${mm}reg,${mm}reg,${mm}rm",
-		    	"[rvm:",
-		        sprintf("vex.dds.%d.66.0f38.w%d %02x /r]",
-			    $l, $w, $op),
-		    "FMA,FUTURE,${sx}";
-		}
-	    }
-	}
-	$op += 0x10;
-    }
-}
-
-foreach $si ( sort(keys(%scalar_insns)) ) {
-    $op = $scalar_insns{$si};
-    foreach $order ('132', '213', '231') {
-	$xorder = substr($order,1,1).substr($order,0,1).substr($order,2,1);
-	foreach $o ($order, $xorder) {
-	    for ($w = 0; $w < 2; $w++) {
-		$suf = $w ? 'sd' : 'ss';
-		$sx  = $w ? 'SQ' : 'SD';
-		$l  = 128;
-		$mm  = 'xmm';
-		printf "%-15s %-31s %-8s%-39s %s\n",
-		    "\U${si}${o}${suf}",
-		    "${mm}reg,${mm}reg,${mm}rm",
-		    '[rvm:',
-		    sprintf("vex.dds.%d.66.0f38.w%d %02x /r]",
-			$l, $w, $op),
-		"FMA,FUTURE,${sx}";
-	    }
-	}
-	$op += 0x10;
-    }
-}
--- a/nasmbuild/nasm-2.13rc9/misc/hints.txt	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-Subject: Re: [nasm-devel] P4 insns
-Date: Sat, 05 May 2001 11:39:36 -0500
-From: Kyle Markley <kmarkley@seffera.net>
-Reply-To: nasm-devel@yahoogroups.com
-To: nasm-devel@yahoogroups.com
-
-berkus wrote:
->
-> Use The Source, NASM!
->
-> Do we have the P4 'probable branch taken' (3e) and 'probable branch
-> not taken' (2e) prefixes opcodes?
-
-They're just segment override prefixes: 2e is CS, 3e is DS.  You can just
-say
-"cs jnz foo" for a not-taken hint, "ds jnz foo" for a taken hint.
-
-Maybe it would be nice to have a more suggestive name, but you could just
-%define one.
-
----
-Kyle Markley
-
-
-
-Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
--- a/nasmbuild/nasm-2.13rc9/misc/magic	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-# Put the following lines in your /etc/magic file to get 'file' to recognise
-# RDOFF Object Files
-
-0       string          RDOFF           RDOFF Object File
->5      byte            >32             version %c (little endian)
->5      byte            <32             version %d (big endian)
--- a/nasmbuild/nasm-2.13rc9/misc/myC32.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-; NASM macro set to make interfacing to 32-bit programs easier
-; Also cool little macros to make NASM emulate some MASM things.
-;
-; Originally included in NASM.  Modifications by Peter Johnson, 1999.
-;
-
-%imacro proc 1                  ; begin a procedure definition
-%push proc
-          global %1
-%1:       push  ebp
-          mov   ebp, esp
-%assign %$arg 8
-;%assign %$argnum 0
-%define %$procname %1
-%endmacro
-
-%imacro arg 0-1 4               ; used with the argument name as a label
-%00       equ %$arg
-;%assign %$argnum %$argnum+1
-;.arg%$argnum   equ     %1
-%assign %$arg %1+%$arg
-%endmacro
-
-%imacro endproc 0
-%ifnctx proc
-%error Mismatched `endproc'/`proc'
-%else
-;        mov     esp, ebp
-;        pop     ebp
-%ifdef LEGACY_ENDPROC
-        ret
-%endif
-;__end_%$procname:               ; useful for calculating function size
-;          global %{$procname}_arglen
-;%{$procname}_arglen    equ     %$arg-8
-;%assign %$i 1
-;%rep %$argnum
-;          global %{$procname}_arg%$i
-;%{$procname}_arg%$i    equ     %{$procname}.arg%$i
-;%assign %$i %$i+1
-;%endrep
-%pop
-%endif
-%endmacro
-
-; redefine ret instructions for in-proc cases
-%imacro ret 0-1
-%ifnctx proc
-	ret	%1
-%else
-	mov	esp, ebp
-	pop	ebp
-	ret	%1
-%endif
-%endmacro
-
-%imacro retf 0-1
-%ifnctx proc
-	retf	%1
-%else
-	mov	esp, ebp
-	pop	ebp
-	retf	%1
-%endif
-%endmacro
-
-%imacro retn 0-1
-%ifnctx proc
-	retn	%1
-%else
-	mov	esp, ebp
-	pop	ebp
-	retn	%1
-%endif
-%endmacro
-
-; invoke calls a C function
-; defaults to word (16 bit) size parameters
-%macro invoke 1-*
-%rotate -1
-;%define invoketype word
-%rep (%0-1)
-;       %ifidni %1,dword
-;               %define invoketype dword
-;       %elifidni %1,word
-;               %define invoketype word
-;       %elifidni %1,byte
-;               %define invoketype byte
-;       %else
-        %ifidni %1, cs
-                o16 push %1
-        %elifidni %1, ds
-                o16 push %1
-        %elifidni %1, es
-                o16 push %1
-        %elifidni %1, fs
-                o16 push %1
-        %elifidni %1, gs
-                o16 push %1
-        %elifidni %1, word cs
-                o16 push %1
-        %elifidni %1, word ds
-                o16 push %1
-        %elifidni %1, word es
-                o16 push %1
-        %elifidni %1, word fs
-                o16 push %1
-        %elifidni %1, word gs
-                o16 push %1
-        %else
-                push %1
-        %endif
-;       %endif
-        %rotate -1
-%endrep
-call %1
-%if (%0!=1)
-        add esp, byte %{1}_arglen
-%endif
-%endmacro
-
--- a/nasmbuild/nasm-2.13rc9/misc/nasm.sl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,320 +0,0 @@
-% This file defines a NASM editor mode for the JED editor.
-% JED's home page is http://space.mit.edu/~davis/jed.html.
-%
-% To install, copy this file into your JED_LIBRARY directory
-% (/usr/local/jed/lib or C:\JED\LIB or whatever), then add the
-% following lines to your .jedrc or jed.rc file:
-%   autoload("nasm_mode", "nasm");
-%   add_mode_for_extension("nasm", "asm");
-% (you can of course replace "asm" with whatever file extension
-% you like to use for your NASM source files).
-
-variable Nasm_Instruction_Indent = 10;
-variable Nasm_Comment_Column = 33;
-variable Nasm_Comment_Space = 1;
-
-variable nasm_kw_2 = strcat("ahalaxbhblbpbtbxchclcscxdbdddhdidldqdsdtdwdxes",
-			    "fsgsinjajbjcjejgjljojpjsjzorsispssto");
-variable nasm_kw_3 = strncat("a16a32aaaaadaamaasadcaddandbsfbsrbtcbtrbtscbw",
-			     "cdqclccldclicmccmpcr0cr2cr3cr4cwddaadasdecdiv",
-			     "dr0dr1dr2dr3dr6dr7eaxebpebxecxediedxequesiesp",
-			     "farfldfsthltincintjaejbejgejlejmpjnajnbjncjne",
-			     "jngjnljnojnpjnsjnzjpejpolarldslealeslfslgslsl",
-			     "lssltrmm0mm1mm2mm3mm4mm5mm6mm7movmulnegnopnot",
-			     "o16o32outpopporrclrcrrepretrolrorrsmsalsarsbb",
-			     "segshlshrsmist0st1st2st3st4st5st6st7stcstdsti",
-			     "strsubtr3tr4tr5tr6tr7wrtxor", 9);
-variable nasm_kw_4 = strncat("arplbytecallcltscwdeemmsfabsfaddfbldfchsfcom",
-			     "fcosfdivfenifildfistfld1fldzfmulfnopfsinfstp",
-			     "fsubftstfxamfxchibtsidivimulinsbinsdinswint1",
-			     "int3intoinvdiretjcxzjnaejnbejngejnlelahflgdt",
-			     "lidtlldtlmswlocklongloopmovdmovqnearpandpopa",
-			     "popfpushpxorreperepzresbresdresqrestreswretf",
-			     "retnsahfsalcsetasetbsetcsetesetgsetlsetosetp",
-			     "setssetzsgdtshldshrdsidtsldtsmswtestumovverr",
-			     "verwwaitwordxaddxbtsxchg", 9);
-variable nasm_kw_5 = strncat("boundbswapcmovacmovbcmovccmovecmovgcmovlcmovo",
-			     "cmovpcmovscmovzcmpsbcmpsdcmpswcpuiddwordenter",
-			     "f2xm1faddpfbstpfclexfcomifcompfdisifdivpfdivr",
-			     "ffreefiaddficomfidivfimulfinitfistpfisubfldcw",
-			     "fldpifmulpfpremfptanfsavefsqrtfstcwfstswfsubp",
-			     "fsubrfucomfyl2xicebpint01iretdiretwjecxzleave",
-			     "lodsblodsdlodswloopeloopzmovsbmovsdmovswmovsx",
-			     "movzxoutsboutsdoutswpaddbpadddpaddwpandnpopad",
-			     "popawpopfdpopfwpslldpsllqpsllwpsradpsrawpsrld",
-			     "psrlqpsrlwpsubbpsubdpsubwpushapushfqwordrdmsr",
-			     "rdpmcrdtscrepnerepnzscasbscasdscaswsetaesetbe",
-			     "setgesetlesetnasetnbsetncsetnesetngsetnlsetno",
-			     "setnpsetnssetnzsetpesetposhortstosbstosdstosw",
-			     "timestwordwrmsrxlatb", 14);
-variable nasm_kw_6 = strncat("cmovaecmovbecmovgecmovlecmovnacmovnbcmovnc",
-			     "cmovnecmovngcmovnlcmovnocmovnpcmovnscmovnz",
-			     "cmovpecmovpofcmovbfcmovefcmovufcomipfcompp",
-			     "fdivrpficompfidivrfisubrfldenvfldl2efldl2t",
-			     "fldlg2fldln2fpatanfprem1frstorfscalefsetpm",
-			     "fstenvfsubrpfucomifucompincbininvlpgloopne",
-			     "loopnzpaddsbpaddswpmulhwpmullwpsubsbpsubsw",
-			     "pushadpushawpushfdpushfwsetnaesetnbesetnge",
-			     "setnlewbinvd", 9);
-variable nasm_kw_7 = strncat("cmovnaecmovnbecmovngecmovnlecmpxchgfcmovbe",
-			     "fcmovnbfcmovnefcmovnufdecstpfincstpfrndint",
-			     "fsincosfucomipfucomppfxtractfyl2xp1loadall",
-			     "paddusbpadduswpcmpeqbpcmpeqdpcmpeqwpcmpgtb",
-			     "pcmpgtdpcmpgtwpmaddwdpsubusbpsubusw", 5);
-variable nasm_kw_8 = "fcmovnbepackssdwpacksswbpackuswb";
-variable nasm_kw_9 = strcat("cmpxchg8bpunpckhbwpunpckhdqpunpckhwdpunpcklbw",
-			    "punpckldqpunpcklwd");
-variable nasm_kw_10 = "cmpxchg486loadall286";
-
-define nasm_indent_line() {
-    variable word, len, e, c;
-
-    e = eolp();
-
-    push_spot();
-    EXIT_BLOCK {
-	pop_spot();
-	if (what_column() <= Nasm_Instruction_Indent)
-	    skip_white();
-    }
-
-    bol_skip_white();
-    c = what_column();
-
-    if (orelse
-       {looking_at_char(';')}
-       {looking_at_char('#')}
-       {looking_at_char('[')}) {
-	bol_trim();
-	pop_spot();
-	EXIT_BLOCK {
-	}
-	return;
-    }
-
-    if (looking_at_char('%')) {
-	go_right_1();
-	!if (orelse
-	    {looking_at_char('$')}
-	    {looking_at_char('%')}
-	    {looking_at_char('+')}
-	    {looking_at_char('-')}
-	    {looking_at_char('0')}
-	    {looking_at_char('1')}
-	    {looking_at_char('2')}
-	    {looking_at_char('3')}
-	    {looking_at_char('4')}
-	    {looking_at_char('5')}
-	    {looking_at_char('6')}
-	    {looking_at_char('7')}
-	    {looking_at_char('8')}
-	    {looking_at_char('9')}) {
-	    bol_trim();
-	    pop_spot();
-	    EXIT_BLOCK {
-	    }
-	    return;
-	}
-	go_left_1();
-    }
-
-    push_mark();
-    skip_chars("%$+-");
-    skip_chars("0-9a-zA-Z_.");
-    word = bufsubstr();
-
-    if (orelse
-       {c == 1}
-       {looking_at_char(':')}) {
-	push_spot();
-	bol_trim();
-	pop_spot();
-	len = strlen(word);
-	if (looking_at_char(':')) {
-	    go_right_1();
-	    len++;
-	}
-	trim();
-	if (e or not(eolp())) {
-	    if (len >= Nasm_Instruction_Indent) {
-		pop();
-		whitespace(1);
-	    } else
-		whitespace(Nasm_Instruction_Indent - len);
-	    if (e) {
-		pop_spot();
-		eol();
-		push_spot();
-	    }
-	}
-    } else {
-	bol_trim();
-	whitespace(Nasm_Instruction_Indent);
-    }
-}
-
-define nasm_newline_indent() {
-    push_spot();
-    bol_skip_white();
-    if (eolp())
-	trim();
-    pop_spot();
-    newline();
-    nasm_indent_line();
-}
-
-define nasm_bol_self_ins() {
-    push_spot();
-    bskip_white();
-    bolp();
-    pop_spot();
-
-    call("self_insert_cmd");
-
-    % Grotty: force immediate update of the syntax highlighting.
-    insert_char('.');
-    deln(left(1));
-
-    if (())
-	nasm_indent_line();
-}
-
-define nasm_self_ins_ind() {
-    call("self_insert_cmd");
-
-    % Grotty: force immediate update of the syntax highlighting.
-    insert_char('.');
-    deln(left(1));
-
-    nasm_indent_line();
-}
-
-define nasm_insert_comment() {
-    variable spc;
-
-    bol_skip_white();
-    if (looking_at_char(';')) {
-	bol_trim();
-	go_right(1);
-	skip_white();
-	return;
-    } else if (eolp()) {
-	bol_trim();
-	insert("; ");
-	return;
-    }
-
-    forever {
-	skip_chars("^;\n'\"");
-	if (looking_at_char('\'')) {
-	    go_right_1();
-	    skip_chars("^'\n");
-	    !if (eolp())
-		go_right_1();
-	} else if (looking_at_char('\"')) {
-	    go_right_1();
-	    skip_chars("^\"\n");
-	    !if (eolp())
-		go_right_1();
-	} else if (looking_at_char(';')) {
-	    !if (bolp()) {
-		go_left_1();
-		trim();
-		!if (looking_at_char(';'))
-		    go_right_1();
-	    }
-	    break;
-	} else {
-	    break;
-	}
-    }
-    spc = Nasm_Comment_Column - what_column();
-    if (spc < Nasm_Comment_Space)
-	spc = Nasm_Comment_Space;
-    whitespace(spc);
-    if (eolp()) {
-	insert("; ");
-    } else {
-	go_right_1();
-	skip_white();
-    }
-}
-
-$1 = "NASM";
-create_syntax_table($1);
-
-define_syntax (";", "", '%', $1);
-define_syntax ("([", ")]", '(', $1);
-define_syntax ('"', '"', $1);
-define_syntax ('\'', '\'', $1);
-define_syntax ("0-9a-zA-Z_.@#", 'w', $1);
-define_syntax ("-+0-9a-fA-F.xXL", '0', $1);
-define_syntax (",:", ',', $1);
-define_syntax ('%', '#', $1);
-define_syntax ("|^&<>+-*/%~", '+', $1);
-
-set_syntax_flags($1,1);
-
-#ifdef HAS_DFA_SYNTAX
-
-dfa_enable_highlight_cache("nasm.dfa", $1);
-dfa_define_highlight_rule(";.*$", "comment", $1);
-dfa_define_highlight_rule("[A-Za-z_\\.\\?][A-Za-z0-9_\\.\\?\\$#@~]*",
-		      "Knormal", $1);
-dfa_define_highlight_rule("$([A-Za-z_\\.\\?][A-Za-z0-9_\\.\\?\\$#@~]*)?",
-		      "normal", $1);
-dfa_define_highlight_rule("[0-9]+(\\.[0-9]*)?([Ee][\\+\\-]?[0-9]*)?",
-		      "number", $1);
-dfa_define_highlight_rule("[0-9]+[QqBb]", "number", $1);
-dfa_define_highlight_rule("(0x|\\$[0-9A-Fa-f])[0-9A-Fa-f]*", "number", $1);
-dfa_define_highlight_rule("[0-9A-Fa-f]+[Hh]", "number", $1);
-dfa_define_highlight_rule("\"[^\"]*\"", "string", $1);
-dfa_define_highlight_rule("\"[^\"]*$", "string", $1);
-dfa_define_highlight_rule("'[^']*'", "string", $1);
-dfa_define_highlight_rule("'[^']*$", "string", $1);
-dfa_define_highlight_rule("[\\(\\)\\[\\],:]*", "delimiter", $1);
-dfa_define_highlight_rule("^[ \t]*#", "PQpreprocess", $1);
-dfa_define_highlight_rule("^[ \t]*\\%{?[^%\\$\\+\\-0-9]", "PQpreprocess", $1);
-dfa_define_highlight_rule("^%$", "preprocess", $1);
-dfa_define_highlight_rule("[\\|\\^&<>\\+\\-\\*/%~]*", "operator", $1);
-dfa_define_highlight_rule("%([%\\$]?-?[0-9A-Za-z_\\.\\?\\$~@]+|{[^}]*}?)",
-		      "preprocess", $1);
-dfa_define_highlight_rule("[ \t]*", "normal", $1);
-dfa_define_highlight_rule(".", "normal", $1);
-dfa_build_highlight_table($1);
-#endif
-
-define_keywords_n($1, nasm_kw_2, 2, 0);
-define_keywords_n($1, nasm_kw_3, 3, 0);
-define_keywords_n($1, nasm_kw_4, 4, 0);
-define_keywords_n($1, nasm_kw_5, 5, 0);
-define_keywords_n($1, nasm_kw_6, 6, 0);
-define_keywords_n($1, nasm_kw_7, 7, 0);
-define_keywords_n($1, nasm_kw_8, 8, 0);
-define_keywords_n($1, nasm_kw_9, 9, 0);
-define_keywords_n($1, nasm_kw_10, 10, 0);
-
-define_keywords_n($1, "org", 3, 1);
-define_keywords_n($1, "bitsiend", 4, 1);
-define_keywords_n($1, "aligngroupstruc", 5, 1);
-define_keywords_n($1, "alignbcommonexternglobalistruc", 6, 1);
-define_keywords_n($1, "sectionsegmentlibrary", 7, 1);
-define_keywords_n($1, "absoluteendstruc", 8, 1);
-define_keywords_n($1, "uppercase", 9, 1);
-
-!if (keymap_p ($1)) make_keymap ($1);
-definekey("nasm_bol_self_ins", ";", $1);
-definekey("nasm_bol_self_ins", "#", $1);
-definekey("nasm_bol_self_ins", "%", $1);
-definekey("nasm_bol_self_ins", "[", $1);
-definekey("nasm_self_ins_ind", ":", $1);
-definekey("nasm_insert_comment", "^[;", $1);
-
-define nasm_mode() {
-    set_mode("NASM", 4);
-    use_keymap ("NASM");
-    use_syntax_table ("NASM");
-    set_buffer_hook ("indent_hook", "nasm_indent_line");
-    set_buffer_hook ("newline_indent_hook", "nasm_newline_indent");
-    runhooks("nasm_mode_hook");
-}
--- a/nasmbuild/nasm-2.13rc9/misc/nasmstab	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,296 +0,0 @@
-#!/usr/bin/perl
- 
-sub StabLine  ($ $ $ $ $ $) {
-        local ($comment,$n_strx,$type,$other,$desc,$value) = @_;
-        print $comment;
-        print "","dd",$n_strx;
-        print "","db",$type;
-        print "","db",$other;
-        print "","dw",$desc;
-        print "","dd","0" . $value . "h";
-}
-
-sub RStabLine  ($ $ $ $ $) {
-        local ($comment,$offset,$info,$type,$symbol) = @_;
-        print $comment;
-        print "","dd",$offset;
-        print "","db",$type;
-        print "","db",$symbol;
-        print "","dw",$info;
-}
-
-#this sub exists because i've no idea how to print non-ascii numbers in perl
-
-sub OutBin ( $ $ ) {
-        local ($offset, $shnum) = @_;
-        seek(FINAL,$offset,0);
-        if ( $shnum == 2 ) { printf FINAL "\x02" } ;
-        if ( $shnum == 3 ) { printf FINAL "\x03" } ;
-        if ( $shnum == 4 ) { printf FINAL "\x04" } ;
-        if ( $shnum == 5 ) { printf FINAL "\x05" } ;
-        if ( $shnum == 6 ) { printf FINAL "\x06" } ;
-        if ( $shnum == 7 ) { printf FINAL "\x07" } ;
-        if ( $shnum == 8 ) { printf FINAL "\x08" } ;
-        if ( $shnum == 9 ) { printf FINAL "\x09" } ;
-        if ( $shnum == 10 ) { printf FINAL "\x0a" } ;
-        if ( $shnum == 11 ) { printf FINAL "\x0b" } ;
-        if ( $shnum == 12 ) { printf FINAL "\x0c" } ;
-        if ( $shnum == 13 ) { printf FINAL "\x0d" } ;
-        if ( $shnum == 14 ) { printf FINAL "\x0e" } ;
-        if ( $shnum == 15 ) { printf FINAL "\x0f" } ;
-}
-
-sub DispHelp () {
-        $\="\n";
-        print "Usage:";
-        print "\t-f,--input-file";
-        print "\t\tThe input file name (only required option)";
-        print "\t-o,--output-file";
-        print "\t\tThe output file name (if not specified, *.asm becomes *.o";
-        print "\t\tand anything else becomes a.out)";
-        print "\t-l,--list-file";
-        print "\t\tThe listing file's name (default: trailing .asm is
-removed";
-        print "\t\tif there and .lst is appended)";
-        print "\t-s,--second-asm-file";
-        print "\t\tThe second asm file's name (default: trailing .asm is";
-        print "\t\tremoved if there and .nasm is appended)";
-        print "\n";
-        exit ;
-}
-
-if ( $ARGV[0] eq "" ) { $ARGV[0] = "-h" };
-
-$i = 0;
-$filename = "";
-$outname  = "";
-
-while ( $ARGV[$i] ne "" ) {
-        $_ = $ARGV[$i];
-        if ( m/^-/ ) {
-                if ( m/^-f$/ ) { $filename = $ARGV[++$i] };
-                if ( m/^-o$/ ) { $outname  = $ARGV[++$i] };
-                if ( m/^-l$/ ) { $listname = $ARGV[++$i] };
-                if ( m/^-s$/ ) { $asmname  = $ARGV[++$i] };
-                if ( m/^-h$/ ) { DispHelp };
-        } elsif ( m/^--\w+/ ) {
-                if ( m/^--input-file$/ )      { $filename = $ARGV[++$i] };
-                if ( m/^--output-file$/ )     { $outname  = $ARGV[++$i] };
-                if ( m/^--list-file$/ )       { $listname = $ARGV[++$i] };
-                if ( m/^--second-asm-file$/ ) { $asmname  = $ARGV[++$i] };
-                if ( m/^--help/ ) { DispHelp };
-        } elsif ( m/^--$/ ) {
-                while ( $ARGV[++$i] ) {
-                        $NasmOptions .= " ";
-                        $NasmOptions .= $_;
-                };
-        } else {
-                DispHelp()
-        };
-        $i++;
-};
-
-if ( $filename eq "" ) { DispHelp() };
-
-if ( $outname eq "" ) {
-        $outname = $filename;
-        $outname =~ s/\.asm/.o/;
-        if ( $outname eq $filename ) { $outname = "a.out" };
-};
-
-if ( $listname eq "" ) {
-        $listname = $filename;
-        $listname =~ s/\.asm//;
-        $listname .= ".lst";
-};
-
-if ( $asmname eq "" ) {
-        $asmname = $filename;
-        $asmname =~ s/\.asm//;
-        $asmname .= ".nasm";
-};
-
-$err = `nasm -f elf ${filename} -l ${listname} -o ${outname} `;
-
-if ( $err ) { die "\n$err\n"};
-
-open(LISTFILE,"${listname}") or die "\n $0: Could not reopen list file!\n";
-open(ASMFILE,">${asmname}")  or die "\n $0: Could not open asm file!\n";
-
-select ASMFILE;
-
-open(OLDASM,$filename) or die "\n$0: Cannot open file $filename\n";
-
-while ( $x = <OLDASM> ) {
-        print $x;
-}
-
-@stab = ("n_desc", "value");
-@rel_stab = ("offset");
-$i = 0;
-$current_section = "";
-$has_text = 'FALSE';
-$midst_of_macro = 'FALSE';
-$line_dec = 0 ;
-
-while ( $x = <LISTFILE> ) {
-        if ( $x =~ m/[^;]*%include/ ) {
-                $x = <LISTFILE>;
-                while ( $x =~ m/\s+\d+\s+\<\d+\>\s+/ ) {
-                        $x = <LISTFILE>;
-                        $line_dec++;
-                }
-        }
-        if ( $current_section eq ".text" ) {
-                if ( $x =~ m/^\s+(\S+)\s+(\S+)\s+(\S+)\s+[^<]+$/ ) {
-                        $stab[$i++] = $1-$line_dec;     #linenum
-                        $stab[$i++] = $2;               #offset
-                        $count++;
-                        if ( $3 =~ m/-/ ) {
-                                $x = <LISTFILE>;
-                                $line_dec++;
-                        }
-                        $midst_of_macro = 'FALSE';
-                } elsif ( $x =~ m/^\s+(\S+)\s+(\S+)\s+(\S+)\s+<\d+>/ ) {
-                        if ( $midst_of_macro eq 'TRUE' ) {
-                                $stab[$i] = $stab[$i-2]; #same linenum
-                                $line_dec++;
-                        } else {
-                                $stab[$i] = $1 - ++$line_dec;
-                                $midst_of_macro = 'TRUE';
-                        }
-                        $count++;
-                        $i++;
-                        $stab[$i++] = $2;
-                        if ( $3 =~ m/-/ ) {
-                                $x = <LISTFILE>;
-                                $line_dec++;
-                        }
-
-                }
-                $has_text = 'TRUE';
-        } elsif ( $x =~ m/\s+\S+\s+\S+\s+\S+\s+<\d+>/ ) { # is it a macro?
-                $line_dec++;
-        }
-        if ( $x =~ s/(section|segment)\s+([^\s]+)/$2/ ) {
-                        $current_section = $2;
-        }
-};
-
-close LISTFILE;
-
-unless ( $has_text eq "TRUE" ) {
-        $err = `nasm -f elf ${asmname} -o ${outname}`;
-        print STDERR $err;
-        exit;
-}
-
-#Write Stab section
-$, = "\t";      #output field separator
-$\ = "\n";      #output record separator
-
-print "section .stab noalloc";
-StabLine(";header",1,0,0,$count+1,length($filename)*2+3);
-StabLine(";so",length($asmname)+2,"064h",0,0,0);
-
-$offset = 12;
-$i = 0;
-$j = 0;
-$rel_stab[$j++] = $offset + 8;
-
-while ( $stab[$i] ) {
-        StabLine(";N_SLINE" . " " . ( ($i+2) / 2 ), 0, "044h", 0,
-                $stab[$i++], $stab[$i++]);
-        $offset += 12;
-        $rel_stab[$j++] = $offset + 8;
-}
-
-#Write .rel.stab section
-print "\n\nsection .rel.stab noalloc";
-
-open (READELF,"readelf -s ${outname} |") or die "\n$0: Could not run readelf\n";
-
-while ( $x = <READELF> ) {
-   if ( $x =~ m/\s+(\d+):\s+00000000\s+\d+\s+SECTION\s+\w+\s+\w+\s+1\s+/){ $textsymnum = $1;
-   };
-};
-close READELF;
-
-$i = 0;
-
-while ( $rel_stab[$i] ne "" ) {
-        RStabLine(";relocation for N_SLINE " . ($i), $rel_stab[$i], 0, 1, $textsymnum);
-        $i++;
-} ;
-
-#Write .stabstr section
-
-print "\n\nsection .stabstr noalloc";
-
-print "","db","0";
-print "","db",'"' . $asmname . '"';
-print "","db","0";
-print "","db",'"' . $asmname . '"' ;
-print "","db","0";
-
-close ASMFILE;
-
-$err = `nasm -f elf ${asmname} -o ${outname}`;
-
-if ( $err ) { die "\n$err\n" } ;
-
-open (READELF,"readelf -h -S ${outname} |") or die "\n$0: Could not run readelf\n";
-
-
-while ( $x = <READELF> ) {
-        if ( $x =~ m/Start\s+of\s+section\s+headers:\s+(\d+)\s+/ ) {
-                $shoff = $1;
-        }
-        if ( $x =~ m/Size\s+of\s+section\s+headers:\s+(\d+)\s+/ ) {
-                $shentsize = $1;
-        }
-        if ( $x =~ m/\[\s*(\d+)\]\s+.rel.stab\s+/ ) {
-                $relnum = $1;
-        }
-        if ( $x =~ m/\[\s*(\d+)\]\s+.stab\s+/ ) {
-                $stabnum = $1;
-        }
-        if ( $x =~ m/\[\s*(\d+)\]\s+.stabstr\s+/ ) {
-                $stabstrnum = $1;
-        }
-        if ( $x =~ m/\[\s*(\d+)\]\s+.symtab\s+/ ) {
-                $symtabnum = $1;
-        }
-}
-close READELF;
-
-sysopen (FINAL,"${outname}",2,0) or die "\n$0: Could not open ${outname}";
-$, = "";        #output field separator
-$\ = "";        #output record separator
-
-#set .rel.stab->type to rel
-OutBin($shoff + ($shentsize * $relnum) + 4,9);
-
-#set .rel.stab->link to .symtab
-OutBin($shoff + ($shentsize * $relnum) + 24,$symtabnum);
-
-#set .rel.stab->info to .stab
-OutBin($shoff + ($shentsize * $relnum) + 28,$stabnum);
-
-#set .rel.stab->entsize to 8
-OutBin($shoff + ($shentsize * $relnum) + 36,8);
-
-#set .stab->link to .stabstr
-OutBin($shoff + ($shentsize * $stabnum) + 24,$stabstrnum);
-
-#set .stab->entsize to 12
-OutBin($shoff + ($shentsize * $stabnum) + 36,12);
-
-#set .stabstr->type to strtab
-OutBin($shoff + ($shentsize * $stabstrnum) + 4,3);
-
-close FINAL;
-
-#Date: 17 Mar 2002 15:51:20 -0800
-#From: kitsred@hotmail.com (kired)
-#Newsgroups: alt.lang.asm
--- a/nasmbuild/nasm-2.13rc9/misc/omfdump.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,223 +0,0 @@
-/*
- * omfdump.c
- *
- * Very simple program to dump the contents of an OMF (OBJ) file
- *
- * This assumes a littleendian, unaligned-load-capable host and a
- * C compiler which handles basic C99.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <inttypes.h>
-#include <ctype.h>
-#include <fcntl.h>
-#include <unistd.h>
-#include <sys/mman.h>
-#include <sys/stat.h>
-
-const char *progname;
-
-static const char *record_types[256] =
-{
-    [0x80] = "THEADR",
-    [0x82] = "LHEADR",
-    [0x88] = "COMENT",
-    [0x8a] = "MODEND16",
-    [0x8b] = "MODEND32",
-    [0x8c] = "EXTDEF",
-    [0x90] = "PUBDEF16",
-    [0x91] = "PUBDEF32",
-    [0x94] = "LINNUM16",
-    [0x95] = "LINNUM32",
-    [0x96] = "LNAMES",
-    [0x98] = "SEGDEF16",
-    [0x99] = "SEGDEF32",
-    [0x9a] = "GRPDEF",
-    [0x9c] = "FIXUPP16",
-    [0x9d] = "FIXUPP32",
-    [0xa0] = "LEDATA16",
-    [0xa1] = "LEDATA32",
-    [0xa2] = "LIDATA16",
-    [0xa3] = "LIDATA32",
-    [0xb0] = "COMDEF",
-    [0xb2] = "BAKPAT16",
-    [0xb3] = "BAKPAT32",
-    [0xb4] = "LEXTDEF",
-    [0xb6] = "LPUBDEF16",
-    [0xb7] = "LPUBDEF32",
-    [0xb8] = "LCOMDEF",
-    [0xbc] = "CEXTDEF",
-    [0xc2] = "COMDAT16",
-    [0xc3] = "COMDAT32",
-    [0xc4] = "LINSYM16",
-    [0xc5] = "LINSYM32",
-    [0xc6] = "ALIAS",
-    [0xc8] = "NBKPAT16",
-    [0xc9] = "NBKPAT32",
-    [0xca] = "LLNAMES",
-    [0xcc] = "VERNUM",
-    [0xce] = "VENDEXT",
-    [0xf0] = "LIBHDR",
-    [0xf1] = "LIBEND",
-};
-
-typedef void (*dump_func)(uint8_t, const uint8_t *, size_t);
-
-static void hexdump_data(unsigned int offset, const uint8_t *data, size_t n)
-{
-    unsigned int i, j;
-
-    for (i = 0; i < n; i += 16) {
-	printf("  %04x: ", i+offset);
-	for (j = 0; j < 16; j++) {
-	    if (i+j < n)
-		printf("%02x%c", data[i+j], (j == 7) ? '-' : ' ');
-	    else
-		printf("   ");
-	}
-	printf(" :  ");
-	for (j = 0; j < 16; j++) {
-	    if (i+j < n)
-		putchar(isprint(data[i+j]) ? data[i+j] : '.');
-	}
-	putchar('\n');
-    }
-}
-
-static void dump_unknown(uint8_t type, const uint8_t *data, size_t n)
-{
-    (void)type;
-    hexdump_data(0, data, n);
-}
-
-static void dump_coment(uint8_t type, const uint8_t *data, size_t n)
-{
-    uint8_t class;
-    static const char *coment_class[256] = {
-	[0x00] = "Translator",
-	[0x01] = "Copyright",
-	[0x81] = "Library specifier",
-	[0x9c] = "MS-DOS version",
-	[0x9d] = "Memory model",
-	[0x9e] = "DOSSEG",
-	[0x9f] = "Library search",
-	[0xa0] = "OMF extensions",
-	[0xa1] = "New OMF extension",
-	[0xa2] = "Link pass separator",
-	[0xa3] = "LIBMOD",
-	[0xa4] = "EXESTR",
-	[0xa6] = "INCERR",
-	[0xa7] = "NOPAD",
-	[0xa8] = "WKEXT",
-	[0xa9] = "LZEXT",
-	[0xda] = "Comment",
-	[0xdb] = "Compiler",
-	[0xdc] = "Date",
-	[0xdd] = "Timestamp",
-	[0xdf] = "User",
-	[0xe9] = "Dependency file",
-	[0xff] = "Command line"
-    };
-
-    if (n < 2) {
-	dump_unknown(type, data, n);
-	return;
-    }
-
-    type  = data[0];
-    class = data[1];
-
-    printf("  [NP=%d NL=%d UD=%02X] %02X %s\n",
-	   (type >> 7) & 1,
-	   (type >> 6) & 1,
-	   type & 0x3f,
-	   class,
-	   coment_class[class] ? coment_class[class] : "???");
-
-    hexdump_data(2, data+2, n-2);
-}
-
-static const dump_func dump_type[256] =
-{
-    [0x88] = dump_coment,
-};
-
-int dump_omf(int fd)
-{
-    struct stat st;
-    size_t len, n;
-    uint8_t type;
-    const uint8_t *p, *data;
-
-    if (fstat(fd, &st))
-	return -1;
-
-    len = st.st_size;
-
-    data = mmap(NULL, len, PROT_READ, MAP_PRIVATE, fd, 0);
-    if (data == MAP_FAILED)
-	return -1;
-
-    p = data;
-    while (len >= 3) {
-	uint8_t csum;
-	int i;
-
-	type = p[0];
-	n = *(uint16_t *)(p+1);
-
-	printf("%02x %-10s %4zd bytes",
-	       type,
-	       record_types[type] ? record_types[type] : "???",
-	       n);
-
-	if (len < n+3) {
-	    printf("\n  (truncated, only %zd bytes left)\n", len-3);
-	    break;		/* Truncated */
-	}
-
-	p += 3;	      /* Header doesn't count in the length */
-	n--;	      /* Remove checksum byte */
-
-	csum = 0;
-	for (i = -3; i < (int)n; i++)
-	    csum -= p[i];
-
-	printf(", checksum %02X", p[i]);
-	if (csum == p[i])
-	    printf(" (valid)\n");
-	else
-	    printf(" (actual = %02X)\n", csum);
-
-	if (dump_type[type])
-	    dump_type[type](type, p, n);
-	else
-	    dump_unknown(type, p, n);
-
-	p   += n+1;
-	len -= (n+4);
-    }
-
-    munmap((void *)data, st.st_size);
-    return 0;
-}
-
-int main(int argc, char *argv[])
-{
-    int fd;
-    int i;
-
-    progname = argv[0];
-
-    for (i = 1; i < argc; i++) {
-	fd = open(argv[i], O_RDONLY);
-	if (fd < 0 || dump_omf(fd)) {
-	    perror(argv[i]);
-	    return 1;
-	}
-	close(fd);
-    }
-
-    return 0;
-}
--- a/nasmbuild/nasm-2.13rc9/misc/pmw.bat	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-@echo off
-rem some batch file to bind nasm and ndisasm with pmode/w
-rem a mega cool dos extender for watcom done by tran
-rem 
-rem max 8 megs, dpmi stack 256*16=4096, no banner
-pmwlite.exe nasm.exe
-pmwsetup.exe /X8388608 /P256 /B0 nasm.exe
-pmwlite.exe ndisasm.exe
-pmwsetup.exe /X8388608 /P256 /B0 ndisasm.exe
--- a/nasmbuild/nasm-2.13rc9/misc/proc32.ash	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
-;--------=========xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=========--------
-;
-;   Copyright (C) 1999 by Andrew Zabolotny
-;   Miscelaneous NASM macros that makes use of new preprocessor features
-; 
-;   This library is free software; you can redistribute it and/or
-;   modify it under the terms of the GNU Library General Public
-;   License as published by the Free Software Foundation; either
-;   version 2 of the License, or (at your option) any later version.
-; 
-;   This library is distributed in the hope that it will be useful,
-;   but WITHOUT ANY WARRANTY; without even the implied warranty of
-;   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;   Library General Public License for more details.
-; 
-;   You should have received a copy of the GNU Library General Public
-;   License along with this library; if not, write to the Free
-;   Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-;
-;--------=========xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx=========--------
-
-;   The macros in this file provides support for writing 32-bit C-callable
-;   NASM routines. For a short description of every macros see the
-;   corresponding comment before every one. Simple usage example:
-;
-;	proc	sin,1
-;		targ	%$angle
-;		fld	%$angle
-;		fsin
-;	endproc	sin
-
-%ifndef __PROC32_ASH__
-%define __PROC32_ASH__
-
-[WARNING -macro-selfref]
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   Mangle a name to be compatible with the C compiler
-; Arguments:
-;   The name
-; Example:
-;		cname (my_func)
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%ifdef EXTERNC_UNDERSCORE
-		%define	cname(x) _ %+ x
-%else
-		%define	cname(x) x
-%endif
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   Import an external C procedure definition
-; Arguments:
-;   The name of external C procedure
-; Example:
-;		cextern	printf
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		cextern	1
-		%xdefine %1 cname(%1)
-	%ifidni __OUTPUT_FORMAT__,obj
-		extern	%1:wrt FLAT
-	%else
-		extern	%1
-	%endif
-%endmacro
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   Export an C procedure definition
-; Arguments:
-;   The name of C procedure
-; Example:
-;		cglobal	my_printf
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		cglobal	1
-		%xdefine %1 cname(%1)
-		global	%1
-%endmacro
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   Misc macros to deal with PIC shared libraries
-; Comment:
-;   Note that we have a different syntax for working with and without
-;   PIC shared libraries. In a PIC environment we should load first
-;   the address of the variable into a register and then work through
-;   that address, i.e: mov eax,myvar; mov [eax],1
-;   In a non-PIC environment we should directly write: mov myvar,1
-; Example:
-;		extvar	myvar
-;		GetGOT
-;	%ifdef PIC
-;		mov	ebx,myvar	; get offset of myvar into ebx
-;	%else
-;		lea	ebx,myvar
-;	%endif
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%ifdef PIC
-		cextern	_GLOBAL_OFFSET_TABLE_
-	%macro	GetGOT	0
-		%ifdef .$proc.stkofs
-			%assign .$proc.stkofs .$proc.stkofs+4
-		%endif
-		call	%$Get_GOT
-	%$Get_GOT:
-		pop	ebx
-		add	ebx,_GLOBAL_OFFSET_TABLE_ + $$ - %$Get_GOT wrt ..gotpc
-	%endmacro
-	%macro	extvar	1
-		cextern	%1
-		%xdefine %1 [ebx+%1 wrt ..got]
-	%endmacro
-%else
-	%define	GetGOT
-	%macro	extvar	1
-		cextern	%1
-	%endmacro
-%endif
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   Begin a procedure definition
-;   For performance reasons we don't use stack frame pointer EBP,
-;   instead we're using the [esp+xx] addressing. Because of this
-;   you should be careful when you work with stack pointer.
-;   The push/pop instructions are macros that are defined to
-;   deal correctly with these issues.
-; Arguments:
-;   First argument - the procedure name
-;   Second optional argument - the number of bytes for local variables
-;   The following arguments could specify the registers that should be
-;   pushed at beginning of procedure and popped before exiting
-; Example:
-;   proc	MyTestProc
-;   proc	MyTestProc,4,ebx,esi,edi
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		proc	1-3+ 0
-		cglobal	%1
-		%push	%1
-		align	16
-%1:
-		%xdefine %$proc.name %1
-	; total size of local arguments
-		%assign %$proc.locsize (%2+3) & 0xFFFC
-	; offset from esp to argument
-		%assign	%$proc.argofs 4+%$proc.locsize
-	; additional offset to args (tracks push/pops)
-		%assign	.$proc.stkofs 0
-	; offset from esp to local arguments
-		%assign %$proc.locofs 0
-	; Now push the registers that we should save
-		%define %$proc.save %3
-	%if %$proc.locsize != 0
-		sub	esp,%$proc.locsize
-	%endif
-		push	%$proc.save
-%endmacro
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   Declare an argument passed on stack
-;   This macro defines two additional macros:
-;     first (with the name given by first argument) - [esp+xx]
-;     second (with a underscore appended to first argument) - esp+xx
-; Arguments:
-;   First argument defines the procedure argument name
-;   Second optional parameter defines the size of the argument
-;   Default value is 4 (a double word)
-; Example:
-;		arg	.my_float
-;		arg	.my_double,8
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		arg	1-2 4
-	%ifndef %$proc.argofs
-		%error	"`arg' not in a proc context"
-	%else
-	; Trick: temporary undefine .$proc.stkofs so that it won't be expanded
-		%assign	%%. .$proc.stkofs
-		%undef .$proc.stkofs
-		%xdefine %{1}_ esp+%$proc.argofs+.$proc.stkofs
-		%xdefine %1 [esp+%$proc.argofs+.$proc.stkofs]
-		%assign .$proc.stkofs %%.
-		%assign %$proc.argofs %2+%$proc.argofs
-	%endif
-%endmacro
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   Declare an local variable
-;     first (with the name given by first argument) - [esp+xx]
-;     second (with  a slash prefixing the first argument) - esp+xx
-; Arguments:
-;   First argument defines the procedure argument name
-;   Second optional parameter defines the size of the argument
-;   Default value is 4 (a double word)
-; Example:
-;		loc	.int_value
-;		loc	.double_value,8
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		loc	1-2 4
-	%ifndef %$proc.locofs
-		%error	"`loc' not in a proc context"
-	%elif %$proc.locofs + %2 > %$proc.locsize
-		%error	"local stack space exceeded"
-	%else
-		%assign	%%. .$proc.stkofs
-		%undef .$proc.stkofs
-		%xdefine %{1}_ esp+%$proc.locofs+.$proc.stkofs
-		%xdefine %1 [esp+%$proc.locofs+.$proc.stkofs]
-		%assign .$proc.stkofs %%.
-		%assign %$proc.locofs %$proc.locofs+%2
-	%endif
-%endmacro
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   Get the type of given size into context-local variable %$type
-; Arguments:
-;   Size of type we want (1,2,4,8 or 10)
-; Example:
-;		type	4	; gives "dword"
-;		type	10	; gives "tword"
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		type	1
-	%if %1 = 1
-		%define	%$type byte
-	%elif %1 = 2
-		%define	%$type word
-	%elif %1 = 4
-		%define	%$type dword
-	%elif %1 = 8
-		%define	%$type qword
-	%elif %1 = 10
-		%define	%$type tword
-	%else
-		%define %$. %1
-		%error "unknown type for argument size %$."
-	%endif
-%endmacro
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   Same as `arg' but prepends "word", "dword" etc (typed arg)
-;     first (with the name given by first argument) - dword [esp+xx]
-;     second (with  a slash prefixing the first argument) - esp+xx
-; Arguments:
-;   Same as for `arg'
-; Example:
-;		targ	.my_float	; .my_float is now "dword [esp+xxx]"
-;		targ	.my_double,8	; .my_double is now "qword [esp+xxx]"
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		targ	1-2 4
-	%ifndef %$proc.argofs
-		%error	"`targ' not in a proc context"
-	%else
-		arg	%1,%2
-		type	%2
-		%assign	%%. .$proc.stkofs
-		%undef .$proc.stkofs
-		%xdefine %1 %$type %1
-		%assign .$proc.stkofs %%.
-	%endif
-%endmacro
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   Same as `loc' but prepends "word", "dword" etc (typed loc)
-;     first (with the name given by first argument) - dword [esp+xx]
-;     second (with  a slash prefixing the first argument) - esp+xx
-; Arguments:
-;   Same as for `loc'
-; Example:
-;		tloc	int_value
-;		tloc	double_value,8
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		tloc	1-2 4
-	%ifndef %$proc.locofs
-		%error	"`tloc' not in a proc context"
-	%else
-		loc	%1,%2
-		type	%2
-		%assign	%%. .$proc.stkofs
-		%undef .$proc.stkofs
-		%xdefine %1 %$type %1
-		%assign .$proc.stkofs %%.
-	%endif
-%endmacro
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   Finish a procedure
-;   Gives an error if proc/endproc pairs mismatch
-;   Defines an label called __end_(procedure name)
-;   which is useful for calculating function size
-; Arguments:
-;   (optional) The name of procedure
-; Example:
-;   endproc	MyTestProc
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%push	tmp	; trick: define a dummy context to avoid error in next line
-%macro		endproc	0-1 %$proc.name
-	%ifndef %$proc.argofs
-		%error "`endproc' not in a proc context"
-	%elifnidn %$proc.name,%1
-		%define %$. %1
-		%error "endproc names mismatch: expected `%$proc.name'"
-		%error "but got `%$.' instead"
-	%elif %$proc.locofs < %$proc.locsize
-		%error	"unused local space declared (used %$proc.locofs, requested %$proc.locsize)"
-	%else
-%$exit:
-	; Now pop the registers that we should restore on exit
-		pop	%$proc.save
-		%if %$proc.locsize != 0
-		add	esp,%$proc.locsize
-		%endif
-		ret
-__end_%1:
-		%pop
-	%endif
-%endmacro
-%pop
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   A replacement for "push" for use within procedures
-; Arguments:
-;   any number of registers which will be push'ed successively
-; Example:
-;		push	eax,ebx,ecx,edx
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		push	0-*
-; dummy comment to avoid problems with "push" on the same line with a label
-	%rep	%0
-		push	%1
-		%rotate	1
-		%assign .$proc.stkofs .$proc.stkofs+4
-	%endrep
-%endmacro
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   A replacement for "pop" for use within procedures
-; Arguments:
-;   any number of registers which will be pop'ed in reverse order
-; Example:
-;		pop	eax,ebx,ecx,edx
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		pop	0-*
-; dummy comment to avoid problems with "pop" on the same line with a label
-	%rep	%0
-		%rotate	-1
-		pop	%1
-		%assign .$proc.stkofs .$proc.stkofs-4
-	%endrep
-%endmacro
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   Replacements for "pushfd" and "popfd" that takes care of esp
-; Example:
-;		pushfd
-;		popfd
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		pushfd	0
-		pushfd
-		%assign .$proc.stkofs .$proc.stkofs+4
-%endmacro
-%macro		popfd	0
-		popfd
-		%assign .$proc.stkofs .$proc.stkofs-4
-%endmacro
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   Exit from current procedure (optionally on given condition)
-; Arguments:
-;   Either none or a condition code
-; Example:
-;		exit
-;		exit	nz
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		exit	0-1 mp
-		j%1	near %$exit
-%endmacro
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   start an conditional branch
-; Arguments:
-;   A condition code
-;   second (optional) argument - "short" (by default - "near")
-; Example:
-;		if	nz
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		if	1-2 near
-; dummy comment to avoid problems with "if" on the same line with a label
-		%push	if
-		j%-1	%2 %$elseif
-%endmacro
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   define the "else" branch of a conditional statement
-; Arguments:
-;   optionaly: "short" if jmp to endif is less than 128 bytes away
-; Example:
-;		else
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		else	0-1
-	%ifnctx if
-		%error	"`else' without matching `if'"
-	%else
-		jmp	%1 %$endif
-%$elseif:
-		%define	%$elseif_defined
-	%endif
-%endmacro
-
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-; Summary:
-;   Finish am conditional statement
-; Arguments:
-;   none
-; Example:
-;		endif
-;-----======xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx======-----
-%macro		endif	0
-	%ifnctx if
-		%error	"`endif' without matching `if'"
-	%else
-		%ifndef %$elseif_defined
-%$elseif:
-		%endif
-%$endif:
-		%pop
-	%endif
-%endmacro
-
-%endif ; __PROC32_ASH__
--- a/nasmbuild/nasm-2.13rc9/misc/scitech.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1223 +0,0 @@
-;****************************************************************************
-;*
-;*  ========================================================================
-;*
-;*    The contents of this file are subject to the SciTech MGL Public
-;*    License Version 1.0 (the "License"); you may not use this file
-;*    except in compliance with the License. You may obtain a copy of
-;*    the License at http://www.scitechsoft.com/mgl-license.txt
-;*
-;*    Software distributed under the License is distributed on an
-;*    "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
-;*    implied. See the License for the specific language governing
-;*    rights and limitations under the License.
-;*
-;*    The Original Code is Copyright (C) 1991-1998 SciTech Software, Inc.
-;*
-;*    The Initial Developer of the Original Code is SciTech Software, Inc.
-;*    All Rights Reserved.
-;*
-;*  ========================================================================
-;*
-;* Language:    NetWide Assembler (NASM) or Turbo Assembler (TASM)
-;* Environment: Any Intel Environment
-;*
-;* Description: Macros to provide memory model independant assembly language
-;*              module for C programming. Supports the large and flat memory
-;*				models.
-;*
-;*          	The defines that you should use when assembling modules that
-;*				use this macro package are:
-;*
-;*					__LARGE__	Assemble for 16-bit large model
-;*                  __FLAT__    Assemble for 32-bit FLAT memory model
-;*                  __NOU__		No underscore for all external C labels
-;*					__NOU_VAR__	No underscore for global variables only
-;*
-;*				The default settings are for 16-bit large memory model with
-;*				leading underscores for symbol names.
-;*
-;*				The main intent of the macro file is to enable programmers
-;*				to write _one_ set of source that can be assembled to run
-;*				in either 16 bit real and protected modes or 32 bit
-;*				protected mode without the need to riddle the code with
-;*				'if flatmodel' style conditional assembly (it is still there
-;*				but nicely hidden by a macro layer that enhances the
-;*				readability and understandability of the resulting code).
-;*
-;****************************************************************************
-
-; Include the appropriate version in here depending on the assembler. NASM
-; appears to always try and parse code, even if it is in a non-compiling
-; block of a ifdef expression, and hence crashes if we include the TASM
-; macro package in the same header file. Hence we split the macros up into
-; two separate header files.
-
-ifdef __NASM_MAJOR__
-
-;============================================================================
-; Macro package when compiling with NASM.
-;============================================================================
-
-; Turn off underscores for globals if disabled for all externals
-
-%ifdef	__NOU__
-%define	__NOU_VAR__
-%endif
-
-; Define the __WINDOWS__ symbol if we are compiling for any Windows
-; environment
-
-%ifdef	__WINDOWS16__
-%define	__WINDOWS__			1
-%endif
-%ifdef	__WINDOWS32__
-%define __WINDOWS__			1
-%define __WINDOWS32_386__	1
-%endif
-
-; Macros for accessing 'generic' registers
-
-%ifdef	__FLAT__
-%idefine _ax	eax
-%idefine _bx	ebx
-%idefine _cx	ecx
-%idefine _dx	edx
-%idefine _si	esi
-%idefine _di	edi
-%idefine _bp	ebp
-%idefine _sp	esp
-%idefine _es
-%idefine UCHAR 	BYTE		; Size of a character
-%idefine USHORT WORD		; Size of a short
-%idefine UINT 	DWORD		; Size of an integer
-%idefine ULONG 	DWORD		; Size of a long
-%idefine BOOL 	DWORD      	; Size of a boolean
-%idefine DPTR 	DWORD		; Size of a data pointer
-%idefine FDPTR 	FWORD		; Size of a far data pointer
-%idefine NDPTR 	DWORD		; Size of a near data pointer
-%idefine CPTR 	DWORD		; Size of a code pointer
-%idefine FCPTR 	FWORD		; Size of a far code pointer
-%idefine NCPTR 	DWORD		; Size of a near code pointer
-%idefine FPTR 	NEAR		; Distance for function pointers
-%idefine DUINT	dd			; Declare a integer variable
-%idefine intsize 4
-%idefine flatmodel 1
-%else
-%idefine _ax	ax
-%idefine _bx	bx
-%idefine _cx	cx
-%idefine _dx	dx
-%idefine _si	si
-%idefine _di	di
-%idefine _bp	bp
-%idefine _sp	sp
-%idefine _es	es:
-%idefine UCHAR 	BYTE      	; Size of a character
-%idefine USHORT WORD		; Size of a short
-%idefine UINT 	WORD		; Size of an integer
-%idefine ULONG 	DWORD		; Size of a long
-%idefine BOOL 	WORD		; Size of a boolean
-%idefine DPTR 	DWORD		; Size of a data pointer
-%idefine FDPTR 	DWORD		; Size of a far data pointer
-%idefine NDPTR 	WORD		; Size of a near data pointer
-%idefine CPTR 	DWORD		; Size of a code pointer
-%idefine FCPTR 	DWORD		; Size of a far code pointer
-%idefine NCPTR 	WORD		; Size of a near code pointer
-%idefine FPTR   FAR			; Distance for function pointers
-%idefine DUINT	dw			; Declare a integer variable
-%idefine intsize 2
-%endif
-%idefine invert ~
-%idefine offset
-%idefine use_nasm
-
-; Convert all jumps to near jumps, since NASM does not so this automatically
-
-%idefine jo		jo near
-%idefine jno	jno near
-%idefine jz		jz near
-%idefine jnz	jnz near
-%idefine je		je near
-%idefine jne	jne near
-%idefine jb		jb	near
-%idefine jbe	jbe	near
-%idefine ja		ja	near
-%idefine jae	jae	near
-%idefine jl		jl	near
-%idefine jle	jle	near
-%idefine jg		jg	near
-%idefine jge	jge	near
-%idefine jc		jc	near
-%idefine jnc	jnc	near
-%idefine js		js	near
-%idefine jns	jns	near
-
-%ifdef	DOUBLE
-%idefine	REAL	QWORD
-%idefine	DREAL	dq
-%else
-%idefine	REAL	DWORD
-%idefine	DREAL	dd
-%endif
-
-; Boolean truth values (same as those in debug.h)
-
-%idefine False		0
-%idefine True		1
-%idefine No			0
-%idefine Yes		1
-%idefine Yes		1
-
-; Macro to be invoked at the start of all modules to set up segments for
-; later use. Does nothing for NASM.
-
-%imacro header 1
-%endmacro
-
-; Macro to begin a data segment
-
-%imacro begdataseg 1
-%ifdef __GNUC__
-segment .data public class=DATA use32 flat
-%else
-%ifdef flatmodel
-segment _DATA public align=4 class=DATA use32 flat
-%else
-segment _DATA public align=4 class=DATA use16
-%endif
-%endif
-%endmacro
-
-; Macro to end a data segment
-
-%imacro enddataseg 1
-%endmacro
-
-; Macro to begin a code segment
-
-%imacro begcodeseg 1
-%ifdef __GNUC__
-segment .text public class=CODE use32 flat
-%else
-%ifdef flatmodel
-segment _TEXT public align=16 class=CODE use32 flat
-%else
-segment %1_TEXT public align=16 class=CODE use16
-%endif
-%endif
-%endmacro
-
-; Macro to begin a near code segment
-
-%imacro begcodeseg_near 0
-%ifdef __GNUC__
-segment .text public class=CODE use32 flat
-%else
-%ifdef flatmodel
-segment _TEXT public align=16 class=CODE use32 flat
-%else
-segment _TEXT public align=16 class=CODE use16
-%endif
-%endif
-%endmacro
-
-; Macro to end a code segment
-
-%imacro endcodeseg 1
-%endmacro
-
-; Macro to end a near code segment
-
-%imacro endcodeseg_near 0
-%endmacro
-
-; Macro for an extern C symbol. If the C compiler requires leading
-; underscores, then the underscores are added to the symbol names, otherwise
-; they are left off. The symbol name is referenced in the assembler code
-; using the non-underscored symbol name.
-
-%imacro cextern 2
-%ifdef	__NOU_VAR__
-extern %1
-%else
-extern _%1
-%define	%1 _%1
-%endif
-%endmacro
-
-%imacro cexternfunc 2
-%ifdef	__NOU__
-extern %1
-%else
-extern _%1
-%define	%1 _%1
-%endif
-%endmacro
-
-; Macro for a public C symbol. If the C compiler requires leading
-; underscores, then the underscores are added to the symbol names, otherwise
-; they are left off. The symbol name is referenced in the assembler code
-; using the non-underscored symbol name.
-
-%imacro cpublic 1
-%ifdef	__NOU_VAR__
-global %1
-%1:
-%else
-global _%1
-_%1:
-%define	%1 _%1
-%endif
-%endmacro
-
-; Macro for an global C symbol. If the C compiler requires leading
-; underscores, then the underscores are added to the symbol names, otherwise
-; they are left off. The symbol name is referenced in the assembler code
-; using the non-underscored symbol name.
-
-%imacro cglobal 1
-%ifdef	__NOU_VAR__
-global %1
-%else
-global _%1
-%define	%1 _%1
-%endif
-%endmacro
-
-; Macro for an global C function symbol. If the C compiler requires leading
-; underscores, then the underscores are added to the symbol names, otherwise
-; they are left off. The symbol name is referenced in the assembler code
-; using the non-underscored symbol name.
-
-%imacro cglobalfunc 1
-%ifdef	__NOU__
-global %1
-%else
-global _%1
-%define	%1 _%1
-%endif
-%endmacro
-
-; Macro to start a C callable function. This will be a far function for
-; 16-bit code, and a near function for 32-bit code.
-
-%imacro cprocstatic 1
-%push cproc
-%1:
-%ifdef flatmodel
-%stacksize flat
-%define ret	retn
-%else
-%stacksize large
-%define ret	retf
-%endif
-%assign %$localsize 0
-%endmacro
-
-%imacro cprocstart 1
-%push cproc
-	cglobalfunc %1
-%1:
-%ifdef flatmodel
-%stacksize flat
-%define ret	retn
-%else
-%stacksize large
-%define ret	retf
-%endif
-%assign %$localsize 0
-%endmacro
-
-; This macro sets up a procedure to be exported from a 16 bit DLL. Since the
-; calling conventions are always _far _pascal for 16 bit DLL's, we actually
-; rename this routine with an extra underscore with 'C' calling conventions
-; and a small DLL stub will be provided by the high level code to call the
-; assembler routine.
-
-%imacro	cprocstartdll16 1
-%ifdef	__WINDOWS16__
-cprocstart	_%1
-%else
-cprocstart	%1
-%endif
-%endmacro
-
-; Macro to start a C callable near function.
-
-%imacro cprocnear 1
-%push cproc
-	cglobalfunc %1
-%1:
-%define ret	retn
-%ifdef flatmodel
-%stacksize flat
-%else
-%stacksize small
-%endif
-%assign %$localsize 0
-%endmacro
-
-; Macro to start a C callable far function.
-
-%imacro cprocfar 1
-%push cproc
-	cglobalfunc %1
-%1:
-%define ret	retf
-%ifdef flatmodel
-%stacksize flat
-%else
-%stacksize large
-%endif
-%assign %$localsize 0
-%endmacro
-
-; Macro to end a C function
-
-%imacro cprocend 0
-%pop
-%endmacro
-
-; Macros for entering and exiting C callable functions. Note that we must
-; always save and restore the SI and DI registers for C functions, and for
-; 32 bit C functions we also need to save and restore EBX and clear the
-; direction flag.
-
-%imacro enter_c 0
-		push    _bp
-		mov     _bp,_sp
-%ifnidn	%$localsize,0
-		sub		_sp,%$localsize
-%endif
-%ifdef	flatmodel
-		push	ebx
-%endif
-		push	_si
-		push	_di
-%endmacro
-
-%imacro leave_c 0
-		pop		_di
-		pop		_si
-%ifdef	flatmodel
-		pop		ebx
-		cld
-%endif
-%ifnidn %$localsize,0
-		mov     _sp,_bp
-%endif
-		pop     _bp
-%endmacro
-
-%imacro   use_ebx 0
-%ifdef flatmodel
-		push    ebx
-%endif
-%endmacro
-
-%imacro   unuse_ebx 0
-%ifdef flatmodel
-		pop     ebx
-%endif
-%endmacro
-
-; Macros for saving and restoring the value of DS,ES,FS,GS when it is to
-; be used in assembly routines. This evaluates to nothing in the flat memory
-; model, but is saves and restores DS in the large memory model.
-
-%imacro	use_ds 0
-%ifndef flatmodel
-		push	ds
-%endif
-%endmacro
-
-%imacro	unuse_ds 0
-%ifndef flatmodel
-		pop		ds
-%endif
-%endmacro
-
-%imacro	use_es 0
-%ifndef flatmodel
-		push	es
-%endif
-%endmacro
-
-%imacro	unuse_es 0
-%ifndef flatmodel
-		pop		es
-%endif
-%endmacro
-
-; Macros for loading the address of a data pointer into a segment and
-; index register pair. The %imacro explicitly loads DS or ES in the 16 bit
-; memory model, or it simply loads the offset into the register in the flat
-; memory model since DS and ES always point to all addressable memory. You
-; must use the correct _REG (ie: _BX) %imacros for documentation purposes.
-
-%imacro	_lds	2
-%ifdef flatmodel
-		mov     %1,%2
-%else
-		lds		%1,%2
-%endif
-%endmacro
-
-%imacro   _les	2
-%ifdef flatmodel
-		mov     %1,%2
-%else
-		les		%1,%2
-%endif
-%endmacro
-
-; Macros for adding and subtracting a value from registers. Two value are
-; provided, one for 16 bit modes and another for 32 bit modes (the extended
-; register is used in 32 bit modes).
-
-%imacro   _add	3
-%ifdef flatmodel
-		add		e%1, %3
-%else
-		add		%1, %2
-%endif
-%endmacro
-
-%imacro	_sub	3
-%ifdef flatmodel
-		sub		e%1, %3
-%else
-		sub		%1, %2
-%endif
-%endmacro
-
-; Macro to clear the high order word for the 32 bit extended registers.
-; This is used to convert an unsigned 16 bit value to an unsigned 32 bit
-; value, and will evaluate to nothing in 16 bit modes.
-
-%imacro	clrhi	1
-%ifdef	flatmodel
-		movzx	e%1,%1
-%endif
-%endmacro
-
-%imacro	sgnhi	1
-%ifdef	flatmodel
-		movsx	e%1,%1
-%endif
-%endmacro
-
-; Macro to load an extended register with an integer value in either mode
-
-%imacro	loadint	2
-%ifdef flatmodel
-		mov		e%1,%2
-%else
-		xor		e%1,e%1
-		mov     %1,%2
-%endif
-%endmacro
-
-; Macros to load and store integer values with string instructions
-
-%imacro	LODSINT 0
-%ifdef flatmodel
-		lodsd
-%else
-		lodsw
-%endif
-%endmacro
-
-%imacro	STOSINT	0
-%ifdef flatmodel
-		stosd
-%else
-		stosw
-%endif
-%endmacro
-
-; Macros to provide resb, resw, resd compatibility with NASM
-
-%imacro	dclb 1
-times %1 db 0
-%endmacro
-
-%imacro	dclw 1
-times %1 dw 0
-%endmacro
-
-%imacro	dcld 1
-times %1 dd 0
-%endmacro
-
-; macros to declare assembler function stubs for function structures
-
-%imacro	BEGIN_STUBS_DEF	2
-begdataseg  _STUBS
-%ifdef	__NOU_VAR__
-extern %1
-%define	STUBS_START	%1
-%else
-extern _%1
-%define	STUBS_START	_%1
-%endif
-enddataseg  _STUBS
-begcodeseg  _STUBS
-%assign off %2
-%endmacro
-
-%imacro   DECLARE_STUB	1
-%ifdef	__NOU__
-		global %1
-%1:
-%else
-		global _%1
-_%1:
-%endif
-		jmp     [DWORD STUBS_START+off]
-%assign off off+4
-%endmacro
-
-%imacro DECLARE_STDCALL 2
-%ifdef	STDCALL_MANGLE
-		global _%1@%2
-_%1@%2:
-%else
-%ifdef __GNUC__
-		global _%1
-_%1:
-%else
-		global %1
-%1:
-%endif
-%endif
-		jmp     [DWORD STUBS_START+off]
-%assign off off+4
-%endmacro
-
-%imacro   END_STUBS_DEF 0
-endcodeseg  _STUBS
-%endmacro
-
-; macros to declare assembler import stubs for binary loadable drivers
-
-%imacro	BEGIN_IMPORTS_DEF	1
-BEGIN_STUBS_DEF	%1,4
-%endmacro
-
-%imacro   DECLARE_IMP	1
-DECLARE_STUB	%1
-%endmacro
-
-%imacro   END_IMPORTS_DEF 0
-END_STUBS_DEF
-%endmacro
-
-else	; __NASM_MAJOR__
-
-;============================================================================
-; Macro package when compiling with TASM.
-;============================================================================
-
-; Turn off underscores for globals if disabled for all externals
-
-ifdef	__NOU__
-__NOU_VAR__			= 1
-endif
-
-; Define the __WINDOWS__ symbol if we are compiling for any Windows
-; environment
-
-ifdef	__WINDOWS16__
-__WINDOWS__ 		= 1
-endif
-ifdef	__WINDOWS32__
-__WINDOWS__ 		= 1
-__WINDOWS32_386__ 	= 1
-endif
-ifdef	__WIN386__
-__WINDOWS__ 		= 1
-__WINDOWS32_386__ 	= 1
-endif
-ifdef	__VXD__
-__WINDOWS__ 		= 1
-__WINDOWS32_386__ 	= 1
-		MASM
-		.386
-		NO_SEGMENTS	= 1
-		include	vmm.inc			; IGNORE DEPEND
-		include vsegment.inc    ; IGNORE DEPEND
-		IDEAL
-endif
-
-; Macros for accessing 'generic' registers
-
-ifdef   __FLAT__
-		_ax			EQU	eax		; EAX is used for accumulator
-		_bx			EQU	ebx		; EBX is used for accumulator
-		_cx        	EQU ecx     ; ECX is used for looping
-		_dx			EQU	edx		; EDX is used for data register
-		_si			EQU	esi		; ESI is the source index register
-		_di			EQU	edi		; EDI is the destination index register
-		_bp			EQU	ebp		; EBP is used for base pointer register
-		_sp			EQU	esp		; ESP is used for stack pointer register
-		_es			EQU			; ES and DS are the same in 32 bit PM
-		typedef UCHAR BYTE		; Size of a character
-		typedef USHORT WORD		; Size of a short
-		typedef UINT DWORD		; Size of an integer
-		typedef ULONG DWORD		; Size of a long
-		typedef BOOL DWORD      ; Size of a boolean
-		typedef DPTR DWORD		; Size of a data pointer
-		typedef FDPTR FWORD		; Size of a far data pointer
-		typedef	NDPTR DWORD		; Size of a near data pointer
-		typedef CPTR DWORD		; Size of a code pointer
-		typedef FCPTR FWORD		; Size of a far code pointer
-		typedef NCPTR DWORD		; Size of a near code pointer
-		typedef	DUINT DWORD		; Declare a integer variable
-		FPTR        EQU NEAR	; Distance for function pointers
-		intsize		=	4		; Size of an integer
-		flatmodel	=	1		; This is a flat memory model
-		P386                    ; Turn on 386 code generation
-		MODEL       FLAT        ; Set up for 32 bit simplified FLAT model
-else
-		_ax			EQU	ax		; AX is used for accumulator
-		_bx			EQU	bx		; BX is used for accumulator
-		_cx        	EQU cx     	; CX is used for looping
-		_dx			EQU	dx		; DX is used for data register
-		_si			EQU	si		; SI is the source index register
-		_di			EQU	di		; DI is the destination index register
-		_bp			EQU	bp		; BP is used for base pointer register
-		_sp			EQU	sp		; SP is used for stack pointer register
-		_es			EQU es:		; ES is used for segment override
-		typedef UCHAR BYTE      ; Size of a character
-		typedef USHORT WORD		; Size of a short
-		typedef UINT WORD		; Size of an integer
-		typedef ULONG DWORD		; Size of a long
-		typedef BOOL WORD		; Size of a boolean
-		typedef DPTR DWORD		; Size of a data pointer
-		typedef FDPTR DWORD		; Size of a far data pointer
-		typedef	NDPTR WORD		; Size of a near data pointer
-		typedef CPTR DWORD		; Size of a code pointer
-		typedef FCPTR DWORD		; Size of a far code pointer
-		typedef NCPTR WORD		; Size of a near code pointer
-		typedef	DUINT WORD		; Declare a integer variable
-		FPTR        EQU FAR		; Distance for function pointers
-		intsize		=	2		; Size of an integer
-		P386					; Turn on 386 code generation
-endif
-        invert      EQU not
-
-; Provide a typedef for real floating point numbers
-
-ifdef	DOUBLE
-typedef	REAL	QWORD
-typedef	DREAL	QWORD
-else
-typedef	REAL	DWORD
-typedef	DREAL	DWORD
-endif
-
-; Macros to access the floating point stack registers to convert them
-; from NASM style to TASM style
-
-st0			EQU		st(0)
-st1			EQU		st(1)
-st2			EQU		st(2)
-st3			EQU		st(3)
-st4			EQU		st(4)
-st5			EQU		st(5)
-st6			EQU		st(6)
-st7			EQU		st(7)
-st8			EQU		st(8)
-
-; Boolean truth values (same as those in debug.h)
-
-ifndef	__VXD__
-False		=		0
-True		=		1
-No			=		0
-Yes			=		1
-Yes			=		1
-endif
-
-; Macros for the _DATA data segment. This segment contains initialised data.
-
-MACRO   begdataseg name
-ifdef	__VXD__
-		MASM
-VXD_LOCKED_DATA_SEG
-		IDEAL
-else
-ifdef   flatmodel
-		DATASEG
-else
-SEGMENT _DATA DWORD PUBLIC USE16 'DATA'
-endif
-endif
-ENDM
-
-MACRO   enddataseg name
-ifdef	__VXD__
-		MASM
-VXD_LOCKED_DATA_ENDS
-		IDEAL
-else
-ifndef  flatmodel
-ENDS    _DATA
-endif
-endif
-ENDM
-
-; Macro for the main code segment.
-
-MACRO   begcodeseg name
-ifdef	__VXD__
-		MASM
-VXD_LOCKED_CODE_SEG
-		IDEAL
-else
-ifdef   flatmodel
-		CODESEG
-		ASSUME  CS:FLAT,DS:FLAT,SS:FLAT
-else
-SEGMENT &name&_TEXT PARA PUBLIC USE16 'CODE'
-		ASSUME CS:&name&_TEXT,DS:_DATA
-endif
-endif
-ENDM
-
-; Macro for a near code segment
-
-MACRO   begcodeseg_near
-ifdef   flatmodel
-		CODESEG
-		ASSUME  CS:FLAT,DS:FLAT,SS:FLAT
-else
-SEGMENT _TEXT PARA PUBLIC USE16 'CODE'
-		ASSUME CS:_TEXT,DS:_DATA
-endif
-ENDM
-
-MACRO   endcodeseg name
-ifdef	__VXD__
-		MASM
-VXD_LOCKED_CODE_ENDS
-		IDEAL
-else
-ifndef  flatmodel
-ENDS    &name&_TEXT
-endif
-endif
-ENDM
-
-MACRO   endcodeseg_near
-ifndef  flatmodel
-ENDS    _TEXT
-endif
-ENDM
-
-; Macro to be invoked at the start of all modules to set up segments for
-; later use.
-
-MACRO   header name
-begdataseg name
-enddataseg name
-ENDM
-
-; Macro for an extern C symbol. If the C compiler requires leading
-; underscores, then the underscores are added to the symbol names, otherwise
-; they are left off. The symbol name is referenced in the assembler code
-; using the non-underscored symbol name.
-
-MACRO   cextern	name,size
-ifdef	__NOU_VAR__
-		EXTRN	name:size
-else
-		EXTRN	_&name&:size
-name	EQU		_&name&
-endif
-ENDM
-
-MACRO   cexternfunc	name,size
-ifdef	__NOU__
-		EXTRN	name:size
-else
-		EXTRN	_&name&:size
-name	EQU		_&name&
-endif
-ENDM
-
-MACRO   stdexternfunc	name,args,size
-ifdef	STDCALL_MANGLE
-		EXTRN	_&name&@&num_args&:size
-name	EQU		_&name&@&num_args
-else
-		EXTRN	name:size
-endif
-ENDM
-
-; Macro for a public C symbol. If the C compiler requires leading
-; underscores, then the underscores are added to the symbol names, otherwise
-; they are left off. The symbol name is referenced in the assembler code
-; using the non-underscored symbol name.
-
-MACRO	cpublic name
-ifdef	__NOU_VAR__
-name:
-		PUBLIC	name
-else
-_&name&:
-		PUBLIC	_&name&
-name	EQU		_&name&
-endif
-ENDM
-
-; Macro for an global C symbol. If the C compiler requires leading
-; underscores, then the underscores are added to the symbol names, otherwise
-; they are left off. The symbol name is referenced in the assembler code
-; using the non-underscored symbol name.
-
-MACRO	cglobal name
-ifdef	__NOU_VAR__
-		PUBLIC	name
-else
-		PUBLIC	_&name&
-name	EQU		_&name&
-endif
-ENDM
-
-; Macro for an global C function symbol. If the C compiler requires leading
-; underscores, then the underscores are added to the symbol names, otherwise
-; they are left off. The symbol name is referenced in the assembler code
-; using the non-underscored symbol name.
-
-MACRO	cglobalfunc name
-ifdef	__NOU__
-		PUBLIC	name
-else
-		PUBLIC	_&name&
-name	EQU		_&name&
-endif
-ENDM
-
-; Macro to start a C callable function. This will be a far function for
-; 16-bit code, and a near function for 32-bit code.
-
-MACRO   cprocstatic name       	; Set up model independant private proc
-ifdef flatmodel
-PROC   	name NEAR
-else
-PROC    name FAR
-endif
-LocalSize	= 0
-ENDM
-
-MACRO   cprocstart name        	; Set up model independant proc
-ifdef flatmodel
-ifdef	__NOU__
-PROC   	name NEAR
-else
-PROC   	_&name& NEAR
-endif
-else
-ifdef	__NOU__
-PROC    name FAR
-else
-PROC    _&name& FAR
-endif
-endif
-LocalSize	= 0
-		cglobalfunc	name
-ENDM
-
-MACRO   cprocnear name         	; Set up near proc
-ifdef	__NOU__
-PROC    name NEAR
-else
-PROC    _&name& NEAR
-endif
-LocalSize	= 0
-		cglobalfunc	name
-ENDM
-
-MACRO   cprocfar name           ; Set up far proc
-ifdef	__NOU__
-PROC    name FAR
-else
-PROC    _&name& FAR
-endif
-LocalSize	= 0
-		cglobalfunc	name
-ENDM
-
-MACRO   cprocend	           ; End procedure macro
-ENDP
-ENDM
-
-; This macro sets up a procedure to be exported from a 16 bit DLL. Since the
-; calling conventions are always _far _pascal for 16 bit DLL's, we actually
-; rename this routine with an extra underscore with 'C' calling conventions
-; and a small DLL stub will be provided by the high level code to call the
-; assembler routine.
-
-MACRO   cprocstartdll16 name
-ifdef	__WINDOWS16__
-cprocstart	_&name&
-else
-cprocstart	name
-endif
-ENDM
-
-; Macros for entering and exiting C callable functions. Note that we must
-; always save and restore the SI and DI registers for C functions, and for
-; 32 bit C functions we also need to save and restore EBX and clear the
-; direction flag.
-
-MACRO	save_c_regs
-ifdef	flatmodel
-		push	ebx
-endif
-		push	_si
-		push	_di
-ENDM
-
-MACRO	enter_c
-		push    _bp
-		mov     _bp,_sp
-	IFDIFI	<LocalSize>,<0>
-		sub		_sp,LocalSize
-	ENDIF
-		save_c_regs
-ENDM
-
-MACRO	restore_c_regs
-		pop		_di
-		pop		_si
-ifdef	flatmodel
-		pop		ebx
-endif
-ENDM
-
-MACRO	leave_c
-		restore_c_regs
-		cld
-	IFDIFI	<LocalSize>,<0>
-		mov     _sp,_bp
-	ENDIF
-		pop     _bp
-ENDM
-
-MACRO   use_ebx
-ifdef flatmodel
-		push    ebx
-endif
-ENDM
-
-MACRO   unuse_ebx
-ifdef flatmodel
-		pop     ebx
-endif
-ENDM
-
-; Macros for saving and restoring the value of DS,ES,FS,GS when it is to
-; be used in assembly routines. This evaluates to nothing in the flat memory
-; model, but is saves and restores DS in the large memory model.
-
-MACRO	use_ds
-ifndef flatmodel
-		push	ds
-endif
-ENDM
-
-MACRO	unuse_ds
-ifndef flatmodel
-		pop		ds
-endif
-ENDM
-
-MACRO	use_es
-ifndef flatmodel
-		push	es
-endif
-ENDM
-
-MACRO	unuse_es
-ifndef flatmodel
-		pop		es
-endif
-ENDM
-
-; Macros for loading the address of a data pointer into a segment and
-; index register pair. The macro explicitly loads DS or ES in the 16 bit
-; memory model, or it simply loads the offset into the register in the flat
-; memory model since DS and ES always point to all addressable memory. You
-; must use the correct _REG (ie: _BX) macros for documentation purposes.
-
-MACRO	_lds	reg, addr
-ifdef flatmodel
-		mov     reg,addr
-else
-		lds		reg,addr
-endif
-ENDM
-
-MACRO   _les	reg, addr
-ifdef flatmodel
-		mov     reg,addr
-else
-		les		reg,addr
-endif
-ENDM
-
-; Macros for adding and subtracting a value from registers. Two value are
-; provided, one for 16 bit modes and another for 32 bit modes (the extended
-; register is used in 32 bit modes).
-
-MACRO   _add	reg, val16, val32
-ifdef flatmodel
-		add		e&reg&, val32
-else
-		add		reg, val16
-endif
-ENDM
-
-MACRO	_sub	reg, val16, val32
-ifdef flatmodel
-		sub		e&reg&, val32
-else
-		sub		reg, val16
-endif
-ENDM
-
-; Macro to clear the high order word for the 32 bit extended registers.
-; This is used to convert an unsigned 16 bit value to an unsigned 32 bit
-; value, and will evaluate to nothing in 16 bit modes.
-
-MACRO	clrhi	reg
-ifdef	flatmodel
-		movzx	e&reg&,reg
-endif
-ENDM
-
-MACRO	sgnhi	reg
-ifdef	flatmodel
-		movsx	e&reg&,reg
-endif
-ENDM
-
-; Macro to load an extended register with an integer value in either mode
-
-MACRO	loadint	reg,val
-ifdef flatmodel
-		mov		e&reg&,val
-else
-		xor		e&reg&,e&reg&
-		mov     reg,val
-endif
-ENDM
-
-; Macros to load and store integer values with string instructions
-
-MACRO	LODSINT
-ifdef flatmodel
-		lodsd
-else
-		lodsw
-endif
-ENDM
-
-MACRO	STOSINT
-ifdef flatmodel
-		stosd
-else
-		stosw
-endif
-ENDM
-
-; Macros to provide resb, resw, resd compatibility with NASM
-
-MACRO	dclb	count
-db	count dup (0)
-ENDM
-
-MACRO	dclw	count
-dw	count dup (0)
-ENDM
-
-MACRO	dcld	count
-dd	count dup (0)
-ENDM
-
-; Macros to provide resb, resw, resd compatibility with NASM
-
-MACRO	resb	count
-db	count dup (?)
-ENDM
-
-MACRO	resw	count
-dw	count dup (?)
-ENDM
-
-MACRO	resd	count
-dd	count dup (?)
-ENDM
-
-; Macros to declare assembler stubs for function structures
-
-MACRO	BEGIN_STUBS_DEF	name, firstOffset
-begdataseg  _STUBS
-ifdef	__NOU_VAR__
-		EXTRN	name:DWORD
-STUBS_START	=   name
-else
-		EXTRN	_&name&:DWORD
-name	EQU		_&name&
-STUBS_START	=   _&name
-endif
-enddataseg  _STUBS
-begcodeseg  _STUBS
-off = firstOffset
-ENDM
-
-MACRO   DECLARE_STUB	name
-ifdef	__NOU__
-name:
-		PUBLIC  name
-else
-_&name:
-		PUBLIC  _&name
-endif
-		jmp     [DWORD STUBS_START+off]
-off = off + 4
-ENDM
-
-MACRO   DECLARE_STDCALL	name,num_args
-ifdef	STDCALL_MANGLE
-_&name&@&num_args&:
-		PUBLIC  _&name&@&num_args&
-else
-name:
-		PUBLIC  name
-endif
-		jmp     [DWORD STUBS_START+off]
-off = off + 4
-ENDM
-
-MACRO   END_STUBS_DEF
-endcodeseg  _STUBS
-ENDM
-
-MACRO	BEGIN_IMPORTS_DEF	name
-BEGIN_STUBS_DEF	name,4
-ENDM
-
-MACRO   DECLARE_IMP	name
-DECLARE_STUB	name
-ENDM
-
-MACRO   END_IMPORTS_DEF
-END_STUBS_DEF
-ENDM
-
-endif
--- a/nasmbuild/nasm-2.13rc9/misc/xcrcgen.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-/*
- * Produce a "generalized CRC" table.  Assumes a platform with
- * /dev/urandom -- otherwise reimplement get_random_byte().
- */
-
-#include <errno.h>
-#include <fcntl.h>
-#include <inttypes.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-static uint8_t get_random_byte(void)
-{
-    static int fd = -1;
-    uint8_t buf;
-    int rv;
-
-    if (fd < 0)
-	fd = open("/dev/urandom", O_RDONLY);
-
-    do {
-	errno = 0;
-	rv = read(fd, &buf, 1);
-	if (rv < 1 && errno != EAGAIN)
-	    abort();
-    } while (rv < 1);
-
-    return buf;
-}
-
-static void random_permute(uint8_t *buf)
-{
-    int i, j, k;
-    int m;
-
-    for (i = 0; i < 256; i++)
-	buf[i] = i;
-
-    m = 255;
-    for (i = 255; i > 0; i--) {
-	if (i <= (m >> 1))
-	    m >>= 1;
-	do {
-	    j = get_random_byte() & m;
-	} while (j > i);
-	k = buf[i];
-	buf[i] = buf[j];
-	buf[j] = k;
-    }
-}
-
-static void xcrc_table(uint64_t *buf)
-{
-    uint8_t perm[256];
-    int i, j;
-
-    memset(buf, 0, 8*256);	/* Make static checkers happy */
-
-    for (i = 0; i < 8; i++) {
-	random_permute(perm);
-	for (j = 0; j < 256; j++)
-	    buf[j] = (buf[j] << 8) | perm[j];
-    }
-}
-
-int main(void)
-{
-    int i;
-    uint64_t buf[256];
-
-    xcrc_table(buf);
-
-    for (i = 0; i < 256; i++) {
-	printf("%016"PRIx64"\n", buf[i]);
-    }
-
-    return 0;
-}
--- a/nasmbuild/nasm-2.13rc9/nasm.1	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,429 +0,0 @@
-'\" t
-.\"     Title: nasm
-.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 03/28/2017
-.\"    Manual: The Netwide Assembler Project
-.\"    Source: NASM
-.\"  Language: English
-.\"
-.TH "NASM" "1" "03/28/2017" "NASM" "The Netwide Assembler Project"
-.\" -----------------------------------------------------------------
-.\" * Define some portability stuff
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" http://bugs.debian.org/507673
-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-.SH "NAME"
-nasm \- the Netwide Assembler, a portable 80x86 assembler
-.SH "SYNOPSIS"
-.sp
-\fBnasm\fR [\fB\-@\fR response file] [\fB\-f\fR format] [\fB\-o\fR outfile] [\fB\-l\fR listfile] [\fIoptions\fR\&...] filename
-.SH "DESCRIPTION"
-.sp
-The \fBnasm\fR command assembles the file \fIfilename\fR and directs output to the file \fIoutfile\fR if specified\&. If \fIoutfile\fR is not specified, \fBnasm\fR will derive a default output file name from the name of its input file, usually by appending \(oq\&.o\(cq or \(oq\&.obj\(cq, or by removing all extensions for a raw binary file\&. Failing that, the output file name will be \(oqnasm\&.out\(cq\&.
-.SH "OPTIONS"
-.PP
-\fB\-@\fR \fIfilename\fR
-.RS 4
-Causes
-\fBnasm\fR
-to process options from filename as if they were included on the command line\&.
-.RE
-.PP
-\fB\-a\fR
-.RS 4
-Causes
-\fBnasm\fR
-to assemble the given input file without first applying the macro preprocessor\&.
-.RE
-.PP
-\fB\-D\fR|\fB\-d\fR \fImacro[=value]\fR
-.RS 4
-Pre\-defines a single\-line macro\&.
-.RE
-.PP
-\fB\-E\fR|\fB\-e\fR
-.RS 4
-Causes
-\fBnasm\fR
-to preprocess the given input file, and write the output to
-\fIstdout\fR
-(or the specified output file name), and not actually assemble anything\&.
-.RE
-.PP
-\fB\-f\fR \fIformat\fR
-.RS 4
-Specifies the output file format\&. To see a list of valid output formats, use the
-\fB\-hf\fR
-option\&.
-.RE
-.PP
-\fB\-F\fR \fIformat\fR
-.RS 4
-Specifies the debug information format\&. To see a list of valid output formats, use the
-\fB\-y\fR
-option (for example
-\fB\-felf \-y\fR)\&.
-.RE
-.PP
-\fB\-g\fR
-.RS 4
-Causes
-\fBnasm\fR
-to generate debug information\&.
-.RE
-.PP
-\fB\-g\fR\fIformat\fR
-.RS 4
-Equivalent to
-\fB\-g \-F\fR\fI format\fR\&.
-.RE
-.PP
-\fB\-h\fR
-.RS 4
-Causes
-\fBnasm\fR
-to exit immediately, after giving a summary of its invocation options\&.
-.RE
-.PP
-\fB\-hf\fR
-.RS 4
-Same as
-\fB\-h\fR
-, but also lists all valid output formats\&.
-.RE
-.PP
-\fB\-I\fR|\fB\-i\fR \fIdirectory\fR
-.RS 4
-Adds a directory to the search path for include files\&. The directory specification must include the trailing slash, as it will be directly prepended to the name of the include file\&.
-.RE
-.PP
-\fB\-l\fR \fIlistfile\fR
-.RS 4
-Causes an assembly listing to be directed to the given file, in which the original source is displayed on the right hand side (plus the source for included files and the expansions of multi\-line macros) and the generated code is shown in hex on the left\&.
-.RE
-.PP
-\fB\-M\fR
-.RS 4
-Causes
-\fBnasm\fR
-to output Makefile\-style dependencies to stdout; normal output is suppressed\&.
-.RE
-.PP
-\fB\-MG\fR \fIfile\fR
-.RS 4
-Same as
-\fB\-M\fR
-but assumes that missing Makefile dependecies are generated and added to dependency list without a prefix\&.
-.RE
-.PP
-\fB\-MF\fR \fIfile\fR
-.RS 4
-Output Makefile\-style dependencies to the specified file\&.
-.RE
-.PP
-\fB\-MD\fR \fIfile\fR
-.RS 4
-Same as a combination of
-\fB\-M\fR
-and
-\fB\-MF\fR
-options\&.
-.RE
-.PP
-\fB\-MT\fR \fIfile\fR
-.RS 4
-Override the default name of the dependency target dependency target name\&. This is normally the same as the output filename, specified by the
-\fB\-o\fR
-option\&.
-.RE
-.PP
-\fB\-MQ\fR \fIfile\fR
-.RS 4
-The same as
-\fB\-MT\fR
-except it tries to quote characters that have special meaning in Makefile syntax\&. This is not foolproof, as not all characters with special meaning are quotable in Make\&.
-.RE
-.PP
-\fB\-MP\fR
-.RS 4
-Emit phony target\&.
-.RE
-.PP
-\fB\-O\fR \fInumber\fR
-.RS 4
-Optimize branch offsets\&.
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-\fB\-O0\fR: No optimization
-.RE
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-\fB\-O1\fR: Minimal optimization
-.RE
-.sp
-.RS 4
-.ie n \{\
-\h'-04'\(bu\h'+03'\c
-.\}
-.el \{\
-.sp -1
-.IP \(bu 2.3
-.\}
-\fB\-Ox\fR: Multipass optimization (default)
-.RE
-.RE
-.PP
-\fB\-o\fR \fIoutfile\fR
-.RS 4
-Specifies a precise name for the output file, overriding
-\fBnasm\fR\*(Aqs default means of determining it\&.
-.RE
-.PP
-\fB\-P\fR|\fB\-p\fR \fIfile\fR
-.RS 4
-Specifies a file to be pre\-included, before the main source file starts to be processed\&.
-.RE
-.PP
-\fB\-s\fR
-.RS 4
-Causes
-\fBnasm\fR
-to send its error messages and/or help text to stdout instead of stderr\&.
-.RE
-.PP
-\fB\-t\fR
-.RS 4
-Causes
-\fBnasm\fR
-to assemble in SciTech TASM compatible mode\&.
-.RE
-.PP
-\fB\-U\fR|\fB\-u\fR \fImacro\fR
-.RS 4
-Undefines a single\-line macro\&.
-.RE
-.PP
-\fB\-v\fR
-.RS 4
-Causes
-\fBnasm\fR
-to exit immediately, after displaying its version number\&.
-.RE
-.PP
-*\-W[no\-]foo\*(Aq
-.RS 4
-Causes
-\fBnasm\fR
-to enable or disable certain classes of warning messages, in gcc\-like style, for example
-\fB\-Worphan\-labels\fR
-or
-\fB\-Wno\-orphan\-labels\fR\&.
-.RE
-.PP
-\fB\-w\fR\fI[+\-]foo\fR
-.RS 4
-Causes
-\fBnasm\fR
-to enable or disable certain classes of warning messages, for example
-\fB\-w+orphan\-labels\fR
-or
-\fB\-w\-macro\-params\fR\&.
-.RE
-.PP
-\fB\-X\fR \fIformat\fR
-.RS 4
-Specifies error reporting format (gnu or vc)\&.
-.RE
-.PP
-\fB\-y\fR
-.RS 4
-Causes
-\fBnasm\fR
-to list supported debug formats\&.
-.RE
-.PP
-\fB\-Z\fR \fIfilename\fR
-.RS 4
-Causes
-\fBnasm\fR
-to redirect error messages to
-\fIfilename\fR\&. This option exists to support operating systems on which stderr is not easily redirected\&.
-.RE
-.PP
-\-\-prefix, \-\-postfix
-.RS 4
-Prepend or append (respectively) the given argument to all global or extern variables\&.
-.RE
-.SH "SYNTAX"
-.sp
-This man page does not fully describe the syntax of \fBnasm\fR\*(Aqs assembly language, but does give a summary of the differences from other assemblers\&.
-.sp
-\fIRegisters\fR have no leading \(oq%\(cq sign, unlike \fBgas\fR, and floating\-point stack registers are referred to as \fIst0\fR, \fIst1\fR, and so on\&.
-.sp
-\fIFloating\-point instructions\fR may use either the single\-operand form or the double\&. A \fITO\fR keyword is provided; thus, one could either write
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-fadd st0,st1
-fadd st1,st0
-.fi
-.if n \{\
-.RE
-.\}
-.sp
-or one could use the alternative single\-operand forms
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-fadd st1
-fadd to st1
-.fi
-.if n \{\
-.RE
-.\}
-.sp
-\fIUninitialised storage\fR is reserved using the \fIRESB\fR, \fIRESW\fR, \fIRESD\fR, \fIRESQ\fR, \fIREST\fR and \fIRESO\fR pseudo\-opcodes, each taking one parameter which gives the number of bytes, words, doublewords, quadwords or ten\-byte words to reserve\&.
-.sp
-\fIRepetition\fR of data items is not done by the \fIDUP\fR keyword as seen in DOS assemblers, but by the use of the \fITIMES\fR prefix, like this:
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-message: times 3 db \*(Aqabc\*(Aq
-         times 64\-$+message db 0
-.fi
-.if n \{\
-.RE
-.\}
-.sp
-which defines the string abcabcabc, followed by the right number of zero bytes to make the total length up to 64 bytes\&.
-.sp
-\fISymbol references\fR are always understood to be immediate (i\&.e\&. the address of the symbol), unless square brackets are used, in which case the contents of the memory location are used\&. Thus:
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-mov ax,wordvar
-.fi
-.if n \{\
-.RE
-.\}
-.sp
-loads AX with the address of the variable wordvar, whereas
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-mov ax,[wordvar]
-mov ax,[wordvar+1]
-mov ax,[es:wordvar+bx]
-.fi
-.if n \{\
-.RE
-.\}
-.sp
-all refer to the \fIcontents\fR of memory locations\&. The syntaxes
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-mov ax,es:wordvar[bx]
-es mov ax,wordvar[1]
-.fi
-.if n \{\
-.RE
-.\}
-.sp
-are not legal at all, although the use of a segment register name as an instruction prefix is valid, and can be used with instructions such as \fILODSB\fR which can\(cqt be overridden any other way\&.
-.sp
-\fIConstants\fR may be expressed numerically in most formats: a trailing H, Q or B denotes hex, octal or binary respectively, and a leading \(oq0x\(cq or \(oq$\(cq denotes hex as well\&. Leading zeros are not treated specially at all\&. Character constants may be enclosed in single or double quotes; there is no escape character\&. The ordering is little\-endian (reversed), so that the character constant \fI\*(Aqabcd\fR\*(Aq denotes 0x64636261 and not 0x61626364\&.
-.sp
-Local labels begin with a period, and their \(oqlocality\(cq is granted by the assembler prepending the name of the previous non\-local symbol\&. Thus declaring a label \(oq\&.loop\(cq after a label \(oqlabel\(cq has actually defined a symbol called \(oqlabel\&.loop\(cq\&.
-.SH "DIRECTIVES"
-.sp
-\fISECTION\fR \fIname\fR or \fISEGMENT\fR \fIname\fR causes \fBnasm\fR to direct all following code to the named section\&. Section names vary with output file format, although most formats support the names \fI\&.text\fR, \fI\&.data\fR and \fI\&.bss\fR\&. (The exception is the \fIobj\fR format, in which all segments are user\-definable\&.)
-.sp
-\fIABSOLUTE\fR \fIaddress\fR causes \fBnasm\fR to position its notional assembly point at an absolute address: so no code or data may be generated, but you can use \fIRESB\fR, \fIRESW\fR and \fIRESD\fR to move the assembly point further on, and you can define labels\&. So this directive may be used to define data structures\&. When you have finished doing absolute assembly, you must issue another \fISECTION\fR directive to return to normal assembly\&.
-.sp
-\fIBITS\fR \fI16\fR, \fIBITS\fR \fI32\fR or \fIBITS\fR \fI64\fR switches the default processor mode for which \fBnasm\fR is generating code: it is equivalent to \fIUSE16\fR or \fIUSE32\fR in DOS assemblers\&.
-.sp
-\fIEXTERN\fR \fIsymbol\fR and \fIGLOBAL\fR \fIsymbol\fR import and export symbol definitions, respectively, from and to other modules\&. Note that the \fIGLOBAL\fR directive must appear before the definition of the symbol it refers to\&.
-.sp
-\fISTRUC\fR \fIstrucname\fR and \fIENDSTRUC\fR, when used to bracket a number of \fIRESB\fR, \fIRESW\fR or similar instructions, define a data structure\&. In addition to defining the offsets of the structure members, the construct also defines a symbol for the size of the structure, which is simply the structure name with \fIsize\fR tacked on to the end\&.
-.SH "FORMAT-SPECIFIC DIRECTIVES"
-.sp
-\fIORG\fR \fIaddress\fR is used by the \fIbin\fR flat\-form binary output format, and specifies the address at which the output code will eventually be loaded\&.
-.sp
-\fIGROUP\fR \fIgrpname\fR \fIseg1\fR \fIseg2\fR\&... is used by the obj (Microsoft 16\-bit) output format, and defines segment groups\&. This format also uses \fIUPPERCASE\fR, which directs that all segment, group and symbol names output to the object file should be in uppercase\&. Note that the actual assembly is still case sensitive\&.
-.sp
-\fILIBRARY\fR \fIlibname\fR is used by the \fIrdf\fR output format, and causes a dependency record to be written to the output file which indicates that the program requires a certain library in order to run\&.
-.SH "MACRO PREPROCESSOR"
-.sp
-Single\-line macros are defined using the \fI%define\fR or \fI%idefine\fR commands, in a similar fashion to the C preprocessor\&. They can be overloaded with respect to number of parameters, although defining a macro with no parameters prevents the definition of any macro with the same name taking parameters, and vice versa\&. \fI%define\fR defines macros whose names match case\-sensitively, whereas \fI%idefine\fR defines case\-insensitive macros\&.
-.sp
-Multi\-line macros are defined using \fI%macro\fR and \fI%imacro\fR (the distinction is the same as that between \fI%define\fR and \fI%idefine\fR), whose syntax is as follows
-.sp
-.if n \{\
-.RS 4
-.\}
-.nf
-%macro name minprm[\-maxprm][+][\&.nolist] [defaults]
-        <some lines of macro expansion text>
-%endmacro
-.fi
-.if n \{\
-.RE
-.\}
-.sp
-Again, these macros may be overloaded\&. The trailing plus sign indicates that any parameters after the last one get subsumed, with their separating commas, into the last parameter\&. The \fIdefaults\fR part can be used to specify defaults for unspecified macro parameters after \fIminparam\fR\&. \fI%endm\fR is a valid synonym for \fI%endmacro\fR\&.
-.sp
-To refer to the macro parameters within a macro expansion, you use \fI%1\fR, \fI%2\fR and so on\&. You can also enforce that a macro parameter should contain a condition code by using \fI%+1\fR, and you can invert the condition code by using \fI%\-1\fR\&. You can also define a label specific to a macro invocation by prefixing it with a double \(oq%\(cq sign\&.
-.sp
-Files can be included using the \fI%include\fR directive, which works like C\&.
-.sp
-The preprocessor has a \(oqcontext stack\(cq, which may be used by one macro to store information that a later one will retrieve\&. You can push a context on the stack using \fI%push\fR, remove one using \fI%pop\fR, and change the name of the top context (without disturbing any associated definitions) using \fI%repl\fR\&. Labels and \fI%define\fR macros specific to the top context may be defined by prefixing their names with %$, and things specific to the next context down with %$$, and so on\&.
-.sp
-Conditional assembly is done by means of \fI%ifdef\fR, \fI%ifndef\fR, \fI%else\fR and \fI%endif\fR as in C\&. (Except that \fI%ifdef\fR can accept several putative macro names, and will evaluate TRUE if any of them is defined\&.) In addition, the directives \fI%ifctx\fR and \fI%ifnctx\fR can be used to condition on the name of the top context on the context stack\&. The obvious set of \(oqelse\-if\(cq directives, \fI%elifdef\fR, \fI%elifndef\fR, \fI%elifctx\fR and \fI%elifnctx\fR are also supported\&.
-.SH "BUGS"
-.sp
-Please report bugs through the bug tracker function at \m[blue]\fBhttp://nasm\&.us\fR\m[]\&.
-.SH "SEE ALSO"
-.sp
-\fBas\fR(1), \fBld\fR(1)\&.
--- a/nasmbuild/nasm-2.13rc9/nasm.spec	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-# -*- coding: utf-8 -*-
-%define nasm_version 2.13rc9
-Summary: The Netwide Assembler, a portable x86 assembler with Intel-like syntax
-Name: nasm
-Version: 2.12.99.99
-Release: 0
-License: BSD
-Group: Development/Languages
-Source: http://www.nasm.us/pub/nasm/releasebuilds/%{nasm_version}/nasm-%{nasm_version}.tar.xz
-URL: http://www.nasm.us/
-BuildRoot: /tmp/rpm-build-nasm
-Prefix: %{_prefix}
-BuildRequires: perl, asciidoc, xmlto, ghostscript, texinfo
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-
-%package doc
-Summary: Extensive documentation for NASM
-Group: Development/Languages
-BuildRequires: ghostscript, texinfo
-Requires(post): /sbin/install-info
-Requires(preun): /sbin/install-info
-
-%package rdoff
-Summary: Tools for the RDOFF binary format, sometimes used with NASM.
-Group: Development/Tools
-
-%description
-NASM is the Netwide Assembler, a free portable assembler for the Intel
-80x86 microprocessor series, using primarily the traditional Intel
-instruction mnemonics and syntax.
-
-%description doc
-Extensive documentation for the Netwide Assembler, NASM, in HTML,
-info, PostScript and text formats.
-
-%description rdoff
-Tools for the operating-system independent RDOFF binary format, which
-is sometimes used with the Netwide Assembler (NASM).  These tools
-include linker, library manager, loader, and information dump.
-
-%prep
-%setup -q -n nasm-%{nasm_version}
-
-%build
-%configure
-make %{?_smp_mflags} everything
-
-%install
-rm -rf "$RPM_BUILD_ROOT"
-mkdir -p "$RPM_BUILD_ROOT"/%{_bindir}
-mkdir -p "$RPM_BUILD_ROOT"/%{_mandir}/man1
-mkdir -p "$RPM_BUILD_ROOT"/%{_infodir}
-mkdir -p "$RPM_BUILD_ROOT"/usr/tempdoc
-%makeinstall install_everything	docdir="$RPM_BUILD_ROOT"/usr/tempdoc
-cp -a $RPM_BUILD_ROOT/usr/tempdoc/html \
-   $RPM_BUILD_ROOT/usr/tempdoc/nasmdoc.{ps,txt,pdf} .
-gzip -9f nasmdoc.{ps,txt}
-# remove unpackaged files from the buildroot
-rm -rf $RPM_BUILD_ROOT%{_prefix}/tempdoc
-
-%clean
-rm -rf "$RPM_BUILD_ROOT"
-
-%post
-/sbin/install-info %{_infodir}/nasm.info.gz %{_infodir}/dir || :
-
-%preun
-if [ $1 = 0 ]; then
-  /sbin/install-info --delete %{_infodir}/nasm.info.gz %{_infodir}/dir || :
-fi
-
-%files
-%defattr(-,root,root)
-%doc AUTHORS CHANGES README TODO
-%{_bindir}/nasm
-%{_bindir}/ndisasm
-%{_mandir}/man1/nasm.1*
-%{_mandir}/man1/ndisasm.1*
-%{_infodir}/nasm.info*.gz
-
-%files doc
-%defattr(-,root,root)
-%doc html nasmdoc.txt.gz nasmdoc.pdf nasmdoc.ps.gz
-
-%files rdoff
-%defattr(-,root,root)
-%{_bindir}/ldrdf
-%{_bindir}/rdf2bin
-%{_bindir}/rdf2com
-%{_bindir}/rdf2ihx
-%{_bindir}/rdf2ith
-%{_bindir}/rdf2srec
-%{_bindir}/rdfdump
-%{_bindir}/rdflib
-%{_bindir}/rdx
-%{_mandir}/man1/ldrdf.1*
-%{_mandir}/man1/rdf2bin.1*
-%{_mandir}/man1/rdf2com.1*
-%{_mandir}/man1/rdf2ihx.1*
-%{_mandir}/man1/rdf2ith.1*
-%{_mandir}/man1/rdf2srec.1*
-%{_mandir}/man1/rdfdump.1*
-%{_mandir}/man1/rdflib.1*
-%{_mandir}/man1/rdx.1*
--- a/nasmbuild/nasm-2.13rc9/nasm.spec.in	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-# -*- coding: utf-8 -*-
-%define nasm_version @@NASM_VER@@
-Summary: The Netwide Assembler, a portable x86 assembler with Intel-like syntax
-Name: nasm
-Version: @@NASM_MANGLED_VER@@
-Release: 0
-License: BSD
-Group: Development/Languages
-Source: http://www.nasm.us/pub/nasm/releasebuilds/%{nasm_version}/nasm-%{nasm_version}.tar.xz
-URL: http://www.nasm.us/
-BuildRoot: /tmp/rpm-build-nasm
-Prefix: %{_prefix}
-BuildRequires: perl, asciidoc, xmlto, ghostscript, texinfo
-BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-
-%package doc
-Summary: Extensive documentation for NASM
-Group: Development/Languages
-BuildRequires: ghostscript, texinfo
-Requires(post): /sbin/install-info
-Requires(preun): /sbin/install-info
-
-%package rdoff
-Summary: Tools for the RDOFF binary format, sometimes used with NASM.
-Group: Development/Tools
-
-%description
-NASM is the Netwide Assembler, a free portable assembler for the Intel
-80x86 microprocessor series, using primarily the traditional Intel
-instruction mnemonics and syntax.
-
-%description doc
-Extensive documentation for the Netwide Assembler, NASM, in HTML,
-info, PostScript and text formats.
-
-%description rdoff
-Tools for the operating-system independent RDOFF binary format, which
-is sometimes used with the Netwide Assembler (NASM).  These tools
-include linker, library manager, loader, and information dump.
-
-%prep
-%setup -q -n nasm-%{nasm_version}
-
-%build
-%configure
-make %{?_smp_mflags} everything
-
-%install
-rm -rf "$RPM_BUILD_ROOT"
-mkdir -p "$RPM_BUILD_ROOT"/%{_bindir}
-mkdir -p "$RPM_BUILD_ROOT"/%{_mandir}/man1
-mkdir -p "$RPM_BUILD_ROOT"/%{_infodir}
-mkdir -p "$RPM_BUILD_ROOT"/usr/tempdoc
-%makeinstall install_everything	docdir="$RPM_BUILD_ROOT"/usr/tempdoc
-cp -a $RPM_BUILD_ROOT/usr/tempdoc/html \
-   $RPM_BUILD_ROOT/usr/tempdoc/nasmdoc.{ps,txt,pdf} .
-gzip -9f nasmdoc.{ps,txt}
-# remove unpackaged files from the buildroot
-rm -rf $RPM_BUILD_ROOT%{_prefix}/tempdoc
-
-%clean
-rm -rf "$RPM_BUILD_ROOT"
-
-%post
-/sbin/install-info %{_infodir}/nasm.info.gz %{_infodir}/dir || :
-
-%preun
-if [ $1 = 0 ]; then
-  /sbin/install-info --delete %{_infodir}/nasm.info.gz %{_infodir}/dir || :
-fi
-
-%files
-%defattr(-,root,root)
-%doc AUTHORS CHANGES README TODO
-%{_bindir}/nasm
-%{_bindir}/ndisasm
-%{_mandir}/man1/nasm.1*
-%{_mandir}/man1/ndisasm.1*
-%{_infodir}/nasm.info*.gz
-
-%files doc
-%defattr(-,root,root)
-%doc html nasmdoc.txt.gz nasmdoc.pdf nasmdoc.ps.gz
-
-%files rdoff
-%defattr(-,root,root)
-%{_bindir}/ldrdf
-%{_bindir}/rdf2bin
-%{_bindir}/rdf2com
-%{_bindir}/rdf2ihx
-%{_bindir}/rdf2ith
-%{_bindir}/rdf2srec
-%{_bindir}/rdfdump
-%{_bindir}/rdflib
-%{_bindir}/rdx
-%{_mandir}/man1/ldrdf.1*
-%{_mandir}/man1/rdf2bin.1*
-%{_mandir}/man1/rdf2com.1*
-%{_mandir}/man1/rdf2ihx.1*
-%{_mandir}/man1/rdf2ith.1*
-%{_mandir}/man1/rdf2srec.1*
-%{_mandir}/man1/rdfdump.1*
-%{_mandir}/man1/rdflib.1*
-%{_mandir}/man1/rdx.1*
--- a/nasmbuild/nasm-2.13rc9/nasm.txt	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,306 +0,0 @@
-nasm(1)
-=======
-:doctype:	manpage
-:man source:	NASM
-:man manual:	The Netwide Assembler Project
-
-NAME
-----
-nasm - the Netwide Assembler, a portable 80x86 assembler
-
-SYNOPSIS
---------
-*nasm* [*-@* response file] [*-f* format] [*-o* outfile] [*-l* listfile] ['options'...] filename
-
-DESCRIPTION
------------
-The *nasm* command assembles the file 'filename' and directs output to the file
-'outfile' if specified. If 'outfile' is not specified, *nasm* will derive a default
-output file name from the name of its input file, usually by appending `.o' or
-`.obj', or by removing all extensions for a raw binary file. Failing that, the
-output file name will be `nasm.out'.
-
-OPTIONS
--------
-*-@* 'filename'::
-	Causes *nasm* to process options from filename as if they were included on
-	the command line.
-
-*-a*::
-	Causes *nasm* to assemble the given input file without first applying the
-	macro preprocessor.
-
-*-D*|*-d* 'macro[=value]'::
-	Pre-defines a single-line macro.
-
-*-E*|*-e*::
-	Causes *nasm* to preprocess the given input file, and write the output to
-	'stdout' (or the specified output file name), and not actually assemble
-	anything.
-
-*-f* 'format'::
-	Specifies the output file format. To see a list of valid output formats,
-	use the *-hf* option.
-
-*-F* 'format'::
-	Specifies the debug information format. To see a list of valid output
-	formats, use the *-y* option (for example *-felf -y*).
-
-*-g*::
-	Causes *nasm* to generate debug information.
-
-*-g*'format'::
-	Equivalent to **-g -F**__ format__.
-
-*-h*::
-	Causes *nasm* to exit immediately, after giving a summary of its
-	invocation options.
-
-*-hf*::
-	Same as *-h* , but also lists all valid output formats.
-
-*-I*|*-i* 'directory'::
-	Adds a directory to the search path for include files. The directory
-	specification must include the trailing slash, as it will be directly
-	prepended to the name of the include file.
-
-*-l* 'listfile'::
-	Causes an assembly listing to be directed to the given file, in which
-	the original source is displayed on the right hand side (plus the source
-	for included files and the expansions of multi-line macros) and the
-	generated code is shown in hex on the left.
-
-*-M*::
-	Causes *nasm* to output Makefile-style dependencies to stdout; normal
-	output is suppressed.
-
-*-MG* 'file'::
-	Same as *-M* but assumes that missing Makefile dependecies are generated
-	and added to dependency list without a prefix.
-
-*-MF* 'file'::
-	Output Makefile-style dependencies to the specified file.
-
-*-MD* 'file'::
-	Same as a combination of *-M* and *-MF* options.
-
-*-MT* 'file'::
-	Override the default name of the dependency target dependency target name.
-	This is normally the same as the output filename, specified by
-	the *-o* option.
-
-*-MQ* 'file'::
-	The same as *-MT* except it tries to quote characters that have special
-	meaning in Makefile syntax. This is not foolproof, as not all characters
-	with special meaning are quotable in Make.
-
-*-MP*::
-	Emit phony target.
-
-*-O* 'number'::
-	Optimize branch offsets.
-	* *-O0*: No optimization
-	* *-O1*: Minimal optimization
-	* *-Ox*: Multipass optimization (default)
-
-*-o* 'outfile'::
-	Specifies a precise name for the output file, overriding *nasm*'s default
-	means of determining it.
-
-*-P*|*-p* 'file'::
-	Specifies a file to be pre-included, before the main source file
-	starts to be processed.
-
-*-s*::
-	Causes *nasm* to send its error messages and/or help text to stdout
-	instead of stderr.
-
-*-t*::
-	Causes *nasm* to assemble in SciTech TASM compatible mode.
-
-*-U*|*-u* 'macro'::
-	Undefines a single-line macro.
-
-*-v*::
-	Causes *nasm* to exit immediately, after displaying its version number.
-
-*-W[no-]foo'::
-	Causes *nasm* to enable or disable certain classes of warning messages,
-	in gcc-like style, for example *-Worphan-labels* or *-Wno-orphan-labels*.
-
-*-w*'[+-]foo'::
-	Causes *nasm* to enable or disable certain classes of warning messages,
-	for example *-w+orphan-labels* or *-w-macro-params*.
-
-*-X* 'format'::
-	Specifies error reporting format (gnu or vc).
-
-*-y*::
-	Causes *nasm* to list supported debug formats.
-
-*-Z* 'filename'::
-	Causes *nasm* to redirect error messages to 'filename'. This option exists
-	to support operating systems on which stderr is not easily redirected.
-
---prefix::
---postfix::
-	Prepend or append (respectively) the given argument to all global or
-	extern variables.
-
-SYNTAX
-------
-This man page does not fully describe the syntax of *nasm*'s assembly language,
-but does give a summary of the differences from other assemblers.
-
-'Registers' have no leading `%' sign, unlike *gas*, and floating-point stack
-registers are referred to as 'st0', 'st1', and so on.
-
-'Floating-point instructions' may use either the single-operand form or the
-double. A 'TO' keyword is provided; thus, one could either write
-
-	fadd st0,st1
-	fadd st1,st0
-
-or one could use the alternative single-operand forms
-
-	fadd st1
-	fadd to st1
-
-'Uninitialised storage' is reserved using the 'RESB', 'RESW', 'RESD', 'RESQ',
-'REST' and 'RESO' pseudo-opcodes, each taking one parameter which gives the
-number of bytes, words, doublewords, quadwords or ten-byte words to reserve.
-
-'Repetition' of data items is not done by the 'DUP' keyword as seen in DOS
-assemblers, but by the use of the 'TIMES' prefix, like this:
-
-	message: times 3 db 'abc'
-		 times 64-$+message db 0
-
-which defines the string `abcabcabc`, followed by the right number of zero
-bytes to make the total length up to 64 bytes.
-
-'Symbol references' are always understood to be immediate (i.e. the address
-of the symbol), unless square brackets are used, in which case the contents
-of the memory location are used. Thus:
-
-	mov ax,wordvar
-
-loads AX with the address of the variable `wordvar`, whereas
-
-	mov ax,[wordvar]
-	mov ax,[wordvar+1]
-	mov ax,[es:wordvar+bx]
-
-all refer to the 'contents' of memory locations. The syntaxes
-
-	mov ax,es:wordvar[bx]
-	es mov ax,wordvar[1]
-
-are not legal at all, although the use of a segment register name as an instruction
-prefix is valid, and can be used with instructions such as 'LODSB' which can't
-be overridden any other way.
-
-'Constants' may be expressed numerically in most formats: a trailing H, Q or
-B denotes hex, octal or binary respectively, and a leading `0x' or `$' denotes
-hex as well. Leading zeros are not treated specially at all. Character constants
-may be enclosed in single or double quotes; there is no escape character. The
-ordering is little-endian (reversed), so that the character constant ''abcd''
-denotes 0x64636261 and not 0x61626364.
-
-Local labels begin with a period, and their `locality' is granted by the assembler
-prepending the name of the previous non-local symbol. Thus declaring a label
-`.loop' after a label `label' has actually defined a symbol called `label.loop'.
-
-DIRECTIVES
-----------
-'SECTION' 'name' or 'SEGMENT' 'name' causes *nasm* to direct all following code
-to the named section. Section names vary with output file format, although most
-formats support the names '.text', '.data' and '.bss'. (The exception is the
-'obj' format, in which all segments are user-definable.)
-
-'ABSOLUTE' 'address' causes *nasm* to position its notional assembly point at
-an absolute address: so no code or data may be generated, but you can use 'RESB',
-'RESW' and 'RESD' to move the assembly point further on, and you can define labels.
-So this directive may be used to define data structures. When you have finished
-doing absolute assembly, you must issue another 'SECTION' directive to return to
-normal assembly.
-
-'BITS' '16', 'BITS' '32' or 'BITS' '64' switches the default processor mode for
-which *nasm* is generating code: it is equivalent to 'USE16' or 'USE32' in DOS
-assemblers.
-
-'EXTERN' 'symbol' and 'GLOBAL' 'symbol' import and export symbol definitions,
-respectively, from and to other modules. Note that the 'GLOBAL' directive must
-appear before the definition of the symbol it refers to.
-
-'STRUC' 'strucname' and 'ENDSTRUC', when used to bracket a number of 'RESB',
-'RESW' or similar instructions, define a data structure. In addition to
-defining the offsets of the structure members, the construct also defines a symbol
-for the size of the structure, which is simply the structure name with 'size'
-tacked on to the end.
-
-FORMAT-SPECIFIC DIRECTIVES
---------------------------
-'ORG' 'address' is used by the 'bin' flat-form binary output format, and
-specifies the address at which the output code will eventually be loaded.
-
-'GROUP' 'grpname' 'seg1' 'seg2'... is used by the obj (Microsoft 16-bit)
-output format, and defines segment groups. This format also uses 'UPPERCASE',
-which directs that all segment, group and symbol names output to the object
-file should be in uppercase. Note that the actual assembly is still case
-sensitive.
-
-'LIBRARY' 'libname' is used by the 'rdf' output format, and causes a
-dependency record to be written to the output file which indicates that
-the program requires a certain library in order to run.
-
-MACRO PREPROCESSOR
-------------------
-Single-line macros are defined using the '%define' or '%idefine' commands, in
-a similar fashion to the C preprocessor. They can be overloaded with respect
-to number of parameters, although defining a macro with no parameters prevents
-the definition of any macro with the same name taking parameters, and vice versa.
-'%define' defines macros whose names match case-sensitively, whereas '%idefine'
-defines case-insensitive macros.
-
-Multi-line macros are defined using '%macro' and '%imacro' (the distinction is the
-same as that between '%define' and '%idefine'), whose syntax is as follows
-
-	%macro name minprm[-maxprm][+][.nolist] [defaults]
-		<some lines of macro expansion text>
-	%endmacro
-
-Again, these macros may be overloaded. The trailing plus sign indicates that
-any parameters after the last one get subsumed, with their separating commas,
-into the last parameter. The 'defaults' part can be used to specify defaults for
-unspecified macro parameters after 'minparam'. '%endm' is a valid synonym for
-'%endmacro'.
-
-To refer to the macro parameters within a macro expansion, you use '%1', '%2' and
-so on. You can also enforce that a macro parameter should contain a condition
-code by using '%+1', and you can invert the condition code by using '%-1'. You can also
-define a label specific to a macro invocation by prefixing it with a double `%' sign.
-
-Files can be included using the '%include' directive, which works like C.
-
-The preprocessor has a `context stack', which may be used by one macro to store
-information that a later one will retrieve. You can push a context on the stack
-using '%push', remove one using '%pop', and change the name of the top context (without
-disturbing any associated definitions) using '%repl'. Labels and '%define' macros
-specific to the top context may be defined by prefixing their names with %$,
-and things specific to the next context down with %$$, and so on.
-
-Conditional assembly is done by means of '%ifdef', '%ifndef', '%else' and '%endif'
-as in C. (Except that '%ifdef' can accept several putative macro names, and
-will evaluate TRUE if any of them is defined.) In addition, the directives
-'%ifctx' and '%ifnctx' can be used to condition on the name of the top context
-on the context stack. The obvious set of `else-if' directives, '%elifdef',
-'%elifndef', '%elifctx' and '%elifnctx' are also supported.
-
-BUGS
-----
-Please report bugs through the bug tracker function at http://nasm.us.
-
-SEE ALSO
---------
-*as*(1), *ld*(1).
--- a/nasmbuild/nasm-2.13rc9/nasmlib/bsi.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,77 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * nasmlib.c	library routines for the Netwide Assembler
- */
-
-#include "compiler.h"
-
-#include <string.h>
-
-#include "nasmlib.h"
-
-/*
- * Binary search.
- */
-int bsi(const char *string, const char **array, int size)
-{
-    int i = -1, j = size;       /* always, i < index < j */
-    while (j - i >= 2) {
-        int k = (i + j) / 2;
-        int l = strcmp(string, array[k]);
-        if (l < 0)              /* it's in the first half */
-            j = k;
-        else if (l > 0)         /* it's in the second half */
-            i = k;
-        else                    /* we've got it :) */
-            return k;
-    }
-    return -1;                  /* we haven't got it :( */
-}
-
-int bsii(const char *string, const char **array, int size)
-{
-    int i = -1, j = size;       /* always, i < index < j */
-    while (j - i >= 2) {
-        int k = (i + j) / 2;
-        int l = nasm_stricmp(string, array[k]);
-        if (l < 0)              /* it's in the first half */
-            j = k;
-        else if (l > 0)         /* it's in the second half */
-            i = k;
-        else                    /* we've got it :) */
-            return k;
-    }
-    return -1;                  /* we haven't got it :( */
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/crc64.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#include "compiler.h"
-#include "nasmlib.h"
-#include "hashtbl.h"
-
-static const uint64_t crc64_tab[256] = {
-    UINT64_C(0x0000000000000000), UINT64_C(0x7ad870c830358979),
-    UINT64_C(0xf5b0e190606b12f2), UINT64_C(0x8f689158505e9b8b),
-    UINT64_C(0xc038e5739841b68f), UINT64_C(0xbae095bba8743ff6),
-    UINT64_C(0x358804e3f82aa47d), UINT64_C(0x4f50742bc81f2d04),
-    UINT64_C(0xab28ecb46814fe75), UINT64_C(0xd1f09c7c5821770c),
-    UINT64_C(0x5e980d24087fec87), UINT64_C(0x24407dec384a65fe),
-    UINT64_C(0x6b1009c7f05548fa), UINT64_C(0x11c8790fc060c183),
-    UINT64_C(0x9ea0e857903e5a08), UINT64_C(0xe478989fa00bd371),
-    UINT64_C(0x7d08ff3b88be6f81), UINT64_C(0x07d08ff3b88be6f8),
-    UINT64_C(0x88b81eabe8d57d73), UINT64_C(0xf2606e63d8e0f40a),
-    UINT64_C(0xbd301a4810ffd90e), UINT64_C(0xc7e86a8020ca5077),
-    UINT64_C(0x4880fbd87094cbfc), UINT64_C(0x32588b1040a14285),
-    UINT64_C(0xd620138fe0aa91f4), UINT64_C(0xacf86347d09f188d),
-    UINT64_C(0x2390f21f80c18306), UINT64_C(0x594882d7b0f40a7f),
-    UINT64_C(0x1618f6fc78eb277b), UINT64_C(0x6cc0863448deae02),
-    UINT64_C(0xe3a8176c18803589), UINT64_C(0x997067a428b5bcf0),
-    UINT64_C(0xfa11fe77117cdf02), UINT64_C(0x80c98ebf2149567b),
-    UINT64_C(0x0fa11fe77117cdf0), UINT64_C(0x75796f2f41224489),
-    UINT64_C(0x3a291b04893d698d), UINT64_C(0x40f16bccb908e0f4),
-    UINT64_C(0xcf99fa94e9567b7f), UINT64_C(0xb5418a5cd963f206),
-    UINT64_C(0x513912c379682177), UINT64_C(0x2be1620b495da80e),
-    UINT64_C(0xa489f35319033385), UINT64_C(0xde51839b2936bafc),
-    UINT64_C(0x9101f7b0e12997f8), UINT64_C(0xebd98778d11c1e81),
-    UINT64_C(0x64b116208142850a), UINT64_C(0x1e6966e8b1770c73),
-    UINT64_C(0x8719014c99c2b083), UINT64_C(0xfdc17184a9f739fa),
-    UINT64_C(0x72a9e0dcf9a9a271), UINT64_C(0x08719014c99c2b08),
-    UINT64_C(0x4721e43f0183060c), UINT64_C(0x3df994f731b68f75),
-    UINT64_C(0xb29105af61e814fe), UINT64_C(0xc849756751dd9d87),
-    UINT64_C(0x2c31edf8f1d64ef6), UINT64_C(0x56e99d30c1e3c78f),
-    UINT64_C(0xd9810c6891bd5c04), UINT64_C(0xa3597ca0a188d57d),
-    UINT64_C(0xec09088b6997f879), UINT64_C(0x96d1784359a27100),
-    UINT64_C(0x19b9e91b09fcea8b), UINT64_C(0x636199d339c963f2),
-    UINT64_C(0xdf7adabd7a6e2d6f), UINT64_C(0xa5a2aa754a5ba416),
-    UINT64_C(0x2aca3b2d1a053f9d), UINT64_C(0x50124be52a30b6e4),
-    UINT64_C(0x1f423fcee22f9be0), UINT64_C(0x659a4f06d21a1299),
-    UINT64_C(0xeaf2de5e82448912), UINT64_C(0x902aae96b271006b),
-    UINT64_C(0x74523609127ad31a), UINT64_C(0x0e8a46c1224f5a63),
-    UINT64_C(0x81e2d7997211c1e8), UINT64_C(0xfb3aa75142244891),
-    UINT64_C(0xb46ad37a8a3b6595), UINT64_C(0xceb2a3b2ba0eecec),
-    UINT64_C(0x41da32eaea507767), UINT64_C(0x3b024222da65fe1e),
-    UINT64_C(0xa2722586f2d042ee), UINT64_C(0xd8aa554ec2e5cb97),
-    UINT64_C(0x57c2c41692bb501c), UINT64_C(0x2d1ab4dea28ed965),
-    UINT64_C(0x624ac0f56a91f461), UINT64_C(0x1892b03d5aa47d18),
-    UINT64_C(0x97fa21650afae693), UINT64_C(0xed2251ad3acf6fea),
-    UINT64_C(0x095ac9329ac4bc9b), UINT64_C(0x7382b9faaaf135e2),
-    UINT64_C(0xfcea28a2faafae69), UINT64_C(0x8632586aca9a2710),
-    UINT64_C(0xc9622c4102850a14), UINT64_C(0xb3ba5c8932b0836d),
-    UINT64_C(0x3cd2cdd162ee18e6), UINT64_C(0x460abd1952db919f),
-    UINT64_C(0x256b24ca6b12f26d), UINT64_C(0x5fb354025b277b14),
-    UINT64_C(0xd0dbc55a0b79e09f), UINT64_C(0xaa03b5923b4c69e6),
-    UINT64_C(0xe553c1b9f35344e2), UINT64_C(0x9f8bb171c366cd9b),
-    UINT64_C(0x10e3202993385610), UINT64_C(0x6a3b50e1a30ddf69),
-    UINT64_C(0x8e43c87e03060c18), UINT64_C(0xf49bb8b633338561),
-    UINT64_C(0x7bf329ee636d1eea), UINT64_C(0x012b592653589793),
-    UINT64_C(0x4e7b2d0d9b47ba97), UINT64_C(0x34a35dc5ab7233ee),
-    UINT64_C(0xbbcbcc9dfb2ca865), UINT64_C(0xc113bc55cb19211c),
-    UINT64_C(0x5863dbf1e3ac9dec), UINT64_C(0x22bbab39d3991495),
-    UINT64_C(0xadd33a6183c78f1e), UINT64_C(0xd70b4aa9b3f20667),
-    UINT64_C(0x985b3e827bed2b63), UINT64_C(0xe2834e4a4bd8a21a),
-    UINT64_C(0x6debdf121b863991), UINT64_C(0x1733afda2bb3b0e8),
-    UINT64_C(0xf34b37458bb86399), UINT64_C(0x8993478dbb8deae0),
-    UINT64_C(0x06fbd6d5ebd3716b), UINT64_C(0x7c23a61ddbe6f812),
-    UINT64_C(0x3373d23613f9d516), UINT64_C(0x49aba2fe23cc5c6f),
-    UINT64_C(0xc6c333a67392c7e4), UINT64_C(0xbc1b436e43a74e9d),
-    UINT64_C(0x95ac9329ac4bc9b5), UINT64_C(0xef74e3e19c7e40cc),
-    UINT64_C(0x601c72b9cc20db47), UINT64_C(0x1ac40271fc15523e),
-    UINT64_C(0x5594765a340a7f3a), UINT64_C(0x2f4c0692043ff643),
-    UINT64_C(0xa02497ca54616dc8), UINT64_C(0xdafce7026454e4b1),
-    UINT64_C(0x3e847f9dc45f37c0), UINT64_C(0x445c0f55f46abeb9),
-    UINT64_C(0xcb349e0da4342532), UINT64_C(0xb1eceec59401ac4b),
-    UINT64_C(0xfebc9aee5c1e814f), UINT64_C(0x8464ea266c2b0836),
-    UINT64_C(0x0b0c7b7e3c7593bd), UINT64_C(0x71d40bb60c401ac4),
-    UINT64_C(0xe8a46c1224f5a634), UINT64_C(0x927c1cda14c02f4d),
-    UINT64_C(0x1d148d82449eb4c6), UINT64_C(0x67ccfd4a74ab3dbf),
-    UINT64_C(0x289c8961bcb410bb), UINT64_C(0x5244f9a98c8199c2),
-    UINT64_C(0xdd2c68f1dcdf0249), UINT64_C(0xa7f41839ecea8b30),
-    UINT64_C(0x438c80a64ce15841), UINT64_C(0x3954f06e7cd4d138),
-    UINT64_C(0xb63c61362c8a4ab3), UINT64_C(0xcce411fe1cbfc3ca),
-    UINT64_C(0x83b465d5d4a0eece), UINT64_C(0xf96c151de49567b7),
-    UINT64_C(0x76048445b4cbfc3c), UINT64_C(0x0cdcf48d84fe7545),
-    UINT64_C(0x6fbd6d5ebd3716b7), UINT64_C(0x15651d968d029fce),
-    UINT64_C(0x9a0d8ccedd5c0445), UINT64_C(0xe0d5fc06ed698d3c),
-    UINT64_C(0xaf85882d2576a038), UINT64_C(0xd55df8e515432941),
-    UINT64_C(0x5a3569bd451db2ca), UINT64_C(0x20ed197575283bb3),
-    UINT64_C(0xc49581ead523e8c2), UINT64_C(0xbe4df122e51661bb),
-    UINT64_C(0x3125607ab548fa30), UINT64_C(0x4bfd10b2857d7349),
-    UINT64_C(0x04ad64994d625e4d), UINT64_C(0x7e7514517d57d734),
-    UINT64_C(0xf11d85092d094cbf), UINT64_C(0x8bc5f5c11d3cc5c6),
-    UINT64_C(0x12b5926535897936), UINT64_C(0x686de2ad05bcf04f),
-    UINT64_C(0xe70573f555e26bc4), UINT64_C(0x9ddd033d65d7e2bd),
-    UINT64_C(0xd28d7716adc8cfb9), UINT64_C(0xa85507de9dfd46c0),
-    UINT64_C(0x273d9686cda3dd4b), UINT64_C(0x5de5e64efd965432),
-    UINT64_C(0xb99d7ed15d9d8743), UINT64_C(0xc3450e196da80e3a),
-    UINT64_C(0x4c2d9f413df695b1), UINT64_C(0x36f5ef890dc31cc8),
-    UINT64_C(0x79a59ba2c5dc31cc), UINT64_C(0x037deb6af5e9b8b5),
-    UINT64_C(0x8c157a32a5b7233e), UINT64_C(0xf6cd0afa9582aa47),
-    UINT64_C(0x4ad64994d625e4da), UINT64_C(0x300e395ce6106da3),
-    UINT64_C(0xbf66a804b64ef628), UINT64_C(0xc5bed8cc867b7f51),
-    UINT64_C(0x8aeeace74e645255), UINT64_C(0xf036dc2f7e51db2c),
-    UINT64_C(0x7f5e4d772e0f40a7), UINT64_C(0x05863dbf1e3ac9de),
-    UINT64_C(0xe1fea520be311aaf), UINT64_C(0x9b26d5e88e0493d6),
-    UINT64_C(0x144e44b0de5a085d), UINT64_C(0x6e963478ee6f8124),
-    UINT64_C(0x21c640532670ac20), UINT64_C(0x5b1e309b16452559),
-    UINT64_C(0xd476a1c3461bbed2), UINT64_C(0xaeaed10b762e37ab),
-    UINT64_C(0x37deb6af5e9b8b5b), UINT64_C(0x4d06c6676eae0222),
-    UINT64_C(0xc26e573f3ef099a9), UINT64_C(0xb8b627f70ec510d0),
-    UINT64_C(0xf7e653dcc6da3dd4), UINT64_C(0x8d3e2314f6efb4ad),
-    UINT64_C(0x0256b24ca6b12f26), UINT64_C(0x788ec2849684a65f),
-    UINT64_C(0x9cf65a1b368f752e), UINT64_C(0xe62e2ad306bafc57),
-    UINT64_C(0x6946bb8b56e467dc), UINT64_C(0x139ecb4366d1eea5),
-    UINT64_C(0x5ccebf68aecec3a1), UINT64_C(0x2616cfa09efb4ad8),
-    UINT64_C(0xa97e5ef8cea5d153), UINT64_C(0xd3a62e30fe90582a),
-    UINT64_C(0xb0c7b7e3c7593bd8), UINT64_C(0xca1fc72bf76cb2a1),
-    UINT64_C(0x45775673a732292a), UINT64_C(0x3faf26bb9707a053),
-    UINT64_C(0x70ff52905f188d57), UINT64_C(0x0a2722586f2d042e),
-    UINT64_C(0x854fb3003f739fa5), UINT64_C(0xff97c3c80f4616dc),
-    UINT64_C(0x1bef5b57af4dc5ad), UINT64_C(0x61372b9f9f784cd4),
-    UINT64_C(0xee5fbac7cf26d75f), UINT64_C(0x9487ca0fff135e26),
-    UINT64_C(0xdbd7be24370c7322), UINT64_C(0xa10fceec0739fa5b),
-    UINT64_C(0x2e675fb4576761d0), UINT64_C(0x54bf2f7c6752e8a9),
-    UINT64_C(0xcdcf48d84fe75459), UINT64_C(0xb71738107fd2dd20),
-    UINT64_C(0x387fa9482f8c46ab), UINT64_C(0x42a7d9801fb9cfd2),
-    UINT64_C(0x0df7adabd7a6e2d6), UINT64_C(0x772fdd63e7936baf),
-    UINT64_C(0xf8474c3bb7cdf024), UINT64_C(0x829f3cf387f8795d),
-    UINT64_C(0x66e7a46c27f3aa2c), UINT64_C(0x1c3fd4a417c62355),
-    UINT64_C(0x935745fc4798b8de), UINT64_C(0xe98f353477ad31a7),
-    UINT64_C(0xa6df411fbfb21ca3), UINT64_C(0xdc0731d78f8795da),
-    UINT64_C(0x536fa08fdfd90e51), UINT64_C(0x29b7d047efec8728),
-};
-
-uint64_t crc64(uint64_t crc, const char *str)
-{
-    uint8_t c;
-
-    while ((c = *str++) != 0) {
-	crc = crc64_tab[(uint8_t)crc ^ c] ^ (crc >> 8);
-    }
-
-    return crc;
-}
-
-uint64_t crc64i(uint64_t crc, const char *str)
-{
-    uint8_t c;
-
-    while ((c = *str++) != 0) {
-	crc = crc64_tab[(uint8_t)crc ^ nasm_tolower(c)] ^ (crc >> 8);
-    }
-
-    return crc;
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/file.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,231 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#include "file.h"
-
-void nasm_write(const void *ptr, size_t size, FILE *f)
-{
-    size_t n = fwrite(ptr, 1, size, f);
-    if (n != size || ferror(f) || feof(f))
-        nasm_fatal(0, "unable to write output: %s", strerror(errno));
-}
-
-#ifdef WORDS_LITTLEENDIAN
-
-void fwriteint16_t(uint16_t data, FILE * fp)
-{
-    nasm_write(&data, 2, fp);
-}
-
-void fwriteint32_t(uint32_t data, FILE * fp)
-{
-    nasm_write(&data, 4, fp);
-}
-
-void fwriteint64_t(uint64_t data, FILE * fp)
-{
-    nasm_write(&data, 8, fp);
-}
-
-void fwriteaddr(uint64_t data, int size, FILE * fp)
-{
-    nasm_write(&data, size, fp);
-}
-
-#else /* not WORDS_LITTLEENDIAN */
-
-void fwriteint16_t(uint16_t data, FILE * fp)
-{
-    char buffer[2], *p = buffer;
-    WRITESHORT(p, data);
-    nasm_write(buffer, 2, fp);
-}
-
-void fwriteint32_t(uint32_t data, FILE * fp)
-{
-    char buffer[4], *p = buffer;
-    WRITELONG(p, data);
-    nasm_write(buffer, 4, fp);
-}
-
-void fwriteint64_t(uint64_t data, FILE * fp)
-{
-    char buffer[8], *p = buffer;
-    WRITEDLONG(p, data);
-    nasm_write(buffer, 8, fp);
-}
-
-void fwriteaddr(uint64_t data, int size, FILE * fp)
-{
-    char buffer[8], *p = buffer;
-    WRITEADDR(p, data, size);
-    nasm_write(buffer, size, fp);
-}
-
-#endif
-
-
-void fwritezero(off_t bytes, FILE *fp)
-{
-    size_t blksize;
-
-#ifdef nasm_ftruncate
-    if (bytes >= BUFSIZ && !ferror(fp) && !feof(fp)) {
-	off_t pos = ftello(fp);
-	if (pos >= 0) {
-            pos += bytes;
-	    if (!fflush(fp) &&
-		!nasm_ftruncate(fileno(fp), pos) &&
-		!fseeko(fp, pos, SEEK_SET))
-		    return;
-	}
-    }
-#endif
-
-    while (bytes > 0) {
-	blksize = (bytes < ZERO_BUF_SIZE) ? bytes : ZERO_BUF_SIZE;
-
-	nasm_write(zero_buffer, blksize, fp);
-	bytes -= blksize;
-    }
-}
-
-FILE *nasm_open_read(const char *filename, enum file_flags flags)
-{
-    FILE *f;
-    bool again = true;
-
-#ifdef __GLIBC__
-    /*
-     * Try to open this file with memory mapping for speed, unless we are
-     * going to do it "manually" with nasm_map_file()
-     */
-    if (!(flags & NF_FORMAP)) {
-        f = fopen(filename, (flags & NF_TEXT) ? "rtm" : "rbm");
-        again = (!f) && (errno == EINVAL); /* Not supported, try without m */
-    }
-#endif
-
-    if (again)
-        f = fopen(filename, (flags & NF_TEXT) ? "rt" : "rb");
-
-    if (!f && (flags & NF_FATAL))
-        nasm_fatal(ERR_NOFILE, "unable to open input file: `%s': %s",
-                   filename, strerror(errno));
-
-    return f;
-}
-
-FILE *nasm_open_write(const char *filename, enum file_flags flags)
-{
-    FILE *f;
-
-    f = fopen(filename, (flags & NF_TEXT) ? "wt" : "wb");
-
-    if (!f && (flags & NF_FATAL))
-        nasm_fatal(ERR_NOFILE, "unable to open output file: `%s': %s",
-                   filename, strerror(errno));
-
-    return f;
-}
-
-/*
- * Report the existence of a file
- */
-bool nasm_file_exists(const char *filename)
-{
-#if defined(HAVE_FACCESSAT) && defined(AT_EACCESS)
-    return faccessat(AT_FDCWD, filename, R_OK, AT_EACCESS) == 0;
-#elif defined(HAVE_ACCESS)
-    return access(filename, R_OK) == 0;
-#else
-    FILE *f;
-
-    f = fopen(filename, "rb");
-    if (f) {
-        fclose(f);
-        return true;
-    } else {
-        return false;
-    }
-#endif
-}
-
-/*
- * Report file size.  This MAY move the file pointer.
- */
-off_t nasm_file_size(FILE *f)
-{
-#if defined(HAVE_FILENO) && defined(HAVE__FILELENGTHI64)
-    return _filelengthi64(fileno(f));
-#elif defined(nasm_fstat)
-    struct nasm_stat st;
-
-    if (nasm_fstat(fileno(f), &st))
-        return (off_t)-1;
-
-    return st.st_size;
-#else
-    if (fseeko(f, 0, SEEK_END))
-        return (off_t)-1;
-
-    return ftello(f);
-#endif
-}
-
-/*
- * Report file size given pathname
- */
-off_t nasm_file_size_by_path(const char *pathname)
-{
-#ifdef HAVE_STAT
-    struct stat st;
-
-    if (stat(pathname, &st))
-        return (off_t)-1;
-
-    return st.st_size;
-#else
-    FILE *fp;
-    off_t len;
-
-    fp = nasm_open_read(pathname, NF_BINARY);
-    if (!fp)
-        return (off_t)-1;
-
-    len = nasm_file_size(fp);
-    fclose(fp);
-
-    return len;
-#endif
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/file.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#ifndef NASMLIB_FILE_H
-#define NASMLIB_FILE_H
-
-#include "compiler.h"
-#include "nasmlib.h"
-#include "error.h"
-
-#include <errno.h>
-
-#ifdef HAVE_FCNTL_H
-# include <fcntl.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef HAVE_IO_H
-# include <io.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#ifdef HAVE_SYS_MMAN_H
-# include <sys/mman.h>
-#endif
-
-#if !defined(HAVE_FILENO) && defined(HAVE__FILENO)
-# define HAVE_FILENO 1
-# define fileno _fileno
-#endif
-
-#if !defined(HAVE_ACCESS) && defined(HAVE__ACCESS)
-# define HAVE_ACCESS 1
-# define access _access
-#endif
-#ifndef R_OK
-# define R_OK 4                 /* Classic Unix constant, same on Windows */
-#endif
-
-/* Can we adjust the file size without actually writing all the bytes? */
-#ifdef HAVE_FILENO		/* Useless without fileno() */
-# ifdef HAVE__CHSIZE_S
-#  define nasm_ftruncate(fd,size) _chsize_s(fd,size)
-# elif defined(HAVE__CHSIZE)
-#  define nasm_ftruncate(fd,size) _chsize(fd,size)
-# elif defined(HAVE_FTRUNCATE)
-#  define nasm_ftruncate(fd,size) ftruncate(fd,size)
-# endif
-#endif
-
-/*
- * On Win32, stat has a 32-bit file size but _stati64 has a 64-bit file
- * size.  However, as "stat" is already a macro, don't confuse the situation
- * further by redefining it, instead we create our own.
- */
-#ifdef HAVE__STATI64
-# define nasm_stat _stati64
-#elif defined(HAVE_STAT)
-# define nasm_stat stat
-#endif
-
-#ifdef HAVE_FILENO
-# ifdef HAVE__FSTATI64
-#  define nasm_fstat _fstati64
-# elif defined(HAVE_FSTAT)
-#  define nasm_fstat fstat
-# endif
-#endif
-
-#endif /* NASMLIB_FILE_H */
--- a/nasmbuild/nasm-2.13rc9/nasmlib/filename.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * nasmlib.c	library routines for the Netwide Assembler
- */
-
-#include "compiler.h"
-#include "nasmlib.h"
-#include "error.h"
-
-void standard_extension(char *inname, char *outname, char *extension)
-{
-    char *p, *q;
-
-    if (*outname)               /* file name already exists, */
-        return;                 /* so do nothing */
-    q = inname;
-    p = outname;
-    while (*q)
-        *p++ = *q++;            /* copy, and find end of string */
-    *p = '\0';                  /* terminate it */
-    while (p > outname && *--p != '.') ;        /* find final period (or whatever) */
-    if (*p != '.')
-        while (*p)
-            p++;                /* go back to end if none found */
-    if (!strcmp(p, extension)) {        /* is the extension already there? */
-        if (*extension)
-            nasm_error(ERR_WARNING | ERR_NOFILE,
-		       "file name already ends in `%s': "
-		       "output will be in `nasm.out'", extension);
-        else
-            nasm_error(ERR_WARNING | ERR_NOFILE,
-		       "file name already has no extension: "
-		       "output will be in `nasm.out'");
-        strcpy(outname, "nasm.out");
-    } else
-        strcpy(p, extension);
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/hashtbl.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,232 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * hashtbl.c
- *
- * Efficient dictionary hash table class.
- */
-
-#include "compiler.h"
-
-#include <string.h>
-#include "nasm.h"
-#include "hashtbl.h"
-
-#define HASH_MAX_LOAD   2 /* Higher = more memory-efficient, slower */
-
-#define hash_calc(key)          crc64(CRC64_INIT, (key))
-#define hash_calci(key)         crc64i(CRC64_INIT, (key))
-#define hash_max_load(size)     ((size) * (HASH_MAX_LOAD - 1) / HASH_MAX_LOAD)
-#define hash_expand(size)       ((size) << 1)
-#define hash_mask(size)         ((size) - 1)
-#define hash_pos(hash, mask)    ((hash) & (mask))
-#define hash_inc(hash, mask)    ((((hash) >> 32) & (mask)) | 1) /* always odd */
-#define hash_pos_next(pos, inc, mask) (((pos) + (inc)) & (mask))
-
-static struct hash_tbl_node *alloc_table(size_t newsize)
-{
-    size_t bytes = newsize * sizeof(struct hash_tbl_node);
-    return nasm_zalloc(bytes);
-}
-
-void hash_init(struct hash_table *head, size_t size)
-{
-    nasm_assert(is_power2(size));
-    head->table    = alloc_table(size);
-    head->load     = 0;
-    head->size     = size;
-    head->max_load = hash_max_load(size);
-}
-
-/*
- * Find an entry in a hash table.
- *
- * On failure, if "insert" is non-NULL, store data in that structure
- * which can be used to insert that node using hash_add().
- *
- * WARNING: this data is only valid until the very next call of
- * hash_add(); it cannot be "saved" to a later date.
- *
- * On success, return a pointer to the "data" element of the hash
- * structure.
- */
-void **hash_find(struct hash_table *head, const char *key,
-                 struct hash_insert *insert)
-{
-    struct hash_tbl_node *np;
-    struct hash_tbl_node *tbl = head->table;
-    uint64_t hash = hash_calc(key);
-    size_t mask = hash_mask(head->size);
-    size_t pos = hash_pos(hash, mask);
-    size_t inc = hash_inc(hash, mask);
-
-    while ((np = &tbl[pos])->key) {
-        if (hash == np->hash && !strcmp(key, np->key))
-            return &np->data;
-        pos = hash_pos_next(pos, inc, mask);
-    }
-
-    /* Not found.  Store info for insert if requested. */
-    if (insert) {
-        insert->head  = head;
-        insert->hash  = hash;
-        insert->where = np;
-    }
-    return NULL;
-}
-
-/*
- * Same as hash_find, but for case-insensitive hashing.
- */
-void **hash_findi(struct hash_table *head, const char *key,
-                  struct hash_insert *insert)
-{
-    struct hash_tbl_node *np;
-    struct hash_tbl_node *tbl = head->table;
-    uint64_t hash = hash_calci(key);
-    size_t mask = hash_mask(head->size);
-    size_t pos = hash_pos(hash, mask);
-    size_t inc = hash_inc(hash, mask);
-
-    while ((np = &tbl[pos])->key) {
-        if (hash == np->hash && !nasm_stricmp(key, np->key))
-            return &np->data;
-        pos = hash_pos_next(pos, inc, mask);
-    }
-
-    /* Not found.  Store info for insert if requested. */
-    if (insert) {
-        insert->head  = head;
-        insert->hash  = hash;
-        insert->where = np;
-    }
-    return NULL;
-}
-
-/*
- * Insert node.  Return a pointer to the "data" element of the newly
- * created hash node.
- */
-void **hash_add(struct hash_insert *insert, const char *key, void *data)
-{
-    struct hash_table *head  = insert->head;
-    struct hash_tbl_node *np = insert->where;
-
-    /*
-     * Insert node.  We can always do this, even if we need to
-     * rebalance immediately after.
-     */
-    np->hash = insert->hash;
-    np->key  = key;
-    np->data = data;
-
-    if (++head->load > head->max_load) {
-        /* Need to expand the table */
-        size_t newsize                  = hash_expand(head->size);
-        struct hash_tbl_node *newtbl    = alloc_table(newsize);
-        size_t mask                     = hash_mask(newsize);
-
-        if (head->table) {
-            struct hash_tbl_node *op, *xp;
-            size_t i;
-
-            /* Rebalance all the entries */
-            for (i = 0, op = head->table; i < head->size; i++, op++) {
-                if (op->key) {
-                    size_t pos = hash_pos(op->hash, mask);
-                    size_t inc = hash_inc(op->hash, mask);
-
-                    while ((xp = &newtbl[pos])->key)
-                        pos = hash_pos_next(pos, inc, mask);
-
-                    *xp = *op;
-                    if (op == np)
-                        np = xp;
-                }
-            }
-            nasm_free(head->table);
-        }
-
-        head->table    = newtbl;
-        head->size     = newsize;
-        head->max_load = hash_max_load(newsize);
-    }
-
-    return &np->data;
-}
-
-/*
- * Iterate over all members of a hash set.  For the first call,
- * iterator should be initialized to NULL.  Returns the data pointer,
- * or NULL on failure.
- */
-void *hash_iterate(const struct hash_table *head,
-                   struct hash_tbl_node **iterator,
-                   const char **key)
-{
-    struct hash_tbl_node *np = *iterator;
-    struct hash_tbl_node *ep = head->table + head->size;
-
-    if (!np) {
-        np = head->table;
-        if (!np)
-            return NULL;        /* Uninitialized table */
-    }
-
-    while (np < ep) {
-        if (np->key) {
-            *iterator = np + 1;
-            if (key)
-                *key = np->key;
-            return np->data;
-        }
-        np++;
-    }
-
-    *iterator = NULL;
-    if (key)
-        *key = NULL;
-    return NULL;
-}
-
-/*
- * Free the hash itself.  Doesn't free the data elements; use
- * hash_iterate() to do that first, if needed.
- */
-void hash_free(struct hash_table *head)
-{
-    void *p = head->table;
-    head->table = NULL;
-    nasm_free(p);
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/ilog2.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,168 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#include "compiler.h"
-#include "nasmlib.h"
-#include <limits.h>
-
-#define ROUND(v, a, w)                      \
-    do {                                    \
-        if (v & (((1 << w) - 1) << w)) {    \
-            a  += w;                        \
-            v >>= w;                        \
-        }                                   \
-    } while (0)
-
-
-#if defined(__GNUC__) && defined(__x86_64__)
-
-int ilog2_32(uint32_t v)
-{
-    int n;
-
-    __asm__("bsrl %1,%0"
-            : "=r" (n)
-            : "rm" (v), "0" (0));
-    return n;
-}
-
-#elif defined(__GNUC__) && defined(__i386__)
-
-int ilog2_32(uint32_t v)
-{
-    int n;
-
-#ifdef __i686__
-    __asm__("bsrl %1,%0 ; cmovz %2,%0\n"
-            : "=&r" (n)
-            : "rm" (v), "r" (0));
-#else
-    __asm__("bsrl %1,%0 ; jnz 1f ; xorl %0,%0\n"
-            "1:"
-            : "=&r" (n)
-            : "rm" (v));
-#endif
-     return n;
-}
-
-#elif defined(HAVE___BUILTIN_CLZ) && INT_MAX == 2147483647
-
-int ilog2_32(uint32_t v)
-{
-    if (!v)
-        return 0;
-
-    return __builtin_clz(v) ^ 31;
-}
-
-#else
-
-int ilog2_32(uint32_t v)
-{
-    int p = 0;
-
-    ROUND(v, p, 16);
-    ROUND(v, p,  8);
-    ROUND(v, p,  4);
-    ROUND(v, p,  2);
-    ROUND(v, p,  1);
-
-    return p;
-}
-
-#endif
-
-#if defined(__GNUC__) && defined(__x86_64__)
-
-int ilog2_64(uint64_t v)
-{
-    uint64_t n;
-
-    __asm__("bsrq %1,%0"
-            : "=r" (n)
-            : "rm" (v), "0" (UINT64_C(0)));
-    return n;
-}
-
-#elif defined(HAVE__BUILTIN_CLZLL) && LLONG_MAX == 9223372036854775807LL
-
-int ilog2_64(uint64_t v)
-{
-    if (!v)
-        return 0;
-
-    return __builtin_clzll(v) ^ 63;
-}
-
-#else
-
-int ilog2_64(uint64_t vv)
-{
-    int p = 0;
-    uint32_t v;
-
-    v = vv >> 32;
-    if (v)
-        p += 32;
-    else
-        v = vv;
-
-    ROUND(v, p, 16);
-    ROUND(v, p,  8);
-    ROUND(v, p,  4);
-    ROUND(v, p,  2);
-    ROUND(v, p,  1);
-
-    return p;
-}
-
-#endif
-
-/*
- * v == 0 ? 0 : is_power2(x) ? ilog2_X(v) : -1
- */
-int alignlog2_32(uint32_t v)
-{
-    if (unlikely(v & (v-1)))
-        return -1;              /* invalid alignment */
-
-    return ilog2_32(v);
-}
-
-int alignlog2_64(uint64_t v)
-{
-    if (unlikely(v & (v-1)))
-        return -1;              /* invalid alignment */
-
-    return ilog2_64(v);
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/malloc.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,108 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * nasmlib.c	library routines for the Netwide Assembler
- */
-
-#include "compiler.h"
-
-#include <stdlib.h>
-
-#include "nasmlib.h"
-#include "error.h"
-
-void *nasm_malloc(size_t size)
-{
-    void *p = malloc(size);
-    if (!p)
-        nasm_fatal(ERR_NOFILE, "out of memory");
-    return p;
-}
-
-void *nasm_calloc(size_t size, size_t nelem)
-{
-    void *p = calloc(size, nelem);
-    if (!p)
-        nasm_fatal(ERR_NOFILE, "out of memory");
-    return p;
-}
-
-void *nasm_zalloc(size_t size)
-{
-    return nasm_calloc(size, 1);
-}
-
-void *nasm_realloc(void *q, size_t size)
-{
-    void *p = q ? realloc(q, size) : malloc(size);
-    if (!p)
-        nasm_fatal(ERR_NOFILE, "out of memory");
-    return p;
-}
-
-void nasm_free(void *q)
-{
-    if (q)
-        free(q);
-}
-
-char *nasm_strdup(const char *s)
-{
-    char *p;
-    size_t size = strlen(s) + 1;
-
-    p = nasm_malloc(size);
-    return memcpy(p, s, size);
-}
-
-char *nasm_strndup(const char *s, size_t len)
-{
-    char *p;
-
-    len = strnlen(s, len);
-    p = nasm_malloc(len+1);
-    p[len] = '\0';
-    return memcpy(p, s, len);
-}
-
-char *nasm_strcat(const char *one, const char *two)
-{
-    char *rslt;
-    size_t l1 = strlen(one);
-    size_t l2 = strlen(two);
-    rslt = nasm_malloc(l1 + l2 + 1);
-    memcpy(rslt, one, l1);
-    memcpy(rslt + l1, two, l2+1);
-    return rslt;
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/md5c.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,247 +0,0 @@
-/*
- * This code implements the MD5 message-digest algorithm.
- * The algorithm is due to Ron Rivest.  This code was
- * written by Colin Plumb in 1993, no copyright is claimed.
- * This code is in the public domain; do with it what you wish.
- *
- * Equivalent code is available from RSA Data Security, Inc.
- * This code has been tested against that, and is equivalent,
- * except that you don't need to include two pages of legalese
- * with every copy.
- *
- * To compute the message digest of a chunk of bytes, declare an
- * MD5Context structure, pass it to MD5Init, call MD5Update as
- * needed on buffers full of bytes, and then call MD5Final, which
- * will fill a supplied 16-byte array with the digest.
- */
-
-#include "md5.h"
-#include <string.h>             /* for memcpy() */
-
-#ifdef WORDS_LITTEENDIAN
-#define byteReverse(buf, len)	/* Nothing */
-#else
-static void byteReverse(unsigned char *buf, unsigned longs);
-
-/*
- * Note: this code is harmless on little-endian machines.
- */
-static void byteReverse(unsigned char *buf, unsigned longs)
-{
-    uint32_t t;
-    do {
-	t = (uint32_t) ((unsigned) buf[3] << 8 | buf[2]) << 16 |
-	    ((unsigned) buf[1] << 8 | buf[0]);
-	*(uint32_t *) buf = t;
-	buf += 4;
-    } while (--longs);
-}
-#endif
-
-/*
- * Start MD5 accumulation.  Set bit count to 0 and buffer to mysterious
- * initialization constants.
- */
-void MD5Init(MD5_CTX *ctx)
-{
-    ctx->buf[0] = 0x67452301;
-    ctx->buf[1] = 0xefcdab89;
-    ctx->buf[2] = 0x98badcfe;
-    ctx->buf[3] = 0x10325476;
-
-    ctx->bits[0] = 0;
-    ctx->bits[1] = 0;
-}
-
-/*
- * Update context to reflect the concatenation of another buffer full
- * of bytes.
- */
-void MD5Update(MD5_CTX *ctx, unsigned char const *buf, unsigned len)
-{
-    uint32_t t;
-
-    /* Update bitcount */
-
-    t = ctx->bits[0];
-    if ((ctx->bits[0] = t + ((uint32_t) len << 3)) < t)
-	ctx->bits[1]++;		/* Carry from low to high */
-    ctx->bits[1] += len >> 29;
-
-    t = (t >> 3) & 0x3f;	/* Bytes already in shsInfo->data */
-
-    /* Handle any leading odd-sized chunks */
-
-    if (t) {
-	unsigned char *p = (unsigned char *) ctx->in + t;
-
-	t = 64 - t;
-	if (len < t) {
-	    memcpy(p, buf, len);
-	    return;
-	}
-	memcpy(p, buf, t);
-	byteReverse(ctx->in, 16);
-	MD5Transform(ctx->buf, (uint32_t *) ctx->in);
-	buf += t;
-	len -= t;
-    }
-    /* Process data in 64-byte chunks */
-
-    while (len >= 64) {
-	memcpy(ctx->in, buf, 64);
-	byteReverse(ctx->in, 16);
-	MD5Transform(ctx->buf, (uint32_t *) ctx->in);
-	buf += 64;
-	len -= 64;
-    }
-
-    /* Handle any remaining bytes of data. */
-
-    memcpy(ctx->in, buf, len);
-}
-
-/*
- * Final wrapup - pad to 64-byte boundary with the bit pattern 
- * 1 0* (64-bit count of bits processed, MSB-first)
- */
-void MD5Final(unsigned char digest[16], MD5_CTX *ctx)
-{
-    unsigned count;
-    unsigned char *p;
-
-    /* Compute number of bytes mod 64 */
-    count = (ctx->bits[0] >> 3) & 0x3F;
-
-    /* Set the first char of padding to 0x80.  This is safe since there is
-       always at least one byte free */
-    p = ctx->in + count;
-    *p++ = 0x80;
-
-    /* Bytes of padding needed to make 64 bytes */
-    count = 64 - 1 - count;
-
-    /* Pad out to 56 mod 64 */
-    if (count < 8) {
-	/* Two lots of padding:  Pad the first block to 64 bytes */
-	memset(p, 0, count);
-	byteReverse(ctx->in, 16);
-	MD5Transform(ctx->buf, (uint32_t *) ctx->in);
-
-	/* Now fill the next block with 56 bytes */
-	memset(ctx->in, 0, 56);
-    } else {
-	/* Pad block to 56 bytes */
-	memset(p, 0, count - 8);
-    }
-    byteReverse(ctx->in, 14);
-
-    /* Append length in bits and transform */
-    ((uint32_t *) ctx->in)[14] = ctx->bits[0];
-    ((uint32_t *) ctx->in)[15] = ctx->bits[1];
-
-    MD5Transform(ctx->buf, (uint32_t *) ctx->in);
-    byteReverse((unsigned char *) ctx->buf, 4);
-    memcpy(digest, ctx->buf, 16);
-    memset((char *) ctx, 0, sizeof(*ctx));	/* In case it's sensitive */
-}
-
-/* The four core functions - F1 is optimized somewhat */
-
-/* #define F1(x, y, z) (x & y | ~x & z) */
-#define F1(x, y, z) (z ^ (x & (y ^ z)))
-#define F2(x, y, z) F1(z, x, y)
-#define F3(x, y, z) (x ^ y ^ z)
-#define F4(x, y, z) (y ^ (x | ~z))
-
-/* This is the central step in the MD5 algorithm. */
-#define MD5STEP(f, w, x, y, z, data, s) \
-	( w += f(x, y, z) + data,  w = w<<s | w>>(32-s),  w += x )
-
-/*
- * The core of the MD5 algorithm, this alters an existing MD5 hash to
- * reflect the addition of 16 longwords of new data.  MD5Update blocks
- * the data and converts bytes into longwords for this routine.
- */
-void MD5Transform(uint32_t buf[4], uint32_t const in[16])
-{
-    register uint32_t a, b, c, d;
-
-    a = buf[0];
-    b = buf[1];
-    c = buf[2];
-    d = buf[3];
-
-    MD5STEP(F1, a, b, c, d, in[0] + 0xd76aa478, 7);
-    MD5STEP(F1, d, a, b, c, in[1] + 0xe8c7b756, 12);
-    MD5STEP(F1, c, d, a, b, in[2] + 0x242070db, 17);
-    MD5STEP(F1, b, c, d, a, in[3] + 0xc1bdceee, 22);
-    MD5STEP(F1, a, b, c, d, in[4] + 0xf57c0faf, 7);
-    MD5STEP(F1, d, a, b, c, in[5] + 0x4787c62a, 12);
-    MD5STEP(F1, c, d, a, b, in[6] + 0xa8304613, 17);
-    MD5STEP(F1, b, c, d, a, in[7] + 0xfd469501, 22);
-    MD5STEP(F1, a, b, c, d, in[8] + 0x698098d8, 7);
-    MD5STEP(F1, d, a, b, c, in[9] + 0x8b44f7af, 12);
-    MD5STEP(F1, c, d, a, b, in[10] + 0xffff5bb1, 17);
-    MD5STEP(F1, b, c, d, a, in[11] + 0x895cd7be, 22);
-    MD5STEP(F1, a, b, c, d, in[12] + 0x6b901122, 7);
-    MD5STEP(F1, d, a, b, c, in[13] + 0xfd987193, 12);
-    MD5STEP(F1, c, d, a, b, in[14] + 0xa679438e, 17);
-    MD5STEP(F1, b, c, d, a, in[15] + 0x49b40821, 22);
-
-    MD5STEP(F2, a, b, c, d, in[1] + 0xf61e2562, 5);
-    MD5STEP(F2, d, a, b, c, in[6] + 0xc040b340, 9);
-    MD5STEP(F2, c, d, a, b, in[11] + 0x265e5a51, 14);
-    MD5STEP(F2, b, c, d, a, in[0] + 0xe9b6c7aa, 20);
-    MD5STEP(F2, a, b, c, d, in[5] + 0xd62f105d, 5);
-    MD5STEP(F2, d, a, b, c, in[10] + 0x02441453, 9);
-    MD5STEP(F2, c, d, a, b, in[15] + 0xd8a1e681, 14);
-    MD5STEP(F2, b, c, d, a, in[4] + 0xe7d3fbc8, 20);
-    MD5STEP(F2, a, b, c, d, in[9] + 0x21e1cde6, 5);
-    MD5STEP(F2, d, a, b, c, in[14] + 0xc33707d6, 9);
-    MD5STEP(F2, c, d, a, b, in[3] + 0xf4d50d87, 14);
-    MD5STEP(F2, b, c, d, a, in[8] + 0x455a14ed, 20);
-    MD5STEP(F2, a, b, c, d, in[13] + 0xa9e3e905, 5);
-    MD5STEP(F2, d, a, b, c, in[2] + 0xfcefa3f8, 9);
-    MD5STEP(F2, c, d, a, b, in[7] + 0x676f02d9, 14);
-    MD5STEP(F2, b, c, d, a, in[12] + 0x8d2a4c8a, 20);
-
-    MD5STEP(F3, a, b, c, d, in[5] + 0xfffa3942, 4);
-    MD5STEP(F3, d, a, b, c, in[8] + 0x8771f681, 11);
-    MD5STEP(F3, c, d, a, b, in[11] + 0x6d9d6122, 16);
-    MD5STEP(F3, b, c, d, a, in[14] + 0xfde5380c, 23);
-    MD5STEP(F3, a, b, c, d, in[1] + 0xa4beea44, 4);
-    MD5STEP(F3, d, a, b, c, in[4] + 0x4bdecfa9, 11);
-    MD5STEP(F3, c, d, a, b, in[7] + 0xf6bb4b60, 16);
-    MD5STEP(F3, b, c, d, a, in[10] + 0xbebfbc70, 23);
-    MD5STEP(F3, a, b, c, d, in[13] + 0x289b7ec6, 4);
-    MD5STEP(F3, d, a, b, c, in[0] + 0xeaa127fa, 11);
-    MD5STEP(F3, c, d, a, b, in[3] + 0xd4ef3085, 16);
-    MD5STEP(F3, b, c, d, a, in[6] + 0x04881d05, 23);
-    MD5STEP(F3, a, b, c, d, in[9] + 0xd9d4d039, 4);
-    MD5STEP(F3, d, a, b, c, in[12] + 0xe6db99e5, 11);
-    MD5STEP(F3, c, d, a, b, in[15] + 0x1fa27cf8, 16);
-    MD5STEP(F3, b, c, d, a, in[2] + 0xc4ac5665, 23);
-
-    MD5STEP(F4, a, b, c, d, in[0] + 0xf4292244, 6);
-    MD5STEP(F4, d, a, b, c, in[7] + 0x432aff97, 10);
-    MD5STEP(F4, c, d, a, b, in[14] + 0xab9423a7, 15);
-    MD5STEP(F4, b, c, d, a, in[5] + 0xfc93a039, 21);
-    MD5STEP(F4, a, b, c, d, in[12] + 0x655b59c3, 6);
-    MD5STEP(F4, d, a, b, c, in[3] + 0x8f0ccc92, 10);
-    MD5STEP(F4, c, d, a, b, in[10] + 0xffeff47d, 15);
-    MD5STEP(F4, b, c, d, a, in[1] + 0x85845dd1, 21);
-    MD5STEP(F4, a, b, c, d, in[8] + 0x6fa87e4f, 6);
-    MD5STEP(F4, d, a, b, c, in[15] + 0xfe2ce6e0, 10);
-    MD5STEP(F4, c, d, a, b, in[6] + 0xa3014314, 15);
-    MD5STEP(F4, b, c, d, a, in[13] + 0x4e0811a1, 21);
-    MD5STEP(F4, a, b, c, d, in[4] + 0xf7537e82, 6);
-    MD5STEP(F4, d, a, b, c, in[11] + 0xbd3af235, 10);
-    MD5STEP(F4, c, d, a, b, in[2] + 0x2ad7d2bb, 15);
-    MD5STEP(F4, b, c, d, a, in[9] + 0xeb86d391, 21);
-
-    buf[0] += a;
-    buf[1] += b;
-    buf[2] += c;
-    buf[3] += d;
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/mmap.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,139 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#include "file.h"
-
-/* ----------------------------------------------------------------------- *
- *   Unix-style memory mapping, using mmap().
- * ----------------------------------------------------------------------- */
-#if defined(HAVE_FILENO) && defined(HAVE_MMAP)
-
-/*
- * System page size
- */
-
-/* File scope since not all compilers like static data in inline functions */
-static size_t nasm_pagemask;
-
-static size_t get_pagemask(void)
-{
-    size_t ps = 0;
-
-# if defined(HAVE_SYSCONF) && defined(_SC_PAGESIZE)
-    ps = sysconf(_SC_PAGESIZE);
-# elif defined(HAVE_GETPAGESIZE)
-    ps = getpagesize();
-# elif defined(PAGE_SIZE)
-    ps = PAGE_SIZE;
-# endif
-
-    nasm_pagemask = ps = is_power2(ps) ? (ps - 1) : 0;
-    return ps;
-}
-
-static inline size_t pagemask(void)
-{
-    size_t pm = nasm_pagemask;
-
-    if (unlikely(!pm))
-        return get_pagemask();
-
-    return pm;
-}
-
-/*
- * Try to map an input file into memory
- */
-const void *nasm_map_file(FILE *fp, off_t start, off_t len)
-{
-    const char *p;
-    off_t  astart;              /* Aligned start */
-    size_t salign;              /* Amount of start adjustment */
-    size_t alen;                /* Aligned length */
-    const size_t page_mask = pagemask();
-
-    if (unlikely(!page_mask))
-        return NULL;            /* Page size undefined? */
-
-    if (unlikely(!len))
-        return NULL;            /* Mapping nothing... */
-
-    if (unlikely(len != (off_t)(size_t)len))
-        return NULL;            /* Address space insufficient */
-
-    astart = start & ~(off_t)page_mask;
-    salign = start - astart;
-    alen = (len + salign + page_mask) & ~page_mask;
-
-    p = mmap(NULL, alen, PROT_READ, MAP_SHARED, fileno(fp), astart);
-    return unlikely(p == MAP_FAILED) ? NULL : p + salign;
-}
-
-/*
- * Unmap an input file
- */
-void nasm_unmap_file(const void *p, size_t len)
-{
-    const size_t page_mask = pagemask();
-    uintptr_t astart;
-    size_t salign;
-    size_t alen;
-
-    if (unlikely(!page_mask))
-        return;
-
-    astart = (uintptr_t)p & ~(uintptr_t)page_mask;
-    salign = (uintptr_t)p - astart;
-    alen = (len + salign + page_mask) & ~page_mask;
-
-    munmap((void *)astart, alen);
-}
-
-/* ----------------------------------------------------------------------- *
- *   No memory map support at all
- *   XXX: Add a section with Windows support
- * ----------------------------------------------------------------------- */
-#else
-
-const void *nasm_map_file(FILE *fp, off_t start, off_t len)
-{
-    (void)fp; (void)start; (void)len;
-    return NULL;
-}
-
-void nasm_unmap_file(const void *p, size_t len)
-{
-    (void)p; (void)len;
-}
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/nasmlib/raa.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,173 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#include "nasmlib.h"
-#include "raa.h"
-
-/*
- * Routines to manage a dynamic random access array of int64_ts which
- * may grow in size to be more than the largest single malloc'able
- * chunk.
- */
-
-#define RAA_BLKSHIFT	15      /* 2**this many longs allocated at once */
-#define RAA_BLKSIZE	(1 << RAA_BLKSHIFT)
-#define RAA_LAYERSHIFT	15      /* 2**this many _pointers_ allocated */
-#define RAA_LAYERSIZE	(1 << RAA_LAYERSHIFT)
-
-typedef struct RAA RAA;
-typedef union RAA_UNION RAA_UNION;
-typedef struct RAA_LEAF RAA_LEAF;
-typedef struct RAA_BRANCH RAA_BRANCH;
-
-struct RAA {
-    /*
-     * Number of layers below this one to get to the real data. 0
-     * means this structure is a leaf, holding RAA_BLKSIZE real
-     * data items; 1 and above mean it's a branch, holding
-     * RAA_LAYERSIZE pointers to the next level branch or leaf
-     * structures.
-     */
-    int layers;
-
-    /*
-     * Number of real data items spanned by one position in the
-     * `data' array at this level. This number is 0 trivially, for
-     * a leaf (level 0): for a level 1 branch it should be
-     * RAA_BLKSHIFT, and for a level 2 branch it's
-     * RAA_LAYERSHIFT+RAA_BLKSHIFT.
-     */
-    int shift;
-
-    union RAA_UNION {
-        struct RAA_LEAF {
-            int64_t data[RAA_BLKSIZE];
-        } l;
-        struct RAA_BRANCH {
-            struct RAA *data[RAA_LAYERSIZE];
-        } b;
-    } u;
-};
-
-#define LEAFSIZ (sizeof(RAA)-sizeof(RAA_UNION)+sizeof(RAA_LEAF))
-#define BRANCHSIZ (sizeof(RAA)-sizeof(RAA_UNION)+sizeof(RAA_BRANCH))
-
-#define LAYERSHIFT(r) ( (r)->layers==0 ? RAA_BLKSHIFT : RAA_LAYERSHIFT )
-
-static struct RAA *real_raa_init(int layers)
-{
-    struct RAA *r;
-    int i;
-
-    if (layers == 0) {
-        r = nasm_zalloc(LEAFSIZ);
-        r->shift = 0;
-    } else {
-        r = nasm_malloc(BRANCHSIZ);
-        r->layers = layers;
-        for (i = 0; i < RAA_LAYERSIZE; i++)
-            r->u.b.data[i] = NULL;
-        r->shift =
-            (RAA_BLKSHIFT - RAA_LAYERSHIFT) + layers * RAA_LAYERSHIFT;
-    }
-    return r;
-}
-
-struct RAA *raa_init(void)
-{
-    return real_raa_init(0);
-}
-
-void raa_free(struct RAA *r)
-{
-    if (r->layers) {
-        struct RAA **p;
-        for (p = r->u.b.data; p - r->u.b.data < RAA_LAYERSIZE; p++)
-            if (*p)
-                raa_free(*p);
-    }
-    nasm_free(r);
-}
-
-int64_t raa_read(struct RAA *r, int32_t posn)
-{
-    if ((uint32_t) posn >= (UINT32_C(1) << (r->shift + LAYERSHIFT(r))))
-        return 0;               /* Return 0 for undefined entries */
-    while (r->layers > 0) {
-        int32_t l = posn >> r->shift;
-        posn &= (UINT32_C(1) << r->shift) - 1;
-        r = r->u.b.data[l];
-        if (!r)
-            return 0;           /* Return 0 for undefined entries */
-    }
-    return r->u.l.data[posn];
-}
-
-struct RAA *raa_write(struct RAA *r, int32_t posn, int64_t value)
-{
-    struct RAA *result;
-
-    nasm_assert(posn >= 0);
-
-    while ((UINT32_C(1) << (r->shift + LAYERSHIFT(r))) <= (uint32_t) posn) {
-        /*
-         * Must add a layer.
-         */
-        struct RAA *s;
-        int i;
-
-        s = nasm_malloc(BRANCHSIZ);
-        for (i = 0; i < RAA_LAYERSIZE; i++)
-            s->u.b.data[i] = NULL;
-        s->layers = r->layers + 1;
-        s->shift = LAYERSHIFT(r) + r->shift;
-        s->u.b.data[0] = r;
-        r = s;
-    }
-
-    result = r;
-
-    while (r->layers > 0) {
-        struct RAA **s;
-        int32_t l = posn >> r->shift;
-        posn &= (UINT32_C(1) << r->shift) - 1;
-        s = &r->u.b.data[l];
-        if (!*s)
-            *s = real_raa_init(r->layers - 1);
-        r = *s;
-    }
-
-    r->u.l.data[posn] = value;
-
-    return result;
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/rbtree.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,119 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * rbtree.c
- *
- * Simple implementation of a left-leaning red-black tree with 64-bit
- * integer keys.  The search operation will return the highest node <=
- * the key; only search and insert are supported, but additional
- * standard llrbtree operations can be coded up at will.
- *
- * See http://www.cs.princeton.edu/~rs/talks/LLRB/RedBlack.pdf for
- * information about left-leaning red-black trees.
- */
-
-#include "rbtree.h"
-
-struct rbtree *rb_search(struct rbtree *tree, uint64_t key)
-{
-    struct rbtree *best = NULL;
-
-    while (tree) {
-	if (tree->key == key)
-	    return tree;
-	else if (tree->key > key)
-	    tree = tree->left;
-	else {
-	    best = tree;
-	    tree = tree->right;
-	}
-    }
-    return best;
-}
-
-static bool is_red(struct rbtree *h)
-{
-    return h && h->red;
-}
-
-static struct rbtree *rotate_left(struct rbtree *h)
-{
-    struct rbtree *x = h->right;
-    h->right = x->left;
-    x->left = h;
-    x->red = x->left->red;
-    x->left->red = true;
-    return x;
-}
-
-static struct rbtree *rotate_right(struct rbtree *h)
-{
-    struct rbtree *x = h->left;
-    h->left = x->right;
-    x->right = h;
-    x->red = x->right->red;
-    x->right->red = true;
-    return x;
-}
-
-static void color_flip(struct rbtree *h)
-{
-    h->red = !h->red;
-    h->left->red = !h->left->red;
-    h->right->red = !h->right->red;
-}
-
-struct rbtree *rb_insert(struct rbtree *tree, struct rbtree *node)
-{
-    if (!tree) {
-	node->red = true;
-	return node;
-    }
-
-    if (is_red(tree->left) && is_red(tree->right))
-	color_flip(tree);
-
-    if (node->key < tree->key)
-	tree->left = rb_insert(tree->left, node);
-    else
-	tree->right = rb_insert(tree->right, node);
-
-    if (is_red(tree->right))
-	tree = rotate_left(tree);
-
-    if (is_red(tree->left) && is_red(tree->left->left))
-	tree = rotate_right(tree);
-
-    return tree;
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/readnum.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,172 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * nasmlib.c	library routines for the Netwide Assembler
- */
-
-#include "compiler.h"
-
-#include <ctype.h>
-
-#include "nasmlib.h"
-#include "error.h"
-#include "nasm.h"               /* For globalbits */
-
-#define lib_isnumchar(c)    (nasm_isalnum(c) || (c) == '$' || (c) == '_')
-
-static int radix_letter(char c)
-{
-    switch (c) {
-    case 'b': case 'B':
-    case 'y': case 'Y':
-	return 2;		/* Binary */
-    case 'o': case 'O':
-    case 'q': case 'Q':
-	return 8;		/* Octal */
-    case 'h': case 'H':
-    case 'x': case 'X':
-	return 16;		/* Hexadecimal */
-    case 'd': case 'D':
-    case 't': case 'T':
-	return 10;		/* Decimal */
-    default:
-	return 0;		/* Not a known radix letter */
-    }
-}
-
-int64_t readnum(char *str, bool *error)
-{
-    char *r = str, *q;
-    int32_t pradix, sradix, radix;
-    int plen, slen, len;
-    uint64_t result, checklimit;
-    int digit, last;
-    bool warn = false;
-    int sign = 1;
-
-    *error = false;
-
-    while (nasm_isspace(*r))
-        r++;                    /* find start of number */
-
-    /*
-     * If the number came from make_tok_num (as a result of an %assign), it
-     * might have a '-' built into it (rather than in a preceeding token).
-     */
-    if (*r == '-') {
-        r++;
-        sign = -1;
-    }
-
-    q = r;
-
-    while (lib_isnumchar(*q))
-        q++;                    /* find end of number */
-
-    len = q-r;
-    if (!len) {
-	/* Not numeric */
-	*error = true;
-	return 0;
-    }
-
-    /*
-     * Handle radix formats:
-     *
-     * 0<radix-letter><string>
-     * $<string>		(hexadecimal)
-     * <string><radix-letter>
-     */
-    pradix = sradix = 0;
-    plen = slen = 0;
-
-    if (len > 2 && *r == '0' && (pradix = radix_letter(r[1])) != 0)
-	plen = 2;
-    else if (len > 1 && *r == '$')
-	pradix = 16, plen = 1;
-
-    if (len > 1 && (sradix = radix_letter(q[-1])) != 0)
-	slen = 1;
-
-    if (pradix > sradix) {
-	radix = pradix;
-	r += plen;
-    } else if (sradix > pradix) {
-	radix = sradix;
-	q -= slen;
-    } else {
-	/* Either decimal, or invalid -- if invalid, we'll trip up
-	   further down. */
-	radix = 10;
-    }
-
-    /*
-     * `checklimit' must be 2**64 / radix. We can't do that in
-     * 64-bit arithmetic, which we're (probably) using, so we
-     * cheat: since we know that all radices we use are even, we
-     * can divide 2**63 by radix/2 instead.
-     */
-    checklimit = UINT64_C(0x8000000000000000) / (radix >> 1);
-
-    /*
-     * Calculate the highest allowable value for the last digit of a
-     * 64-bit constant... in radix 10, it is 6, otherwise it is 0
-     */
-    last = (radix == 10 ? 6 : 0);
-
-    result = 0;
-    while (*r && r < q) {
-	if (*r != '_') {
-	    if (*r < '0' || (*r > '9' && *r < 'A')
-		|| (digit = numvalue(*r)) >= radix) {
-		*error = true;
-		return 0;
-	    }
-	    if (result > checklimit ||
-		(result == checklimit && digit >= last)) {
-		warn = true;
-	    }
-
-	    result = radix * result + digit;
-	}
-        r++;
-    }
-
-    if (warn)
-        nasm_error(ERR_WARNING | ERR_PASS1 | ERR_WARN_NOV,
-		   "numeric constant %s does not fit in 64 bits",
-		   str);
-
-    return result * sign;
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/realpath.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * realpath.c	As system-independent as possible implementation of realpath()
- */
-
-#include "compiler.h"
-
-#include <stdlib.h>
-#include <errno.h>
-#include <limits.h>
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif
-#ifdef HAVE_SYS_PARAM_H
-# include <sys/param.h>
-#endif
-
-#include "nasmlib.h"
-
-#ifdef HAVE_CANONICALIZE_FILE_NAME
-
-/*
- * GNU-specific, but avoids the realpath(..., NULL)
- * portability problem if it exists.
- */
-char *nasm_realpath(const char *rel_path)
-{
-    char *rp = canonicalize_file_name(rel_path);
-    return rp ? rp : nasm_strdup(rel_path);
-}
-
-#elif defined(HAVE_REALPATH)
-
-/*
- * POSIX.1-2008 defines realpath(..., NULL); POSIX.1-2001 doesn't guarantee
- * that a NULL second argument is supported.
- */
-
-char *nasm_realpath(const char *rel_path)
-{
-    char *rp;
-
-    rp = realpath(rel_path, NULL);
-
-    /* Not all implemetations of realpath() support a NULL second argument */
-    if (!rp && errno == EINVAL) {
-        long path_max = -1;
-        char *rp;
-
-#if defined(HAVE_PATHCONF) && defined(_PC_PATH_MAX)
-        path_max = pathconf(rel_path, _PC_PATH_MAX); /* POSIX */
-#endif
-
-        if (path_max < 0) {
-#ifdef PATH_MAX
-            path_max = PATH_MAX;    /* SUSv2 */
-#elif defined(MAXPATHLEN)
-            path_max = MAXPATHLEN;  /* Solaris */
-#else
-            path_max = 65536;    /* Crazily high, we hope */
-#endif
-        }
-
-        rp = nasm_malloc(path_max);
-
-        if (!realpath(rel_path, rp)) {
-            nasm_free(rp);
-            rp = NULL;
-        } else {
-            /* On some systems, pathconf() can return a very large value */
-
-            rp[path_max - 1] = '\0'; /* Just in case overrun is possible */
-            rp = nasm_realloc(rp, strlen(rp) + 1);
-        }
-    }
-
-    return rp ? rp : nasm_strdup(rel_path);
-}
-
-#elif defined(HAVE__FULLPATH)
-
-/*
- * win32/win64 API
- */
-
-char *nasm_realpath(const char *rel_path)
-{
-    char *rp = _fullpath(NULL, rel_path, 0);
-    return rp ? rp : nasm_strdup(rel_path);
-}
-
-#else
-
-/*
- * There is nothing we know how to do here, so hope it just works anyway.
- */
-
-char *nasm_realpath(const char *rel_path)
-{
-    return nasm_strdup(rel_path);
-}
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/nasmlib/saa.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,418 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#include "compiler.h"
-#include "nasmlib.h"
-#include "saa.h"
-
-/* Aggregate SAA components smaller than this */
-#define SAA_BLKSHIFT	16
-#define SAA_BLKLEN	((size_t)1 << SAA_BLKSHIFT)
-
-struct SAA *saa_init(size_t elem_len)
-{
-    struct SAA *s;
-    char *data;
-
-    s = nasm_zalloc(sizeof(struct SAA));
-
-    if (elem_len >= SAA_BLKLEN)
-        s->blk_len = elem_len;
-    else
-        s->blk_len = SAA_BLKLEN - (SAA_BLKLEN % elem_len);
-
-    s->elem_len = elem_len;
-    s->length = s->blk_len;
-    data = nasm_malloc(s->blk_len);
-    s->nblkptrs = s->nblks = 1;
-    s->blk_ptrs = nasm_malloc(sizeof(char *));
-    s->blk_ptrs[0] = data;
-    s->wblk = s->rblk = &s->blk_ptrs[0];
-
-    return s;
-}
-
-void saa_free(struct SAA *s)
-{
-    char **p;
-    size_t n;
-
-    for (p = s->blk_ptrs, n = s->nblks; n; p++, n--)
-        nasm_free(*p);
-
-    nasm_free(s->blk_ptrs);
-    nasm_free(s);
-}
-
-/* Add one allocation block to an SAA */
-static void saa_extend(struct SAA *s)
-{
-    size_t blkn = s->nblks++;
-
-    if (blkn >= s->nblkptrs) {
-        size_t rindex = s->rblk - s->blk_ptrs;
-        size_t windex = s->wblk - s->blk_ptrs;
-
-        s->nblkptrs <<= 1;
-        s->blk_ptrs =
-            nasm_realloc(s->blk_ptrs, s->nblkptrs * sizeof(char *));
-
-        s->rblk = s->blk_ptrs + rindex;
-        s->wblk = s->blk_ptrs + windex;
-    }
-
-    s->blk_ptrs[blkn] = nasm_malloc(s->blk_len);
-    s->length += s->blk_len;
-}
-
-void *saa_wstruct(struct SAA *s)
-{
-    void *p;
-
-    nasm_assert((s->wpos % s->elem_len) == 0);
-
-    if (s->wpos + s->elem_len > s->blk_len) {
-        nasm_assert(s->wpos == s->blk_len);
-        if (s->wptr + s->elem_len > s->length)
-            saa_extend(s);
-        s->wblk++;
-        s->wpos = 0;
-    }
-
-    p = *s->wblk + s->wpos;
-    s->wpos += s->elem_len;
-    s->wptr += s->elem_len;
-
-    if (s->wptr > s->datalen)
-        s->datalen = s->wptr;
-
-    return p;
-}
-
-void saa_wbytes(struct SAA *s, const void *data, size_t len)
-{
-    const char *d = data;
-
-    while (len) {
-        size_t l = s->blk_len - s->wpos;
-        if (l > len)
-            l = len;
-        if (l) {
-            if (d) {
-                memcpy(*s->wblk + s->wpos, d, l);
-                d += l;
-            } else
-                memset(*s->wblk + s->wpos, 0, l);
-            s->wpos += l;
-            s->wptr += l;
-            len -= l;
-
-            if (s->datalen < s->wptr)
-                s->datalen = s->wptr;
-        }
-        if (len) {
-            if (s->wptr >= s->length)
-                saa_extend(s);
-            s->wblk++;
-            s->wpos = 0;
-        }
-    }
-}
-
-void saa_rewind(struct SAA *s)
-{
-    s->rblk = s->blk_ptrs;
-    s->rpos = s->rptr = 0;
-}
-
-void *saa_rstruct(struct SAA *s)
-{
-    void *p;
-
-    if (s->rptr + s->elem_len > s->datalen)
-        return NULL;
-
-    nasm_assert((s->rpos % s->elem_len) == 0);
-
-    if (s->rpos + s->elem_len > s->blk_len) {
-        s->rblk++;
-        s->rpos = 0;
-    }
-
-    p = *s->rblk + s->rpos;
-    s->rpos += s->elem_len;
-    s->rptr += s->elem_len;
-
-    return p;
-}
-
-const void *saa_rbytes(struct SAA *s, size_t * lenp)
-{
-    const void *p;
-    size_t len;
-
-    if (s->rptr >= s->datalen) {
-        *lenp = 0;
-        return NULL;
-    }
-
-    if (s->rpos >= s->blk_len) {
-        s->rblk++;
-        s->rpos = 0;
-    }
-
-    len = *lenp;
-    if (len > s->datalen - s->rptr)
-        len = s->datalen - s->rptr;
-    if (len > s->blk_len - s->rpos)
-        len = s->blk_len - s->rpos;
-
-    *lenp = len;
-    p = *s->rblk + s->rpos;
-
-    s->rpos += len;
-    s->rptr += len;
-
-    return p;
-}
-
-void saa_rnbytes(struct SAA *s, void *data, size_t len)
-{
-    char *d = data;
-
-    nasm_assert(s->rptr + len <= s->datalen);
-
-    while (len) {
-        size_t l;
-        const void *p;
-
-        l = len;
-        p = saa_rbytes(s, &l);
-
-        memcpy(d, p, l);
-        d += l;
-        len -= l;
-    }
-}
-
-/* Same as saa_rnbytes, except position the counter first */
-void saa_fread(struct SAA *s, size_t posn, void *data, size_t len)
-{
-    size_t ix;
-
-    nasm_assert(posn + len <= s->datalen);
-
-    if (likely(s->blk_len == SAA_BLKLEN)) {
-        ix = posn >> SAA_BLKSHIFT;
-        s->rpos = posn & (SAA_BLKLEN - 1);
-    } else {
-        ix = posn / s->blk_len;
-        s->rpos = posn % s->blk_len;
-    }
-    s->rptr = posn;
-    s->rblk = &s->blk_ptrs[ix];
-
-    saa_rnbytes(s, data, len);
-}
-
-/* Same as saa_wbytes, except position the counter first */
-void saa_fwrite(struct SAA *s, size_t posn, const void *data, size_t len)
-{
-    size_t ix;
-
-    /* Seek beyond the end of the existing array not supported */
-    nasm_assert(posn <= s->datalen);
-
-    if (likely(s->blk_len == SAA_BLKLEN)) {
-        ix = posn >> SAA_BLKSHIFT;
-        s->wpos = posn & (SAA_BLKLEN - 1);
-    } else {
-        ix = posn / s->blk_len;
-        s->wpos = posn % s->blk_len;
-    }
-    s->wptr = posn;
-    s->wblk = &s->blk_ptrs[ix];
-
-    if (!s->wpos) {
-        s->wpos = s->blk_len;
-        s->wblk--;
-    }
-
-    saa_wbytes(s, data, len);
-}
-
-void saa_fpwrite(struct SAA *s, FILE * fp)
-{
-    const char *data;
-    size_t len;
-
-    saa_rewind(s);
-    while (len = s->datalen, (data = saa_rbytes(s, &len)) != NULL)
-        nasm_write(data, len, fp);
-}
-
-void saa_write8(struct SAA *s, uint8_t v)
-{
-    saa_wbytes(s, &v, 1);
-}
-
-#ifdef WORDS_LITTEENDIAN
-
-void saa_write16(struct SAA *s, uint16_t v)
-{
-    saa_wbytes(s, &v, 2);
-}
-
-void saa_write32(struct SAA *s, uint32_t v)
-{
-    saa_wbytes(s, &v, 4);
-}
-
-void saa_write64(struct SAA *s, uint64_t v)
-{
-    saa_wbytes(s, &v, 8);
-}
-
-void saa_writeaddr(struct SAA *s, uint64_t v, size_t len)
-{
-    saa_wbytes(s, &v, len);
-}
-
-#else                           /* not WORDS_LITTLEENDIAN */
-
-void saa_write16(struct SAA *s, uint16_t v)
-{
-    uint8_t b[2];
-
-    b[0] = v;
-    b[1] = v >> 8;
-    saa_wbytes(s, b, 2);
-}
-
-void saa_write32(struct SAA *s, uint32_t v)
-{
-    uint8_t b[4];
-
-    b[0] = v;
-    b[1] = v >> 8;
-    b[2] = v >> 16;
-    b[3] = v >> 24;
-    saa_wbytes(s, b, 4);
-}
-
-void saa_write64(struct SAA *s, uint64_t v)
-{
-    uint8_t b[8];
-
-    b[0] = v;
-    b[1] = v >> 8;
-    b[2] = v >> 16;
-    b[3] = v >> 24;
-    b[4] = v >> 32;
-    b[5] = v >> 40;
-    b[6] = v >> 48;
-    b[7] = v >> 56;
-
-    saa_wbytes(s, b, 8);
-}
-
-void saa_writeaddr(struct SAA *s, uint64_t v, size_t len)
-{
-    uint8_t b[8];
-
-    b[0] = v;
-    b[1] = v >> 8;
-    b[2] = v >> 16;
-    b[3] = v >> 24;
-    b[4] = v >> 32;
-    b[5] = v >> 40;
-    b[6] = v >> 48;
-    b[7] = v >> 56;
-
-    saa_wbytes(s, b, len);
-}
-
-#endif                          /* WORDS_LITTLEENDIAN */
-
-/* write unsigned LEB128 value to SAA */
-void saa_wleb128u(struct SAA *psaa, int value)
-{
-    char temp[64], *ptemp;
-    uint8_t byte;
-    int len;
-
-    ptemp = temp;
-    len = 0;
-    do {
-        byte = value & 127;
-        value >>= 7;
-        if (value != 0)         /* more bytes to come */
-            byte |= 0x80;
-        *ptemp = byte;
-        ptemp++;
-        len++;
-    } while (value != 0);
-    saa_wbytes(psaa, temp, len);
-}
-
-/* write signed LEB128 value to SAA */
-void saa_wleb128s(struct SAA *psaa, int value)
-{
-    char temp[64], *ptemp;
-    uint8_t byte;
-    bool more, negative;
-    int size, len;
-
-    ptemp = temp;
-    more = 1;
-    negative = (value < 0);
-    size = sizeof(int) * 8;
-    len = 0;
-    while (more) {
-        byte = value & 0x7f;
-        value >>= 7;
-        if (negative)
-            /* sign extend */
-            value |= -(1 << (size - 7));
-        /* sign bit of byte is second high order bit (0x40) */
-        if ((value == 0 && !(byte & 0x40)) ||
-            ((value == -1) && (byte & 0x40)))
-            more = 0;
-        else
-            byte |= 0x80;
-        *ptemp = byte;
-        ptemp++;
-        len++;
-    }
-    saa_wbytes(psaa, temp, len);
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/srcfile.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * srcfile.c - keep track of the current position in the input stream
- */
-
-#include "compiler.h"
-
-#include <string.h>
-#include <inttypes.h>
-
-#include "nasmlib.h"
-#include "hashtbl.h"
-
-static const char *file_name = NULL;
-static int32_t line_number = 0;
-
-static struct hash_table filename_hash;
-
-void src_init(void)
-{
-    hash_init(&filename_hash, HASH_MEDIUM);
-}
-
-void src_free(void)
-{
-    struct hash_tbl_node *iter = NULL;
-    void *dp;
-
-    while ((dp = hash_iterate(&filename_hash, &iter, NULL)) != NULL)
-        nasm_free(dp);
-
-    hash_free(&filename_hash);
-}
-
-/*
- * Set the current filename, returning the old one.  The input
- * filename is duplicated if needed.
- */
-const char *src_set_fname(const char *newname)
-{
-    struct hash_insert hi;
-    const char *oldname;
-    void **dp;
-
-    if (newname) {
-        dp = hash_find(&filename_hash, newname, &hi);
-        if (dp) {
-            newname = (const char *)(*dp);
-        } else {
-            newname = nasm_strdup(newname);
-            hash_add(&hi, newname, (void *)newname);
-        }
-    }
-
-    oldname = file_name;
-    file_name = newname;
-    return oldname;
-}
-
-int32_t src_set_linnum(int32_t newline)
-{
-    int32_t oldline = line_number;
-    line_number = newline;
-    return oldline;
-}
-
-void src_set(int32_t line, const char *fname)
-{
-    src_set_fname(fname);
-    src_set_linnum(line);
-}
-
-const char *src_get_fname(void)
-{
-    return file_name;
-}
-
-int32_t src_get_linnum(void)
-{
-    return line_number;
-}
-
-int32_t src_get(int32_t *xline, const char **xname)
-{
-    const char *xn = *xname;
-    int32_t xl = *xline;
-
-    *xline = line_number;
-    *xname = file_name;
-
-    /* XXX: Is the strcmp() really needed here? */
-    if (!file_name || !xn || (xn != file_name && strcmp(xn, file_name)))
-        return -2;
-    else
-        return line_number - xl;
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/string.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,242 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * nasmlib.c	library routines for the Netwide Assembler
- */
-
-#include "compiler.h"
-
-#include <stdlib.h>
-#include <ctype.h>
-
-#include "nasmlib.h"
-
-/*
- * Prepare a table of tolower() results.  This avoids function calls
- * on some platforms.
- */
-
-unsigned char nasm_tolower_tab[256];
-
-void tolower_init(void)
-{
-    int i;
-
-    for (i = 0; i < 256; i++)
-	nasm_tolower_tab[i] = tolower(i);
-}
-
-#ifndef nasm_stricmp
-int nasm_stricmp(const char *s1, const char *s2)
-{
-    unsigned char c1, c2;
-    int d;
-
-    while (1) {
-	c1 = nasm_tolower(*s1++);
-	c2 = nasm_tolower(*s2++);
-	d = c1-c2;
-
-	if (d)
-	    return d;
-	if (!c1)
-	    break;
-    }
-    return 0;
-}
-#endif
-
-#ifndef nasm_strnicmp
-int nasm_strnicmp(const char *s1, const char *s2, size_t n)
-{
-    unsigned char c1, c2;
-    int d;
-
-    while (n--) {
-	c1 = nasm_tolower(*s1++);
-	c2 = nasm_tolower(*s2++);
-	d = c1-c2;
-
-	if (d)
-	    return d;
-	if (!c1)
-	    break;
-    }
-    return 0;
-}
-#endif
-
-int nasm_memicmp(const char *s1, const char *s2, size_t n)
-{
-    unsigned char c1, c2;
-    int d;
-
-    while (n--) {
-	c1 = nasm_tolower(*s1++);
-	c2 = nasm_tolower(*s2++);
-	d = c1-c2;
-	if (d)
-	    return d;
-    }
-    return 0;
-}
-
-#ifndef nasm_strsep
-char *nasm_strsep(char **stringp, const char *delim)
-{
-        char *s = *stringp;
-        char *e;
-
-        if (!s)
-                return NULL;
-
-        e = strpbrk(s, delim);
-        if (e)
-                *e++ = '\0';
-
-        *stringp = e;
-        return s;
-}
-#endif
-
-/* skip leading spaces */
-char *nasm_skip_spaces(const char *p)
-{
-    if (p)
-        while (*p && nasm_isspace(*p))
-            p++;
-    return (char *)p;
-}
-
-/* skip leading non-spaces */
-char *nasm_skip_word(const char *p)
-{
-    if (p)
-        while (*p && !nasm_isspace(*p))
-            p++;
-    return (char *)p;
-}
-
-/* zap leading spaces with zero */
-char *nasm_zap_spaces_fwd(char *p)
-{
-    if (p)
-        while (*p && nasm_isspace(*p))
-            *p++ = 0x0;
-    return p;
-}
-
-/* zap spaces with zero in reverse order */
-char *nasm_zap_spaces_rev(char *p)
-{
-    if (p)
-        while (*p && nasm_isspace(*p))
-            *p-- = 0x0;
-    return p;
-}
-
-/* zap leading and trailing spaces */
-char *nasm_trim_spaces(char *p)
-{
-    p = nasm_zap_spaces_fwd(p);
-    nasm_zap_spaces_fwd(nasm_skip_word(p));
-
-    return p;
-}
-
-/*
- * return the word extracted from a stream
- * or NULL if nothing left
- */
-char *nasm_get_word(char *p, char **tail)
-{
-    char *word = nasm_skip_spaces(p);
-    char *next = nasm_skip_word(word);
-
-    if (word && *word) {
-        if (*next)
-            *next++ = '\0';
-    } else
-        word = next = NULL;
-
-    /* NOTE: the tail may start with spaces */
-    *tail = next;
-
-    return word;
-}
-
-/*
- * Extract "opt=val" values from the stream and
- * returns "opt"
- *
- * Exceptions:
- * 1) If "=val" passed the NULL returned though
- *    you may continue handling the tail via "next"
- * 2) If "=" passed the NULL is returned and "val"
- *    is set to NULL as well
- */
-char *nasm_opt_val(char *p, char **val, char **next)
-{
-    char *q, *nxt;
-
-    *val = *next = NULL;
-
-    p = nasm_get_word(p, &nxt);
-    if (!p)
-        return NULL;
-
-    q = strchr(p, '=');
-    if (q) {
-        if (q == p)
-            p = NULL;
-        *q++='\0';
-        if (*q) {
-            *val = q;
-        } else {
-            q = nasm_get_word(q + 1, &nxt);
-            if (q)
-                *val = q;
-        }
-    } else {
-        q = nasm_skip_spaces(nxt);
-        if (q && *q == '=') {
-            q = nasm_get_word(q + 1, &nxt);
-            if (q)
-                *val = q;
-        }
-    }
-
-    *next = nxt;
-    return p;
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/strlist.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * strlist.c - simple linked list of strings
- */
-
-#include "compiler.h"
-
-#include <string.h>
-
-#include "strlist.h"
-
-static inline StrList *nasm_str_to_strlist(const char *str)
-{
-    size_t l = strlen(str) + 1;
-    StrList *sl = nasm_malloc(l + sizeof sl->next);
-
-    memcpy(sl->str, str, l);
-    sl->next = NULL;
-
-    return sl;
-}
-
-/*
- * Append a string list entry to a string list if and only if it isn't
- * already there.  Return true if it was added.
- */
-bool nasm_add_to_strlist(StrList **head, StrList *entry)
-{
-    StrList *list;
-
-    if (!head)
-        return false;
-
-    list = *head;
-    while (list) {
-        if (!strcmp(list->str, entry->str))
-            return false;
-        head = &list->next;
-        list = list->next;
-    }
-
-    *head = entry;
-    entry->next = NULL;
-    return true;
-}
-
-/*
- * Append a string to a string list if and only if it isn't
- * already there.  Return true if it was added.
- */
-bool nasm_add_string_to_strlist(StrList **head, const char *str)
-{
-    StrList *list;
-
-    if (!head)
-        return false;
-
-    list = *head;
-    while (list) {
-        if (!strcmp(list->str, str))
-            return false;
-        head = &list->next;
-        list = list->next;
-    }
-
-    *head = nasm_str_to_strlist(str);
-    return true;
-}
--- a/nasmbuild/nasm-2.13rc9/nasmlib/ver.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#include "ver.h"
-#include "version.h"
-
-/* This is printed when entering nasm -v */
-const char nasm_version[] = NASM_VER;
-const char nasm_date[] = __DATE__;
-const char nasm_compile_options[] = ""
-#ifdef DEBUG
-    " with -DDEBUG"
-#endif
-    ;
-
-/* These are used by some backends. */
-const char nasm_comment[] =
-    "The Netwide Assembler " NASM_VER;
-
-const char nasm_signature[] =
-    "NASM " NASM_VER;
--- a/nasmbuild/nasm-2.13rc9/nasmlib/zerobuf.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * nasmlib.c	library routines for the Netwide Assembler
- */
-
-#include "compiler.h"
-#include "nasmlib.h"
-
-/* Uninitialized -> all zero by C spec */
-const uint8_t zero_buffer[ZERO_BUF_SIZE];
--- a/nasmbuild/nasm-2.13rc9/ndisasm.1	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-'\" t
-.\"     Title: ndisasm
-.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
-.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
-.\"      Date: 03/28/2017
-.\"    Manual: The Netwide Assembler Project
-.\"    Source: NASM
-.\"  Language: English
-.\"
-.TH "NDISASM" "1" "03/28/2017" "NASM" "The Netwide Assembler Project"
-.\" -----------------------------------------------------------------
-.\" * Define some portability stuff
-.\" -----------------------------------------------------------------
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.\" http://bugs.debian.org/507673
-.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
-.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-.ie \n(.g .ds Aq \(aq
-.el       .ds Aq '
-.\" -----------------------------------------------------------------
-.\" * set default formatting
-.\" -----------------------------------------------------------------
-.\" disable hyphenation
-.nh
-.\" disable justification (adjust text to left margin only)
-.ad l
-.\" -----------------------------------------------------------------
-.\" * MAIN CONTENT STARTS HERE *
-.\" -----------------------------------------------------------------
-.SH "NAME"
-ndisasm \- the Netwide Disassembler, an 80x86 binary file disassembler
-.SH "SYNOPSIS"
-.sp
-\fBndisasm\fR [ \fB\-o\fR origin ] [ \fB\-s\fR sync\-point [\&...]] [ \fB\-a\fR | \fB\-i\fR ] [ \fB\-b\fR bits ] [ \fB\-u\fR ] [ \fB\-e\fR hdrlen ] [ \fB\-p\fR vendor ] [ \fB\-k\fR offset,length [\&...]] infile
-.SH "DESCRIPTION"
-.sp
-The \fBndisasm\fR command generates a disassembly listing of the binary file infile and directs it to stdout\&.
-.SH "OPTIONS"
-.PP
-\fB\-h\fR
-.RS 4
-Causes
-\fBndisasm\fR
-to exit immediately, after giving a summary of its invocation options\&.
-.RE
-.PP
-\fB\-r\fR|\fB\-v\fR
-.RS 4
-Causes
-\fBndisasm\fR
-to exit immediately, after displaying its version number\&.
-.RE
-.PP
-\fB\-o\fR \fIorigin\fR
-.RS 4
-Specifies the notional load address for the file\&. This option causes
-\fBndisasm\fR
-to get the addresses it lists down the left hand margin, and the target addresses of PC\-relative jumps and calls, right\&.
-.RE
-.PP
-\fB\-s\fR \fIsync\-point\fR
-.RS 4
-Manually specifies a synchronisation address, such that
-\fBndisasm\fR
-will not output any machine instruction which encompasses bytes on both sides of the address\&. Hence the instruction which starts at that address will be correctly disassembled\&.
-.RE
-.PP
-\fB\-e\fR \fIhdrlen\fR
-.RS 4
-Specifies a number of bytes to discard from the beginning of the file before starting disassembly\&. This does not count towards the calculation of the disassembly offset: the first
-\fIdisassembled\fR
-instruction will be shown starting at the given load address\&.
-.RE
-.PP
-\fB\-k\fR \fIoffset,length\fR
-.RS 4
-Specifies that
-\fIlength\fR
-bytes, starting from disassembly offset
-\fIoffset\fR, should be skipped over without generating any output\&. The skipped bytes still count towards the calculation of the disassembly offset\&.
-.RE
-.PP
-\fB\-a\fR|\fB\-i\fR
-.RS 4
-Enables automatic (or intelligent) sync mode, in which
-\fBndisasm\fR
-will attempt to guess where synchronisation should be performed, by means of examining the target addresses of the relative jumps and calls it disassembles\&.
-.RE
-.PP
-\fB\-b\fR \fIbits\fR
-.RS 4
-Specifies 16\-, 32\- or 64\-bit mode\&. The default is 16\-bit mode\&.
-.RE
-.PP
-\fB\-u\fR
-.RS 4
-Specifies 32\-bit mode, more compactly than using \(oq\-b 32\(cq\&.
-.RE
-.PP
-\fB\-p\fR \fIvendor\fR
-.RS 4
-Prefers instructions as defined by
-\fIvendor\fR
-in case of a conflict\&. Known
-\fIvendor\fR
-names include
-\fBintel\fR,
-\fBamd\fR,
-\fBcyrix\fR, and
-\fBidt\fR\&. The default is
-\fBintel\fR\&.
-.RE
-.SH "RESTRICTIONS"
-.sp
-\fBndisasm\fR only disassembles binary files: it has no understanding of the header information present in object or executable files\&. If you want to disassemble an object file, you should probably be using \fBobjdump\fR(1)\&.
-.sp
-Auto\-sync mode won\(cqt necessarily cure all your synchronisation problems: a sync marker can only be placed automatically if a jump or call instruction is found to refer to it \fIbefore\fR \fBndisasm\fR actually disassembles that part of the code\&. Also, if spurious jumps or calls result from disassembling non\-machine\-code data, sync markers may get placed in strange places\&. Feel free to turn auto\-sync off and go back to doing it manually if necessary\&.
-.SH "SEE ALSO"
-.sp
-\fBobjdump\fR(1)
--- a/nasmbuild/nasm-2.13rc9/ndisasm.txt	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-ndisasm(1)
-==========
-:doctype:	manpage
-:man source:	NASM
-:man manual:	The Netwide Assembler Project
-
-NAME
-----
-ndisasm - the Netwide Disassembler, an 80x86 binary file disassembler
-
-SYNOPSIS
---------
-*ndisasm* [ *-o* origin ] [ *-s* sync-point [...]] [ *-a* | *-i* ]
-	[ *-b* bits ] [ *-u* ] [ *-e* hdrlen ] [ *-p* vendor ]
-	[ *-k* offset,length [...]] infile
-
-DESCRIPTION
------------
-The *ndisasm* command generates a disassembly listing of the binary file
-infile and directs it to stdout.
-
-OPTIONS
--------
-*-h*::
-	Causes *ndisasm* to exit immediately, after giving a summary
-	of its invocation options.
-
-*-r*|*-v*::
-	Causes *ndisasm* to exit immediately, after displaying its
-	version number.
-
-*-o* 'origin'::
-	Specifies the notional load address for the file. This
-	option causes *ndisasm* to get the addresses it lists
-	down the left hand margin, and the target addresses
-	of PC-relative jumps and calls, right.
-
-*-s* 'sync-point'::
-	Manually specifies a synchronisation address, such that
-	*ndisasm* will not output any machine instruction which
-	encompasses bytes on both sides of the address. Hence
-	the instruction which starts at that address will be
-	correctly disassembled.
-
-*-e* 'hdrlen'::
-	Specifies a number of bytes to discard from the beginning
-	of the file before starting disassembly. This does not
-	count towards the calculation of the disassembly offset:
-	the first 'disassembled' instruction will be shown starting
-	at the given load address.
-
-*-k* 'offset,length'::
-	Specifies that 'length' bytes, starting from disassembly
-	offset 'offset', should be skipped over without generating
-	any output. The skipped bytes still count towards the
-	calculation of the disassembly offset.
-
-*-a*|*-i*::
-	Enables automatic (or intelligent) sync mode, in which
-	*ndisasm* will attempt to guess where synchronisation should
-	be performed, by means of examining the target addresses
-	of the relative jumps and calls it disassembles.
-
-*-b* 'bits'::
-	Specifies 16-, 32- or 64-bit mode. The default is 16-bit
-	mode.
-
-*-u*::
-	Specifies 32-bit mode, more compactly than using `-b 32'.
-
-*-p* 'vendor'::
-	Prefers instructions as defined by 'vendor' in case of
-	a conflict. Known 'vendor' names include *intel*, *amd*,
-	*cyrix*, and *idt*. The default is *intel*.
-
-RESTRICTIONS
-------------
-*ndisasm* only disassembles binary files: it has no understanding of
-the header information present in object or executable files.
-If you want to disassemble an object file, you should probably
-be using *objdump*(1).
-
-Auto-sync mode won't necessarily cure all your synchronisation
-problems: a sync marker can only be placed automatically if a
-jump or call instruction is found to refer to it 'before'
-*ndisasm* actually disassembles that part of the code. Also,
-if spurious jumps or calls result from disassembling
-non-machine-code data, sync markers may get placed in strange
-places. Feel free to turn auto-sync off and go back to doing
-it manually if necessary.
-
-SEE ALSO
---------
-*objdump*(1)
--- a/nasmbuild/nasm-2.13rc9/nsis/MultiUser.nsh	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,470 +0,0 @@
-/*
-
-MultiUser.nsh
-
-Installer configuration for multi-user Windows environments
-
-Copyright 2008-2009 Joost Verburg
-Updated 2016 by H. Peter Anvin to handle 64-bit Windows
-
-*/
-
-!ifndef MULTIUSER_INCLUDED
-!define MULTIUSER_INCLUDED
-!verbose push
-!verbose 3
-
-;Standard NSIS header files
-
-!ifdef MULTIUSER_MUI
-  !include MUI2.nsh
-!endif
-!include nsDialogs.nsh
-!include LogicLib.nsh
-!include WinVer.nsh
-!include FileFunc.nsh
-
-;Variables
-
-Var MultiUser.Privileges
-Var MultiUser.InstallMode
-
-;Command line installation mode setting
-
-!ifdef MULTIUSER_INSTALLMODE_COMMANDLINE
-  !include StrFunc.nsh
-  !ifndef StrStr_INCLUDED
-    ${StrStr}
-  !endif
-  !ifndef MULTIUSER_NOUNINSTALL
-    !ifndef UnStrStr_INCLUDED
-      ${UnStrStr}
-    !endif
-  !endif
-  
-  Var MultiUser.Parameters
-  Var MultiUser.Result
-!endif
-
-;Installation folder stored in registry
-
-!ifdef MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY & MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME
-  Var MultiUser.InstDir
-!endif
-
-!ifdef MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY & MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME
-  Var MultiUser.DefaultKeyValue
-!endif
-
-;Windows Vista UAC setting
-
-!if "${MULTIUSER_EXECUTIONLEVEL}" == Admin
-  RequestExecutionLevel admin
-  !define MULTIUSER_EXECUTIONLEVEL_ALLUSERS
-!else if "${MULTIUSER_EXECUTIONLEVEL}" == Power
-  RequestExecutionLevel admin
-  !define MULTIUSER_EXECUTIONLEVEL_ALLUSERS
-!else if "${MULTIUSER_EXECUTIONLEVEL}" == Highest
-  RequestExecutionLevel highest
-  !define MULTIUSER_EXECUTIONLEVEL_ALLUSERS
-!else
-  RequestExecutionLevel user
-!endif
-
-/*
-
-Install modes
-
-*/
-
-!macro MULTIUSER_INSTALLMODE_ALLUSERS UNINSTALLER_PREFIX UNINSTALLER_FUNCPREFIX
-
-  ;Install mode initialization - per-machine
-
-  ${ifnot} ${IsNT}
-    ${orif} $MultiUser.Privileges == "Admin"
-    ${orif} $MultiUser.Privileges == "Power"
-  
-    StrCpy $MultiUser.InstallMode AllUsers
-  
-    SetShellVarContext all
-  
-    !if "${UNINSTALLER_PREFIX}" != UN
-      ;Set default installation location for installer
-      !ifdef MULTIUSER_INSTALLMODE_INSTDIR
-        StrCpy $INSTDIR "${GLOBALINSTDIR}\${MULTIUSER_INSTALLMODE_INSTDIR}"
-      !endif
-    !endif
-  
-    !ifdef MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY & MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME
-  
-      ReadRegStr $MultiUser.InstDir HKLM "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME}"
-  
-      ${if} $MultiUser.InstDir != ""
-        StrCpy $INSTDIR $MultiUser.InstDir
-      ${endif}
-  
-    !endif
-  
-    !ifdef MULTIUSER_INSTALLMODE_${UNINSTALLER_PREFIX}FUNCTION
-      Call "${MULTIUSER_INSTALLMODE_${UNINSTALLER_PREFIX}FUNCTION}"
-    !endif
-    
-  ${endif}
-
-!macroend
-
-!macro MULTIUSER_INSTALLMODE_CURRENTUSER UNINSTALLER_PREFIX UNINSTALLER_FUNCPREFIX
-
-  ;Install mode initialization - per-user
-  
-  ${if} ${IsNT}  
-  
-    StrCpy $MultiUser.InstallMode CurrentUser
-    
-    SetShellVarContext current
-  
-    !if "${UNINSTALLER_PREFIX}" != UN
-      ;Set default installation location for installer  
-      !ifdef MULTIUSER_INSTALLMODE_INSTDIR
-        ${if} ${AtLeastWin2000}
-          StrCpy $INSTDIR "$LOCALAPPDATA\bin\${MULTIUSER_INSTALLMODE_INSTDIR}"
-        ${else}
-          StrCpy $INSTDIR "${GLOBALINSTDIR}\${MULTIUSER_INSTALLMODE_INSTDIR}"
-        ${endif}
-      !endif
-    !endif
-  
-    !ifdef MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY & MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME
-  
-      ReadRegStr $MultiUser.InstDir HKCU "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_INSTDIR_REGISTRY_VALUENAME}"
-  
-      ${if} $MultiUser.InstDir != ""
-        StrCpy $INSTDIR $MultiUser.InstDir
-      ${endif}
-  
-    !endif
-  
-    !ifdef MULTIUSER_INSTALLMODE_${UNINSTALLER_PREFIX}FUNCTION
-      Call "${MULTIUSER_INSTALLMODE_${UNINSTALLER_PREFIX}FUNCTION}"
-    !endif
-  
-  ${endif}
-
-!macroend
-
-Function MultiUser.InstallMode.AllUsers
-  !insertmacro MULTIUSER_INSTALLMODE_ALLUSERS "" ""
-FunctionEnd
-
-Function MultiUser.InstallMode.CurrentUser
-  !insertmacro MULTIUSER_INSTALLMODE_CURRENTUSER "" ""
-FunctionEnd
-
-!ifndef MULTIUSER_NOUNINSTALL
-
-Function un.MultiUser.InstallMode.AllUsers
-  !insertmacro MULTIUSER_INSTALLMODE_ALLUSERS UN .un
-FunctionEnd
-
-Function un.MultiUser.InstallMode.CurrentUser
-  !insertmacro MULTIUSER_INSTALLMODE_CURRENTUSER UN .un
-FunctionEnd
-
-!endif
-
-/*
-
-Installer/uninstaller initialization
-
-*/
-
-!macro MULTIUSER_INIT_QUIT UNINSTALLER_FUNCPREFIX
-
-  !ifdef MULTIUSER_INIT_${UNINSTALLER_FUNCPREFIX}FUNCTIONQUIT
-    Call "${MULTIUSER_INIT_${UNINSTALLER_FUNCPREFIX}FUCTIONQUIT}
-  !else
-    Quit
-  !endif
-
-!macroend
-
-!macro MULTIUSER_INIT_TEXTS
-
-  !ifndef MULTIUSER_INIT_TEXT_ADMINREQUIRED
-    !define MULTIUSER_INIT_TEXT_ADMINREQUIRED "$(^Caption) requires Administrator priviledges."
-  !endif
-
-  !ifndef MULTIUSER_INIT_TEXT_POWERREQUIRED
-    !define MULTIUSER_INIT_TEXT_POWERREQUIRED "$(^Caption) requires at least Power User priviledges."
-  !endif
-
-  !ifndef MULTIUSER_INIT_TEXT_ALLUSERSNOTPOSSIBLE
-    !define MULTIUSER_INIT_TEXT_ALLUSERSNOTPOSSIBLE "Your user account does not have sufficient privileges to install $(^Name) for all users of this compuetr."
-  !endif
-
-!macroend
-
-!macro MULTIUSER_INIT_CHECKS UNINSTALLER_PREFIX UNINSTALLER_FUNCPREFIX
-
-  ;Installer initialization - check privileges and set install mode
-
-  !insertmacro MULTIUSER_INIT_TEXTS
-
-  UserInfo::GetAccountType
-  Pop $MultiUser.Privileges
-  
-  ${if} ${IsNT}
-  
-    ;Check privileges
-  
-    !if "${MULTIUSER_EXECUTIONLEVEL}" == Admin
-  
-      ${if} $MultiUser.Privileges != "Admin"
-        MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_ADMINREQUIRED}"
-        !insertmacro MULTIUSER_INIT_QUIT "${UNINSTALLER_FUNCPREFIX}"
-      ${endif}
-  
-    !else if "${MULTIUSER_EXECUTIONLEVEL}" == Power
-  
-      ${if} $MultiUser.Privileges != "Power"
-        ${andif} $MultiUser.Privileges != "Admin"
-        ${if} ${AtMostWinXP}
-           MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_POWERREQUIRED}"
-        ${else}
-           MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_ADMINREQUIRED}"
-        ${endif}        
-        !insertmacro MULTIUSER_INIT_QUIT "${UNINSTALLER_FUNCPREFIX}"
-      ${endif}
-  
-    !endif
-    
-    !ifdef MULTIUSER_EXECUTIONLEVEL_ALLUSERS
-    
-      ;Default to per-machine installation if possible
-    
-      ${if} $MultiUser.Privileges == "Admin"
-        ${orif} $MultiUser.Privileges == "Power"
-        !ifndef MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER
-          Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers
-        !else
-          Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser
-        !endif
-
-        !ifdef MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY & MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME
-
-          ;Set installation mode to setting from a previous installation
-
-          !ifndef MULTIUSER_INSTALLMODE_DEFAULT_CURRENTUSER
-            ReadRegStr $MultiUser.DefaultKeyValue HKLM "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}"
-            ${if} $MultiUser.DefaultKeyValue == ""
-              ReadRegStr $MultiUser.DefaultKeyValue HKCU "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}"
-              ${if} $MultiUser.DefaultKeyValue != ""
-                Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser
-              ${endif}
-            ${endif}
-          !else
-            ReadRegStr $MultiUser.DefaultKeyValue HKCU "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}"
-            ${if} $MultiUser.DefaultKeyValue == ""
-              ReadRegStr $MultiUser.DefaultKeyValue HKLM "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_KEY}" "${MULTIUSER_INSTALLMODE_DEFAULT_REGISTRY_VALUENAME}"
-              ${if} $MultiUser.DefaultKeyValue != ""
-                Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers
-              ${endif}
-            ${endif}
-          !endif
-
-        !endif
-
-      ${else}
-        Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser
-      ${endif}
-    
-    !else
-
-      Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser
-
-    !endif  
-  
-    !ifdef MULTIUSER_INSTALLMODE_COMMANDLINE
-    
-      ;Check for install mode setting on command line
-
-      ${${UNINSTALLER_FUNCPREFIX}GetParameters} $MultiUser.Parameters
-  
-      ${${UNINSTALLER_PREFIX}StrStr} $MultiUser.Result $MultiUser.Parameters "/CurrentUser"    
-    
-      ${if} $MultiUser.Result != ""
-        Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.CurrentUser
-      ${endif}    
-  
-      ${${UNINSTALLER_PREFIX}StrStr} $MultiUser.Result $MultiUser.Parameters "/AllUsers"    
-    
-      ${if} $MultiUser.Result != ""
-        ${if} $MultiUser.Privileges == "Admin"
-          ${orif} $MultiUser.Privileges == "Power"
-          Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers
-        ${else}
-          MessageBox MB_OK|MB_ICONSTOP "${MULTIUSER_INIT_TEXT_ALLUSERSNOTPOSSIBLE}"
-        ${endif}
-      ${endif}
-  
-    !endif
-    
-  ${else}
-  
-    ;Not running Windows NT, per-user installation not supported
-    
-    Call ${UNINSTALLER_FUNCPREFIX}MultiUser.InstallMode.AllUsers
-  
-  ${endif}
-
-!macroend
-
-!macro MULTIUSER_INIT
-  !verbose push
-  !verbose 3
-  
-  !insertmacro MULTIUSER_INIT_CHECKS "" ""
-  
-  !verbose pop 
-!macroend
-
-!ifndef MULTIUSER_NOUNINSTALL
-
-!macro MULTIUSER_UNINIT
-  !verbose push
-  !verbose 3
-  
-  !insertmacro MULTIUSER_INIT_CHECKS Un un.
-  
-  !verbose pop 
-!macroend
-
-!endif
-
-/*
-
-Modern UI 2 page
-
-*/
-
-!ifdef MULTIUSER_MUI
-
-!macro MULTIUSER_INSTALLMODEPAGE_INTERFACE
-
-  !ifndef MULTIUSER_INSTALLMODEPAGE_INTERFACE
-    !define MULTIUSER_INSTALLMODEPAGE_INTERFACE
-    Var MultiUser.InstallModePage
-    
-    Var MultiUser.InstallModePage.Text
-    
-    Var MultiUser.InstallModePage.AllUsers
-    Var MultiUser.InstallModePage.CurrentUser
-    
-    Var MultiUser.InstallModePage.ReturnValue
-  !endif
-
-!macroend
-
-!macro MULTIUSER_PAGEDECLARATION_INSTALLMODE
-
-  !insertmacro MUI_SET MULTIUSER_${MUI_PAGE_UNINSTALLER_PREFIX}INSTALLMODEPAGE ""
-  !insertmacro MULTIUSER_INSTALLMODEPAGE_INTERFACE
-
-  !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODEPAGE_TEXT_TOP "$(MULTIUSER_INNERTEXT_INSTALLMODE_TOP)"
-  !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODEPAGE_TEXT_ALLUSERS "$(MULTIUSER_INNERTEXT_INSTALLMODE_ALLUSERS)"
-  !insertmacro MUI_DEFAULT MULTIUSER_INSTALLMODEPAGE_TEXT_CURRENTUSER "$(MULTIUSER_INNERTEXT_INSTALLMODE_CURRENTUSER)"  
-
-  PageEx custom
-
-    PageCallbacks MultiUser.InstallModePre_${MUI_UNIQUEID} MultiUser.InstallModeLeave_${MUI_UNIQUEID}
-
-    Caption " "
-
-  PageExEnd
-
-  !insertmacro MULTIUSER_FUNCTION_INSTALLMODEPAGE MultiUser.InstallModePre_${MUI_UNIQUEID} MultiUser.InstallModeLeave_${MUI_UNIQUEID}
-
-  !undef MULTIUSER_INSTALLMODEPAGE_TEXT_TOP
-  !undef MULTIUSER_INSTALLMODEPAGE_TEXT_ALLUSERS
-  !undef MULTIUSER_INSTALLMODEPAGE_TEXT_CURRENTUSER
-
-!macroend
-
-!macro MULTIUSER_PAGE_INSTALLMODE
-
-  ;Modern UI page for install mode
-
-  !verbose push
-  !verbose 3
-  
-  !ifndef MULTIUSER_EXECUTIONLEVEL_ALLUSERS
-    !error "A mixed-mode installation requires MULTIUSER_EXECUTIONLEVEL to be set to Admin, Power or Highest."
-  !endif
-  
-  !insertmacro MUI_PAGE_INIT
-  !insertmacro MULTIUSER_PAGEDECLARATION_INSTALLMODE
-  
-  !verbose pop
-
-!macroend
-
-!macro MULTIUSER_FUNCTION_INSTALLMODEPAGE PRE LEAVE
-
-  ;Page functions of Modern UI page
-
-  Function "${PRE}"
-  
-    ${ifnot} ${IsNT}
-      Abort
-    ${endif}
-  
-    ${if} $MultiUser.Privileges != "Power"
-      ${andif} $MultiUser.Privileges != "Admin"
-      Abort
-    ${endif}
-    
-    !insertmacro MUI_PAGE_FUNCTION_CUSTOM PRE
-    !insertmacro MUI_HEADER_TEXT_PAGE $(MULTIUSER_TEXT_INSTALLMODE_TITLE) $(MULTIUSER_TEXT_INSTALLMODE_SUBTITLE)
-    
-    nsDialogs::Create 1018
-    Pop $MultiUser.InstallModePage
-
-    ${NSD_CreateLabel} 0u 0u 300u 20u "${MULTIUSER_INSTALLMODEPAGE_TEXT_TOP}"
-    Pop $MultiUser.InstallModePage.Text
-
-    ${NSD_CreateRadioButton} 20u 50u 280u 10u "${MULTIUSER_INSTALLMODEPAGE_TEXT_ALLUSERS}"
-    Pop $MultiUser.InstallModePage.AllUsers
-    
-    ${NSD_CreateRadioButton} 20u 70u 280u 10u "${MULTIUSER_INSTALLMODEPAGE_TEXT_CURRENTUSER}"
-    Pop $MultiUser.InstallModePage.CurrentUser
-    
-    ${if} $MultiUser.InstallMode == "AllUsers"
-      SendMessage $MultiUser.InstallModePage.AllUsers ${BM_SETCHECK} ${BST_CHECKED} 0
-    ${else}
-      SendMessage $MultiUser.InstallModePage.CurrentUser ${BM_SETCHECK} ${BST_CHECKED} 0
-    ${endif}
-    
-    !insertmacro MUI_PAGE_FUNCTION_CUSTOM SHOW
-    nsDialogs::Show
-    
-  FunctionEnd
-
-  Function "${LEAVE}"
-     SendMessage $MultiUser.InstallModePage.AllUsers ${BM_GETCHECK} 0 0 $MultiUser.InstallModePage.ReturnValue
-     
-     ${if} $MultiUser.InstallModePage.ReturnValue = ${BST_CHECKED}
-        Call MultiUser.InstallMode.AllUsers
-     ${else}
-        Call MultiUser.InstallMode.CurrentUser
-     ${endif}
-  
-    !insertmacro MUI_PAGE_FUNCTION_CUSTOM LEAVE
-  FunctionEnd
-
-!macroend
-
-!endif
-
-!verbose pop
-!endif
--- a/nasmbuild/nasm-2.13rc9/nsis/getpearch.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,74 +0,0 @@
-#!/usr/bin/perl
-#
-# Get the appropriate variables to make an NSIS installer file
-# based on the PE architecture of a specific file
-#
-
-use strict;
-
-my %archnames = (
-    0x01de => 'am33',
-    0x8664 => 'x64',
-    0x01c0 => 'arm32',
-    0x01c4 => 'thumb',
-    0xaa64 => 'arm64',
-    0x0ebc => 'efi',
-    0x014c => 'x86',
-    0x0200 => 'ia64',
-    0x9041 => 'm32r',
-    0x0266 => 'mips16',
-    0x0366 => 'mips',
-    0x0466 => 'mips16',
-    0x01f0 => 'powerpc',
-    0x01f1 => 'powerpc',
-    0x0166 => 'mips',
-    0x01a2 => 'sh3',
-    0x01a3 => 'sh3',
-    0x01a6 => 'sh4',
-    0x01a8 => 'sh5',
-    0x01c2 => 'arm32',
-    0x0169 => 'wcemipsv2'
-);
-
-my ($file) = @ARGV;
-open(my $fh, '<', $file)
-    or die "$0: cannot open file: $file: $!\n";
-
-read($fh, my $mz, 2);
-exit 0 if ($mz ne 'MZ');
-
-exit 0 unless (seek($fh, 0x3c, 0));
-exit 0 unless (read($fh, my $pe_offset, 1) == 1);
-$pe_offset = unpack("C", $pe_offset);
-
-exit 0 unless (seek($fh, $pe_offset, 0));
-read($fh, my $pe, 4);
-exit 0 unless ($pe eq "PE\0\0");
-
-exit 0 unless (read($fh, my $arch, 2) == 2);
-$arch = $archnames{unpack("v", $arch)};
-if (defined($arch)) {
-    print "!define ARCH ${arch}\n";
-}
-
-exit 0 unless (seek($fh, 14, 1));
-exit 0 unless (read($fh, my $auxheaderlen, 2) == 2);
-exit 0 unless (unpack("v", $auxheaderlen) >= 2);
-
-exit 0 unless (seek($fh, 2, 1));
-exit 0 unless (read($fh, my $petype, 2) == 2);
-$petype = unpack("v", $petype);
-if ($petype == 0x010b) {
-    # It is a 32-bit PE32 file
-    print "!define BITS 32\n";
-    print "!define GLOBALINSTDIR \$PROGRAMFILES\n";
-} elsif ($petype == 0x020b) {
-    # It is a 64-bit PE32+ file
-    print "!define BITS 64\n";
-    print "!define GLOBALINSTDIR \$PROGRAMFILES64\n";
-} else {
-    # No idea...
-}
-
-close($fh);
-exit 0;
Binary file nasmbuild/nasm-2.13rc9/nsis/nasm-un.ico has changed
Binary file nasmbuild/nasm-2.13rc9/nsis/nasm.ico has changed
--- a/nasmbuild/nasm-2.13rc9/nsis/nasm.nsi	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,244 +0,0 @@
-#!Nsis Installer Command Script
-
-#
-# Copyright (c) 2009, Shao Miller (shao.miller@yrdsb.edu.on.ca)
-# Copyright (c) 2009, Cyrill Gorcunov (gorcunov@gmail.com)
-# All rights reserved.
-#
-# The script requires NSIS v2.45 (or any later)
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#     * Redistributions of source code must retain the above copyright
-#       notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above copyright
-#       notice, this list of conditions and the following disclaimer in the
-#       documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
-# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR
-# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-!addincludedir "${objdir}/nsis"
-!addincludedir "${srcdir}/nsis"
-!include "version.nsh"
-!include /nonfatal "arch.nsh"
-!include /nonfatal "x64.nsh"
-
-!define PRODUCT_NAME "Netwide Assembler"
-!define PRODUCT_SHORT_NAME "nasm"
-!define PACKAGE_NAME "${PRODUCT_NAME} ${VERSION}"
-!define PACKAGE_SHORT_NAME "${PRODUCT_SHORT_NAME}-${VERSION}"
-
-SetCompressor lzma
-
-!define MULTIUSER_EXECUTIONLEVEL Highest
-!define MULTIUSER_MUI
-!define MULTIUSER_INSTALLMODE_COMMANDLINE
-!define MULTIUSER_INSTALLMODE_INSTDIR "NASM"
-!include "MultiUser.nsh"
-
-!insertmacro MULTIUSER_PAGE_INSTALLMODE
-!insertmacro MULTIUSER_INSTALLMODEPAGE_INTERFACE
-
-;--------------------------------
-;General
-
-;Name and file
-Name "${PACKAGE_NAME}"
-OutFile "${objdir}/${PACKAGE_SHORT_NAME}-installer-${ARCH}.exe"
-
-;Get installation folder from registry if available
-InstallDirRegKey HKCU "Software\${PRODUCT_SHORT_NAME}" ""
-
-;Request application privileges for Windows Vista
-RequestExecutionLevel user
-
-;--------------------------------
-;Variables
-
-Var StartMenuFolder
-Var CmdFailed
-
-;--------------------------------
-;Interface Settings
-Caption "${PACKAGE_SHORT_NAME} installation"
-Icon "${srcdir}/nsis/nasm.ico"
-UninstallIcon "${srcdir}/nsis/nasm-un.ico"
-
-!define MUI_ABORTWARNING
-
-;--------------------------------
-;Pages
-
-!insertmacro MUI_PAGE_COMPONENTS
-!insertmacro MUI_PAGE_DIRECTORY
-
-;Start Menu Folder Page Configuration
-!define MUI_STARTMENUPAGE_REGISTRY_ROOT "HKCU"
-!define MUI_STARTMENUPAGE_REGISTRY_KEY "Software\${PRODUCT_SHORT_NAME}"
-!define MUI_STARTMENUPAGE_REGISTRY_VALUENAME "${PRODUCT_SHORT_NAME}"
-
-!insertmacro MUI_PAGE_STARTMENU Application $StartMenuFolder
-
-!insertmacro MUI_PAGE_INSTFILES
-
-!insertmacro MUI_UNPAGE_CONFIRM
-!insertmacro MUI_UNPAGE_INSTFILES
-
-;--------------------------------
-;Installer Sections
-
-!insertmacro MUI_LANGUAGE English
-
-Section "NASM" SecNasm
-    Sectionin RO
-    SetOutPath "$INSTDIR"
-    File "${srcdir}/LICENSE"
-    File "${objdir}/nasm.exe"
-    File "${objdir}/ndisasm.exe"
-    File "${srcdir}/nsis/nasm.ico"
-
-    ;Store installation folder
-    WriteRegStr HKCU "Software\${PRODUCT_SHORT_NAME}" "" $INSTDIR
-
-    ;Store shortcuts folder
-    WriteRegStr HKCU "Software\${PRODUCT_SHORT_NAME}\" "lnk" $SMPROGRAMS\$StartMenuFolder
-    WriteRegStr HKCU "Software\${PRODUCT_SHORT_NAME}\" "bat-lnk" $DESKTOP\${PRODUCT_SHORT_NAME}.lnk
-
-    ;
-    ; the bat we need
-    StrCpy $CmdFailed "true"
-    FileOpen $0 "nasmpath.bat" w
-    IfErrors skip
-    StrCpy $CmdFailed "false"
-    FileWrite $0 "@set path=$INSTDIR;%path%$\r$\n"
-    FileWrite $0 "@%comspec%"
-    FileClose $0
-    CreateShortCut "$DESKTOP\${PRODUCT_SHORT_NAME}.lnk" "$INSTDIR\nasmpath.bat" "" "$INSTDIR\nasm.ico" 0
-skip:
-    ;Create uninstaller
-    WriteUninstaller "$INSTDIR\Uninstall.exe"
-
-    !insertmacro MUI_STARTMENU_WRITE_BEGIN Application
-
-    ;Create shortcuts
-    CreateDirectory "$SMPROGRAMS\$StartMenuFolder"
-    StrCmp $CmdFailed "true" +2
-    CreateShortCut "$SMPROGRAMS\$StartMenuFolder\${PRODUCT_SHORT_NAME}-shell.lnk" "$INSTDIR\nasmpath.bat"
-    CreateShortCut  "$SMPROGRAMS\$StartMenuFolder\${PRODUCT_SHORT_NAME}.lnk" "$INSTDIR\nasm.exe" "" "$INSTDIR\nasm.ico" 0
-    CreateShortCut  "$SMPROGRAMS\$StartMenuFolder\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
-
-    !insertmacro MUI_STARTMENU_WRITE_END
-SectionEnd
-
-Section "RDOFF" SecRdoff
-    File "${objdir}/rdoff/ldrdf.exe"
-    File "${objdir}/rdoff/rdf2bin.exe"
-    File "${objdir}/rdoff/rdf2com.exe"
-    File "${objdir}/rdoff/rdf2ith.exe"
-    File "${objdir}/rdoff/rdf2ihx.exe"
-    File "${objdir}/rdoff/rdf2srec.exe"
-    File "${objdir}/rdoff/rdfdump.exe"
-    File "${objdir}/rdoff/rdflib.exe"
-SectionEnd
-
-Section "Manual" SecManual
-    SetOutPath "$INSTDIR"
-    File "${objdir}/doc/nasmdoc.pdf"
-    CreateShortCut "$SMPROGRAMS\$StartMenuFolder\Manual.lnk" "$INSTDIR\nasmdoc.pdf"
-SectionEnd
-
-Section "VS8 integration" SecVS8
-    CreateDirectory "$INSTDIR\VSrules"
-    SetOutPath "$INSTDIR\VSrules"
-    File "${srcdir}/contrib/VSrules/nasm.README"
-    File "${srcdir}/contrib/VSrules/nasm.rules"
-SectionEnd
-
-;--------------------------------
-;Descriptions
-
-    ;Language strings
-    LangString DESC_SecNasm ${LANG_ENGLISH}     "NASM assembler and disassember modules"
-    LangString DESC_SecManual ${LANG_ENGLISH}   "Complete NASM manual (pdf file)"
-    LangString DESC_SecRdoff ${LANG_ENGLISH}    "RDOFF utilities (you may not need it if you don't know what is it)"
-    LangString DESC_SecVS8 ${LANG_ENGLISH}      "Visual Studio 2008 NASM integration (rules file)"
-
-    ;Assign language strings to sections
-    !insertmacro MUI_FUNCTION_DESCRIPTION_BEGIN
-    !insertmacro MUI_DESCRIPTION_TEXT ${SecNasm} $(DESC_SecNasm)
-    !insertmacro MUI_DESCRIPTION_TEXT ${SecRdoff} $(DESC_SecRdoff)
-    !insertmacro MUI_DESCRIPTION_TEXT ${SecManual} $(DESC_SecManual)
-    !insertmacro MUI_DESCRIPTION_TEXT ${SecVS8} $(DESC_SecVS8)
-    !insertmacro MUI_FUNCTION_DESCRIPTION_END
-
-;--------------------------------
-;Uninstaller Section
-
-Section "Uninstall"
-    ;
-    ; files on HDD
-    IfFileExists "$INSTDIR" +3 +1
-        MessageBox MB_OK "No files found, aborting."
-        Abort
-        MessageBox MB_YESNO "The following directory will be deleted$\n$INSTDIR" IDYES rm_instdir_true IDNO rm_instdir_false
-        rm_instdir_true:
-            RMDir /r /rebootok "$INSTDIR"
-        rm_instdir_false:
-
-    ;
-    ; Desktop link
-    ReadRegStr $0 HKCU Software\${PRODUCT_SHORT_NAME} "bat-lnk"
-    StrCmp $0 0 +1 +3
-        MessageBox MB_OK "Invalid path to a bat-lnk file, aborting"
-        Abort
-    IfFileExists $0 +3 +1
-        MessageBox MB_OK "No bat-lnk files found, aborting."
-        Abort
-        MessageBox MB_YESNO "The following file will be deleted$\n$0" IDYES rm_batlinks_true IDNO rm_batlinks_false
-        rm_batlinks_true:
-            Delete /rebootok "$0"
-            RMDir "$0"
-        rm_batlinks_false:
-
-    ;
-    ; Start menu folder
-    ReadRegStr $0 HKCU Software\${PRODUCT_SHORT_NAME} "lnk"
-    StrCmp $0 0 +1 +3
-        MessageBox MB_OK "Invalid path to a lnk file, aborting"
-        Abort
-    IfFileExists $0 +3 +1
-        MessageBox MB_OK "No lnk files found, aborting."
-        Abort
-        MessageBox MB_YESNO "The following directory will be deleted$\n$0" IDYES rm_links_true IDNO rm_links_false
-        rm_links_true:
-            Delete /rebootok "$0\*"
-            RMDir "$0"
-        rm_links_false:
-    DeleteRegKey /ifempty HKCU "Software\${PRODUCT_SHORT_NAME}"
-SectionEnd
-
-;
-; MUI requires this hooks
-Function .onInit
-    !insertmacro MULTIUSER_INIT
-    ${If} ${RunningX64}
-        SetRegView 64
-	${EnableX64FSRedirection}
-        StrCpy $INSTDIR "$PROGRAMFILES64\${PRODUCT_SHORT_NAME}"
-    ${Else}
-        StrCpy $INSTDIR "$PROGRAMFILES\${PRODUCT_SHORT_NAME}"
-    ${EndIf}
-FunctionEnd
-
-Function un.onInit
-    !insertmacro MULTIUSER_UNINIT
-FunctionEnd
--- a/nasmbuild/nasm-2.13rc9/nsis/version.nsh	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-!define VERSION "2.13rc9"
-!define MAJOR_VER 12
-!define MINOR_VER 12
-!define SUBMINOR_VER 99
-!define PATCHLEVEL_VER 99
--- a/nasmbuild/nasm-2.13rc9/nsis/x64.nsh	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-; ---------------------
-;       x64.nsh
-; ---------------------
-;
-; A few simple macros to handle installations on x64 machines.
-;
-; RunningX64 checks if the installer is running on x64.
-;
-;   ${If} ${RunningX64}
-;     MessageBox MB_OK "running on x64"
-;   ${EndIf}
-;
-; DisableX64FSRedirection disables file system redirection.
-; EnableX64FSRedirection enables file system redirection.
-;
-;   SetOutPath $SYSDIR
-;   ${DisableX64FSRedirection}
-;   File some.dll # extracts to C:\Windows\System32
-;   ${EnableX64FSRedirection}
-;   File some.dll # extracts to C:\Windows\SysWOW64
-;
-
-!ifndef ___X64__NSH___
-!define ___X64__NSH___
-
-!include LogicLib.nsh
-
-!macro _RunningX64 _a _b _t _f
-  !insertmacro _LOGICLIB_TEMP
-  System::Call kernel32::GetCurrentProcess()i.s
-  System::Call kernel32::IsWow64Process(is,*i.s)
-  Pop $_LOGICLIB_TEMP
-  !insertmacro _!= $_LOGICLIB_TEMP 0 `${_t}` `${_f}`
-!macroend
-
-!define RunningX64 `"" RunningX64 ""`
-
-!macro DisableX64FSRedirection
-
-  System::Call kernel32::Wow64EnableWow64FsRedirection(i0)
-
-!macroend
-
-!define DisableX64FSRedirection "!insertmacro DisableX64FSRedirection"
-
-!macro EnableX64FSRedirection
-
-  System::Call kernel32::Wow64EnableWow64FsRedirection(i1)
-
-!macroend
-
-!define EnableX64FSRedirection "!insertmacro EnableX64FSRedirection"
-
-!endif # !___X64__NSH___
--- a/nasmbuild/nasm-2.13rc9/output/codeview.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,811 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * codeview.c Codeview Debug Format support for COFF
- */
-
-#include "version.h"
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stddef.h>
-#include <stdlib.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "preproc.h"
-#include "saa.h"
-#include "hashtbl.h"
-#include "outlib.h"
-#include "pecoff.h"
-#include "md5.h"
-
-static void cv8_init(void);
-static void cv8_linenum(const char *filename, int32_t linenumber,
-        int32_t segto);
-static void cv8_deflabel(char *name, int32_t segment, int64_t offset,
-        int is_global, char *special);
-static void cv8_typevalue(int32_t type);
-static void cv8_output(int type, void *param);
-static void cv8_cleanup(void);
-
-const struct dfmt df_cv8 = {
-    "Codeview 8",               /* .fullname */
-    "cv8",                      /* .shortname */
-    cv8_init,                   /* .init */
-    cv8_linenum,                /* .linenum */
-    cv8_deflabel,               /* .debug_deflabel */
-    null_debug_directive,       /* .debug_directive */
-    cv8_typevalue,              /* .debug_typevalue */
-    cv8_output,                 /* .debug_output */
-    cv8_cleanup,                /* .cleanup */
-    NULL                        /* pragma list */
-};
-
-/*******************************************************************************
- * dfmt callbacks
- ******************************************************************************/
-struct source_file;
-
-struct source_file {
-    const char *filename;
-    char *fullname;
-    uint32_t fullnamelen;
-
-    struct source_file *next;
-
-    uint32_t filetbl_off;
-    uint32_t sourcetbl_off;
-
-    struct SAA *lines;
-    uint32_t num_lines;
-
-    unsigned char md5sum[MD5_HASHBYTES];
-};
-
-struct linepair {
-    uint32_t file_offset;
-    uint32_t linenumber;
-};
-
-enum symbol_type {
-    SYMTYPE_CODE,
-    SYMTYPE_PROC,
-    SYMTYPE_LDATA,
-    SYMTYPE_GDATA,
-
-    SYMTYPE_MAX
-};
-
-struct cv8_symbol {
-    enum symbol_type type;
-    char *name;
-
-    uint32_t secrel;
-    uint16_t section;
-    uint32_t size;
-    uint32_t typeindex;
-
-    enum symtype {
-        TYPE_UNREGISTERED = 0x0000, /* T_NOTYPE */
-        TYPE_BYTE = 0x0020,
-        TYPE_WORD = 0x0021,
-        TYPE_DWORD= 0x0022,
-        TYPE_QUAD = 0x0023,
-
-        TYPE_REAL32 = 0x0040,
-        TYPE_REAL64 = 0x0041,
-        TYPE_REAL80 = 0x0042,
-        TYPE_REAL128= 0x0043,
-        TYPE_REAL256= 0x0044,
-        TYPE_REAL512= 0x0045
-    } symtype;
-};
-
-struct cv8_state {
-    int symbol_sect;
-    int type_sect;
-
-    uint32_t text_offset;
-
-    struct source_file *source_files, **source_files_tail;
-    const char *last_filename;
-    struct source_file *last_source_file;
-    struct hash_table file_hash;
-    unsigned num_files;
-    uint32_t total_filename_len;
-
-
-    unsigned total_lines;
-
-    struct SAA *symbols;
-    struct cv8_symbol *last_sym;
-    unsigned num_syms[SYMTYPE_MAX];
-    unsigned symbol_lengths;
-    unsigned total_syms;
-
-    struct {
-        char *name;
-        size_t namebytes;
-    } outfile;
-};
-struct cv8_state cv8_state;
-
-static void cv8_init(void)
-{
-    const uint32_t sect_flags =     IMAGE_SCN_MEM_READ |
-                    IMAGE_SCN_MEM_DISCARDABLE |
-                    IMAGE_SCN_CNT_INITIALIZED_DATA |
-                    IMAGE_SCN_ALIGN_1BYTES;
-
-    cv8_state.symbol_sect = coff_make_section(".debug$S", sect_flags);
-    cv8_state.type_sect = coff_make_section(".debug$T", sect_flags);
-
-    cv8_state.text_offset = 0;
-
-    cv8_state.source_files = NULL;
-    cv8_state.source_files_tail = &cv8_state.source_files;
-    hash_init(&cv8_state.file_hash, HASH_MEDIUM);
-
-    cv8_state.num_files = 0;
-    cv8_state.total_filename_len = 0;
-
-    cv8_state.total_lines = 0;
-
-    cv8_state.symbols = saa_init(sizeof(struct cv8_symbol));
-    cv8_state.last_sym = NULL;
-}
-
-static struct source_file *register_file(const char *filename);
-static struct coff_Section *find_section(int32_t segto);
-
-static void cv8_linenum(const char *filename, int32_t linenumber,
-        int32_t segto)
-{
-    struct coff_Section *s;
-    struct linepair *li;
-    struct source_file *file;
-
-    file = register_file(filename);
-
-    s = find_section(segto);
-    if (s == NULL)
-        return;
-
-    if ((s->flags & IMAGE_SCN_MEM_EXECUTE) == 0)
-        return;
-
-    li = saa_wstruct(file->lines);
-    li->file_offset = cv8_state.text_offset;
-    li->linenumber = linenumber;
-
-    file->num_lines++;
-    cv8_state.total_lines++;
-}
-
-static void cv8_deflabel(char *name, int32_t segment, int64_t offset,
-        int is_global, char *special)
-{
-    struct cv8_symbol *sym;
-    struct coff_Section *s;
-
-    (void)special;
-
-    s = find_section(segment);
-    if (s == NULL)
-        return;
-
-    sym = saa_wstruct(cv8_state.symbols);
-
-    if (s->flags & IMAGE_SCN_MEM_EXECUTE)
-        sym->type = is_global ? SYMTYPE_PROC : SYMTYPE_CODE;
-    else
-        sym->type = is_global ?  SYMTYPE_GDATA : SYMTYPE_LDATA;
-    cv8_state.num_syms[sym->type]++;
-    cv8_state.total_syms++;
-
-    sym->section = segment;
-    sym->secrel = offset;
-    sym->symtype = TYPE_UNREGISTERED;
-    sym->size = 0;
-    sym->typeindex = 0;
-
-    sym->name = nasm_strdup(name);
-    cv8_state.symbol_lengths += strlen(sym->name) + 1;
-
-    if (cv8_state.last_sym && cv8_state.last_sym->section == segment)
-        cv8_state.last_sym->size = offset - cv8_state.last_sym->secrel;
-    cv8_state.last_sym = sym;
-}
-
-static void cv8_typevalue(int32_t type)
-{
-    if (!cv8_state.last_sym)
-        return;
-    if (cv8_state.last_sym->symtype != TYPE_UNREGISTERED)
-        return;
-
-    switch (TYM_TYPE(type)) {
-    case TY_BYTE:
-        cv8_state.last_sym->symtype = TYPE_BYTE;
-        break;
-    case TY_WORD:
-        cv8_state.last_sym->symtype = TYPE_WORD;
-        break;
-    case TY_DWORD:
-        cv8_state.last_sym->symtype = TYPE_DWORD;
-        break;
-    case TY_QWORD:
-        cv8_state.last_sym->symtype = TYPE_QUAD;
-        break;
-    case TY_FLOAT:
-        cv8_state.last_sym->symtype = TYPE_REAL32;
-        break;
-    case TY_TBYTE:
-        cv8_state.last_sym->symtype = TYPE_REAL80;
-        break;
-    case TY_OWORD:
-        cv8_state.last_sym->symtype = TYPE_REAL128;
-        break;
-    case TY_YWORD:
-        cv8_state.last_sym->symtype = TYPE_REAL256;
-        break;
-    case TY_UNKNOWN:
-        break;
-    case TY_LABEL:
-        break;
-    }
-}
-
-static void cv8_output(int type, void *param)
-{
-    struct coff_DebugInfo *dinfo = param;
-
-    (void)type;
-
-    if (dinfo->section && dinfo->section->name &&
-    !strncmp(dinfo->section->name, ".text", 5))
-        cv8_state.text_offset += dinfo->size;
-}
-
-static void build_symbol_table(struct coff_Section *const sect);
-static void build_type_table(struct coff_Section *const sect);
-
-static void cv8_cleanup(void)
-{
-    struct cv8_symbol *sym;
-    struct source_file *file;
-
-    struct coff_Section *symbol_sect = coff_sects[cv8_state.symbol_sect];
-    struct coff_Section *type_sect = coff_sects[cv8_state.type_sect];
-
-    cv8_state.outfile.name = nasm_realpath(coff_outfile);
-    cv8_state.outfile.namebytes = strlen(cv8_state.outfile.name) + 1;
-
-    build_symbol_table(symbol_sect);
-    build_type_table(type_sect);
-
-    list_for_each(file, cv8_state.source_files) {
-        nasm_free(file->fullname);
-        saa_free(file->lines);
-        free(file);
-    }
-    hash_free(&cv8_state.file_hash);
-
-    saa_rewind(cv8_state.symbols);
-    while ((sym = saa_rstruct(cv8_state.symbols)))
-        nasm_free(sym->name);
-    saa_free(cv8_state.symbols);
-
-    nasm_free(cv8_state.outfile.name);
-}
-
-/*******************************************************************************
- * implementation
- ******************************************************************************/
-static void calc_md5(const char *const filename,
-        unsigned char sum[MD5_HASHBYTES])
-{
-    int success = 0;
-    unsigned char *file_buf;
-    FILE *f;
-    MD5_CTX ctx;
-
-    f = pp_input_fopen(filename, NF_BINARY);
-    if (!f)
-        goto done;
-
-    file_buf = nasm_zalloc(BUFSIZ);
-
-    MD5Init(&ctx);
-    while (!feof(f)) {
-        size_t i = fread(file_buf, 1, BUFSIZ, f);
-        if (ferror(f))
-            goto done_0;
-        else if (i == 0)
-            break;
-        MD5Update(&ctx, file_buf, i);
-    }
-    MD5Final(sum, &ctx);
-
-    success = 1;
-done_0:
-    nasm_free(file_buf);
-    fclose(f);
-done:
-    if (!success) {
-        nasm_error(ERR_NONFATAL, "unable to hash file %s. "
-                 "Debug information may be unavailable.\n",
-                 filename);
-    }
-    return;
-}
-
-static struct source_file *register_file(const char *filename)
-{
-    struct source_file *file;
-    void **filep;
-    char *fullpath;
-    struct hash_insert hi;
-
-    /*
-     * The common case is that we are invoked with the same filename
-     * as we were last time.  Make this a pointer comparison: this is
-     * safe because the NASM core code allocates each filename once
-     * and never frees it.
-     */
-    if (likely(cv8_state.last_filename == filename))
-        return cv8_state.last_source_file;
-
-    cv8_state.last_filename = filename;
-
-    filep = hash_find(&cv8_state.file_hash, filename, &hi);
-    if (likely(filep)) {
-        file = *filep;
-    } else {
-        /* New filename encounter */
-
-        fullpath = nasm_realpath(filename);
-
-        file = nasm_zalloc(sizeof(*file));
-
-        file->filename = filename;
-        file->fullname = fullpath;
-        file->fullnamelen = strlen(fullpath);
-        file->lines = saa_init(sizeof(struct linepair));
-        *cv8_state.source_files_tail = file;
-        cv8_state.source_files_tail = &file->next;
-        calc_md5(fullpath, file->md5sum);
-
-        hash_add(&hi, filename, file);
-
-        cv8_state.num_files++;
-        cv8_state.total_filename_len += file->fullnamelen + 1;
-    }
-
-    cv8_state.last_source_file = file;
-    return file;
-}
-
-static struct coff_Section *find_section(int32_t segto)
-{
-    int i;
-
-    for (i = 0; i < coff_nsects; i++) {
-        struct coff_Section *sec;
-
-        sec = coff_sects[i];
-        if (segto == sec->index)
-            return sec;
-    }
-    return NULL;
-}
-
-static void register_reloc(struct coff_Section *const sect,
-        char *sym, uint32_t addr, uint16_t type)
-{
-    struct coff_Reloc *r;
-    struct coff_Section *sec;
-    uint32_t i;
-
-    r = *sect->tail = nasm_malloc(sizeof(struct coff_Reloc));
-    sect->tail = &r->next;
-    r->next = NULL;
-    sect->nrelocs++;
-
-    r->address = addr;
-    r->symbase = SECT_SYMBOLS;
-    r->type = type;
-
-    r->symbol = 0;
-    for (i = 0; i < (uint32_t)coff_nsects; i++) {
-        sec = coff_sects[i];
-        if (!strcmp(sym, sec->name)) {
-            return;
-        }
-        r->symbol += 2;
-    }
-
-    saa_rewind(coff_syms);
-    for (i = 0; i < coff_nsyms; i++) {
-        struct coff_Symbol *s = saa_rstruct(coff_syms);
-        r->symbol++;
-        if (s->strpos == -1 && !strcmp(sym, s->name)) {
-            return;
-        } else if (s->strpos != -1) {
-            int res;
-            char *symname;
-
-            symname = nasm_malloc(s->namlen + 1);
-            saa_fread(coff_strs, s->strpos-4, symname, s->namlen);
-            symname[s->namlen] = '\0';
-            res = strcmp(sym, symname);
-            nasm_free(symname);
-            if (!res)
-                return;
-        }
-    }
-    nasm_panic(0, "codeview: relocation for unregistered symbol: %s", sym);
-}
-
-static inline void section_write32(struct coff_Section *sect, uint32_t val)
-{
-    saa_write32(sect->data, val);
-    sect->len += 4;
-}
-
-static inline void section_write16(struct coff_Section *sect, uint16_t val)
-{
-    saa_write16(sect->data, val);
-    sect->len += 2;
-}
-
-static inline void section_write8(struct coff_Section *sect, uint8_t val)
-{
-    saa_write8(sect->data, val);
-    sect->len++;
-}
-
-static inline void section_wbytes(struct coff_Section *sect, const void *buf,
-        size_t len)
-{
-    saa_wbytes(sect->data, buf, len);
-    sect->len += len;
-}
-
-static void write_filename_table(struct coff_Section *const sect)
-{
-    uint32_t field_length;
-    uint32_t tbl_off = 1;    /* offset starts at 1 to skip NULL entry */
-    struct source_file *file;
-
-    nasm_assert(cv8_state.source_files != NULL);
-    nasm_assert(cv8_state.num_files > 0);
-    nasm_assert(cv8_state.total_filename_len > 0);
-
-    field_length = 1 + cv8_state.total_filename_len;
-
-    section_write32(sect, 0x000000F3);
-    section_write32(sect, field_length);
-
-    section_write8(sect, 0);
-
-    list_for_each(file, cv8_state.source_files) {
-        section_wbytes(sect, file->fullname, file->fullnamelen + 1);
-        file->filetbl_off = tbl_off;
-        tbl_off += file->fullnamelen + 1;
-    }
-}
-
-static void write_sourcefile_table(struct coff_Section *const sect)
-{
-    const uint32_t entry_size = 4 + 2 + MD5_HASHBYTES + 2;
-
-    uint32_t field_length = 0;
-    uint32_t tbl_off = 0;
-    struct source_file *file;
-
-    field_length = entry_size * cv8_state.num_files;
-
-    section_write32(sect, 0x000000F4);
-    section_write32(sect, field_length);
-
-    list_for_each(file, cv8_state.source_files) {
-        nasm_assert(file->filetbl_off > 0);
-        section_write32(sect, file->filetbl_off);
-        section_write16(sect, 0x0110);
-        section_wbytes(sect, file->md5sum, MD5_HASHBYTES);
-        section_write16(sect, 0);
-
-        file->sourcetbl_off = tbl_off;
-        tbl_off += entry_size;
-    }
-}
-
-static void write_linenumber_table(struct coff_Section *const sect)
-{
-    const uint32_t file_field_len = 12;
-    const uint32_t line_field_len = 8;
-
-    int i;
-    uint32_t field_length = 0;
-    size_t field_base;
-    struct source_file *file;
-    struct coff_Section *s;
-
-    for (i = 0; i < coff_nsects; i++) {
-        if (!strncmp(coff_sects[i]->name, ".text", 5))
-            break;
-    }
-
-    if (i == coff_nsects)
-        return;
-    s = coff_sects[i];
-
-    field_length = 12;
-    field_length += (cv8_state.num_files * file_field_len);
-    field_length += (cv8_state.total_lines * line_field_len);
-
-    section_write32(sect, 0x000000F2);
-    section_write32(sect, field_length);
-
-    field_base = sect->len;
-    section_write32(sect, 0); /* SECREL, updated by relocation */
-    section_write16(sect, 0); /* SECTION, updated by relocation*/
-    section_write16(sect, 0); /* pad */
-    section_write32(sect, s->len);
-
-    register_reloc(sect, ".text", field_base,
-        win64 ? IMAGE_REL_AMD64_SECREL : IMAGE_REL_I386_SECREL);
-
-    register_reloc(sect, ".text", field_base + 4,
-        win64 ? IMAGE_REL_AMD64_SECTION : IMAGE_REL_I386_SECTION);
-
-    list_for_each(file, cv8_state.source_files) {
-        struct linepair *li;
-
-        /* source mapping */
-        section_write32(sect, file->sourcetbl_off);
-        section_write32(sect, file->num_lines);
-        section_write32(sect, file_field_len + (file->num_lines * line_field_len));
-
-        /* the pairs */
-        saa_rewind(file->lines);
-        while ((li = saa_rstruct(file->lines))) {
-            section_write32(sect, li->file_offset);
-            section_write32(sect, li->linenumber |= 0x80000000);
-        }
-    }
-}
-
-static uint16_t write_symbolinfo_obj(struct coff_Section *sect)
-{
-    uint16_t obj_len;
-
-    obj_len = 2 + 4 + cv8_state.outfile.namebytes;
-
-    section_write16(sect, obj_len);
-    section_write16(sect, 0x1101);
-    section_write32(sect, 0); /* ASM language */
-    section_wbytes(sect, cv8_state.outfile.name, cv8_state.outfile.namebytes);
-
-    return obj_len;
-}
-
-static uint16_t write_symbolinfo_properties(struct coff_Section *sect,
-        const char *const creator_str)
-{
-    /* https://github.com/Microsoft/microsoft-pdb/blob/1d60e041/include/cvinfo.h#L3313 */
-    uint16_t creator_len;
-
-    creator_len = 2 + 4 + 2 + 3*2 + 3*2 + strlen(creator_str)+1 + 2;
-
-    section_write16(sect, creator_len);
-    section_write16(sect, 0x1116);
-    section_write32(sect, 3); /* language/flags */
-    if (win64)
-        section_write16(sect, 0x00D0); /* machine */
-    else if (win32)
-        section_write16(sect, 0x0006); /* machine */
-    else
-        nasm_assert(!"neither win32 nor win64 are set!");
-    section_write16(sect, 0); /* verFEMajor */
-    section_write16(sect, 0); /* verFEMinor */
-    section_write16(sect, 0); /* verFEBuild */
-
-    /* BinScope/WACK insist on version >= 8.0.50727 */
-    section_write16(sect, 8); /* verMajor */
-    section_write16(sect, 0); /* verMinor */
-    section_write16(sect, 50727); /* verBuild */
-
-    section_wbytes(sect, creator_str, strlen(creator_str)+1); /* verSt */
-    /*
-     * normally there would be key/value pairs here, but they aren't
-     * necessary. They are terminated by 2B
-     */
-    section_write16(sect, 0);
-
-    return creator_len;
-}
-
-static uint16_t write_symbolinfo_symbols(struct coff_Section *sect)
-{
-    uint16_t len = 0, field_len;
-    uint32_t field_base;
-    struct cv8_symbol *sym;
-
-    saa_rewind(cv8_state.symbols);
-    while ((sym = saa_rstruct(cv8_state.symbols))) {
-        switch (sym->type) {
-        case SYMTYPE_LDATA:
-        case SYMTYPE_GDATA:
-            field_len = 12 + strlen(sym->name) + 1;
-            len += field_len - 2;
-            section_write16(sect, field_len);
-            if (sym->type == SYMTYPE_LDATA)
-                section_write16(sect, 0x110C);
-            else
-                section_write16(sect, 0x110D);
-            section_write32(sect, sym->symtype);
-
-            field_base = sect->len;
-            section_write32(sect, 0); /* SECREL */
-            section_write16(sect, 0); /* SECTION */
-            break;
-        case SYMTYPE_PROC:
-        case SYMTYPE_CODE:
-            field_len = 9 + strlen(sym->name) + 1;
-            len += field_len - 2;
-            section_write16(sect, field_len);
-            section_write16(sect, 0x1105);
-
-            field_base = sect->len;
-            section_write32(sect, 0); /* SECREL */
-            section_write16(sect, 0); /* SECTION */
-            section_write8(sect, 0); /* FLAG */
-            break;
-        default:
-            nasm_assert(!"unknown symbol type");
-        }
-
-        section_wbytes(sect, sym->name, strlen(sym->name) + 1);
-
-        register_reloc(sect, sym->name, field_base,
-            win64 ? IMAGE_REL_AMD64_SECREL :
-                IMAGE_REL_I386_SECREL);
-        register_reloc(sect, sym->name, field_base + 4,
-            win64 ? IMAGE_REL_AMD64_SECTION :
-                IMAGE_REL_I386_SECTION);
-    }
-
-    return len;
-}
-
-static void write_symbolinfo_table(struct coff_Section *const sect)
-{
-    static const char creator_str[] = "The Netwide Assembler " NASM_VER;
-    uint16_t obj_length, creator_length, sym_length;
-    uint32_t field_length = 0, out_len;
-
-    nasm_assert(cv8_state.outfile.namebytes);
-
-    /* signature, language, outfile NULL */
-    obj_length = 2 + 4 + cv8_state.outfile.namebytes;
-    creator_length = 2 + 4 + 2 + 3*2 + 3*2 + strlen(creator_str)+1 + 2;
-
-    sym_length =    ( cv8_state.num_syms[SYMTYPE_CODE] *  7) +
-            ( cv8_state.num_syms[SYMTYPE_PROC] *  7) +
-            ( cv8_state.num_syms[SYMTYPE_LDATA] * 10) +
-            ( cv8_state.num_syms[SYMTYPE_GDATA] * 10) +
-            cv8_state.symbol_lengths;
-
-    field_length = 2 + obj_length +
-               2 + creator_length +
-               (4 * cv8_state.total_syms) + sym_length;
-
-    section_write32(sect, 0x000000F1);
-    section_write32(sect, field_length);
-
-    /* for sub fields, length preceeds type */
-
-    out_len = write_symbolinfo_obj(sect);
-    nasm_assert(out_len == obj_length);
-
-    out_len = write_symbolinfo_properties(sect, creator_str);
-    nasm_assert(out_len == creator_length);
-
-    out_len = write_symbolinfo_symbols(sect);
-    nasm_assert(out_len == sym_length);
-}
-
-static inline void align4_table(struct coff_Section *const sect)
-{
-    unsigned diff;
-    uint32_t zero = 0;
-    struct SAA *data = sect->data;
-
-    if (data->wptr % 4 == 0)
-        return;
-
-    diff = 4 - (data->wptr % 4);
-    if (diff)
-        section_wbytes(sect, &zero, diff);
-}
-
-static void build_symbol_table(struct coff_Section *const sect)
-{
-    section_write32(sect, 0x00000004);
-
-    write_filename_table(sect);
-    align4_table(sect);
-    write_sourcefile_table(sect);
-    align4_table(sect);
-    write_linenumber_table(sect);
-    align4_table(sect);
-    write_symbolinfo_table(sect);
-    align4_table(sect);
-}
-
-static void build_type_table(struct coff_Section *const sect)
-{
-    uint16_t field_len;
-    struct cv8_symbol *sym;
-
-    section_write32(sect, 0x00000004);
-
-    saa_rewind(cv8_state.symbols);
-    while ((sym = saa_rstruct(cv8_state.symbols))) {
-        if (sym->type != SYMTYPE_PROC)
-            continue;
-
-        /* proc leaf */
-
-        field_len = 2 + 4 + 4 + 4 + 2;
-        section_write16(sect, field_len);
-        section_write16(sect, 0x1008); /* PROC type */
-
-        section_write32(sect, 0x00000003); /* return type */
-        section_write32(sect, 0); /* calling convention (default) */
-        section_write32(sect, sym->typeindex);
-        section_write16(sect, 0); /* # params */
-
-        /* arglist */
-
-        field_len = 2 + 4;
-        section_write16(sect, field_len);
-        section_write16(sect, 0x1201); /* ARGLIST */
-        section_write32(sect, 0); /*num params */
-    }
-}
--- a/nasmbuild/nasm-2.13rc9/output/dwarf.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,566 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#ifndef OUTPUT_DWARF_H
-#define OUTPUT_DWARF_H
-
-/*
- * based on DWARF 3 standart
- */
-
-enum dwarf_tag {
-	DW_TAG_padding			= 0x00,
-	DW_TAG_array_type		= 0x01,
-	DW_TAG_class_type		= 0x02,
-	DW_TAG_entry_point		= 0x03,
-	DW_TAG_enumeration_type		= 0x04,
-	DW_TAG_formal_parameter		= 0x05,
-	DW_TAG_global_subroutine	= 0x06,
-	DW_TAG_global_variable		= 0x07,
-	DW_TAG_label			= 0x0a,
-	DW_TAG_lexical_block		= 0x0b,
-	DW_TAG_local_variable		= 0x0c,
-	DW_TAG_member			= 0x0d,
-	DW_TAG_pointer_type		= 0x0f,
-	DW_TAG_reference_type		= 0x10,
-	DW_TAG_compile_unit		= 0x11,
-	DW_TAG_string_type		= 0x12,
-	DW_TAG_structure_type		= 0x13,
-	DW_TAG_subroutine		= 0x14,
-	DW_TAG_subroutine_type		= 0x15,
-	DW_TAG_typedef			= 0x16,
-	DW_TAG_union_type		= 0x17,
-	DW_TAG_unspecified_parameters	= 0x18,
-	DW_TAG_variant			= 0x19,
-	DW_TAG_common_block		= 0x1a,
-	DW_TAG_common_inclusion		= 0x1b,
-	DW_TAG_inheritance		= 0x1c,
-	DW_TAG_inlined_subroutine	= 0x1d,
-	DW_TAG_module			= 0x1e,
-	DW_TAG_ptr_to_member_type	= 0x1f,
-	DW_TAG_set_type			= 0x20,
-	DW_TAG_subrange_type		= 0x21,
-	DW_TAG_with_stmt		= 0x22,
-	DW_TAG_access_declaration	= 0x23,
-	DW_TAG_base_type		= 0x24,
-	DW_TAG_catch_block		= 0x25,
-	DW_TAG_const_type		= 0x26,
-	DW_TAG_constant			= 0x27,
-	DW_TAG_enumerator		= 0x28,
-	DW_TAG_file_type		= 0x29,
-	DW_TAG_friend			= 0x2a,
-	DW_TAG_namelist			= 0x2b,
-	DW_TAG_namelist_item		= 0x2c,
-	DW_TAG_packed_type		= 0x2d,
-	DW_TAG_subprogram		= 0x2e,
-	DW_TAG_template_type_parameter	= 0x2f,
-	DW_TAG_template_value_parameter	= 0x30,
-	DW_TAG_thrown_type		= 0x31,
-	DW_TAG_try_block		= 0x32,
-	DW_TAG_variant_part		= 0x33,
-	DW_TAG_variable			= 0x34,
-	DW_TAG_volatile_type		= 0x35,
-	DW_TAG_dwarf_procedure		= 0x36,
-	DW_TAG_restrict_type		= 0x37,
-	DW_TAG_interface_type		= 0x38,
-	DW_TAG_namespace		= 0x39,
-	DW_TAG_imported_module		= 0x3a,
-	DW_TAG_unspecified_type		= 0x3b,
-	DW_TAG_partial_unit		= 0x3c,
-	DW_TAG_imported_unit		= 0x3d,
-	DW_TAG_condition		= 0x3f,
-	DW_TAG_shared_type		= 0x40,
-
-	DW_TAG_lo_user			= 0x4080,
-	DW_TAG_hi_user			= 0xffff
-};
-
-enum dwarf_child {
-	DW_CHILDREN_no		= 0x00,
-	DW_CHILDREN_yes		= 0x01
-};
-
-enum dwarf_form {
-	DW_FORM_addr		= 0x01,
-	DW_FORM_block2		= 0x03,
-	DW_FORM_block4		= 0x04,
-	DW_FORM_data2		= 0x05,
-	DW_FORM_data4		= 0x06,
-	DW_FORM_data8		= 0x07,
-	DW_FORM_string		= 0x08,
-	DW_FORM_block		= 0x09,
-	DW_FORM_block1		= 0x0a,
-	DW_FORM_data1		= 0x0b,
-	DW_FORM_flag		= 0x0c,
-	DW_FORM_sdata		= 0x0d,
-	DW_FORM_strp		= 0x0e,
-	DW_FORM_udata		= 0x0f,
-	DW_FORM_ref_addr	= 0x10,
-	DW_FORM_ref1		= 0x11,
-	DW_FORM_ref2		= 0x12,
-	DW_FORM_ref4		= 0x13,
-	DW_FORM_ref8		= 0x14,
-	DW_FORM_ref_udata	= 0x15,
-	DW_FORM_indirect	= 0x16
-};
-
-enum dwarf_attribute {
-	DW_AT_sibling		= 0x01,
-	DW_AT_location		= 0x02,
-	DW_AT_name		= 0x03,
-	DW_AT_ordering		= 0x09,
-	DW_AT_byte_size		= 0x0b,
-	DW_AT_bit_offset	= 0x0c,
-	DW_AT_bit_size		= 0x0d,
-	DW_AT_stmt_list		= 0x10,
-	DW_AT_low_pc		= 0x11,
-	DW_AT_high_pc		= 0x12,
-	DW_AT_language		= 0x13,
-	DW_AT_discr		= 0x15,
-	DW_AT_discr_value	= 0x16,
-	DW_AT_visibility	= 0x17,
-	DW_AT_import		= 0x18,
-	DW_AT_string_length	= 0x19,
-	DW_AT_common_reference	= 0x1a,
-	DW_AT_comp_dir		= 0x1b,
-	DW_AT_const_value	= 0x1c,
-	DW_AT_containing_type	= 0x1d,
-	DW_AT_default_value	= 0x1e,
-	DW_AT_inline		= 0x20,
-	DW_AT_is_optional	= 0x21,
-	DW_AT_lower_bound	= 0x22,
-	DW_AT_producer		= 0x25,
-	DW_AT_prototyped	= 0x27,
-	DW_AT_return_addr	= 0x2a,
-	DW_AT_start_scope	= 0x2c,
-	DW_AT_bit_stride	= 0x2e,
-	DW_AT_upper_bound	= 0x2f,
-	DW_AT_abstract_origin	= 0x31,
-	DW_AT_accessibility	= 0x32,
-	DW_AT_address_class	= 0x33,
-	DW_AT_artificial	= 0x34,
-	DW_AT_base_types	= 0x35,
-	DW_AT_calling_convention= 0x36,
-	DW_AT_count		= 0x37,
-	DW_AT_data_member_location = 0x38,
-	DW_AT_decl_column	= 0x39,
-	DW_AT_decl_file		= 0x3a,
-	DW_AT_decl_line		= 0x3b,
-	DW_AT_declaration	= 0x3c,
-	DW_AT_discr_list	= 0x3d,
-	DW_AT_encoding		= 0x3e,
-	DW_AT_external		= 0x3f,
-	DW_AT_frame_base	= 0x40,
-	DW_AT_friend		= 0x41,
-	DW_AT_identifier_case	= 0x42,
-	DW_AT_macro_info	= 0x43,
-	DW_AT_namelist_item	= 0x44,
-	DW_AT_priority		= 0x45,
-	DW_AT_segment		= 0x46,
-	DW_AT_specification	= 0x47,
-	DW_AT_static_link	= 0x48,
-	DW_AT_type		= 0x49,
-	DW_AT_use_location	= 0x4a,
-	DW_AT_variable_parameter = 0x4b,
-	DW_AT_virtuality	= 0x4c,
-	DW_AT_vtable_elem_location = 0x4d,
-	DW_AT_allocated		= 0x4e,
-	DW_AT_associated	= 0x4f,
-	DW_AT_data_location	= 0x50,
-	DW_AT_byte_stride	= 0x51,
-	DW_AT_entry_pc		= 0x52,
-	DW_AT_use_UTF8		= 0x53,
-	DW_AT_extension		= 0x54,
-	DW_AT_ranges		= 0x55,
-	DW_AT_trampoline	= 0x56,
-	DW_AT_call_column	= 0x57,
-	DW_AT_call_file		= 0x58,
-	DW_AT_call_line		= 0x59,
-	DW_AT_description	= 0x5a,
-	DW_AT_binary_scale	= 0x5b,
-	DW_AT_decimal_scale	= 0x5c,
-	DW_AT_small		= 0x5d,
-	DW_AT_decimal_sign	= 0x5e,
-	DW_AT_digit_count	= 0x5f,
-	DW_AT_picture_string	= 0x60,
-	DW_AT_mutable		= 0x61,
-	DW_AT_threads_scaled	= 0x62,
-	DW_AT_explicit		= 0x63,
-	DW_AT_object_pointer	= 0x64,
-	DW_AT_endianity		= 0x65,
-	DW_AT_elemental		= 0x66,
-	DW_AT_pure		= 0x67,
-	DW_AT_recursive		= 0x68,
-
-	DW_AT_lo_user		= 0x2000,
-	DW_AT_hi_user		= 0x3fff
-};
-
-enum dwarf_op {
-	DW_OP_addr		= 0x03,
-	DW_OP_deref		= 0x06,
-	DW_OP_const1u		= 0x08,
-	DW_OP_const1s		= 0x09,
-	DW_OP_const2u		= 0x0a,
-	DW_OP_const2s		= 0x0b,
-	DW_OP_const4u		= 0x0c,
-	DW_OP_const4s		= 0x0d,
-	DW_OP_const8u		= 0x0e,
-	DW_OP_const8s		= 0x0f,
-	DW_OP_constu		= 0x10,
-	DW_OP_consts		= 0x11,
-	DW_OP_dup		= 0x12,
-	DW_OP_drop		= 0x13,
-	DW_OP_over		= 0x14,
-	DW_OP_pick		= 0x15,
-	DW_OP_swap		= 0x16,
-	DW_OP_rot		= 0x17,
-	DW_OP_xderef		= 0x18,
-	DW_OP_abs		= 0x19,
-	DW_OP_and		= 0x1a,
-	DW_OP_div		= 0x1b,
-	DW_OP_minus		= 0x1c,
-	DW_OP_mod		= 0x1d,
-	DW_OP_mul		= 0x1e,
-	DW_OP_neg		= 0x1f,
-	DW_OP_not		= 0x20,
-	DW_OP_or		= 0x21,
-	DW_OP_plus		= 0x22,
-	DW_OP_plus_uconst	= 0x23,
-	DW_OP_shl		= 0x24,
-	DW_OP_shr		= 0x25,
-	DW_OP_shra		= 0x26,
-	DW_OP_xor		= 0x27,
-	DW_OP_skip		= 0x2f,
-	DW_OP_bra		= 0x28,
-	DW_OP_eq		= 0x29,
-	DW_OP_ge		= 0x2a,
-	DW_OP_gt		= 0x2b,
-	DW_OP_le		= 0x2c,
-	DW_OP_lt		= 0x2d,
-	DW_OP_ne		= 0x2e,
-	DW_OP_lit0		= 0x30,
-	DW_OP_lit1		= 0x31,
-	DW_OP_lit2		= 0x32,
-	DW_OP_lit3		= 0x33,
-	DW_OP_lit4		= 0x34,
-	DW_OP_lit5		= 0x35,
-	DW_OP_lit6		= 0x36,
-	DW_OP_lit7		= 0x37,
-	DW_OP_lit8		= 0x38,
-	DW_OP_lit9		= 0x39,
-	DW_OP_lit10		= 0x3a,
-	DW_OP_lit11		= 0x3b,
-	DW_OP_lit12		= 0x3c,
-	DW_OP_lit13		= 0x3d,
-	DW_OP_lit14		= 0x3e,
-	DW_OP_lit15		= 0x3f,
-	DW_OP_lit16		= 0x40,
-	DW_OP_lit17		= 0x41,
-	DW_OP_lit18		= 0x42,
-	DW_OP_lit19		= 0x43,
-	DW_OP_lit20		= 0x44,
-	DW_OP_lit21		= 0x45,
-	DW_OP_lit22		= 0x46,
-	DW_OP_lit23		= 0x47,
-	DW_OP_lit24		= 0x48,
-	DW_OP_lit25		= 0x49,
-	DW_OP_lit26		= 0x4a,
-	DW_OP_lit27		= 0x4b,
-	DW_OP_lit28		= 0x4c,
-	DW_OP_lit29		= 0x4d,
-	DW_OP_lit30		= 0x4e,
-	DW_OP_lit31		= 0x4f,
-	DW_OP_reg0		= 0x50,
-	DW_OP_reg1		= 0x51,
-	DW_OP_reg2		= 0x52,
-	DW_OP_reg3		= 0x53,
-	DW_OP_reg4		= 0x54,
-	DW_OP_reg5		= 0x55,
-	DW_OP_reg6		= 0x56,
-	DW_OP_reg7		= 0x57,
-	DW_OP_reg8		= 0x58,
-	DW_OP_reg9		= 0x59,
-	DW_OP_reg10		= 0x5a,
-	DW_OP_reg11		= 0x5b,
-	DW_OP_reg12		= 0x5c,
-	DW_OP_reg13		= 0x5d,
-	DW_OP_reg14		= 0x5e,
-	DW_OP_reg15		= 0x5f,
-	DW_OP_reg16		= 0x60,
-	DW_OP_reg17		= 0x61,
-	DW_OP_reg18		= 0x62,
-	DW_OP_reg19		= 0x63,
-	DW_OP_reg20		= 0x64,
-	DW_OP_reg21		= 0x65,
-	DW_OP_reg22		= 0x66,
-	DW_OP_reg23		= 0x67,
-	DW_OP_reg24		= 0x68,
-	DW_OP_reg25		= 0x69,
-	DW_OP_reg26		= 0x6a,
-	DW_OP_reg27		= 0x6b,
-	DW_OP_reg28		= 0x6c,
-	DW_OP_reg29		= 0x6d,
-	DW_OP_reg30		= 0x6e,
-	DW_OP_reg31		= 0x6f,
-	DW_OP_breg0		= 0x70,
-	DW_OP_breg1		= 0x71,
-	DW_OP_breg2		= 0x72,
-	DW_OP_breg3		= 0x73,
-	DW_OP_breg4		= 0x74,
-	DW_OP_breg5		= 0x75,
-	DW_OP_breg6		= 0x76,
-	DW_OP_breg7		= 0x77,
-	DW_OP_breg8		= 0x78,
-	DW_OP_breg9		= 0x79,
-	DW_OP_breg10		= 0x7a,
-	DW_OP_breg11		= 0x7b,
-	DW_OP_breg12		= 0x7c,
-	DW_OP_breg13		= 0x7d,
-	DW_OP_breg14		= 0x7e,
-	DW_OP_breg15		= 0x7f,
-	DW_OP_breg16		= 0x80,
-	DW_OP_breg17		= 0x81,
-	DW_OP_breg18		= 0x82,
-	DW_OP_breg19		= 0x83,
-	DW_OP_breg20		= 0x84,
-	DW_OP_breg21		= 0x85,
-	DW_OP_breg22		= 0x86,
-	DW_OP_breg23		= 0x87,
-	DW_OP_breg24		= 0x88,
-	DW_OP_breg25		= 0x89,
-	DW_OP_breg26		= 0x8a,
-	DW_OP_breg27		= 0x8b,
-	DW_OP_breg28		= 0x8c,
-	DW_OP_breg29		= 0x8d,
-	DW_OP_breg30		= 0x8e,
-	DW_OP_breg31		= 0x8f,
-	DW_OP_regx		= 0x90,
-	DW_OP_fbreg		= 0x91,
-	DW_OP_bregx		= 0x92,
-	DW_OP_piece		= 0x93,
-	DW_OP_deref_size	= 0x94,
-	DW_OP_xderef_size	= 0x95,
-	DW_OP_nop		= 0x96,
-	DW_OP_push_object_address = 0x97,
-	DW_OP_call2		= 0x98,
-	DW_OP_call4		= 0x99,
-	DW_OP_call_ref		= 0x9a ,
-	DW_OP_form_tls_address	= 0x9b,
-	DW_OP_call_frame_cfa	= 0x9c,
-	DW_OP_bit_piece		= 0x9d,
-
-	DW_OP_lo_user		= 0xe0,
-	DW_OP_hi_user		= 0xff
-};
-
-enum dwarf_base_type {
-	DW_ATE_address		= 0x01,
-	DW_ATE_boolean		= 0x02,
-	DW_ATE_complex_float	= 0x03,
-	DW_ATE_float		= 0x04,
-	DW_ATE_signed		= 0x05,
-	DW_ATE_signed_char	= 0x06,
-	DW_ATE_unsigned		= 0x07,
-	DW_ATE_unsigned_char	= 0x08,
-	DW_ATE_imaginary_float	= 0x09,
-	DW_ATE_packed_decimal	= 0x0a,
-	DW_ATE_numeric_string	= 0x0b,
-	DW_ATE_edited		= 0x0c,
-	DW_ATE_signed_fixed	= 0x0d,
-	DW_ATE_unsigned_fixed	= 0x0e,
-	DW_ATE_decimal_float	= 0x0f,
-
-	DW_ATE_lo_user		= 0x80,
-	DW_ATE_hi_user		= 0xff
-};
-
-enum dwarf_decimal_sign {
-	DW_DS_unsigned			= 0x01,
-	DW_DS_leading_overpunch		= 0x02,
-	DW_DS_trailing_overpunch	= 0x03,
-	DW_DS_leading_separate		= 0x04,
-	DW_DS_trailing_separate		= 0x05
-};
-
-enum dwarf_endianity {
-	DW_END_default	= 0x00,
-	DW_END_big	= 0x01,
-	DW_END_little	= 0x02,
-
-	DW_END_lo_user	= 0x40,
-	DW_END_hi_user	= 0xff
-};
-
-enum dwarf_accessibility {
-	DW_ACCESS_public	= 0x01,
-	DW_ACCESS_protected	= 0x02,
-	DW_ACCESS_private	= 0x03
-};
-
-enum dwarf_visibility {
-	DW_VIS_local		= 0x01,
-	DW_VIS_exported		= 0x02,
-	DW_VIS_qualified	= 0x03
-};
-
-enum dwarf_virtuality {
-	DW_VIRTUALITY_none		= 0x00,
-	DW_VIRTUALITY_virtual		= 0x01,
-	DW_VIRTUALITY_pure_virtual	= 0x02
-};
-
-enum dwarf_language {
-	DW_LANG_C89		= 0x0001,
-	DW_LANG_C		= 0x0002,
-	DW_LANG_Ada83		= 0x0003,
-	DW_LANG_C_plus_plus	= 0x0004,
-	DW_LANG_Cobol74		= 0x0005,
-	DW_LANG_Cobol85		= 0x0006,
-	DW_LANG_Fortran77	= 0x0007,
-	DW_LANG_Fortran90	= 0x0008,
-	DW_LANG_Pascal83	= 0x0009,
-	DW_LANG_Modula2		= 0x000a,
-	DW_LANG_Java		= 0x000b,
-	DW_LANG_C99		= 0x000c,
-	DW_LANG_Ada95		= 0x000d,
-	DW_LANG_Fortran95	= 0x000e,
-	DW_LANG_PLI		= 0x000f,
-	DW_LANG_ObjC		= 0x0010,
-	DW_LANG_ObjC_plus_plus	= 0x0011,
-	DW_LANG_UPC		= 0x0012,
-	DW_LANG_D		= 0x0013,
-
-	DW_LANG_Mips_Assembler	= 0x8001,
-
-	DW_LANG_lo_user		= 0x8000,
-	DW_LANG_hi_user		= 0xffff
-};
-
-enum dwarf_identifier_case {
-	DW_ID_case_sensitive	= 0x00,
-	DW_ID_up_case		= 0x01,
-	DW_ID_down_case		= 0x02,
-	DW_ID_case_insensitive	= 0x03
-};
-
-enum dwarf_calling_conversion {
-	DW_CC_normal	= 0x01,
-	DW_CC_program	= 0x02,
-	DW_CC_nocall	= 0x03,
-
-	DW_CC_lo_user	= 0x40,
-	DW_CC_hi_user	= 0xff
-};
-
-enum dwarf_inline {
-	DW_INL_not_inlined		= 0x00,
-	DW_INL_inlined			= 0x01,
-	DW_INL_declared_not_inlined	= 0x02,
-	DW_INL_declared_inlined		= 0x03
-};
-
-enum dwarf_ordering {
-	DW_ORD_row_major = 0x00,
-	DW_ORD_col_major = 0x01
-};
-
-enum dwarf_discriminant {
-	DW_DSC_label = 0x00,
-	DW_DSC_range = 0x01
-};
-
-enum dwarf_line_number {
-	DW_LNS_extended_op	= 0x00,
-	DW_LNS_copy		= 0x01,
-	DW_LNS_advance_pc	= 0x02,
-	DW_LNS_advance_line	= 0x03,
-	DW_LNS_set_file		= 0x04,
-	DW_LNS_set_column	= 0x05,
-	DW_LNS_negate_stmt	= 0x06,
-	DW_LNS_set_basic_block	= 0x07,
-	DW_LNS_const_add_pc	= 0x08,
-	DW_LNS_fixed_advance_pc	= 0x09,
-	DW_LNS_set_prologue_end	= 0x0a,
-	DW_LNS_set_epilogue_begin = 0x0b,
-	DW_LNS_set_isa		= 0x0c
-};
-
-enum dwarf_line_number_extended {
-	DW_LNE_end_sequence	= 0x01,
-	DW_LNE_set_address	= 0x02,
-	DW_LNE_define_file	= 0x03,
-	DW_LNE_lo_user		= 0x80,
-	DW_LNE_hi_user		= 0xff
-};
-
-enum dwarf_macinfo_type {
-	DW_MACINFO_define	= 0x01,
-	DW_MACINFO_undef	= 0x02,
-	DW_MACINFO_start_file	= 0x03,
-	DW_MACINFO_end_file	= 0x04,
-	DW_MACINFO_vendor_ext	= 0xff
-};
-
-enum dwarf_call_frame {
-	DW_CFA_advance_loc		= 0x01,
-	DW_CFA_offset			= 0x02,
-	DW_CFA_restore			= 0x03,
-	DW_CFA_nop			= 0x00,
-	DW_CFA_set_loc			= 0x01,
-	DW_CFA_advance_loc1		= 0x02,
-	DW_CFA_advance_loc2		= 0x03,
-	DW_CFA_advance_loc4		= 0x04,
-	DW_CFA_offset_extended		= 0x05,
-	DW_CFA_restore_extended		= 0x06,
-	DW_CFA_undefined		= 0x07,
-	DW_CFA_same_value		= 0x08,
-	DW_CFA_register			= 0x09,
-	DW_CFA_remember_state		= 0x0a,
-	DW_CFA_restore_state		= 0x0b,
-	DW_CFA_def_cfa			= 0x0c,
-	DW_CFA_def_cfa_register		= 0x0d,
-	DW_CFA_def_cfa_offset		= 0x0e,
-	DW_CFA_def_cfa_expression 	= 0x0f,
-	DW_CFA_expression		= 0x10,
-	DW_CFA_offset_extended_sf	= 0x11,
-	DW_CFA_def_cfa_sf		= 0x12,
-	DW_CFA_def_cfa_offset_sf	= 0x13,
-	DW_CFA_val_offset		= 0x14,
-	DW_CFA_val_offset_sf		= 0x15,
-	DW_CFA_val_expression		= 0x16,
-	DW_CFA_lo_user			= 0x1c,
-	DW_CFA_hi_user			= 0x3f
-};
-
-#endif /* OUTPUT_DWARF_H */
--- a/nasmbuild/nasm-2.13rc9/output/elf.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,537 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#ifndef OUTPUT_ELF_H
-#define OUTPUT_ELF_H
-
-/*
- * Since NASM support both Elf32/64 file formats
- * we need to cover all types, structures, typedefs and etc
- */
-
-#include "compiler.h"
-
-/* Segment types */
-#define PT_NULL         0
-#define PT_LOAD         1
-#define PT_DYNAMIC      2
-#define PT_INTERP       3
-#define PT_NOTE         4
-#define PT_SHLIB        5
-#define PT_PHDR         6
-#define PT_LOOS         0x60000000
-#define PT_HIOS         0x6fffffff
-#define PT_LOPROC       0x70000000
-#define PT_HIPROC       0x7fffffff
-#define PT_GNU_EH_FRAME 0x6474e550  /* Extension, eh? */
-
-/* ELF file types */
-#define ET_NONE         0
-#define ET_REL          1
-#define ET_EXEC         2
-#define ET_DYN          3
-#define ET_CORE         4
-#define ET_LOPROC       0xff00
-#define ET_HIPROC       0xffff
-
-/* ELF machine types */
-#define EM_NONE         0
-#define EM_M32          1
-#define EM_SPARC        2
-#define EM_386          3
-#define EM_68K          4
-#define EM_88K          5
-#define EM_486          6       /* Not used in Linux at least */
-#define EM_860          7
-#define EM_MIPS         8       /* R3k, bigendian(?) */
-#define EM_MIPS_RS4_BE  10      /* R4k BE */
-#define EM_PARISC       15
-#define EM_SPARC32PLUS  18
-#define EM_PPC          20
-#define EM_PPC64        21
-#define EM_S390         22
-#define EM_SH           42
-#define EM_SPARCV9      43      /* v9 = SPARC64 */
-#define EM_H8_300H      47
-#define EM_H8S          48
-#define EM_IA_64        50
-#define EM_X86_64       62
-#define EM_CRIS         76
-#define EM_V850         87
-#define EM_ALPHA        0x9026  /* Interrim Alpha that stuck around */
-#define EM_CYGNUS_V850  0x9080  /* Old v850 ID used by Cygnus */
-#define EM_S390_OLD     0xA390  /* Obsolete interrim value for S/390 */
-
-/* Dynamic type values */
-#define DT_NULL         0
-#define DT_NEEDED       1
-#define DT_PLTRELSZ     2
-#define DT_PLTGOT       3
-#define DT_HASH         4
-#define DT_STRTAB       5
-#define DT_SYMTAB       6
-#define DT_RELA         7
-#define DT_RELASZ       8
-#define DT_RELAENT      9
-#define DT_STRSZ        10
-#define DT_SYMENT       11
-#define DT_INIT         12
-#define DT_FINI         13
-#define DT_SONAME       14
-#define DT_RPATH        15
-#define DT_SYMBOLIC     16
-#define DT_REL          17
-#define DT_RELSZ        18
-#define DT_RELENT       19
-#define DT_PLTREL       20
-#define DT_DEBUG        21
-#define DT_TEXTREL      22
-#define DT_JMPREL       23
-#define DT_LOPROC       0x70000000
-#define DT_HIPROC       0x7fffffff
-
-/* Auxilliary table entries */
-#define AT_NULL         0       /* end of vector */
-#define AT_IGNORE       1       /* entry should be ignored */
-#define AT_EXECFD       2       /* file descriptor of program */
-#define AT_PHDR         3       /* program headers for program */
-#define AT_PHENT        4       /* size of program header entry */
-#define AT_PHNUM        5       /* number of program headers */
-#define AT_PAGESZ       6       /* system page size */
-#define AT_BASE         7       /* base address of interpreter */
-#define AT_FLAGS        8       /* flags */
-#define AT_ENTRY        9       /* entry point of program */
-#define AT_NOTELF       10      /* program is not ELF */
-#define AT_UID          11      /* real uid */
-#define AT_EUID         12      /* effective uid */
-#define AT_GID          13      /* real gid */
-#define AT_EGID         14      /* effective gid */
-#define AT_PLATFORM     15      /* string identifying CPU for optimizations */
-#define AT_HWCAP        16      /* arch dependent hints at CPU capabilities */
-#define AT_CLKTCK       17      /* frequency at which times() increments */
-/* 18..22 = ? */
-#define AT_SECURE       23      /* secure mode boolean */
-
-/* Program header permission flags */
-#define PF_X            0x1
-#define PF_W            0x2
-#define PF_R            0x4
-
-/* Section header types */
-#define SHT_NULL        0
-#define SHT_PROGBITS    1
-#define SHT_SYMTAB      2
-#define SHT_STRTAB      3
-#define SHT_RELA        4
-#define SHT_HASH        5
-#define SHT_DYNAMIC     6
-#define SHT_NOTE        7
-#define SHT_NOBITS      8
-#define SHT_REL         9
-#define SHT_SHLIB       10
-#define SHT_DYNSYM      11
-#define SHT_NUM         12
-#define SHT_LOPROC      0x70000000
-#define SHT_HIPROC      0x7fffffff
-#define SHT_LOUSER      0x80000000
-#define SHT_HIUSER      0xffffffff
-
-/* Section header flags */
-#define SHF_WRITE            (1 << 0)   /* Writable */
-#define SHF_ALLOC            (1 << 1)   /* Occupies memory during execution */
-#define SHF_EXECINSTR        (1 << 2)   /* Executable */
-#define SHF_MERGE            (1 << 4)   /* Might be merged */
-#define SHF_STRINGS          (1 << 5)   /* Contains nul-terminated strings */
-#define SHF_INFO_LINK        (1 << 6)   /* `sh_info' contains SHT index */
-#define SHF_LINK_ORDER       (1 << 7)   /* Preserve order after combining */
-#define SHF_OS_NONCONFORMING (1 << 8)   /* Non-standard OS specific handling required */
-#define SHF_GROUP            (1 << 9)   /* Section is member of a group.  */
-#define SHF_TLS              (1 << 10)  /* Section hold thread-local data.  */
-
-/* Special section numbers */
-#define SHN_UNDEF       0
-#define SHN_LORESERVE   0xff00
-#define SHN_LOPROC      0xff00
-#define SHN_HIPROC      0xff1f
-#define SHN_ABS         0xfff1
-#define SHN_COMMON      0xfff2
-#define SHN_HIRESERVE   0xffff
-
-/* Section align flag */
-#define SHA_ANY         1       /* No alignment constraint */
-
-/* Lenght of magic at the start of a file */
-#define EI_NIDENT       16
-
-/* Magic number constants... */
-#define EI_MAG0         0       /* e_ident[] indexes */
-#define EI_MAG1         1
-#define EI_MAG2         2
-#define EI_MAG3         3
-#define EI_CLASS        4
-#define EI_DATA         5
-#define EI_VERSION      6
-#define EI_OSABI        7
-#define EI_ABIVERSION   8
-#define EI_NINDENT      16
-
-#define ELFMAG0         0x7f    /* EI_MAG */
-#define ELFMAG1         'E'
-#define ELFMAG2         'L'
-#define ELFMAG3         'F'
-#define ELFMAG          "\177ELF"
-#define SELFMAG         4
-
-#define ELFCLASSNONE    0       /* EI_CLASS */
-#define ELFCLASS32      1
-#define ELFCLASS64      2
-#define ELFCLASSNUM     3
-
-#define ELFDATANONE     0       /* e_ident[EI_DATA] */
-#define ELFDATA2LSB     1
-#define ELFDATA2MSB     2
-
-#define EV_NONE         0       /* e_version, EI_VERSION */
-#define EV_CURRENT      1
-#define EV_NUM          2
-
-#define ELFOSABI_NONE   0
-#define ELFOSABI_LINUX  3
-
-/* Legal values for ST_BIND subfield of st_info (symbol binding).  */
-#define STB_LOCAL       0       /* Local symbol */
-#define STB_GLOBAL      1       /* Global symbol */
-#define STB_WEAK        2       /* Weak symbol */
-#define STB_NUM         3       /* Number of defined types.  */
-#define STB_LOOS        10      /* Start of OS-specific */
-#define STB_HIOS        12      /* End of OS-specific */
-#define STB_LOPROC      13      /* Start of processor-specific */
-#define STB_HIPROC      15      /* End of processor-specific */
-
-/* Symbol types */
-#define STT_NOTYPE      0       /* Symbol type is unspecified */
-#define STT_OBJECT      1       /* Symbol is a data object */
-#define STT_FUNC        2       /* Symbol is a code object */
-#define STT_SECTION     3       /* Symbol associated with a section */
-#define STT_FILE        4       /* Symbol's name is file name */
-#define STT_COMMON      5       /* Symbol is a common data object */
-#define STT_TLS         6       /* Symbol is thread-local data object*/
-#define STT_NUM         7       /* Number of defined types.  */
-
-/* Symbol visibilities */
-#define STV_DEFAULT     0       /* Default symbol visibility rules */
-#define STV_INTERNAL    1       /* Processor specific hidden class */
-#define STV_HIDDEN      2       /* Sym unavailable in other modules */
-#define STV_PROTECTED   3       /* Not preemptible, not exported */
-
-/* Both Elf32_Sym and Elf64_Sym use the same one-byte st_info field  */
-#define ELF32_ST_BIND(i)      ((i) >> 4)
-#define ELF32_ST_MKBIND(i)    ((i) << 4)  /* just a helper */
-#define ELF32_ST_TYPE(i)      ((i) & 0xf)
-#define ELF32_ST_INFO(b, i)   (ELF32_ST_MKBIND(b) + ELF32_ST_TYPE(i))
-
-#define ELF64_ST_BIND(i)      ELF32_ST_BIND(i)
-#define ELF64_ST_MKBIND(i)    ELF32_ST_MKBIND(i)
-#define ELF64_ST_TYPE(i)      ELF32_ST_TYPE(i)
-#define ELF64_ST_INFO(b, i)   ELF32_ST_INFO(b, i)
-
-/*
- * ELF standard typedefs (yet more proof that <stdint.h> was way overdue)
- */
-
-typedef uint16_t    Elf32_Half;
-typedef int16_t     Elf32_SHalf;
-typedef uint32_t    Elf32_Word;
-typedef int32_t     Elf32_Sword;
-typedef uint64_t    Elf32_Xword;
-typedef int64_t     Elf32_Sxword;
-
-typedef uint32_t    Elf32_Off;
-typedef uint32_t    Elf32_Addr;
-typedef uint16_t    Elf32_Section;
-
-typedef uint16_t    Elf64_Half;
-typedef int16_t     Elf64_SHalf;
-typedef uint32_t    Elf64_Word;
-typedef int32_t     Elf64_Sword;
-typedef uint64_t    Elf64_Xword;
-typedef int64_t     Elf64_Sxword;
-
-typedef uint64_t    Elf64_Off;
-typedef uint64_t    Elf64_Addr;
-typedef uint16_t    Elf64_Section;
-
-/*
- * Dynamic header
- */
-
-typedef struct elf32_dyn {
-    Elf32_Sword     d_tag;
-    union {
-        Elf32_Sword d_val;
-        Elf32_Addr  d_ptr;
-    } d_un;
-} Elf32_Dyn;
-
-typedef struct elf64_dyn {
-    Elf64_Sxword    d_tag;
-    union {
-        Elf64_Xword d_val;
-        Elf64_Addr  d_ptr;
-    } d_un;
-} Elf64_Dyn;
-
-/*
- * Relocations
- */
-
-#define ELF32_R_SYM(x)  ((x) >> 8)
-#define ELF32_R_TYPE(x) ((x) & 0xff)
-
-typedef struct elf32_rel {
-    Elf32_Addr      r_offset;
-    Elf32_Word      r_info;
-} Elf32_Rel;
-
-typedef struct elf32_rela {
-    Elf32_Addr      r_offset;
-    Elf32_Word      r_info;
-    Elf32_Sword     r_addend;
-} Elf32_Rela;
-
-enum reloc32_type {
-    R_386_32            =  1,   /* ordinary absolute relocation */
-    R_386_PC32          =  2,   /* PC-relative relocation */
-    R_386_GOT32         =  3,   /* an offset into GOT */
-    R_386_PLT32         =  4,   /* a PC-relative offset into PLT */
-    R_386_COPY          =  5,   /* ??? */
-    R_386_GLOB_DAT      =  6,   /* ??? */
-    R_386_JUMP_SLOT     =  7,   /* ??? */
-    R_386_RELATIVE      =  8,   /* ??? */
-    R_386_GOTOFF        =  9,   /* an offset from GOT base */
-    R_386_GOTPC         = 10,   /* a PC-relative offset _to_ GOT */
-    R_386_TLS_TPOFF     = 14,   /* Offset in static TLS block */
-    R_386_TLS_IE        = 15,   /* Address of GOT entry for static TLS block offset */
-    /* These are GNU extensions, but useful */
-    R_386_16            = 20,   /* A 16-bit absolute relocation */
-    R_386_PC16          = 21,   /* A 16-bit PC-relative relocation */
-    R_386_8             = 22,   /* An 8-bit absolute relocation */
-    R_386_PC8           = 23    /* An 8-bit PC-relative relocation */
-};
-
-#define ELF64_R_SYM(x)  ((x) >> 32)
-#define ELF64_R_TYPE(x) ((x) & 0xffffffff)
-
-typedef struct elf64_rel {
-    Elf64_Addr      r_offset;
-    Elf64_Xword     r_info;
-} Elf64_Rel;
-
-typedef struct elf64_rela {
-    Elf64_Addr      r_offset;
-    Elf64_Xword     r_info;
-    Elf64_Sxword    r_addend;
-} Elf64_Rela;
-
-enum reloc64_type {
-    R_X86_64_NONE       =  0,   /* No reloc */
-    R_X86_64_64         =  1,   /* Direct 64 bit  */
-    R_X86_64_PC32       =  2,   /* PC relative 32 bit signed */
-    R_X86_64_GOT32      =  3,   /* 32 bit GOT entry */
-    R_X86_64_PLT32      =  4,   /* 32 bit PLT address */
-    R_X86_64_COPY       =  5,   /* Copy symbol at runtime */
-    R_X86_64_GLOB_DAT   =  6,   /* Create GOT entry */
-    R_X86_64_JUMP_SLOT  =  7,   /* Create PLT entry */
-    R_X86_64_RELATIVE   =  8,   /* Adjust by program base */
-    R_X86_64_GOTPCREL   =  9,   /* 32 bit signed PC relative offset to GOT */
-    R_X86_64_32         = 10,   /* Direct 32 bit zero extended */
-    R_X86_64_32S        = 11,   /* Direct 32 bit sign extended */
-    R_X86_64_16         = 12,   /* Direct 16 bit zero extended */
-    R_X86_64_PC16       = 13,   /* 16 bit sign extended pc relative */
-    R_X86_64_8          = 14,   /* Direct 8 bit sign extended  */
-    R_X86_64_PC8        = 15,   /* 8 bit sign extended pc relative */
-    R_X86_64_DTPMOD64   = 16,   /* ID of module containing symbol */
-    R_X86_64_DTPOFF64   = 17,   /* Offset in module's TLS block */
-    R_X86_64_TPOFF64    = 18,   /* Offset in initial TLS block */
-    R_X86_64_TLSGD      = 19,   /* 32 bit signed PC relative offset to two GOT entries for GD symbol */
-    R_X86_64_TLSLD      = 20,   /* 32 bit signed PC relative offset to two GOT entries for LD symbol */
-    R_X86_64_DTPOFF32   = 21,   /* Offset in TLS block */
-    R_X86_64_GOTTPOFF   = 22,   /* 32 bit signed PC relative offset to GOT entry for IE symbol */
-    R_X86_64_TPOFF32    = 23,   /* Offset in initial TLS block */
-    R_X86_64_PC64       = 24,   /* word64 S + A - P */
-    R_X86_64_GOTOFF64   = 25,   /* word64 S + A - GOT */
-    R_X86_64_GOTPC32    = 26,   /* word32 GOT + A - P */
-    R_X86_64_GOT64      = 27,   /* word64 G + A */
-    R_X86_64_GOTPCREL64 = 28,   /* word64 G + GOT - P + A */
-    R_X86_64_GOTPC64    = 29,   /* word64 GOT - P + A */
-    R_X86_64_GOTPLT64   = 30,   /* word64 G + A */
-    R_X86_64_PLTOFF64   = 31,   /* word64 L - GOT + A */
-    R_X86_64_SIZE32     = 32,   /* word32 Z + A */
-    R_X86_64_SIZE64     = 33,   /* word64 Z + A */
-    R_X86_64_GOTPC32_TLSDESC = 34,  /* word32 */
-    R_X86_64_TLSDESC_CALL    = 35,  /* none */
-    R_X86_64_TLSDESC    = 36    /* word64?2 */
-};
-
-/*
- * Symbol
- */
-
-typedef struct elf32_sym {
-    Elf32_Word      st_name;
-    Elf32_Addr      st_value;
-    Elf32_Word      st_size;
-    unsigned char   st_info;
-    unsigned char   st_other;
-    Elf32_Half      st_shndx;
-} Elf32_Sym;
-
-typedef struct elf64_sym {
-    Elf64_Word      st_name;
-    unsigned char   st_info;
-    unsigned char   st_other;
-    Elf64_Half      st_shndx;
-    Elf64_Addr      st_value;
-    Elf64_Xword     st_size;
-} Elf64_Sym;
-
-/*
- * Main file header
- */
-
-typedef struct elf32_hdr {
-    unsigned char   e_ident[EI_NIDENT];
-    Elf32_Half      e_type;
-    Elf32_Half      e_machine;
-    Elf32_Word      e_version;
-    Elf32_Addr      e_entry;
-    Elf32_Off       e_phoff;
-    Elf32_Off       e_shoff;
-    Elf32_Word      e_flags;
-    Elf32_Half      e_ehsize;
-    Elf32_Half      e_phentsize;
-    Elf32_Half      e_phnum;
-    Elf32_Half      e_shentsize;
-    Elf32_Half      e_shnum;
-    Elf32_Half      e_shstrndx;
-} Elf32_Ehdr;
-
-typedef struct elf64_hdr {
-    unsigned char   e_ident[EI_NIDENT];
-    Elf64_Half      e_type;
-    Elf64_Half      e_machine;
-    Elf64_Word      e_version;
-    Elf64_Addr      e_entry;
-    Elf64_Off       e_phoff;
-    Elf64_Off       e_shoff;
-    Elf64_Word      e_flags;
-    Elf64_Half      e_ehsize;
-    Elf64_Half      e_phentsize;
-    Elf64_Half      e_phnum;
-    Elf64_Half      e_shentsize;
-    Elf64_Half      e_shnum;
-    Elf64_Half      e_shstrndx;
-} Elf64_Ehdr;
-
-/*
- * Program header
- */
-
-typedef struct elf32_phdr {
-    Elf32_Word      p_type;
-    Elf32_Off       p_offset;
-    Elf32_Addr      p_vaddr;
-    Elf32_Addr      p_paddr;
-    Elf32_Word      p_filesz;
-    Elf32_Word      p_memsz;
-    Elf32_Word      p_flags;
-    Elf32_Word      p_align;
-} Elf32_Phdr;
-
-typedef struct elf64_phdr {
-    Elf64_Word      p_type;
-    Elf64_Word      p_flags;
-    Elf64_Off       p_offset;
-    Elf64_Addr      p_vaddr;
-    Elf64_Addr      p_paddr;
-    Elf64_Xword     p_filesz;
-    Elf64_Xword     p_memsz;
-    Elf64_Xword     p_align;
-} Elf64_Phdr;
-
-/*
- * Section header
- */
-
-typedef struct elf32_shdr {
-    Elf32_Word      sh_name;
-    Elf32_Word      sh_type;
-    Elf32_Word      sh_flags;
-    Elf32_Addr      sh_addr;
-    Elf32_Off       sh_offset;
-    Elf32_Word      sh_size;
-    Elf32_Word      sh_link;
-    Elf32_Word      sh_info;
-    Elf32_Word      sh_addralign;
-    Elf32_Word      sh_entsize;
-} Elf32_Shdr;
-
-typedef struct elf64_shdr {
-    Elf64_Word      sh_name;
-    Elf64_Word      sh_type;
-    Elf64_Xword     sh_flags;
-    Elf64_Addr      sh_addr;
-    Elf64_Off       sh_offset;
-    Elf64_Xword     sh_size;
-    Elf64_Word      sh_link;
-    Elf64_Word      sh_info;
-    Elf64_Xword     sh_addralign;
-    Elf64_Xword     sh_entsize;
-} Elf64_Shdr;
-
-/*
- * Note header
- */
-typedef struct elf32_note {
-    Elf32_Word      n_namesz;   /* Name size */
-    Elf32_Word      n_descsz;   /* Content size */
-    Elf32_Word      n_type;     /* Content type */
-} Elf32_Nhdr;
-
-typedef struct elf64_note {
-    Elf64_Word      n_namesz;   /* Name size */
-    Elf64_Word      n_descsz;   /* Content size */
-    Elf64_Word      n_type;     /* Content type */
-} Elf64_Nhdr;
-
-#endif /* OUTPUT_ELF_H */
--- a/nasmbuild/nasm-2.13rc9/output/legacy.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,110 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * output/legacy.c
- *
- * Mangle a struct out_data to match the rather bizarre legacy
- * backend interface.
- *
- * The "data" parameter for the output function points to a "int64_t",
- * containing the address of the target in question, unless the type is
- * OUT_RAWDATA, in which case it points to an "uint8_t"
- * array.
- *
- * Exceptions are OUT_RELxADR, which denote an x-byte relocation
- * which will be a relative jump. For this we need to know the
- * distance in bytes from the start of the relocated record until
- * the end of the containing instruction. _This_ is what is stored
- * in the size part of the parameter, in this case.
- *
- * Also OUT_RESERVE denotes reservation of N bytes of BSS space,
- * and the contents of the "data" parameter is irrelevant.
- */
-
-#include "nasm.h"
-#include "outlib.h"
-
-void nasm_do_legacy_output(const struct out_data *data)
-{
-    const void *dptr = data->data;
-    enum out_type type = data->type;
-    int32_t tsegment = data->tsegment;
-    int32_t twrt = data->twrt;
-    uint64_t size = data->size;
-
-    switch (data->type) {
-    case OUT_RELADDR:
-        switch (data->size) {
-        case 1:
-            type = OUT_REL1ADR;
-            break;
-        case 2:
-            type = OUT_REL2ADR;
-            break;
-        case 4:
-            type = OUT_REL4ADR;
-            break;
-        case 8:
-            type = OUT_REL8ADR;
-            break;
-        default:
-            panic();
-            break;
-        }
-
-        dptr = &data->toffset;
-        size = data->relbase - data->offset;
-        break;
-
-    case OUT_SEGMENT:
-        type = OUT_ADDRESS;
-        /* fall through */
-
-    case OUT_ADDRESS:
-        dptr = &data->toffset;
-        size = (data->sign == OUT_SIGNED) ? -data->size : data->size;
-        break;
-
-    case OUT_RAWDATA:
-    case OUT_RESERVE:
-        tsegment = twrt = NO_SEG;
-        break;
-
-    default:
-        panic();
-        break;
-    }
-
-    ofmt->legacy_output(data->segment, dptr, type, size, tsegment, twrt);
-}
--- a/nasmbuild/nasm-2.13rc9/output/nulldbg.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "outlib.h"
-
-void null_debug_init(void)
-{
-}
-
-void null_debug_linenum(const char *filename, int32_t linenumber, int32_t segto)
-{
-	(void)filename;
-	(void)linenumber;
-	(void)segto;
-}
-
-void null_debug_deflabel(char *name, int32_t segment, int64_t offset,
-                         int is_global, char *special)
-{
-	(void)name;
-	(void)segment;
-	(void)offset;
-	(void)is_global;
-	(void)special;
-}
-
-void null_debug_directive(const char *directive, const char *params)
-{
-	(void)directive;
-	(void)params;
-}
-
-void null_debug_typevalue(int32_t type)
-{
-	(void)type;
-}
-
-void null_debug_output(int type, void *param)
-{
-	(void)type;
-	(void)param;
-}
-
-void null_debug_cleanup(void)
-{
-}
-
-const struct dfmt null_debug_form = {
-    "Null debug format",
-    "null",
-    null_debug_init,
-    null_debug_linenum,
-    null_debug_deflabel,
-    null_debug_directive,
-    null_debug_typevalue,
-    null_debug_output,
-    null_debug_cleanup,
-    NULL                        /* pragma list */
-};
-
-const struct dfmt * const null_debug_arr[2] = { &null_debug_form, NULL };
--- a/nasmbuild/nasm-2.13rc9/output/nullout.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "outlib.h"
-
-int null_setinfo(enum geninfo type, char **string)
-{
-    (void)type;
-    (void)string;
-    return 0;
-}
-
-enum directive_result
-null_directive(enum directives directive, char *value, int pass)
-{
-    (void)directive;
-    (void)value;
-    (void)pass;
-    return DIRR_UNKNOWN;
-}
-
-void null_sectalign(int32_t seg, unsigned int value)
-{
-    (void)seg;
-    (void)value;
-}
--- a/nasmbuild/nasm-2.13rc9/output/outaout.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,956 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2013 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/* 
- * outaout.c	output routines for the Netwide Assembler to produce
- *		Linux a.out object files
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "saa.h"
-#include "raa.h"
-#include "stdscan.h"
-#include "eval.h"
-#include "outform.h"
-#include "outlib.h"
-
-#if defined OF_AOUT || defined OF_AOUTB
-
-#define RELTYPE_ABSOLUTE 0x00
-#define RELTYPE_RELATIVE 0x01
-#define RELTYPE_GOTPC    0x01   /* no explicit GOTPC in a.out */
-#define RELTYPE_GOTOFF   0x10
-#define RELTYPE_GOT      0x10   /* distinct from GOTOFF bcos sym not sect */
-#define RELTYPE_PLT      0x21
-#define RELTYPE_SYMFLAG  0x08
-
-struct Reloc {
-    struct Reloc *next;
-    int32_t address;               /* relative to _start_ of section */
-    int32_t symbol;                /* symbol number or -ve section id */
-    int bytes;                  /* 2 or 4 */
-    int reltype;                /* see above */
-};
-
-struct Symbol {
-    int32_t strpos;                /* string table position of name */
-    int type;                   /* symbol type - see flags below */
-    int32_t value;                 /* address, or COMMON variable size */
-    int32_t size;                  /* size for data or function exports */
-    int32_t segment;               /* back-reference used by gsym_reloc */
-    struct Symbol *next;        /* list of globals in each section */
-    struct Symbol *nextfwd;     /* list of unresolved-size symbols */
-    char *name;                 /* for unresolved-size symbols */
-    int32_t symnum;                /* index into symbol table */
-};
-
-/*
- * Section IDs - used in Reloc.symbol when negative, and in
- * Symbol.type when positive.
- */
-#define SECT_ABS 2              /* absolute value */
-#define SECT_TEXT 4             /* text section */
-#define SECT_DATA 6             /* data section */
-#define SECT_BSS 8              /* bss section */
-#define SECT_MASK 0xE           /* mask out any of the above */
-
-/*
- * More flags used in Symbol.type.
- */
-#define SYM_GLOBAL 1            /* it's a global symbol */
-#define SYM_DATA 0x100          /* used for shared libs */
-#define SYM_FUNCTION 0x200      /* used for shared libs */
-#define SYM_WITH_SIZE 0x4000    /* not output; internal only */
-
-/*
- * Bit more explanation of symbol types: SECT_xxx denotes a local
- * symbol. SECT_xxx|SYM_GLOBAL denotes a global symbol, defined in
- * this module. Just SYM_GLOBAL, with zero value, denotes an
- * external symbol referenced in this module. And just SYM_GLOBAL,
- * but with a non-zero value, declares a C `common' variable, of
- * size `value'.
- */
-
-struct Section {
-    struct SAA *data;
-    uint32_t len, size, nrelocs;
-    int32_t index;
-    struct Reloc *head, **tail;
-    struct Symbol *gsyms, *asym;
-};
-
-static struct Section stext, sdata, sbss;
-
-static struct SAA *syms;
-static uint32_t nsyms;
-
-static struct RAA *bsym;
-
-static struct SAA *strs;
-static uint32_t strslen;
-
-static struct Symbol *fwds;
-
-static int bsd;
-static int is_pic;
-
-static void aout_write(void);
-static void aout_write_relocs(struct Reloc *);
-static void aout_write_syms(void);
-static void aout_sect_write(struct Section *, const uint8_t *,
-                            uint32_t);
-static void aout_pad_sections(void);
-static void aout_fixup_relocs(struct Section *);
-
-/*
- * Special section numbers which are used to define special
- * symbols, which can be used with WRT to provide PIC relocation
- * types.
- */
-static int32_t aout_gotpc_sect, aout_gotoff_sect;
-static int32_t aout_got_sect, aout_plt_sect;
-static int32_t aout_sym_sect;
-
-static void aoutg_init(void)
-{
-    stext.data = saa_init(1L);
-    stext.head = NULL;
-    stext.tail = &stext.head;
-    sdata.data = saa_init(1L);
-    sdata.head = NULL;
-    sdata.tail = &sdata.head;
-    stext.len = stext.size = sdata.len = sdata.size = sbss.len = 0;
-    stext.nrelocs = sdata.nrelocs = 0;
-    stext.gsyms = sdata.gsyms = sbss.gsyms = NULL;
-    stext.index = seg_alloc();
-    sdata.index = seg_alloc();
-    sbss.index = seg_alloc();
-    stext.asym = sdata.asym = sbss.asym = NULL;
-    syms = saa_init((int32_t)sizeof(struct Symbol));
-    nsyms = 0;
-    bsym = raa_init();
-    strs = saa_init(1L);
-    strslen = 0;
-    fwds = NULL;
-}
-
-#ifdef OF_AOUT
-
-static void aout_init(void)
-{
-    bsd = false;
-    aoutg_init();
-
-    aout_gotpc_sect = aout_gotoff_sect = aout_got_sect =
-        aout_plt_sect = aout_sym_sect = NO_SEG;
-}
-
-#endif
-
-#ifdef OF_AOUTB
-
-extern const struct ofmt of_aoutb;
-
-static void aoutb_init(void)
-{
-    bsd = true;
-    aoutg_init();
-
-    is_pic = 0x00;              /* may become 0x40 */
-
-    aout_gotpc_sect = seg_alloc();
-    define_label("..gotpc", aout_gotpc_sect + 1, 0L, NULL, false, false);
-    aout_gotoff_sect = seg_alloc();
-    define_label("..gotoff", aout_gotoff_sect + 1, 0L, NULL, false, false);
-    aout_got_sect = seg_alloc();
-    define_label("..got", aout_got_sect + 1, 0L, NULL, false, false);
-    aout_plt_sect = seg_alloc();
-    define_label("..plt", aout_plt_sect + 1, 0L, NULL, false, false);
-    aout_sym_sect = seg_alloc();
-    define_label("..sym", aout_sym_sect + 1, 0L, NULL, false, false);
-}
-
-#endif
-
-static void aout_cleanup(void)
-{
-    struct Reloc *r;
-
-    aout_pad_sections();
-    aout_fixup_relocs(&stext);
-    aout_fixup_relocs(&sdata);
-    aout_write();
-    saa_free(stext.data);
-    while (stext.head) {
-        r = stext.head;
-        stext.head = stext.head->next;
-        nasm_free(r);
-    }
-    saa_free(sdata.data);
-    while (sdata.head) {
-        r = sdata.head;
-        sdata.head = sdata.head->next;
-        nasm_free(r);
-    }
-    saa_free(syms);
-    raa_free(bsym);
-    saa_free(strs);
-}
-
-static int32_t aout_section_names(char *name, int pass, int *bits)
-{
-
-    (void)pass;
-
-    /*
-     * Default to 32 bits.
-     */
-    if (!name) {
-        *bits = 32;
-        return stext.index;
-    }
-
-    if (!strcmp(name, ".text"))
-        return stext.index;
-    else if (!strcmp(name, ".data"))
-        return sdata.index;
-    else if (!strcmp(name, ".bss"))
-        return sbss.index;
-    else
-        return NO_SEG;
-}
-
-static void aout_deflabel(char *name, int32_t segment, int64_t offset,
-                          int is_global, char *special)
-{
-    int pos = strslen + 4;
-    struct Symbol *sym;
-    int special_used = false;
-
-    if (name[0] == '.' && name[1] == '.' && name[2] != '@') {
-        /*
-         * This is a NASM special symbol. We never allow it into
-         * the a.out symbol table, even if it's a valid one. If it
-         * _isn't_ a valid one, we should barf immediately.
-         */
-        if (strcmp(name, "..gotpc") && strcmp(name, "..gotoff") &&
-            strcmp(name, "..got") && strcmp(name, "..plt") &&
-            strcmp(name, "..sym"))
-            nasm_error(ERR_NONFATAL, "unrecognised special symbol `%s'", name);
-        return;
-    }
-
-    if (is_global == 3) {
-        struct Symbol **s;
-        /*
-         * Fix up a forward-reference symbol size from the first
-         * pass.
-         */
-        for (s = &fwds; *s; s = &(*s)->nextfwd)
-            if (!strcmp((*s)->name, name)) {
-                struct tokenval tokval;
-                expr *e;
-                char *p = special;
-
-                p = nasm_skip_spaces(nasm_skip_word(p));
-                stdscan_reset();
-                stdscan_set(p);
-                tokval.t_type = TOKEN_INVALID;
-                e = evaluate(stdscan, NULL, &tokval, NULL, 1, NULL);
-                if (e) {
-                    if (!is_simple(e))
-                        nasm_error(ERR_NONFATAL, "cannot use relocatable"
-                              " expression as symbol size");
-                    else
-                        (*s)->size = reloc_value(e);
-                }
-
-                /*
-                 * Remove it from the list of unresolved sizes.
-                 */
-                nasm_free((*s)->name);
-                *s = (*s)->nextfwd;
-                return;
-            }
-        return;                 /* it wasn't an important one */
-    }
-
-    saa_wbytes(strs, name, (int32_t)(1 + strlen(name)));
-    strslen += 1 + strlen(name);
-
-    sym = saa_wstruct(syms);
-
-    sym->strpos = pos;
-    sym->type = is_global ? SYM_GLOBAL : 0;
-    sym->segment = segment;
-    if (segment == NO_SEG)
-        sym->type |= SECT_ABS;
-    else if (segment == stext.index) {
-        sym->type |= SECT_TEXT;
-        if (is_global) {
-            sym->next = stext.gsyms;
-            stext.gsyms = sym;
-        } else if (!stext.asym)
-            stext.asym = sym;
-    } else if (segment == sdata.index) {
-        sym->type |= SECT_DATA;
-        if (is_global) {
-            sym->next = sdata.gsyms;
-            sdata.gsyms = sym;
-        } else if (!sdata.asym)
-            sdata.asym = sym;
-    } else if (segment == sbss.index) {
-        sym->type |= SECT_BSS;
-        if (is_global) {
-            sym->next = sbss.gsyms;
-            sbss.gsyms = sym;
-        } else if (!sbss.asym)
-            sbss.asym = sym;
-    } else
-        sym->type = SYM_GLOBAL;
-    if (is_global == 2)
-        sym->value = offset;
-    else
-        sym->value = (sym->type == SYM_GLOBAL ? 0 : offset);
-
-    if (is_global && sym->type != SYM_GLOBAL) {
-        /*
-         * Global symbol exported _from_ this module. We must check
-         * the special text for type information.
-         */
-
-        if (special) {
-            int n = strcspn(special, " ");
-
-            if (!nasm_strnicmp(special, "function", n))
-                sym->type |= SYM_FUNCTION;
-            else if (!nasm_strnicmp(special, "data", n) ||
-                     !nasm_strnicmp(special, "object", n))
-                sym->type |= SYM_DATA;
-            else
-                nasm_error(ERR_NONFATAL, "unrecognised symbol type `%.*s'",
-                      n, special);
-            if (special[n]) {
-                struct tokenval tokval;
-                expr *e;
-                int fwd = false;
-                char *saveme = stdscan_get();
-
-                if (!bsd) {
-                    nasm_error(ERR_NONFATAL, "Linux a.out does not support"
-                          " symbol size information");
-                } else {
-                    while (special[n] && nasm_isspace(special[n]))
-                        n++;
-                    /*
-                     * We have a size expression; attempt to
-                     * evaluate it.
-                     */
-                    sym->type |= SYM_WITH_SIZE;
-                    stdscan_reset();
-                    stdscan_set(special + n);
-                    tokval.t_type = TOKEN_INVALID;
-                    e = evaluate(stdscan, NULL, &tokval, &fwd, 0, NULL);
-                    if (fwd) {
-                        sym->nextfwd = fwds;
-                        fwds = sym;
-                        sym->name = nasm_strdup(name);
-                    } else if (e) {
-                        if (!is_simple(e))
-                            nasm_error(ERR_NONFATAL, "cannot use relocatable"
-                                  " expression as symbol size");
-                        else
-                            sym->size = reloc_value(e);
-                    }
-                }
-                stdscan_set(saveme);
-            }
-            special_used = true;
-        }
-    }
-
-    /*
-     * define the references from external-symbol segment numbers
-     * to these symbol records.
-     */
-    if (segment != NO_SEG && segment != stext.index &&
-        segment != sdata.index && segment != sbss.index)
-        bsym = raa_write(bsym, segment, nsyms);
-    sym->symnum = nsyms;
-
-    nsyms++;
-    if (sym->type & SYM_WITH_SIZE)
-        nsyms++;                /* and another for the size */
-
-    if (special && !special_used)
-        nasm_error(ERR_NONFATAL, "no special symbol features supported here");
-}
-
-static void aout_add_reloc(struct Section *sect, int32_t segment,
-                           int reltype, int bytes)
-{
-    struct Reloc *r;
-
-    r = *sect->tail = nasm_malloc(sizeof(struct Reloc));
-    sect->tail = &r->next;
-    r->next = NULL;
-
-    r->address = sect->len;
-    r->symbol = (segment == NO_SEG ? -SECT_ABS :
-                 segment == stext.index ? -SECT_TEXT :
-                 segment == sdata.index ? -SECT_DATA :
-                 segment == sbss.index ? -SECT_BSS :
-                 raa_read(bsym, segment));
-    r->reltype = reltype;
-    if (r->symbol >= 0)
-        r->reltype |= RELTYPE_SYMFLAG;
-    r->bytes = bytes;
-
-    sect->nrelocs++;
-}
-
-/*
- * This routine deals with ..got and ..sym relocations: the more
- * complicated kinds. In shared-library writing, some relocations
- * with respect to global symbols must refer to the precise symbol
- * rather than referring to an offset from the base of the section
- * _containing_ the symbol. Such relocations call to this routine,
- * which searches the symbol list for the symbol in question.
- *
- * RELTYPE_GOT references require the _exact_ symbol address to be
- * used; RELTYPE_ABSOLUTE references can be at an offset from the
- * symbol. The boolean argument `exact' tells us this.
- *
- * Return value is the adjusted value of `addr', having become an
- * offset from the symbol rather than the section. Should always be
- * zero when returning from an exact call.
- *
- * Limitation: if you define two symbols at the same place,
- * confusion will occur.
- *
- * Inefficiency: we search, currently, using a linked list which
- * isn't even necessarily sorted.
- */
-static int32_t aout_add_gsym_reloc(struct Section *sect,
-                                int32_t segment, int32_t offset,
-                                int type, int bytes, int exact)
-{
-    struct Symbol *sym, *sm, *shead;
-    struct Reloc *r;
-
-    /*
-     * First look up the segment to find whether it's text, data,
-     * bss or an external symbol.
-     */
-    shead = NULL;
-    if (segment == stext.index)
-        shead = stext.gsyms;
-    else if (segment == sdata.index)
-        shead = sdata.gsyms;
-    else if (segment == sbss.index)
-        shead = sbss.gsyms;
-    if (!shead) {
-        if (exact && offset != 0)
-            nasm_error(ERR_NONFATAL, "unable to find a suitable global symbol"
-                  " for this reference");
-        else
-            aout_add_reloc(sect, segment, type, bytes);
-        return offset;
-    }
-
-    if (exact) {
-        /*
-         * Find a symbol pointing _exactly_ at this one.
-         */
-        list_for_each(sym, shead)
-            if (sym->value == offset)
-                break;
-    } else {
-        /*
-         * Find the nearest symbol below this one.
-         */
-        sym = NULL;
-        list_for_each(sm, shead)
-            if (sm->value <= offset && (!sym || sm->value > sym->value))
-                sym = sm;
-    }
-    if (!sym && exact) {
-        nasm_error(ERR_NONFATAL, "unable to find a suitable global symbol"
-              " for this reference");
-        return 0;
-    }
-
-    r = *sect->tail = nasm_malloc(sizeof(struct Reloc));
-    sect->tail = &r->next;
-    r->next = NULL;
-
-    r->address = sect->len;
-    r->symbol = sym->symnum;
-    r->reltype = type | RELTYPE_SYMFLAG;
-    r->bytes = bytes;
-
-    sect->nrelocs++;
-
-    return offset - sym->value;
-}
-
-/*
- * This routine deals with ..gotoff relocations. These _must_ refer
- * to a symbol, due to a perversity of *BSD's PIC implementation,
- * and it must be a non-global one as well; so we store `asym', the
- * first nonglobal symbol defined in each section, and always work
- * from that. Relocation type is always RELTYPE_GOTOFF.
- *
- * Return value is the adjusted value of `addr', having become an
- * offset from the `asym' symbol rather than the section.
- */
-static int32_t aout_add_gotoff_reloc(struct Section *sect, int32_t segment,
-                                  int32_t offset, int bytes)
-{
-    struct Reloc *r;
-    struct Symbol *asym;
-
-    /*
-     * First look up the segment to find whether it's text, data,
-     * bss or an external symbol.
-     */
-    asym = NULL;
-    if (segment == stext.index)
-        asym = stext.asym;
-    else if (segment == sdata.index)
-        asym = sdata.asym;
-    else if (segment == sbss.index)
-        asym = sbss.asym;
-    if (!asym)
-        nasm_error(ERR_NONFATAL, "`..gotoff' relocations require a non-global"
-              " symbol in the section");
-
-    r = *sect->tail = nasm_malloc(sizeof(struct Reloc));
-    sect->tail = &r->next;
-    r->next = NULL;
-
-    r->address = sect->len;
-    r->symbol = asym->symnum;
-    r->reltype = RELTYPE_GOTOFF;
-    r->bytes = bytes;
-
-    sect->nrelocs++;
-
-    return offset - asym->value;
-}
-
-static void aout_out(int32_t segto, const void *data,
-		     enum out_type type, uint64_t size,
-                     int32_t segment, int32_t wrt)
-{
-    struct Section *s;
-    int32_t addr;
-    uint8_t mydata[4], *p;
-
-    /*
-     * handle absolute-assembly (structure definitions)
-     */
-    if (segto == NO_SEG) {
-        if (type != OUT_RESERVE)
-            nasm_error(ERR_NONFATAL, "attempt to assemble code in [ABSOLUTE]"
-                  " space");
-        return;
-    }
-
-    if (segto == stext.index)
-        s = &stext;
-    else if (segto == sdata.index)
-        s = &sdata;
-    else if (segto == sbss.index)
-        s = NULL;
-    else {
-        nasm_error(ERR_WARNING, "attempt to assemble code in"
-              " segment %d: defaulting to `.text'", segto);
-        s = &stext;
-    }
-
-    if (!s && type != OUT_RESERVE) {
-        nasm_error(ERR_WARNING, "attempt to initialize memory in the"
-              " BSS section: ignored");
-        sbss.len += realsize(type, size);
-        return;
-    }
-
-    memset(mydata, 0, sizeof(mydata));
-
-    if (type == OUT_RESERVE) {
-        if (s) {
-            nasm_error(ERR_WARNING, "uninitialized space declared in"
-                  " %s section: zeroing",
-                  (segto == stext.index ? "code" : "data"));
-            aout_sect_write(s, NULL, size);
-        } else
-            sbss.len += size;
-    } else if (type == OUT_RAWDATA) {
-        if (segment != NO_SEG)
-            nasm_panic(0, "OUT_RAWDATA with other than NO_SEG");
-        aout_sect_write(s, data, size);
-    } else if (type == OUT_ADDRESS) {
-        int asize = abs((int)size);
-        addr = *(int64_t *)data;
-        if (segment != NO_SEG) {
-            if (segment % 2) {
-                nasm_error(ERR_NONFATAL, "a.out format does not support"
-                      " segment base references");
-            } else {
-                if (wrt == NO_SEG) {
-                    aout_add_reloc(s, segment, RELTYPE_ABSOLUTE, asize);
-                } else if (!bsd) {
-                    nasm_error(ERR_NONFATAL,
-                          "Linux a.out format does not support"
-                          " any use of WRT");
-                    wrt = NO_SEG;       /* we can at least _try_ to continue */
-                } else if (wrt == aout_gotpc_sect + 1) {
-                    is_pic = 0x40;
-                    aout_add_reloc(s, segment, RELTYPE_GOTPC, asize);
-                } else if (wrt == aout_gotoff_sect + 1) {
-                    is_pic = 0x40;
-                    addr = aout_add_gotoff_reloc(s, segment, addr, asize);
-                } else if (wrt == aout_got_sect + 1) {
-                    is_pic = 0x40;
-                    addr = aout_add_gsym_reloc(s, segment, addr, RELTYPE_GOT,
-                                               asize, true);
-                } else if (wrt == aout_sym_sect + 1) {
-                    addr = aout_add_gsym_reloc(s, segment, addr,
-                                               RELTYPE_ABSOLUTE, asize,
-                                               false);
-                } else if (wrt == aout_plt_sect + 1) {
-                    is_pic = 0x40;
-                    nasm_error(ERR_NONFATAL,
-                          "a.out format cannot produce non-PC-"
-                          "relative PLT references");
-                } else {
-                    nasm_error(ERR_NONFATAL,
-                          "a.out format does not support this"
-                          " use of WRT");
-                    wrt = NO_SEG;       /* we can at least _try_ to continue */
-                }
-            }
-        }
-        p = mydata;
-        if (asize == 2)
-            WRITESHORT(p, addr);
-        else
-            WRITELONG(p, addr);
-        aout_sect_write(s, mydata, asize);
-    } else if (type == OUT_REL2ADR) {
-        if (segment == segto)
-            nasm_panic(0, "intra-segment OUT_REL2ADR");
-        if (segment != NO_SEG && segment % 2) {
-            nasm_error(ERR_NONFATAL, "a.out format does not support"
-                  " segment base references");
-        } else {
-            if (wrt == NO_SEG) {
-                aout_add_reloc(s, segment, RELTYPE_RELATIVE, 2);
-            } else if (!bsd) {
-                nasm_error(ERR_NONFATAL, "Linux a.out format does not support"
-                      " any use of WRT");
-                wrt = NO_SEG;   /* we can at least _try_ to continue */
-            } else if (wrt == aout_plt_sect + 1) {
-                is_pic = 0x40;
-                aout_add_reloc(s, segment, RELTYPE_PLT, 2);
-            } else if (wrt == aout_gotpc_sect + 1 ||
-                       wrt == aout_gotoff_sect + 1 ||
-                       wrt == aout_got_sect + 1) {
-                nasm_error(ERR_NONFATAL, "a.out format cannot produce PC-"
-                      "relative GOT references");
-            } else {
-                nasm_error(ERR_NONFATAL, "a.out format does not support this"
-                      " use of WRT");
-                wrt = NO_SEG;   /* we can at least _try_ to continue */
-            }
-        }
-        p = mydata;
-        WRITESHORT(p, *(int64_t *)data - (size + s->len));
-        aout_sect_write(s, mydata, 2L);
-    } else if (type == OUT_REL4ADR) {
-        if (segment == segto)
-            nasm_panic(0, "intra-segment OUT_REL4ADR");
-        if (segment != NO_SEG && segment % 2) {
-            nasm_error(ERR_NONFATAL, "a.out format does not support"
-                  " segment base references");
-        } else {
-            if (wrt == NO_SEG) {
-                aout_add_reloc(s, segment, RELTYPE_RELATIVE, 4);
-            } else if (!bsd) {
-                nasm_error(ERR_NONFATAL, "Linux a.out format does not support"
-                      " any use of WRT");
-                wrt = NO_SEG;   /* we can at least _try_ to continue */
-            } else if (wrt == aout_plt_sect + 1) {
-                is_pic = 0x40;
-                aout_add_reloc(s, segment, RELTYPE_PLT, 4);
-            } else if (wrt == aout_gotpc_sect + 1 ||
-                       wrt == aout_gotoff_sect + 1 ||
-                       wrt == aout_got_sect + 1) {
-                nasm_error(ERR_NONFATAL, "a.out format cannot produce PC-"
-                      "relative GOT references");
-            } else {
-                nasm_error(ERR_NONFATAL, "a.out format does not support this"
-                      " use of WRT");
-                wrt = NO_SEG;   /* we can at least _try_ to continue */
-            }
-        }
-        p = mydata;
-        WRITELONG(p, *(int64_t *)data - (size + s->len));
-        aout_sect_write(s, mydata, 4L);
-    }
-}
-
-static void aout_pad_sections(void)
-{
-    static uint8_t pad[] = { 0x90, 0x90, 0x90, 0x90 };
-    /*
-     * Pad each of the text and data sections with NOPs until their
-     * length is a multiple of four. (NOP == 0x90.) Also increase
-     * the length of the BSS section similarly.
-     */
-    aout_sect_write(&stext, pad, (-(int32_t)stext.len) & 3);
-    aout_sect_write(&sdata, pad, (-(int32_t)sdata.len) & 3);
-    sbss.len = ALIGN(sbss.len, 4);
-}
-
-/*
- * a.out files have the curious property that all references to
- * things in the data or bss sections are done by addresses which
- * are actually relative to the start of the _text_ section, in the
- * _file_. (No relation to what happens after linking. No idea why
- * this should be so. It's very strange.) So we have to go through
- * the relocation table, _after_ the final size of each section is
- * known, and fix up the relocations pointed to.
- */
-static void aout_fixup_relocs(struct Section *sect)
-{
-    struct Reloc *r;
-
-    saa_rewind(sect->data);
-    list_for_each(r, sect->head) {
-        uint8_t *p, *q, blk[4];
-        int32_t l;
-
-        saa_fread(sect->data, r->address, blk, (int32_t)r->bytes);
-        p = q = blk;
-        l = *p++;
-        if (r->bytes > 1) {
-            l += ((int32_t)*p++) << 8;
-            if (r->bytes == 4) {
-                l += ((int32_t)*p++) << 16;
-                l += ((int32_t)*p++) << 24;
-            }
-        }
-        if (r->symbol == -SECT_DATA)
-            l += stext.len;
-        else if (r->symbol == -SECT_BSS)
-            l += stext.len + sdata.len;
-        if (r->bytes == 4)
-            WRITELONG(q, l);
-        else if (r->bytes == 2)
-            WRITESHORT(q, l);
-        else
-            *q++ = l & 0xFF;
-        saa_fwrite(sect->data, r->address, blk, (int32_t)r->bytes);
-    }
-}
-
-static void aout_write(void)
-{
-    /*
-     * Emit the a.out header.
-     */
-    /* OMAGIC, M_386 or MID_I386, no flags */
-    fwriteint32_t(bsd ? 0x07018600 | is_pic : 0x640107L, ofile);
-    fwriteint32_t(stext.len, ofile);
-    fwriteint32_t(sdata.len, ofile);
-    fwriteint32_t(sbss.len, ofile);
-    fwriteint32_t(nsyms * 12, ofile);     /* length of symbol table */
-    fwriteint32_t(0L, ofile);     /* object files have no entry point */
-    fwriteint32_t(stext.nrelocs * 8, ofile);      /* size of text relocs */
-    fwriteint32_t(sdata.nrelocs * 8, ofile);      /* size of data relocs */
-
-    /*
-     * Write out the code section and the data section.
-     */
-    saa_fpwrite(stext.data, ofile);
-    saa_fpwrite(sdata.data, ofile);
-
-    /*
-     * Write out the relocations.
-     */
-    aout_write_relocs(stext.head);
-    aout_write_relocs(sdata.head);
-
-    /*
-     * Write the symbol table.
-     */
-    aout_write_syms();
-
-    /*
-     * And the string table.
-     */
-    fwriteint32_t(strslen + 4, ofile);    /* length includes length count */
-    saa_fpwrite(strs, ofile);
-}
-
-static void aout_write_relocs(struct Reloc *r)
-{
-    list_for_each(r, r) {
-        uint32_t word2;
-
-        fwriteint32_t(r->address, ofile);
-
-        if (r->symbol >= 0)
-            word2 = r->symbol;
-        else
-            word2 = -r->symbol;
-        word2 |= r->reltype << 24;
-        word2 |= (r->bytes == 1 ? 0 :
-                  r->bytes == 2 ? 0x2000000L : 0x4000000L);
-        fwriteint32_t(word2, ofile);
-    }
-}
-
-static void aout_write_syms(void)
-{
-    uint32_t i;
-
-    saa_rewind(syms);
-    for (i = 0; i < nsyms; i++) {
-        struct Symbol *sym = saa_rstruct(syms);
-        fwriteint32_t(sym->strpos, ofile);
-        fwriteint32_t((int32_t)sym->type & ~SYM_WITH_SIZE, ofile);
-        /*
-         * Fix up the symbol value now we know the final section
-         * sizes.
-         */
-        if ((sym->type & SECT_MASK) == SECT_DATA)
-            sym->value += stext.len;
-        if ((sym->type & SECT_MASK) == SECT_BSS)
-            sym->value += stext.len + sdata.len;
-        fwriteint32_t(sym->value, ofile);
-        /*
-         * Output a size record if necessary.
-         */
-        if (sym->type & SYM_WITH_SIZE) {
-            fwriteint32_t(sym->strpos, ofile);
-            fwriteint32_t(0x0DL, ofile);  /* special value: means size */
-            fwriteint32_t(sym->size, ofile);
-            i++;                /* use up another of `nsyms' */
-        }
-    }
-}
-
-static void aout_sect_write(struct Section *sect,
-                            const uint8_t *data, uint32_t len)
-{
-    saa_wbytes(sect->data, data, len);
-    sect->len += len;
-}
-
-static int32_t aout_segbase(int32_t segment)
-{
-    return segment;
-}
-
-static void aout_filename(char *inname, char *outname)
-{
-    standard_extension(inname, outname, ".o");
-}
-
-extern macros_t aout_stdmac[];
-
-#endif                          /* OF_AOUT || OF_AOUTB */
-
-#ifdef OF_AOUT
-
-const struct ofmt of_aout = {
-    "Linux a.out object files",
-    "aout",
-    0,
-    32,
-    null_debug_arr,
-    &null_debug_form,
-    aout_stdmac,
-    aout_init,
-    null_setinfo,
-    nasm_do_legacy_output,
-    aout_out,
-    aout_deflabel,
-    aout_section_names,
-    null_sectalign,
-    aout_segbase,
-    null_directive,
-    aout_filename,
-    aout_cleanup,
-    NULL                        /* pragma list */
-};
-
-#endif
-
-#ifdef OF_AOUTB
-
-const struct ofmt of_aoutb = {
-    "NetBSD/FreeBSD a.out object files",
-    "aoutb",
-    0,
-    32,
-    null_debug_arr,
-    &null_debug_form,
-    aout_stdmac,
-    aoutb_init,
-    null_setinfo,
-    nasm_do_legacy_output,
-    aout_out,
-    aout_deflabel,
-    aout_section_names,
-    null_sectalign,
-    aout_segbase,
-    null_directive,
-    aout_filename,
-    aout_cleanup,
-    NULL                        /* pragma list */
-};
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/output/outaout.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-;; --------------------------------------------------------------------------
-;;   
-;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;     
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-OUT: aout aoutb
-%define __SECT__ [section .text]
-%macro __NASM_CDecl__ 1
-%endmacro
--- a/nasmbuild/nasm-2.13rc9/output/outas86.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,651 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2013 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/* 
- * outas86.c	output routines for the Netwide Assembler to produce
- *		Linux as86 (bin86-0.3) object files
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "saa.h"
-#include "raa.h"
-#include "outform.h"
-#include "outlib.h"
-
-#ifdef OF_AS86
-
-struct Piece {
-    struct Piece *next;
-    int type;                   /* 0 = absolute, 1 = seg, 2 = sym */
-    int32_t offset;		/* relative offset */
-    int number;			/* symbol/segment number (4=bss) */
-    int32_t bytes;	        /* size of reloc or of absolute data */
-    bool relative;		/* relative address? */
-};
-
-struct Symbol {
-    int32_t strpos;		/* string table position of name */
-    int flags;                  /* symbol flags */
-    int segment;                /* 4=bss at this point */
-    int32_t value;		/* address, or COMMON variable size */
-};
-
-/*
- * Section IDs - used in Piece.number and Symbol.segment.
- */
-#define SECT_TEXT 0             /* text section */
-#define SECT_DATA 3             /* data section */
-#define SECT_BSS 4              /* bss section */
-
-/*
- * Flags used in Symbol.flags.
- */
-#define SYM_ENTRY (1<<8)
-#define SYM_EXPORT (1<<7)
-#define SYM_IMPORT (1<<6)
-#define SYM_ABSOLUTE (1<<4)
-
-struct Section {
-    struct SAA *data;
-    uint32_t datalen, size, len;
-    int32_t index;
-    struct Piece *head, *last, **tail;
-};
-
-static char as86_module[FILENAME_MAX];
-
-static struct Section stext, sdata;
-static uint32_t bsslen;
-static int32_t bssindex;
-
-static struct SAA *syms;
-static uint32_t nsyms;
-
-static struct RAA *bsym;
-
-static struct SAA *strs;
-static uint32_t strslen;
-
-static int as86_reloc_size;
-
-static void as86_write(void);
-static void as86_write_section(struct Section *, int);
-static int as86_add_string(char *name);
-static void as86_sect_write(struct Section *, const uint8_t *,
-                            uint32_t);
-
-static void as86_init(void)
-{
-    stext.data = saa_init(1L);
-    stext.datalen = 0L;
-    stext.head = stext.last = NULL;
-    stext.tail = &stext.head;
-    sdata.data = saa_init(1L);
-    sdata.datalen = 0L;
-    sdata.head = sdata.last = NULL;
-    sdata.tail = &sdata.head;
-    bsslen =
-        stext.len = stext.datalen = stext.size =
-        sdata.len = sdata.datalen = sdata.size = 0;
-    stext.index = seg_alloc();
-    sdata.index = seg_alloc();
-    bssindex = seg_alloc();
-    syms = saa_init((int32_t)sizeof(struct Symbol));
-    nsyms = 0;
-    bsym = raa_init();
-    strs = saa_init(1L);
-    strslen = 0;
-
-    as86_add_string(as86_module);
-}
-
-static void as86_cleanup(void)
-{
-    struct Piece *p;
-
-    as86_write();
-    saa_free(stext.data);
-    while (stext.head) {
-        p = stext.head;
-        stext.head = stext.head->next;
-        nasm_free(p);
-    }
-    saa_free(sdata.data);
-    while (sdata.head) {
-        p = sdata.head;
-        sdata.head = sdata.head->next;
-        nasm_free(p);
-    }
-    saa_free(syms);
-    raa_free(bsym);
-    saa_free(strs);
-}
-
-static int32_t as86_section_names(char *name, int pass, int *bits)
-{
-
-    (void)pass;
-
-    /*
-     * Default is 16 bits.
-     */
-    if (!name) {
-        *bits = 16;
-        return stext.index;
-    }
-
-    if (!strcmp(name, ".text"))
-        return stext.index;
-    else if (!strcmp(name, ".data"))
-        return sdata.index;
-    else if (!strcmp(name, ".bss"))
-        return bssindex;
-    else
-        return NO_SEG;
-}
-
-static int as86_add_string(char *name)
-{
-    int pos = strslen;
-    int length = strlen(name);
-
-    saa_wbytes(strs, name, (int32_t)(length + 1));
-    strslen += 1 + length;
-
-    return pos;
-}
-
-static void as86_deflabel(char *name, int32_t segment, int64_t offset,
-                          int is_global, char *special)
-{
-    bool is_start = false;
-    struct Symbol *sym;
-
-    if (special)
-        nasm_error(ERR_NONFATAL, "as86 format does not support any"
-              " special symbol types");
-
-
-    if (name[0] == '.' && name[1] == '.' && name[2] != '@') {
-	if (strcmp(name, "..start")) {
-	    nasm_error(ERR_NONFATAL, "unrecognised special symbol `%s'", name);
-	    return;
-	} else {
-	    is_start = true;
-	}
-    }
-
-    sym = saa_wstruct(syms);
-
-    sym->strpos = as86_add_string(name);
-    sym->flags = 0;
-
-    if (is_start)
-      sym->flags = SYM_ENTRY;
-
-    if (segment == NO_SEG)
-        sym->flags |= SYM_ABSOLUTE, sym->segment = 0;
-    else if (segment == stext.index)
-        sym->segment = SECT_TEXT;
-    else if (segment == sdata.index)
-        sym->segment = SECT_DATA;
-    else if (segment == bssindex)
-        sym->segment = SECT_BSS;
-    else {
-        sym->flags |= SYM_IMPORT;
-        sym->segment = 15;
-    }
-
-    if (is_global == 2)
-        sym->segment = 3;       /* already have IMPORT */
-
-    if (is_global && !(sym->flags & SYM_IMPORT))
-        sym->flags |= SYM_EXPORT;
-
-    sym->value = offset;
-
-    /*
-     * define the references from external-symbol segment numbers
-     * to these symbol records.
-     */
-    if (segment != NO_SEG && segment != stext.index &&
-        segment != sdata.index && segment != bssindex)
-        bsym = raa_write(bsym, segment, nsyms);
-
-    nsyms++;
-}
-
-static void as86_add_piece(struct Section *sect, int type, int32_t offset,
-                           int32_t segment, int32_t bytes, int relative)
-{
-    struct Piece *p;
-
-    sect->len += bytes;
-
-    if (type == 0 && sect->last && sect->last->type == 0) {
-        sect->last->bytes += bytes;
-        return;
-    }
-
-    p = sect->last = *sect->tail = nasm_malloc(sizeof(struct Piece));
-    sect->tail = &p->next;
-    p->next = NULL;
-
-    p->type = type;
-    p->offset = offset;
-    p->bytes = bytes;
-    p->relative = relative;
-
-    if (type == 1 && segment == stext.index)
-        p->number = SECT_TEXT;
-    else if (type == 1 && segment == sdata.index)
-        p->number = SECT_DATA;
-    else if (type == 1 && segment == bssindex)
-        p->number = SECT_BSS;
-    else if (type == 1)
-        p->number = raa_read(bsym, segment), p->type = 2;
-}
-
-static void as86_out(int32_t segto, const void *data,
-		     enum out_type type, uint64_t size,
-                     int32_t segment, int32_t wrt)
-{
-    struct Section *s;
-    int32_t offset;
-    uint8_t mydata[4], *p;
-
-    if (wrt != NO_SEG) {
-        wrt = NO_SEG;           /* continue to do _something_ */
-        nasm_error(ERR_NONFATAL, "WRT not supported by as86 output format");
-    }
-
-    /*
-     * handle absolute-assembly (structure definitions)
-     */
-    if (segto == NO_SEG) {
-        if (type != OUT_RESERVE)
-            nasm_error(ERR_NONFATAL, "attempt to assemble code in [ABSOLUTE]"
-                  " space");
-        return;
-    }
-
-    if (segto == stext.index)
-        s = &stext;
-    else if (segto == sdata.index)
-        s = &sdata;
-    else if (segto == bssindex)
-        s = NULL;
-    else {
-        nasm_error(ERR_WARNING, "attempt to assemble code in"
-              " segment %d: defaulting to `.text'", segto);
-        s = &stext;
-    }
-
-    if (!s && type != OUT_RESERVE) {
-        nasm_error(ERR_WARNING, "attempt to initialize memory in the"
-              " BSS section: ignored");
-	bsslen += realsize(type, size);
-        return;
-    }
-
-    memset(mydata, 0, sizeof(mydata));
-
-    if (type == OUT_RESERVE) {
-        if (s) {
-            nasm_error(ERR_WARNING, "uninitialized space declared in"
-                  " %s section: zeroing",
-                  (segto == stext.index ? "code" : "data"));
-            as86_sect_write(s, NULL, size);
-            as86_add_piece(s, 0, 0L, 0L, size, 0);
-        } else
-            bsslen += size;
-    } else if (type == OUT_RAWDATA) {
-        if (segment != NO_SEG)
-            nasm_panic(0, "OUT_RAWDATA with other than NO_SEG");
-        as86_sect_write(s, data, size);
-        as86_add_piece(s, 0, 0L, 0L, size, 0);
-    } else if (type == OUT_ADDRESS) {
-        int asize = abs((int)size);
-        if (segment != NO_SEG) {
-            if (segment % 2) {
-                nasm_error(ERR_NONFATAL, "as86 format does not support"
-                      " segment base references");
-            } else {
-                offset = *(int64_t *)data;
-                as86_add_piece(s, 1, offset, segment, asize, 0);
-            }
-        } else {
-            p = mydata;
-            WRITELONG(p, *(int64_t *)data);
-            as86_sect_write(s, data, asize);
-            as86_add_piece(s, 0, 0L, 0L, asize, 0);
-        }
-    } else if (type == OUT_REL2ADR) {
-        if (segment == segto)
-            nasm_panic(0, "intra-segment OUT_REL2ADR");
-        if (segment != NO_SEG) {
-            if (segment % 2) {
-                nasm_error(ERR_NONFATAL, "as86 format does not support"
-                      " segment base references");
-            } else {
-                offset = *(int64_t *)data;
-                as86_add_piece(s, 1, offset - size + 2, segment, 2L,
-                               1);
-            }
-        }
-    } else if (type == OUT_REL4ADR) {
-        if (segment == segto)
-            nasm_panic(0, "intra-segment OUT_REL4ADR");
-        if (segment != NO_SEG) {
-            if (segment % 2) {
-                nasm_error(ERR_NONFATAL, "as86 format does not support"
-                      " segment base references");
-            } else {
-                offset = *(int64_t *)data;
-                as86_add_piece(s, 1, offset - size + 4, segment, 4L,
-                               1);
-            }
-        }
-    }
-}
-
-static void as86_write(void)
-{
-    uint32_t i;
-    int32_t symlen, seglen, segsize;
-
-    /*
-     * First, go through the symbol records working out how big
-     * each will be. Also fix up BSS references at this time, and
-     * set the flags words up completely.
-     */
-    symlen = 0;
-    saa_rewind(syms);
-    for (i = 0; i < nsyms; i++) {
-        struct Symbol *sym = saa_rstruct(syms);
-        if (sym->segment == SECT_BSS)
-            sym->segment = SECT_DATA, sym->value += sdata.len;
-        sym->flags |= sym->segment;
-        if (sym->value == 0)
-            sym->flags |= 0 << 14, symlen += 4;
-        else if (sym->value >= 0 && sym->value <= 255)
-            sym->flags |= 1 << 14, symlen += 5;
-        else if (sym->value >= 0 && sym->value <= 65535L)
-            sym->flags |= 2 << 14, symlen += 6;
-        else
-            sym->flags |= 3 << 14, symlen += 8;
-    }
-
-    /*
-     * Now do the same for the segments, and get the segment size
-     * descriptor word at the same time.
-     */
-    seglen = segsize = 0;
-    if ((uint32_t)stext.len > 65535L)
-        segsize |= 0x03000000L, seglen += 4;
-    else
-        segsize |= 0x02000000L, seglen += 2;
-    if ((uint32_t)sdata.len > 65535L)
-        segsize |= 0xC0000000L, seglen += 4;
-    else
-        segsize |= 0x80000000L, seglen += 2;
-
-    /*
-     * Emit the as86 header.
-     */
-    fwriteint32_t(0x000186A3L, ofile);
-    fputc(0x2A, ofile);
-    fwriteint32_t(27 + symlen + seglen + strslen, ofile); /* header length */
-    fwriteint32_t(stext.len + sdata.len + bsslen, ofile);
-    fwriteint16_t(strslen, ofile);
-    fwriteint16_t(0, ofile);     /* class = revision = 0 */
-    fwriteint32_t(0x55555555L, ofile);    /* segment max sizes: always this */
-    fwriteint32_t(segsize, ofile);        /* segment size descriptors */
-    if (segsize & 0x01000000L)
-        fwriteint32_t(stext.len, ofile);
-    else
-        fwriteint16_t(stext.len, ofile);
-    if (segsize & 0x40000000L)
-        fwriteint32_t(sdata.len + bsslen, ofile);
-    else
-        fwriteint16_t(sdata.len + bsslen, ofile);
-    fwriteint16_t(nsyms, ofile);
-
-    /*
-     * Write the symbol table.
-     */
-    saa_rewind(syms);
-    for (i = 0; i < nsyms; i++) {
-        struct Symbol *sym = saa_rstruct(syms);
-        fwriteint16_t(sym->strpos, ofile);
-        fwriteint16_t(sym->flags, ofile);
-        switch (sym->flags & (3 << 14)) {
-        case 0 << 14:
-            break;
-        case 1 << 14:
-            fputc(sym->value, ofile);
-            break;
-        case 2 << 14:
-            fwriteint16_t(sym->value, ofile);
-            break;
-        case 3 << 14:
-            fwriteint32_t(sym->value, ofile);
-            break;
-        }
-    }
-
-    /*
-     * Write out the string table.
-     */
-    saa_fpwrite(strs, ofile);
-
-    /*
-     * Write the program text.
-     */
-    as86_reloc_size = -1;
-    as86_write_section(&stext, SECT_TEXT);
-    as86_write_section(&sdata, SECT_DATA);
-    /*
-     * Append the BSS section to the .data section
-     */
-    if (bsslen > 65535L) {
-        fputc(0x13, ofile);
-        fwriteint32_t(bsslen, ofile);
-    } else if (bsslen > 255) {
-        fputc(0x12, ofile);
-        fwriteint16_t(bsslen, ofile);
-    } else if (bsslen) {
-        fputc(0x11, ofile);
-        fputc(bsslen, ofile);
-    }
-
-    fputc(0, ofile);           /* termination */
-}
-
-static void as86_set_rsize(int size)
-{
-    if (as86_reloc_size != size) {
-        switch (as86_reloc_size = size) {
-        case 1:
-            fputc(0x01, ofile);
-            break;
-        case 2:
-            fputc(0x02, ofile);
-            break;
-        case 4:
-            fputc(0x03, ofile);
-            break;
-        default:
-            nasm_panic(0, "bizarre relocation size %d", size);
-	    break;
-        }
-    }
-}
-
-static void as86_write_section(struct Section *sect, int index)
-{
-    struct Piece *p;
-    uint32_t s;
-    int32_t length;
-
-    fputc(0x20 + index, ofile);        /* select the right section */
-
-    saa_rewind(sect->data);
-
-    for (p = sect->head; p; p = p->next)
-        switch (p->type) {
-        case 0:
-            /*
-             * Absolute data. Emit it in chunks of at most 64
-             * bytes.
-             */
-            length = p->bytes;
-            do {
-                char buf[64];
-                int32_t tmplen = (length > 64 ? 64 : length);
-                fputc(0x40 | (tmplen & 0x3F), ofile);
-                saa_rnbytes(sect->data, buf, tmplen);
-                nasm_write(buf, tmplen, ofile);
-                length -= tmplen;
-            } while (length > 0);
-            break;
-        case 1:
-            /*
-             * A segment-type relocation. First fix up the BSS.
-             */
-            if (p->number == SECT_BSS)
-                p->number = SECT_DATA, p->offset += sdata.len;
-            as86_set_rsize(p->bytes);
-            fputc(0x80 | (p->relative ? 0x20 : 0) | p->number, ofile);
-            if (as86_reloc_size == 2)
-                fwriteint16_t(p->offset, ofile);
-            else
-                fwriteint32_t(p->offset, ofile);
-            break;
-        case 2:
-            /*
-             * A symbol-type relocation.
-             */
-            as86_set_rsize(p->bytes);
-            s = p->offset;
-            if (s > 65535L)
-                s = 3;
-            else if (s > 255)
-                s = 2;
-            else if (s > 0)
-                s = 1;
-            else
-                s = 0;
-            fputc(0xC0 |
-                  (p->relative ? 0x20 : 0) |
-                  (p->number > 255 ? 0x04 : 0) | s, ofile);
-            if (p->number > 255)
-                fwriteint16_t(p->number, ofile);
-            else
-                fputc(p->number, ofile);
-            switch (s) {
-            case 0:
-                break;
-            case 1:
-                fputc(p->offset, ofile);
-                break;
-            case 2:
-                fwriteint16_t(p->offset, ofile);
-                break;
-            case 3:
-                fwriteint32_t(p->offset, ofile);
-                break;
-            }
-            break;
-        }
-}
-
-static void as86_sect_write(struct Section *sect,
-                            const uint8_t *data, uint32_t len)
-{
-    saa_wbytes(sect->data, data, len);
-    sect->datalen += len;
-}
-
-static int32_t as86_segbase(int32_t segment)
-{
-    return segment;
-}
-
-static void as86_filename(char *inname, char *outname)
-{
-    char *p;
-
-    if ((p = strrchr(inname, '.')) != NULL) {
-        strncpy(as86_module, inname, p - inname);
-        as86_module[p - inname] = '\0';
-    } else
-        strcpy(as86_module, inname);
-
-    standard_extension(inname, outname, ".o");
-}
-
-extern macros_t as86_stdmac[];
-
-const struct ofmt of_as86 = {
-    "Linux as86 (bin86 version 0.3) object files",
-    "as86",
-    0,
-    32,
-    null_debug_arr,
-    &null_debug_form,
-    as86_stdmac,
-    as86_init,
-    null_setinfo,
-    nasm_do_legacy_output,
-    as86_out,
-    as86_deflabel,
-    as86_section_names,
-    null_sectalign,
-    as86_segbase,
-    null_directive,
-    as86_filename,
-    as86_cleanup,
-    NULL                        /* pragma list */
-};
-
-#endif                          /* OF_AS86 */
--- a/nasmbuild/nasm-2.13rc9/output/outas86.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-;; --------------------------------------------------------------------------
-;;   
-;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;     
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-OUT: as86
-%define __SECT__ [section .text]
-%macro __NASM_CDecl__ 1
-%endmacro
--- a/nasmbuild/nasm-2.13rc9/output/outbin.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1723 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2013 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/* 
- * outbin.c output routines for the Netwide Assembler to produce
- *    flat-form binary files
- */
-
-/* This is the extended version of NASM's original binary output
- * format.  It is backward compatible with the original BIN format,
- * and contains support for multiple sections and advanced section
- * ordering.
- *
- * Feature summary:
- *
- * - Users can create an arbitrary number of sections; they are not
- *   limited to just ".text", ".data", and ".bss".
- *
- * - Sections can be either progbits or nobits type.
- *
- * - You can specify that they be aligned at a certian boundary
- *   following the previous section ("align="), or positioned at an
- *   arbitrary byte-granular location ("start=").
- *
- * - You can specify a "virtual" start address for a section, which
- *   will be used for the calculation for all address references
- *   with respect to that section ("vstart=").
- *
- * - The ORG directive, as well as the section/segment directive
- *   arguments ("align=", "start=", "vstart="), can take a critical
- *   expression as their value.  For example: "align=(1 << 12)".
- *
- * - You can generate map files using the 'map' directive.
- *
- */
-
-/* Uncomment the following define if you want sections to adapt
- * their progbits/nobits state depending on what type of
- * instructions are issued, rather than defaulting to progbits.
- * Note that this behavior violates the specification.
-
-#define ABIN_SMART_ADAPT
-
-*/
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "saa.h"
-#include "stdscan.h"
-#include "labels.h"
-#include "eval.h"
-#include "outform.h"
-#include "outlib.h"
-
-#ifdef OF_BIN
-
-static FILE *rf = NULL;
-static void (*do_output)(void);
-
-/* Section flags keep track of which attributes the user has defined. */
-#define START_DEFINED       0x001
-#define ALIGN_DEFINED       0x002
-#define FOLLOWS_DEFINED     0x004
-#define VSTART_DEFINED      0x008
-#define VALIGN_DEFINED      0x010
-#define VFOLLOWS_DEFINED    0x020
-#define TYPE_DEFINED        0x040
-#define TYPE_PROGBITS       0x080
-#define TYPE_NOBITS         0x100
-
-/* This struct is used to keep track of symbols for map-file generation. */
-static struct bin_label {
-    char *name;
-    struct bin_label *next;
-} *no_seg_labels, **nsl_tail;
-
-static struct Section {
-    char *name;
-    struct SAA *contents;
-    int64_t length;                /* section length in bytes */
-
-/* Section attributes */
-    int flags;                  /* see flag definitions above */
-    uint64_t align;        /* section alignment */
-    uint64_t valign;       /* notional section alignment */
-    uint64_t start;        /* section start address */
-    uint64_t vstart;       /* section virtual start address */
-    char *follows;              /* the section that this one will follow */
-    char *vfollows;             /* the section that this one will notionally follow */
-    int32_t start_index;           /* NASM section id for non-relocated version */
-    int32_t vstart_index;          /* the NASM section id */
-
-    struct bin_label *labels;   /* linked-list of label handles for map output. */
-    struct bin_label **labels_end;      /* Holds address of end of labels list. */
-    struct Section *prev;       /* Points to previous section (implicit follows). */
-    struct Section *next;       /* This links sections with a defined start address. */
-
-/* The extended bin format allows for sections to have a "virtual"
- * start address.  This is accomplished by creating two sections:
- * one beginning at the Load Memory Address and the other beginning
- * at the Virtual Memory Address.  The LMA section is only used to
- * define the section.<section_name>.start label, but there isn't
- * any other good way for us to handle that label.
- */
-
-} *sections, *last_section;
-
-static struct Reloc {
-    struct Reloc *next;
-    int32_t posn;
-    int32_t bytes;
-    int32_t secref;
-    int32_t secrel;
-    struct Section *target;
-} *relocs, **reloctail;
-
-static uint64_t origin;
-static int origin_defined;
-
-/* Stuff we need for map-file generation. */
-#define MAP_ORIGIN       1
-#define MAP_SUMMARY      2
-#define MAP_SECTIONS     4
-#define MAP_SYMBOLS      8
-static int map_control = 0;
-static char *infile, *outfile;
-
-extern macros_t bin_stdmac[];
-
-static void add_reloc(struct Section *s, int32_t bytes, int32_t secref,
-                      int32_t secrel)
-{
-    struct Reloc *r;
-
-    r = *reloctail = nasm_malloc(sizeof(struct Reloc));
-    reloctail = &r->next;
-    r->next = NULL;
-    r->posn = s->length;
-    r->bytes = bytes;
-    r->secref = secref;
-    r->secrel = secrel;
-    r->target = s;
-}
-
-static struct Section *find_section_by_name(const char *name)
-{
-    struct Section *s;
-
-    list_for_each(s, sections)
-        if (!strcmp(s->name, name))
-            break;
-    return s;
-}
-
-static struct Section *find_section_by_index(int32_t index)
-{
-    struct Section *s;
-
-    list_for_each(s, sections)
-        if ((index == s->vstart_index) || (index == s->start_index))
-            break;
-    return s;
-}
-
-static struct Section *create_section(char *name)
-{
-    struct Section *s = nasm_zalloc(sizeof(*s));
-
-    s->prev         = last_section;
-    s->name         = nasm_strdup(name);
-    s->labels_end   = &(s->labels);
-    s->contents     = saa_init(1L);
-
-    /* Register our sections with NASM. */
-    s->vstart_index = seg_alloc();
-    s->start_index  = seg_alloc();
-
-    /* FIXME: Append to a tail, we need some helper */
-    last_section->next = s;
-    last_section = s;
-
-    return last_section;
-}
-
-static void bin_cleanup(void)
-{
-    struct Section *g, **gp;
-    struct Section *gs = NULL, **gsp;
-    struct Section *s, **sp;
-    struct Section *nobits = NULL, **nt;
-    struct Section *last_progbits;
-    struct bin_label *l;
-    struct Reloc *r;
-    uint64_t pend;
-    int h;
-
-#ifdef DEBUG
-    nasm_error(ERR_DEBUG,
-            "bin_cleanup: Sections were initially referenced in this order:\n");
-    for (h = 0, s = sections; s; h++, s = s->next)
-        fprintf(stdout, "%i. %s\n", h, s->name);
-#endif
-
-    /* Assembly has completed, so now we need to generate the output file.
-     * Step 1: Separate progbits and nobits sections into separate lists.
-     * Step 2: Sort the progbits sections into their output order.
-     * Step 3: Compute start addresses for all progbits sections.
-     * Step 4: Compute vstart addresses for all sections.
-     * Step 5: Apply relocations.
-     * Step 6: Write the sections' data to the output file.
-     * Step 7: Generate the map file.
-     * Step 8: Release all allocated memory.
-     */
-
-    /* To do: Smart section-type adaptation could leave some empty sections
-     * without a defined type (progbits/nobits).  Won't fix now since this
-     * feature will be disabled.  */
-
-    /* Step 1: Split progbits and nobits sections into separate lists. */
-
-    nt = &nobits;
-    /* Move nobits sections into a separate list.  Also pre-process nobits
-     * sections' attributes. */
-    for (sp = &sections->next, s = sections->next; s; s = *sp) {        /* Skip progbits sections. */
-        if (s->flags & TYPE_PROGBITS) {
-            sp = &s->next;
-            continue;
-        }
-        /* Do some special pre-processing on nobits sections' attributes. */
-        if (s->flags & (START_DEFINED | ALIGN_DEFINED | FOLLOWS_DEFINED)) {     /* Check for a mixture of real and virtual section attributes. */
-            if (s->flags & (VSTART_DEFINED | VALIGN_DEFINED |
-			    VFOLLOWS_DEFINED))
-                nasm_fatal(ERR_NOFILE,
-                      "cannot mix real and virtual attributes"
-                      " in nobits section (%s)", s->name);
-            /* Real and virtual attributes mean the same thing for nobits sections. */
-            if (s->flags & START_DEFINED) {
-                s->vstart = s->start;
-                s->flags |= VSTART_DEFINED;
-            }
-            if (s->flags & ALIGN_DEFINED) {
-                s->valign = s->align;
-                s->flags |= VALIGN_DEFINED;
-            }
-            if (s->flags & FOLLOWS_DEFINED) {
-                s->vfollows = s->follows;
-                s->flags |= VFOLLOWS_DEFINED;
-                s->flags &= ~FOLLOWS_DEFINED;
-            }
-        }
-        /* Every section must have a start address. */
-        if (s->flags & VSTART_DEFINED) {
-            s->start = s->vstart;
-            s->flags |= START_DEFINED;
-        }
-        /* Move the section into the nobits list. */
-        *sp = s->next;
-        s->next = NULL;
-        *nt = s;
-        nt = &s->next;
-    }
-
-    /* Step 2: Sort the progbits sections into their output order. */
-
-    /* In Step 2 we move around sections in groups.  A group
-     * begins with a section (group leader) that has a user-
-     * defined start address or follows section.  The remainder
-     * of the group is made up of the sections that implicitly
-     * follow the group leader (i.e., they were defined after
-     * the group leader and were not given an explicit start
-     * address or follows section by the user). */
-
-    /* For anyone attempting to read this code:
-     * g (group) points to a group of sections, the first one of which has
-     *   a user-defined start address or follows section.
-     * gp (g previous) holds the location of the pointer to g.
-     * gs (g scan) is a temp variable that we use to scan to the end of the group.
-     * gsp (gs previous) holds the location of the pointer to gs.
-     * nt (nobits tail) points to the nobits section-list tail.
-     */
-
-    /* Link all 'follows' groups to their proper position.  To do
-     * this we need to know three things: the start of the group
-     * to relocate (g), the section it is following (s), and the
-     * end of the group we're relocating (gs). */
-    for (gp = &sections, g = sections; g; g = gs) {     /* Find the next follows group that is out of place (g). */
-        if (!(g->flags & FOLLOWS_DEFINED)) {
-            while (g->next) {
-                if ((g->next->flags & FOLLOWS_DEFINED) &&
-                    strcmp(g->name, g->next->follows))
-                    break;
-                g = g->next;
-            }
-            if (!g->next)
-                break;
-            gp = &g->next;
-            g = g->next;
-        }
-        /* Find the section that this group follows (s). */
-        for (sp = &sections, s = sections;
-             s && strcmp(s->name, g->follows);
-             sp = &s->next, s = s->next) ;
-        if (!s)
-            nasm_fatal(ERR_NOFILE, "section %s follows an invalid or"
-                  " unknown section (%s)", g->name, g->follows);
-        if (s->next && (s->next->flags & FOLLOWS_DEFINED) &&
-            !strcmp(s->name, s->next->follows))
-            nasm_fatal(ERR_NOFILE, "sections %s and %s can't both follow"
-                  " section %s", g->name, s->next->name, s->name);
-        /* Find the end of the current follows group (gs). */
-        for (gsp = &g->next, gs = g->next;
-             gs && (gs != s) && !(gs->flags & START_DEFINED);
-             gsp = &gs->next, gs = gs->next) {
-            if (gs->next && (gs->next->flags & FOLLOWS_DEFINED) &&
-                strcmp(gs->name, gs->next->follows)) {
-                gsp = &gs->next;
-                gs = gs->next;
-                break;
-            }
-        }
-        /* Re-link the group after its follows section. */
-        *gsp = s->next;
-        s->next = g;
-        *gp = gs;
-    }
-
-    /* Link all 'start' groups to their proper position.  Once
-     * again we need to know g, s, and gs (see above).  The main
-     * difference is we already know g since we sort by moving
-     * groups from the 'unsorted' list into a 'sorted' list (g
-     * will always be the first section in the unsorted list). */
-    for (g = sections, sections = NULL; g; g = gs) {    /* Find the section that we will insert this group before (s). */
-        for (sp = &sections, s = sections; s; sp = &s->next, s = s->next)
-            if ((s->flags & START_DEFINED) && (g->start < s->start))
-                break;
-        /* Find the end of the group (gs). */
-        for (gs = g->next, gsp = &g->next;
-             gs && !(gs->flags & START_DEFINED);
-             gsp = &gs->next, gs = gs->next) ;
-        /* Re-link the group before the target section. */
-        *sp = g;
-        *gsp = s;
-    }
-
-    /* Step 3: Compute start addresses for all progbits sections. */
-
-    /* Make sure we have an origin and a start address for the first section. */
-    if (origin_defined) {
-	if (sections->flags & START_DEFINED) {
-            /* Make sure this section doesn't begin before the origin. */
-            if (sections->start < origin)
-                nasm_fatal(ERR_NOFILE, "section %s begins"
-                      " before program origin", sections->name);
-	} else if (sections->flags & ALIGN_DEFINED) {
-            sections->start = ALIGN(origin, sections->align);
-	} else {
-            sections->start = origin;
-	}
-    } else {
-        if (!(sections->flags & START_DEFINED))
-            sections->start = 0;
-        origin = sections->start;
-    }
-    sections->flags |= START_DEFINED;
-
-    /* Make sure each section has an explicit start address.  If it
-     * doesn't, then compute one based its alignment and the end of
-     * the previous section. */
-    for (pend = sections->start, g = s = sections; g; g = g->next) {    /* Find the next section that could cause an overlap situation
-                                                                         * (has a defined start address, and is not zero length). */
-        if (g == s)
-            for (s = g->next;
-                 s && ((s->length == 0) || !(s->flags & START_DEFINED));
-                 s = s->next) ;
-        /* Compute the start address of this section, if necessary. */
-        if (!(g->flags & START_DEFINED)) {      /* Default to an alignment of 4 if unspecified. */
-            if (!(g->flags & ALIGN_DEFINED)) {
-                g->align = 4;
-                g->flags |= ALIGN_DEFINED;
-            }
-            /* Set the section start address. */
-            g->start = ALIGN(pend, g->align);
-            g->flags |= START_DEFINED;
-        }
-        /* Ugly special case for progbits sections' virtual attributes:
-         *   If there is a defined valign, but no vstart and no vfollows, then
-         *   we valign after the previous progbits section.  This case doesn't
-         *   really make much sense for progbits sections with a defined start
-         *   address, but it is possible and we must do *something*.
-         * Not-so-ugly special case:
-         *   If a progbits section has no virtual attributes, we set the
-         *   vstart equal to the start address.  */
-        if (!(g->flags & (VSTART_DEFINED | VFOLLOWS_DEFINED))) {
-            if (g->flags & VALIGN_DEFINED)
-                g->vstart = ALIGN(pend, g->valign);
-            else
-                g->vstart = g->start;
-            g->flags |= VSTART_DEFINED;
-        }
-        /* Ignore zero-length sections. */
-        if (g->start < pend)
-            continue;
-        /* Compute the span of this section. */
-        pend = g->start + g->length;
-        /* Check for section overlap. */
-        if (s) {
-	    if (s->start < origin)
-		nasm_fatal(ERR_NOFILE, "section %s beings before program origin",
-		      s->name);
-	    if (g->start > s->start)
-                nasm_fatal(ERR_NOFILE, "sections %s ~ %s and %s overlap!",
-                      gs->name, g->name, s->name);
-            if (pend > s->start)
-                nasm_fatal(ERR_NOFILE, "sections %s and %s overlap!",
-                      g->name, s->name);
-        }
-        /* Remember this section as the latest >0 length section. */
-        gs = g;
-    }
-
-    /* Step 4: Compute vstart addresses for all sections. */
-
-    /* Attach the nobits sections to the end of the progbits sections. */
-    for (s = sections; s->next; s = s->next) ;
-    s->next = nobits;
-    last_progbits = s;
-    /*
-     * Scan for sections that don't have a vstart address.  If we find
-     * one we'll attempt to compute its vstart.  If we can't compute
-     * the vstart, we leave it alone and come back to it in a
-     * subsequent scan.  We continue scanning and re-scanning until
-     * we've gone one full cycle without computing any vstarts.
-     */
-    do {                        /* Do one full scan of the sections list. */
-        for (h = 0, g = sections; g; g = g->next) {
-            if (g->flags & VSTART_DEFINED)
-                continue;
-            /* Find the section that this one virtually follows.  */
-            if (g->flags & VFOLLOWS_DEFINED) {
-                for (s = sections; s && strcmp(g->vfollows, s->name);
-                     s = s->next) ;
-                if (!s)
-                    nasm_fatal(ERR_NOFILE,
-                          "section %s vfollows unknown section (%s)",
-                          g->name, g->vfollows);
-            } else if (g->prev != NULL)
-                for (s = sections; s && (s != g->prev); s = s->next) ;
-            /* The .bss section is the only one with prev = NULL.
-	       In this case we implicitly follow the last progbits
-	       section.  */
-            else
-                s = last_progbits;
-
-            /* If the section we're following has a vstart, we can proceed. */
-            if (s->flags & VSTART_DEFINED) {    /* Default to virtual alignment of four. */
-                if (!(g->flags & VALIGN_DEFINED)) {
-                    g->valign = 4;
-                    g->flags |= VALIGN_DEFINED;
-                }
-                /* Compute the vstart address. */
-                g->vstart = ALIGN(s->vstart + s->length, g->valign);
-                g->flags |= VSTART_DEFINED;
-                h++;
-                /* Start and vstart mean the same thing for nobits sections. */
-                if (g->flags & TYPE_NOBITS)
-                    g->start = g->vstart;
-            }
-        }
-    } while (h);
-
-    /* Now check for any circular vfollows references, which will manifest
-     * themselves as sections without a defined vstart. */
-    for (h = 0, s = sections; s; s = s->next) {
-        if (!(s->flags & VSTART_DEFINED)) {     /* Non-fatal errors after assembly has completed are generally a
-                                                 * no-no, but we'll throw a fatal one eventually so it's ok.  */
-            nasm_error(ERR_NONFATAL, "cannot compute vstart for section %s",
-                  s->name);
-            h++;
-        }
-    }
-    if (h)
-        nasm_fatal(ERR_NOFILE, "circular vfollows path detected");
-
-#ifdef DEBUG
-    nasm_error(ERR_DEBUG,
-            "bin_cleanup: Confirm final section order for output file:\n");
-    for (h = 0, s = sections; s && (s->flags & TYPE_PROGBITS);
-         h++, s = s->next)
-        fprintf(stdout, "%i. %s\n", h, s->name);
-#endif
-
-    /* Step 5: Apply relocations. */
-
-    /* Prepare the sections for relocating. */
-    list_for_each(s, sections)
-        saa_rewind(s->contents);
-    /* Apply relocations. */
-    list_for_each(r, relocs) {
-        uint8_t *p, mydata[8];
-        int64_t l;
-        int b;
-
-        nasm_assert(r->bytes <= 8);
-
-        memset(mydata, 0, sizeof(mydata));
-
-        saa_fread(r->target->contents, r->posn, mydata, r->bytes);
-        p = mydata;
-        l = 0;
-        for (b = r->bytes - 1; b >= 0; b--)
-            l = (l << 8) + mydata[b];
-
-        s = find_section_by_index(r->secref);
-        if (s) {
-            if (r->secref == s->start_index)
-                l += s->start;
-            else
-                l += s->vstart;
-        }
-        s = find_section_by_index(r->secrel);
-        if (s) {
-            if (r->secrel == s->start_index)
-                l -= s->start;
-            else
-                l -= s->vstart;
-        }
-
-        WRITEADDR(p, l, r->bytes);
-        saa_fwrite(r->target->contents, r->posn, mydata, r->bytes);
-    }
-
-    /* Step 6: Write the section data to the output file. */
-    do_output();
-
-    /* Step 7: Generate the map file. */
-
-    if (map_control) {
-        static const char not_defined[] = "not defined";
-
-        /* Display input and output file names. */
-        fprintf(rf, "\n- NASM Map file ");
-        for (h = 63; h; h--)
-            fputc('-', rf);
-        fprintf(rf, "\n\nSource file:  %s\nOutput file:  %s\n\n",
-                infile, outfile);
-
-        if (map_control & MAP_ORIGIN) { /* Display program origin. */
-            fprintf(rf, "-- Program origin ");
-            for (h = 61; h; h--)
-                fputc('-', rf);
-            fprintf(rf, "\n\n%08"PRIX64"\n\n", origin);
-        }
-        /* Display sections summary. */
-        if (map_control & MAP_SUMMARY) {
-            fprintf(rf, "-- Sections (summary) ");
-            for (h = 57; h; h--)
-                fputc('-', rf);
-            fprintf(rf, "\n\nVstart            Start             Stop              "
-                    "Length    Class     Name\n");
-            list_for_each(s, sections) {
-                fprintf(rf, "%16"PRIX64"  %16"PRIX64"  %16"PRIX64"  %08"PRIX64"  ",
-                        s->vstart, s->start, s->start + s->length,
-                        s->length);
-                if (s->flags & TYPE_PROGBITS)
-                    fprintf(rf, "progbits  ");
-                else
-                    fprintf(rf, "nobits    ");
-                fprintf(rf, "%s\n", s->name);
-            }
-            fprintf(rf, "\n");
-        }
-        /* Display detailed section information. */
-        if (map_control & MAP_SECTIONS) {
-            fprintf(rf, "-- Sections (detailed) ");
-            for (h = 56; h; h--)
-                fputc('-', rf);
-            fprintf(rf, "\n\n");
-            list_for_each(s, sections) {
-                fprintf(rf, "---- Section %s ", s->name);
-                for (h = 65 - strlen(s->name); h; h--)
-                    fputc('-', rf);
-                fprintf(rf, "\n\nclass:     ");
-                if (s->flags & TYPE_PROGBITS)
-                    fprintf(rf, "progbits");
-                else
-                    fprintf(rf, "nobits");
-                fprintf(rf, "\nlength:    %16"PRIX64"\nstart:     %16"PRIX64""
-                        "\nalign:     ", s->length, s->start);
-                if (s->flags & ALIGN_DEFINED)
-                    fprintf(rf, "%16"PRIX64"", s->align);
-                else
-                    fputs(not_defined, rf);
-                fprintf(rf, "\nfollows:   ");
-                if (s->flags & FOLLOWS_DEFINED)
-                    fprintf(rf, "%s", s->follows);
-                else
-                    fputs(not_defined, rf);
-                fprintf(rf, "\nvstart:    %16"PRIX64"\nvalign:    ", s->vstart);
-                if (s->flags & VALIGN_DEFINED)
-                    fprintf(rf, "%16"PRIX64"", s->valign);
-                else
-                    fputs(not_defined, rf);
-                fprintf(rf, "\nvfollows:  ");
-                if (s->flags & VFOLLOWS_DEFINED)
-                    fprintf(rf, "%s", s->vfollows);
-                else
-                    fputs(not_defined, rf);
-                fprintf(rf, "\n\n");
-            }
-        }
-        /* Display symbols information. */
-        if (map_control & MAP_SYMBOLS) {
-            int32_t segment;
-            int64_t offset;
-
-            fprintf(rf, "-- Symbols ");
-            for (h = 68; h; h--)
-                fputc('-', rf);
-            fprintf(rf, "\n\n");
-            if (no_seg_labels) {
-                fprintf(rf, "---- No Section ");
-                for (h = 63; h; h--)
-                    fputc('-', rf);
-                fprintf(rf, "\n\nValue     Name\n");
-                list_for_each(l, no_seg_labels) {
-                    lookup_label(l->name, &segment, &offset);
-                    fprintf(rf, "%08"PRIX64"  %s\n", offset, l->name);
-                }
-                fprintf(rf, "\n\n");
-            }
-            list_for_each(s, sections) {
-                if (s->labels) {
-                    fprintf(rf, "---- Section %s ", s->name);
-                    for (h = 65 - strlen(s->name); h; h--)
-                        fputc('-', rf);
-                    fprintf(rf, "\n\nReal              Virtual           Name\n");
-                    list_for_each(l, s->labels) {
-                        lookup_label(l->name, &segment, &offset);
-                        fprintf(rf, "%16"PRIX64"  %16"PRIX64"  %s\n",
-                                s->start + offset, s->vstart + offset,
-                                l->name);
-                    }
-                    fprintf(rf, "\n");
-                }
-            }
-        }
-    }
-
-    /* Close the report file. */
-    if (map_control && (rf != stdout) && (rf != stderr))
-        fclose(rf);
-
-    /* Step 8: Release all allocated memory. */
-
-    /* Free sections, label pointer structs, etc.. */
-    while (sections) {
-        s = sections;
-        sections = s->next;
-        saa_free(s->contents);
-        nasm_free(s->name);
-        if (s->flags & FOLLOWS_DEFINED)
-            nasm_free(s->follows);
-        if (s->flags & VFOLLOWS_DEFINED)
-            nasm_free(s->vfollows);
-        while (s->labels) {
-            l = s->labels;
-            s->labels = l->next;
-            nasm_free(l);
-        }
-        nasm_free(s);
-    }
-
-    /* Free no-section labels. */
-    while (no_seg_labels) {
-        l = no_seg_labels;
-        no_seg_labels = l->next;
-        nasm_free(l);
-    }
-
-    /* Free relocation structures. */
-    while (relocs) {
-        r = relocs->next;
-        nasm_free(relocs);
-        relocs = r;
-    }
-}
-
-static void bin_out(int32_t segto, const void *data,
-		    enum out_type type, uint64_t size,
-                    int32_t segment, int32_t wrt)
-{
-    uint8_t *p, mydata[8];
-    struct Section *s;
-
-    if (wrt != NO_SEG) {
-        wrt = NO_SEG;           /* continue to do _something_ */
-        nasm_error(ERR_NONFATAL, "WRT not supported by binary output format");
-    }
-
-    /* Handle absolute-assembly (structure definitions). */
-    if (segto == NO_SEG) {
-        if (type != OUT_RESERVE)
-            nasm_error(ERR_NONFATAL, "attempt to assemble code in"
-                  " [ABSOLUTE] space");
-        return;
-    }
-
-    /* Find the segment we are targeting. */
-    s = find_section_by_index(segto);
-    if (!s)
-        nasm_panic(0, "code directed to nonexistent segment?");
-
-    /* "Smart" section-type adaptation code. */
-    if (!(s->flags & TYPE_DEFINED)) {
-        if (type == OUT_RESERVE)
-            s->flags |= TYPE_DEFINED | TYPE_NOBITS;
-        else
-            s->flags |= TYPE_DEFINED | TYPE_PROGBITS;
-    }
-
-    if ((s->flags & TYPE_NOBITS) && (type != OUT_RESERVE))
-        nasm_error(ERR_WARNING, "attempt to initialize memory in a"
-              " nobits section: ignored");
-
-    switch (type) {
-    case OUT_ADDRESS:
-    {
-        int asize = abs((int)size);
-
-        if (segment != NO_SEG && !find_section_by_index(segment)) {
-            if (segment % 2)
-                nasm_error(ERR_NONFATAL, "binary output format does not support"
-                      " segment base references");
-            else
-                nasm_error(ERR_NONFATAL, "binary output format does not support"
-                      " external references");
-            segment = NO_SEG;
-        }
-        if (s->flags & TYPE_PROGBITS) {
-            if (segment != NO_SEG)
-                add_reloc(s, asize, segment, -1L);
-            p = mydata;
-	    WRITEADDR(p, *(int64_t *)data, asize);
-            saa_wbytes(s->contents, mydata, asize);
-        }
-
-        /*
-         * Reassign size with sign dropped, we will need it
-         * for section length calculation.
-         */
-        size = asize;
-	break;
-    }
-
-    case OUT_RAWDATA:
-        if (s->flags & TYPE_PROGBITS)
-            saa_wbytes(s->contents, data, size);
-	break;
-
-    case OUT_RESERVE:
-        if (s->flags & TYPE_PROGBITS) {
-            nasm_error(ERR_WARNING, "uninitialized space declared in"
-                  " %s section: zeroing", s->name);
-            saa_wbytes(s->contents, NULL, size);
-        }
-	break;
-
-    case OUT_REL1ADR:
-    case OUT_REL2ADR:
-    case OUT_REL4ADR:
-    case OUT_REL8ADR:
-    {
-	int64_t addr = *(int64_t *)data - size;
-	size = realsize(type, size);
-        if (segment != NO_SEG && !find_section_by_index(segment)) {
-            if (segment % 2)
-                nasm_error(ERR_NONFATAL, "binary output format does not support"
-                      " segment base references");
-            else
-                nasm_error(ERR_NONFATAL, "binary output format does not support"
-                      " external references");
-            segment = NO_SEG;
-        }
-        if (s->flags & TYPE_PROGBITS) {
-            add_reloc(s, size, segment, segto);
-            p = mydata;
-	    WRITEADDR(p, addr - s->length, size);
-            saa_wbytes(s->contents, mydata, size);
-        }
-	break;
-    }
-
-    default:
-	nasm_error(ERR_NONFATAL, "unsupported relocation type %d\n", type);
-	break;
-    }
-
-    s->length += size;
-}
-
-static void bin_deflabel(char *name, int32_t segment, int64_t offset,
-                         int is_global, char *special)
-{
-    (void)segment;              /* Don't warn that this parameter is unused */
-    (void)offset;               /* Don't warn that this parameter is unused */
-
-    if (special)
-        nasm_error(ERR_NONFATAL, "binary format does not support any"
-              " special symbol types");
-    else if (name[0] == '.' && name[1] == '.' && name[2] != '@')
-        nasm_error(ERR_NONFATAL, "unrecognised special symbol `%s'", name);
-    else if (is_global == 2)
-        nasm_error(ERR_NONFATAL, "binary output format does not support common"
-              " variables");
-    else {
-        struct Section *s;
-        struct bin_label ***ltp;
-
-        /* Remember label definition so we can look it up later when
-         * creating the map file. */
-        s = find_section_by_index(segment);
-        if (s)
-            ltp = &(s->labels_end);
-        else
-            ltp = &nsl_tail;
-        (**ltp) = nasm_malloc(sizeof(struct bin_label));
-        (**ltp)->name = name;
-        (**ltp)->next = NULL;
-        *ltp = &((**ltp)->next);
-    }
-
-}
-
-/* These constants and the following function are used
- * by bin_secname() to parse attribute assignments. */
-
-enum { ATTRIB_START, ATTRIB_ALIGN, ATTRIB_FOLLOWS,
-    ATTRIB_VSTART, ATTRIB_VALIGN, ATTRIB_VFOLLOWS,
-    ATTRIB_NOBITS, ATTRIB_PROGBITS
-};
-
-static int bin_read_attribute(char **line, int *attribute,
-                              uint64_t *value)
-{
-    expr *e;
-    int attrib_name_size;
-    struct tokenval tokval;
-    char *exp;
-
-    /* Skip whitespace. */
-    while (**line && nasm_isspace(**line))
-        (*line)++;
-    if (!**line)
-        return 0;
-
-    /* Figure out what attribute we're reading. */
-    if (!nasm_strnicmp(*line, "align=", 6)) {
-        *attribute = ATTRIB_ALIGN;
-        attrib_name_size = 6;
-    } else {
-        if (!nasm_strnicmp(*line, "start=", 6)) {
-            *attribute = ATTRIB_START;
-            attrib_name_size = 6;
-        } else if (!nasm_strnicmp(*line, "follows=", 8)) {
-            *attribute = ATTRIB_FOLLOWS;
-            *line += 8;
-            return 1;
-        } else if (!nasm_strnicmp(*line, "vstart=", 7)) {
-            *attribute = ATTRIB_VSTART;
-            attrib_name_size = 7;
-        } else if (!nasm_strnicmp(*line, "valign=", 7)) {
-            *attribute = ATTRIB_VALIGN;
-            attrib_name_size = 7;
-        } else if (!nasm_strnicmp(*line, "vfollows=", 9)) {
-            *attribute = ATTRIB_VFOLLOWS;
-            *line += 9;
-            return 1;
-        } else if (!nasm_strnicmp(*line, "nobits", 6) &&
-                   (nasm_isspace((*line)[6]) || ((*line)[6] == '\0'))) {
-            *attribute = ATTRIB_NOBITS;
-            *line += 6;
-            return 1;
-        } else if (!nasm_strnicmp(*line, "progbits", 8) &&
-                   (nasm_isspace((*line)[8]) || ((*line)[8] == '\0'))) {
-            *attribute = ATTRIB_PROGBITS;
-            *line += 8;
-            return 1;
-        } else
-            return 0;
-    }
-
-    /* Find the end of the expression. */
-    if ((*line)[attrib_name_size] != '(') {
-        /* Single term (no parenthesis). */
-        exp = *line += attrib_name_size;
-        while (**line && !nasm_isspace(**line))
-            (*line)++;
-        if (**line) {
-            **line = '\0';
-            (*line)++;
-        }
-    } else {
-        char c;
-        int pcount = 1;
-
-        /* Full expression (delimited by parenthesis) */
-        exp = *line += attrib_name_size + 1;
-        while (1) {
-            (*line) += strcspn(*line, "()'\"");
-            if (**line == '(') {
-                ++(*line);
-                ++pcount;
-            }
-            if (**line == ')') {
-                ++(*line);
-                --pcount;
-                if (!pcount)
-                    break;
-            }
-            if ((**line == '"') || (**line == '\'')) {
-                c = **line;
-                while (**line) {
-                    ++(*line);
-                    if (**line == c)
-                        break;
-                }
-                if (!**line) {
-                    nasm_error(ERR_NONFATAL,
-                          "invalid syntax in `section' directive");
-                    return -1;
-                }
-                ++(*line);
-            }
-            if (!**line) {
-                nasm_error(ERR_NONFATAL, "expecting `)'");
-                return -1;
-            }
-        }
-        *(*line - 1) = '\0';    /* Terminate the expression. */
-    }
-
-    /* Check for no value given. */
-    if (!*exp) {
-        nasm_error(ERR_WARNING, "No value given to attribute in"
-              " `section' directive");
-        return -1;
-    }
-
-    /* Read and evaluate the expression. */
-    stdscan_reset();
-    stdscan_set(exp);
-    tokval.t_type = TOKEN_INVALID;
-    e = evaluate(stdscan, NULL, &tokval, NULL, 1, NULL);
-    if (e) {
-        if (!is_really_simple(e)) {
-            nasm_error(ERR_NONFATAL, "section attribute value must be"
-                  " a critical expression");
-            return -1;
-        }
-    } else {
-        nasm_error(ERR_NONFATAL, "Invalid attribute value"
-              " specified in `section' directive.");
-        return -1;
-    }
-    *value = (uint64_t)reloc_value(e);
-    return 1;
-}
-
-static void bin_sectalign(int32_t seg, unsigned int value)
-{
-    struct Section *s = find_section_by_index(seg);
-
-    if (!s || !is_power2(value))
-        return;
-
-    if (value > s->align)
-        s->align = value;
-
-    if (!(s->flags & ALIGN_DEFINED))
-        s->flags |= ALIGN_DEFINED;
-}
-
-static void bin_assign_attributes(struct Section *sec, char *astring)
-{
-    int attribute, check;
-    uint64_t value;
-    char *p;
-
-    while (1) {                 /* Get the next attribute. */
-        check = bin_read_attribute(&astring, &attribute, &value);
-        /* Skip bad attribute. */
-        if (check == -1)
-            continue;
-        /* Unknown section attribute, so skip it and warn the user. */
-        if (!check) {
-            if (!*astring)
-                break;          /* End of line. */
-            else {
-                p = astring;
-                while (*astring && !nasm_isspace(*astring))
-                    astring++;
-                if (*astring) {
-                    *astring = '\0';
-                    astring++;
-                }
-                nasm_error(ERR_WARNING, "ignoring unknown section attribute:"
-                      " \"%s\"", p);
-            }
-            continue;
-        }
-
-        switch (attribute) {    /* Handle nobits attribute. */
-        case ATTRIB_NOBITS:
-            if ((sec->flags & TYPE_DEFINED)
-                && (sec->flags & TYPE_PROGBITS))
-                nasm_error(ERR_NONFATAL,
-                      "attempt to change section type"
-                      " from progbits to nobits");
-            else
-                sec->flags |= TYPE_DEFINED | TYPE_NOBITS;
-            continue;
-
-            /* Handle progbits attribute. */
-        case ATTRIB_PROGBITS:
-            if ((sec->flags & TYPE_DEFINED) && (sec->flags & TYPE_NOBITS))
-                nasm_error(ERR_NONFATAL, "attempt to change section type"
-                      " from nobits to progbits");
-            else
-                sec->flags |= TYPE_DEFINED | TYPE_PROGBITS;
-            continue;
-
-            /* Handle align attribute. */
-        case ATTRIB_ALIGN:
-            if (!value || ((value - 1) & value)) {
-                nasm_error(ERR_NONFATAL,
-                           "argument to `align' is not a power of two");
-            } else {
-                /*
-                 * Alignment is already satisfied if
-                 * the previous align value is greater
-                 */
-                if ((sec->flags & ALIGN_DEFINED) && (value < sec->align))
-                    value = sec->align;
-
-                /* Don't allow a conflicting align value. */
-                if ((sec->flags & START_DEFINED) && (sec->start & (value - 1))) {
-                    nasm_error(ERR_NONFATAL,
-                              "`align' value conflicts with section start address");
-                } else {
-                    sec->align  = value;
-                    sec->flags |= ALIGN_DEFINED;
-                }
-            }
-            continue;
-
-            /* Handle valign attribute. */
-        case ATTRIB_VALIGN:
-            if (!value || ((value - 1) & value))
-                nasm_error(ERR_NONFATAL, "argument to `valign' is not a"
-                      " power of two");
-            else {              /* Alignment is already satisfied if the previous
-                                 * align value is greater. */
-                if ((sec->flags & VALIGN_DEFINED) && (value < sec->valign))
-                    value = sec->valign;
-
-                /* Don't allow a conflicting valign value. */
-                if ((sec->flags & VSTART_DEFINED)
-                    && (sec->vstart & (value - 1)))
-                    nasm_error(ERR_NONFATAL,
-                          "`valign' value conflicts "
-                          "with `vstart' address");
-                else {
-                    sec->valign = value;
-                    sec->flags |= VALIGN_DEFINED;
-                }
-            }
-            continue;
-
-            /* Handle start attribute. */
-        case ATTRIB_START:
-            if (sec->flags & FOLLOWS_DEFINED)
-                nasm_error(ERR_NONFATAL, "cannot combine `start' and `follows'"
-                      " section attributes");
-            else if ((sec->flags & START_DEFINED) && (value != sec->start))
-                nasm_error(ERR_NONFATAL, "section start address redefined");
-            else {
-                sec->start = value;
-                sec->flags |= START_DEFINED;
-                if (sec->flags & ALIGN_DEFINED) {
-                    if (sec->start & (sec->align - 1))
-                        nasm_error(ERR_NONFATAL, "`start' address conflicts"
-                              " with section alignment");
-                    sec->flags ^= ALIGN_DEFINED;
-                }
-            }
-            continue;
-
-            /* Handle vstart attribute. */
-        case ATTRIB_VSTART:
-            if (sec->flags & VFOLLOWS_DEFINED)
-                nasm_error(ERR_NONFATAL,
-                      "cannot combine `vstart' and `vfollows'"
-                      " section attributes");
-            else if ((sec->flags & VSTART_DEFINED)
-                     && (value != sec->vstart))
-                nasm_error(ERR_NONFATAL,
-                      "section virtual start address"
-                      " (vstart) redefined");
-            else {
-                sec->vstart = value;
-                sec->flags |= VSTART_DEFINED;
-                if (sec->flags & VALIGN_DEFINED) {
-                    if (sec->vstart & (sec->valign - 1))
-                        nasm_error(ERR_NONFATAL, "`vstart' address conflicts"
-                              " with `valign' value");
-                    sec->flags ^= VALIGN_DEFINED;
-                }
-            }
-            continue;
-
-            /* Handle follows attribute. */
-        case ATTRIB_FOLLOWS:
-            p = astring;
-            astring += strcspn(astring, " \t");
-            if (astring == p)
-                nasm_error(ERR_NONFATAL, "expecting section name for `follows'"
-                      " attribute");
-            else {
-                *(astring++) = '\0';
-                if (sec->flags & START_DEFINED)
-                    nasm_error(ERR_NONFATAL,
-                          "cannot combine `start' and `follows'"
-                          " section attributes");
-                sec->follows = nasm_strdup(p);
-                sec->flags |= FOLLOWS_DEFINED;
-            }
-            continue;
-
-            /* Handle vfollows attribute. */
-        case ATTRIB_VFOLLOWS:
-            if (sec->flags & VSTART_DEFINED)
-                nasm_error(ERR_NONFATAL,
-                      "cannot combine `vstart' and `vfollows'"
-                      " section attributes");
-            else {
-                p = astring;
-                astring += strcspn(astring, " \t");
-                if (astring == p)
-                    nasm_error(ERR_NONFATAL,
-                          "expecting section name for `vfollows'"
-                          " attribute");
-                else {
-                    *(astring++) = '\0';
-                    sec->vfollows = nasm_strdup(p);
-                    sec->flags |= VFOLLOWS_DEFINED;
-                }
-            }
-            continue;
-        }
-    }
-}
-
-static void bin_define_section_labels(void)
-{
-    static int labels_defined = 0;
-    struct Section *sec;
-    char *label_name;
-    size_t base_len;
-
-    if (labels_defined)
-        return;
-    list_for_each(sec, sections) {
-        base_len = strlen(sec->name) + 8;
-        label_name = nasm_malloc(base_len + 8);
-        strcpy(label_name, "section.");
-        strcpy(label_name + 8, sec->name);
-
-        /* section.<name>.start */
-        strcpy(label_name + base_len, ".start");
-        define_label(label_name, sec->start_index, 0L, NULL, 0, 0);
-
-        /* section.<name>.vstart */
-        strcpy(label_name + base_len, ".vstart");
-        define_label(label_name, sec->vstart_index, 0L, NULL, 0, 0);
-
-        nasm_free(label_name);
-    }
-    labels_defined = 1;
-}
-
-static int32_t bin_secname(char *name, int pass, int *bits)
-{
-    char *p;
-    struct Section *sec;
-
-    /* bin_secname is called with *name = NULL at the start of each
-     * pass.  Use this opportunity to establish the default section
-     * (default is BITS-16 ".text" segment).
-     */
-    if (!name) {                /* Reset ORG and section attributes at the start of each pass. */
-        origin_defined = 0;
-        list_for_each(sec, sections)
-            sec->flags &= ~(START_DEFINED | VSTART_DEFINED |
-                            ALIGN_DEFINED | VALIGN_DEFINED);
-
-        /* Define section start and vstart labels. */
-        if (pass != 1)
-            bin_define_section_labels();
-
-        /* Establish the default (.text) section. */
-        *bits = 16;
-        sec = find_section_by_name(".text");
-        sec->flags |= TYPE_DEFINED | TYPE_PROGBITS;
-        return sec->vstart_index;
-    }
-
-    /* Attempt to find the requested section.  If it does not
-     * exist, create it. */
-    p = name;
-    while (*p && !nasm_isspace(*p))
-        p++;
-    if (*p)
-        *p++ = '\0';
-    sec = find_section_by_name(name);
-    if (!sec) {
-        sec = create_section(name);
-        if (!strcmp(name, ".data"))
-            sec->flags |= TYPE_DEFINED | TYPE_PROGBITS;
-        else if (!strcmp(name, ".bss")) {
-            sec->flags |= TYPE_DEFINED | TYPE_NOBITS;
-            sec->prev = NULL;
-        }
-    }
-
-    /* Handle attribute assignments. */
-    if (pass != 1)
-        bin_assign_attributes(sec, p);
-
-#ifndef ABIN_SMART_ADAPT
-    /* The following line disables smart adaptation of
-     * PROGBITS/NOBITS section types (it forces sections to
-     * default to PROGBITS). */
-    if ((pass != 1) && !(sec->flags & TYPE_DEFINED))
-        sec->flags |= TYPE_DEFINED | TYPE_PROGBITS;
-#endif
-
-    return sec->vstart_index;
-}
-
-static enum directive_result
-bin_directive(enum directives directive, char *args, int pass)
-{
-    switch (directive) {
-    case D_ORG:
-    {
-        struct tokenval tokval;
-        uint64_t value;
-        expr *e;
-
-        stdscan_reset();
-        stdscan_set(args);
-        tokval.t_type = TOKEN_INVALID;
-        e = evaluate(stdscan, NULL, &tokval, NULL, 1, NULL);
-        if (e) {
-            if (!is_really_simple(e))
-                nasm_error(ERR_NONFATAL, "org value must be a critical"
-                      " expression");
-            else {
-                value = reloc_value(e);
-                /* Check for ORG redefinition. */
-                if (origin_defined && (value != origin))
-                    nasm_error(ERR_NONFATAL, "program origin redefined");
-                else {
-                    origin = value;
-                    origin_defined = 1;
-                }
-            }
-        } else
-            nasm_error(ERR_NONFATAL, "No or invalid offset specified"
-                  " in ORG directive.");
-        return DIRR_OK;
-    }
-    case D_MAP:
-    {
-    /* The 'map' directive allows the user to generate section
-     * and symbol information to stdout, stderr, or to a file. */
-	char *p;
-	
-        if (pass != 1)
-            return DIRR_OK;
-        args += strspn(args, " \t");
-        while (*args) {
-            p = args;
-            args += strcspn(args, " \t");
-            if (*args != '\0')
-                *(args++) = '\0';
-            if (!nasm_stricmp(p, "all"))
-                map_control |=
-                    MAP_ORIGIN | MAP_SUMMARY | MAP_SECTIONS | MAP_SYMBOLS;
-            else if (!nasm_stricmp(p, "brief"))
-                map_control |= MAP_ORIGIN | MAP_SUMMARY;
-            else if (!nasm_stricmp(p, "sections"))
-                map_control |= MAP_ORIGIN | MAP_SUMMARY | MAP_SECTIONS;
-            else if (!nasm_stricmp(p, "segments"))
-                map_control |= MAP_ORIGIN | MAP_SUMMARY | MAP_SECTIONS;
-            else if (!nasm_stricmp(p, "symbols"))
-                map_control |= MAP_SYMBOLS;
-            else if (!rf) {
-                if (!nasm_stricmp(p, "stdout"))
-                    rf = stdout;
-                else if (!nasm_stricmp(p, "stderr"))
-                    rf = stderr;
-                else {          /* Must be a filename. */
-                    rf = nasm_open_write(p, NF_TEXT);
-                    if (!rf) {
-                        nasm_error(ERR_WARNING, "unable to open map file `%s'",
-                              p);
-                        map_control = 0;
-                        return DIRR_OK;
-                    }
-                }
-            } else
-                nasm_error(ERR_WARNING, "map file already specified");
-        }
-        if (map_control == 0)
-            map_control |= MAP_ORIGIN | MAP_SUMMARY;
-        if (!rf)
-            rf = stdout;
-        return DIRR_OK;
-    }
-    default:
-	return DIRR_UNKNOWN;
-    }
-}
-
-static void bin_filename(char *inname, char *outname)
-{
-    standard_extension(inname, outname, "");
-    infile = inname;
-    outfile = outname;
-}
-
-static void ith_filename(char *inname, char *outname)
-{
-    standard_extension(inname, outname, ".ith");
-    infile = inname;
-    outfile = outname;
-}
-
-static void srec_filename(char *inname, char *outname)
-{
-    standard_extension(inname, outname, ".srec");
-    infile = inname;
-    outfile = outname;
-}
-
-static int32_t bin_segbase(int32_t segment)
-{
-    return segment;
-}
-
-static int bin_set_info(enum geninfo type, char **val)
-{
-    (void)type;
-    (void)val;
-    return 0;
-}
-
-const struct ofmt of_bin, of_ith, of_srec;
-static void binfmt_init(void);
-static void do_output_bin(void);
-static void do_output_ith(void);
-static void do_output_srec(void);
-
-static void bin_init(void)
-{
-    do_output = do_output_bin;
-    binfmt_init();
-}
-
-static void ith_init(void)
-{
-    do_output = do_output_ith;
-    binfmt_init();
-}    
-    
-static void srec_init(void)
-{
-    do_output = do_output_srec;
-    binfmt_init();
-}
-
-static void binfmt_init(void)
-{
-    relocs = NULL;
-    reloctail = &relocs;
-    origin_defined = 0;
-    no_seg_labels = NULL;
-    nsl_tail = &no_seg_labels;
-
-    /* Create default section (.text). */
-    sections = last_section = nasm_zalloc(sizeof(struct Section));
-    last_section->name          = nasm_strdup(".text");
-    last_section->contents      = saa_init(1L);
-    last_section->flags         = TYPE_DEFINED | TYPE_PROGBITS;
-    last_section->labels_end    = &(last_section->labels);
-    last_section->start_index   = seg_alloc();
-    last_section->vstart_index  = seg_alloc();
-}
-
-/* Generate binary file output */
-static void do_output_bin(void)
-{
-    struct Section *s;
-    uint64_t addr = origin;
-
-    /* Write the progbits sections to the output file. */
-    list_for_each(s, sections) {
-	/* Skip non-progbits sections */
-	if (!(s->flags & TYPE_PROGBITS))
-	    continue;
-	/* Skip zero-length sections */
-	if (s->length == 0)
-            continue;
-
-        /* Pad the space between sections. */
-	nasm_assert(addr <= s->start);
-	fwritezero(s->start - addr, ofile);
-
-        /* Write the section to the output file. */
-	saa_fpwrite(s->contents, ofile);
-        
-	/* Keep track of the current file position */
-	addr = s->start + s->length;
-    }
-}
-
-/* Generate Intel hex file output */
-static void write_ith_record(unsigned int len, uint16_t addr,
-                             uint8_t type, void *data)
-{
-    char buf[1+2+4+2+255*2+2+2];
-    char *p = buf;
-    uint8_t csum, *dptr = data;
-    unsigned int i;
-
-    nasm_assert(len <= 255);
-
-    csum = len + addr + (addr >> 8) + type;
-    for (i = 0; i < len; i++)
-	csum += dptr[i];
-    csum = -csum;
-
-    p += sprintf(p, ":%02X%04X%02X", len, addr, type);
-    for (i = 0; i < len; i++)
-	p += sprintf(p, "%02X", dptr[i]);
-    p += sprintf(p, "%02X\n", csum);
-
-    nasm_write(buf, p-buf, ofile);
-}
-
-static void do_output_ith(void)
-{
-    uint8_t buf[32];
-    struct Section *s;
-    uint64_t addr, hiaddr, hilba;
-    uint64_t length;
-    unsigned int chunk;
-
-    /* Write the progbits sections to the output file. */
-    hilba = 0;
-    list_for_each(s, sections) {
-	/* Skip non-progbits sections */
-	if (!(s->flags & TYPE_PROGBITS))
-	    continue;
-	/* Skip zero-length sections */
-	if (s->length == 0)
-            continue;
-
-	addr   = s->start;
-	length = s->length;
-	saa_rewind(s->contents);
-
-	while (length) {
-	    hiaddr = addr >> 16;
-	    if (hiaddr != hilba) {
-		buf[0] = hiaddr >> 8;
-		buf[1] = hiaddr;
-		write_ith_record(2, 0, 4, buf);
-		hilba = hiaddr;
-	    }
-
-	    chunk = 32 - (addr & 31);
-	    if (length < chunk)
-		chunk = length;
-
-	    saa_rnbytes(s->contents, buf, chunk);
-	    write_ith_record(chunk, (uint16_t)addr, 0, buf);
-
-	    addr += chunk;
-	    length -= chunk;
-	}
-    }
-
-    /* Write closing record */
-    write_ith_record(0, 0, 1, NULL);
-}
-
-/* Generate Motorola S-records */
-static void write_srecord(unsigned int len,  unsigned int alen,
-                          uint32_t addr, uint8_t type, void *data)
-{
-    char buf[2+2+8+255*2+2+2];
-    char *p = buf;
-    uint8_t csum, *dptr = data;
-    unsigned int i;
-
-    nasm_assert(len <= 255);
-
-    switch (alen) {
-    case 2:
-	addr &= 0xffff;
-	break;
-    case 3:
-	addr &= 0xffffff;
-	break;
-    case 4:
-	break;
-    default:
-	nasm_assert(0);
-	break;
-    }
-
-    csum = (len+alen+1) + addr + (addr >> 8) + (addr >> 16) + (addr >> 24);
-    for (i = 0; i < len; i++)
-	csum += dptr[i];
-    csum = 0xff-csum;
-
-    p += sprintf(p, "S%c%02X%0*X", type, len+alen+1, alen*2, addr);
-    for (i = 0; i < len; i++)
-	p += sprintf(p, "%02X", dptr[i]);
-    p += sprintf(p, "%02X\n", csum);
-
-    nasm_write(buf, p-buf, ofile);
-}
-
-static void do_output_srec(void)
-{
-    uint8_t buf[32];
-    struct Section *s;
-    uint64_t addr, maxaddr;
-    uint64_t length;
-    int alen;
-    unsigned int chunk;
-    char dtype, etype;
-
-    maxaddr = 0;
-    list_for_each(s, sections) {
-	/* Skip non-progbits sections */
-	if (!(s->flags & TYPE_PROGBITS))
-	    continue;
-	/* Skip zero-length sections */
-	if (s->length == 0)
-            continue;
-
-	addr = s->start + s->length - 1;
-	if (addr > maxaddr)
-	    maxaddr = addr;
-    }
-
-    if (maxaddr <= 0xffff) {
-	alen  = 2;
-	dtype = '1';		/* S1 = 16-bit data */
-	etype = '9';		/* S9 = 16-bit end */
-    } else if (maxaddr <= 0xffffff) {
-	alen = 3;
-	dtype = '2';		/* S2 = 24-bit data */
-	etype = '8';		/* S8 = 24-bit end */
-    } else {
-	alen = 4;
-	dtype = '3';		/* S3 = 32-bit data */
-	etype = '7';		/* S7 = 32-bit end */
-    }
-
-    /* Write head record */
-    write_srecord(0, 2, 0, '0', NULL);
-
-    /* Write the progbits sections to the output file. */
-    list_for_each(s, sections) {
-	/* Skip non-progbits sections */
-	if (!(s->flags & TYPE_PROGBITS))
-	    continue;
-	/* Skip zero-length sections */
-	if (s->length == 0)
-            continue;
-
-	addr   = s->start;
-	length = s->length;
-	saa_rewind(s->contents);
-
-	while (length) {
-	    chunk = 32 - (addr & 31);
-	    if (length < chunk)
-		chunk = length;
-
-	    saa_rnbytes(s->contents, buf, chunk);
-	    write_srecord(chunk, alen, (uint32_t)addr, dtype, buf);
-
-	    addr += chunk;
-	    length -= chunk;
-	}
-    }
-
-    /* Write closing record */
-    write_srecord(0, alen, 0, etype, NULL);
-}
-
-
-const struct ofmt of_bin = {
-    "flat-form binary files (e.g. DOS .COM, .SYS)",
-    "bin",
-    0,
-    64,
-    null_debug_arr,
-    &null_debug_form,
-    bin_stdmac,
-    bin_init,
-    bin_set_info,
-    nasm_do_legacy_output,
-    bin_out,
-    bin_deflabel,
-    bin_secname,
-    bin_sectalign,
-    bin_segbase,
-    bin_directive,
-    bin_filename,
-    bin_cleanup,
-    NULL                        /* pragma list */
-};
-
-const struct ofmt of_ith = {
-    "Intel hex",
-    "ith",
-    OFMT_TEXT,
-    64,
-    null_debug_arr,
-    &null_debug_form,
-    bin_stdmac,
-    ith_init,
-    bin_set_info,
-    nasm_do_legacy_output,
-    bin_out,
-    bin_deflabel,
-    bin_secname,
-    bin_sectalign,
-    bin_segbase,
-    bin_directive,
-    ith_filename,
-    bin_cleanup,
-    NULL                        /* pragma list */
-};
-
-const struct ofmt of_srec = {
-    "Motorola S-records",
-    "srec",
-    OFMT_TEXT,
-    64,
-    null_debug_arr,
-    &null_debug_form,
-    bin_stdmac,
-    srec_init,
-    bin_set_info,
-    nasm_do_legacy_output,
-    bin_out,
-    bin_deflabel,
-    bin_secname,
-    bin_sectalign,
-    bin_segbase,
-    bin_directive,
-    srec_filename,
-    bin_cleanup,
-    NULL                        /* pragma list */
-};
-
-#endif                          /* #ifdef OF_BIN */
--- a/nasmbuild/nasm-2.13rc9/output/outbin.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-;; --------------------------------------------------------------------------
-;;   
-;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;     
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-OUT: bin
-%define __SECT__ [section .text]
-%imacro org 1+.nolist
-[org %1]
-%endmacro
-%macro __NASM_CDecl__ 1
-%endmacro
--- a/nasmbuild/nasm-2.13rc9/output/outcoff.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1251 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * outcoff.c    output routines for the Netwide Assembler to produce
- *              COFF object files (for DJGPP and Win32)
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <time.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "saa.h"
-#include "raa.h"
-#include "eval.h"
-#include "outform.h"
-#include "outlib.h"
-#include "pecoff.h"
-
-#if defined(OF_COFF) || defined(OF_WIN32) || defined(OF_WIN64)
-
-/*
- * Notes on COFF:
- *
- * (0) When I say `standard COFF' below, I mean `COFF as output and
- * used by DJGPP'. I assume DJGPP gets it right.
- *
- * (1) Win32 appears to interpret the term `relative relocation'
- * differently from standard COFF. Standard COFF understands a
- * relative relocation to mean that during relocation you add the
- * address of the symbol you're referencing, and subtract the base
- * address of the section you're in. Win32 COFF, by contrast, seems
- * to add the address of the symbol and then subtract the address
- * of THE BYTE AFTER THE RELOCATED DWORD. Hence the two formats are
- * subtly incompatible.
- *
- * (2) Win32 doesn't bother putting any flags in the header flags
- * field (at offset 0x12 into the file).
- *
- * (3) Win32 uses some extra flags into the section header table:
- * it defines flags 0x80000000 (writable), 0x40000000 (readable)
- * and 0x20000000 (executable), and uses them in the expected
- * combinations. It also defines 0x00100000 through 0x00700000 for
- * section alignments of 1 through 64 bytes.
- *
- * (4) Both standard COFF and Win32 COFF seem to use the DWORD
- * field directly after the section name in the section header
- * table for something strange: they store what the address of the
- * section start point _would_ be, if you laid all the sections end
- * to end starting at zero. Dunno why. Microsoft's documentation
- * lists this field as "Virtual Size of Section", which doesn't
- * seem to fit at all. In fact, Win32 even includes non-linked
- * sections such as .drectve in this calculation.
- *
- * Newer versions of MASM seem to have changed this to be zero, and
- * that apparently matches the COFF spec, so go with that.
- *
- * (5) Standard COFF does something very strange to common
- * variables: the relocation point for a common variable is as far
- * _before_ the variable as its size stretches out _after_ it. So
- * we must fix up common variable references. Win32 seems to be
- * sensible on this one.
- */
-
-/* Flag which version of COFF we are currently outputting. */
-bool win32, win64;
-
-static int32_t imagebase_sect;
-#define WRT_IMAGEBASE "..imagebase"
-
-char coff_infile[FILENAME_MAX];
-char coff_outfile[FILENAME_MAX];
-
-/*
- * Some common section flags by default
- */
-#define TEXT_FLAGS_WIN                                  \
-        (IMAGE_SCN_CNT_CODE                     |       \
-         IMAGE_SCN_ALIGN_16BYTES                |       \
-         IMAGE_SCN_MEM_EXECUTE                  |       \
-         IMAGE_SCN_MEM_READ)
-#define TEXT_FLAGS_DOS                                  \
-        (IMAGE_SCN_CNT_CODE)
-
-#define DATA_FLAGS_WIN                                  \
-        (IMAGE_SCN_CNT_INITIALIZED_DATA         |       \
-         IMAGE_SCN_ALIGN_4BYTES                 |       \
-         IMAGE_SCN_MEM_READ                     |       \
-         IMAGE_SCN_MEM_WRITE)
-#define DATA_FLAGS_DOS                                  \
-        (IMAGE_SCN_CNT_INITIALIZED_DATA)
-
-#define BSS_FLAGS_WIN                                   \
-        (IMAGE_SCN_CNT_UNINITIALIZED_DATA       |       \
-         IMAGE_SCN_ALIGN_4BYTES                 |       \
-         IMAGE_SCN_MEM_READ                     |       \
-         IMAGE_SCN_MEM_WRITE)
-#define BSS_FLAGS_DOS                                   \
-        (IMAGE_SCN_CNT_UNINITIALIZED_DATA)
-
-#define RDATA_FLAGS_WIN                                 \
-        (IMAGE_SCN_CNT_INITIALIZED_DATA         |       \
-         IMAGE_SCN_ALIGN_8BYTES                 |       \
-         IMAGE_SCN_MEM_READ)
-
-#define RDATA_FLAGS_DOS                                 \
-        (IMAGE_SCN_CNT_INITIALIZED_DATA)
-
-#define PDATA_FLAGS                                     \
-        (IMAGE_SCN_CNT_INITIALIZED_DATA         |       \
-         IMAGE_SCN_ALIGN_4BYTES                 |       \
-         IMAGE_SCN_MEM_READ)
-
-#define XDATA_FLAGS                                     \
-        (IMAGE_SCN_CNT_INITIALIZED_DATA         |       \
-         IMAGE_SCN_ALIGN_8BYTES                 |       \
-         IMAGE_SCN_MEM_READ)
-
-#define INFO_FLAGS                                      \
-        (IMAGE_SCN_ALIGN_1BYTES                 |       \
-         IMAGE_SCN_LNK_INFO                     |       \
-         IMAGE_SCN_LNK_REMOVE)
-
-#define TEXT_FLAGS      ((win32 | win64) ? TEXT_FLAGS_WIN  : TEXT_FLAGS_DOS)
-#define DATA_FLAGS      ((win32 | win64) ? DATA_FLAGS_WIN  : DATA_FLAGS_DOS)
-#define BSS_FLAGS       ((win32 | win64) ? BSS_FLAGS_WIN   : BSS_FLAGS_DOS)
-#define RDATA_FLAGS     ((win32 | win64) ? RDATA_FLAGS_WIN : RDATA_FLAGS_DOS)
-
-#define SECT_DELTA 32
-struct coff_Section **coff_sects;
-static int sectlen;
-int coff_nsects;
-
-struct SAA *coff_syms;
-uint32_t coff_nsyms;
-
-static int32_t def_seg;
-
-static int initsym;
-
-static struct RAA *bsym, *symval;
-
-struct SAA *coff_strs;
-static uint32_t strslen;
-
-static void coff_gen_init(void);
-static void coff_sect_write(struct coff_Section *, const uint8_t *, uint32_t);
-static void coff_write(void);
-static void coff_section_header(char *, int32_t, int32_t, int32_t, int32_t, int32_t, int, int32_t);
-static void coff_write_relocs(struct coff_Section *);
-static void coff_write_symbols(void);
-
-static void coff_win32_init(void)
-{
-    win32 = true;
-    win64 = false;
-    coff_gen_init();
-}
-
-static void coff_win64_init(void)
-{
-    win32 = false;
-    win64 = true;
-    coff_gen_init();
-    imagebase_sect = seg_alloc()+1;
-    define_label(WRT_IMAGEBASE, imagebase_sect, 0, NULL, false, false);
-}
-
-static void coff_std_init(void)
-{
-    win32 = win64 = false;
-    coff_gen_init();
-}
-
-static void coff_gen_init(void)
-{
-
-    coff_sects = NULL;
-    coff_nsects = sectlen = 0;
-    coff_syms = saa_init(sizeof(struct coff_Symbol));
-    coff_nsyms = 0;
-    bsym = raa_init();
-    symval = raa_init();
-    coff_strs = saa_init(1);
-    strslen = 0;
-    def_seg = seg_alloc();
-}
-
-static void coff_cleanup(void)
-{
-    struct coff_Reloc *r;
-    int i;
-
-    dfmt->cleanup();
-
-    coff_write();
-    for (i = 0; i < coff_nsects; i++) {
-        if (coff_sects[i]->data)
-            saa_free(coff_sects[i]->data);
-        while (coff_sects[i]->head) {
-            r = coff_sects[i]->head;
-            coff_sects[i]->head = coff_sects[i]->head->next;
-            nasm_free(r);
-        }
-        nasm_free(coff_sects[i]->name);
-        nasm_free(coff_sects[i]);
-    }
-    nasm_free(coff_sects);
-    saa_free(coff_syms);
-    raa_free(bsym);
-    raa_free(symval);
-    saa_free(coff_strs);
-}
-
-int coff_make_section(char *name, uint32_t flags)
-{
-    struct coff_Section *s;
-    size_t namelen;
-
-    s = nasm_zalloc(sizeof(*s));
-
-    if (flags != BSS_FLAGS)
-        s->data = saa_init(1);
-    s->tail = &s->head;
-    if (!strcmp(name, ".text"))
-        s->index = def_seg;
-    else
-        s->index = seg_alloc();
-    s->namepos = -1;
-    namelen = strlen(name);
-    if (namelen > 8) {
-        if (win32 || win64) {
-            s->namepos = strslen + 4;
-            saa_wbytes(coff_strs, name, namelen + 1);
-            strslen += namelen + 1;
-        } else {
-            namelen = 8;
-        }
-    }
-    s->name = nasm_malloc(namelen + 1);
-    strncpy(s->name, name, namelen);
-    s->name[namelen] = '\0';
-    s->flags = flags;
-
-    if (coff_nsects >= sectlen) {
-        sectlen += SECT_DELTA;
-        coff_sects = nasm_realloc(coff_sects, sectlen * sizeof(*coff_sects));
-    }
-    coff_sects[coff_nsects++] = s;
-
-    return coff_nsects - 1;
-}
-
-static inline int32_t coff_sectalign_flags(unsigned int align)
-{
-    return (ilog2_32(align) + 1) << 20;
-}
-
-static int32_t coff_section_names(char *name, int pass, int *bits)
-{
-    char *p;
-    uint32_t flags, align_and = ~0L, align_or = 0L;
-    int i;
-
-    /*
-     * Set default bits.
-     */
-    if (!name) {
-        if(win64)
-            *bits = 64;
-        else
-            *bits = 32;
-
-        return def_seg;
-    }
-
-    p = name;
-    while (*p && !nasm_isspace(*p))
-        p++;
-    if (*p)
-        *p++ = '\0';
-    if (strlen(name) > 8) {
-        if (!win32 && !win64) {
-            nasm_error(ERR_WARNING,
-                       "COFF section names limited to 8 characters:  truncating");
-            name[8] = '\0';
-        }
-    }
-    flags = 0;
-
-    while (*p && nasm_isspace(*p))
-        p++;
-    while (*p) {
-        char *q = p;
-        while (*p && !nasm_isspace(*p))
-            p++;
-        if (*p)
-            *p++ = '\0';
-        while (*p && nasm_isspace(*p))
-            p++;
-
-        if (!nasm_stricmp(q, "code") || !nasm_stricmp(q, "text")) {
-            flags = TEXT_FLAGS;
-        } else if (!nasm_stricmp(q, "data")) {
-            flags = DATA_FLAGS;
-        } else if (!nasm_stricmp(q, "rdata")) {
-            if (win32 | win64)
-                flags = RDATA_FLAGS;
-            else {
-                flags = DATA_FLAGS;     /* gotta do something */
-                nasm_error(ERR_NONFATAL, "standard COFF does not support"
-                      " read-only data sections");
-            }
-        } else if (!nasm_stricmp(q, "bss")) {
-            flags = BSS_FLAGS;
-        } else if (!nasm_stricmp(q, "info")) {
-            if (win32 | win64)
-                flags = INFO_FLAGS;
-            else {
-                flags = DATA_FLAGS;     /* gotta do something */
-                nasm_error(ERR_NONFATAL, "standard COFF does not support"
-                      " informational sections");
-            }
-        } else if (!nasm_strnicmp(q, "align=", 6)) {
-            if (!(win32 | win64))
-                nasm_error(ERR_NONFATAL, "standard COFF does not support"
-                      " section alignment specification");
-            else {
-                if (q[6 + strspn(q + 6, "0123456789")])
-                    nasm_error(ERR_NONFATAL,
-                          "argument to `align' is not numeric");
-                else {
-                    unsigned int align = atoi(q + 6);
-                    if (!align || ((align - 1) & align))
-                        nasm_error(ERR_NONFATAL, "argument to `align' is not a"
-                              " power of two");
-                    else if (align > 64)
-                        nasm_error(ERR_NONFATAL, "Win32 cannot align sections"
-                              " to better than 64-byte boundaries");
-                    else {
-                        align_and = ~0x00F00000L;
-                        align_or  = coff_sectalign_flags(align);
-                    }
-                }
-            }
-        }
-    }
-
-    for (i = 0; i < coff_nsects; i++)
-        if (!strcmp(name, coff_sects[i]->name))
-            break;
-    if (i == coff_nsects) {
-        if (!flags) {
-            if (!strcmp(name, ".data"))
-                flags = DATA_FLAGS;
-            else if (!strcmp(name, ".rdata"))
-                flags = RDATA_FLAGS;
-            else if (!strcmp(name, ".bss"))
-                flags = BSS_FLAGS;
-            else if (win64 && !strcmp(name, ".pdata"))
-                flags = PDATA_FLAGS;
-            else if (win64 && !strcmp(name, ".xdata"))
-                flags = XDATA_FLAGS;
-            else
-                flags = TEXT_FLAGS;
-        }
-        i = coff_make_section(name, flags);
-        if (flags)
-            coff_sects[i]->flags = flags;
-        coff_sects[i]->flags &= align_and;
-        coff_sects[i]->flags |= align_or;
-    } else if (pass == 1) {
-        /* Check if any flags are specified */
-        if (flags) {
-            unsigned int align_flags = flags & IMAGE_SCN_ALIGN_MASK;
-
-            /* Warn if non-alignment flags differ */
-            if ((flags ^ coff_sects[i]->flags) & ~IMAGE_SCN_ALIGN_MASK) {
-                nasm_error(ERR_WARNING, "section attributes ignored on"
-                    " redeclaration of section `%s'", name);
-            }
-            /* Check if alignment might be needed */
-            if (align_flags > IMAGE_SCN_ALIGN_1BYTES) {
-                unsigned int sect_align_flags = coff_sects[i]->flags & IMAGE_SCN_ALIGN_MASK;
-
-                /* Compute the actual alignment */
-                unsigned int align = 1u << ((align_flags - IMAGE_SCN_ALIGN_1BYTES) >> 20);
-
-                /* Update section header as needed */
-                if (align_flags > sect_align_flags) {
-                    coff_sects[i]->flags = (coff_sects[i]->flags & ~IMAGE_SCN_ALIGN_MASK) | align_flags;
-                }
-                /* Check if not already aligned */
-                if (coff_sects[i]->len % align) {
-                    unsigned int padding = (align - coff_sects[i]->len) % align;
-                    /* We need to write at most 8095 bytes */
-                    char buffer[8095];
-                    if (coff_sects[i]->flags & IMAGE_SCN_CNT_CODE) {
-                        /* Fill with INT 3 instructions */
-                        memset(buffer, 0xCC, padding);
-                    } else {
-                        memset(buffer, 0x00, padding);
-                    }
-                    saa_wbytes(coff_sects[i]->data, buffer, padding);
-                    coff_sects[i]->len += padding;
-                }
-            }
-        }
-    }
-
-    return coff_sects[i]->index;
-}
-
-static void coff_deflabel(char *name, int32_t segment, int64_t offset,
-                          int is_global, char *special)
-{
-    int pos = strslen + 4;
-    struct coff_Symbol *sym;
-
-    if (special)
-        nasm_error(ERR_NONFATAL, "COFF format does not support any"
-              " special symbol types");
-
-    if (name[0] == '.' && name[1] == '.' && name[2] != '@') {
-        if (strcmp(name,WRT_IMAGEBASE))
-            nasm_error(ERR_NONFATAL, "unrecognized special symbol `%s'", name);
-        return;
-    }
-
-    if (strlen(name) > 8) {
-        size_t nlen = strlen(name)+1;
-        saa_wbytes(coff_strs, name, nlen);
-        strslen += nlen;
-    } else
-        pos = -1;
-
-    sym = saa_wstruct(coff_syms);
-
-    sym->strpos = pos;
-    sym->namlen = strlen(name);
-    if (pos == -1)
-        strcpy(sym->name, name);
-    sym->is_global = !!is_global;
-    sym->type = 0;              /* Default to T_NULL (no type) */
-    if (segment == NO_SEG)
-        sym->section = -1;      /* absolute symbol */
-    else {
-        int i;
-        sym->section = 0;
-        for (i = 0; i < coff_nsects; i++)
-            if (segment == coff_sects[i]->index) {
-                sym->section = i + 1;
-                break;
-            }
-        if (!sym->section)
-            sym->is_global = true;
-    }
-    if (is_global == 2)
-        sym->value = offset;
-    else
-        sym->value = (sym->section == 0 ? 0 : offset);
-
-    /*
-     * define the references from external-symbol segment numbers
-     * to these symbol records.
-     */
-    if (sym->section == 0)
-        bsym = raa_write(bsym, segment, coff_nsyms);
-
-    if (segment != NO_SEG)
-        symval = raa_write(symval, segment, sym->section ? 0 : sym->value);
-
-    coff_nsyms++;
-}
-
-static int32_t coff_add_reloc(struct coff_Section *sect, int32_t segment,
-                              int16_t type)
-{
-    struct coff_Reloc *r;
-
-    r = *sect->tail = nasm_malloc(sizeof(struct coff_Reloc));
-    sect->tail = &r->next;
-    r->next = NULL;
-
-    r->address = sect->len;
-    if (segment == NO_SEG) {
-        r->symbol = 0, r->symbase = ABS_SYMBOL;
-    } else {
-        int i;
-        r->symbase = REAL_SYMBOLS;
-        for (i = 0; i < coff_nsects; i++) {
-            if (segment == coff_sects[i]->index) {
-                r->symbol = i * 2;
-                r->symbase = SECT_SYMBOLS;
-                break;
-            }
-        }
-        if (r->symbase == REAL_SYMBOLS)
-            r->symbol = raa_read(bsym, segment);
-    }
-    r->type = type;
-
-    sect->nrelocs++;
-
-    /*
-     * Return the fixup for standard COFF common variables.
-     */
-    if (r->symbase == REAL_SYMBOLS && !(win32 | win64))
-        return raa_read(symval, segment);
-
-    return 0;
-}
-
-static void coff_out(int32_t segto, const void *data,
-                     enum out_type type, uint64_t size,
-                     int32_t segment, int32_t wrt)
-{
-    struct coff_Section *s;
-    uint8_t mydata[8], *p;
-    int i;
-
-    if (wrt != NO_SEG && !win64) {
-        wrt = NO_SEG;           /* continue to do _something_ */
-        nasm_error(ERR_NONFATAL, "WRT not supported by COFF output formats");
-    }
-
-    /*
-     * handle absolute-assembly (structure definitions)
-     */
-    if (segto == NO_SEG) {
-        if (type != OUT_RESERVE)
-            nasm_error(ERR_NONFATAL, "attempt to assemble code in [ABSOLUTE]"
-                  " space");
-        return;
-    }
-
-    s = NULL;
-    for (i = 0; i < coff_nsects; i++) {
-        if (segto == coff_sects[i]->index) {
-            s = coff_sects[i];
-            break;
-        }
-    }
-    if (!s) {
-        int tempint;            /* ignored */
-        if (segto != coff_section_names(".text", 2, &tempint))
-            nasm_panic(0, "strange segment conditions in COFF driver");
-        else
-            s = coff_sects[coff_nsects - 1];
-    }
-
-    /* magically default to 'wrt ..imagebase' in .pdata and .xdata */
-    if (win64 && wrt == NO_SEG) {
-        if (!strcmp(s->name,".pdata") || !strcmp(s->name,".xdata"))
-            wrt = imagebase_sect;
-    }
-
-    if (!s->data && type != OUT_RESERVE) {
-        nasm_error(ERR_WARNING, "attempt to initialize memory in"
-              " BSS section `%s': ignored", s->name);
-        s->len += realsize(type, size);
-        return;
-    }
-
-    memset(mydata, 0, sizeof(mydata));
-
-    if (dfmt && dfmt->debug_output) {
-        struct coff_DebugInfo dinfo;
-        dinfo.segto = segto;
-        dinfo.seg = segment;
-        dinfo.section = s;
-
-        if (type == OUT_ADDRESS)
-            dinfo.size = abs((int)size);
-        else
-            dinfo.size = realsize(type, size);
-
-        dfmt->debug_output(type, &dinfo);
-    }
-
-    if (type == OUT_RESERVE) {
-        if (s->data) {
-            nasm_error(ERR_WARNING, "uninitialised space declared in"
-                  " non-BSS section `%s': zeroing", s->name);
-            coff_sect_write(s, NULL, size);
-        } else
-            s->len += size;
-    } else if (type == OUT_RAWDATA) {
-        if (segment != NO_SEG)
-            nasm_panic(0, "OUT_RAWDATA with other than NO_SEG");
-        coff_sect_write(s, data, size);
-    } else if (type == OUT_ADDRESS) {
-        int asize = abs((int)size);
-        if (!win64) {
-            if (asize != 4 && (segment != NO_SEG || wrt != NO_SEG)) {
-                nasm_error(ERR_NONFATAL, "COFF format does not support non-32-bit"
-                      " relocations");
-            } else {
-                int32_t fix = 0;
-                if (segment != NO_SEG || wrt != NO_SEG) {
-                    if (wrt != NO_SEG) {
-                        nasm_error(ERR_NONFATAL, "COFF format does not support"
-                              " WRT types");
-                    } else if (segment % 2) {
-                        nasm_error(ERR_NONFATAL, "COFF format does not support"
-                              " segment base references");
-                    } else
-                        fix = coff_add_reloc(s, segment, IMAGE_REL_I386_DIR32);
-                }
-                p = mydata;
-                WRITELONG(p, *(int64_t *)data + fix);
-                coff_sect_write(s, mydata, asize);
-            }
-        } else {
-            int32_t fix = 0;
-            p = mydata;
-            if (asize == 8) {
-                if (wrt == imagebase_sect) {
-                    nasm_error(ERR_NONFATAL, "operand size mismatch: 'wrt "
-                               WRT_IMAGEBASE "' is a 32-bit operand");
-                }
-                fix = coff_add_reloc(s, segment, IMAGE_REL_AMD64_ADDR64);
-                WRITEDLONG(p, *(int64_t *)data + fix);
-                coff_sect_write(s, mydata, asize);
-            } else {
-                fix = coff_add_reloc(s, segment,
-                        wrt == imagebase_sect ?	IMAGE_REL_AMD64_ADDR32NB:
-                                                IMAGE_REL_AMD64_ADDR32);
-                WRITELONG(p, *(int64_t *)data + fix);
-                coff_sect_write(s, mydata, asize);
-            }
-        }
-    } else if (type == OUT_REL2ADR) {
-        nasm_error(ERR_NONFATAL, "COFF format does not support 16-bit"
-              " relocations");
-    } else if (type == OUT_REL4ADR) {
-        if (segment == segto && !(win64))  /* Acceptable for RIP-relative */
-            nasm_panic(0, "intra-segment OUT_REL4ADR");
-        else if (segment == NO_SEG && win32)
-            nasm_error(ERR_NONFATAL, "Win32 COFF does not correctly support"
-                  " relative references to absolute addresses");
-        else {
-            int32_t fix = 0;
-            if (segment != NO_SEG && segment % 2) {
-                nasm_error(ERR_NONFATAL, "COFF format does not support"
-                      " segment base references");
-            } else
-                fix = coff_add_reloc(s, segment,
-                        win64 ? IMAGE_REL_AMD64_REL32 : IMAGE_REL_I386_REL32);
-            p = mydata;
-            if (win32 | win64) {
-                WRITELONG(p, *(int64_t *)data + 4 - size + fix);
-            } else {
-                WRITELONG(p, *(int64_t *)data - (size + s->len) + fix);
-            }
-            coff_sect_write(s, mydata, 4L);
-        }
-
-    }
-}
-
-static void coff_sect_write(struct coff_Section *sect,
-                            const uint8_t *data, uint32_t len)
-{
-    saa_wbytes(sect->data, data, len);
-    sect->len += len;
-}
-
-typedef struct tagString {
-    struct tagString *next;
-    int len;
-    char *String;
-} STRING;
-
-#define EXPORT_SECTION_NAME ".drectve"
-#define EXPORT_SECTION_FLAGS INFO_FLAGS
-/*
- * #define EXPORT_SECTION_NAME ".text"
- * #define EXPORT_SECTION_FLAGS TEXT_FLAGS
- */
-
-static STRING *Exports = NULL;
-static struct coff_Section *directive_sec;
-static void AddExport(char *name)
-{
-    STRING *rvp = Exports, *newS;
-
-    newS = (STRING *) nasm_malloc(sizeof(STRING));
-    newS->len = strlen(name);
-    newS->next = NULL;
-    newS->String = (char *)nasm_malloc(newS->len + 1);
-    strcpy(newS->String, name);
-    if (rvp == NULL) {
-        int i;
-
-        for (i = 0; i < coff_nsects; i++) {
-            if (!strcmp(EXPORT_SECTION_NAME, coff_sects[i]->name))
-                break;
-        }
-
-        if (i == coff_nsects)
-            i = coff_make_section(EXPORT_SECTION_NAME, EXPORT_SECTION_FLAGS);
-
-        directive_sec = coff_sects[i];
-        Exports = newS;
-    } else {
-        while (rvp->next) {
-            if (!strcmp(rvp->String, name))
-                return;
-            rvp = rvp->next;
-        }
-        rvp->next = newS;
-    }
-}
-
-static void BuildExportTable(STRING **rvp)
-{
-    STRING *p, *t;
-
-    if (!rvp || !*rvp)
-        return;
-
-    list_for_each_safe(p, t, *rvp) {
-        coff_sect_write(directive_sec, (uint8_t *)"-export:", 8);
-        coff_sect_write(directive_sec, (uint8_t *)p->String, p->len);
-        coff_sect_write(directive_sec, (uint8_t *)" ", 1);
-        nasm_free(p->String);
-        nasm_free(p);
-    }
-
-    *rvp = NULL;
-}
-
-static enum directive_result
-coff_directives(enum directives directive, char *value, int pass)
-{
-    switch (directive) {
-    case D_EXPORT:
-    {
-        char *q, *name;
-
-        if (pass == 2)
-            return DIRR_OK;           /* ignore in pass two */
-        name = q = value;
-        while (*q && !nasm_isspace(*q))
-            q++;
-        if (nasm_isspace(*q)) {
-            *q++ = '\0';
-            while (*q && nasm_isspace(*q))
-                q++;
-        }
-
-        if (!*name) {
-            nasm_error(ERR_NONFATAL, "`export' directive requires export name");
-            return DIRR_ERROR;
-        }
-        if (*q) {
-            nasm_error(ERR_NONFATAL, "unrecognized export qualifier `%s'", q);
-            return DIRR_ERROR;
-        }
-        AddExport(name);
-        return DIRR_OK;
-    }
-    case D_SAFESEH:
-    {
-        static int sxseg=-1;
-        int i;
-
-        if (!win32) /* Only applicable for -f win32 */
-            return 0;
-
-        if (sxseg == -1) {
-            for (i = 0; i < coff_nsects; i++)
-                if (!strcmp(".sxdata",coff_sects[i]->name))
-                    break;
-            if (i == coff_nsects)
-                sxseg = coff_make_section(".sxdata", IMAGE_SCN_LNK_INFO);
-            else
-                sxseg = i;
-        }
-        /*
-         * pass0 == 2 is the only time when the full set of symbols are
-         * guaranteed to be present; it is the final output pass.
-         */
-        if (pass0 == 2) {
-            uint32_t n;
-            saa_rewind(coff_syms);
-            for (n = 0; n < coff_nsyms; n++) {
-                struct coff_Symbol *sym = saa_rstruct(coff_syms);
-                bool equals;
-
-                /*
-                 * sym->strpos is biased by 4, because symbol
-                 * table is prefixed with table length
-                 */
-                if (sym->strpos >=4) {
-                    char *name = nasm_malloc(sym->namlen+1);
-                    saa_fread(coff_strs, sym->strpos-4, name, sym->namlen);
-                    name[sym->namlen] = '\0';
-                    equals = !strcmp(value,name);
-                    nasm_free(name);
-                } else {
-                    equals = !strcmp(value,sym->name);
-                }
-
-                if (equals) {
-                    /*
-                     * this value arithmetics effectively reflects
-                     * initsym in coff_write(): 2 for file, 1 for
-                     * .absolute and two per each section
-                     */
-                    unsigned char value[4],*p=value;
-                    WRITELONG(p,n + 2 + 1 + coff_nsects*2);
-                    coff_sect_write(coff_sects[sxseg],value,4);
-                    sym->type = 0x20;
-                    break;
-                }
-            }
-            if (n == coff_nsyms) {
-                nasm_error(ERR_NONFATAL,
-                           "`safeseh' directive requires valid symbol");
-                return DIRR_ERROR;
-            }
-        }
-        return DIRR_OK;
-    }
-    default:
-        return DIRR_UNKNOWN;
-    }
-}
-
-/* handle relocations storm, valid for win32/64 only */
-static inline void coff_adjust_relocs(struct coff_Section *s)
-{
-    if (s->nrelocs < IMAGE_SCN_MAX_RELOC)
-        return;
-#ifdef OF_COFF
-    else
-    {
-        if (ofmt == &of_coff)
-            nasm_fatal(0,
-                       "Too many relocations (%d) for section `%s'",
-                       s->nrelocs, s->name);
-    }
-#endif
-
-    s->flags |= IMAGE_SCN_LNK_NRELOC_OVFL;
-    s->nrelocs++;
-}
-
-static void coff_write(void)
-{
-    int32_t pos, sympos, vsize;
-    int i;
-
-    /* fill in the .drectve section with -export's */
-    BuildExportTable(&Exports);
-
-    if (win32) {
-        /* add default value for @feat.00, this allows to 'link /safeseh' */
-        uint32_t n;
-
-        saa_rewind(coff_syms);
-        for (n = 0; n < coff_nsyms; n++) {
-            struct coff_Symbol *sym = saa_rstruct(coff_syms);
-            if (sym->strpos == -1 && !strcmp("@feat.00",sym->name))
-                break;
-        }
-        if (n == coff_nsyms)
-            coff_deflabel("@feat.00", NO_SEG, 1, 0, NULL);
-    }
-
-    /*
-     * Work out how big the file will get.
-     * Calculate the start of the `real' symbols at the same time.
-     * Check for massive relocations.
-     */
-    pos = 0x14 + 0x28 * coff_nsects;
-    initsym = 3;                /* two for the file, one absolute */
-    for (i = 0; i < coff_nsects; i++) {
-        if (coff_sects[i]->data) {
-            coff_adjust_relocs(coff_sects[i]);
-            coff_sects[i]->pos = pos;
-            pos += coff_sects[i]->len;
-            coff_sects[i]->relpos = pos;
-            pos += 10 * coff_sects[i]->nrelocs;
-        } else
-            coff_sects[i]->pos = coff_sects[i]->relpos = 0L;
-        initsym += 2;           /* two for each section */
-    }
-    sympos = pos;
-
-    /*
-     * Output the COFF header.
-     */
-    if (win64)
-        i = IMAGE_FILE_MACHINE_AMD64;
-    else
-        i = IMAGE_FILE_MACHINE_I386;
-    fwriteint16_t(i,                    ofile); /* machine type */
-    fwriteint16_t(coff_nsects,               ofile); /* number of sections */
-    fwriteint32_t(time(NULL),           ofile); /* time stamp */
-    fwriteint32_t(sympos,               ofile);
-    fwriteint32_t(coff_nsyms + initsym,      ofile);
-    fwriteint16_t(0,                    ofile); /* no optional header */
-    /* Flags: 32-bit, no line numbers. Win32 doesn't even bother with them. */
-    fwriteint16_t((win32 | win64) ? 0 : 0x104, ofile);
-
-    /*
-     * Output the section headers.
-     */
-    vsize = 0L;
-    for (i = 0; i < coff_nsects; i++) {
-        coff_section_header(coff_sects[i]->name, coff_sects[i]->namepos, vsize, coff_sects[i]->len,
-                            coff_sects[i]->pos, coff_sects[i]->relpos,
-                            coff_sects[i]->nrelocs, coff_sects[i]->flags);
-        vsize += coff_sects[i]->len;
-    }
-
-    /*
-     * Output the sections and their relocations.
-     */
-    for (i = 0; i < coff_nsects; i++)
-        if (coff_sects[i]->data) {
-            saa_fpwrite(coff_sects[i]->data, ofile);
-            coff_write_relocs(coff_sects[i]);
-        }
-
-    /*
-     * Output the symbol and string tables.
-     */
-    coff_write_symbols();
-    fwriteint32_t(strslen + 4, ofile);     /* length includes length count */
-    saa_fpwrite(coff_strs, ofile);
-}
-
-static void coff_section_header(char *name, int32_t namepos, int32_t vsize,
-                                int32_t datalen, int32_t datapos,
-                                int32_t relpos, int nrelocs, int32_t flags)
-{
-    char padname[8];
-
-    (void)vsize;
-
-    if (namepos == -1) {
-        strncpy(padname, name, 8);
-        nasm_write(padname, 8, ofile);
-    } else {
-        /*
-         * If name is longer than 8 bytes, write '/' followed
-         * by offset into the strings table represented as
-         * decimal number.
-         */
-        namepos = namepos % 100000000;
-        padname[0] = '/';
-        padname[1] = '0' + (namepos / 1000000);
-        namepos = namepos % 1000000;
-        padname[2] = '0' + (namepos / 100000);
-        namepos = namepos % 100000;
-        padname[3] = '0' + (namepos / 10000);
-        namepos = namepos % 10000;
-        padname[4] = '0' + (namepos / 1000);
-        namepos = namepos % 1000;
-        padname[5] = '0' + (namepos / 100);
-        namepos = namepos % 100;
-        padname[6] = '0' + (namepos / 10);
-        namepos = namepos % 10;
-        padname[7] = '0' + (namepos);
-        nasm_write(padname, 8, ofile);
-    }
-
-    fwriteint32_t(0,            ofile); /* Virtual size field - set to 0 or vsize */
-    fwriteint32_t(0L,           ofile); /* RVA/offset - we ignore */
-    fwriteint32_t(datalen,      ofile);
-    fwriteint32_t(datapos,      ofile);
-    fwriteint32_t(relpos,       ofile);
-    fwriteint32_t(0L,           ofile); /* no line numbers - we don't do 'em */
-
-    /*
-     * a special case -- if there are too many relocs
-     * we have to put IMAGE_SCN_MAX_RELOC here and write
-     * the real relocs number into VirtualAddress of first
-     * relocation
-     */
-    if (flags & IMAGE_SCN_LNK_NRELOC_OVFL)
-        fwriteint16_t(IMAGE_SCN_MAX_RELOC, ofile);
-    else
-        fwriteint16_t(nrelocs,  ofile);
-
-    fwriteint16_t(0,            ofile); /* again, no line numbers */
-    fwriteint32_t(flags,        ofile);
-}
-
-static void coff_write_relocs(struct coff_Section *s)
-{
-    struct coff_Reloc *r;
-
-    /* a real number of relocations if needed */
-    if (s->flags & IMAGE_SCN_LNK_NRELOC_OVFL) {
-        fwriteint32_t(s->nrelocs, ofile);
-        fwriteint32_t(0, ofile);
-        fwriteint16_t(0, ofile);
-    }
-
-    for (r = s->head; r; r = r->next) {
-        fwriteint32_t(r->address, ofile);
-        fwriteint32_t(r->symbol + (r->symbase == REAL_SYMBOLS ? initsym :
-                                   r->symbase == ABS_SYMBOL   ? initsym - 1 :
-                                   r->symbase == SECT_SYMBOLS ? 2 : 0),
-                      ofile);
-        fwriteint16_t(r->type, ofile);
-    }
-}
-
-static void coff_symbol(char *name, int32_t strpos, int32_t value,
-                        int section, int type, int storageclass, int aux)
-{
-    char padname[8];
-
-    if (name) {
-        strncpy(padname, name, 8);
-        nasm_write(padname, 8, ofile);
-    } else {
-        fwriteint32_t(0, ofile);
-        fwriteint32_t(strpos, ofile);
-    }
-
-    fwriteint32_t(value,        ofile);
-    fwriteint16_t(section,      ofile);
-    fwriteint16_t(type,         ofile);
-
-    fputc(storageclass, ofile);
-    fputc(aux, ofile);
-}
-
-static void coff_write_symbols(void)
-{
-    char filename[18];
-    uint32_t i;
-
-    /*
-     * The `.file' record, and the file name auxiliary record.
-     */
-    coff_symbol(".file", 0L, 0L, -2, 0, 0x67, 1);
-    strncpy(filename, coff_infile, 18);
-    nasm_write(filename, 18, ofile);
-
-    /*
-     * The section records, with their auxiliaries.
-     */
-    memset(filename, 0, 18);    /* useful zeroed buffer */
-
-    for (i = 0; i < (uint32_t) coff_nsects; i++) {
-        coff_symbol(coff_sects[i]->name, 0L, 0L, i + 1, 0, 3, 1);
-        fwriteint32_t(coff_sects[i]->len,    ofile);
-        fwriteint16_t(coff_sects[i]->nrelocs,ofile);
-        nasm_write(filename, 12, ofile);
-    }
-
-    /*
-     * The absolute symbol, for relative-to-absolute relocations.
-     */
-    coff_symbol(".absolut", 0L, 0L, -1, 0, 3, 0);
-
-    /*
-     * The real symbols.
-     */
-    saa_rewind(coff_syms);
-    for (i = 0; i < coff_nsyms; i++) {
-        struct coff_Symbol *sym = saa_rstruct(coff_syms);
-        coff_symbol(sym->strpos == -1 ? sym->name : NULL,
-                    sym->strpos, sym->value, sym->section,
-                    sym->type, sym->is_global ? 2 : 3, 0);
-    }
-}
-
-static void coff_sectalign(int32_t seg, unsigned int value)
-{
-    struct coff_Section *s = NULL;
-    uint32_t align;
-    int i;
-
-    for (i = 0; i < coff_nsects; i++) {
-        if (coff_sects[i]->index == seg) {
-            s = coff_sects[i];
-            break;
-        }
-    }
-
-    if (!s || !is_power2(value))
-        return;
-
-    /* DOS has limitation on 64 bytes */
-    if (!(win32 | win64) && value > 64)
-        return;
-
-    align = (s->flags & IMAGE_SCN_ALIGN_MASK);
-    value = coff_sectalign_flags(value);
-    if (value > align)
-        s->flags = (s->flags & ~IMAGE_SCN_ALIGN_MASK) | value;
-}
-
-static int32_t coff_segbase(int32_t segment)
-{
-    return segment;
-}
-
-static void coff_std_filename(char *inname, char *outname)
-{
-    strcpy(coff_infile, inname);
-    standard_extension(inname, outname, ".o");
-    strcpy(coff_outfile, outname);
-}
-
-static void coff_win32_filename(char *inname, char *outname)
-{
-    strcpy(coff_infile, inname);
-    standard_extension(inname, outname, ".obj");
-    strcpy(coff_outfile, outname);
-}
-
-extern macros_t coff_stdmac[];
-
-static int coff_set_info(enum geninfo type, char **val)
-{
-    (void)type;
-    (void)val;
-    return 0;
-}
-#endif /* defined(OF_COFF) || defined(OF_WIN32) */
-
-#ifdef OF_COFF
-
-const struct ofmt of_coff = {
-    "COFF (i386) object files (e.g. DJGPP for DOS)",
-    "coff",
-    0,
-    32,
-    null_debug_arr,
-    &null_debug_form,
-    coff_stdmac,
-    coff_std_init,
-    coff_set_info,
-    nasm_do_legacy_output,
-    coff_out,
-    coff_deflabel,
-    coff_section_names,
-    coff_sectalign,
-    coff_segbase,
-    coff_directives,
-    coff_std_filename,
-    coff_cleanup,
-    NULL                        /* pragma list */
-};
-
-#endif
-
-extern const struct dfmt df_cv8;
-
-#ifdef OF_WIN32
-
-static const struct dfmt * const win32_debug_arr[2] = { &df_cv8, NULL };
-
-const struct ofmt of_win32 = {
-    "Microsoft Win32 (i386) object files",
-    "win32",
-    0,
-    32,
-    win32_debug_arr,
-    &df_cv8,
-    coff_stdmac,
-    coff_win32_init,
-    coff_set_info,
-    nasm_do_legacy_output,
-    coff_out,
-    coff_deflabel,
-    coff_section_names,
-    coff_sectalign,
-    coff_segbase,
-    coff_directives,
-    coff_win32_filename,
-    coff_cleanup,
-    NULL                        /* pragma list */
-};
-
-#endif
-
-#ifdef OF_WIN64
-
-static const struct dfmt * const win64_debug_arr[2] = { &df_cv8, NULL };
-
-const struct ofmt of_win64 = {
-    "Microsoft Win64 (x86-64) object files",
-    "win64",
-    0,
-    64,
-    win64_debug_arr,
-    &df_cv8,
-    coff_stdmac,
-    coff_win64_init,
-    coff_set_info,
-    nasm_do_legacy_output,
-    coff_out,
-    coff_deflabel,
-    coff_section_names,
-    coff_sectalign,
-    coff_segbase,
-    coff_directives,
-    coff_win32_filename,
-    coff_cleanup,
-    NULL                        /* pragma list */
-};
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/output/outcoff.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-;; --------------------------------------------------------------------------
-;;   
-;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;     
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-OUT: coff win32 win64
-%define __SECT__ [section .text]
-%macro __NASM_CDecl__ 1
-%endmacro
-%imacro export 1+.nolist
-[export %1]
-%endmacro
-%imacro safeseh 1.nolist
-[safeseh %1]
-%endmacro
--- a/nasmbuild/nasm-2.13rc9/output/outdbg.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,286 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * outdbg.c	output routines for the Netwide Assembler to produce
- *		a debugging trace
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "outform.h"
-#include "outlib.h"
-
-#ifdef OF_DBG
-
-struct Section {
-    struct Section *next;
-    int32_t number;
-    char *name;
-} *dbgsect;
-
-const struct ofmt of_dbg;
-static void dbg_init(void)
-{
-    dbgsect = NULL;
-    fprintf(ofile, "NASM Output format debug dump\n");
-}
-
-static void dbg_cleanup(void)
-{
-    dfmt->cleanup();
-    while (dbgsect) {
-        struct Section *tmp = dbgsect;
-        dbgsect = dbgsect->next;
-        nasm_free(tmp->name);
-        nasm_free(tmp);
-    }
-}
-
-static int32_t dbg_section_names(char *name, int pass, int *bits)
-{
-    int seg;
-
-    /*
-     * We must have an initial default: let's make it 16.
-     */
-    if (!name)
-        *bits = 16;
-
-    if (!name)
-        fprintf(ofile, "section_name on init: returning %d\n",
-                seg = seg_alloc());
-    else {
-        int n = strcspn(name, " \t");
-        char *sname = nasm_strndup(name, n);
-        struct Section *s;
-
-        seg = NO_SEG;
-        for (s = dbgsect; s; s = s->next)
-            if (!strcmp(s->name, sname))
-                seg = s->number;
-
-        if (seg == NO_SEG) {
-            s = nasm_malloc(sizeof(*s));
-            s->name = sname;
-            s->number = seg = seg_alloc();
-            s->next = dbgsect;
-            dbgsect = s;
-            fprintf(ofile, "section_name %s (pass %d): returning %d\n",
-                    name, pass, seg);
-        }
-    }
-    return seg;
-}
-
-static void dbg_deflabel(char *name, int32_t segment, int64_t offset,
-                         int is_global, char *special)
-{
-    fprintf(ofile, "deflabel %s := %08"PRIx32":%016"PRIx64" %s (%d)%s%s\n",
-            name, segment, offset,
-            is_global == 2 ? "common" : is_global ? "global" : "local",
-            is_global, special ? ": " : "", special);
-}
-
-static void dbg_out(int32_t segto, const void *data,
-		    enum out_type type, uint64_t size,
-                    int32_t segment, int32_t wrt)
-{
-    int32_t ldata;
-    int id;
-
-    if (type == OUT_ADDRESS)
-        fprintf(ofile, "out to %"PRIx32", len = %d: ", segto, (int)abs((int)size));
-    else
-        fprintf(ofile, "out to %"PRIx32", len = %"PRIu64": ", segto, size);
-
-    switch (type) {
-    case OUT_RESERVE:
-        fprintf(ofile, "reserved.\n");
-        break;
-    case OUT_RAWDATA:
-        fprintf(ofile, "raw data = ");
-        while (size--) {
-            id = *(uint8_t *)data;
-            data = (char *)data + 1;
-            fprintf(ofile, "%02x ", id);
-        }
-        fprintf(ofile, "\n");
-        break;
-    case OUT_ADDRESS:
-	ldata = *(int64_t *)data;
-        fprintf(ofile, "addr %08"PRIx32" (seg %08"PRIx32", wrt %08"PRIx32")\n",
-                ldata, segment, wrt);
-        break;
-    case OUT_REL1ADR:
-        fprintf(ofile, "rel1adr %02"PRIx8" (seg %08"PRIx32")\n",
-		(uint8_t)*(int64_t *)data, segment);
-        break;
-    case OUT_REL2ADR:
-        fprintf(ofile, "rel2adr %04"PRIx16" (seg %08"PRIx32")\n",
-		(uint16_t)*(int64_t *)data, segment);
-        break;
-    case OUT_REL4ADR:
-        fprintf(ofile, "rel4adr %08"PRIx32" (seg %08"PRIx32")\n",
-		(uint32_t)*(int64_t *)data,
-                segment);
-        break;
-    case OUT_REL8ADR:
-        fprintf(ofile, "rel8adr %016"PRIx64" (seg %08"PRIx32")\n",
-		(uint64_t)*(int64_t *)data, segment);
-        break;
-    default:
-        fprintf(ofile, "unknown\n");
-        break;
-    }
-}
-
-static void dbg_sectalign(int32_t seg, unsigned int value)
-{
-    fprintf(ofile, "set alignment (%d) for segment (%u)\n",
-            seg, value);
-}
-
-static int32_t dbg_segbase(int32_t segment)
-{
-    return segment;
-}
-
-static enum directive_result
-dbg_directive(enum directives directive, char *value, int pass)
-{
-    fprintf(ofile, "directive [%s] value [%s] (pass %d)\n",
-            directives[directive], value, pass);
-    return DIRR_OK;
-}
-
-static void dbg_filename(char *inname, char *outname)
-{
-    standard_extension(inname, outname, ".dbg");
-}
-
-static int dbg_set_info(enum geninfo type, char **val)
-{
-    (void)type;
-    (void)val;
-    return 0;
-}
-
-static const char * const types[] = {
-    "unknown", "label", "byte", "word", "dword", "float", "qword", "tbyte"
-};
-static void dbgdbg_init(void)
-{
-    fprintf(ofile, "   With debug info\n");
-}
-static void dbgdbg_cleanup(void)
-{
-}
-
-static void dbgdbg_linnum(const char *lnfname, int32_t lineno, int32_t segto)
-{
-    fprintf(ofile, "dbglinenum %s(%"PRId32") := %08"PRIx32"\n",
-	    lnfname, lineno, segto);
-}
-static void dbgdbg_deflabel(char *name, int32_t segment,
-                            int64_t offset, int is_global, char *special)
-{
-    fprintf(ofile, "dbglabel %s := %08"PRIx32":%016"PRIx64" %s (%d)%s%s\n",
-            name,
-            segment, offset,
-            is_global == 2 ? "common" : is_global ? "global" : "local",
-            is_global, special ? ": " : "", special);
-}
-static void dbgdbg_define(const char *type, const char *params)
-{
-    fprintf(ofile, "dbgdirective [%s] value [%s]\n", type, params);
-}
-static void dbgdbg_output(int output_type, void *param)
-{
-    (void)output_type;
-    (void)param;
-}
-static void dbgdbg_typevalue(int32_t type)
-{
-    fprintf(ofile, "new type: %s(%"PRIX32")\n",
-            types[TYM_TYPE(type) >> 3], TYM_ELEMENTS(type));
-}
-static const struct dfmt debug_debug_form = {
-    "Trace of all info passed to debug stage",
-    "debug",
-    dbgdbg_init,
-    dbgdbg_linnum,
-    dbgdbg_deflabel,
-    dbgdbg_define,
-    dbgdbg_typevalue,
-    dbgdbg_output,
-    dbgdbg_cleanup,
-    NULL                        /* pragma list */
-};
-
-static const struct dfmt * const debug_debug_arr[3] = {
-    &debug_debug_form,
-    &null_debug_form,
-    NULL
-};
-
-const struct ofmt of_dbg = {
-    "Trace of all info passed to output stage",
-    "dbg",
-    OFMT_TEXT,
-    64,
-    debug_debug_arr,
-    &debug_debug_form,
-    NULL,
-    dbg_init,
-    dbg_set_info,
-    nasm_do_legacy_output,
-    dbg_out,
-    dbg_deflabel,
-    dbg_section_names,
-    dbg_sectalign,
-    dbg_segbase,
-    dbg_directive,
-    dbg_filename,
-    dbg_cleanup,
-    NULL                        /* pragma list */
-};
-
-#endif                          /* OF_DBG */
--- a/nasmbuild/nasm-2.13rc9/output/outelf.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3371 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * Common code for outelf32 and outelf64
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "saa.h"
-#include "raa.h"
-#include "stdscan.h"
-#include "eval.h"
-#include "outform.h"
-#include "outlib.h"
-#include "rbtree.h"
-#include "ver.h"
-
-#include "dwarf.h"
-#include "stabs.h"
-#include "outelf.h"
-#include "elf.h"
-
-#if defined(OF_ELF32) || defined(OF_ELF64) || defined(OF_ELFX32)
-
-#define SECT_DELTA 32
-static struct elf_section **sects;
-static int nsects, sectlen;
-
-#define SHSTR_DELTA 256
-static char *shstrtab;
-static int shstrtablen, shstrtabsize;
-
-static struct SAA *syms;
-static uint32_t nlocals, nglobs, ndebugs; /* Symbol counts */
-
-static int32_t def_seg;
-
-static struct RAA *bsym;
-
-static struct SAA *strs;
-static uint32_t strslen;
-
-static struct elf_symbol *fwds;
-
-static char elf_module[FILENAME_MAX];
-
-extern const struct ofmt of_elf32;
-extern const struct ofmt of_elf64;
-extern const struct ofmt of_elfx32;
-
-static struct ELF_SECTDATA {
-    void                *data;
-    int64_t             len;
-    bool                is_saa;
-} *elf_sects;
-
-static int elf_nsect, nsections;
-static int64_t elf_foffs;
-
-static void elf_write(void);
-static void elf_sect_write(struct elf_section *, const void *, size_t);
-static void elf_sect_writeaddr(struct elf_section *, int64_t, size_t);
-static void elf_section_header(int, int, uint64_t, void *, bool, uint64_t, int, int,
-                               int, int);
-static void elf_write_sections(void);
-static struct SAA *elf_build_symtab(int32_t *, int32_t *);
-static struct SAA *elf_build_reltab(uint64_t *, struct elf_reloc *);
-static void add_sectname(const char *, const char *);
-
-struct erel {
-    int                 offset;
-    int                 info;
-};
-
-struct symlininfo {
-    int                 offset;
-    int                 section;        /* index into sects[] */
-    int                 segto;          /* internal section number */
-    char                *name;          /* shallow-copied pointer of section name */
-};
-
-struct linelist {
-    struct linelist     *next;
-    struct linelist     *last;
-    struct symlininfo   info;
-    char                *filename;
-    int                 line;
-};
-
-struct sectlist {
-    struct SAA          *psaa;
-    int                 section;
-    int                 line;
-    int                 offset;
-    int                 file;
-    struct sectlist     *next;
-    struct sectlist     *last;
-};
-
-/* common debug variables */
-static int currentline = 1;
-static int debug_immcall = 0;
-
-/* stabs debug variables */
-static struct linelist *stabslines = 0;
-static int numlinestabs = 0;
-static char *stabs_filename = 0;
-static uint8_t *stabbuf = 0, *stabstrbuf = 0, *stabrelbuf = 0;
-static int stablen, stabstrlen, stabrellen;
-
-/* dwarf debug variables */
-static struct linelist *dwarf_flist = 0, *dwarf_clist = 0, *dwarf_elist = 0;
-static struct sectlist *dwarf_fsect = 0, *dwarf_csect = 0, *dwarf_esect = 0;
-static int dwarf_numfiles = 0, dwarf_nsections;
-static uint8_t *arangesbuf = 0, *arangesrelbuf = 0, *pubnamesbuf = 0, *infobuf = 0,  *inforelbuf = 0,
-               *abbrevbuf = 0, *linebuf = 0, *linerelbuf = 0, *framebuf = 0, *locbuf = 0;
-static int8_t line_base = -5, line_range = 14, opcode_base = 13;
-static int arangeslen, arangesrellen, pubnameslen, infolen, inforellen,
-           abbrevlen, linelen, linerellen, framelen, loclen;
-static int64_t dwarf_infosym, dwarf_abbrevsym, dwarf_linesym;
-
-static struct elf_symbol *lastsym;
-
-/* common debugging routines */
-static void debug_typevalue(int32_t);
-
-/* stabs debugging routines */
-static void stabs_linenum(const char *filename, int32_t linenumber, int32_t);
-static void stabs_output(int, void *);
-static void stabs_generate(void);
-static void stabs_cleanup(void);
-
-/* dwarf debugging routines */
-static void dwarf_init(void);
-static void dwarf_linenum(const char *filename, int32_t linenumber, int32_t);
-static void dwarf_output(int, void *);
-static void dwarf_generate(void);
-static void dwarf_cleanup(void);
-static void dwarf_findfile(const char *);
-static void dwarf_findsect(const int);
-
-static bool is_elf64(void);
-static bool is_elf32(void);
-static bool is_elfx32(void);
-
-static bool dfmt_is_stabs(void);
-static bool dfmt_is_dwarf(void);
-
-/*
- * Special NASM section numbers which are used to define ELF special
- * symbols.
- */
-static int32_t elf_gotpc_sect, elf_gotoff_sect;
-static int32_t elf_got_sect, elf_plt_sect;
-static int32_t elf_sym_sect, elf_gottpoff_sect, elf_tlsie_sect;
-
-uint8_t elf_osabi = 0;      /* Default OSABI = 0 (System V or Linux) */
-uint8_t elf_abiver = 0;     /* Current ABI version */
-
-const struct elf_known_section elf_known_sections[] = {
-    { ".text",    SHT_PROGBITS, SHF_ALLOC|SHF_EXECINSTR,     16 },
-    { ".rodata",  SHT_PROGBITS, SHF_ALLOC,                    4 },
-    { ".lrodata", SHT_PROGBITS, SHF_ALLOC,                    4 },
-    { ".data",    SHT_PROGBITS, SHF_ALLOC|SHF_WRITE,          4 },
-    { ".ldata",   SHT_PROGBITS, SHF_ALLOC|SHF_WRITE,          4 },
-    { ".bss",     SHT_NOBITS,   SHF_ALLOC|SHF_WRITE,          4 },
-    { ".lbss",    SHT_NOBITS,   SHF_ALLOC|SHF_WRITE,          4 },
-    { ".tdata",   SHT_PROGBITS, SHF_ALLOC|SHF_WRITE|SHF_TLS,  4 },
-    { ".tbss",    SHT_NOBITS,   SHF_ALLOC|SHF_WRITE|SHF_TLS,  4 },
-    { ".comment", SHT_PROGBITS, 0,                            1 },
-    { NULL,       SHT_PROGBITS, SHF_ALLOC,                    1 } /* default */
-};
-
-/* parse section attributes */
-void elf_section_attrib(char *name, char *attr, int pass,
-			uint32_t *flags_and, uint32_t *flags_or,
-			uint64_t *align, int *type)
-{
-    char *opt, *val, *next;
-
-    opt = nasm_skip_spaces(attr);
-    if (!opt || !*opt)
-        return;
-
-    while ((opt = nasm_opt_val(opt, &val, &next))) {
-        if (!nasm_stricmp(opt, "align")) {
-            if (!val) {
-                nasm_error(ERR_NONFATAL,
-                           "section align without value specified");
-            } else {
-                *align = atoi(val);
-                if (*align == 0) {
-                    *align = SHA_ANY;
-                } else if (!is_power2(*align)) {
-                    nasm_error(ERR_NONFATAL,
-                               "section alignment %"PRId64" is not a power of two",
-                               *align);
-                    *align = SHA_ANY;
-                }
-            }
-        } else if (!nasm_stricmp(opt, "alloc")) {
-            *flags_and  |= SHF_ALLOC;
-            *flags_or   |= SHF_ALLOC;
-        } else if (!nasm_stricmp(opt, "noalloc")) {
-            *flags_and  |= SHF_ALLOC;
-            *flags_or   &= ~SHF_ALLOC;
-        } else if (!nasm_stricmp(opt, "exec")) {
-            *flags_and  |= SHF_EXECINSTR;
-            *flags_or   |= SHF_EXECINSTR;
-        } else if (!nasm_stricmp(opt, "noexec")) {
-            *flags_and  |= SHF_EXECINSTR;
-            *flags_or   &= ~SHF_EXECINSTR;
-        } else if (!nasm_stricmp(opt, "write")) {
-            *flags_and  |= SHF_WRITE;
-            *flags_or   |= SHF_WRITE;
-        } else if (!nasm_stricmp(opt, "tls")) {
-            *flags_and  |= SHF_TLS;
-            *flags_or   |= SHF_TLS;
-        } else if (!nasm_stricmp(opt, "nowrite")) {
-            *flags_and  |= SHF_WRITE;
-            *flags_or   &= ~SHF_WRITE;
-        } else if (!nasm_stricmp(opt, "progbits")) {
-            *type = SHT_PROGBITS;
-        } else if (!nasm_stricmp(opt, "nobits")) {
-            *type = SHT_NOBITS;
-        } else if (pass == 1) {
-            nasm_error(ERR_WARNING,
-                       "Unknown section attribute '%s' ignored on"
-                       " declaration of section `%s'", opt, name);
-        }
-        opt = next;
-    }
-}
-
-static enum directive_result
-elf_directive(enum directives directive, char *value, int pass)
-{
-    int64_t n;
-    bool err;
-    char *p;
-
-    switch (directive) {
-    case D_OSABI:
-        if (pass == 2)
-            return DIRR_OK; /* ignore in pass 2 */
-
-        n = readnum(value, &err);
-        if (err) {
-            nasm_error(ERR_NONFATAL, "`osabi' directive requires a parameter");
-            return DIRR_ERROR;
-        }
-
-        if (n < 0 || n > 255) {
-            nasm_error(ERR_NONFATAL, "valid osabi numbers are 0 to 255");
-            return DIRR_ERROR;
-        }
-
-        elf_osabi  = n;
-        elf_abiver = 0;
-
-        p = strchr(value,',');
-        if (!p)
-            return DIRR_OK;
-
-        n = readnum(p + 1, &err);
-        if (err || n < 0 || n > 255) {
-            nasm_error(ERR_NONFATAL, "invalid ABI version number (valid: 0 to 255)");
-            return DIRR_ERROR;
-        }
-
-        elf_abiver = n;
-        return DIRR_OK;
-
-    default:
-        return DIRR_UNKNOWN;
-    }
-}
-
-static void elf_init(void)
-{
-    sects = NULL;
-    nsects = sectlen = 0;
-    syms = saa_init((int32_t)sizeof(struct elf_symbol));
-    nlocals = nglobs = ndebugs = 0;
-    bsym = raa_init();
-    strs = saa_init(1L);
-    saa_wbytes(strs, "\0", 1L);
-    saa_wbytes(strs, elf_module, strlen(elf_module)+1);
-    strslen = 2 + strlen(elf_module);
-    shstrtab = NULL;
-    shstrtablen = shstrtabsize = 0;;
-    add_sectname("", "");
-
-    fwds = NULL;
-
-    /*
-     * FIXME: tlsie is Elf32 only and
-     * gottpoff is Elfx32|64 only.
-     */
-
-    elf_gotpc_sect = seg_alloc();
-    define_label("..gotpc", elf_gotpc_sect + 1, 0L, NULL, false, false);
-    elf_gotoff_sect = seg_alloc();
-    define_label("..gotoff", elf_gotoff_sect + 1, 0L, NULL, false, false);
-    elf_got_sect = seg_alloc();
-    define_label("..got", elf_got_sect + 1, 0L, NULL, false, false);
-    elf_plt_sect = seg_alloc();
-    define_label("..plt", elf_plt_sect + 1, 0L, NULL, false, false);
-    elf_sym_sect = seg_alloc();
-    define_label("..sym", elf_sym_sect + 1, 0L, NULL, false, false);
-    elf_gottpoff_sect = seg_alloc();
-    define_label("..gottpoff", elf_gottpoff_sect + 1, 0L, NULL, false, false);
-    elf_tlsie_sect = seg_alloc();
-    define_label("..tlsie", elf_tlsie_sect + 1, 0L, NULL, false, false);
-
-    def_seg = seg_alloc();
-}
-
-static void elf_cleanup(void)
-{
-    struct elf_reloc *r;
-    int i;
-
-    elf_write();
-    for (i = 0; i < nsects; i++) {
-        if (sects[i]->type != SHT_NOBITS)
-            saa_free(sects[i]->data);
-        if (sects[i]->head)
-            saa_free(sects[i]->rel);
-        while (sects[i]->head) {
-            r = sects[i]->head;
-            sects[i]->head = sects[i]->head->next;
-            nasm_free(r);
-        }
-    }
-    nasm_free(sects);
-    saa_free(syms);
-    raa_free(bsym);
-    saa_free(strs);
-    dfmt->cleanup();
-}
-
-/* add entry to the elf .shstrtab section */
-static void add_sectname(const char *firsthalf, const char *secondhalf)
-{
-    int len = strlen(firsthalf) + strlen(secondhalf);
-    while (shstrtablen + len + 1 > shstrtabsize)
-        shstrtab = nasm_realloc(shstrtab, (shstrtabsize += SHSTR_DELTA));
-    strcpy(shstrtab + shstrtablen, firsthalf);
-    strcat(shstrtab + shstrtablen, secondhalf);
-    shstrtablen += len + 1;
-}
-
-static int elf_make_section(char *name, int type, int flags, int align)
-{
-    struct elf_section *s;
-
-    s = nasm_zalloc(sizeof(*s));
-
-    if (type != SHT_NOBITS)
-        s->data = saa_init(1L);
-    s->tail = &s->head;
-    if (!strcmp(name, ".text"))
-        s->index = def_seg;
-    else
-        s->index = seg_alloc();
-    add_sectname("", name);
-
-    s->name     = nasm_strdup(name);
-    s->type     = type;
-    s->flags    = flags;
-    s->align    = align;
-
-    if (nsects >= sectlen)
-        sects = nasm_realloc(sects, (sectlen += SECT_DELTA) * sizeof(*sects));
-    sects[nsects++] = s;
-
-    return nsects - 1;
-}
-
-static int32_t elf_section_names(char *name, int pass, int *bits)
-{
-    char *p;
-    uint32_t flags, flags_and, flags_or;
-    uint64_t align;
-    int type, i;
-
-    if (!name) {
-        *bits = ofmt->maxbits;
-        return def_seg;
-    }
-
-    p = nasm_skip_word(name);
-    if (*p)
-        *p++ = '\0';
-    flags_and = flags_or = type = align = 0;
-
-    elf_section_attrib(name, p, pass, &flags_and,
-                       &flags_or, &align, &type);
-
-    if (!strcmp(name, ".shstrtab") ||
-        !strcmp(name, ".symtab") ||
-        !strcmp(name, ".strtab")) {
-        nasm_error(ERR_NONFATAL, "attempt to redefine reserved section"
-              "name `%s'", name);
-        return NO_SEG;
-    }
-
-    for (i = 0; i < nsects; i++)
-        if (!strcmp(name, sects[i]->name))
-            break;
-    if (i == nsects) {
-        const struct elf_known_section *ks = elf_known_sections;
-
-        while (ks->name) {
-            if (!strcmp(name, ks->name))
-                break;
-            ks++;
-        }
-
-        type = type ? type : ks->type;
-        align = align ? align : ks->align;
-        flags = (ks->flags & ~flags_and) | flags_or;
-
-        i = elf_make_section(name, type, flags, align);
-    } else if (pass == 1) {
-          if ((type && sects[i]->type != type)
-              || (align && sects[i]->align != align)
-              || (flags_and && ((sects[i]->flags & flags_and) != flags_or)))
-            nasm_error(ERR_WARNING, "incompatible section attributes ignored on"
-                  " redeclaration of section `%s'", name);
-    }
-
-    return sects[i]->index;
-}
-
-static void elf_deflabel(char *name, int32_t segment, int64_t offset,
-                         int is_global, char *special)
-{
-    int pos = strslen;
-    struct elf_symbol *sym;
-    bool special_used = false;
-
-#if defined(DEBUG) && DEBUG>2
-    nasm_error(ERR_DEBUG,
-            " elf_deflabel: %s, seg=%"PRIx32", off=%"PRIx64", is_global=%d, %s\n",
-            name, segment, offset, is_global, special);
-#endif
-    if (name[0] == '.' && name[1] == '.' && name[2] != '@') {
-        /*
-         * This is a NASM special symbol. We never allow it into
-         * the ELF symbol table, even if it's a valid one. If it
-         * _isn't_ a valid one, we should barf immediately.
-         *
-         * FIXME: tlsie is Elf32 only, and gottpoff is Elfx32|64 only.
-         */
-        if (strcmp(name, "..gotpc") && strcmp(name, "..gotoff") &&
-            strcmp(name, "..got") && strcmp(name, "..plt") &&
-            strcmp(name, "..sym") && strcmp(name, "..gottpoff") &&
-            strcmp(name, "..tlsie"))
-            nasm_error(ERR_NONFATAL, "unrecognised special symbol `%s'", name);
-        return;
-    }
-
-    if (is_global == 3) {
-        struct elf_symbol **s;
-        /*
-         * Fix up a forward-reference symbol size from the first
-         * pass.
-         */
-        for (s = &fwds; *s; s = &(*s)->nextfwd)
-            if (!strcmp((*s)->name, name)) {
-                struct tokenval tokval;
-                expr *e;
-                char *p = nasm_skip_spaces(nasm_skip_word(special));
-
-                stdscan_reset();
-                stdscan_set(p);
-                tokval.t_type = TOKEN_INVALID;
-                e = evaluate(stdscan, NULL, &tokval, NULL, 1, NULL);
-                if (e) {
-                    if (!is_simple(e))
-                        nasm_error(ERR_NONFATAL, "cannot use relocatable"
-                              " expression as symbol size");
-                    else
-                        (*s)->size = reloc_value(e);
-                }
-
-                /*
-                 * Remove it from the list of unresolved sizes.
-                 */
-                nasm_free((*s)->name);
-                *s = (*s)->nextfwd;
-                return;
-            }
-        return;                 /* it wasn't an important one */
-    }
-
-    saa_wbytes(strs, name, (int32_t)(1 + strlen(name)));
-    strslen += 1 + strlen(name);
-
-    lastsym = sym = saa_wstruct(syms);
-
-    memset(&sym->symv, 0, sizeof(struct rbtree));
-
-    sym->strpos = pos;
-    sym->type = is_global ? SYM_GLOBAL : SYM_LOCAL;
-    sym->other = STV_DEFAULT;
-    sym->size = 0;
-    if (segment == NO_SEG)
-        sym->section = SHN_ABS;
-    else {
-        int i;
-        sym->section = SHN_UNDEF;
-        if (segment == def_seg) {
-            /* we have to be sure at least text section is there */
-            int tempint;
-            if (segment != elf_section_names(".text", 2, &tempint))
-                nasm_panic(0, "strange segment conditions in ELF driver");
-        }
-        for (i = 0; i < nsects; i++) {
-            if (segment == sects[i]->index) {
-                sym->section = i + 1;
-                break;
-            }
-        }
-    }
-
-    if (is_global == 2) {
-        sym->size = offset;
-        sym->symv.key = 0;
-        sym->section = SHN_COMMON;
-        /*
-         * We have a common variable. Check the special text to see
-         * if it's a valid number and power of two; if so, store it
-         * as the alignment for the common variable.
-         */
-        if (special) {
-            bool err;
-            sym->symv.key = readnum(special, &err);
-            if (err)
-                nasm_error(ERR_NONFATAL, "alignment constraint `%s' is not a"
-                      " valid number", special);
-            else if ((sym->symv.key | (sym->symv.key - 1)) != 2 * sym->symv.key - 1)
-                nasm_error(ERR_NONFATAL, "alignment constraint `%s' is not a"
-                      " power of two", special);
-        }
-        special_used = true;
-    } else
-        sym->symv.key = (sym->section == SHN_UNDEF ? 0 : offset);
-
-    if (sym->type == SYM_GLOBAL) {
-        /*
-         * If sym->section == SHN_ABS, then the first line of the
-         * else section would cause a core dump, because its a reference
-         * beyond the end of the section array.
-         * This behaviour is exhibited by this code:
-         *     GLOBAL crash_nasm
-         *     crash_nasm equ 0
-         * To avoid such a crash, such requests are silently discarded.
-         * This may not be the best solution.
-         */
-        if (sym->section == SHN_UNDEF || sym->section == SHN_COMMON) {
-            bsym = raa_write(bsym, segment, nglobs);
-        } else if (sym->section != SHN_ABS) {
-            /*
-             * This is a global symbol; so we must add it to the rbtree
-             * of global symbols in its section.
-             *
-             * In addition, we check the special text for symbol
-             * type and size information.
-             */
-            sects[sym->section-1]->gsyms =
-                rb_insert(sects[sym->section-1]->gsyms, &sym->symv);
-
-            if (special) {
-                int n = strcspn(special, " \t");
-
-                if (!nasm_strnicmp(special, "function", n))
-                    sym->type |= STT_FUNC;
-                else if (!nasm_strnicmp(special, "data", n) ||
-                         !nasm_strnicmp(special, "object", n))
-                    sym->type |= STT_OBJECT;
-                else if (!nasm_strnicmp(special, "notype", n))
-                    sym->type |= STT_NOTYPE;
-                else
-                    nasm_error(ERR_NONFATAL, "unrecognised symbol type `%.*s'",
-                          n, special);
-                special += n;
-
-                special = nasm_skip_spaces(special);
-                if (*special) {
-                    n = strcspn(special, " \t");
-                    if (!nasm_strnicmp(special, "default", n))
-                        sym->other = STV_DEFAULT;
-                    else if (!nasm_strnicmp(special, "internal", n))
-                        sym->other = STV_INTERNAL;
-                    else if (!nasm_strnicmp(special, "hidden", n))
-                        sym->other = STV_HIDDEN;
-                    else if (!nasm_strnicmp(special, "protected", n))
-                        sym->other = STV_PROTECTED;
-                    else
-                        n = 0;
-                    special += n;
-                }
-
-                if (*special) {
-                    struct tokenval tokval;
-                    expr *e;
-                    int fwd = 0;
-                    char *saveme = stdscan_get();
-
-                    while (special[n] && nasm_isspace(special[n]))
-                        n++;
-                    /*
-                     * We have a size expression; attempt to
-                     * evaluate it.
-                     */
-                    stdscan_reset();
-                    stdscan_set(special + n);
-                    tokval.t_type = TOKEN_INVALID;
-                    e = evaluate(stdscan, NULL, &tokval, &fwd, 0, NULL);
-                    if (fwd) {
-                        sym->nextfwd = fwds;
-                        fwds = sym;
-                        sym->name = nasm_strdup(name);
-                    } else if (e) {
-                        if (!is_simple(e))
-                            nasm_error(ERR_NONFATAL, "cannot use relocatable"
-                                  " expression as symbol size");
-                        else
-                            sym->size = reloc_value(e);
-                    }
-                    stdscan_set(saveme);
-                }
-                special_used = true;
-            }
-            /*
-             * If TLS segment, mark symbol accordingly.
-             */
-            if (sects[sym->section - 1]->flags & SHF_TLS) {
-                sym->type &= 0xf0;
-                sym->type |= STT_TLS;
-            }
-        }
-        sym->globnum = nglobs;
-        nglobs++;
-    } else
-        nlocals++;
-
-    if (special && !special_used)
-        nasm_error(ERR_NONFATAL, "no special symbol features supported here");
-}
-
-static void elf_add_reloc(struct elf_section *sect, int32_t segment,
-                          int64_t offset, int type)
-{
-    struct elf_reloc *r;
-
-    r = *sect->tail = nasm_zalloc(sizeof(struct elf_reloc));
-    sect->tail = &r->next;
-
-    r->address = sect->len;
-    r->offset = offset;
-
-    if (segment != NO_SEG) {
-        int i;
-        for (i = 0; i < nsects; i++)
-            if (segment == sects[i]->index)
-                r->symbol = i + 2;
-        if (!r->symbol)
-            r->symbol = GLOBAL_TEMP_BASE + raa_read(bsym, segment);
-    }
-    r->type = type;
-
-    sect->nrelocs++;
-}
-
-/*
- * This routine deals with ..got and ..sym relocations: the more
- * complicated kinds. In shared-library writing, some relocations
- * with respect to global symbols must refer to the precise symbol
- * rather than referring to an offset from the base of the section
- * _containing_ the symbol. Such relocations call to this routine,
- * which searches the symbol list for the symbol in question.
- *
- * R_386_GOT32 | R_X86_64_GOT32 references require the _exact_ symbol address to be
- * used; R_386_32 | R_X86_64_32 references can be at an offset from the symbol.
- * The boolean argument `exact' tells us this.
- *
- * Return value is the adjusted value of `addr', having become an
- * offset from the symbol rather than the section. Should always be
- * zero when returning from an exact call.
- *
- * Limitation: if you define two symbols at the same place,
- * confusion will occur.
- *
- * Inefficiency: we search, currently, using a linked list which
- * isn't even necessarily sorted.
- */
-static int64_t elf_add_gsym_reloc(struct elf_section *sect,
-                                  int32_t segment, uint64_t offset,
-                                  int64_t pcrel, int type, bool exact)
-{
-    struct elf_reloc *r;
-    struct elf_section *s;
-    struct elf_symbol *sym;
-    struct rbtree *srb;
-    int i;
-
-    /*
-     * First look up the segment/offset pair and find a global
-     * symbol corresponding to it. If it's not one of our segments,
-     * then it must be an external symbol, in which case we're fine
-     * doing a normal elf_add_reloc after first sanity-checking
-     * that the offset from the symbol is zero.
-     */
-    s = NULL;
-    for (i = 0; i < nsects; i++)
-        if (segment == sects[i]->index) {
-            s = sects[i];
-            break;
-        }
-
-    if (!s) {
-        if (exact && offset)
-            nasm_error(ERR_NONFATAL, "invalid access to an external symbol");
-        else
-            elf_add_reloc(sect, segment, offset - pcrel, type);
-        return 0;
-    }
-
-    srb = rb_search(s->gsyms, offset);
-    if (!srb || (exact && srb->key != offset)) {
-        nasm_error(ERR_NONFATAL, "unable to find a suitable global symbol"
-                    " for this reference");
-        return 0;
-    }
-    sym = container_of(srb, struct elf_symbol, symv);
-
-    r = *sect->tail = nasm_malloc(sizeof(struct elf_reloc));
-    sect->tail = &r->next;
-
-    r->next     = NULL;
-    r->address  = sect->len;
-    r->offset = offset - pcrel - sym->symv.key;
-    r->symbol   = GLOBAL_TEMP_BASE + sym->globnum;
-    r->type     = type;
-
-    sect->nrelocs++;
-    return r->offset;
-}
-
-static void elf32_out(int32_t segto, const void *data,
-                      enum out_type type, uint64_t size,
-                      int32_t segment, int32_t wrt)
-{
-    struct elf_section *s;
-    int64_t addr;
-    int reltype, bytes;
-    int i;
-    static struct symlininfo sinfo;
-
-    /*
-     * handle absolute-assembly (structure definitions)
-     */
-    if (segto == NO_SEG) {
-        if (type != OUT_RESERVE)
-            nasm_error(ERR_NONFATAL, "attempt to assemble code in [ABSOLUTE]"
-                  " space");
-        return;
-    }
-
-    s = NULL;
-    for (i = 0; i < nsects; i++)
-        if (segto == sects[i]->index) {
-            s = sects[i];
-            break;
-        }
-    if (!s) {
-        int tempint;            /* ignored */
-        if (segto != elf_section_names(".text", 2, &tempint))
-            nasm_panic(0, "strange segment conditions in ELF driver");
-        else {
-            s = sects[nsects - 1];
-            i = nsects - 1;
-        }
-    }
-
-    /* again some stabs debugging stuff */
-    sinfo.offset = s->len;
-    sinfo.section = i;
-    sinfo.segto = segto;
-    sinfo.name = s->name;
-    dfmt->debug_output(TY_DEBUGSYMLIN, &sinfo);
-    /* end of debugging stuff */
-
-    if (s->type == SHT_NOBITS && type != OUT_RESERVE) {
-        nasm_error(ERR_WARNING, "attempt to initialize memory in"
-              " BSS section `%s': ignored", s->name);
-        s->len += realsize(type, size);
-        return;
-    }
-
-    switch (type) {
-    case OUT_RESERVE:
-        if (s->type == SHT_PROGBITS) {
-            nasm_error(ERR_WARNING, "uninitialized space declared in"
-                  " non-BSS section `%s': zeroing", s->name);
-            elf_sect_write(s, NULL, size);
-        } else
-            s->len += size;
-        break;
-
-    case OUT_RAWDATA:
-        if (segment != NO_SEG)
-            nasm_panic(0, "OUT_RAWDATA with other than NO_SEG");
-        elf_sect_write(s, data, size);
-        break;
-
-    case OUT_ADDRESS:
-    {
-        bool gnu16 = false;
-        int asize = abs((int)size);
-
-        addr = *(int64_t *)data;
-        if (segment != NO_SEG) {
-            if (segment % 2) {
-                nasm_error(ERR_NONFATAL, "ELF format does not support"
-                      " segment base references");
-            } else {
-                if (wrt == NO_SEG) {
-                    /* 
-                     * The if() is a hack to deal with compilers which
-                     * don't handle switch() statements with 64-bit
-                     * expressions.
-                     */
-                    switch (asize) {
-                    case 1:
-                        gnu16 = true;
-                        elf_add_reloc(s, segment, 0, R_386_8);
-                        break;
-                    case 2:
-                        gnu16 = true;
-                        elf_add_reloc(s, segment, 0, R_386_16);
-                        break;
-                    case 4:
-                        elf_add_reloc(s, segment, 0, R_386_32);
-                        break;
-                    default: /* Error issued further down */
-                        break;
-                    }
-                } else if (wrt == elf_gotpc_sect + 1) {
-                    /*
-                     * The user will supply GOT relative to $$. ELF
-                     * will let us have GOT relative to $. So we
-                     * need to fix up the data item by $-$$.
-                     */
-                    addr += s->len;
-                    elf_add_reloc(s, segment, 0, R_386_GOTPC);
-                } else if (wrt == elf_gotoff_sect + 1) {
-                    elf_add_reloc(s, segment, 0, R_386_GOTOFF);
-                } else if (wrt == elf_tlsie_sect + 1) {
-                    addr = elf_add_gsym_reloc(s, segment, addr, 0,
-                                              R_386_TLS_IE, true);
-                } else if (wrt == elf_got_sect + 1) {
-                    addr = elf_add_gsym_reloc(s, segment, addr, 0,
-                                              R_386_GOT32, true);
-                } else if (wrt == elf_sym_sect + 1) {
-                    switch (asize) {
-                    case 1:
-                        gnu16 = true;
-                        addr = elf_add_gsym_reloc(s, segment, addr, 0,
-                                                  R_386_8, false);
-                        break;
-                    case 2:
-                        gnu16 = true;
-                        addr = elf_add_gsym_reloc(s, segment, addr, 0,
-                                                  R_386_16, false);
-                        break;
-                    case 4:
-                        addr = elf_add_gsym_reloc(s, segment, addr, 0,
-                                                  R_386_32, false);
-                        break;
-                    default:
-                        break;
-                    }
-                } else if (wrt == elf_plt_sect + 1) {
-                    nasm_error(ERR_NONFATAL, "ELF format cannot produce non-PC-"
-                          "relative PLT references");
-                } else {
-                    nasm_error(ERR_NONFATAL, "ELF format does not support this"
-                          " use of WRT");
-                    wrt = NO_SEG; /* we can at least _try_ to continue */
-                }
-            }
-        }
-
-        if (gnu16) {
-            nasm_error(ERR_WARNING | ERR_WARN_GNUELF,
-                  "8- or 16-bit relocations in ELF32 is a GNU extension");
-        } else if (asize != 4 && segment != NO_SEG) {
-            nasm_error(ERR_NONFATAL, "Unsupported non-32-bit ELF relocation");
-        }
-        elf_sect_writeaddr(s, addr, asize);
-        break;
-    }
-
-    case OUT_REL1ADR:
-        reltype = R_386_PC8;
-        bytes = 1;
-        goto rel12adr;
-    case OUT_REL2ADR:
-        reltype = R_386_PC16;
-        bytes = 2;
-        goto rel12adr;
-
-rel12adr:
-        addr = *(int64_t *)data - size;
-        nasm_assert(segment != segto);
-        if (segment != NO_SEG && segment % 2) {
-            nasm_error(ERR_NONFATAL, "ELF format does not support"
-                  " segment base references");
-        } else {
-            if (wrt == NO_SEG) {
-                nasm_error(ERR_WARNING | ERR_WARN_GNUELF,
-                      "8- or 16-bit relocations in ELF is a GNU extension");
-                elf_add_reloc(s, segment, 0, reltype);
-            } else {
-                nasm_error(ERR_NONFATAL,
-                      "Unsupported non-32-bit ELF relocation");
-            }
-        }
-        elf_sect_writeaddr(s, addr, bytes);
-        break;
-
-    case OUT_REL4ADR:
-        addr = *(int64_t *)data - size;
-        if (segment == segto)
-            nasm_panic(0, "intra-segment OUT_REL4ADR");
-        if (segment != NO_SEG && segment % 2) {
-            nasm_error(ERR_NONFATAL, "ELF format does not support"
-                  " segment base references");
-        } else {
-            if (wrt == NO_SEG) {
-                elf_add_reloc(s, segment, 0, R_386_PC32);
-            } else if (wrt == elf_plt_sect + 1) {
-                elf_add_reloc(s, segment, 0, R_386_PLT32);
-            } else if (wrt == elf_gotpc_sect + 1 ||
-                       wrt == elf_gotoff_sect + 1 ||
-                       wrt == elf_got_sect + 1) {
-                nasm_error(ERR_NONFATAL, "ELF format cannot produce PC-"
-                      "relative GOT references");
-            } else {
-                nasm_error(ERR_NONFATAL, "ELF format does not support this"
-                      " use of WRT");
-                wrt = NO_SEG;   /* we can at least _try_ to continue */
-            }
-        }
-        elf_sect_writeaddr(s, addr, 4);
-        break;
-
-    case OUT_REL8ADR:
-        nasm_error(ERR_NONFATAL, "32-bit ELF format does not support 64-bit relocations");
-        addr = 0;
-        elf_sect_writeaddr(s, addr, 8);
-        break;
-
-    default:
-        panic();
-    }
-}
-static void elf64_out(int32_t segto, const void *data,
-                      enum out_type type, uint64_t size,
-                      int32_t segment, int32_t wrt)
-{
-    struct elf_section *s;
-    int64_t addr;
-    int reltype, bytes;
-    int i;
-    static struct symlininfo sinfo;
-
-    /*
-     * handle absolute-assembly (structure definitions)
-     */
-    if (segto == NO_SEG) {
-        if (type != OUT_RESERVE)
-            nasm_error(ERR_NONFATAL, "attempt to assemble code in [ABSOLUTE]"
-                  " space");
-        return;
-    }
-
-    s = NULL;
-    for (i = 0; i < nsects; i++)
-        if (segto == sects[i]->index) {
-            s = sects[i];
-            break;
-        }
-    if (!s) {
-        int tempint;            /* ignored */
-        if (segto != elf_section_names(".text", 2, &tempint))
-            nasm_panic(0, "strange segment conditions in ELF driver");
-        else {
-            s = sects[nsects - 1];
-            i = nsects - 1;
-        }
-    }
-
-    /* again some stabs debugging stuff */
-    sinfo.offset = s->len;
-    sinfo.section = i;
-    sinfo.segto = segto;
-    sinfo.name = s->name;
-    dfmt->debug_output(TY_DEBUGSYMLIN, &sinfo);
-    /* end of debugging stuff */
-
-    if (s->type == SHT_NOBITS && type != OUT_RESERVE) {
-        nasm_error(ERR_WARNING, "attempt to initialize memory in"
-              " BSS section `%s': ignored", s->name);
-        s->len += realsize(type, size);
-        return;
-    }
-
-    switch (type) {
-    case OUT_RESERVE:
-        if (s->type == SHT_PROGBITS) {
-            nasm_error(ERR_WARNING, "uninitialized space declared in"
-                  " non-BSS section `%s': zeroing", s->name);
-            elf_sect_write(s, NULL, size);
-        } else
-            s->len += size;
-        break;
-
-    case OUT_RAWDATA:
-        if (segment != NO_SEG)
-            nasm_panic(0, "OUT_RAWDATA with other than NO_SEG");
-        elf_sect_write(s, data, size);
-        break;
-
-    case OUT_ADDRESS:
-    {
-        int isize = (int)size;
-        int asize = abs((int)size);
-
-        addr = *(int64_t *)data;
-        if (segment == NO_SEG) {
-            /* Do nothing */
-        } else if (segment % 2) {
-            nasm_error(ERR_NONFATAL, "ELF format does not support"
-                  " segment base references");
-        } else {
-            if (wrt == NO_SEG) {
-                switch (isize) {
-                case 1:
-                case -1:
-                    elf_add_reloc(s, segment, addr, R_X86_64_8);
-                    break;
-                case 2:
-                case -2:
-                    elf_add_reloc(s, segment, addr, R_X86_64_16);
-                    break;
-                case 4:
-                    elf_add_reloc(s, segment, addr, R_X86_64_32);
-                    break;
-                case -4:
-                    elf_add_reloc(s, segment, addr, R_X86_64_32S);
-                    break;
-                case 8:
-                case -8:
-                    elf_add_reloc(s, segment, addr, R_X86_64_64);
-                    break;
-                default:
-                    nasm_panic(0, "internal error elf64-hpa-871");
-                    break;
-                }
-                addr = 0;
-            } else if (wrt == elf_gotpc_sect + 1) {
-                /*
-                 * The user will supply GOT relative to $$. ELF
-                 * will let us have GOT relative to $. So we
-                 * need to fix up the data item by $-$$.
-                 */
-                addr += s->len;
-                elf_add_reloc(s, segment, addr, R_X86_64_GOTPC32);
-                addr = 0;
-            } else if (wrt == elf_gotoff_sect + 1) {
-                if (asize != 8) {
-                    nasm_error(ERR_NONFATAL, "ELF64 requires ..gotoff "
-                          "references to be qword");
-                } else {
-                    elf_add_reloc(s, segment, addr, R_X86_64_GOTOFF64);
-                    addr = 0;
-                }
-            } else if (wrt == elf_got_sect + 1) {
-                switch (asize) {
-                case 4:
-                    elf_add_gsym_reloc(s, segment, addr, 0,
-                                       R_X86_64_GOT32, true);
-                    addr = 0;
-                    break;
-                case 8:
-                    elf_add_gsym_reloc(s, segment, addr, 0,
-                                       R_X86_64_GOT64, true);
-                    addr = 0;
-                    break;
-                default:
-                    nasm_error(ERR_NONFATAL, "invalid ..got reference");
-                    break;
-                }
-            } else if (wrt == elf_sym_sect + 1) {
-                switch (isize) {
-                case 1:
-                case -1:
-                    elf_add_gsym_reloc(s, segment, addr, 0,
-                                       R_X86_64_8, false);
-                    addr = 0;
-                    break;
-                case 2:
-                case -2:
-                    elf_add_gsym_reloc(s, segment, addr, 0,
-                                       R_X86_64_16, false);
-                    addr = 0;
-                    break;
-                case 4:
-                    elf_add_gsym_reloc(s, segment, addr, 0,
-                                       R_X86_64_32, false);
-                    addr = 0;
-                    break;
-                case -4:
-                    elf_add_gsym_reloc(s, segment, addr, 0,
-                                       R_X86_64_32S, false);
-                    addr = 0;
-                    break;
-                case 8:
-                case -8:
-                    elf_add_gsym_reloc(s, segment, addr, 0,
-                                       R_X86_64_64, false);
-                    addr = 0;
-                    break;
-                default:
-                    nasm_panic(0, "internal error elf64-hpa-903");
-                    break;
-                }
-            } else if (wrt == elf_plt_sect + 1) {
-                nasm_error(ERR_NONFATAL, "ELF format cannot produce non-PC-"
-                      "relative PLT references");
-            } else {
-                nasm_error(ERR_NONFATAL, "ELF format does not support this"
-                      " use of WRT");
-            }
-        }
-        elf_sect_writeaddr(s, addr, asize);
-        break;
-    }
-
-    case OUT_REL1ADR:
-        reltype = R_X86_64_PC8;
-        bytes = 1;
-        goto rel12adr;
-
-    case OUT_REL2ADR:
-        reltype = R_X86_64_PC16;
-        bytes = 2;
-        goto rel12adr;
-
-rel12adr:
-        addr = *(int64_t *)data - size;
-        if (segment == segto)
-            nasm_panic(0, "intra-segment OUT_REL1ADR");
-        if (segment == NO_SEG) {
-            /* Do nothing */
-        } else if (segment % 2) {
-            nasm_error(ERR_NONFATAL, "ELF format does not support"
-                  " segment base references");
-        } else {
-            if (wrt == NO_SEG) {
-                elf_add_reloc(s, segment, addr, reltype);
-                addr = 0;
-            } else {
-                nasm_error(ERR_NONFATAL,
-                      "Unsupported non-32-bit ELF relocation");
-            }
-        }
-        elf_sect_writeaddr(s, addr, bytes);
-        break;
-
-    case OUT_REL4ADR:
-        addr = *(int64_t *)data - size;
-        if (segment == segto)
-            nasm_panic(0, "intra-segment OUT_REL4ADR");
-        if (segment == NO_SEG) {
-            /* Do nothing */
-        } else if (segment % 2) {
-            nasm_error(ERR_NONFATAL, "ELF64 format does not support"
-                  " segment base references");
-        } else {
-            if (wrt == NO_SEG) {
-                elf_add_reloc(s, segment, addr, R_X86_64_PC32);
-                addr = 0;
-            } else if (wrt == elf_plt_sect + 1) {
-                elf_add_gsym_reloc(s, segment, addr+size, size,
-                                   R_X86_64_PLT32, true);
-                addr = 0;
-            } else if (wrt == elf_gotpc_sect + 1 ||
-                       wrt == elf_got_sect + 1) {
-                elf_add_gsym_reloc(s, segment, addr+size, size,
-                                   R_X86_64_GOTPCREL, true);
-                addr = 0;
-            } else if (wrt == elf_gotoff_sect + 1 ||
-                       wrt == elf_got_sect + 1) {
-                nasm_error(ERR_NONFATAL, "ELF64 requires ..gotoff references to be "
-                      "qword absolute");
-            } else if (wrt == elf_gottpoff_sect + 1) {
-                elf_add_gsym_reloc(s, segment, addr+size, size,
-                                   R_X86_64_GOTTPOFF, true);
-                addr = 0;
-            } else {
-                nasm_error(ERR_NONFATAL, "ELF64 format does not support this"
-                      " use of WRT");
-            }
-        }
-        elf_sect_writeaddr(s, addr, 4);
-        break;
-
-    case OUT_REL8ADR:
-        addr = *(int64_t *)data - size;
-        if (segment == segto)
-            nasm_panic(0, "intra-segment OUT_REL8ADR");
-        if (segment == NO_SEG) {
-            /* Do nothing */
-        } else if (segment % 2) {
-            nasm_error(ERR_NONFATAL, "ELF64 format does not support"
-                  " segment base references");
-        } else {
-            if (wrt == NO_SEG) {
-                elf_add_reloc(s, segment, addr, R_X86_64_PC64);
-                addr = 0;
-            } else if (wrt == elf_gotpc_sect + 1 ||
-                       wrt == elf_got_sect + 1) {
-                elf_add_gsym_reloc(s, segment, addr+size, size,
-                                   R_X86_64_GOTPCREL64, true);
-                addr = 0;
-            } else if (wrt == elf_gotoff_sect + 1 ||
-                       wrt == elf_got_sect + 1) {
-                nasm_error(ERR_NONFATAL, "ELF64 requires ..gotoff references to be "
-                      "absolute");
-            } else if (wrt == elf_gottpoff_sect + 1) {
-                nasm_error(ERR_NONFATAL, "ELF64 requires ..gottpoff references to be "
-                      "dword");
-            } else {
-                nasm_error(ERR_NONFATAL, "ELF64 format does not support this"
-                      " use of WRT");
-            }
-        }
-        elf_sect_writeaddr(s, addr, 8);
-        break;
-
-    default:
-        panic();
-    }
-}
-
-static void elfx32_out(int32_t segto, const void *data,
-                       enum out_type type, uint64_t size,
-                       int32_t segment, int32_t wrt)
-{
-    struct elf_section *s;
-    int64_t addr;
-    int reltype, bytes;
-    int i;
-    static struct symlininfo sinfo;
-
-    /*
-     * handle absolute-assembly (structure definitions)
-     */
-    if (segto == NO_SEG) {
-        if (type != OUT_RESERVE)
-            nasm_error(ERR_NONFATAL, "attempt to assemble code in [ABSOLUTE]"
-                  " space");
-        return;
-    }
-
-    s = NULL;
-    for (i = 0; i < nsects; i++)
-        if (segto == sects[i]->index) {
-            s = sects[i];
-            break;
-        }
-    if (!s) {
-        int tempint;            /* ignored */
-        if (segto != elf_section_names(".text", 2, &tempint))
-            nasm_panic(0, "strange segment conditions in ELF driver");
-        else {
-            s = sects[nsects - 1];
-            i = nsects - 1;
-        }
-    }
-
-    /* again some stabs debugging stuff */
-    sinfo.offset = s->len;
-    sinfo.section = i;
-    sinfo.segto = segto;
-    sinfo.name = s->name;
-    dfmt->debug_output(TY_DEBUGSYMLIN, &sinfo);
-    /* end of debugging stuff */
-
-    if (s->type == SHT_NOBITS && type != OUT_RESERVE) {
-        nasm_error(ERR_WARNING, "attempt to initialize memory in"
-              " BSS section `%s': ignored", s->name);
-        s->len += realsize(type, size);
-        return;
-    }
-
-    switch (type) {
-    case OUT_RESERVE:
-        if (s->type == SHT_PROGBITS) {
-            nasm_error(ERR_WARNING, "uninitialized space declared in"
-                  " non-BSS section `%s': zeroing", s->name);
-            elf_sect_write(s, NULL, size);
-        } else
-            s->len += size;
-        break;
-
-    case OUT_RAWDATA:
-        if (segment != NO_SEG)
-            nasm_panic(0, "OUT_RAWDATA with other than NO_SEG");
-        elf_sect_write(s, data, size);
-        break;
-
-    case OUT_ADDRESS:
-    {
-        int isize = (int)size;
-        int asize = abs((int)size);
-
-        addr = *(int64_t *)data;
-        if (segment == NO_SEG) {
-            /* Do nothing */
-        } else if (segment % 2) {
-            nasm_error(ERR_NONFATAL, "ELF format does not support"
-                  " segment base references");
-        } else {
-            if (wrt == NO_SEG) {
-                switch (isize) {
-                case 1:
-                case -1:
-                    elf_add_reloc(s, segment, addr, R_X86_64_8);
-                    break;
-                case 2:
-                case -2:
-                    elf_add_reloc(s, segment, addr, R_X86_64_16);
-                    break;
-                case 4:
-                    elf_add_reloc(s, segment, addr, R_X86_64_32);
-                    break;
-                case -4:
-                    elf_add_reloc(s, segment, addr, R_X86_64_32S);
-                    break;
-                case 8:
-                case -8:
-                    elf_add_reloc(s, segment, addr, R_X86_64_64);
-                    break;
-                default:
-                    nasm_panic(0, "internal error elfx32-hpa-871");
-                    break;
-                }
-                addr = 0;
-            } else if (wrt == elf_gotpc_sect + 1) {
-                /*
-                 * The user will supply GOT relative to $$. ELF
-                 * will let us have GOT relative to $. So we
-                 * need to fix up the data item by $-$$.
-                 */
-                addr += s->len;
-                elf_add_reloc(s, segment, addr, R_X86_64_GOTPC32);
-                addr = 0;
-            } else if (wrt == elf_gotoff_sect + 1) {
-                nasm_error(ERR_NONFATAL, "ELFX32 doesn't support "
-                      "R_X86_64_GOTOFF64");
-            } else if (wrt == elf_got_sect + 1) {
-                switch (asize) {
-                case 4:
-                    elf_add_gsym_reloc(s, segment, addr, 0,
-                                       R_X86_64_GOT32, true);
-                    addr = 0;
-                    break;
-                default:
-                    nasm_error(ERR_NONFATAL, "invalid ..got reference");
-                    break;
-                }
-            } else if (wrt == elf_sym_sect + 1) {
-                switch (isize) {
-                case 1:
-                case -1:
-                    elf_add_gsym_reloc(s, segment, addr, 0,
-                                       R_X86_64_8, false);
-                    addr = 0;
-                    break;
-                case 2:
-                case -2:
-                    elf_add_gsym_reloc(s, segment, addr, 0,
-                                       R_X86_64_16, false);
-                    addr = 0;
-                    break;
-                case 4:
-                    elf_add_gsym_reloc(s, segment, addr, 0,
-                                       R_X86_64_32, false);
-                    addr = 0;
-                    break;
-                case -4:
-                    elf_add_gsym_reloc(s, segment, addr, 0,
-                                       R_X86_64_32S, false);
-                    addr = 0;
-                    break;
-                case 8:
-                case -8:
-                    elf_add_gsym_reloc(s, segment, addr, 0,
-                                       R_X86_64_64, false);
-                    addr = 0;
-                    break;
-                default:
-                    nasm_panic(0, "internal error elfx32-hpa-903");
-                    break;
-                }
-            } else if (wrt == elf_plt_sect + 1) {
-                nasm_error(ERR_NONFATAL, "ELF format cannot produce non-PC-"
-                      "relative PLT references");
-            } else {
-                nasm_error(ERR_NONFATAL, "ELF format does not support this"
-                      " use of WRT");
-            }
-        }
-        elf_sect_writeaddr(s, addr, asize);
-        break;
-    }
-
-    case OUT_REL1ADR:
-        reltype = R_X86_64_PC8;
-        bytes = 1;
-        goto rel12adr;
-
-    case OUT_REL2ADR:
-        reltype = R_X86_64_PC16;
-        bytes = 2;
-        goto rel12adr;
-
-rel12adr:
-        addr = *(int64_t *)data - size;
-        if (segment == segto)
-            nasm_panic(0, "intra-segment OUT_REL1ADR");
-        if (segment == NO_SEG) {
-            /* Do nothing */
-        } else if (segment % 2) {
-            nasm_error(ERR_NONFATAL, "ELF format does not support"
-                  " segment base references");
-        } else {
-            if (wrt == NO_SEG) {
-                elf_add_reloc(s, segment, addr, reltype);
-                addr = 0;
-            } else {
-                nasm_error(ERR_NONFATAL,
-                      "Unsupported non-32-bit ELF relocation");
-            }
-        }
-        elf_sect_writeaddr(s, addr, bytes);
-        break;
-
-    case OUT_REL4ADR:
-        addr = *(int64_t *)data - size;
-        if (segment == segto)
-            nasm_panic(0, "intra-segment OUT_REL4ADR");
-        if (segment == NO_SEG) {
-            /* Do nothing */
-        } else if (segment % 2) {
-            nasm_error(ERR_NONFATAL, "ELFX32 format does not support"
-                  " segment base references");
-        } else {
-            if (wrt == NO_SEG) {
-                elf_add_reloc(s, segment, addr, R_X86_64_PC32);
-                addr = 0;
-            } else if (wrt == elf_plt_sect + 1) {
-                elf_add_gsym_reloc(s, segment, addr+size, size,
-                                   R_X86_64_PLT32, true);
-                addr = 0;
-            } else if (wrt == elf_gotpc_sect + 1 ||
-                       wrt == elf_got_sect + 1) {
-                elf_add_gsym_reloc(s, segment, addr+size, size,
-                                   R_X86_64_GOTPCREL, true);
-                addr = 0;
-            } else if (wrt == elf_gotoff_sect + 1 ||
-                       wrt == elf_got_sect + 1) {
-                nasm_error(ERR_NONFATAL, "invalid ..gotoff reference");
-            } else if (wrt == elf_gottpoff_sect + 1) {
-                elf_add_gsym_reloc(s, segment, addr+size, size,
-                                   R_X86_64_GOTTPOFF, true);
-                addr = 0;
-            } else {
-                nasm_error(ERR_NONFATAL, "ELFX32 format does not support this"
-                      " use of WRT");
-            }
-        }
-        elf_sect_writeaddr(s, addr, 4);
-        break;
-
-    case OUT_REL8ADR:
-        nasm_error(ERR_NONFATAL, "32-bit ELF format does not support 64-bit relocations");
-        addr = 0;
-        elf_sect_writeaddr(s, addr, 8);
-        break;
-
-    default:
-        panic();
-    }
-}
-
-static void elf_write(void)
-{
-    int align;
-    char *p;
-    int i;
-
-    struct SAA *symtab;
-    int32_t symtablen, symtablocal;
-
-    /*
-     * Work out how many sections we will have. We have SHN_UNDEF,
-     * then the flexible user sections, then the fixed sections
-     * `.shstrtab', `.symtab' and `.strtab', then optionally
-     * relocation sections for the user sections.
-     */
-    nsections = sec_numspecial + 1;
-	if (dfmt_is_stabs())
-        nsections += 3;
-    else if (dfmt_is_dwarf())
-        nsections += 10;
-
-    add_sectname("", ".shstrtab");
-    add_sectname("", ".symtab");
-    add_sectname("", ".strtab");
-    for (i = 0; i < nsects; i++) {
-        nsections++;            /* for the section itself */
-        if (sects[i]->head) {
-            nsections++;        /* for its relocations */
-            add_sectname(is_elf32() ? ".rel" : ".rela", sects[i]->name);
-        }
-    }
-
-    if (dfmt_is_stabs()) {
-        /* in case the debug information is wanted, just add these three sections... */
-        add_sectname("", ".stab");
-        add_sectname("", ".stabstr");
-        add_sectname(is_elf32() ? ".rel" : ".rela", ".stab");
-    } else if (dfmt_is_dwarf()) {
-        /* the dwarf debug standard specifies the following ten sections,
-           not all of which are currently implemented,
-           although all of them are defined. */
-#define debug_aranges (int64_t) (nsections-10)
-#define debug_info (int64_t) (nsections-7)
-#define debug_abbrev (int64_t) (nsections-5)
-#define debug_line (int64_t) (nsections-4)
-        add_sectname("", ".debug_aranges");
-        add_sectname(".rela", ".debug_aranges");
-        add_sectname("", ".debug_pubnames");
-        add_sectname("", ".debug_info");
-        add_sectname(".rela", ".debug_info");
-        add_sectname("", ".debug_abbrev");
-        add_sectname("", ".debug_line");
-        add_sectname(".rela", ".debug_line");
-        add_sectname("", ".debug_frame");
-        add_sectname("", ".debug_loc");
-    }
-
-    /*
-     * Output the ELF header.
-     */
-    if (is_elf32() || is_elfx32()) {
-        nasm_write("\177ELF\1\1\1", 7,                  ofile);
-        fputc(elf_osabi,                                ofile);
-        fputc(elf_abiver,                               ofile);
-        fwritezero(7,                                   ofile);
-        fwriteint16_t(ET_REL,                           ofile); /* relocatable file */
-        fwriteint16_t(is_elf32() ? EM_386 : EM_X86_64,  ofile); /* processor ID */
-        fwriteint32_t(1L,                               ofile); /* EV_CURRENT file format version */
-        fwriteint32_t(0L,                               ofile); /* no entry point */
-        fwriteint32_t(0L,                               ofile); /* no program header table */
-        fwriteint32_t(0x40L,                            ofile); /* section headers straight after ELF header plus alignment */
-        fwriteint32_t(0L,                               ofile); /* no special flags */
-        fwriteint16_t(0x34,                             ofile); /* size of ELF header */
-        fwriteint16_t(0,                                ofile); /* no program header table, again */
-        fwriteint16_t(0,                                ofile); /* still no program header table */
-        fwriteint16_t(sizeof(Elf32_Shdr),               ofile); /* size of section header */
-        fwriteint16_t(nsections,                        ofile); /* number of sections */
-        fwriteint16_t(sec_shstrtab,                     ofile); /* string table section index for section header table */
-
-        fwriteint32_t(0L,                               ofile); /* align to 0x40 bytes */
-        fwriteint32_t(0L,                               ofile);
-        fwriteint32_t(0L,                               ofile);
-    } else {
-        nasm_assert(is_elf64());
-        nasm_write("\177ELF\2\1\1", 7,                  ofile);
-        fputc(elf_osabi,                                ofile);
-        fputc(elf_abiver,                               ofile);
-        fwritezero(7,                                   ofile);
-        fwriteint16_t(ET_REL,                           ofile); /* relocatable file */
-        fwriteint16_t(EM_X86_64,                        ofile); /* processor ID */
-        fwriteint32_t(1L,                               ofile); /* EV_CURRENT file format version */
-        fwriteint64_t(0L,                               ofile); /* no entry point */
-        fwriteint64_t(0L,                               ofile); /* no program header table */
-        fwriteint64_t(0x40L,                            ofile); /* section headers straight after ELF header plus alignment */
-        fwriteint32_t(0L,                               ofile); /* no special flags */
-        fwriteint16_t(0x40,                             ofile); /* size of ELF header */
-        fwriteint16_t(0,                                ofile); /* no program header table, again */
-        fwriteint16_t(0,                                ofile); /* still no program header table */
-        fwriteint16_t(sizeof(Elf64_Shdr),               ofile); /* size of section header */
-        fwriteint16_t(nsections,                        ofile); /* number of sections */
-        fwriteint16_t(sec_shstrtab,                     ofile); /* string table section index for section header table */
-    }
-
-    /*
-     * Build the symbol table and relocation tables.
-     */
-    symtab = elf_build_symtab(&symtablen, &symtablocal);
-    for (i = 0; i < nsects; i++)
-        if (sects[i]->head)
-            sects[i]->rel = elf_build_reltab(&sects[i]->rellen,
-                                             sects[i]->head);
-
-    /*
-     * Now output the section header table.
-     */
-
-    elf_foffs = 0x40 + (is_elf64() ? sizeof(Elf64_Shdr): sizeof(Elf32_Shdr)) * nsections;
-    align = ALIGN(elf_foffs, SEC_FILEALIGN) - elf_foffs;
-    elf_foffs += align;
-    elf_nsect = 0;
-    elf_sects = nasm_malloc(sizeof(*elf_sects) * nsections);
-
-    /* SHN_UNDEF */
-    elf_section_header(0, SHT_NULL, 0, NULL, false, 0, SHN_UNDEF, 0, 0, 0);
-    p = shstrtab + 1;
-
-    /* The normal sections */
-    for (i = 0; i < nsects; i++) {
-        elf_section_header(p - shstrtab, sects[i]->type, sects[i]->flags,
-                           (sects[i]->type == SHT_PROGBITS ?
-                            sects[i]->data : NULL), true,
-                           sects[i]->len, 0, 0, sects[i]->align, 0);
-        p += strlen(p) + 1;
-    }
-
-    /* .shstrtab */
-    elf_section_header(p - shstrtab, SHT_STRTAB, 0, shstrtab, false,
-                       shstrtablen, 0, 0, 1, 0);
-    p += strlen(p) + 1;
-
-    /* .symtab */
-    if (is_elf64())
-        elf_section_header(p - shstrtab, SHT_SYMTAB, 0, symtab, true,
-                           symtablen, sec_strtab, symtablocal, 8, 24);
-    else
-        elf_section_header(p - shstrtab, SHT_SYMTAB, 0, symtab, true,
-                           symtablen, sec_strtab, symtablocal, 4, 16);
-    p += strlen(p) + 1;
-
-    /* .strtab */
-    elf_section_header(p - shstrtab, SHT_STRTAB, 0, strs, true,
-                       strslen, 0, 0, 1, 0);
-    p += strlen(p) + 1;
-
-    /* The relocation sections */
-    if (is_elf32()) {
-        for (i = 0; i < nsects; i++) {
-            if (sects[i]->head) {
-                elf_section_header(p - shstrtab, SHT_REL, 0, sects[i]->rel, true,
-                                   sects[i]->rellen, sec_symtab, i + 1, 4, 8);
-                p += strlen(p) + 1;
-            }
-        }
-    } else if (is_elfx32()) {
-        for (i = 0; i < nsects; i++) {
-            if (sects[i]->head) {
-                elf_section_header(p - shstrtab, SHT_RELA, 0, sects[i]->rel, true,
-                                   sects[i]->rellen, sec_symtab, i + 1, 4, 12);
-                p += strlen(p) + 1;
-            }
-        }
-    } else {
-        nasm_assert(is_elf64());
-        for (i = 0; i < nsects; i++) {
-            if (sects[i]->head) {
-                elf_section_header(p - shstrtab, SHT_RELA, 0, sects[i]->rel, true,
-                                   sects[i]->rellen, sec_symtab, i + 1, 8, 24);
-                p += strlen(p) + 1;
-            }
-        }
-    }
-
-    if (dfmt_is_stabs()) {
-        /* for debugging information, create the last three sections
-           which are the .stab , .stabstr and .rel.stab sections respectively */
-
-        /* this function call creates the stab sections in memory */
-        stabs_generate();
-
-        if (stabbuf && stabstrbuf && stabrelbuf) {
-            elf_section_header(p - shstrtab, SHT_PROGBITS, 0, stabbuf, false,
-                                stablen, sec_stabstr, 0, 4, 12);
-            p += strlen(p) + 1;
-
-            elf_section_header(p - shstrtab, SHT_STRTAB, 0, stabstrbuf, false,
-                               stabstrlen, 0, 0, 4, 0);
-            p += strlen(p) + 1;
-
-            /* link -> symtable  info -> section to refer to */
-            if (is_elf32()) {
-                elf_section_header(p - shstrtab, SHT_REL, 0, stabrelbuf, false,
-                                   stabrellen, sec_symtab, sec_stab, 4, 8);
-            } else {
-                elf_section_header(p - shstrtab, SHT_RELA, 0, stabrelbuf, false,
-                                   stabrellen, sec_symtab, sec_stab, 4, is_elf64() ? 24 : 12);
-            }
-            p += strlen(p) + 1;
-        }
-    } else if (dfmt_is_dwarf()) {
-            /* for dwarf debugging information, create the ten dwarf sections */
-
-            /* this function call creates the dwarf sections in memory */
-            if (dwarf_fsect)
-                dwarf_generate();
-
-            elf_section_header(p - shstrtab, SHT_PROGBITS, 0, arangesbuf, false,
-                               arangeslen, 0, 0, 1, 0);
-            p += strlen(p) + 1;
-
-            elf_section_header(p - shstrtab, SHT_RELA, 0, arangesrelbuf, false,
-                               arangesrellen, sec_symtab,
-                               is_elf64() ? debug_aranges : sec_debug_aranges,
-                               1, is_elf64() ? 24 : 12);
-            p += strlen(p) + 1;
-
-            elf_section_header(p - shstrtab, SHT_PROGBITS, 0, pubnamesbuf,
-                               false, pubnameslen, 0, 0, 1, 0);
-            p += strlen(p) + 1;
-
-            elf_section_header(p - shstrtab, SHT_PROGBITS, 0, infobuf, false,
-                               infolen, 0, 0, 1, 0);
-            p += strlen(p) + 1;
-
-            elf_section_header(p - shstrtab, SHT_RELA, 0, inforelbuf, false,
-                               inforellen, sec_symtab,
-                               is_elf64() ? debug_info : sec_debug_info,
-                               1, is_elf64() ? 24 : 12);
-            p += strlen(p) + 1;
-
-            elf_section_header(p - shstrtab, SHT_PROGBITS, 0, abbrevbuf, false,
-                               abbrevlen, 0, 0, 1, 0);
-            p += strlen(p) + 1;
-
-            elf_section_header(p - shstrtab, SHT_PROGBITS, 0, linebuf, false,
-                               linelen, 0, 0, 1, 0);
-            p += strlen(p) + 1;
-
-            elf_section_header(p - shstrtab, SHT_RELA, 0, linerelbuf, false,
-                               linerellen, sec_symtab,
-                               is_elf64() ? debug_line : sec_debug_line,
-                               1, is_elf64() ? 24 : 12);
-            p += strlen(p) + 1;
-
-            elf_section_header(p - shstrtab, SHT_PROGBITS, 0, framebuf, false,
-                               framelen, 0, 0, 8, 0);
-            p += strlen(p) + 1;
-
-            elf_section_header(p - shstrtab, SHT_PROGBITS, 0, locbuf, false,
-                               loclen, 0, 0, 1, 0);
-            p += strlen(p) + 1;
-    }
-    fwritezero(align, ofile);
-
-    /*
-     * Now output the sections.
-     */
-    elf_write_sections();
-
-    nasm_free(elf_sects);
-    saa_free(symtab);
-}
-
-static struct SAA *elf_build_symtab(int32_t *len, int32_t *local)
-{
-    struct SAA *s = saa_init(1L);
-    struct elf_symbol *sym;
-    uint8_t entry[24], *p;
-    int i;
-
-    *len = *local = 0;
-
-    /*
-     * First, an all-zeros entry, required by the ELF spec.
-     */
-    saa_wbytes(s, NULL, is_elf64() ? 24L : 16L);   /* null symbol table entry */
-    *len += is_elf64() ? 24L : 16L;
-    (*local)++;
-
-    /*
-     * Next, an entry for the file name.
-     */
-    p = entry;
-    if (is_elf64()) {
-        WRITELONG(p, 1);            /* we know it's 1st entry in strtab */
-        WRITESHORT(p, STT_FILE);    /* type FILE */
-        WRITESHORT(p, SHN_ABS);
-        WRITEDLONG(p, (uint64_t) 0);  /* no value */
-        WRITEDLONG(p, (uint64_t) 0);  /* no size either */
-        saa_wbytes(s, entry, 24L);
-        *len += 24;
-        (*local)++;
-    } else {
-        WRITELONG(p, 1);            /* we know it's 1st entry in strtab */
-        WRITELONG(p, 0);            /* no value */
-        WRITELONG(p, 0);            /* no size either */
-        WRITESHORT(p, STT_FILE);    /* type FILE */
-        WRITESHORT(p, SHN_ABS);
-        saa_wbytes(s, entry, 16L);
-        *len += 16;
-        (*local)++;
-    }
-
-    /*
-     * Now some standard symbols defining the segments, for relocation
-     * purposes.
-     */
-    if (is_elf64()) {
-        for (i = 1; i <= nsects; i++) {
-            p = entry;
-            WRITELONG(p, 0);        /* no symbol name */
-            WRITESHORT(p, STT_SECTION);       /* type, binding, and visibility */
-            WRITESHORT(p, i);       /* section id */
-            WRITEDLONG(p, (uint64_t) 0);        /* offset zero */
-            WRITEDLONG(p, (uint64_t) 0);        /* size zero */
-            saa_wbytes(s, entry, 24L);
-            *len += 24;
-            (*local)++;
-        }
-    } else {
-        for (i = 1; i <= nsects; i++) {
-            p = entry;
-            WRITELONG(p, 0);        /* no symbol name */
-            WRITELONG(p, 0);        /* offset zero */
-            WRITELONG(p, 0);        /* size zero */
-            WRITESHORT(p, STT_SECTION);       /* type, binding, and visibility */
-            WRITESHORT(p, i);       /* section id */
-            saa_wbytes(s, entry, 16L);
-            *len += 16;
-            (*local)++;
-        }
-    }
-
-    /*
-     * Now the other local symbols.
-     */
-    saa_rewind(syms);
-    if (is_elf64()) {
-        while ((sym = saa_rstruct(syms))) {
-            if (sym->type & SYM_GLOBAL)
-                continue;
-            p = entry;
-            WRITELONG(p, sym->strpos);      /* index into symbol string table */
-            WRITECHAR(p, sym->type);        /* type and binding */
-            WRITECHAR(p, sym->other);       /* visibility */
-            WRITESHORT(p, sym->section);    /* index into section header table */
-            WRITEDLONG(p, (int64_t)sym->symv.key); /* value of symbol */
-            WRITEDLONG(p, (int64_t)sym->size);  /* size of symbol */
-            saa_wbytes(s, entry, 24L);
-            *len += 24;
-            (*local)++;
-        }
-        /*
-         * dwarf needs symbols for debug sections
-         * which are relocation targets.
-         */
-        if (dfmt_is_dwarf()) {
-            dwarf_infosym = *local;
-            p = entry;
-            WRITELONG(p, 0);        /* no symbol name */
-            WRITESHORT(p, STT_SECTION);       /* type, binding, and visibility */
-            WRITESHORT(p, debug_info);       /* section id */
-            WRITEDLONG(p, (uint64_t) 0);        /* offset zero */
-            WRITEDLONG(p, (uint64_t) 0);        /* size zero */
-            saa_wbytes(s, entry, 24L);
-            *len += 24;
-            (*local)++;
-            dwarf_abbrevsym = *local;
-            p = entry;
-            WRITELONG(p, 0);        /* no symbol name */
-            WRITESHORT(p, STT_SECTION);       /* type, binding, and visibility */
-            WRITESHORT(p, debug_abbrev);       /* section id */
-            WRITEDLONG(p, (uint64_t) 0);        /* offset zero */
-            WRITEDLONG(p, (uint64_t) 0);        /* size zero */
-            saa_wbytes(s, entry, 24L);
-            *len += 24;
-            (*local)++;
-            dwarf_linesym = *local;
-            p = entry;
-            WRITELONG(p, 0);        /* no symbol name */
-            WRITESHORT(p, STT_SECTION);       /* type, binding, and visibility */
-            WRITESHORT(p, debug_line);       /* section id */
-            WRITEDLONG(p, (uint64_t) 0);        /* offset zero */
-            WRITEDLONG(p, (uint64_t) 0);        /* size zero */
-            saa_wbytes(s, entry, 24L);
-            *len += 24;
-            (*local)++;
-        }
-    } else {
-        while ((sym = saa_rstruct(syms))) {
-            if (sym->type & SYM_GLOBAL)
-                continue;
-            p = entry;
-            WRITELONG(p, sym->strpos);
-            WRITELONG(p, sym->symv.key);
-            WRITELONG(p, sym->size);
-            WRITECHAR(p, sym->type);        /* type and binding */
-            WRITECHAR(p, sym->other);       /* visibility */
-            WRITESHORT(p, sym->section);
-            saa_wbytes(s, entry, 16L);
-            *len += 16;
-            (*local)++;
-        }
-        /*
-         * dwarf needs symbols for debug sections
-         * which are relocation targets.
-         */
-        if (dfmt_is_dwarf()) {
-            dwarf_infosym = *local;
-            p = entry;
-            WRITELONG(p, 0);        /* no symbol name */
-            WRITELONG(p, (uint32_t) 0);         /* offset zero */
-            WRITELONG(p, (uint32_t) 0);         /* size zero */
-            WRITESHORT(p, STT_SECTION);         /* type, binding, and visibility */
-            WRITESHORT(p, sec_debug_info);      /* section id */
-            saa_wbytes(s, entry, 16L);
-            *len += 16;
-            (*local)++;
-            dwarf_abbrevsym = *local;
-            p = entry;
-            WRITELONG(p, 0);        /* no symbol name */
-            WRITELONG(p, (uint32_t) 0);         /* offset zero */
-            WRITELONG(p, (uint32_t) 0);         /* size zero */
-            WRITESHORT(p, STT_SECTION);         /* type, binding, and visibility */
-            WRITESHORT(p, sec_debug_abbrev);    /* section id */
-            saa_wbytes(s, entry, 16L);
-            *len += 16;
-            (*local)++;
-            dwarf_linesym = *local;
-            p = entry;
-            WRITELONG(p, 0);        /* no symbol name */
-            WRITELONG(p, (uint32_t) 0);         /* offset zero */
-            WRITELONG(p, (uint32_t) 0);         /* size zero */
-            WRITESHORT(p, STT_SECTION);         /* type, binding, and visibility */
-            WRITESHORT(p, sec_debug_line);      /* section id */
-            saa_wbytes(s, entry, 16L);
-            *len += 16;
-            (*local)++;
-        }
-    }
-
-    /*
-     * Now the global symbols.
-     */
-    saa_rewind(syms);
-    if (is_elf64()) {
-        while ((sym = saa_rstruct(syms))) {
-            if (!(sym->type & SYM_GLOBAL))
-                continue;
-            p = entry;
-            WRITELONG(p, sym->strpos);
-            WRITECHAR(p, sym->type);        /* type and binding */
-            WRITECHAR(p, sym->other);       /* visibility */
-            WRITESHORT(p, sym->section);
-            WRITEDLONG(p, (int64_t)sym->symv.key);
-            WRITEDLONG(p, (int64_t)sym->size);
-            saa_wbytes(s, entry, 24L);
-            *len += 24;
-        }
-    } else {
-        while ((sym = saa_rstruct(syms))) {
-            if (!(sym->type & SYM_GLOBAL))
-                continue;
-            p = entry;
-            WRITELONG(p, sym->strpos);
-            WRITELONG(p, sym->symv.key);
-            WRITELONG(p, sym->size);
-            WRITECHAR(p, sym->type);        /* type and binding */
-            WRITECHAR(p, sym->other);       /* visibility */
-            WRITESHORT(p, sym->section);
-            saa_wbytes(s, entry, 16L);
-            *len += 16;
-        }
-    }
-
-    return s;
-}
-
-static struct SAA *elf_build_reltab(uint64_t *len, struct elf_reloc *r)
-{
-    struct SAA *s;
-    uint8_t *p, entry[24];
-    int32_t global_offset;
-
-    if (!r)
-        return NULL;
-
-    s = saa_init(1L);
-    *len = 0;
-
-    /*
-     * How to onvert from a global placeholder to a real symbol index;
-     * the +2 refers to the two special entries, the null entry and
-     * the filename entry.
-     */
-    global_offset = -GLOBAL_TEMP_BASE + nsects + nlocals + ndebugs + 2;
-
-    if (is_elf32()) {
-        while (r) {
-            int32_t sym = r->symbol;
-
-            if (sym >= GLOBAL_TEMP_BASE)
-                sym += global_offset;
-
-            p = entry;
-            WRITELONG(p, r->address);
-            WRITELONG(p, (sym << 8) + r->type);
-            saa_wbytes(s, entry, 8L);
-            *len += 8;
-
-            r = r->next;
-        }
-    } else if (is_elfx32()) {
-        while (r) {
-            int32_t sym = r->symbol;
-
-            if (sym >= GLOBAL_TEMP_BASE)
-                sym += global_offset;
-
-            p = entry;
-            WRITELONG(p, r->address);
-            WRITELONG(p, (sym << 8) + r->type);
-            WRITELONG(p, r->offset);
-            saa_wbytes(s, entry, 12L);
-            *len += 12;
-
-            r = r->next;
-        }
-    } else {
-        nasm_assert(is_elf64());
-        while (r) {
-            int32_t sym = r->symbol;
-
-            if (sym >= GLOBAL_TEMP_BASE)
-                sym += global_offset;
-
-            p = entry;
-            WRITEDLONG(p, r->address);
-            WRITELONG(p, r->type);
-            WRITELONG(p, sym);
-            WRITEDLONG(p, r->offset);
-            saa_wbytes(s, entry, 24L);
-            *len += 24;
-
-            r = r->next;
-        }
-    }
-
-    return s;
-}
-
-static void elf_section_header(int name, int type, uint64_t flags,
-                               void *data, bool is_saa, uint64_t datalen,
-                               int link, int info, int align, int eltsize)
-{
-    elf_sects[elf_nsect].data = data;
-    elf_sects[elf_nsect].len = datalen;
-    elf_sects[elf_nsect].is_saa = is_saa;
-    elf_nsect++;
-
-    if (is_elf32() || is_elfx32()) {
-        fwriteint32_t((int32_t)name, ofile);
-        fwriteint32_t((int32_t)type, ofile);
-        fwriteint32_t((int32_t)flags, ofile);
-        fwriteint32_t(0L, ofile);      /* no address, ever, in object files */
-        fwriteint32_t(type == 0 ? 0L : elf_foffs, ofile);
-        fwriteint32_t(datalen, ofile);
-        if (data)
-            elf_foffs += ALIGN(datalen, SEC_FILEALIGN);
-        fwriteint32_t((int32_t)link, ofile);
-        fwriteint32_t((int32_t)info, ofile);
-        fwriteint32_t((int32_t)align, ofile);
-        fwriteint32_t((int32_t)eltsize, ofile);
-    } else {
-        nasm_assert(is_elf64());
-        fwriteint32_t((int32_t)name, ofile);
-        fwriteint32_t((int32_t)type, ofile);
-        fwriteint64_t((int64_t)flags, ofile);
-        fwriteint64_t(0L, ofile);      /* no address, ever, in object files */
-        fwriteint64_t(type == 0 ? 0L : elf_foffs, ofile);
-        fwriteint64_t(datalen, ofile);
-        if (data)
-            elf_foffs += ALIGN(datalen, SEC_FILEALIGN);
-        fwriteint32_t((int32_t)link, ofile);
-        fwriteint32_t((int32_t)info, ofile);
-        fwriteint64_t((int64_t)align, ofile);
-        fwriteint64_t((int64_t)eltsize, ofile);
-    }
-}
-
-static void elf_write_sections(void)
-{
-    int i;
-    for (i = 0; i < elf_nsect; i++)
-        if (elf_sects[i].data) {
-            int32_t len = elf_sects[i].len;
-            int32_t reallen = ALIGN(len, SEC_FILEALIGN);
-            int32_t align = reallen - len;
-            if (elf_sects[i].is_saa)
-                saa_fpwrite(elf_sects[i].data, ofile);
-            else
-                nasm_write(elf_sects[i].data, len, ofile);
-            fwritezero(align, ofile);
-        }
-}
-
-static void elf_sect_write(struct elf_section *sect, const void *data, size_t len)
-{
-    saa_wbytes(sect->data, data, len);
-    sect->len += len;
-}
-
-static void elf_sect_writeaddr(struct elf_section *sect, int64_t data, size_t len)
-{
-    saa_writeaddr(sect->data, data, len);
-    sect->len += len;
-}
-
-static void elf_sectalign(int32_t seg, unsigned int value)
-{
-    struct elf_section *s = NULL;
-    int i;
-
-    for (i = 0; i < nsects; i++) {
-        if (sects[i]->index == seg) {
-            s = sects[i];
-            break;
-        }
-    }
-    if (!s || !is_power2(value))
-        return;
-
-    if (value > s->align)
-        s->align = value;
-}
-
-static int32_t elf_segbase(int32_t segment)
-{
-    return segment;
-}
-
-static void elf_filename(char *inname, char *outname)
-{
-    strcpy(elf_module, inname);
-    standard_extension(inname, outname, ".o");
-}
-
-extern macros_t elf_stdmac[];
-
-static int elf_set_info(enum geninfo type, char **val)
-{
-    (void)type;
-    (void)val;
-    return 0;
-}
-
-/* Claim "elf" as a pragma namespace, for the future */
-static const struct pragma_facility elf_pragma_list[] =
-{
-    { "elf", NULL },
-    { NULL, NULL }          /* Implements the canonical output name */
-};
-
-
-static const struct dfmt elf32_df_dwarf = {
-    "ELF32 (i386) dwarf debug format for Linux/Unix",
-    "dwarf",
-    dwarf_init,
-    dwarf_linenum,
-    null_debug_deflabel,
-    null_debug_directive,
-    debug_typevalue,
-    dwarf_output,
-    dwarf_cleanup,
-    NULL                        /* pragma list */
-};
-
-static const struct dfmt elf32_df_stabs = {
-    "ELF32 (i386) stabs debug format for Linux/Unix",
-    "stabs",
-    null_debug_init,
-    stabs_linenum,
-    null_debug_deflabel,
-    null_debug_directive,
-    debug_typevalue,
-    stabs_output,
-    stabs_cleanup,
-    NULL                        /* pragma list */
-};
-
-static const struct dfmt * const elf32_debugs_arr[3] =
-  { &elf32_df_dwarf, &elf32_df_stabs, NULL };
-
-const struct ofmt of_elf32 = {
-    "ELF32 (i386) object files (e.g. Linux)",
-    "elf32",
-    0,
-    32,
-    elf32_debugs_arr,
-    &elf32_df_stabs,
-    elf_stdmac,
-    elf_init,
-    elf_set_info,
-    nasm_do_legacy_output,
-    elf32_out,
-    elf_deflabel,
-    elf_section_names,
-    elf_sectalign,
-    elf_segbase,
-    elf_directive,
-    elf_filename,
-    elf_cleanup,
-    elf_pragma_list,
-};
-
-static const struct dfmt elf64_df_dwarf = {
-    "ELF64 (x86-64) dwarf debug format for Linux/Unix",
-    "dwarf",
-    dwarf_init,
-    dwarf_linenum,
-    null_debug_deflabel,
-    null_debug_directive,
-    debug_typevalue,
-    dwarf_output,
-    dwarf_cleanup,
-    NULL                        /* pragma list */
-};
-
-static const struct dfmt elf64_df_stabs = {
-    "ELF64 (x86-64) stabs debug format for Linux/Unix",
-    "stabs",
-    null_debug_init,
-    stabs_linenum,
-    null_debug_deflabel,
-    null_debug_directive,
-    debug_typevalue,
-    stabs_output,
-    stabs_cleanup,
-    NULL                        /* pragma list */
-};
-
-static const struct dfmt * const elf64_debugs_arr[3] =
-  { &elf64_df_dwarf, &elf64_df_stabs, NULL };
-
-const struct ofmt of_elf64 = {
-    "ELF64 (x86_64) object files (e.g. Linux)",
-    "elf64",
-    0,
-    64,
-    elf64_debugs_arr,
-    &elf64_df_stabs,
-    elf_stdmac,
-    elf_init,
-    elf_set_info,
-    nasm_do_legacy_output,
-    elf64_out,
-    elf_deflabel,
-    elf_section_names,
-    elf_sectalign,
-    elf_segbase,
-    elf_directive,
-    elf_filename,
-    elf_cleanup,
-    elf_pragma_list,
-};
-
-static const struct dfmt elfx32_df_dwarf = {
-    "ELFX32 (x86-64) dwarf debug format for Linux/Unix",
-    "dwarf",
-    dwarf_init,
-    dwarf_linenum,
-    null_debug_deflabel,
-    null_debug_directive,
-    debug_typevalue,
-    dwarf_output,
-    dwarf_cleanup,
-    NULL                        /* pragma list */
-};
-
-static const struct dfmt elfx32_df_stabs = {
-    "ELFX32 (x86-64) stabs debug format for Linux/Unix",
-    "stabs",
-    null_debug_init,
-    stabs_linenum,
-    null_debug_deflabel,
-    null_debug_directive,
-    debug_typevalue,
-    stabs_output,
-    stabs_cleanup,
-    elf_pragma_list,
-};
-
-static const struct dfmt * const elfx32_debugs_arr[3] =
-  { &elfx32_df_dwarf, &elfx32_df_stabs, NULL };
-
-const struct ofmt of_elfx32 = {
-    "ELFX32 (x86_64) object files (e.g. Linux)",
-    "elfx32",
-    0,
-    64,
-    elfx32_debugs_arr,
-    &elfx32_df_stabs,
-    elf_stdmac,
-    elf_init,
-    elf_set_info,
-    nasm_do_legacy_output,
-    elfx32_out,
-    elf_deflabel,
-    elf_section_names,
-    elf_sectalign,
-    elf_segbase,
-    elf_directive,
-    elf_filename,
-    elf_cleanup,
-    NULL                        /* pragma list */
-};
-
-static bool is_elf64(void)
-{
-	return ofmt == &of_elf64;
-}
-
-static bool is_elf32(void)
-{
-	return ofmt == &of_elf32;
-}
-
-static bool is_elfx32(void)
-{
-	return ofmt == &of_elfx32;
-}
-
-static bool dfmt_is_stabs(void)
-{
-	return dfmt == &elf32_df_stabs ||
-               dfmt == &elfx32_df_stabs ||
-               dfmt == &elf64_df_stabs;
-}
-
-static bool dfmt_is_dwarf(void)
-{
-	return dfmt == &elf32_df_dwarf ||
-               dfmt == &elfx32_df_dwarf ||
-               dfmt == &elf64_df_dwarf;
-}
-
-/* common debugging routines */
-static void debug_typevalue(int32_t type)
-{
-    int32_t stype, ssize;
-    switch (TYM_TYPE(type)) {
-        case TY_LABEL:
-            ssize = 0;
-            stype = STT_NOTYPE;
-            break;
-        case TY_BYTE:
-            ssize = 1;
-            stype = STT_OBJECT;
-            break;
-        case TY_WORD:
-            ssize = 2;
-            stype = STT_OBJECT;
-            break;
-        case TY_DWORD:
-            ssize = 4;
-            stype = STT_OBJECT;
-            break;
-        case TY_FLOAT:
-            ssize = 4;
-            stype = STT_OBJECT;
-            break;
-        case TY_QWORD:
-            ssize = 8;
-            stype = STT_OBJECT;
-            break;
-        case TY_TBYTE:
-            ssize = 10;
-            stype = STT_OBJECT;
-            break;
-        case TY_OWORD:
-            ssize = 16;
-            stype = STT_OBJECT;
-            break;
-        case TY_YWORD:
-            ssize = 32;
-            stype = STT_OBJECT;
-            break;
-        case TY_COMMON:
-            ssize = 0;
-            stype = STT_COMMON;
-            break;
-        case TY_SEG:
-            ssize = 0;
-            stype = STT_SECTION;
-            break;
-        case TY_EXTERN:
-            ssize = 0;
-            stype = STT_NOTYPE;
-            break;
-        case TY_EQU:
-            ssize = 0;
-            stype = STT_NOTYPE;
-            break;
-        default:
-            ssize = 0;
-            stype = STT_NOTYPE;
-            break;
-    }
-    if (stype == STT_OBJECT && lastsym && !lastsym->type) {
-        lastsym->size = ssize;
-        lastsym->type = stype;
-    }
-}
-
-/* stabs debugging routines */
-
-static void stabs_linenum(const char *filename, int32_t linenumber, int32_t segto)
-{
-    (void)segto;
-    if (!stabs_filename) {
-        stabs_filename = (char *)nasm_malloc(strlen(filename) + 1);
-        strcpy(stabs_filename, filename);
-    } else {
-        if (strcmp(stabs_filename, filename)) {
-            /* yep, a memory leak...this program is one-shot anyway, so who cares...
-               in fact, this leak comes in quite handy to maintain a list of files
-               encountered so far in the symbol lines... */
-
-            /* why not nasm_free(stabs_filename); we're done with the old one */
-
-            stabs_filename = (char *)nasm_malloc(strlen(filename) + 1);
-            strcpy(stabs_filename, filename);
-        }
-    }
-    debug_immcall = 1;
-    currentline = linenumber;
-}
-
-static void stabs_output(int type, void *param)
-{
-    struct symlininfo *s;
-    struct linelist *el;
-    if (type == TY_DEBUGSYMLIN) {
-        if (debug_immcall) {
-            s = (struct symlininfo *)param;
-            if (!(sects[s->section]->flags & SHF_EXECINSTR))
-                return; /* line info is only collected for executable sections */
-            numlinestabs++;
-            el = (struct linelist *)nasm_malloc(sizeof(struct linelist));
-            el->info.offset = s->offset;
-            el->info.section = s->section;
-            el->info.name = s->name;
-            el->line = currentline;
-            el->filename = stabs_filename;
-            el->next = 0;
-            if (stabslines) {
-                stabslines->last->next = el;
-                stabslines->last = el;
-            } else {
-                stabslines = el;
-                stabslines->last = el;
-            }
-        }
-    }
-    debug_immcall = 0;
-}
-
-/* for creating the .stab , .stabstr and .rel.stab sections in memory */
-
-static void stabs_generate(void)
-{
-    int i, numfiles, strsize, numstabs = 0, currfile, mainfileindex;
-    uint8_t *sbuf, *ssbuf, *rbuf, *sptr, *rptr;
-    char **allfiles;
-    int *fileidx;
-
-    struct linelist *ptr;
-
-    ptr = stabslines;
-
-    allfiles = (char **)nasm_zalloc(numlinestabs * sizeof(char *));
-    numfiles = 0;
-    while (ptr) {
-        if (numfiles == 0) {
-            allfiles[0] = ptr->filename;
-            numfiles++;
-        } else {
-            for (i = 0; i < numfiles; i++) {
-                if (!strcmp(allfiles[i], ptr->filename))
-                    break;
-            }
-            if (i >= numfiles) {
-                allfiles[i] = ptr->filename;
-                numfiles++;
-            }
-        }
-        ptr = ptr->next;
-    }
-    strsize = 1;
-    fileidx = (int *)nasm_malloc(numfiles * sizeof(int));
-    for (i = 0; i < numfiles; i++) {
-        fileidx[i] = strsize;
-        strsize += strlen(allfiles[i]) + 1;
-    }
-    mainfileindex = 0;
-    for (i = 0; i < numfiles; i++) {
-        if (!strcmp(allfiles[i], elf_module)) {
-            mainfileindex = i;
-            break;
-        }
-    }
-
-    /*
-     * worst case size of the stab buffer would be:
-     * the sourcefiles changes each line, which would mean 1 SOL, 1 SYMLIN per line
-     * plus one "ending" entry
-     */
-    sbuf = (uint8_t *)nasm_malloc((numlinestabs * 2 + 4) *
-                                    sizeof(struct stabentry));
-    ssbuf = (uint8_t *)nasm_malloc(strsize);
-    rbuf = (uint8_t *)nasm_malloc(numlinestabs * (is_elf64() ? 16 : 8) * (2 + 3));
-    rptr = rbuf;
-
-    for (i = 0; i < numfiles; i++)
-        strcpy((char *)ssbuf + fileidx[i], allfiles[i]);
-    ssbuf[0] = 0;
-
-    stabstrlen = strsize;       /* set global variable for length of stab strings */
-
-    sptr = sbuf;
-    ptr = stabslines;
-    numstabs = 0;
-
-    if (ptr) {
-        /*
-         * this is the first stab, its strx points to the filename of the
-         * the source-file, the n_desc field should be set to the number
-         * of remaining stabs
-         */
-        WRITE_STAB(sptr, fileidx[0], 0, 0, 0, stabstrlen);
-
-        /* this is the stab for the main source file */
-        WRITE_STAB(sptr, fileidx[mainfileindex], N_SO, 0, 0, 0);
-
-        /* relocation table entry */
-
-        /*
-         * Since the symbol table has two entries before
-         * the section symbols, the index in the info.section
-         * member must be adjusted by adding 2
-         */
-
-        if (is_elf32()) {
-            WRITELONG(rptr, (sptr - sbuf) - 4);
-            WRITELONG(rptr, ((ptr->info.section + 2) << 8) | R_386_32);
-        } else if (is_elfx32()) {
-            WRITELONG(rptr, (sptr - sbuf) - 4);
-            WRITELONG(rptr, ((ptr->info.section + 2) << 8) | R_X86_64_32);
-            WRITELONG(rptr, 0);
-        } else {
-            nasm_assert(is_elf64());
-            WRITEDLONG(rptr, (int64_t)(sptr - sbuf) - 4);
-            WRITELONG(rptr, R_X86_64_32);
-            WRITELONG(rptr, ptr->info.section + 2);
-            WRITEDLONG(rptr, 0);
-        }
-        numstabs++;
-        currfile = mainfileindex;
-    }
-
-    if (is_elf32()) {
-        while (ptr) {
-            if (strcmp(allfiles[currfile], ptr->filename)) {
-                /* oops file has changed... */
-                for (i = 0; i < numfiles; i++)
-                    if (!strcmp(allfiles[i], ptr->filename))
-                        break;
-                currfile = i;
-                WRITE_STAB(sptr, fileidx[currfile], N_SOL, 0, 0,
-                           ptr->info.offset);
-                numstabs++;
-
-                /* relocation table entry */
-                WRITELONG(rptr, (sptr - sbuf) - 4);
-                WRITELONG(rptr, ((ptr->info.section + 2) << 8) | R_386_32);
-            }
-
-            WRITE_STAB(sptr, 0, N_SLINE, 0, ptr->line, ptr->info.offset);
-            numstabs++;
-
-            /* relocation table entry */
-            WRITELONG(rptr, (sptr - sbuf) - 4);
-            WRITELONG(rptr, ((ptr->info.section + 2) << 8) | R_386_32);
-
-            ptr = ptr->next;
-        }
-    } else if (is_elfx32()) {
-        while (ptr) {
-            if (strcmp(allfiles[currfile], ptr->filename)) {
-                /* oops file has changed... */
-                for (i = 0; i < numfiles; i++)
-                    if (!strcmp(allfiles[i], ptr->filename))
-                        break;
-                currfile = i;
-                WRITE_STAB(sptr, fileidx[currfile], N_SOL, 0, 0,
-                           ptr->info.offset);
-                numstabs++;
-
-                /* relocation table entry */
-                WRITELONG(rptr, (sptr - sbuf) - 4);
-                WRITELONG(rptr, ((ptr->info.section + 2) << 8) | R_X86_64_32);
-                WRITELONG(rptr, ptr->info.offset);
-            }
-
-            WRITE_STAB(sptr, 0, N_SLINE, 0, ptr->line, ptr->info.offset);
-            numstabs++;
-
-            /* relocation table entry */
-            WRITELONG(rptr, (sptr - sbuf) - 4);
-            WRITELONG(rptr, ((ptr->info.section + 2) << 8) | R_X86_64_32);
-            WRITELONG(rptr, ptr->info.offset);
-
-            ptr = ptr->next;
-        }
-    } else {
-        nasm_assert(is_elf64());
-        while (ptr) {
-            if (strcmp(allfiles[currfile], ptr->filename)) {
-                /* oops file has changed... */
-                for (i = 0; i < numfiles; i++)
-                    if (!strcmp(allfiles[i], ptr->filename))
-                        break;
-                currfile = i;
-                WRITE_STAB(sptr, fileidx[currfile], N_SOL, 0, 0,
-                           ptr->info.offset);
-                numstabs++;
-
-                /* relocation table entry */
-                WRITEDLONG(rptr, (int64_t)(sptr - sbuf) - 4);
-                WRITELONG(rptr, R_X86_64_32);
-                WRITELONG(rptr, ptr->info.section + 2);
-                WRITEDLONG(rptr, ptr->info.offset);
-            }
-
-            WRITE_STAB(sptr, 0, N_SLINE, 0, ptr->line, ptr->info.offset);
-            numstabs++;
-
-            /* relocation table entry */
-            WRITEDLONG(rptr, (int64_t)(sptr - sbuf) - 4);
-            WRITELONG(rptr, R_X86_64_32);
-            WRITELONG(rptr, ptr->info.section + 2);
-            WRITEDLONG(rptr, ptr->info.offset);
-
-            ptr = ptr->next;
-        }
-    }
-
-    /* this is an "ending" token */
-    WRITE_STAB(sptr, 0, N_SO, 0, 0, 0);
-    numstabs++;
-
-    ((struct stabentry *)sbuf)->n_desc = numstabs;
-
-    nasm_free(allfiles);
-    nasm_free(fileidx);
-
-    stablen = (sptr - sbuf);
-    stabrellen = (rptr - rbuf);
-    stabrelbuf = rbuf;
-    stabbuf = sbuf;
-    stabstrbuf = ssbuf;
-}
-
-static void stabs_cleanup(void)
-{
-    struct linelist *ptr, *del;
-    if (!stabslines)
-        return;
-
-    ptr = stabslines;
-    while (ptr) {
-        del = ptr;
-        ptr = ptr->next;
-        nasm_free(del);
-    }
-
-    nasm_free(stabbuf);
-    nasm_free(stabrelbuf);
-    nasm_free(stabstrbuf);
-}
-
-/* dwarf routines */
-
-static void dwarf_init(void)
-{
-    ndebugs = 3; /* 3 debug symbols */
-}
-
-static void dwarf_linenum(const char *filename, int32_t linenumber,
-                            int32_t segto)
-{
-    (void)segto;
-    dwarf_findfile(filename);
-    debug_immcall = 1;
-    currentline = linenumber;
-}
-
-/* called from elf_out with type == TY_DEBUGSYMLIN */
-static void dwarf_output(int type, void *param)
-{
-    int ln, aa, inx, maxln, soc;
-    struct symlininfo *s;
-    struct SAA *plinep;
-
-    (void)type;
-
-    s = (struct symlininfo *)param;
-
-    /* line number info is only gathered for executable sections */
-    if (!(sects[s->section]->flags & SHF_EXECINSTR))
-        return;
-
-    /* Check if section index has changed */
-    if (!(dwarf_csect && (dwarf_csect->section) == (s->section)))
-        dwarf_findsect(s->section);
-
-    /* do nothing unless line or file has changed */
-    if (!debug_immcall)
-        return;
-
-    ln = currentline - dwarf_csect->line;
-    aa = s->offset - dwarf_csect->offset;
-    inx = dwarf_clist->line;
-    plinep = dwarf_csect->psaa;
-    /* check for file change */
-    if (!(inx == dwarf_csect->file)) {
-        saa_write8(plinep,DW_LNS_set_file);
-        saa_write8(plinep,inx);
-        dwarf_csect->file = inx;
-    }
-    /* check for line change */
-    if (ln) {
-        /* test if in range of special op code */
-        maxln = line_base + line_range;
-        soc = (ln - line_base) + (line_range * aa) + opcode_base;
-        if (ln >= line_base && ln < maxln && soc < 256) {
-            saa_write8(plinep,soc);
-        } else {
-            saa_write8(plinep,DW_LNS_advance_line);
-            saa_wleb128s(plinep,ln);
-            if (aa) {
-                saa_write8(plinep,DW_LNS_advance_pc);
-                saa_wleb128u(plinep,aa);
-            }
-            saa_write8(plinep,DW_LNS_copy);
-        }
-        dwarf_csect->line = currentline;
-        dwarf_csect->offset = s->offset;
-    }
-
-    /* show change handled */
-    debug_immcall = 0;
-}
-
-
-static void dwarf_generate(void)
-{
-    uint8_t *pbuf;
-    int indx;
-    struct linelist *ftentry;
-    struct SAA *paranges, *ppubnames, *pinfo, *pabbrev, *plines, *plinep;
-    struct SAA *parangesrel, *plinesrel, *pinforel;
-    struct sectlist *psect;
-    size_t saalen, linepoff, totlen, highaddr;
-
-    if (is_elf32()) {
-        /* write epilogues for each line program range */
-        /* and build aranges section */
-        paranges = saa_init(1L);
-        parangesrel = saa_init(1L);
-        saa_write16(paranges,2);    /* dwarf version */
-        saa_write32(parangesrel, paranges->datalen+4);
-        saa_write32(parangesrel, (dwarf_infosym << 8) +  R_386_32); /* reloc to info */
-        saa_write32(parangesrel, 0);
-        saa_write32(paranges,0);    /* offset into info */
-        saa_write8(paranges,4);     /* pointer size */
-        saa_write8(paranges,0);     /* not segmented */
-        saa_write32(paranges,0);    /* padding */
-        /* iterate though sectlist entries */
-        psect = dwarf_fsect;
-        totlen = 0;
-        highaddr = 0;
-        for (indx = 0; indx < dwarf_nsections; indx++) {
-            plinep = psect->psaa;
-            /* Line Number Program Epilogue */
-            saa_write8(plinep,2);           /* std op 2 */
-            saa_write8(plinep,(sects[psect->section]->len)-psect->offset);
-            saa_write8(plinep,DW_LNS_extended_op);
-            saa_write8(plinep,1);           /* operand length */
-            saa_write8(plinep,DW_LNE_end_sequence);
-            totlen += plinep->datalen;
-            /* range table relocation entry */
-            saa_write32(parangesrel, paranges->datalen + 4);
-            saa_write32(parangesrel, ((uint32_t) (psect->section + 2) << 8) +  R_386_32);
-            saa_write32(parangesrel, (uint32_t) 0);
-            /* range table entry */
-            saa_write32(paranges,0x0000);   /* range start */
-            saa_write32(paranges,sects[psect->section]->len); /* range length */
-            highaddr += sects[psect->section]->len;
-            /* done with this entry */
-            psect = psect->next;
-        }
-        saa_write32(paranges,0);    /* null address */
-        saa_write32(paranges,0);    /* null length */
-        saalen = paranges->datalen;
-        arangeslen = saalen + 4;
-        arangesbuf = pbuf = nasm_malloc(arangeslen);
-        WRITELONG(pbuf,saalen);     /* initial length */
-        saa_rnbytes(paranges, pbuf, saalen);
-        saa_free(paranges);
-    } else if (is_elfx32()) {
-        /* write epilogues for each line program range */
-        /* and build aranges section */
-        paranges = saa_init(1L);
-        parangesrel = saa_init(1L);
-        saa_write16(paranges,3);            /* dwarf version */
-        saa_write32(parangesrel, paranges->datalen+4);
-        saa_write32(parangesrel, (dwarf_infosym << 8) +  R_X86_64_32); /* reloc to info */
-        saa_write32(parangesrel, 0);
-        saa_write32(paranges,0);            /* offset into info */
-        saa_write8(paranges,4);             /* pointer size */
-        saa_write8(paranges,0);             /* not segmented */
-        saa_write32(paranges,0);            /* padding */
-        /* iterate though sectlist entries */
-        psect = dwarf_fsect;
-        totlen = 0;
-        highaddr = 0;
-        for (indx = 0; indx < dwarf_nsections; indx++)  {
-            plinep = psect->psaa;
-            /* Line Number Program Epilogue */
-            saa_write8(plinep,2);			/* std op 2 */
-            saa_write8(plinep,(sects[psect->section]->len)-psect->offset);
-            saa_write8(plinep,DW_LNS_extended_op);
-            saa_write8(plinep,1);			/* operand length */
-            saa_write8(plinep,DW_LNE_end_sequence);
-            totlen += plinep->datalen;
-            /* range table relocation entry */
-            saa_write32(parangesrel, paranges->datalen + 4);
-            saa_write32(parangesrel, ((uint32_t) (psect->section + 2) << 8) +  R_X86_64_32);
-            saa_write32(parangesrel, (uint32_t) 0);
-            /* range table entry */
-            saa_write32(paranges,0x0000);		/* range start */
-            saa_write32(paranges,sects[psect->section]->len);	/* range length */
-            highaddr += sects[psect->section]->len;
-            /* done with this entry */
-            psect = psect->next;
-        }
-        saa_write32(paranges,0);		/* null address */
-        saa_write32(paranges,0);		/* null length */
-        saalen = paranges->datalen;
-        arangeslen = saalen + 4;
-        arangesbuf = pbuf = nasm_malloc(arangeslen);
-        WRITELONG(pbuf,saalen);			/* initial length */
-        saa_rnbytes(paranges, pbuf, saalen);
-        saa_free(paranges);
-    } else {
-        nasm_assert(is_elf64());
-        /* write epilogues for each line program range */
-        /* and build aranges section */
-        paranges = saa_init(1L);
-        parangesrel = saa_init(1L);
-        saa_write16(paranges,3);            /* dwarf version */
-        saa_write64(parangesrel, paranges->datalen+4);
-        saa_write64(parangesrel, (dwarf_infosym << 32) +  R_X86_64_32); /* reloc to info */
-        saa_write64(parangesrel, 0);
-        saa_write32(paranges,0);            /* offset into info */
-        saa_write8(paranges,8);             /* pointer size */
-        saa_write8(paranges,0);             /* not segmented */
-        saa_write32(paranges,0);            /* padding */
-        /* iterate though sectlist entries */
-        psect = dwarf_fsect;
-        totlen = 0;
-        highaddr = 0;
-        for (indx = 0; indx < dwarf_nsections; indx++) {
-            plinep = psect->psaa;
-            /* Line Number Program Epilogue */
-            saa_write8(plinep,2);			/* std op 2 */
-            saa_write8(plinep,(sects[psect->section]->len)-psect->offset);
-            saa_write8(plinep,DW_LNS_extended_op);
-            saa_write8(plinep,1);			/* operand length */
-            saa_write8(plinep,DW_LNE_end_sequence);
-            totlen += plinep->datalen;
-            /* range table relocation entry */
-            saa_write64(parangesrel, paranges->datalen + 4);
-            saa_write64(parangesrel, ((uint64_t) (psect->section + 2) << 32) +  R_X86_64_64);
-            saa_write64(parangesrel, (uint64_t) 0);
-            /* range table entry */
-            saa_write64(paranges,0x0000);		/* range start */
-            saa_write64(paranges,sects[psect->section]->len);	/* range length */
-            highaddr += sects[psect->section]->len;
-            /* done with this entry */
-            psect = psect->next;
-        }
-        saa_write64(paranges,0);		/* null address */
-        saa_write64(paranges,0);		/* null length */
-        saalen = paranges->datalen;
-        arangeslen = saalen + 4;
-        arangesbuf = pbuf = nasm_malloc(arangeslen);
-        WRITELONG(pbuf,saalen);			/* initial length */
-        saa_rnbytes(paranges, pbuf, saalen);
-        saa_free(paranges);
-    }
-
-    /* build rela.aranges section */
-    arangesrellen = saalen = parangesrel->datalen;
-    arangesrelbuf = pbuf = nasm_malloc(arangesrellen);
-    saa_rnbytes(parangesrel, pbuf, saalen);
-    saa_free(parangesrel);
-
-    /* build pubnames section */
-    ppubnames = saa_init(1L);
-    saa_write16(ppubnames,3);   /* dwarf version */
-    saa_write32(ppubnames,0);   /* offset into info */
-    saa_write32(ppubnames,0);   /* space used in info */
-    saa_write32(ppubnames,0);   /* end of list */
-    saalen = ppubnames->datalen;
-    pubnameslen = saalen + 4;
-    pubnamesbuf = pbuf = nasm_malloc(pubnameslen);
-    WRITELONG(pbuf,saalen);     /* initial length */
-    saa_rnbytes(ppubnames, pbuf, saalen);
-    saa_free(ppubnames);
-
-    if (is_elf32()) {
-        /* build info section */
-        pinfo = saa_init(1L);
-        pinforel = saa_init(1L);
-        saa_write16(pinfo,2);       /* dwarf version */
-        saa_write32(pinforel, pinfo->datalen + 4);
-        saa_write32(pinforel, (dwarf_abbrevsym << 8) +  R_386_32); /* reloc to abbrev */
-        saa_write32(pinforel, 0);
-        saa_write32(pinfo,0);       /* offset into abbrev */
-        saa_write8(pinfo,4);        /* pointer size */
-        saa_write8(pinfo,1);        /* abbrviation number LEB128u */
-        saa_write32(pinforel, pinfo->datalen + 4);
-        saa_write32(pinforel, ((dwarf_fsect->section + 2) << 8) +  R_386_32);
-        saa_write32(pinforel, 0);
-        saa_write32(pinfo,0);       /* DW_AT_low_pc */
-        saa_write32(pinforel, pinfo->datalen + 4);
-        saa_write32(pinforel, ((dwarf_fsect->section + 2) << 8) +  R_386_32);
-        saa_write32(pinforel, 0);
-        saa_write32(pinfo,highaddr);    /* DW_AT_high_pc */
-        saa_write32(pinforel, pinfo->datalen + 4);
-        saa_write32(pinforel, (dwarf_linesym << 8) +  R_386_32); /* reloc to line */
-        saa_write32(pinforel, 0);
-        saa_write32(pinfo,0);       /* DW_AT_stmt_list */
-        saa_wbytes(pinfo, elf_module, strlen(elf_module)+1);
-        saa_wbytes(pinfo, nasm_signature, strlen(nasm_signature)+1);
-        saa_write16(pinfo,DW_LANG_Mips_Assembler);
-        saa_write8(pinfo,2);        /* abbrviation number LEB128u */
-        saa_write32(pinforel, pinfo->datalen + 4);
-        saa_write32(pinforel, ((dwarf_fsect->section + 2) << 8) +  R_386_32);
-        saa_write32(pinforel, 0);
-        saa_write32(pinfo,0);       /* DW_AT_low_pc */
-        saa_write32(pinfo,0);       /* DW_AT_frame_base */
-        saa_write8(pinfo,0);        /* end of entries */
-        saalen = pinfo->datalen;
-        infolen = saalen + 4;
-        infobuf = pbuf = nasm_malloc(infolen);
-        WRITELONG(pbuf,saalen);     /* initial length */
-        saa_rnbytes(pinfo, pbuf, saalen);
-        saa_free(pinfo);
-    } else if (is_elfx32()) {
-        /* build info section */
-        pinfo = saa_init(1L);
-        pinforel = saa_init(1L);
-        saa_write16(pinfo,3);			/* dwarf version */
-        saa_write32(pinforel, pinfo->datalen + 4);
-        saa_write32(pinforel, (dwarf_abbrevsym << 8) + R_X86_64_32); /* reloc to abbrev */
-        saa_write32(pinforel, 0);
-        saa_write32(pinfo,0);			/* offset into abbrev */
-        saa_write8(pinfo,4);			/* pointer size */
-        saa_write8(pinfo,1);			/* abbrviation number LEB128u */
-        saa_write32(pinforel, pinfo->datalen + 4);
-        saa_write32(pinforel, ((dwarf_fsect->section + 2) << 8) + R_X86_64_32);
-        saa_write32(pinforel, 0);
-        saa_write32(pinfo,0);			/* DW_AT_low_pc */
-        saa_write32(pinforel, pinfo->datalen + 4);
-        saa_write32(pinforel, ((dwarf_fsect->section + 2) << 8) + R_X86_64_32);
-        saa_write32(pinforel, 0);
-        saa_write32(pinfo,highaddr);		/* DW_AT_high_pc */
-        saa_write32(pinforel, pinfo->datalen + 4);
-        saa_write32(pinforel, (dwarf_linesym << 8) + R_X86_64_32); /* reloc to line */
-        saa_write32(pinforel, 0);
-        saa_write32(pinfo,0);			/* DW_AT_stmt_list */
-        saa_wbytes(pinfo, elf_module, strlen(elf_module)+1);
-        saa_wbytes(pinfo, nasm_signature, strlen(nasm_signature)+1);
-        saa_write16(pinfo,DW_LANG_Mips_Assembler);
-        saa_write8(pinfo,2);			/* abbrviation number LEB128u */
-        saa_write32(pinforel, pinfo->datalen + 4);
-        saa_write32(pinforel, ((dwarf_fsect->section + 2) << 8) +  R_X86_64_32);
-        saa_write32(pinforel, 0);
-        saa_write32(pinfo,0);			/* DW_AT_low_pc */
-        saa_write32(pinfo,0);			/* DW_AT_frame_base */
-        saa_write8(pinfo,0);			/* end of entries */
-        saalen = pinfo->datalen;
-        infolen = saalen + 4;
-        infobuf = pbuf = nasm_malloc(infolen);
-        WRITELONG(pbuf,saalen);     /* initial length */
-        saa_rnbytes(pinfo, pbuf, saalen);
-        saa_free(pinfo);
-    } else {
-        nasm_assert(is_elf64());
-        /* build info section */
-        pinfo = saa_init(1L);
-        pinforel = saa_init(1L);
-        saa_write16(pinfo,3);			/* dwarf version */
-        saa_write64(pinforel, pinfo->datalen + 4);
-        saa_write64(pinforel, (dwarf_abbrevsym << 32) +  R_X86_64_32); /* reloc to abbrev */
-        saa_write64(pinforel, 0);
-        saa_write32(pinfo,0);			/* offset into abbrev */
-        saa_write8(pinfo,8);			/* pointer size */
-        saa_write8(pinfo,1);			/* abbrviation number LEB128u */
-        saa_write64(pinforel, pinfo->datalen + 4);
-        saa_write64(pinforel, ((uint64_t)(dwarf_fsect->section + 2) << 32) +  R_X86_64_64);
-        saa_write64(pinforel, 0);
-        saa_write64(pinfo,0);			/* DW_AT_low_pc */
-        saa_write64(pinforel, pinfo->datalen + 4);
-        saa_write64(pinforel, ((uint64_t)(dwarf_fsect->section + 2) << 32) +  R_X86_64_64);
-        saa_write64(pinforel, 0);
-        saa_write64(pinfo,highaddr);		/* DW_AT_high_pc */
-        saa_write64(pinforel, pinfo->datalen + 4);
-        saa_write64(pinforel, (dwarf_linesym << 32) +  R_X86_64_32); /* reloc to line */
-        saa_write64(pinforel, 0);
-        saa_write32(pinfo,0);			/* DW_AT_stmt_list */
-        saa_wbytes(pinfo, elf_module, strlen(elf_module)+1);
-        saa_wbytes(pinfo, nasm_signature, strlen(nasm_signature)+1);
-        saa_write16(pinfo,DW_LANG_Mips_Assembler);
-        saa_write8(pinfo,2);			/* abbrviation number LEB128u */
-        saa_write64(pinforel, pinfo->datalen + 4);
-        saa_write64(pinforel, ((uint64_t)(dwarf_fsect->section + 2) << 32) +  R_X86_64_64);
-        saa_write64(pinforel, 0);
-        saa_write64(pinfo,0);			/* DW_AT_low_pc */
-        saa_write64(pinfo,0);			/* DW_AT_frame_base */
-        saa_write8(pinfo,0);			/* end of entries */
-        saalen = pinfo->datalen;
-        infolen = saalen + 4;
-        infobuf = pbuf = nasm_malloc(infolen);
-        WRITELONG(pbuf,saalen);     /* initial length */
-        saa_rnbytes(pinfo, pbuf, saalen);
-        saa_free(pinfo);
-    }
-
-    /* build rela.info section */
-    inforellen = saalen = pinforel->datalen;
-    inforelbuf = pbuf = nasm_malloc(inforellen);
-    saa_rnbytes(pinforel, pbuf, saalen);
-    saa_free(pinforel);
-
-    /* build abbrev section */
-    pabbrev = saa_init(1L);
-    saa_write8(pabbrev,1);      /* entry number LEB128u */
-    saa_write8(pabbrev,DW_TAG_compile_unit);    /* tag LEB128u */
-    saa_write8(pabbrev,1);      /* has children */
-    /* the following attributes and forms are all LEB128u values */
-    saa_write8(pabbrev,DW_AT_low_pc);
-    saa_write8(pabbrev,DW_FORM_addr);
-    saa_write8(pabbrev,DW_AT_high_pc);
-    saa_write8(pabbrev,DW_FORM_addr);
-    saa_write8(pabbrev,DW_AT_stmt_list);
-    saa_write8(pabbrev,DW_FORM_data4);
-    saa_write8(pabbrev,DW_AT_name);
-    saa_write8(pabbrev,DW_FORM_string);
-    saa_write8(pabbrev,DW_AT_producer);
-    saa_write8(pabbrev,DW_FORM_string);
-    saa_write8(pabbrev,DW_AT_language);
-    saa_write8(pabbrev,DW_FORM_data2);
-    saa_write16(pabbrev,0);     /* end of entry */
-    /* LEB128u usage same as above */
-    saa_write8(pabbrev,2);      /* entry number */
-    saa_write8(pabbrev,DW_TAG_subprogram);
-    saa_write8(pabbrev,0);      /* no children */
-    saa_write8(pabbrev,DW_AT_low_pc);
-    saa_write8(pabbrev,DW_FORM_addr);
-    saa_write8(pabbrev,DW_AT_frame_base);
-    saa_write8(pabbrev,DW_FORM_data4);
-    saa_write16(pabbrev,0);     /* end of entry */
-    abbrevlen = saalen = pabbrev->datalen;
-    abbrevbuf = pbuf = nasm_malloc(saalen);
-    saa_rnbytes(pabbrev, pbuf, saalen);
-    saa_free(pabbrev);
-
-    /* build line section */
-    /* prolog */
-    plines = saa_init(1L);
-    saa_write8(plines,1);           /* Minimum Instruction Length */
-    saa_write8(plines,1);           /* Initial value of 'is_stmt' */
-    saa_write8(plines,line_base);   /* Line Base */
-    saa_write8(plines,line_range);  /* Line Range */
-    saa_write8(plines,opcode_base); /* Opcode Base */
-    /* standard opcode lengths (# of LEB128u operands) */
-    saa_write8(plines,0);           /* Std opcode 1 length */
-    saa_write8(plines,1);           /* Std opcode 2 length */
-    saa_write8(plines,1);           /* Std opcode 3 length */
-    saa_write8(plines,1);           /* Std opcode 4 length */
-    saa_write8(plines,1);           /* Std opcode 5 length */
-    saa_write8(plines,0);           /* Std opcode 6 length */
-    saa_write8(plines,0);           /* Std opcode 7 length */
-    saa_write8(plines,0);           /* Std opcode 8 length */
-    saa_write8(plines,1);           /* Std opcode 9 length */
-    saa_write8(plines,0);           /* Std opcode 10 length */
-    saa_write8(plines,0);           /* Std opcode 11 length */
-    saa_write8(plines,1);           /* Std opcode 12 length */
-    /* Directory Table */
-    saa_write8(plines,0);           /* End of table */
-    /* File Name Table */
-    ftentry = dwarf_flist;
-    for (indx = 0; indx < dwarf_numfiles; indx++) {
-        saa_wbytes(plines, ftentry->filename, (int32_t)(strlen(ftentry->filename) + 1));
-        saa_write8(plines,0);       /* directory  LEB128u */
-        saa_write8(plines,0);       /* time LEB128u */
-        saa_write8(plines,0);       /* size LEB128u */
-        ftentry = ftentry->next;
-    }
-    saa_write8(plines,0);           /* End of table */
-    linepoff = plines->datalen;
-    linelen = linepoff + totlen + 10;
-    linebuf = pbuf = nasm_malloc(linelen);
-    WRITELONG(pbuf,linelen-4);      /* initial length */
-    WRITESHORT(pbuf,3);             /* dwarf version */
-    WRITELONG(pbuf,linepoff);       /* offset to line number program */
-    /* write line header */
-    saalen = linepoff;
-    saa_rnbytes(plines, pbuf, saalen);   /* read a given no. of bytes */
-    pbuf += linepoff;
-    saa_free(plines);
-    /* concatonate line program ranges */
-    linepoff += 13;
-    plinesrel = saa_init(1L);
-    psect = dwarf_fsect;
-    if (is_elf32()) {
-        for (indx = 0; indx < dwarf_nsections; indx++) {
-            saa_write32(plinesrel, linepoff);
-            saa_write32(plinesrel, ((uint32_t) (psect->section + 2) << 8) +  R_386_32);
-            saa_write32(plinesrel, (uint32_t) 0);
-            plinep = psect->psaa;
-            saalen = plinep->datalen;
-            saa_rnbytes(plinep, pbuf, saalen);
-            pbuf += saalen;
-            linepoff += saalen;
-            saa_free(plinep);
-            /* done with this entry */
-            psect = psect->next;
-        }
-    } else if (is_elfx32()) {
-        for (indx = 0; indx < dwarf_nsections; indx++) {
-            saa_write32(plinesrel, linepoff);
-            saa_write32(plinesrel, ((psect->section + 2) << 8) + R_X86_64_32);
-            saa_write32(plinesrel, 0);
-            plinep = psect->psaa;
-            saalen = plinep->datalen;
-            saa_rnbytes(plinep, pbuf, saalen);
-            pbuf += saalen;
-            linepoff += saalen;
-            saa_free(plinep);
-            /* done with this entry */
-            psect = psect->next;
-        }
-    } else {
-        nasm_assert(is_elf64());
-        for (indx = 0; indx < dwarf_nsections; indx++) {
-            saa_write64(plinesrel, linepoff);
-            saa_write64(plinesrel, ((uint64_t) (psect->section + 2) << 32) +  R_X86_64_64);
-            saa_write64(plinesrel, (uint64_t) 0);
-            plinep = psect->psaa;
-            saalen = plinep->datalen;
-            saa_rnbytes(plinep, pbuf, saalen);
-            pbuf += saalen;
-            linepoff += saalen;
-            saa_free(plinep);
-            /* done with this entry */
-            psect = psect->next;
-        }
-    }
-
-    /* build rela.lines section */
-    linerellen =saalen = plinesrel->datalen;
-    linerelbuf = pbuf = nasm_malloc(linerellen);
-    saa_rnbytes(plinesrel, pbuf, saalen);
-    saa_free(plinesrel);
-
-    /* build frame section */
-    framelen = 4;
-    framebuf = pbuf = nasm_malloc(framelen);
-    WRITELONG(pbuf,framelen-4); /* initial length */
-
-    /* build loc section */
-    loclen = 16;
-    locbuf = pbuf = nasm_malloc(loclen);
-    if (is_elf32()) {
-        WRITELONG(pbuf,0);  /* null  beginning offset */
-        WRITELONG(pbuf,0);  /* null  ending offset */
-    } else {
-        nasm_assert(is_elf64());
-        WRITEDLONG(pbuf,0);  /* null  beginning offset */
-        WRITEDLONG(pbuf,0);  /* null  ending offset */
-    }
-}
-
-static void dwarf_cleanup(void)
-{
-    nasm_free(arangesbuf);
-    nasm_free(arangesrelbuf);
-    nasm_free(pubnamesbuf);
-    nasm_free(infobuf);
-    nasm_free(inforelbuf);
-    nasm_free(abbrevbuf);
-    nasm_free(linebuf);
-    nasm_free(linerelbuf);
-    nasm_free(framebuf);
-    nasm_free(locbuf);
-}
-
-static void dwarf_findfile(const char * fname)
-{
-    int finx;
-    struct linelist *match;
-
-    /* return if fname is current file name */
-    if (dwarf_clist && !(strcmp(fname, dwarf_clist->filename)))
-        return;
-
-    /* search for match */
-    match = 0;
-    if (dwarf_flist) {
-        match = dwarf_flist;
-        for (finx = 0; finx < dwarf_numfiles; finx++) {
-            if (!(strcmp(fname, match->filename))) {
-                dwarf_clist = match;
-                return;
-            }
-            match = match->next;
-        }
-    }
-
-    /* add file name to end of list */
-    dwarf_clist = (struct linelist *)nasm_malloc(sizeof(struct linelist));
-    dwarf_numfiles++;
-    dwarf_clist->line = dwarf_numfiles;
-    dwarf_clist->filename = nasm_malloc(strlen(fname) + 1);
-    strcpy(dwarf_clist->filename,fname);
-    dwarf_clist->next = 0;
-    if (!dwarf_flist) {     /* if first entry */
-        dwarf_flist = dwarf_elist = dwarf_clist;
-        dwarf_clist->last = 0;
-    } else {                /* chain to previous entry */
-        dwarf_elist->next = dwarf_clist;
-        dwarf_elist = dwarf_clist;
-    }
-}
-
-static void dwarf_findsect(const int index)
-{
-    int sinx;
-    struct sectlist *match;
-    struct SAA *plinep;
-
-    /* return if index is current section index */
-    if (dwarf_csect && (dwarf_csect->section == index))
-        return;
-
-    /* search for match */
-    match = 0;
-    if (dwarf_fsect) {
-        match = dwarf_fsect;
-        for (sinx = 0; sinx < dwarf_nsections; sinx++) {
-            if (match->section == index) {
-                dwarf_csect = match;
-                return;
-            }
-            match = match->next;
-        }
-    }
-
-    /* add entry to end of list */
-    dwarf_csect = (struct sectlist *)nasm_malloc(sizeof(struct sectlist));
-    dwarf_nsections++;
-    dwarf_csect->psaa = plinep = saa_init(1L);
-    dwarf_csect->line = 1;
-    dwarf_csect->offset = 0;
-    dwarf_csect->file = 1;
-    dwarf_csect->section = index;
-    dwarf_csect->next = 0;
-    /* set relocatable address at start of line program */
-    saa_write8(plinep,DW_LNS_extended_op);
-    saa_write8(plinep,is_elf64() ? 9 : 5);   /* operand length */
-    saa_write8(plinep,DW_LNE_set_address);
-    if (is_elf64())
-        saa_write64(plinep,0);  /* Start Address */
-    else
-        saa_write32(plinep,0);  /* Start Address */
-
-    if (!dwarf_fsect) { /* if first entry */
-        dwarf_fsect = dwarf_esect = dwarf_csect;
-        dwarf_csect->last = 0;
-    } else {            /* chain to previous entry */
-        dwarf_esect->next = dwarf_csect;
-        dwarf_esect = dwarf_csect;
-    }
-}
-
-#endif /* defined(OF_ELF32) || defined(OF_ELF64) || defined(OF_ELFX32) */
--- a/nasmbuild/nasm-2.13rc9/output/outelf.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,156 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * Internal definitions common to outelf32 and outelf64
- */
-#ifndef OUTPUT_OUTELF_H
-#define OUTPUT_OUTELF_H
-
-#include "elf.h"
-#include "rbtree.h"
-#include "saa.h"
-
-/* symbol binding */
-#define SYM_GLOBAL      ELF32_ST_MKBIND(STB_GLOBAL)
-#define SYM_LOCAL       ELF32_ST_MKBIND(STB_LOCAL)
-
-#define GLOBAL_TEMP_BASE  0x40000000 /* bigger than any sane symbol index */
-
-/* alignment of sections in file */
-#define SEC_FILEALIGN 16
-
-/* this stuff is needed for the dwarf/stabs debugging format */
-#define TY_DEBUGSYMLIN 0x40     /* internal call to debug_out */
-
-/* Known sections with nonstandard defaults */
-struct elf_known_section {
-    const char *name;   /* Name of section */
-    int type;           /* Section type (SHT_) */
-    uint32_t flags;     /* Section flags (SHF_) */
-    uint32_t align;     /* Section alignment */
-};
-extern const struct elf_known_section elf_known_sections[];
-
-/*
- * Special ELF sections (after the real sections but before debugging ones)
- */
-#define sec_shstrtab            (nsects + 1)
-#define sec_symtab              (nsects + 2)
-#define sec_strtab              (nsects + 3)
-#define sec_numspecial          3
-
-/*
- * Debugging ELF sections (last in the file)
- */
-
-/* stabs */
-#define sec_stab                (nsections-3)
-#define sec_stabstr             (nsections-2)
-#define sec_rel_stab            (nsections-1)
-
-/* stabs symbol table format */
-struct stabentry {
-    uint32_t    n_strx;
-    uint8_t     n_type;
-    uint8_t     n_other;
-    uint16_t    n_desc;
-    uint32_t    n_value;
-};
-
-/* dwarf */
-#define sec_debug_aranges       (nsections-10)
-#define sec_rela_debug_aranges  (nsections-9)
-#define sec_debug_pubnames      (nsections-8)
-#define sec_debug_info          (nsections-7)
-#define sec_rela_debug_info     (nsections-6)
-#define sec_debug_abbrev        (nsections-5)
-#define sec_debug_line          (nsections-4)
-#define sec_rela_debug_line     (nsections-3)
-#define sec_debug_frame         (nsections-2)
-#define sec_debug_loc           (nsections-1)
-
-extern uint8_t elf_osabi;
-extern uint8_t elf_abiver;
-
-void elf_section_attrib(char *name, char *attr, int pass,
-			uint32_t *flags_and, uint32_t *flags_or,
-			uint64_t *align, int *type);
-
-#define WRITE_STAB(p,n_strx,n_type,n_other,n_desc,n_value)  \
-    do {                                                    \
-        WRITELONG(p, n_strx);                               \
-        WRITECHAR(p, n_type);                               \
-        WRITECHAR(p, n_other);                              \
-        WRITESHORT(p, n_desc);                              \
-        WRITELONG(p, n_value);                              \
-    } while (0)
-
-struct elf_reloc {
-    struct elf_reloc    *next;
-    int64_t             address;        /* relative to _start_ of section */
-    int64_t             symbol;         /* symbol index */
-    int64_t             offset;         /* symbol addend */
-    int                 type;           /* type of relocation */
-};
-
-struct elf_symbol {
-    struct rbtree       symv;           /* symbol value and symbol rbtree */
-    int32_t             strpos;         /* string table position of name */
-    int32_t             section;        /* section ID of the symbol */
-    int                 type;           /* symbol type */
-    int                 other;          /* symbol visibility */
-    int32_t             size;           /* size of symbol */
-    int32_t             globnum;        /* symbol table offset if global */
-    struct elf_symbol   *nextfwd;       /* list of unresolved-size symbols */
-    char                *name;          /* used temporarily if in above list */
-};
-
-struct elf_section {
-    struct SAA          *data;
-    uint64_t            len;
-    uint64_t            size;
-    uint64_t            nrelocs;
-    int32_t             index;
-    int                 type;           /* SHT_PROGBITS or SHT_NOBITS */
-    uint64_t            align;          /* alignment: power of two */
-    uint64_t            flags;          /* section flags */
-    char                *name;
-    struct SAA          *rel;
-    uint64_t             rellen;
-    struct elf_reloc    *head;
-    struct elf_reloc    **tail;
-    struct rbtree       *gsyms;         /* global symbols in section */
-};
-
-#endif /* OUTPUT_OUTELF_H */
--- a/nasmbuild/nasm-2.13rc9/output/outelf.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-;; --------------------------------------------------------------------------
-;;   
-;;   Copyright 1996-2017 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;     
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-OUT: elf elf32 elf64
-%define __SECT__ [section .text]
-%macro __NASM_CDecl__ 1
-%define $_%1 $%1
-%endmacro
-%imacro osabi 1+.nolist
-[%? %1]
-%endmacro
--- a/nasmbuild/nasm-2.13rc9/output/outform.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2011 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * outform.c	manages a list of output formats, and associates
- *		them with their relevant drivers. Also has a
- *		routine to find the correct driver given a name
- *		for it
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <string.h>
-
-#define BUILD_DRIVERS_ARRAY
-#include "outform.h"
-
-const struct ofmt *ofmt_find(const char *name,
-			     const struct ofmt_alias **ofmt_alias)
-{
-    const struct ofmt * const *ofp;
-    const struct ofmt *of;
-    unsigned int i;
-
-    *ofmt_alias = NULL;
-
-    /* primary targets first */
-    for (ofp = drivers; (of = *ofp); ofp++) {
-        if (!nasm_stricmp(name, of->shortname))
-            return of;
-    }
-
-    /* lets walk thru aliases then */
-    for (i = 0; i < ARRAY_SIZE(ofmt_aliases); i++) {
-        if (ofmt_aliases[i].shortname &&
-            !nasm_stricmp(name, ofmt_aliases[i].shortname)) {
-            *ofmt_alias = &ofmt_aliases[i];
-            return ofmt_aliases[i].ofmt;
-        }
-    }
-
-    return NULL;
-}
-
-const struct dfmt *dfmt_find(const struct ofmt *ofmt, const char *name)
-{
-    const struct dfmt * const *dfp;
-    const struct dfmt *df;
-
-    for (dfp = ofmt->debug_formats; (df = *dfp); dfp++) {
-        if (!nasm_stricmp(name, df->shortname))
-            return df;
-    }
-    return NULL;
-}
-
-void ofmt_list(const struct ofmt *deffmt, FILE * fp)
-{
-    const struct ofmt * const *ofp, *of;
-    unsigned int i;
-
-    /* primary targets first */
-    for (ofp = drivers; (of = *ofp); ofp++) {
-        fprintf(fp, "  %c %-10s%s\n",
-                of == deffmt ? '*' : ' ',
-                of->shortname, of->fullname);
-    }
-
-    /* lets walk through aliases then */
-    for (i = 0; i < ARRAY_SIZE(ofmt_aliases); i++) {
-        if (!ofmt_aliases[i].shortname)
-            continue;
-        fprintf(fp, "    %-10s%s\n",
-                ofmt_aliases[i].shortname,
-                ofmt_aliases[i].fullname);
-    }
-}
-
-void dfmt_list(const struct ofmt *ofmt, FILE *fp)
-{
-    const struct dfmt * const *dfp;
-    const struct dfmt *df;
-
-    for (dfp = ofmt->debug_formats; (df = *dfp); dfp++) {
-        fprintf(fp, "  %c %-10s%s\n",
-                df == dfmt ? '*' : ' ',
-                df->shortname, df->fullname);
-    }
-}
--- a/nasmbuild/nasm-2.13rc9/output/outform.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,379 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2011 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * outform.h    header file for binding output format drivers to the
- *              remainder of the code in the Netwide Assembler
- */
-
-/*
- * This header file allows configuration of which output formats
- * get compiled into the NASM binary. You can configure by defining
- * various preprocessor symbols beginning with "OF_", either on the
- * compiler command line or at the top of this file.
- *
- * OF_ONLY                -- only include specified object formats
- * OF_name                -- ensure that output format 'name' is included
- * OF_NO_name             -- remove output format 'name'
- * OF_DOS                 -- ensure that 'obj', 'bin', 'win32' & 'win64' are included.
- * OF_UNIX                -- ensure that 'aout', 'aoutb', 'coff', 'elf32' & 'elf64' are in.
- * OF_OTHERS              -- ensure that 'bin', 'as86', 'rdf' 'macho32' & 'macho64' are in.
- * OF_ALL                 -- ensure that all formats are included.
- *                           note that this doesn't include 'dbg', which is
- *                           only really useful if you're doing development
- *                           work on NASM. Define OF_DBG if you want this.
- *
- * OF_DEFAULT=of_name     -- ensure that 'name' is the default format.
- *
- * eg: -DOF_UNIX -DOF_ELF32 -DOF_DEFAULT=of_elf32 would be a suitable config
- * for an average linux system.
- *
- * Default config = -DOF_ALL -DOF_DEFAULT=of_bin
- *
- * You probably only want to set these options while compiling 'nasm.c'. */
-
-#ifndef NASM_OUTFORM_H
-#define NASM_OUTFORM_H
-
-#include "nasm.h"
-
-/* -------------- USER MODIFIABLE PART ---------------- */
-
-/*
- * Insert #defines here in accordance with the configuration
- * instructions above.
- *
- * E.g.
- *
- * #define OF_ONLY
- * #define OF_OBJ
- * #define OF_BIN
- *
- * for a 16-bit DOS assembler with no extraneous formats.
- */
-
-/* ------------ END USER MODIFIABLE PART -------------- */
-
-/* ====configurable info begins here==== */
-/* formats configurable:
- * bin,obj,elf32,elf64,aout,aoutb,coff,win32,as86,rdf2,macho32,macho64 */
-
-/* process options... */
-
-#ifndef OF_ONLY
-#ifndef OF_ALL
-#define OF_ALL                  /* default is to have all formats */
-#endif
-#endif
-
-#ifdef OF_ALL                   /* set all formats on... */
-#ifndef OF_BIN
-#define OF_BIN
-#endif
-#ifndef OF_OBJ
-#define OF_OBJ
-#endif
-#ifndef OF_ELF32
-#define OF_ELF32
-#endif
-#ifndef OF_ELFX32
-#define OF_ELFX32
-#endif
-#ifndef OF_ELF64
-#define OF_ELF64
-#endif
-#ifndef OF_COFF
-#define OF_COFF
-#endif
-#ifndef OF_AOUT
-#define OF_AOUT
-#endif
-#ifndef OF_AOUTB
-#define OF_AOUTB
-#endif
-#ifndef OF_WIN32
-#define OF_WIN32
-#endif
-#ifndef OF_WIN64
-#define OF_WIN64
-#endif
-#ifndef OF_AS86
-#define OF_AS86
-#endif
-#ifndef OF_RDF2
-#define OF_RDF2
-#endif
-#ifndef OF_IEEE
-#define OF_IEEE
-#endif
-#ifndef OF_MACHO32
-#define OF_MACHO32
-#endif
-#ifndef OF_MACHO64
-#define OF_MACHO64
-#endif
-#ifndef OF_DBG
-#define OF_DBG
-#endif
-#endif                          /* OF_ALL */
-
-/* turn on groups of formats specified.... */
-#ifdef OF_DOS
-#ifndef OF_OBJ
-#define OF_OBJ
-#endif
-#ifndef OF_BIN
-#define OF_BIN
-#endif
-#ifndef OF_COFF
-#define OF_COFF                 /* COFF is used by DJGPP */
-#endif
-#ifndef OF_WIN32
-#define OF_WIN32
-#endif
-#ifndef OF_WIN64
-#define OF_WIN64
-#endif
-#endif
-
-#ifdef OF_UNIX
-#ifndef OF_AOUT
-#define OF_AOUT
-#endif
-#ifndef OF_AOUTB
-#define OF_AOUTB
-#endif
-#ifndef OF_COFF
-#define OF_COFF
-#endif
-#ifndef OF_ELF32
-#define OF_ELF32
-#endif
-#ifndef OF_ELF64
-#define OF_ELF64
-#endif
-#ifndef OF_ELFX32
-#define OF_ELFX32
-#endif
-#endif
-
-#ifdef OF_OTHERS
-#ifndef OF_BIN
-#define OF_BIN
-#endif
-#ifndef OF_AS86
-#define OF_AS86
-#endif
-#ifndef OF_RDF2
-#define OF_RDF2
-#endif
-#ifndef OF_IEEE
-#define OF_IEEE
-#endif
-#ifndef OF_MACHO32
-#define OF_MACHO32
-#endif
-#ifndef OF_MACHO64
-#define OF_MACHO64
-#endif
-#endif
-
-/* finally... override any format specifically specified to be off */
-#ifdef OF_NO_BIN
-#undef OF_BIN
-#endif
-#ifdef OF_NO_OBJ
-#undef OF_OBJ
-#endif
-#ifdef OF_NO_ELF32
-#undef OF_ELF32
-#endif
-#ifdef OF_NO_ELF64
-#undef OF_ELF64
-#endif
-#ifdef OF_NO_ELFX32
-#undef OF_ELFX32
-#endif
-#ifdef OF_NO_AOUT
-#undef OF_AOUT
-#endif
-#ifdef OF_NO_AOUTB
-#undef OF_AOUTB
-#endif
-#ifdef OF_NO_COFF
-#undef OF_COFF
-#endif
-#ifdef OF_NO_WIN32
-#undef OF_WIN32
-#endif
-#ifdef OF_NO_WIN64
-#undef OF_WIN64
-#endif
-#ifdef OF_NO_AS86
-#undef OF_AS86
-#endif
-#ifdef OF_NO_RDF2
-#undef OF_RDF2
-#endif
-#ifdef OF_NO_IEEE
-#undef OF_IEEE
-#endif
-#ifdef OF_NO_MACHO32
-#undef OF_MACHO32
-#endif
-#ifdef OF_NO_MACHO64
-#undef OF_MACHO64
-#endif
-#ifdef OF_NO_DBG
-#undef OF_DBG
-#endif
-
-#ifndef OF_DEFAULT
-#define OF_DEFAULT of_bin
-#endif
-
-extern const struct ofmt of_bin;
-extern const struct ofmt of_ith;
-extern const struct ofmt of_srec;
-extern const struct ofmt of_aout;
-extern const struct ofmt of_aoutb;
-extern const struct ofmt of_coff;
-extern const struct ofmt of_elf32;
-extern const struct ofmt of_elfx32;
-extern const struct ofmt of_elf64;
-extern const struct ofmt of_as86;
-extern const struct ofmt of_obj;
-extern const struct ofmt of_win32;
-extern const struct ofmt of_win64;
-extern const struct ofmt of_rdf2;
-extern const struct ofmt of_ieee;
-extern const struct ofmt of_macho32;
-extern const struct ofmt of_macho64;
-extern const struct ofmt of_dbg;
-
-#ifdef BUILD_DRIVERS_ARRAY      /* only if included from outform.c */
-
-/*
- * pull in the externs for the different formats, then make the
- * drivers array based on the above defines
- */
-
-static const struct ofmt * const drivers[] = {
-#ifdef OF_BIN
-    &of_bin,
-    &of_ith,
-    &of_srec,
-#endif
-#ifdef OF_AOUT
-    &of_aout,
-#endif
-#ifdef OF_AOUTB
-    &of_aoutb,
-#endif
-#ifdef OF_COFF
-    &of_coff,
-#endif
-#ifdef OF_ELF32
-    &of_elf32,
-#endif
-#ifdef OF_ELF64
-    &of_elf64,
-#endif
-#ifdef OF_ELFX32
-    &of_elfx32,
-#endif
-#ifdef OF_AS86
-    &of_as86,
-#endif
-#ifdef OF_OBJ
-    &of_obj,
-#endif
-#ifdef OF_WIN32
-    &of_win32,
-#endif
-#ifdef OF_WIN64
-    &of_win64,
-#endif
-#ifdef OF_RDF2
-    &of_rdf2,
-#endif
-#ifdef OF_IEEE
-    &of_ieee,
-#endif
-#ifdef OF_MACHO32
-    &of_macho32,
-#endif
-#ifdef OF_MACHO64
-    &of_macho64,
-#endif
-#ifdef OF_DBG
-    &of_dbg,
-#endif
-
-    NULL
-};
-
-static const struct ofmt_alias ofmt_aliases[] = {
-#ifdef OF_ELF32
-    {
-        "elf",
-        "ELF (short name for ELF32)",
-        &of_elf32,
-    },
-#endif
-#ifdef OF_MACHO32
-    {
-        "macho",
-        "MACHO (short name for MACHO32)",
-        &of_macho32,
-    },
-#endif
-#ifdef OF_WIN32
-    {
-        "win",
-        "WIN (short name for WIN32)",
-        &of_win32,
-    },
-#endif
-    { NULL, NULL, NULL }
-};
-
-#endif /* BUILD_DRIVERS_ARRAY */
-
-const struct ofmt *ofmt_find(const char *name, const struct ofmt_alias **ofmt_alias);
-const struct dfmt *dfmt_find(const struct ofmt *, const char *);
-void ofmt_list(const struct ofmt *, FILE *);
-void dfmt_list(const struct ofmt *ofmt, FILE * fp);
-extern const struct dfmt null_debug_form;
-
-#endif /* NASM_OUTFORM_H */
--- a/nasmbuild/nasm-2.13rc9/output/outieee.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1540 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * outieee.c	output routines for the Netwide Assembler to produce
- *		IEEE-std object files
- */
-
-/* notes: I have tried to make this correspond to the IEEE version
- * of the standard, specifically the primary ASCII version.  It should
- * be trivial to create the binary version given this source (which is
- * one of MANY things that have to be done to make this correspond to
- * the hp-microtek version of the standard).
- *
- * 16-bit support is assumed to use 24-bit addresses
- * The linker can sort out segmentation-specific stuff
- * if it keeps track of externals
- * in terms of being relative to section bases
- *
- * A non-standard variable type, the 'Yn' variable, has been introduced.
- * Basically it is a reference to extern 'n'- denoting the low limit
- * (L-variable) of the section that extern 'n' is defined in.  Like the
- * x variable, there may be no explicit assignment to it, it is derived
- * from the public definition corresponding to the extern name.  This
- * is required because the one thing the mufom guys forgot to do well was
- * take into account segmented architectures.
- *
- * I use comment classes for various things and these are undefined by
- * the standard.
- *
- * Debug info should be considered totally non-standard (local labels are
- * standard but linenum records are not covered by the standard.
- * Type defs have the standard format but absolute meanings for ordinal
- * types are not covered by the standard.)
- *
- * David Lindauer, LADsoft
- */
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <stdarg.h>             /* Note: we need the ANSI version of stdarg.h */
-#include <ctype.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "ver.h"
-
-#include "outform.h"
-#include "outlib.h"
-
-#ifdef OF_IEEE
-
-#define ARRAY_BOT 0x1
-
-static char ieee_infile[FILENAME_MAX];
-static int ieee_uppercase;
-
-static bool any_segs;
-static int arrindex;
-
-#define HUNKSIZE 1024           /* Size of the data hunk */
-#define EXT_BLKSIZ 512
-#define LDPERLINE 32            /* bytes per line in output */
-
-struct ieeeSection;
-
-struct LineNumber {
-    struct LineNumber *next;
-    struct ieeeSection *segment;
-    int32_t offset;
-    int32_t lineno;
-};
-
-static struct FileName {
-    struct FileName *next;
-    char *name;
-    int32_t index;
-} *fnhead, **fntail;
-
-static struct Array {
-    struct Array *next;
-    unsigned size;
-    int basetype;
-} *arrhead, **arrtail;
-
-static struct ieeePublic {
-    struct ieeePublic *next;
-    char *name;
-    int32_t offset;
-    int32_t segment;               /* only if it's far-absolute */
-    int32_t index;
-    int type;                   /* for debug purposes */
-} *fpubhead, **fpubtail, *last_defined;
-
-static struct ieeeExternal {
-    struct ieeeExternal *next;
-    char *name;
-    int32_t commonsize;
-} *exthead, **exttail;
-
-static int externals;
-
-static struct ExtBack {
-    struct ExtBack *next;
-    int index[EXT_BLKSIZ];
-} *ebhead, **ebtail;
-
-/* NOTE: the first segment MUST be the lineno segment */
-static struct ieeeSection {
-    struct ieeeSection *next;
-    char *name;
-    struct ieeeObjData *data, *datacurr;
-    struct ieeeFixupp *fptr, *flptr;
-    int32_t index;                 /* the NASM segment id */
-    int32_t ieee_index;            /* the OBJ-file segment index */
-    int32_t currentpos;
-    int32_t align;                 /* can be SEG_ABS + absolute addr */
-    int32_t startpos;
-    int32_t use32;                 /* is this segment 32-bit? */
-    struct ieeePublic *pubhead, **pubtail, *lochead, **loctail;
-    enum {
-        CMB_PRIVATE = 0,
-        CMB_PUBLIC = 2,
-        CMB_COMMON = 6
-    } combine;
-} *seghead, **segtail, *ieee_seg_needs_update;
-
-struct ieeeObjData {
-    struct ieeeObjData *next;
-    uint8_t data[HUNKSIZE];
-};
-
-struct ieeeFixupp {
-    struct ieeeFixupp *next;
-    enum {
-        FT_SEG = 0,
-        FT_REL = 1,
-        FT_OFS = 2,
-        FT_EXT = 3,
-        FT_WRT = 4,
-        FT_EXTREL = 5,
-        FT_EXTWRT = 6,
-        FT_EXTSEG = 7
-    } ftype;
-    int16_t size;
-    int32_t id1;
-    int32_t id2;
-    int32_t offset;
-    int32_t addend;
-};
-
-static int32_t ieee_entry_seg, ieee_entry_ofs;
-static int checksum;
-
-extern const struct ofmt of_ieee;
-static const struct dfmt ladsoft_debug_form;
-
-static void ieee_data_new(struct ieeeSection *);
-static void ieee_write_fixup(int32_t, int32_t, struct ieeeSection *,
-                             int, uint64_t, int32_t);
-static void ieee_install_fixup(struct ieeeSection *, struct ieeeFixupp *);
-static int32_t ieee_segment(char *, int, int *);
-static void ieee_write_file(void);
-static void ieee_write_byte(struct ieeeSection *, int);
-static void ieee_write_word(struct ieeeSection *, int);
-static void ieee_write_dword(struct ieeeSection *, int32_t);
-static void ieee_putascii(char *, ...);
-static void ieee_putcs(int);
-static int32_t ieee_putld(int32_t, int32_t, uint8_t *);
-static int32_t ieee_putlr(struct ieeeFixupp *);
-static void ieee_unqualified_name(char *, char *);
-
-/*
- * pup init
- */
-static void ieee_init(void)
-{
-    any_segs = false;
-    fpubhead = NULL;
-    fpubtail = &fpubhead;
-    exthead = NULL;
-    exttail = &exthead;
-    externals = 1;
-    ebhead = NULL;
-    ebtail = &ebhead;
-    seghead = ieee_seg_needs_update = NULL;
-    segtail = &seghead;
-    ieee_entry_seg = NO_SEG;
-    ieee_uppercase = false;
-    checksum = 0;
-}
-
-static int ieee_set_info(enum geninfo type, char **val)
-{
-    (void)type;
-    (void)val;
-
-    return 0;
-}
-
-/*
- * Rundown
- */
-static void ieee_cleanup(void)
-{
-    ieee_write_file();
-    dfmt->cleanup();
-    while (seghead) {
-        struct ieeeSection *segtmp = seghead;
-        seghead = seghead->next;
-        while (segtmp->pubhead) {
-            struct ieeePublic *pubtmp = segtmp->pubhead;
-            segtmp->pubhead = pubtmp->next;
-            nasm_free(pubtmp);
-        }
-        while (segtmp->fptr) {
-            struct ieeeFixupp *fixtmp = segtmp->fptr;
-            segtmp->fptr = fixtmp->next;
-            nasm_free(fixtmp);
-        }
-        while (segtmp->data) {
-            struct ieeeObjData *dattmp = segtmp->data;
-            segtmp->data = dattmp->next;
-            nasm_free(dattmp);
-        }
-        nasm_free(segtmp);
-    }
-    while (fpubhead) {
-        struct ieeePublic *pubtmp = fpubhead;
-        fpubhead = fpubhead->next;
-        nasm_free(pubtmp);
-    }
-    while (exthead) {
-        struct ieeeExternal *exttmp = exthead;
-        exthead = exthead->next;
-        nasm_free(exttmp);
-    }
-    while (ebhead) {
-        struct ExtBack *ebtmp = ebhead;
-        ebhead = ebhead->next;
-        nasm_free(ebtmp);
-    }
-}
-
-/*
- * callback for labels
- */
-static void ieee_deflabel(char *name, int32_t segment,
-                          int64_t offset, int is_global, char *special)
-{
-    /*
-     * We have three cases:
-     *
-     * (i) `segment' is a segment-base. If so, set the name field
-     * for the segment structure it refers to, and then
-     * return.
-     *
-     * (ii) `segment' is one of our segments, or a SEG_ABS segment.
-     * Save the label position for later output of a PUBDEF record.
-     *
-     *
-     * (iii) `segment' is not one of our segments. Save the label
-     * position for later output of an EXTDEF.
-     */
-    struct ieeeExternal *ext;
-    struct ExtBack *eb;
-    struct ieeeSection *seg;
-    int i;
-
-    if (special) {
-        nasm_error(ERR_NONFATAL, "unrecognised symbol type `%s'", special);
-    }
-    /*
-     * First check for the double-period, signifying something
-     * unusual.
-     */
-    if (name[0] == '.' && name[1] == '.' && name[2] != '@') {
-        if (!strcmp(name, "..start")) {
-            ieee_entry_seg = segment;
-            ieee_entry_ofs = offset;
-        }
-        return;
-    }
-
-    /*
-     * Case (i):
-     */
-    if (ieee_seg_needs_update) {
-        ieee_seg_needs_update->name = name;
-        return;
-    }
-    if (segment < SEG_ABS && segment != NO_SEG && segment % 2)
-        return;
-
-    /*
-     * case (ii)
-     */
-    if (segment >= SEG_ABS) {
-        /*
-         * SEG_ABS subcase of (ii).
-         */
-        if (is_global) {
-            struct ieeePublic *pub;
-
-            pub = *fpubtail = nasm_malloc(sizeof(*pub));
-            fpubtail = &pub->next;
-            pub->next = NULL;
-            pub->name = name;
-            pub->offset = offset;
-            pub->segment = segment & ~SEG_ABS;
-        }
-        return;
-    }
-
-    for (seg = seghead; seg && is_global; seg = seg->next)
-        if (seg->index == segment) {
-            struct ieeePublic *pub;
-
-            last_defined = pub = *seg->pubtail = nasm_malloc(sizeof(*pub));
-            seg->pubtail = &pub->next;
-            pub->next = NULL;
-            pub->name = name;
-            pub->offset = offset;
-            pub->index = seg->ieee_index;
-            pub->segment = -1;
-            return;
-        }
-
-    /*
-     * Case (iii).
-     */
-    if (is_global) {
-        ext = *exttail = nasm_malloc(sizeof(*ext));
-        ext->next = NULL;
-        exttail = &ext->next;
-        ext->name = name;
-        if (is_global == 2)
-            ext->commonsize = offset;
-        else
-            ext->commonsize = 0;
-        i = segment / 2;
-        eb = ebhead;
-        if (!eb) {
-            eb = *ebtail = nasm_zalloc(sizeof(*eb));
-            eb->next = NULL;
-            ebtail = &eb->next;
-        }
-        while (i > EXT_BLKSIZ) {
-            if (eb && eb->next)
-                eb = eb->next;
-            else {
-                eb = *ebtail = nasm_zalloc(sizeof(*eb));
-                eb->next = NULL;
-                ebtail = &eb->next;
-            }
-            i -= EXT_BLKSIZ;
-        }
-        eb->index[i] = externals++;
-    }
-
-}
-
-/*
- * Put data out
- */
-static void ieee_out(int32_t segto, const void *data,
-		     enum out_type type, uint64_t size,
-                     int32_t segment, int32_t wrt)
-{
-    const uint8_t *ucdata;
-    int32_t ldata;
-    struct ieeeSection *seg;
-
-    /*
-     * handle absolute-assembly (structure definitions)
-     */
-    if (segto == NO_SEG) {
-        if (type != OUT_RESERVE)
-            nasm_error(ERR_NONFATAL, "attempt to assemble code in [ABSOLUTE]"
-                  " space");
-        return;
-    }
-
-    /*
-     * If `any_segs' is still false, we must define a default
-     * segment.
-     */
-    if (!any_segs) {
-        int tempint;            /* ignored */
-        if (segto != ieee_segment("__NASMDEFSEG", 2, &tempint))
-            nasm_panic(0, "strange segment conditions in IEEE driver");
-    }
-
-    /*
-     * Find the segment we are targetting.
-     */
-    for (seg = seghead; seg; seg = seg->next)
-        if (seg->index == segto)
-            break;
-    if (!seg)
-        nasm_panic(0, "code directed to nonexistent segment?");
-
-    if (type == OUT_RAWDATA) {
-        ucdata = data;
-        while (size--)
-            ieee_write_byte(seg, *ucdata++);
-    } else if (type == OUT_ADDRESS || type == OUT_REL2ADR ||
-               type == OUT_REL4ADR) {
-        if (type == OUT_ADDRESS)
-            size = abs((int)size);
-        else if (segment == NO_SEG)
-            nasm_error(ERR_NONFATAL, "relative call to absolute address not"
-                  " supported by IEEE format");
-        ldata = *(int64_t *)data;
-        if (type == OUT_REL2ADR)
-            ldata += (size - 2);
-        if (type == OUT_REL4ADR)
-            ldata += (size - 4);
-        ieee_write_fixup(segment, wrt, seg, size, type, ldata);
-        if (size == 2)
-            ieee_write_word(seg, ldata);
-        else
-            ieee_write_dword(seg, ldata);
-    } else if (type == OUT_RESERVE) {
-        while (size--)
-            ieee_write_byte(seg, 0);
-    }
-}
-
-static void ieee_data_new(struct ieeeSection *segto)
-{
-
-    if (!segto->data)
-        segto->data = segto->datacurr =
-            nasm_malloc(sizeof(*(segto->datacurr)));
-    else
-        segto->datacurr = segto->datacurr->next =
-            nasm_malloc(sizeof(*(segto->datacurr)));
-    segto->datacurr->next = NULL;
-}
-
-/*
- * this routine is unalduterated bloatware.  I usually don't do this
- * but I might as well see what it is like on a harmless program.
- * If anyone wants to optimize this is a good canditate!
- */
-static void ieee_write_fixup(int32_t segment, int32_t wrt,
-                             struct ieeeSection *segto, int size,
-                             uint64_t realtype, int32_t offset)
-{
-    struct ieeeSection *target;
-    struct ieeeFixupp s;
-
-    /* Don't put a fixup for things NASM can calculate */
-    if (wrt == NO_SEG && segment == NO_SEG)
-        return;
-
-    s.ftype = -1;
-    /* if it is a WRT offset */
-    if (wrt != NO_SEG) {
-        s.ftype = FT_WRT;
-        s.addend = offset;
-        if (wrt >= SEG_ABS)
-            s.id1 = -(wrt - SEG_ABS);
-        else {
-            if (wrt % 2 && realtype != OUT_REL2ADR
-                && realtype != OUT_REL4ADR) {
-                wrt--;
-
-                for (target = seghead; target; target = target->next)
-                    if (target->index == wrt)
-                        break;
-                if (target) {
-                    s.id1 = target->ieee_index;
-                    for (target = seghead; target; target = target->next)
-                        if (target->index == segment)
-                            break;
-
-                    if (target)
-                        s.id2 = target->ieee_index;
-                    else {
-                        /*
-                         * Now we assume the segment field is being used
-                         * to hold an extern index
-                         */
-                        int32_t i = segment / 2;
-                        struct ExtBack *eb = ebhead;
-                        while (i > EXT_BLKSIZ) {
-                            if (eb)
-                                eb = eb->next;
-                            else
-                                break;
-                            i -= EXT_BLKSIZ;
-                        }
-                        /* if we have an extern decide the type and make a record
-                         */
-                        if (eb) {
-                            s.ftype = FT_EXTWRT;
-                            s.addend = 0;
-                            s.id2 = eb->index[i];
-                        } else
-                            nasm_error(ERR_NONFATAL,
-                                  "Source of WRT must be an offset");
-                    }
-
-                } else
-                    nasm_panic(0,
-                          "unrecognised WRT value in ieee_write_fixup");
-            } else
-                nasm_error(ERR_NONFATAL, "target of WRT must be a section ");
-        }
-        s.size = size;
-        ieee_install_fixup(segto, &s);
-        return;
-    }
-    /* Pure segment fixup ? */
-    if (segment != NO_SEG) {
-        s.ftype = FT_SEG;
-        s.id1 = 0;
-        if (segment >= SEG_ABS) {
-            /* absolute far segment fixup */
-            s.id1 = -(segment - ~SEG_ABS);
-        } else if (segment % 2) {
-            /* fixup to named segment */
-            /* look it up */
-            for (target = seghead; target; target = target->next)
-                if (target->index == segment - 1)
-                    break;
-            if (target)
-                s.id1 = target->ieee_index;
-            else {
-                /*
-                 * Now we assume the segment field is being used
-                 * to hold an extern index
-                 */
-                int32_t i = segment / 2;
-                struct ExtBack *eb = ebhead;
-                while (i > EXT_BLKSIZ) {
-                    if (eb)
-                        eb = eb->next;
-                    else
-                        break;
-                    i -= EXT_BLKSIZ;
-                }
-                /* if we have an extern decide the type and make a record
-                 */
-                if (eb) {
-                    if (realtype == OUT_REL2ADR || realtype == OUT_REL4ADR) {
-                        nasm_panic(0,
-                              "Segment of a rel not supported in ieee_write_fixup");
-                    } else {
-                        /* If we want the segment */
-                        s.ftype = FT_EXTSEG;
-                        s.addend = 0;
-                        s.id1 = eb->index[i];
-                    }
-
-                } else
-                    /* If we get here the seg value doesn't make sense */
-                    nasm_panic(0,
-                          "unrecognised segment value in ieee_write_fixup");
-            }
-
-        } else {
-            /* Assume we are offsetting directly from a section
-             * So look up the target segment
-             */
-            for (target = seghead; target; target = target->next)
-                if (target->index == segment)
-                    break;
-            if (target) {
-                if (realtype == OUT_REL2ADR || realtype == OUT_REL4ADR) {
-                    /* PC rel to a known offset */
-                    s.id1 = target->ieee_index;
-                    s.ftype = FT_REL;
-                    s.size = size;
-                    s.addend = offset;
-                } else {
-                    /* We were offsetting from a seg */
-                    s.id1 = target->ieee_index;
-                    s.ftype = FT_OFS;
-                    s.size = size;
-                    s.addend = offset;
-                }
-            } else {
-                /*
-                 * Now we assume the segment field is being used
-                 * to hold an extern index
-                 */
-                int32_t i = segment / 2;
-                struct ExtBack *eb = ebhead;
-                while (i > EXT_BLKSIZ) {
-                    if (eb)
-                        eb = eb->next;
-                    else
-                        break;
-                    i -= EXT_BLKSIZ;
-                }
-                /* if we have an extern decide the type and make a record
-                 */
-                if (eb) {
-                    if (realtype == OUT_REL2ADR || realtype == OUT_REL4ADR) {
-                        s.ftype = FT_EXTREL;
-                        s.addend = 0;
-                        s.id1 = eb->index[i];
-                    } else {
-                        /* else we want the external offset */
-                        s.ftype = FT_EXT;
-                        s.addend = 0;
-                        s.id1 = eb->index[i];
-                    }
-
-                } else
-                    /* If we get here the seg value doesn't make sense */
-                    nasm_panic(0,
-                          "unrecognised segment value in ieee_write_fixup");
-            }
-        }
-        if (size != 2 && s.ftype == FT_SEG)
-            nasm_error(ERR_NONFATAL, "IEEE format can only handle 2-byte"
-                  " segment base references");
-        s.size = size;
-        ieee_install_fixup(segto, &s);
-        return;
-    }
-    /* should never get here */
-}
-static void ieee_install_fixup(struct ieeeSection *seg,
-                               struct ieeeFixupp *fix)
-{
-    struct ieeeFixupp *f;
-    f = nasm_malloc(sizeof(struct ieeeFixupp));
-    memcpy(f, fix, sizeof(struct ieeeFixupp));
-    f->offset = seg->currentpos;
-    seg->currentpos += fix->size;
-    f->next = NULL;
-    if (seg->fptr)
-        seg->flptr = seg->flptr->next = f;
-    else
-        seg->fptr = seg->flptr = f;
-
-}
-
-/*
- * segment registry
- */
-static int32_t ieee_segment(char *name, int pass, int *bits)
-{
-    /*
-     * We call the label manager here to define a name for the new
-     * segment, and when our _own_ label-definition stub gets
-     * called in return, it should register the new segment name
-     * using the pointer it gets passed. That way we save memory,
-     * by sponging off the label manager.
-     */
-    if (!name) {
-        *bits = 16;
-        if (!any_segs)
-            return 0;
-        return seghead->index;
-    } else {
-        struct ieeeSection *seg;
-        int ieee_idx, attrs;
-	bool rn_error;
-        char *p;
-
-        /*
-         * Look for segment attributes.
-         */
-        attrs = 0;
-        while (*name == '.')
-            name++;             /* hack, but a documented one */
-        p = name;
-        while (*p && !nasm_isspace(*p))
-            p++;
-        if (*p) {
-            *p++ = '\0';
-            while (*p && nasm_isspace(*p))
-                *p++ = '\0';
-        }
-        while (*p) {
-            while (*p && !nasm_isspace(*p))
-                p++;
-            if (*p) {
-                *p++ = '\0';
-                while (*p && nasm_isspace(*p))
-                    *p++ = '\0';
-            }
-
-            attrs++;
-        }
-
-        ieee_idx = 1;
-        for (seg = seghead; seg; seg = seg->next) {
-            ieee_idx++;
-            if (!strcmp(seg->name, name)) {
-                if (attrs > 0 && pass == 1)
-                    nasm_error(ERR_WARNING, "segment attributes specified on"
-                          " redeclaration of segment: ignoring");
-                if (seg->use32)
-                    *bits = 32;
-                else
-                    *bits = 16;
-                return seg->index;
-            }
-        }
-
-        *segtail = seg = nasm_malloc(sizeof(*seg));
-        seg->next = NULL;
-        segtail = &seg->next;
-        seg->index = seg_alloc();
-        seg->ieee_index = ieee_idx;
-        any_segs = true;
-        seg->name = NULL;
-        seg->currentpos = 0;
-        seg->align = 1;         /* default */
-        seg->use32 = *bits == 32;       /* default to user spec */
-        seg->combine = CMB_PUBLIC;      /* default */
-        seg->pubhead = NULL;
-        seg->pubtail = &seg->pubhead;
-        seg->data = NULL;
-        seg->fptr = NULL;
-        seg->lochead = NULL;
-        seg->loctail = &seg->lochead;
-
-        /*
-         * Process the segment attributes.
-         */
-        p = name;
-        while (attrs--) {
-            p += strlen(p);
-            while (!*p)
-                p++;
-
-            /*
-             * `p' contains a segment attribute.
-             */
-            if (!nasm_stricmp(p, "private"))
-                seg->combine = CMB_PRIVATE;
-            else if (!nasm_stricmp(p, "public"))
-                seg->combine = CMB_PUBLIC;
-            else if (!nasm_stricmp(p, "common"))
-                seg->combine = CMB_COMMON;
-            else if (!nasm_stricmp(p, "use16"))
-                seg->use32 = false;
-            else if (!nasm_stricmp(p, "use32"))
-                seg->use32 = true;
-            else if (!nasm_strnicmp(p, "align=", 6)) {
-                seg->align = readnum(p + 6, &rn_error);
-                if (seg->align == 0)
-                    seg->align = 1;
-                if (rn_error) {
-                    seg->align = 1;
-                    nasm_error(ERR_NONFATAL, "segment alignment should be"
-                          " numeric");
-                }
-                switch (seg->align) {
-                case 1:        /* BYTE */
-                case 2:        /* WORD */
-                case 4:        /* DWORD */
-                case 16:       /* PARA */
-                case 256:      /* PAGE */
-                case 8:
-                case 32:
-                case 64:
-                case 128:
-                    break;
-                default:
-                    nasm_error(ERR_NONFATAL, "invalid alignment value %d",
-                          seg->align);
-                    seg->align = 1;
-                    break;
-                }
-            } else if (!nasm_strnicmp(p, "absolute=", 9)) {
-                seg->align = SEG_ABS + readnum(p + 9, &rn_error);
-                if (rn_error)
-                    nasm_error(ERR_NONFATAL, "argument to `absolute' segment"
-                          " attribute should be numeric");
-            }
-        }
-
-        ieee_seg_needs_update = seg;
-        if (seg->align >= SEG_ABS)
-            define_label(name, NO_SEG, seg->align - SEG_ABS,
-			 NULL, false, false);
-        else
-            define_label(name, seg->index + 1, 0L, NULL, false, false);
-        ieee_seg_needs_update = NULL;
-
-        if (seg->use32)
-            *bits = 32;
-        else
-            *bits = 16;
-        return seg->index;
-    }
-}
-
-/*
- * directives supported
- */
-static enum directive_result
-ieee_directive(enum directives directive, char *value, int pass)
-{
-
-    (void)value;
-    (void)pass;
-
-    switch (directive) {
-    case D_UPPERCASE:
-        ieee_uppercase = true;
-        return DIRR_OK;
-	
-    default:
-	return DIRR_UNKNOWN;
-    }
-}
-
-static void ieee_sectalign(int32_t seg, unsigned int value)
-{
-    struct ieeeSection *s;
-
-    list_for_each(s, seghead) {
-        if (s->index == seg)
-            break;
-    }
-
-    /*
-     * 256 is maximum there, note it may happen
-     * that align is issued on "absolute" segment
-     * it's fine since SEG_ABS > 256 and we never
-     * get escape this test
-     */
-    if (!s || !is_power2(value) || value > 256)
-        return;
-
-    if ((unsigned int)s->align < value)
-        s->align = value;
-}
-
-/*
- * Return segment data
- */
-static int32_t ieee_segbase(int32_t segment)
-{
-    struct ieeeSection *seg;
-
-    /*
-     * Find the segment in our list.
-     */
-    for (seg = seghead; seg; seg = seg->next)
-        if (seg->index == segment - 1)
-            break;
-
-    if (!seg)
-        return segment;         /* not one of ours - leave it alone */
-
-    if (seg->align >= SEG_ABS)
-        return seg->align;      /* absolute segment */
-
-    return segment;             /* no special treatment */
-}
-
-/*
- * filename
- */
-static void ieee_filename(char *inname, char *outname)
-{
-    strcpy(ieee_infile, inname);
-    standard_extension(inname, outname, ".o");
-}
-
-static void ieee_write_file(void)
-{
-    struct tm *thetime;
-    time_t reltime;
-    struct FileName *fn;
-    struct ieeeSection *seg;
-    struct ieeePublic *pub, *loc;
-    struct ieeeExternal *ext;
-    struct ieeeObjData *data;
-    struct ieeeFixupp *fix;
-    struct Array *arr;
-    int i;
-    const bool debuginfo = (dfmt == &ladsoft_debug_form);
-
-    /*
-     * Write the module header
-     */
-    ieee_putascii("MBFNASM,%02X%s.\n", strlen(ieee_infile), ieee_infile);
-
-    /*
-     * Write the NASM boast comment.
-     */
-    ieee_putascii("CO0,%02X%s.\n", strlen(nasm_comment), nasm_comment);
-
-    /*
-     * write processor-specific information
-     */
-    ieee_putascii("AD8,4,L.\n");
-
-    /*
-     * date and time
-     */
-    time(&reltime);
-    thetime = localtime(&reltime);
-    ieee_putascii("DT%04d%02d%02d%02d%02d%02d.\n",
-                  1900 + thetime->tm_year, thetime->tm_mon + 1,
-                  thetime->tm_mday, thetime->tm_hour, thetime->tm_min,
-                  thetime->tm_sec);
-    /*
-     * if debugging, dump file names
-     */
-    for (fn = fnhead; fn && debuginfo; fn = fn->next) {
-        ieee_putascii("C0105,%02X%s.\n", strlen(fn->name), fn->name);
-    }
-
-    ieee_putascii("CO101,07ENDHEAD.\n");
-    /*
-     * the standard doesn't specify when to put checksums,
-     * we'll just do it periodically.
-     */
-    ieee_putcs(false);
-
-    /*
-     * Write the section headers
-     */
-    seg = seghead;
-    if (!debuginfo && !strcmp(seg->name, "??LINE"))
-        seg = seg->next;
-    while (seg) {
-        char buf[256];
-        char attrib;
-        switch (seg->combine) {
-        case CMB_PUBLIC:
-        default:
-            attrib = 'C';
-            break;
-        case CMB_PRIVATE:
-            attrib = 'S';
-            break;
-        case CMB_COMMON:
-            attrib = 'M';
-            break;
-        }
-        ieee_unqualified_name(buf, seg->name);
-        if (seg->align >= SEG_ABS) {
-            ieee_putascii("ST%X,A,%02X%s.\n", seg->ieee_index,
-                          strlen(buf), buf);
-            ieee_putascii("ASL%X,%lX.\n", seg->ieee_index,
-                          (seg->align - SEG_ABS) * 16);
-        } else {
-            ieee_putascii("ST%X,%c,%02X%s.\n", seg->ieee_index, attrib,
-                          strlen(buf), buf);
-            ieee_putascii("SA%X,%lX.\n", seg->ieee_index, seg->align);
-            ieee_putascii("ASS%X,%X.\n", seg->ieee_index,
-                          seg->currentpos);
-        }
-        seg = seg->next;
-    }
-    /*
-     * write the start address if there is one
-     */
-    if (ieee_entry_seg) {
-        for (seg = seghead; seg; seg = seg->next)
-            if (seg->index == ieee_entry_seg)
-                break;
-        if (!seg)
-            nasm_panic(0, "Start address records are incorrect");
-        else
-            ieee_putascii("ASG,R%X,%lX,+.\n", seg->ieee_index,
-                          ieee_entry_ofs);
-    }
-
-    ieee_putcs(false);
-    /*
-     * Write the publics
-     */
-    i = 1;
-    for (seg = seghead; seg; seg = seg->next) {
-        for (pub = seg->pubhead; pub; pub = pub->next) {
-            char buf[256];
-            ieee_unqualified_name(buf, pub->name);
-            ieee_putascii("NI%X,%02X%s.\n", i, strlen(buf), buf);
-            if (pub->segment == -1)
-                ieee_putascii("ASI%X,R%X,%lX,+.\n", i, pub->index,
-                              pub->offset);
-            else
-                ieee_putascii("ASI%X,%lX,%lX,+.\n", i, pub->segment * 16,
-                              pub->offset);
-            if (debuginfo) {
-                if (pub->type >= 0x100)
-                    ieee_putascii("ATI%X,T%X.\n", i, pub->type - 0x100);
-                else
-                    ieee_putascii("ATI%X,%X.\n", i, pub->type);
-            }
-            i++;
-        }
-    }
-    pub = fpubhead;
-    i = 1;
-    while (pub) {
-        char buf[256];
-        ieee_unqualified_name(buf, pub->name);
-        ieee_putascii("NI%X,%02X%s.\n", i, strlen(buf), buf);
-        if (pub->segment == -1)
-            ieee_putascii("ASI%X,R%X,%lX,+.\n", i, pub->index,
-                          pub->offset);
-        else
-            ieee_putascii("ASI%X,%lX,%lX,+.\n", i, pub->segment * 16,
-                          pub->offset);
-        if (debuginfo) {
-            if (pub->type >= 0x100)
-                ieee_putascii("ATI%X,T%X.\n", i, pub->type - 0x100);
-            else
-                ieee_putascii("ATI%X,%X.\n", i, pub->type);
-        }
-        i++;
-        pub = pub->next;
-    }
-    /*
-     * Write the externals
-     */
-    ext = exthead;
-    i = 1;
-    while (ext) {
-        char buf[256];
-        ieee_unqualified_name(buf, ext->name);
-        ieee_putascii("NX%X,%02X%s.\n", i++, strlen(buf), buf);
-        ext = ext->next;
-    }
-    ieee_putcs(false);
-
-    /*
-     * IEEE doesn't have a standard pass break record
-     * so use the ladsoft variant
-     */
-    ieee_putascii("CO100,06ENDSYM.\n");
-
-    /*
-     * now put types
-     */
-    i = ARRAY_BOT;
-    for (arr = arrhead; arr && debuginfo; arr = arr->next) {
-        ieee_putascii("TY%X,20,%X,%lX.\n", i++, arr->basetype,
-                      arr->size);
-    }
-    /*
-     * now put locals
-     */
-    i = 1;
-    for (seg = seghead; seg && debuginfo; seg = seg->next) {
-        for (loc = seg->lochead; loc; loc = loc->next) {
-            char buf[256];
-            ieee_unqualified_name(buf, loc->name);
-            ieee_putascii("NN%X,%02X%s.\n", i, strlen(buf), buf);
-            if (loc->segment == -1)
-                ieee_putascii("ASN%X,R%X,%lX,+.\n", i, loc->index,
-                              loc->offset);
-            else
-                ieee_putascii("ASN%X,%lX,%lX,+.\n", i, loc->segment * 16,
-                              loc->offset);
-            if (debuginfo) {
-                if (loc->type >= 0x100)
-                    ieee_putascii("ATN%X,T%X.\n", i, loc->type - 0x100);
-                else
-                    ieee_putascii("ATN%X,%X.\n", i, loc->type);
-            }
-            i++;
-        }
-    }
-
-    /*
-     *  put out section data;
-     */
-    seg = seghead;
-    if (!debuginfo && !strcmp(seg->name, "??LINE"))
-        seg = seg->next;
-    while (seg) {
-        if (seg->currentpos) {
-            int32_t size, org = 0;
-            data = seg->data;
-            ieee_putascii("SB%X.\n", seg->ieee_index);
-            fix = seg->fptr;
-            while (fix) {
-                size = HUNKSIZE - (org % HUNKSIZE);
-                size =
-                    size + org >
-                    seg->currentpos ? seg->currentpos - org : size;
-                size = fix->offset - org > size ? size : fix->offset - org;
-                org = ieee_putld(org, org + size, data->data);
-                if (org % HUNKSIZE == 0)
-                    data = data->next;
-                if (org == fix->offset) {
-                    org += ieee_putlr(fix);
-                    fix = fix->next;
-                }
-            }
-            while (org < seg->currentpos && data) {
-                size =
-                    seg->currentpos - org >
-                    HUNKSIZE ? HUNKSIZE : seg->currentpos - org;
-                org = ieee_putld(org, org + size, data->data);
-                data = data->next;
-            }
-            ieee_putcs(false);
-
-        }
-        seg = seg->next;
-    }
-    /*
-     * module end record
-     */
-    ieee_putascii("ME.\n");
-}
-
-static void ieee_write_byte(struct ieeeSection *seg, int data)
-{
-    int temp;
-    if (!(temp = seg->currentpos++ % HUNKSIZE))
-        ieee_data_new(seg);
-    seg->datacurr->data[temp] = data;
-}
-
-static void ieee_write_word(struct ieeeSection *seg, int data)
-{
-    ieee_write_byte(seg, data & 0xFF);
-    ieee_write_byte(seg, (data >> 8) & 0xFF);
-}
-
-static void ieee_write_dword(struct ieeeSection *seg, int32_t data)
-{
-    ieee_write_byte(seg, data & 0xFF);
-    ieee_write_byte(seg, (data >> 8) & 0xFF);
-    ieee_write_byte(seg, (data >> 16) & 0xFF);
-    ieee_write_byte(seg, (data >> 24) & 0xFF);
-}
-static void ieee_putascii(char *format, ...)
-{
-    char buffer[256];
-    int i, l;
-    va_list ap;
-
-    va_start(ap, format);
-    vsnprintf(buffer, sizeof(buffer), format, ap);
-    l = strlen(buffer);
-    for (i = 0; i < l; i++)
-        if ((uint8_t)buffer[i] > 31)
-            checksum += buffer[i];
-    va_end(ap);
-    fputs(buffer, ofile);
-}
-
-/*
- * put out a checksum record */
-static void ieee_putcs(int toclear)
-{
-    if (toclear) {
-        ieee_putascii("CS.\n");
-    } else {
-        checksum += 'C';
-        checksum += 'S';
-        ieee_putascii("CS%02X.\n", checksum & 127);
-    }
-    checksum = 0;
-}
-
-static int32_t ieee_putld(int32_t start, int32_t end, uint8_t *buf)
-{
-    int32_t val;
-    if (start == end)
-        return (start);
-    val = start % HUNKSIZE;
-    /* fill up multiple lines */
-    while (end - start >= LDPERLINE) {
-        int i;
-        ieee_putascii("LD");
-        for (i = 0; i < LDPERLINE; i++) {
-            ieee_putascii("%02X", buf[val++]);
-            start++;
-        }
-        ieee_putascii(".\n");
-    }
-    /* if no partial lines */
-    if (start == end)
-        return (start);
-    /* make a partial line */
-    ieee_putascii("LD");
-    while (start < end) {
-        ieee_putascii("%02X", buf[val++]);
-        start++;
-    }
-    ieee_putascii(".\n");
-    return (start);
-}
-static int32_t ieee_putlr(struct ieeeFixupp *p)
-{
-/*
- * To deal with the vagaries of segmentation the LADsoft linker
- * defines two types of segments: absolute and virtual.  Note that
- * 'absolute' in this context is a different thing from the IEEE
- * definition of an absolute segment type, which is also supported. If a
- * sement is linked in virtual mode the low limit (L-var) is
- * subtracted from each R,X, and P variable which appears in an
- * expression, so that we can have relative offsets.  Meanwhile
- * in the ABSOLUTE mode this subtraction is not done and
- * so we can use absolute offsets from 0.  In the LADsoft linker
- * this configuration is not done in the assemblker source but in
- * a source the linker reads.  Generally this type of thing only
- * becomes an issue if real mode code is used.  A pure 32-bit linker could
- * get away without defining the virtual mode...
- */
-    char buf[40];
-    int32_t size = p->size;
-    switch (p->ftype) {
-    case FT_SEG:
-        if (p->id1 < 0)
-            sprintf(buf, "%"PRIX32"", -p->id1);
-        else
-            sprintf(buf, "L%"PRIX32",10,/", p->id1);
-        break;
-    case FT_OFS:
-        sprintf(buf, "R%"PRIX32",%"PRIX32",+", p->id1, p->addend);
-        break;
-    case FT_REL:
-        sprintf(buf, "R%"PRIX32",%"PRIX32",+,P,-,%X,-", p->id1, p->addend, p->size);
-        break;
-
-    case FT_WRT:
-        if (p->id2 < 0)
-            sprintf(buf, "R%"PRIX32",%"PRIX32",+,L%"PRIX32",+,%"PRIX32",-", p->id2, p->addend,
-                    p->id2, -p->id1 * 16);
-        else
-            sprintf(buf, "R%"PRIX32",%"PRIX32",+,L%"PRIX32",+,L%"PRIX32",-", p->id2, p->addend,
-                    p->id2, p->id1);
-        break;
-    case FT_EXT:
-        sprintf(buf, "X%"PRIX32"", p->id1);
-        break;
-    case FT_EXTREL:
-        sprintf(buf, "X%"PRIX32",P,-,%"PRIX32",-", p->id1, size);
-        break;
-    case FT_EXTSEG:
-        /* We needed a non-ieee hack here.
-         * We introduce the Y variable, which is the low
-         * limit of the native segment the extern resides in
-         */
-        sprintf(buf, "Y%"PRIX32",10,/", p->id1);
-        break;
-    case FT_EXTWRT:
-        if (p->id2 < 0)
-            sprintf(buf, "X%"PRIX32",Y%"PRIX32",+,%"PRIX32",-", p->id2, p->id2,
-                    -p->id1 * 16);
-        else
-            sprintf(buf, "X%"PRIX32",Y%"PRIX32",+,L%"PRIX32",-", p->id2, p->id2, p->id1);
-        break;
-    }
-    ieee_putascii("LR(%s,%"PRIX32").\n", buf, size);
-
-    return (size);
-}
-
-/* Dump all segment data (text and fixups )*/
-
-static void ieee_unqualified_name(char *dest, char *source)
-{
-    if (ieee_uppercase) {
-        while (*source)
-            *dest++ = toupper(*source++);
-        *dest = 0;
-    } else
-        strcpy(dest, source);
-}
-static void dbgls_init(void)
-{
-    int tempint;
-
-    fnhead = NULL;
-    fntail = &fnhead;
-    arrindex = ARRAY_BOT;
-    arrhead = NULL;
-    arrtail = &arrhead;
-    ieee_segment("??LINE", 2, &tempint);
-    any_segs = false;
-}
-static void dbgls_cleanup(void)
-{
-    struct ieeeSection *segtmp;
-    while (fnhead) {
-        struct FileName *fntemp = fnhead;
-        fnhead = fnhead->next;
-        nasm_free(fntemp->name);
-        nasm_free(fntemp);
-    }
-    for (segtmp = seghead; segtmp; segtmp = segtmp->next) {
-        while (segtmp->lochead) {
-            struct ieeePublic *loctmp = segtmp->lochead;
-            segtmp->lochead = loctmp->next;
-            nasm_free(loctmp->name);
-            nasm_free(loctmp);
-        }
-    }
-    while (arrhead) {
-        struct Array *arrtmp = arrhead;
-        arrhead = arrhead->next;
-        nasm_free(arrtmp);
-    }
-}
-
-/*
- * because this routine is not bracketed in
- * the main program, this routine will be called even if there
- * is no request for debug info
- * so, we have to make sure the ??LINE segment is avaialbe
- * as the first segment when this debug format is selected
- */
-static void dbgls_linnum(const char *lnfname, int32_t lineno, int32_t segto)
-{
-    struct FileName *fn;
-    struct ieeeSection *seg;
-    int i = 0;
-    if (segto == NO_SEG)
-        return;
-
-    /*
-     * If `any_segs' is still false, we must define a default
-     * segment.
-     */
-    if (!any_segs) {
-        int tempint;            /* ignored */
-        if (segto != ieee_segment("__NASMDEFSEG", 2, &tempint))
-            nasm_panic(0, "strange segment conditions in OBJ driver");
-    }
-
-    /*
-     * Find the segment we are targetting.
-     */
-    for (seg = seghead; seg; seg = seg->next)
-        if (seg->index == segto)
-            break;
-    if (!seg)
-        nasm_panic(0, "lineno directed to nonexistent segment?");
-
-    for (fn = fnhead; fn; fn = fn->next) {
-        if (!nasm_stricmp(lnfname, fn->name))
-            break;
-        i++;
-    }
-    if (!fn) {
-        fn = nasm_malloc(sizeof(*fn));
-        fn->name = nasm_malloc(strlen(lnfname) + 1);
-        fn->index = i;
-        strcpy(fn->name, lnfname);
-        fn->next = NULL;
-        *fntail = fn;
-        fntail = &fn->next;
-    }
-    ieee_write_byte(seghead, fn->index);
-    ieee_write_word(seghead, lineno);
-    ieee_write_fixup(segto, NO_SEG, seghead, 4, OUT_ADDRESS,
-                     seg->currentpos);
-
-}
-static void dbgls_deflabel(char *name, int32_t segment,
-                           int64_t offset, int is_global, char *special)
-{
-    struct ieeeSection *seg;
-
-    /* Keep compiler from warning about special */
-    (void)special;
-
-    /*
-     * Note: ..[^@] special symbols are filtered in labels.c
-     */
-
-    /*
-     * If it's a special-retry from pass two, discard it.
-     */
-    if (is_global == 3)
-        return;
-
-    /*
-     * Case (i):
-     */
-    if (ieee_seg_needs_update)
-        return;
-    if (segment < SEG_ABS && segment != NO_SEG && segment % 2)
-        return;
-
-    if (segment >= SEG_ABS || segment == NO_SEG) {
-        return;
-    }
-
-    /*
-     * If `any_segs' is still false, we might need to define a
-     * default segment, if they're trying to declare a label in
-     * `first_seg'.  But the label should exist due to a prior
-     * call to ieee_deflabel so we can skip that.
-     */
-
-    for (seg = seghead; seg; seg = seg->next)
-        if (seg->index == segment) {
-            struct ieeePublic *loc;
-            /*
-             * Case (ii). Maybe MODPUB someday?
-             */
-            if (!is_global) {
-                last_defined = loc = nasm_malloc(sizeof(*loc));
-                *seg->loctail = loc;
-                seg->loctail = &loc->next;
-                loc->next = NULL;
-                loc->name = nasm_strdup(name);
-                loc->offset = offset;
-                loc->segment = -1;
-                loc->index = seg->ieee_index;
-            }
-        }
-}
-static void dbgls_typevalue(int32_t type)
-{
-    int elem = TYM_ELEMENTS(type);
-    type = TYM_TYPE(type);
-
-    if (!last_defined)
-        return;
-
-    switch (type) {
-    case TY_BYTE:
-        last_defined->type = 1; /* uint8_t */
-        break;
-    case TY_WORD:
-        last_defined->type = 3; /* unsigned word */
-        break;
-    case TY_DWORD:
-        last_defined->type = 5; /* unsigned dword */
-        break;
-    case TY_FLOAT:
-        last_defined->type = 9; /* float */
-        break;
-    case TY_QWORD:
-        last_defined->type = 10;        /* qword */
-        break;
-    case TY_TBYTE:
-        last_defined->type = 11;        /* TBYTE */
-        break;
-    default:
-        last_defined->type = 0x10;      /* near label */
-        break;
-    }
-
-    if (elem > 1) {
-        struct Array *arrtmp = nasm_malloc(sizeof(*arrtmp));
-        int vtype = last_defined->type;
-        arrtmp->size = elem;
-        arrtmp->basetype = vtype;
-        arrtmp->next = NULL;
-        last_defined->type = arrindex++ + 0x100;
-        *arrtail = arrtmp;
-        arrtail = &(arrtmp->next);
-    }
-    last_defined = NULL;
-}
-static void dbgls_output(int output_type, void *param)
-{
-    (void)output_type;
-    (void)param;
-}
-static const struct dfmt ladsoft_debug_form = {
-    "LADsoft Debug Records",
-    "ladsoft",
-    dbgls_init,
-    dbgls_linnum,
-    dbgls_deflabel,
-    null_debug_directive,
-    dbgls_typevalue,
-    dbgls_output,
-    dbgls_cleanup,
-    NULL                        /* pragma list */
-};
-static const struct dfmt * const ladsoft_debug_arr[3] = {
-    &ladsoft_debug_form,
-    &null_debug_form,
-    NULL
-};
-const struct ofmt of_ieee = {
-    "IEEE-695 (LADsoft variant) object file format",
-    "ieee",
-    OFMT_TEXT,
-    32,
-    ladsoft_debug_arr,
-    &ladsoft_debug_form,
-    NULL,
-    ieee_init,
-    ieee_set_info,
-    nasm_do_legacy_output,
-    ieee_out,
-    ieee_deflabel,
-    ieee_segment,
-    ieee_sectalign,
-    ieee_segbase,
-    ieee_directive,
-    ieee_filename,
-    ieee_cleanup,
-    NULL                        /* pragma list */
-};
-
-#endif                          /* OF_IEEE */
--- a/nasmbuild/nasm-2.13rc9/output/outlib.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * libout.c
- *
- * Common routines for the output backends.
- */
-
-#include "compiler.h"
-#include "nasm.h"
-#include "outlib.h"
-
-uint64_t realsize(enum out_type type, uint64_t size)
-{
-    switch (type) {
-    case OUT_REL1ADR:
-	return 1;
-    case OUT_REL2ADR:
-	return 2;
-    case OUT_REL4ADR:
-	return 4;
-    case OUT_REL8ADR:
-	return 8;
-    default:
-	return size;
-    }
-}
--- a/nasmbuild/nasm-2.13rc9/output/outlib.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#ifndef NASM_OUTLIB_H
-#define NASM_OUTLIB_H
-
-#include "nasm.h"
-#include "error.h"
-
-uint64_t realsize(enum out_type type, uint64_t size);
-
-/* Do-nothing versions of some output routines */
-int null_setinfo(enum geninfo type, char **string);
-enum directive_result
-null_directive(enum directives directive, char *value, int pass);
-void null_sectalign(int32_t seg, unsigned int value);
-
-/* Do-nothing versions of all the debug routines */
-void null_debug_init(void);
-void null_debug_linenum(const char *filename, int32_t linenumber,
-			int32_t segto);
-void null_debug_deflabel(char *name, int32_t segment, int64_t offset,
-                         int is_global, char *special);
-void null_debug_directive(const char *directive, const char *params);
-void null_debug_typevalue(int32_t type);
-void null_debug_output(int type, void *param);
-void null_debug_cleanup(void);
-extern const struct dfmt * const null_debug_arr[2];
-
-/* Wrapper for unported backends */
-void nasm_do_legacy_output(const struct out_data *data);
-
-#endif /* NASM_OUTLIB_H */
-
--- a/nasmbuild/nasm-2.13rc9/output/outmacho.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1830 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2017 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * outmacho.c	output routines for the Netwide Assembler to produce
- *		NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X object files
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "labels.h"
-#include "error.h"
-#include "saa.h"
-#include "raa.h"
-#include "rbtree.h"
-#include "outform.h"
-#include "outlib.h"
-
-#if defined(OF_MACHO) || defined(OF_MACHO64)
-
-/* Mach-O in-file header structure sizes */
-#define MACHO_HEADER_SIZE		28
-#define MACHO_SEGCMD_SIZE		56
-#define MACHO_SECTCMD_SIZE		68
-#define MACHO_SYMCMD_SIZE		24
-#define MACHO_NLIST_SIZE		12
-#define MACHO_RELINFO_SIZE		8
-
-#define MACHO_HEADER64_SIZE		32
-#define MACHO_SEGCMD64_SIZE		72
-#define MACHO_SECTCMD64_SIZE		80
-#define MACHO_NLIST64_SIZE		16
-
-/* Mach-O file header values */
-#define	MH_MAGIC		0xfeedface
-#define	MH_MAGIC_64		0xfeedfacf
-#define CPU_TYPE_I386		7		/* x86 platform */
-#define CPU_TYPE_X86_64		0x01000007	/* x86-64 platform */
-#define	CPU_SUBTYPE_I386_ALL	3		/* all-x86 compatible */
-#define	MH_OBJECT		0x1		/* object file */
-
-/* Mach-O header flags */
-#define MH_SUBSECTIONS_VIA_SYMBOLS 0x2000
-
-/* Mach-O load commands */
-#define LC_SEGMENT		0x1		/* 32-bit segment load cmd */
-#define LC_SEGMENT_64		0x19		/* 64-bit segment load cmd */
-#define LC_SYMTAB		0x2		/* symbol table load command */
-
-/* Mach-O relocations numbers */
-
-/* Generic relocs, used by i386 Mach-O */
-#define GENERIC_RELOC_VANILLA   0               /* Generic relocation */
-#define GENERIC_RELOC_TLV	5		/* Thread local */
-
-#define X86_64_RELOC_UNSIGNED   0               /* Absolute address */
-#define X86_64_RELOC_SIGNED     1               /* Signed 32-bit disp */
-#define X86_64_RELOC_BRANCH     2		/* CALL/JMP with 32-bit disp */
-#define X86_64_RELOC_GOT_LOAD   3		/* MOVQ of GOT entry */
-#define X86_64_RELOC_GOT        4		/* Different GOT entry */
-#define X86_64_RELOC_SUBTRACTOR 5		/* Subtracting two symbols */
-#define X86_64_RELOC_SIGNED_1   6		/* SIGNED with -1 addend */
-#define X86_64_RELOC_SIGNED_2   7		/* SIGNED with -2 addend */
-#define X86_64_RELOC_SIGNED_4   8		/* SIGNED with -4 addend */
-#define X86_64_RELOC_TLV        9		/* Thread local */
-
-/* Mach-O VM permission constants */
-#define	VM_PROT_NONE	(0x00)
-#define VM_PROT_READ	(0x01)
-#define VM_PROT_WRITE	(0x02)
-#define VM_PROT_EXECUTE	(0x04)
-
-#define VM_PROT_DEFAULT	(VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXECUTE)
-#define VM_PROT_ALL	(VM_PROT_READ | VM_PROT_WRITE | VM_PROT_EXECUTE)
-
-/* Our internal relocation types */
-enum reltype {
-    RL_ABS,			/* Absolute relocation */
-    RL_REL,			/* Relative relocation */
-    RL_TLV,			/* Thread local */
-    RL_BRANCH,			/* Relative direct branch */
-    RL_SUB,			/* X86_64_RELOC_SUBTRACT */
-    RL_GOT,			/* X86_64_RELOC_GOT */
-    RL_GOTLOAD			/* X86_64_RELOC_GOT_LOAD */
-};
-#define RL_MAX_32	RL_TLV
-#define RL_MAX_64	RL_GOTLOAD
-
-struct macho_fmt {
-    uint32_t ptrsize;		/* Pointer size in bytes */
-    uint32_t mh_magic;		/* Which magic number to use */
-    uint32_t cpu_type;		/* Which CPU type */
-    uint32_t lc_segment;	/* Which segment load command */
-    uint32_t header_size;	/* Header size */
-    uint32_t segcmd_size;	/* Segment command size */
-    uint32_t sectcmd_size;	/* Section command size */
-    uint32_t nlist_size;	/* Nlist (symbol) size */
-    enum reltype maxreltype;	/* Maximum entry in enum reltype permitted */
-    uint32_t reloc_abs;		/* Absolute relocation type */
-    uint32_t reloc_rel;		/* Relative relocation type */
-    uint32_t reloc_tlv;		/* Thread local relocation type */
-};
-
-static struct macho_fmt fmt;
-
-static void fwriteptr(uint64_t data, FILE * fp)
-{
-    fwriteaddr(data, fmt.ptrsize, fp);
-}
-
-struct section {
-    /* nasm internal data */
-    struct section *next;
-    struct SAA *data;
-    int32_t index;
-    int32_t fileindex;
-    struct reloc *relocs;
-    struct rbtree *gsyms;	/* Global symbols in section */
-    int align;
-    bool by_name;		/* This section was specified by full MachO name */
-
-    /* data that goes into the file */
-    char sectname[16];          /* what this section is called */
-    char segname[16];           /* segment this section will be in */
-    uint64_t addr;         /* in-memory address (subject to alignment) */
-    uint64_t size;         /* in-memory and -file size  */
-    uint64_t offset;	   /* in-file offset */
-    uint32_t pad;          /* padding bytes before section */
-    uint32_t nreloc;       /* relocation entry count */
-    uint32_t flags;        /* type and attributes (masked) */
-    uint32_t extreloc;     /* external relocations */
-};
-
-#define SECTION_TYPE	0x000000ff      /* section type mask */
-
-#define	S_REGULAR		(0x0)   /* standard section */
-#define	S_ZEROFILL		(0x1)   /* zerofill, in-memory only */
-
-#define SECTION_ATTRIBUTES_SYS   0x00ffff00     /* system setable attributes */
-#define S_ATTR_SOME_INSTRUCTIONS 0x00000400     /* section contains some
-						   machine instructions */
-#define S_ATTR_EXT_RELOC         0x00000200     /* section has external relocation entries */
-#define S_ATTR_LOC_RELOC         0x00000100     /* section has local relocation entries */
-#define S_ATTR_DEBUG		 0x02000000
-#define S_ATTR_SELF_MODIFYING_CODE 0x04000000
-#define S_ATTR_LIVE_SUPPORT	 0x08000000
-#define S_ATTR_NO_DEAD_STRIP	 0x10000000     /* no dead stripping */
-#define S_ATTR_STRIP_STATIC_SYMS 0x20000000
-#define S_ATTR_NO_TOC            0x40000000
-#define S_ATTR_PURE_INSTRUCTIONS 0x80000000	/* section uses pure machine instructions */
-
-#define S_NASM_TYPE_MASK	 0x800004ff	/* we consider these bits "section type" */
-
-/* fake section for absolute symbols, *not* part of the section linked list */
-static struct section absolute_sect;
-
-struct reloc {
-    /* nasm internal data */
-    struct reloc *next;
-
-    /* data that goes into the file */
-    int32_t addr;		/* op's offset in section */
-    uint32_t snum:24,		/* contains symbol index if
-				 ** ext otherwise in-file
-				 ** section number */
-	pcrel:1,                /* relative relocation */
-	length:2,               /* 0=byte, 1=word, 2=int32_t, 3=int64_t */
-	ext:1,                  /* external symbol referenced */
-	type:4;                 /* reloc type */
-};
-
-#define	R_ABS		0       /* absolute relocation */
-#define R_SCATTERED	0x80000000      /* reloc entry is scattered if
-					** highest bit == 1 */
-
-struct symbol {
-    /* nasm internal data */
-    struct rbtree symv;         /* Global symbol rbtree; "key" contains the
-				   symbol offset. */
-    struct symbol *next;	/* next symbol in the list */
-    char *name;			/* name of this symbol */
-    int32_t initial_snum;	/* symbol number used above in reloc */
-    int32_t snum;		/* true snum for reloc */
-
-    /* data that goes into the file */
-    uint32_t strx;              /* string table index */
-    uint8_t type;		/* symbol type */
-    uint8_t sect;		/* NO_SECT or section number */
-    uint16_t desc;		/* for stab debugging, 0 for us */
-};
-
-/* symbol type bits */
-#define	N_EXT	0x01            /* global or external symbol */
-
-#define	N_UNDF	0x0             /* undefined symbol | n_sect == */
-#define	N_ABS	0x2             /* absolute symbol  |  NO_SECT */
-#define	N_SECT	0xe             /* defined symbol, n_sect holds
-				** section number */
-
-#define	N_TYPE	0x0e            /* type bit mask */
-
-#define DEFAULT_SECTION_ALIGNMENT 0 /* byte (i.e. no) alignment */
-
-/* special section number values */
-#define	NO_SECT		0       /* no section, invalid */
-#define MAX_SECT	255     /* maximum number of sections */
-
-static struct section *sects, **sectstail, **sectstab;
-static struct symbol *syms, **symstail;
-static uint32_t nsyms;
-
-/* These variables are set by macho_layout_symbols() to organize
-   the symbol table and string table in order the dynamic linker
-   expects.  They are then used in macho_write() to put out the
-   symbols and strings in that order.
-
-   The order of the symbol table is:
-     local symbols
-     defined external symbols (sorted by name)
-     undefined external symbols (sorted by name)
-
-   The order of the string table is:
-     strings for external symbols
-     strings for local symbols
- */
-static uint32_t ilocalsym = 0;
-static uint32_t iextdefsym = 0;
-static uint32_t iundefsym = 0;
-static uint32_t nlocalsym;
-static uint32_t nextdefsym;
-static uint32_t nundefsym;
-static struct symbol **extdefsyms = NULL;
-static struct symbol **undefsyms = NULL;
-
-static struct RAA *extsyms;
-static struct SAA *strs;
-static uint32_t strslen;
-
-/* Global file information. This should be cleaned up into either
-   a structure or as function arguments.  */
-static uint32_t head_ncmds = 0;
-static uint32_t head_sizeofcmds = 0;
-static uint32_t head_flags = 0;
-static uint64_t seg_filesize = 0;
-static uint64_t seg_vmsize = 0;
-static uint32_t seg_nsects = 0;
-static uint64_t rel_padcnt = 0;
-
-#define xstrncpy(xdst, xsrc)						\
-    memset(xdst, '\0', sizeof(xdst));	/* zero out whole buffer */	\
-    strncpy(xdst, xsrc, sizeof(xdst));	/* copy over string */		\
-    xdst[sizeof(xdst) - 1] = '\0';      /* proper null-termination */
-
-#define alignint32_t(x)							\
-    ALIGN(x, sizeof(int32_t))	/* align x to int32_t boundary */
-
-#define alignint64_t(x)							\
-    ALIGN(x, sizeof(int64_t))	/* align x to int64_t boundary */
-
-#define alignptr(x) \
-    ALIGN(x, fmt.ptrsize)	/* align x to output format width */
-
-static struct section *get_section_by_name(const char *segname,
-                                           const char *sectname)
-{
-    struct section *s;
-
-    for (s = sects; s != NULL; s = s->next)
-        if (!strcmp(s->segname, segname) && !strcmp(s->sectname, sectname))
-            break;
-
-    return s;
-}
-
-static struct section *get_section_by_index(const int32_t index)
-{
-    struct section *s;
-
-    for (s = sects; s != NULL; s = s->next)
-        if (index == s->index)
-            break;
-
-    return s;
-}
-
-/*
- * Special section numbers which are used to define Mach-O special
- * symbols, which can be used with WRT to provide PIC relocation
- * types.
- */
-static int32_t macho_tlvp_sect;
-static int32_t macho_gotpcrel_sect;
-
-static void macho_init(void)
-{
-    sects = NULL;
-    sectstail = &sects;
-
-    /* Fake section for absolute symbols */
-    absolute_sect.index = NO_SEG;
-
-    syms = NULL;
-    symstail = &syms;
-    nsyms = 0;
-    nlocalsym = 0;
-    nextdefsym = 0;
-    nundefsym = 0;
-
-    extsyms = raa_init();
-    strs = saa_init(1L);
-
-    /* string table starts with a zero byte so index 0 is an empty string */
-    saa_wbytes(strs, zero_buffer, 1);
-    strslen = 1;
-
-    /* add special symbol for TLVP */
-    macho_tlvp_sect = seg_alloc() + 1;
-    define_label("..tlvp", macho_tlvp_sect, 0L, NULL, false, false);
-
-}
-
-static void sect_write(struct section *sect,
-                       const uint8_t *data, uint32_t len)
-{
-    saa_wbytes(sect->data, data, len);
-    sect->size += len;
-}
-
-/*
- * Find a suitable global symbol for a ..gotpcrel or ..tlvp reference
- */
-static struct symbol *macho_find_gsym(struct section *s,
-				      uint64_t offset, bool exact)
-{
-    struct rbtree *srb;
-
-    srb = rb_search(s->gsyms, offset);
-
-    if (!srb || (exact && srb->key != offset)) {
-        nasm_error(ERR_NONFATAL, "unable to find a suitable %s symbol"
-		   " for this reference",
-		   s == &absolute_sect ? "absolute" : "global");
-        return NULL;
-    }
-
-    return container_of(srb, struct symbol, symv);
-}
-
-static int64_t add_reloc(struct section *sect, int32_t section,
-			 int64_t offset,
-			 enum reltype reltype, int bytes)
-{
-    struct reloc *r;
-    struct section *s;
-    int32_t fi;
-    int64_t adjust;
-
-    /* Double check this is a valid relocation type for this platform */
-    nasm_assert(reltype <= fmt.maxreltype);
-
-    /* the current end of the section will be the symbol's address for
-     ** now, might have to be fixed by macho_fixup_relocs() later on. make
-     ** sure we don't make the symbol scattered by setting the highest
-     ** bit by accident */
-    r = nasm_malloc(sizeof(struct reloc));
-    r->addr = sect->size & ~R_SCATTERED;
-    r->ext = 1;
-    adjust = bytes;
-
-    /* match byte count 1, 2, 4, 8 to length codes 0, 1, 2, 3 respectively */
-    r->length = ilog2_32(bytes);
-
-    /* set default relocation values */
-    r->type = fmt.reloc_abs;
-    r->pcrel = 0;
-    r->snum = R_ABS;
-
-    s = NULL;
-    if (section != NO_SEG)
-	s = get_section_by_index(section);
-    fi = s ? s->fileindex : NO_SECT;
-
-    /* absolute relocation */
-    switch (reltype) {
-    case RL_ABS:
-	if (section == NO_SEG) {
-	    /* absolute (can this even happen?) */
-	    r->ext = 0;
-	    r->snum = R_ABS;
-	} else if (fi == NO_SECT) {
-	    /* external */
-	    r->snum = raa_read(extsyms, section);
-	} else {
-	    /* local */
-	    r->ext = 0;
-	    r->snum = fi;
-	    adjust = -sect->size;
-	}
-	break;
-
-    case RL_REL:
-    case RL_BRANCH:
-	r->type = fmt.reloc_rel;
-	r->pcrel = 1;
-	if (section == NO_SEG) {
-	    /* absolute - seems to produce garbage no matter what */
-	    nasm_error(ERR_NONFATAL, "Mach-O does not support relative "
-		       "references to absolute addresses");
-	    goto bail;
-#if 0
-	    /* This "seems" to be how it ought to work... */
-
-	    struct symbol *sym = macho_find_gsym(&absolute_sect,
-						 offset, false);
-	    if (!sym)
-		goto bail;
-
-	    sect->extreloc = 1;
-	    r->snum = NO_SECT;
-	    adjust = -sect->size;
-#endif
-	} else if (fi == NO_SECT) {
-	    /* external */
-	    sect->extreloc = 1;
-	    r->snum = raa_read(extsyms, section);
-	    if (reltype == RL_BRANCH)
-		r->type = X86_64_RELOC_BRANCH;
-	    else if (r->type == GENERIC_RELOC_VANILLA)
-		adjust = -sect->size;
-	} else {
-	    /* local */
-	    r->ext = 0;
-	    r->snum = fi;
-	    adjust = -sect->size;
-	}
-	break;
-
-    case RL_SUB:
-	r->pcrel = 0;
-	r->type = X86_64_RELOC_SUBTRACTOR;
-	break;
-
-    case RL_GOT:
-	r->type = X86_64_RELOC_GOT;
-	goto needsym;
-
-    case RL_GOTLOAD:
-	r->type = X86_64_RELOC_GOT_LOAD;
-	goto needsym;
-
-    case RL_TLV:
-	r->type = fmt.reloc_tlv;
-	goto needsym;
-
-    needsym:
-	r->pcrel = 1;
-	if (section == NO_SEG) {
-	    nasm_error(ERR_NONFATAL, "Unsupported use of use of WRT");
-	} else if (fi == NO_SECT) {
-	    /* external */
-	    r->snum = raa_read(extsyms, section);
-	} else {
-	    /* internal */
-	    struct symbol *sym = macho_find_gsym(s, offset, reltype != RL_TLV);
-	    if (!sym)
-		goto bail;
-	    r->snum = sym->initial_snum;
-	}
-	break;
-    }
-
-    /* NeXT as puts relocs in reversed order (address-wise) into the
-     ** files, so we do the same, doesn't seem to make much of a
-     ** difference either way */
-    r->next = sect->relocs;
-    sect->relocs = r;
-    if (r->ext)
-	sect->extreloc = 1;
-    ++sect->nreloc;
-
-    return adjust;
-
- bail:
-    nasm_free(r);
-    return 0;
-}
-
-static void macho_output(int32_t secto, const void *data,
-			 enum out_type type, uint64_t size,
-                         int32_t section, int32_t wrt)
-{
-    struct section *s;
-    int64_t addr, offset;
-    uint8_t mydata[16], *p;
-    bool is_bss;
-    enum reltype reltype;
-
-    if (secto == NO_SEG) {
-        if (type != OUT_RESERVE)
-            nasm_error(ERR_NONFATAL, "attempt to assemble code in "
-                  "[ABSOLUTE] space");
-        return;
-    }
-
-    s = get_section_by_index(secto);
-
-    if (s == NULL) {
-        nasm_error(ERR_WARNING, "attempt to assemble code in"
-              " section %d: defaulting to `.text'", secto);
-        s = get_section_by_name("__TEXT", "__text");
-
-        /* should never happen */
-        if (s == NULL)
-            nasm_panic(0, "text section not found");
-    }
-
-    is_bss = (s->flags & SECTION_TYPE) == S_ZEROFILL;
-
-    if (is_bss && type != OUT_RESERVE) {
-        nasm_error(ERR_WARNING, "attempt to initialize memory in "
-              "BSS section: ignored");
-        s->size += realsize(type, size);
-        return;
-    }
-
-    memset(mydata, 0, sizeof(mydata));
-
-    switch (type) {
-    case OUT_RESERVE:
-        if (!is_bss) {
-            nasm_error(ERR_WARNING, "uninitialized space declared in"
-		       " %s,%s section: zeroing", s->segname, s->sectname);
-
-            sect_write(s, NULL, size);
-        } else
-            s->size += size;
-
-        break;
-
-    case OUT_RAWDATA:
-        if (section != NO_SEG)
-            nasm_panic(0, "OUT_RAWDATA with other than NO_SEG");
-
-        sect_write(s, data, size);
-        break;
-
-    case OUT_ADDRESS:
-    {
-	int asize = abs((int)size);
-
-        addr = *(int64_t *)data;
-        if (section != NO_SEG) {
-            if (section % 2) {
-                nasm_error(ERR_NONFATAL, "Mach-O format does not support"
-                      " section base references");
-            } else if (wrt == NO_SEG) {
-		if (fmt.ptrsize == 8 && asize != 8) {
-		    nasm_error(ERR_NONFATAL,
-			       "Mach-O 64-bit format does not support"
-			       " 32-bit absolute addresses");
-		} else {
-		    add_reloc(s, section, addr, RL_ABS, asize);
-		}
-	    } else {
-		nasm_error(ERR_NONFATAL, "Mach-O format does not support"
-			   " this use of WRT");
-	    }
-	}
-
-        p = mydata;
-	WRITEADDR(p, addr, asize);
-        sect_write(s, mydata, asize);
-        break;
-    }
-
-    case OUT_REL2ADR:
-	nasm_assert(section != secto);
-
-        p = mydata;
-	offset = *(int64_t *)data;
-        addr = offset - size;
-
-        if (section != NO_SEG && section % 2) {
-            nasm_error(ERR_NONFATAL, "Mach-O format does not support"
-		       " section base references");
-	} else if (fmt.ptrsize == 8) {
-	    nasm_error(ERR_NONFATAL, "Unsupported non-32-bit"
-		       " Macho-O relocation [2]");
-	} else if (wrt != NO_SEG) {
-	    nasm_error(ERR_NONFATAL, "Mach-O format does not support"
-		       " this use of WRT");
-	    wrt = NO_SEG;	/* we can at least _try_ to continue */
-	} else {
-	    addr += add_reloc(s, section, addr+size, RL_REL, 2);
-	}
-
-        WRITESHORT(p, addr);
-        sect_write(s, mydata, 2);
-        break;
-
-    case OUT_REL4ADR:
-	nasm_assert(section != secto);
-
-        p = mydata;
-	offset = *(int64_t *)data;
-        addr = offset - size;
-	reltype = RL_REL;
-
-        if (section != NO_SEG && section % 2) {
-            nasm_error(ERR_NONFATAL, "Mach-O format does not support"
-		       " section base references");
-        } else if (wrt == NO_SEG) {
-	    if (fmt.ptrsize == 8 &&
-		(s->flags & S_ATTR_SOME_INSTRUCTIONS)) {
-		uint8_t opcode[2];
-
-		opcode[0] = opcode[1] = 0;
-
-		/* HACK: Retrieve instruction opcode */
-		if (likely(s->data->datalen >= 2)) {
-		    saa_fread(s->data, s->data->datalen-2, opcode, 2);
-		} else if (s->data->datalen == 1) {
-		    saa_fread(s->data, 0, opcode+1, 1);
-		}
-
-		if ((opcode[0] != 0x0f && (opcode[1] & 0xfe) == 0xe8) ||
-		    (opcode[0] == 0x0f && (opcode[1] & 0xf0) == 0x80)) {
-		    /* Direct call, jmp, or jcc */
-		    reltype = RL_BRANCH;
-		}
-	    }
-	} else if (wrt == macho_gotpcrel_sect) {
-	    reltype = RL_GOT;
-
-	    if ((s->flags & S_ATTR_SOME_INSTRUCTIONS) &&
-		s->data->datalen >= 3) {
-		uint8_t gotload[3];
-
-		/* HACK: Retrieve instruction opcode */
-		saa_fread(s->data, s->data->datalen-3, gotload, 3);
-		if ((gotload[0] & 0xf8) == 0x48 &&
-		    gotload[1] == 0x8b &&
-		    (gotload[2] & 0307) == 0005) {
-		    /* movq <reg>,[rel sym wrt ..gotpcrel] */
-		    reltype = RL_GOTLOAD;
-		}
-	    }
-	} else if (wrt == macho_tlvp_sect) {
-	    reltype = RL_TLV;
-	} else {
-	    nasm_error(ERR_NONFATAL, "Mach-O format does not support"
-		       " this use of WRT");
-	    /* continue with RL_REL */
-	}
-
-	addr += add_reloc(s, section, offset, reltype, 4);
-        WRITELONG(p, addr);
-        sect_write(s, mydata, 4);
-        break;
-
-    default:
-        nasm_error(ERR_NONFATAL, "Unrepresentable relocation in Mach-O");
-        break;
-    }
-}
-
-/* Translation table from traditional Unix section names to Mach-O */
-static const struct sectmap {
-    const char *nasmsect;
-    const char *segname;
-    const char *sectname;
-    const uint32_t flags;
-} sectmap[] = {
-    {".text", "__TEXT", "__text",
-     S_REGULAR|S_ATTR_SOME_INSTRUCTIONS|S_ATTR_PURE_INSTRUCTIONS},
-    {".data", "__DATA", "__data", S_REGULAR},
-    {".rodata", "__DATA", "__const", S_REGULAR},
-    {".bss", "__DATA", "__bss", S_ZEROFILL},
-    {NULL, NULL, NULL, 0}
-};
-
-#define NO_TYPE S_NASM_TYPE_MASK
-
-/* Section type or attribute directives */
-static const struct sect_attribs {
-    const char *name;
-    uint32_t flags;
-} sect_attribs[] = {
-    { "data", S_REGULAR },
-    { "code", S_REGULAR|S_ATTR_SOME_INSTRUCTIONS|S_ATTR_PURE_INSTRUCTIONS },
-    { "mixed", S_REGULAR|S_ATTR_SOME_INSTRUCTIONS },
-    { "bss", S_ZEROFILL },
-    { "zerofill", S_ZEROFILL },
-    { "no_dead_strip", NO_TYPE|S_ATTR_NO_DEAD_STRIP },
-    { "live_support", NO_TYPE|S_ATTR_LIVE_SUPPORT },
-    { "strip_static_syms", NO_TYPE|S_ATTR_STRIP_STATIC_SYMS },
-    { NULL, 0 }
-};
-
-static int32_t macho_section(char *name, int pass, int *bits)
-{
-    char *sectionAttributes;
-    const struct sectmap *sm;
-    struct section *s;
-    const char *section, *segment;
-    uint32_t flags;
-    const struct sect_attribs *sa;
-    char *currentAttribute;
-    char *comma;
-
-    bool new_seg;
-
-    (void)pass;
-
-    /* Default to the appropriate number of bits. */
-    if (!name) {
-        *bits = fmt.ptrsize << 3;
-        name = ".text";
-        sectionAttributes = NULL;
-    } else {
-        sectionAttributes = name;
-        name = nasm_strsep(&sectionAttributes, " \t");
-    }
-
-    section = segment = NULL;
-    flags = 0;
-
-    comma = strchr(name, ',');
-    if (comma) {
-	int len;
-
-	*comma = '\0';
-	segment = name;
-	section = comma+1;
-
-	len = strlen(segment);
-	if (len == 0) {
-	    nasm_error(ERR_NONFATAL, "empty segment name\n");
-	} else if (len >= 16) {
-	    nasm_error(ERR_NONFATAL, "segment name %s too long\n", segment);
-	}
-
-	len = strlen(section);
-	if (len == 0) {
-	    nasm_error(ERR_NONFATAL, "empty section name\n");
-	} else if (len >= 16) {
-	    nasm_error(ERR_NONFATAL, "section name %s too long\n", section);
-	}
-
-	if (!strcmp(section, "__text")) {
-	    flags = S_REGULAR | S_ATTR_SOME_INSTRUCTIONS |
-		S_ATTR_PURE_INSTRUCTIONS;
-	} else if (!strcmp(section, "__bss")) {
-	    flags = S_ZEROFILL;
-	} else {
-	    flags = S_REGULAR;
-	}
-    } else {
-	for (sm = sectmap; sm->nasmsect != NULL; ++sm) {
-	    /* make lookup into section name translation table */
-	    if (!strcmp(name, sm->nasmsect)) {
-		segment = sm->segname;
-		section = sm->sectname;
-		flags = sm->flags;
-		goto found;
-	    }
-	}
-	nasm_error(ERR_NONFATAL, "unknown section name\n");
-	return NO_SEG;
-    }
-
- found:
-    /* try to find section with that name */
-    s = get_section_by_name(segment, section);
-
-    /* create it if it doesn't exist yet */
-    if (!s) {
-	new_seg = true;
-
-	s = *sectstail = nasm_zalloc(sizeof(struct section));
-	sectstail = &s->next;
-
-	s->data = saa_init(1L);
-	s->index = seg_alloc();
-	s->fileindex = ++seg_nsects;
-	s->align = -1;
-	s->pad = -1;
-	s->offset = -1;
-	s->by_name = false;
-
-	xstrncpy(s->segname, segment);
-	xstrncpy(s->sectname, section);
-	s->size = 0;
-	s->nreloc = 0;
-	s->flags = flags;
-    } else {
-	new_seg = false;
-    }
-
-    if (comma)
-	*comma = ',';		/* Restore comma */
-
-    s->by_name = s->by_name || comma; /* Was specified by name */
-
-    flags = NO_TYPE;
-
-    while (sectionAttributes &&
-	   (currentAttribute = nasm_strsep(&sectionAttributes, " \t"))) {
-	if (!*currentAttribute)
-	    continue;
-
-	if (!nasm_strnicmp("align=", currentAttribute, 6)) {
-	    char *end;
-	    int newAlignment, value;
-
-	    value = strtoul(currentAttribute + 6, (char**)&end, 0);
-	    newAlignment = alignlog2_32(value);
-
-	    if (0 != *end) {
-		nasm_error(ERR_NONFATAL,
-			   "unknown or missing alignment value \"%s\" "
-			   "specified for section \"%s\"",
-			   currentAttribute + 6,
-			   name);
-	    } else if (0 > newAlignment) {
-		nasm_error(ERR_NONFATAL,
-			   "alignment of %d (for section \"%s\") is not "
-			   "a power of two",
-			   value,
-			   name);
-	    }
-
-	    if (s->align < newAlignment)
-		s->align = newAlignment;
-	} else {
-	    for (sa = sect_attribs; sa->name; sa++) {
-		if (!nasm_stricmp(sa->name, currentAttribute)) {
-		    if ((sa->flags & S_NASM_TYPE_MASK) != NO_TYPE) {
-			flags = (flags & ~S_NASM_TYPE_MASK)
-			    | (sa->flags & S_NASM_TYPE_MASK);
-		    }
-		    flags |= sa->flags & ~S_NASM_TYPE_MASK;
-		    break;
-		}
-	    }
-
-	    if (!sa->name) {
-		nasm_error(ERR_NONFATAL,
-			   "unknown section attribute %s for section %s",
-			   currentAttribute, name);
-	    }
-	}
-    }
-
-    if ((flags & S_NASM_TYPE_MASK) != NO_TYPE) {
-	if (!new_seg && ((s->flags ^ flags) & S_NASM_TYPE_MASK)) {
-	    nasm_error(ERR_NONFATAL,
-		       "inconsistent section attributes for section %s\n",
-		       name);
-	} else {
-	    s->flags = (s->flags & ~S_NASM_TYPE_MASK) | flags;
-	}
-    } else {
-	s->flags |= flags & ~S_NASM_TYPE_MASK;
-    }
-
-    return s->index;
-}
-
-static void macho_symdef(char *name, int32_t section, int64_t offset,
-                         int is_global, char *special)
-{
-    struct symbol *sym;
-
-    if (special) {
-        nasm_error(ERR_NONFATAL, "The Mach-O output format does "
-              "not support any special symbol types");
-        return;
-    }
-
-    if (is_global == 3) {
-        nasm_error(ERR_NONFATAL, "The Mach-O format does not "
-              "(yet) support forward reference fixups.");
-        return;
-    }
-
-    if (name[0] == '.' && name[1] == '.' && name[2] != '@') {
-	/*
-	 * This is a NASM special symbol. We never allow it into
-	 * the Macho-O symbol table, even if it's a valid one. If it
-	 * _isn't_ a valid one, we should barf immediately.
-	 */
-	if (strcmp(name, "..gotpcrel") && strcmp(name, "..tlvp"))
-            nasm_error(ERR_NONFATAL, "unrecognized special symbol `%s'", name);
-	return;
-    }
-
-    sym = *symstail = nasm_zalloc(sizeof(struct symbol));
-    sym->next = NULL;
-    symstail = &sym->next;
-
-    sym->name = name;
-    sym->strx = strslen;
-    sym->type = 0;
-    sym->desc = 0;
-    sym->symv.key = offset;
-    sym->initial_snum = -1;
-
-    /* external and common symbols get N_EXT */
-    if (is_global != 0) {
-        sym->type |= N_EXT;
-    }
-
-    if (section == NO_SEG) {
-        /* symbols in no section get absolute */
-        sym->type |= N_ABS;
-        sym->sect = NO_SECT;
-
-	/* all absolute symbols are available to use as references */
-	absolute_sect.gsyms = rb_insert(absolute_sect.gsyms, &sym->symv);
-    } else {
-	struct section *s = get_section_by_index(section);
-
-        sym->type |= N_SECT;
-
-        /* get the in-file index of the section the symbol was defined in */
-        sym->sect = s ? s->fileindex : NO_SECT;
-
-	/* track the initially allocated symbol number for use in future fix-ups */
-	sym->initial_snum = nsyms;
-
-        if (!s) {
-            /* remember symbol number of references to external
-             ** symbols, this works because every external symbol gets
-             ** its own section number allocated internally by nasm and
-             ** can so be used as a key */
-	    extsyms = raa_write(extsyms, section, nsyms);
-
-            switch (is_global) {
-            case 1:
-            case 2:
-                /* there isn't actually a difference between global
-                 ** and common symbols, both even have their size in
-                 ** sym->symv.key */
-                sym->type = N_EXT;
-                break;
-
-            default:
-                /* give an error on unfound section if it's not an
-                 ** external or common symbol (assemble_file() does a
-                 ** seg_alloc() on every call for them) */
-                nasm_panic(0, "in-file index for section %d not found, is_global = %d", section, is_global);
-		break;
-            }
-	} else if (is_global) {
-	    s->gsyms = rb_insert(s->gsyms, &sym->symv);
-	}
-    }
-    ++nsyms;
-}
-
-static void macho_sectalign(int32_t seg, unsigned int value)
-{
-    struct section *s;
-    int align;
-
-    nasm_assert(!(seg & 1));
-
-    s = get_section_by_index(seg);
-
-    if (!s || !is_power2(value))
-        return;
-
-    align = alignlog2_32(value);
-    if (s->align < align)
-        s->align = align;
-}
-
-static int32_t macho_segbase(int32_t section)
-{
-    return section;
-}
-
-static void macho_filename(char *inname, char *outname)
-{
-    standard_extension(inname, outname, ".o");
-}
-
-extern macros_t macho_stdmac[];
-
-/* Comparison function for qsort symbol layout.  */
-static int layout_compare (const struct symbol **s1,
-			   const struct symbol **s2)
-{
-    return (strcmp ((*s1)->name, (*s2)->name));
-}
-
-/* The native assembler does a few things in a similar function
-
-	* Remove temporary labels
-	* Sort symbols according to local, external, undefined (by name)
-	* Order the string table
-
-   We do not remove temporary labels right now.
-
-   numsyms is the total number of symbols we have. strtabsize is the
-   number entries in the string table.  */
-
-static void macho_layout_symbols (uint32_t *numsyms,
-				  uint32_t *strtabsize)
-{
-    struct symbol *sym, **symp;
-    uint32_t i,j;
-
-    *numsyms = 0;
-    *strtabsize = sizeof (char);
-
-    symp = &syms;
-
-    while ((sym = *symp)) {
-	/* Undefined symbols are now external.  */
-	if (sym->type == N_UNDF)
-	    sym->type |= N_EXT;
-
-	if ((sym->type & N_EXT) == 0) {
-	    sym->snum = *numsyms;
-	    *numsyms = *numsyms + 1;
-	    nlocalsym++;
-	}
-	else {
-	    if ((sym->type & N_TYPE) != N_UNDF) {
-		nextdefsym++;
-	    } else {
-		nundefsym++;
-	    }
-
-	    /* If we handle debug info we'll want
-	       to check for it here instead of just
-	       adding the symbol to the string table.  */
-	    sym->strx = *strtabsize;
-	    saa_wbytes (strs, sym->name, (int32_t)(strlen(sym->name) + 1));
-	    *strtabsize += strlen(sym->name) + 1;
-	}
-	symp = &(sym->next);
-    }
-
-    /* Next, sort the symbols.  Most of this code is a direct translation from
-       the Apple cctools symbol layout. We need to keep compatibility with that.  */
-    /* Set the indexes for symbol groups into the symbol table */
-    ilocalsym = 0;
-    iextdefsym = nlocalsym;
-    iundefsym = nlocalsym + nextdefsym;
-
-    /* allocate arrays for sorting externals by name */
-    extdefsyms = nasm_malloc(nextdefsym * sizeof(struct symbol *));
-    undefsyms = nasm_malloc(nundefsym * sizeof(struct symbol *));
-
-    i = 0;
-    j = 0;
-
-    symp = &syms;
-
-    while ((sym = *symp)) {
-
-	if((sym->type & N_EXT) == 0) {
-	    sym->strx = *strtabsize;
-	    saa_wbytes (strs, sym->name, (int32_t)(strlen (sym->name) + 1));
-	    *strtabsize += strlen(sym->name) + 1;
-	}
-	else {
-	    if ((sym->type & N_TYPE) != N_UNDF) {
-		extdefsyms[i++] = sym;
-	    } else {
-		undefsyms[j++] = sym;
-	    }
-	}
-	symp = &(sym->next);
-    }
-
-    qsort(extdefsyms, nextdefsym, sizeof(struct symbol *),
-	  (int (*)(const void *, const void *))layout_compare);
-    qsort(undefsyms, nundefsym, sizeof(struct symbol *),
-	  (int (*)(const void *, const void *))layout_compare);
-
-    for(i = 0; i < nextdefsym; i++) {
-	extdefsyms[i]->snum = *numsyms;
-	*numsyms += 1;
-    }
-    for(j = 0; j < nundefsym; j++) {
-	undefsyms[j]->snum = *numsyms;
-	*numsyms += 1;
-    }
-}
-
-/* Calculate some values we'll need for writing later.  */
-
-static void macho_calculate_sizes (void)
-{
-    struct section *s;
-    int fi;
-
-    /* count sections and calculate in-memory and in-file offsets */
-    for (s = sects; s != NULL; s = s->next) {
-        uint64_t newaddr;
-
-        /* recalculate segment address based on alignment and vm size */
-        s->addr = seg_vmsize;
-
-        /* we need section alignment to calculate final section address */
-        if (s->align == -1)
-            s->align = DEFAULT_SECTION_ALIGNMENT;
-
-        newaddr = ALIGN(s->addr, UINT64_C(1) << s->align);
-        s->addr = newaddr;
-
-        seg_vmsize = newaddr + s->size;
-
-        /* zerofill sections aren't actually written to the file */
-        if ((s->flags & SECTION_TYPE) != S_ZEROFILL) {
-	    /*
-	     * LLVM/Xcode as always aligns the section data to 4
-	     * bytes; there is a comment in the LLVM source code that
-	     * perhaps aligning to pointer size would be better.
-	     */
-	    s->pad = ALIGN(seg_filesize, 4) - seg_filesize;
-	    s->offset = seg_filesize + s->pad;
-            seg_filesize += s->size + s->pad;
-	}
-    }
-
-    /* calculate size of all headers, load commands and sections to
-    ** get a pointer to the start of all the raw data */
-    if (seg_nsects > 0) {
-        ++head_ncmds;
-        head_sizeofcmds += fmt.segcmd_size  + seg_nsects * fmt.sectcmd_size;
-    }
-
-    if (nsyms > 0) {
-	++head_ncmds;
-	head_sizeofcmds += MACHO_SYMCMD_SIZE;
-    }
-
-    if (seg_nsects > MAX_SECT) {
-	nasm_fatal(0, "MachO output is limited to %d sections\n",
-		   MAX_SECT);
-    }
-
-    /* Create a table of sections by file index to avoid linear search */
-    sectstab = nasm_malloc((seg_nsects + 1) * sizeof(*sectstab));
-    sectstab[NO_SECT] = &absolute_sect;
-    for (s = sects, fi = 1; s != NULL; s = s->next, fi++)
-	sectstab[fi] = s;
-}
-
-/* Write out the header information for the file.  */
-
-static void macho_write_header (void)
-{
-    fwriteint32_t(fmt.mh_magic, ofile);	/* magic */
-    fwriteint32_t(fmt.cpu_type, ofile);	/* CPU type */
-    fwriteint32_t(CPU_SUBTYPE_I386_ALL, ofile);	/* CPU subtype */
-    fwriteint32_t(MH_OBJECT, ofile);	/* Mach-O file type */
-    fwriteint32_t(head_ncmds, ofile);	/* number of load commands */
-    fwriteint32_t(head_sizeofcmds, ofile);	/* size of load commands */
-    fwriteint32_t(head_flags, ofile);		/* flags, if any */
-    fwritezero(fmt.header_size - 7*4, ofile);	/* reserved fields */
-}
-
-/* Write out the segment load command at offset.  */
-
-static uint32_t macho_write_segment (uint64_t offset)
-{
-    uint64_t rel_base = alignptr(offset + seg_filesize);
-    uint32_t s_reloff = 0;
-    struct section *s;
-
-    fwriteint32_t(fmt.lc_segment, ofile);        /* cmd == LC_SEGMENT_64 */
-
-    /* size of load command including section load commands */
-    fwriteint32_t(fmt.segcmd_size + seg_nsects * fmt.sectcmd_size,
-		  ofile);
-
-    /* in an MH_OBJECT file all sections are in one unnamed (name
-    ** all zeros) segment */
-    fwritezero(16, ofile);
-    fwriteptr(0, ofile);		     /* in-memory offset */
-    fwriteptr(seg_vmsize, ofile);	     /* in-memory size */
-    fwriteptr(offset, ofile);	             /* in-file offset to data */
-    fwriteptr(seg_filesize, ofile);	     /* in-file size */
-    fwriteint32_t(VM_PROT_DEFAULT, ofile);   /* maximum vm protection */
-    fwriteint32_t(VM_PROT_DEFAULT, ofile);   /* initial vm protection */
-    fwriteint32_t(seg_nsects, ofile);        /* number of sections */
-    fwriteint32_t(0, ofile);		     /* no flags */
-
-    /* emit section headers */
-    for (s = sects; s != NULL; s = s->next) {
-	if (s->nreloc) {
-	    nasm_assert((s->flags & SECTION_TYPE) != S_ZEROFILL);
-	    s->flags |= S_ATTR_LOC_RELOC;
-	    if (s->extreloc)
-		s->flags |= S_ATTR_EXT_RELOC;
-	} else if (!strcmp(s->segname, "__DATA") &&
-		   !strcmp(s->sectname, "__const") &&
-		   !s->by_name &&
-		   !get_section_by_name("__TEXT", "__const")) {
-	    /*
-	     * The MachO equivalent to .rodata can be either
-	     * __DATA,__const or __TEXT,__const; the latter only if
-	     * there are no relocations.  However, when mixed it is
-	     * better to specify the segments explicitly.
-	     */
-	    xstrncpy(s->segname, "__TEXT");
-	}
-
-        nasm_write(s->sectname, sizeof(s->sectname), ofile);
-        nasm_write(s->segname, sizeof(s->segname), ofile);
-        fwriteptr(s->addr, ofile);
-        fwriteptr(s->size, ofile);
-
-        /* dummy data for zerofill sections or proper values */
-        if ((s->flags & SECTION_TYPE) != S_ZEROFILL) {
-	    nasm_assert(s->pad != (uint32_t)-1);
-	    offset += s->pad;
-            fwriteint32_t(offset, ofile);
-	    offset += s->size;
-            /* Write out section alignment, as a power of two.
-            e.g. 32-bit word alignment would be 2 (2^2 = 4).  */
-            fwriteint32_t(s->align, ofile);
-            /* To be compatible with cctools as we emit
-            a zero reloff if we have no relocations.  */
-            fwriteint32_t(s->nreloc ? rel_base + s_reloff : 0, ofile);
-            fwriteint32_t(s->nreloc, ofile);
-
-            s_reloff += s->nreloc * MACHO_RELINFO_SIZE;
-        } else {
-            fwriteint32_t(0, ofile);
-            fwriteint32_t(s->align, ofile);
-            fwriteint32_t(0, ofile);
-            fwriteint32_t(0, ofile);
-        }
-
-        fwriteint32_t(s->flags, ofile);      /* flags */
-        fwriteint32_t(0, ofile);	     /* reserved */
-        fwriteptr(0, ofile);		     /* reserved */
-    }
-
-    rel_padcnt = rel_base - offset;
-    offset = rel_base + s_reloff;
-
-    return offset;
-}
-
-/* For a given chain of relocs r, write out the entire relocation
-   chain to the object file.  */
-
-static void macho_write_relocs (struct reloc *r)
-{
-    while (r) {
-	uint32_t word2;
-
-	fwriteint32_t(r->addr, ofile); /* reloc offset */
-
-	word2 = r->snum;
-	word2 |= r->pcrel << 24;
-	word2 |= r->length << 25;
-	word2 |= r->ext << 27;
-	word2 |= r->type << 28;
-	fwriteint32_t(word2, ofile); /* reloc data */
-	r = r->next;
-    }
-}
-
-/* Write out the section data.  */
-static void macho_write_section (void)
-{
-    struct section *s;
-    struct reloc *r;
-    uint8_t *p;
-    int32_t len;
-    int64_t l;
-    union offset {
-	uint64_t val;
-	uint8_t buf[8];
-    } blk;
-
-    for (s = sects; s != NULL; s = s->next) {
-	if ((s->flags & SECTION_TYPE) == S_ZEROFILL)
-	    continue;
-
-	/* Like a.out Mach-O references things in the data or bss
-	 * sections by addresses which are actually relative to the
-	 * start of the _text_ section, in the _file_. See outaout.c
-	 * for more information. */
-	saa_rewind(s->data);
-	for (r = s->relocs; r != NULL; r = r->next) {
-	    len = (uint32_t)1 << r->length;
-	    if (len > 4)	/* Can this ever be an issue?! */
-		len = 8;
-	    blk.val = 0;
-	    saa_fread(s->data, r->addr, blk.buf, len);
-
-	    /* get offset based on relocation type */
-#ifdef WORDS_LITTLEENDIAN
-	    l = blk.val;
-#else
-	    l  = blk.buf[0];
-	    l += ((int64_t)blk.buf[1]) << 8;
-	    l += ((int64_t)blk.buf[2]) << 16;
-	    l += ((int64_t)blk.buf[3]) << 24;
-	    l += ((int64_t)blk.buf[4]) << 32;
-	    l += ((int64_t)blk.buf[5]) << 40;
-	    l += ((int64_t)blk.buf[6]) << 48;
-	    l += ((int64_t)blk.buf[7]) << 56;
-#endif
-
-	    /* If the relocation is internal add to the current section
-	       offset. Otherwise the only value we need is the symbol
-	       offset which we already have. The linker takes care
-	       of the rest of the address.  */
-	    if (!r->ext) {
-		/* generate final address by section address and offset */
-		nasm_assert(r->snum <= seg_nsects);
-		l += sectstab[r->snum]->addr;
-		if (r->pcrel)
-		    l -= s->addr;
-	    } else if (r->pcrel && r->type == GENERIC_RELOC_VANILLA) {
-		l -= s->addr;
-	    }
-
-	    /* write new offset back */
-	    p = blk.buf;
-	    WRITEDLONG(p, l);
-	    saa_fwrite(s->data, r->addr, blk.buf, len);
-	}
-
-	/* dump the section data to file */
-	fwritezero(s->pad, ofile);
-	saa_fpwrite(s->data, ofile);
-    }
-
-    /* pad last section up to reloc entries on pointer boundary */
-    fwritezero(rel_padcnt, ofile);
-
-    /* emit relocation entries */
-    for (s = sects; s != NULL; s = s->next)
-	macho_write_relocs (s->relocs);
-}
-
-/* Write out the symbol table. We should already have sorted this
-   before now.  */
-static void macho_write_symtab (void)
-{
-    struct symbol *sym;
-    uint64_t i;
-
-    /* we don't need to pad here since MACHO_RELINFO_SIZE == 8 */
-
-    for (sym = syms; sym != NULL; sym = sym->next) {
-	if ((sym->type & N_EXT) == 0) {
-	    fwriteint32_t(sym->strx, ofile);		/* string table entry number */
-	    nasm_write(&sym->type, 1, ofile);		/* symbol type */
-	    nasm_write(&sym->sect, 1, ofile);		/* section */
-	    fwriteint16_t(sym->desc, ofile);		/* description */
-
-	    /* Fix up the symbol value now that we know the final section
-	       sizes.  */
-	    if (((sym->type & N_TYPE) == N_SECT) && (sym->sect != NO_SECT)) {
-		nasm_assert(sym->sect <= seg_nsects);
-		sym->symv.key += sectstab[sym->sect]->addr;
-	    }
-
-	    fwriteptr(sym->symv.key, ofile);	/* value (i.e. offset) */
-	}
-    }
-
-    for (i = 0; i < nextdefsym; i++) {
-	sym = extdefsyms[i];
-	fwriteint32_t(sym->strx, ofile);
-	nasm_write(&sym->type, 1, ofile);	/* symbol type */
-	nasm_write(&sym->sect, 1, ofile);	/* section */
-	fwriteint16_t(sym->desc, ofile);	/* description */
-
-	/* Fix up the symbol value now that we know the final section
-	   sizes.  */
-	if (((sym->type & N_TYPE) == N_SECT) && (sym->sect != NO_SECT)) {
-	    nasm_assert(sym->sect <= seg_nsects);
-	    sym->symv.key += sectstab[sym->sect]->addr;
-	}
-
-	fwriteptr(sym->symv.key, ofile); /* value (i.e. offset) */
-    }
-
-     for (i = 0; i < nundefsym; i++) {
-	 sym = undefsyms[i];
-	 fwriteint32_t(sym->strx, ofile);
-	 nasm_write(&sym->type, 1, ofile);	/* symbol type */
-	 nasm_write(&sym->sect, 1, ofile);	/* section */
-	 fwriteint16_t(sym->desc, ofile);	/* description */
-
-	/* Fix up the symbol value now that we know the final section
-	   sizes.  */
-	 if (((sym->type & N_TYPE) == N_SECT) && (sym->sect != NO_SECT)) {
-	    nasm_assert(sym->sect <= seg_nsects);
-	    sym->symv.key += sectstab[sym->sect]->addr;
-	 }
-
-	 fwriteptr(sym->symv.key, ofile); /* value (i.e. offset) */
-     }
-
-}
-
-/* Fixup the snum in the relocation entries, we should be
-   doing this only for externally referenced symbols. */
-static void macho_fixup_relocs (struct reloc *r)
-{
-    struct symbol *sym;
-
-    while (r != NULL) {
-	if (r->ext) {
-	    for (sym = syms; sym != NULL; sym = sym->next) {
-		if (sym->initial_snum == r->snum) {
-		    r->snum = sym->snum;
-		    break;
-		}
-	    }
-	}
-	r = r->next;
-    }
-}
-
-/* Write out the object file.  */
-
-static void macho_write (void)
-{
-    uint64_t offset = 0;
-
-    /* mach-o object file structure:
-    **
-    ** mach header
-    **  uint32_t magic
-    **  int   cpu type
-    **  int   cpu subtype
-    **  uint32_t mach file type
-    **  uint32_t number of load commands
-    **  uint32_t size of all load commands
-    **   (includes section struct size of segment command)
-    **  uint32_t flags
-    **
-    ** segment command
-    **  uint32_t command type == LC_SEGMENT[_64]
-    **  uint32_t size of load command
-    **   (including section load commands)
-    **  char[16] segment name
-    **  pointer  in-memory offset
-    **  pointer  in-memory size
-    **  pointer  in-file offset to data area
-    **  pointer  in-file size
-    **   (in-memory size excluding zerofill sections)
-    **  int   maximum vm protection
-    **  int   initial vm protection
-    **  uint32_t number of sections
-    **  uint32_t flags
-    **
-    ** section commands
-    **   char[16] section name
-    **   char[16] segment name
-    **   pointer  in-memory offset
-    **   pointer  in-memory size
-    **   uint32_t in-file offset
-    **   uint32_t alignment
-    **    (irrelevant in MH_OBJECT)
-    **   uint32_t in-file offset of relocation entires
-    **   uint32_t number of relocations
-    **   uint32_t flags
-    **   uint32_t reserved
-    **   uint32_t reserved
-    **
-    ** symbol table command
-    **  uint32_t command type == LC_SYMTAB
-    **  uint32_t size of load command
-    **  uint32_t symbol table offset
-    **  uint32_t number of symbol table entries
-    **  uint32_t string table offset
-    **  uint32_t string table size
-    **
-    ** raw section data
-    **
-    ** padding to pointer boundary
-    **
-    ** relocation data (struct reloc)
-    ** int32_t offset
-    **  uint data (symbolnum, pcrel, length, extern, type)
-    **
-    ** symbol table data (struct nlist)
-    **  int32_t  string table entry number
-    **  uint8_t type
-    **   (extern, absolute, defined in section)
-    **  uint8_t section
-    **   (0 for global symbols, section number of definition (>= 1, <=
-    **   254) for local symbols, size of variable for common symbols
-    **   [type == extern])
-    **  int16_t description
-    **   (for stab debugging format)
-    **  pointer value (i.e. file offset) of symbol or stab offset
-    **
-    ** string table data
-    **  list of null-terminated strings
-    */
-
-    /* Emit the Mach-O header.  */
-    macho_write_header();
-
-    offset = fmt.header_size + head_sizeofcmds;
-
-    /* emit the segment load command */
-    if (seg_nsects > 0)
-	offset = macho_write_segment (offset);
-    else
-        nasm_error(ERR_WARNING, "no sections?");
-
-    if (nsyms > 0) {
-        /* write out symbol command */
-        fwriteint32_t(LC_SYMTAB, ofile); /* cmd == LC_SYMTAB */
-        fwriteint32_t(MACHO_SYMCMD_SIZE, ofile); /* size of load command */
-        fwriteint32_t(offset, ofile);    /* symbol table offset */
-        fwriteint32_t(nsyms, ofile);     /* number of symbol
-                                         ** table entries */
-        offset += nsyms * fmt.nlist_size;
-        fwriteint32_t(offset, ofile);    /* string table offset */
-        fwriteint32_t(strslen, ofile);   /* string table size */
-    }
-
-    /* emit section data */
-    if (seg_nsects > 0)
-	macho_write_section ();
-
-    /* emit symbol table if we have symbols */
-    if (nsyms > 0)
-	macho_write_symtab ();
-
-    /* we don't need to pad here, we are already aligned */
-
-    /* emit string table */
-    saa_fpwrite(strs, ofile);
-}
-/* We do quite a bit here, starting with finalizing all of the data
-   for the object file, writing, and then freeing all of the data from
-   the file.  */
-
-static void macho_cleanup(void)
-{
-    struct section *s;
-    struct reloc *r;
-    struct symbol *sym;
-
-    /* Sort all symbols.  */
-    macho_layout_symbols (&nsyms, &strslen);
-
-    /* Fixup relocation entries */
-    for (s = sects; s != NULL; s = s->next) {
-	macho_fixup_relocs (s->relocs);
-    }
-
-    /* First calculate and finalize needed values.  */
-    macho_calculate_sizes();
-    macho_write();
-
-    /* free up everything */
-    while (sects->next) {
-        s = sects;
-        sects = sects->next;
-
-        saa_free(s->data);
-        while (s->relocs != NULL) {
-            r = s->relocs;
-            s->relocs = s->relocs->next;
-            nasm_free(r);
-        }
-
-        nasm_free(s);
-    }
-
-    saa_free(strs);
-    raa_free(extsyms);
-
-    while (syms) {
-       sym = syms;
-       syms = syms->next;
-       nasm_free (sym);
-    }
-
-    nasm_free(extdefsyms);
-    nasm_free(undefsyms);
-    nasm_free(sectstab);
-}
-
-static bool macho_set_section_attribute_by_symbol(const char *label, uint32_t flags)
-{
-    struct section *s;
-    int32_t nasm_seg;
-    int64_t offset;
-
-    if (!lookup_label(label, &nasm_seg, &offset)) {
-	nasm_error(ERR_NONFATAL, "unknown symbol `%s' in no_dead_strip", label);
-	return false;
-    }
-
-    s = get_section_by_index(nasm_seg);
-    if (!s) {
-	nasm_error(ERR_NONFATAL, "symbol `%s' is external or absolute", label);
-	return false;
-    }
-
-    s->flags |= flags;
-    return true;
-}
-
-/*
- * Mark a symbol for no dead stripping
- */
-static enum directive_result macho_no_dead_strip(const char *labels)
-{
-    char *s, *p, *ep;
-    char ec;
-    enum directive_result rv = DIRR_ERROR;
-    bool real = passn > 1;
-
-    p = s = nasm_strdup(labels);
-    while (*p) {
-	ep = nasm_skip_identifier(p);
-	if (!ep) {
-	    nasm_error(ERR_NONFATAL, "invalid symbol in NO_DEAD_STRIP");
-	    goto err;
-	}
-	ec = *ep;
-	if (ec && ec != ',' && !nasm_isspace(ec)) {
-	    nasm_error(ERR_NONFATAL, "cannot parse contents after symbol");
-	    goto err;
-	}
-	*ep = '\0';
-	if (real) {
-	    if (!macho_set_section_attribute_by_symbol(p, S_ATTR_NO_DEAD_STRIP))
-		rv = DIRR_ERROR;
-	}
-	*ep = ec;
-	p = nasm_skip_spaces(ep);
-	if (*p == ',')
-	    p = nasm_skip_spaces(++p);
-    }
-
-    rv = DIRR_OK;
-
-err:
-    nasm_free(s);
-    return rv;
-}
-
-/*
- * Mach-O pragmas
- */
-static enum directive_result
-macho_pragma(const struct pragma *pragma)
-{
-    bool real = passn > 1;
-
-    switch (pragma->opcode) {
-    case D_SUBSECTIONS_VIA_SYMBOLS:
-	if (*pragma->tail)
-	    return DIRR_BADPARAM;
-
-	if (real)
-	    head_flags |= MH_SUBSECTIONS_VIA_SYMBOLS;
-
-	return DIRR_OK;
-
-    case D_NO_DEAD_STRIP:
-	return macho_no_dead_strip(pragma->tail);
-
-    default:
-	return DIRR_UNKNOWN;	/* Not a Mach-O directive */
-    }
-}
-
-static const struct pragma_facility macho_pragma_list[] = {
-    { "macho", macho_pragma },
-    { NULL, macho_pragma }	/* Implements macho32/macho64 namespaces */
-};
-
-#ifdef OF_MACHO32
-static const struct macho_fmt macho32_fmt = {
-    4,
-    MH_MAGIC,
-    CPU_TYPE_I386,
-    LC_SEGMENT,
-    MACHO_HEADER_SIZE,
-    MACHO_SEGCMD_SIZE,
-    MACHO_SECTCMD_SIZE,
-    MACHO_NLIST_SIZE,
-    RL_MAX_32,
-    GENERIC_RELOC_VANILLA,
-    GENERIC_RELOC_VANILLA,
-    GENERIC_RELOC_TLV
-};
-
-static void macho32_init(void)
-{
-    fmt = macho32_fmt;
-    macho_init();
-
-    macho_gotpcrel_sect = NO_SEG;
-}
-
-const struct ofmt of_macho32 = {
-    "NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X (i386) object files",
-    "macho32",
-    0,
-    32,
-    null_debug_arr,
-    &null_debug_form,
-    macho_stdmac,
-    macho32_init,
-    null_setinfo,
-    nasm_do_legacy_output,
-    macho_output,
-    macho_symdef,
-    macho_section,
-    macho_sectalign,
-    macho_segbase,
-    null_directive,
-    macho_filename,
-    macho_cleanup,
-    macho_pragma_list,
-};
-#endif
-
-#ifdef OF_MACHO64
-static const struct macho_fmt macho64_fmt = {
-    8,
-    MH_MAGIC_64,
-    CPU_TYPE_X86_64,
-    LC_SEGMENT_64,
-    MACHO_HEADER64_SIZE,
-    MACHO_SEGCMD64_SIZE,
-    MACHO_SECTCMD64_SIZE,
-    MACHO_NLIST64_SIZE,
-    RL_MAX_64,
-    X86_64_RELOC_UNSIGNED,
-    X86_64_RELOC_SIGNED,
-    X86_64_RELOC_TLV
-};
-
-static void macho64_init(void)
-{
-    fmt = macho64_fmt;
-    macho_init();
-
-    /* add special symbol for ..gotpcrel */
-    macho_gotpcrel_sect = seg_alloc() + 1;
-    define_label("..gotpcrel", macho_gotpcrel_sect, 0L, NULL, false, false);
-}
-
-const struct ofmt of_macho64 = {
-    "NeXTstep/OpenStep/Rhapsody/Darwin/MacOS X (x86_64) object files",
-    "macho64",
-    0,
-    64,
-    null_debug_arr,
-    &null_debug_form,
-    macho_stdmac,
-    macho64_init,
-    null_setinfo,
-    nasm_do_legacy_output,
-    macho_output,
-    macho_symdef,
-    macho_section,
-    macho_sectalign,
-    macho_segbase,
-    null_directive,
-    macho_filename,
-    macho_cleanup,
-    macho_pragma_list,
-};
-#endif
-
-#endif
-
-/*
- * Local Variables:
- * mode:c
- * c-basic-offset:4
- * End:
- *
- * end of file */
--- a/nasmbuild/nasm-2.13rc9/output/outmacho.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-;; --------------------------------------------------------------------------
-;;   
-;;   Copyright 1996-2017 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;     
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-OUT: macho macho32 macho64
-%define __SECT__ [section .text]
-%macro __NASM_CDecl__ 1
-%endmacro
-
-; This directive sets the MH_SUBSECTIONS_VIA_SYMBOLS header flag
-%imacro subsections_via_symbols 0.nolist
-    %pragma __OUTPUT_FORMAT__ %?
-%endmacro
-
-%imacro no_dead_strip 1-*.nolist
-    %rep %0
-        %pragma __OUTPUT_FORMAT__ %? %1
-        %rotate 1
-    %endrep
-%endmacro
--- a/nasmbuild/nasm-2.13rc9/output/outobj.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2681 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * outobj.c	output routines for the Netwide Assembler to produce
- *		.OBJ object files
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <limits.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "stdscan.h"
-#include "eval.h"
-#include "ver.h"
-
-#include "outform.h"
-#include "outlib.h"
-
-#ifdef OF_OBJ
-
-/*
- * outobj.c is divided into two sections.  The first section is low level
- * routines for creating obj records;  It has nearly zero NASM specific
- * code.  The second section is high level routines for processing calls and
- * data structures from the rest of NASM into obj format.
- *
- * It should be easy (though not zero work) to lift the first section out for
- * use as an obj file writer for some other assembler or compiler.
- */
-
-/*
- * These routines are built around the ObjRecord data struture.  An ObjRecord
- * holds an object file record that may be under construction or complete.
- *
- * A major function of these routines is to support continuation of an obj
- * record into the next record when the maximum record size is exceeded.  The
- * high level code does not need to worry about where the record breaks occur.
- * It does need to do some minor extra steps to make the automatic continuation
- * work.  Those steps may be skipped for records where the high level knows no
- * continuation could be required.
- *
- * 1) An ObjRecord is allocated and cleared by obj_new, or an existing ObjRecord
- *    is cleared by obj_clear.
- *
- * 2) The caller should fill in .type.
- *
- * 3) If the record is continuable and there is processing that must be done at
- *    the start of each record then the caller should fill in .ori with the
- *    address of the record initializer routine.
- *
- * 4) If the record is continuable and it should be saved (rather than emitted
- *    immediately) as each record is done, the caller should set .up to be a
- *    pointer to a location in which the caller keeps the master pointer to the
- *    ObjRecord.  When the record is continued, the obj_bump routine will then
- *    allocate a new ObjRecord structure and update the master pointer.
- *
- * 5) If the .ori field was used then the caller should fill in the .parm with
- *    any data required by the initializer.
- *
- * 6) The caller uses the routines: obj_byte, obj_word, obj_rword, obj_dword,
- *    obj_x, obj_index, obj_value and obj_name to fill in the various kinds of
- *    data required for this record.
- *
- * 7) If the record is continuable, the caller should call obj_commit at each
- *    point where breaking the record is permitted.
- *
- * 8) To write out the record, the caller should call obj_emit2.  If the
- *    caller has called obj_commit for all data written then he can get slightly
- *    faster code by calling obj_emit instead of obj_emit2.
- *
- * Most of these routines return an ObjRecord pointer.  This will be the input
- * pointer most of the time and will be the new location if the ObjRecord
- * moved as a result of the call.  The caller may ignore the return value in
- * three cases:  It is a "Never Reallocates" routine;  or  The caller knows
- * continuation is not possible;  or  The caller uses the master pointer for the
- * next operation.
- */
-
-#define RECORD_MAX (1024-3)     /* maximal size of any record except type+reclen */
-#define OBJ_PARMS  3            /* maximum .parm used by any .ori routine */
-
-#define FIX_08_LOW      0x8000  /* location type for various fixup subrecords */
-#define FIX_16_OFFSET   0x8400
-#define FIX_16_SELECTOR 0x8800
-#define FIX_32_POINTER  0x8C00
-#define FIX_08_HIGH     0x9000
-#define FIX_32_OFFSET   0xA400
-#define FIX_48_POINTER  0xAC00
-
-enum RecordID {                 /* record ID codes */
-
-    THEADR = 0x80,              /* module header */
-    COMENT = 0x88,              /* comment record */
-
-    LINNUM = 0x94,              /* line number record */
-    LNAMES = 0x96,              /* list of names */
-
-    SEGDEF = 0x98,              /* segment definition */
-    GRPDEF = 0x9A,              /* group definition */
-    EXTDEF = 0x8C,              /* external definition */
-    PUBDEF = 0x90,              /* public definition */
-    COMDEF = 0xB0,              /* common definition */
-
-    LEDATA = 0xA0,              /* logical enumerated data */
-    FIXUPP = 0x9C,              /* fixups (relocations) */
-    FIXU32 = 0x9D,              /* 32-bit fixups (relocations) */
-
-    MODEND = 0x8A,              /* module end */
-    MODE32 = 0x8B               /* module end for 32-bit objects */
-};
-
-enum ComentID {                 /* ID codes for comment records */
-
-    dEXTENDED = 0xA1,           /* tells that we are using translator-specific extensions */
-    dLINKPASS = 0xA2,           /* link pass 2 marker */
-    dTYPEDEF = 0xE3,            /* define a type */
-    dSYM = 0xE6,                /* symbol debug record */
-    dFILNAME = 0xE8,            /* file name record */
-    dCOMPDEF = 0xEA             /* compiler type info */
-};
-
-typedef struct ObjRecord ObjRecord;
-typedef void ORI(ObjRecord * orp);
-
-struct ObjRecord {
-    ORI *ori;                   /* Initialization routine           */
-    int used;                   /* Current data size                */
-    int committed;              /* Data size at last boundary       */
-    int x_size;                 /* (see obj_x)                      */
-    unsigned int type;          /* Record type                      */
-    ObjRecord *child;           /* Associated record below this one */
-    ObjRecord **up;             /* Master pointer to this ObjRecord */
-    ObjRecord *back;            /* Previous part of this record     */
-    uint32_t parm[OBJ_PARMS];      /* Parameters for ori routine       */
-    uint8_t buf[RECORD_MAX + 3];
-};
-
-static void obj_fwrite(ObjRecord * orp);
-static void ori_ledata(ObjRecord * orp);
-static void ori_pubdef(ObjRecord * orp);
-static void ori_null(ObjRecord * orp);
-static ObjRecord *obj_commit(ObjRecord * orp);
-
-static bool obj_uppercase;       /* Flag: all names in uppercase */
-static bool obj_use32;           /* Flag: at least one segment is 32-bit */
-
-/*
- * Clear an ObjRecord structure.  (Never reallocates).
- * To simplify reuse of ObjRecord's, .type, .ori and .parm are not cleared.
- */
-static ObjRecord *obj_clear(ObjRecord * orp)
-{
-    orp->used = 0;
-    orp->committed = 0;
-    orp->x_size = 0;
-    orp->child = NULL;
-    orp->up = NULL;
-    orp->back = NULL;
-    return (orp);
-}
-
-/*
- * Emit an ObjRecord structure.  (Never reallocates).
- * The record is written out preceeded (recursively) by its previous part (if
- * any) and followed (recursively) by its child (if any).
- * The previous part and the child are freed.  The main ObjRecord is cleared,
- * not freed.
- */
-static ObjRecord *obj_emit(ObjRecord * orp)
-{
-    if (orp->back) {
-        obj_emit(orp->back);
-        nasm_free(orp->back);
-    }
-
-    if (orp->committed)
-        obj_fwrite(orp);
-
-    if (orp->child) {
-        obj_emit(orp->child);
-        nasm_free(orp->child);
-    }
-
-    return (obj_clear(orp));
-}
-
-/*
- * Commit and Emit a record.  (Never reallocates).
- */
-static ObjRecord *obj_emit2(ObjRecord * orp)
-{
-    obj_commit(orp);
-    return (obj_emit(orp));
-}
-
-/*
- * Allocate and clear a new ObjRecord;  Also sets .ori to ori_null
- */
-static ObjRecord *obj_new(void)
-{
-    ObjRecord *orp;
-
-    orp = obj_clear(nasm_malloc(sizeof(ObjRecord)));
-    orp->ori = ori_null;
-    return (orp);
-}
-
-/*
- * Advance to the next record because the existing one is full or its x_size
- * is incompatible.
- * Any uncommited data is moved into the next record.
- */
-static ObjRecord *obj_bump(ObjRecord * orp)
-{
-    ObjRecord *nxt;
-    int used = orp->used;
-    int committed = orp->committed;
-
-    if (orp->up) {
-        *orp->up = nxt = obj_new();
-        nxt->ori = orp->ori;
-        nxt->type = orp->type;
-        nxt->up = orp->up;
-        nxt->back = orp;
-        memcpy(nxt->parm, orp->parm, sizeof(orp->parm));
-    } else
-        nxt = obj_emit(orp);
-
-    used -= committed;
-    if (used) {
-        nxt->committed = 1;
-        nxt->ori(nxt);
-        nxt->committed = nxt->used;
-        memcpy(nxt->buf + nxt->committed, orp->buf + committed, used);
-        nxt->used = nxt->committed + used;
-    }
-
-    return (nxt);
-}
-
-/*
- * Advance to the next record if necessary to allow the next field to fit.
- */
-static ObjRecord *obj_check(ObjRecord * orp, int size)
-{
-    if (orp->used + size > RECORD_MAX)
-        orp = obj_bump(orp);
-
-    if (!orp->committed) {
-        orp->committed = 1;
-        orp->ori(orp);
-        orp->committed = orp->used;
-    }
-
-    return (orp);
-}
-
-/*
- * All data written so far is commited to the current record (won't be moved to
- * the next record in case of continuation).
- */
-static ObjRecord *obj_commit(ObjRecord * orp)
-{
-    orp->committed = orp->used;
-    return (orp);
-}
-
-/*
- * Write a byte
- */
-static ObjRecord *obj_byte(ObjRecord * orp, uint8_t val)
-{
-    orp = obj_check(orp, 1);
-    orp->buf[orp->used] = val;
-    orp->used++;
-    return (orp);
-}
-
-/*
- * Write a word
- */
-static ObjRecord *obj_word(ObjRecord * orp, unsigned int val)
-{
-    orp = obj_check(orp, 2);
-    orp->buf[orp->used] = val;
-    orp->buf[orp->used + 1] = val >> 8;
-    orp->used += 2;
-    return (orp);
-}
-
-/*
- * Write a reversed word
- */
-static ObjRecord *obj_rword(ObjRecord * orp, unsigned int val)
-{
-    orp = obj_check(orp, 2);
-    orp->buf[orp->used] = val >> 8;
-    orp->buf[orp->used + 1] = val;
-    orp->used += 2;
-    return (orp);
-}
-
-/*
- * Write a dword
- */
-static ObjRecord *obj_dword(ObjRecord * orp, uint32_t val)
-{
-    orp = obj_check(orp, 4);
-    orp->buf[orp->used] = val;
-    orp->buf[orp->used + 1] = val >> 8;
-    orp->buf[orp->used + 2] = val >> 16;
-    orp->buf[orp->used + 3] = val >> 24;
-    orp->used += 4;
-    return (orp);
-}
-
-/*
- * All fields of "size x" in one obj record must be the same size (either 16
- * bits or 32 bits).  There is a one bit flag in each record which specifies
- * which.
- * This routine is used to force the current record to have the desired
- * x_size.  x_size is normally automatic (using obj_x), so that this
- * routine should be used outside obj_x, only to provide compatibility with
- * linkers that have bugs in their processing of the size bit.
- */
-
-static ObjRecord *obj_force(ObjRecord * orp, int x)
-{
-    if (orp->x_size == (x ^ 48))
-        orp = obj_bump(orp);
-    orp->x_size = x;
-    return (orp);
-}
-
-/*
- * This routine writes a field of size x.  The caller does not need to worry at
- * all about whether 16-bits or 32-bits are required.
- */
-static ObjRecord *obj_x(ObjRecord * orp, uint32_t val)
-{
-    if (orp->type & 1)
-        orp->x_size = 32;
-    if (val > 0xFFFF)
-        orp = obj_force(orp, 32);
-    if (orp->x_size == 32) {
-	ObjRecord *nxt = obj_dword(orp, val);
-	nxt->x_size = 32;	/* x_size is cleared when a record overflows */
-	return nxt;
-    }
-    orp->x_size = 16;
-    return (obj_word(orp, val));
-}
-
-/*
- * Writes an index
- */
-static ObjRecord *obj_index(ObjRecord * orp, unsigned int val)
-{
-    if (val < 128)
-        return (obj_byte(orp, val));
-    return (obj_word(orp, (val >> 8) | (val << 8) | 0x80));
-}
-
-/*
- * Writes a variable length value
- */
-static ObjRecord *obj_value(ObjRecord * orp, uint32_t val)
-{
-    if (val <= 128)
-        return (obj_byte(orp, val));
-    if (val <= 0xFFFF) {
-        orp = obj_byte(orp, 129);
-        return (obj_word(orp, val));
-    }
-    if (val <= 0xFFFFFF)
-        return (obj_dword(orp, (val << 8) + 132));
-    orp = obj_byte(orp, 136);
-    return (obj_dword(orp, val));
-}
-
-/*
- * Writes a counted string
- */
-static ObjRecord *obj_name(ObjRecord * orp, const char *name)
-{
-    int len = strlen(name);
-    uint8_t *ptr;
-
-    orp = obj_check(orp, len + 1);
-    ptr = orp->buf + orp->used;
-    *ptr++ = len;
-    orp->used += len + 1;
-    if (obj_uppercase)
-        while (--len >= 0) {
-            *ptr++ = toupper(*name);
-            name++;
-    } else
-        memcpy(ptr, name, len);
-    return (orp);
-}
-
-/*
- * Initializer for an LEDATA record.
- * parm[0] = offset
- * parm[1] = segment index
- * During the use of a LEDATA ObjRecord, parm[0] is constantly updated to
- * represent the offset that would be required if the record were split at the
- * last commit point.
- * parm[2] is a copy of parm[0] as it was when the current record was initted.
- */
-static void ori_ledata(ObjRecord * orp)
-{
-    obj_index(orp, orp->parm[1]);
-    orp->parm[2] = orp->parm[0];
-    obj_x(orp, orp->parm[0]);
-}
-
-/*
- * Initializer for a PUBDEF record.
- * parm[0] = group index
- * parm[1] = segment index
- * parm[2] = frame (only used when both indexes are zero)
- */
-static void ori_pubdef(ObjRecord * orp)
-{
-    obj_index(orp, orp->parm[0]);
-    obj_index(orp, orp->parm[1]);
-    if (!(orp->parm[0] | orp->parm[1]))
-        obj_word(orp, orp->parm[2]);
-}
-
-/*
- * Initializer for a LINNUM record.
- * parm[0] = group index
- * parm[1] = segment index
- */
-static void ori_linnum(ObjRecord * orp)
-{
-    obj_index(orp, orp->parm[0]);
-    obj_index(orp, orp->parm[1]);
-}
-
-/*
- * Initializer for a local vars record.
- */
-static void ori_local(ObjRecord * orp)
-{
-    obj_byte(orp, 0x40);
-    obj_byte(orp, dSYM);
-}
-
-/*
- * Null initializer for records that continue without any header info
- */
-static void ori_null(ObjRecord * orp)
-{
-    (void)orp;                  /* Do nothing */
-}
-
-/*
- * This concludes the low level section of outobj.c
- */
-
-static char obj_infile[FILENAME_MAX];
-
-static int32_t first_seg;
-static bool any_segs;
-static int passtwo;
-static int arrindex;
-
-#define GROUP_MAX 256           /* we won't _realistically_ have more
-                                 * than this many segs in a group */
-#define EXT_BLKSIZ 256          /* block size for externals list */
-
-struct Segment;                 /* need to know these structs exist */
-struct Group;
-
-struct LineNumber {
-    struct LineNumber *next;
-    struct Segment *segment;
-    int32_t offset;
-    int32_t lineno;
-};
-
-static struct FileName {
-    struct FileName *next;
-    char *name;
-    struct LineNumber *lnhead, **lntail;
-    int index;
-} *fnhead, **fntail;
-
-static struct Array {
-    struct Array *next;
-    unsigned size;
-    int basetype;
-} *arrhead, **arrtail;
-
-#define ARRAYBOT 31             /* magic number  for first array index */
-
-static struct Public {
-    struct Public *next;
-    char *name;
-    int32_t offset;
-    int32_t segment;               /* only if it's far-absolute */
-    int type;                   /* only for local debug syms */
-} *fpubhead, **fpubtail, *last_defined;
-
-static struct External {
-    struct External *next;
-    char *name;
-    int32_t commonsize;
-    int32_t commonelem;            /* element size if FAR, else zero */
-    int index;                  /* OBJ-file external index */
-    enum {
-        DEFWRT_NONE,            /* no unusual default-WRT */
-        DEFWRT_STRING,          /* a string we don't yet understand */
-        DEFWRT_SEGMENT,         /* a segment */
-        DEFWRT_GROUP            /* a group */
-    } defwrt_type;
-    union {
-        char *string;
-        struct Segment *seg;
-        struct Group *grp;
-    } defwrt_ptr;
-    struct External *next_dws;  /* next with DEFWRT_STRING */
-} *exthead, **exttail, *dws;
-
-static int externals;
-
-static struct ExtBack {
-    struct ExtBack *next;
-    struct External *exts[EXT_BLKSIZ];
-} *ebhead, **ebtail;
-
-static struct Segment {
-    struct Segment *next;
-    char *name;
-    int32_t index;                 /* the NASM segment id */
-    int32_t obj_index;             /* the OBJ-file segment index */
-    struct Group *grp;          /* the group it beint32_ts to */
-    uint32_t currentpos;
-    int32_t align;                 /* can be SEG_ABS + absolute addr */
-    struct Public *pubhead, **pubtail, *lochead, **loctail;
-    char *segclass, *overlay;   /* `class' is a C++ keyword :-) */
-    ObjRecord *orp;
-    enum {
-        CMB_PRIVATE = 0,
-        CMB_PUBLIC = 2,
-        CMB_STACK = 5,
-        CMB_COMMON = 6
-    } combine;
-    bool use32;                 /* is this segment 32-bit? */
-} *seghead, **segtail, *obj_seg_needs_update;
-
-static struct Group {
-    struct Group *next;
-    char *name;
-    int32_t index;                 /* NASM segment id */
-    int32_t obj_index;             /* OBJ-file group index */
-    int32_t nentries;              /* number of elements... */
-    int32_t nindices;              /* ...and number of index elts... */
-    union {
-        int32_t index;
-        char *name;
-    } segs[GROUP_MAX];          /* ...in this */
-} *grphead, **grptail, *obj_grp_needs_update;
-
-static struct ImpDef {
-    struct ImpDef *next;
-    char *extname;
-    char *libname;
-    unsigned int impindex;
-    char *impname;
-} *imphead, **imptail;
-
-static struct ExpDef {
-    struct ExpDef *next;
-    char *intname;
-    char *extname;
-    unsigned int ordinal;
-    int flags;
-} *exphead, **exptail;
-
-#define EXPDEF_FLAG_ORDINAL  0x80
-#define EXPDEF_FLAG_RESIDENT 0x40
-#define EXPDEF_FLAG_NODATA   0x20
-#define EXPDEF_MASK_PARMCNT  0x1F
-
-static int32_t obj_entry_seg, obj_entry_ofs;
-
-const struct ofmt of_obj;
-static const struct dfmt borland_debug_form;
-
-/* The current segment */
-static struct Segment *current_seg;
-
-static int32_t obj_segment(char *, int, int *);
-static void obj_write_file(void);
-static enum directive_result obj_directive(enum directives, char *, int);
-
-static void obj_init(void)
-{
-    first_seg = seg_alloc();
-    any_segs = false;
-    fpubhead = NULL;
-    fpubtail = &fpubhead;
-    exthead = NULL;
-    exttail = &exthead;
-    imphead = NULL;
-    imptail = &imphead;
-    exphead = NULL;
-    exptail = &exphead;
-    dws = NULL;
-    externals = 0;
-    ebhead = NULL;
-    ebtail = &ebhead;
-    seghead = obj_seg_needs_update = NULL;
-    segtail = &seghead;
-    grphead = obj_grp_needs_update = NULL;
-    grptail = &grphead;
-    obj_entry_seg = NO_SEG;
-    obj_uppercase = false;
-    obj_use32 = false;
-    passtwo = 0;
-    current_seg = NULL;
-}
-
-static int obj_set_info(enum geninfo type, char **val)
-{
-    (void)type;
-    (void)val;
-
-    return 0;
-}
-
-static void obj_cleanup(void)
-{
-    obj_write_file();
-    dfmt->cleanup();
-    while (seghead) {
-        struct Segment *segtmp = seghead;
-        seghead = seghead->next;
-        while (segtmp->pubhead) {
-            struct Public *pubtmp = segtmp->pubhead;
-            segtmp->pubhead = pubtmp->next;
-            nasm_free(pubtmp->name);
-            nasm_free(pubtmp);
-        }
-        nasm_free(segtmp->segclass);
-        nasm_free(segtmp->overlay);
-        nasm_free(segtmp);
-    }
-    while (fpubhead) {
-        struct Public *pubtmp = fpubhead;
-        fpubhead = fpubhead->next;
-        nasm_free(pubtmp->name);
-        nasm_free(pubtmp);
-    }
-    while (exthead) {
-        struct External *exttmp = exthead;
-        exthead = exthead->next;
-        nasm_free(exttmp);
-    }
-    while (imphead) {
-        struct ImpDef *imptmp = imphead;
-        imphead = imphead->next;
-        nasm_free(imptmp->extname);
-        nasm_free(imptmp->libname);
-        nasm_free(imptmp->impname);     /* nasm_free won't mind if it's NULL */
-        nasm_free(imptmp);
-    }
-    while (exphead) {
-        struct ExpDef *exptmp = exphead;
-        exphead = exphead->next;
-        nasm_free(exptmp->extname);
-        nasm_free(exptmp->intname);
-        nasm_free(exptmp);
-    }
-    while (ebhead) {
-        struct ExtBack *ebtmp = ebhead;
-        ebhead = ebhead->next;
-        nasm_free(ebtmp);
-    }
-    while (grphead) {
-        struct Group *grptmp = grphead;
-        grphead = grphead->next;
-        nasm_free(grptmp);
-    }
-}
-
-static void obj_ext_set_defwrt(struct External *ext, char *id)
-{
-    struct Segment *seg;
-    struct Group *grp;
-
-    for (seg = seghead; seg; seg = seg->next)
-        if (!strcmp(seg->name, id)) {
-            ext->defwrt_type = DEFWRT_SEGMENT;
-            ext->defwrt_ptr.seg = seg;
-            nasm_free(id);
-            return;
-        }
-
-    for (grp = grphead; grp; grp = grp->next)
-        if (!strcmp(grp->name, id)) {
-            ext->defwrt_type = DEFWRT_GROUP;
-            ext->defwrt_ptr.grp = grp;
-            nasm_free(id);
-            return;
-        }
-
-    ext->defwrt_type = DEFWRT_STRING;
-    ext->defwrt_ptr.string = id;
-    ext->next_dws = dws;
-    dws = ext;
-}
-
-static void obj_deflabel(char *name, int32_t segment,
-                         int64_t offset, int is_global, char *special)
-{
-    /*
-     * We have three cases:
-     *
-     * (i) `segment' is a segment-base. If so, set the name field
-     * for the segment or group structure it refers to, and then
-     * return.
-     *
-     * (ii) `segment' is one of our segments, or a SEG_ABS segment.
-     * Save the label position for later output of a PUBDEF record.
-     * (Or a MODPUB, if we work out how.)
-     *
-     * (iii) `segment' is not one of our segments. Save the label
-     * position for later output of an EXTDEF, and also store a
-     * back-reference so that we can map later references to this
-     * segment number to the external index.
-     */
-    struct External *ext;
-    struct ExtBack *eb;
-    struct Segment *seg;
-    int i;
-    bool used_special = false;   /* have we used the special text? */
-
-#if defined(DEBUG) && DEBUG>2
-    nasm_error(ERR_DEBUG,
-            " obj_deflabel: %s, seg=%"PRIx32", off=%"PRIx64", is_global=%d, %s\n",
-            name, segment, offset, is_global, special);
-#endif
-
-    /*
-     * If it's a special-retry from pass two, discard it.
-     */
-    if (is_global == 3)
-        return;
-
-    /*
-     * First check for the double-period, signifying something
-     * unusual.
-     */
-    if (name[0] == '.' && name[1] == '.' && name[2] != '@') {
-        if (!strcmp(name, "..start")) {
-            obj_entry_seg = segment;
-            obj_entry_ofs = offset;
-            return;
-        }
-        nasm_error(ERR_NONFATAL, "unrecognised special symbol `%s'", name);
-    }
-
-    /*
-     * Case (i):
-     */
-    if (obj_seg_needs_update) {
-        obj_seg_needs_update->name = name;
-        return;
-    } else if (obj_grp_needs_update) {
-        obj_grp_needs_update->name = name;
-        return;
-    }
-    if (segment < SEG_ABS && segment != NO_SEG && segment % 2)
-        return;
-
-    if (segment >= SEG_ABS || segment == NO_SEG) {
-        /*
-         * SEG_ABS subcase of (ii).
-         */
-        if (is_global) {
-            struct Public *pub;
-
-            pub = *fpubtail = nasm_malloc(sizeof(*pub));
-            fpubtail = &pub->next;
-            pub->next = NULL;
-            pub->name = nasm_strdup(name);
-            pub->offset = offset;
-            pub->segment = (segment == NO_SEG ? 0 : segment & ~SEG_ABS);
-        }
-        if (special)
-            nasm_error(ERR_NONFATAL, "OBJ supports no special symbol features"
-                  " for this symbol type");
-        return;
-    }
-
-    /*
-     * If `any_segs' is still false, we might need to define a
-     * default segment, if they're trying to declare a label in
-     * `first_seg'.
-     */
-    if (!any_segs && segment == first_seg) {
-        int tempint;            /* ignored */
-        if (segment != obj_segment("__NASMDEFSEG", 2, &tempint))
-            nasm_panic(0, "strange segment conditions in OBJ driver");
-    }
-
-    for (seg = seghead; seg && is_global; seg = seg->next)
-        if (seg->index == segment) {
-            struct Public *loc = nasm_malloc(sizeof(*loc));
-            /*
-             * Case (ii). Maybe MODPUB someday?
-             */
-            *seg->pubtail = loc;
-            seg->pubtail = &loc->next;
-            loc->next = NULL;
-            loc->name = nasm_strdup(name);
-            loc->offset = offset;
-
-            if (special)
-                nasm_error(ERR_NONFATAL,
-                      "OBJ supports no special symbol features"
-                      " for this symbol type");
-            return;
-        }
-
-    /*
-     * Case (iii).
-     */
-    if (is_global) {
-        ext = *exttail = nasm_malloc(sizeof(*ext));
-        ext->next = NULL;
-        exttail = &ext->next;
-        ext->name = name;
-        /* Place by default all externs into the current segment */
-        ext->defwrt_type = DEFWRT_NONE;
-
-/* 28-Apr-2002 - John Coffman
-  The following code was introduced on 12-Aug-2000, and breaks fixups
-  on code passed thru the MSC 5.1 linker (3.66) and MSC 6.00A linker
-  (5.10).  It was introduced after FIXUP32 was added, and may be needed
-  for 32-bit segments.  The following will get 16-bit segments working
-  again, and maybe someone can correct the 'if' condition which is
-  actually needed.
-*/
-#if 0
-        if (current_seg) {
-#else
-        if (current_seg && current_seg->use32) {
-            if (current_seg->grp) {
-                ext->defwrt_type = DEFWRT_GROUP;
-                ext->defwrt_ptr.grp = current_seg->grp;
-            } else {
-                ext->defwrt_type = DEFWRT_SEGMENT;
-                ext->defwrt_ptr.seg = current_seg;
-            }
-        }
-#endif
-
-        if (is_global == 2) {
-            ext->commonsize = offset;
-            ext->commonelem = 1;        /* default FAR */
-        } else
-            ext->commonsize = 0;
-    } else
-        return;
-
-    /*
-     * Now process the special text, if any, to find default-WRT
-     * specifications and common-variable element-size and near/far
-     * specifications.
-     */
-    while (special && *special) {
-        used_special = true;
-
-        /*
-         * We might have a default-WRT specification.
-         */
-        if (!nasm_strnicmp(special, "wrt", 3)) {
-            char *p;
-            int len;
-            special += 3;
-            special += strspn(special, " \t");
-            p = nasm_strndup(special, len = strcspn(special, ":"));
-            obj_ext_set_defwrt(ext, p);
-            special += len;
-            if (*special && *special != ':')
-                nasm_error(ERR_NONFATAL, "`:' expected in special symbol"
-                      " text for `%s'", ext->name);
-            else if (*special == ':')
-                special++;
-        }
-
-        /*
-         * The NEAR or FAR keywords specify nearness or
-         * farness. FAR gives default element size 1.
-         */
-        if (!nasm_strnicmp(special, "far", 3)) {
-            if (ext->commonsize)
-                ext->commonelem = 1;
-            else
-                nasm_error(ERR_NONFATAL,
-                      "`%s': `far' keyword may only be applied"
-                      " to common variables\n", ext->name);
-            special += 3;
-            special += strspn(special, " \t");
-        } else if (!nasm_strnicmp(special, "near", 4)) {
-            if (ext->commonsize)
-                ext->commonelem = 0;
-            else
-                nasm_error(ERR_NONFATAL,
-                      "`%s': `far' keyword may only be applied"
-                      " to common variables\n", ext->name);
-            special += 4;
-            special += strspn(special, " \t");
-        }
-
-        /*
-         * If it's a common, and anything else remains on the line
-         * before a further colon, evaluate it as an expression and
-         * use that as the element size. Forward references aren't
-         * allowed.
-         */
-        if (*special == ':')
-            special++;
-        else if (*special) {
-            if (ext->commonsize) {
-                expr *e;
-                struct tokenval tokval;
-
-                stdscan_reset();
-                stdscan_set(special);
-                tokval.t_type = TOKEN_INVALID;
-                e = evaluate(stdscan, NULL, &tokval, NULL, 1, NULL);
-                if (e) {
-                    if (!is_simple(e))
-                        nasm_error(ERR_NONFATAL, "cannot use relocatable"
-                              " expression as common-variable element size");
-                    else
-                        ext->commonelem = reloc_value(e);
-                }
-                special = stdscan_get();
-            } else {
-                nasm_error(ERR_NONFATAL,
-                      "`%s': element-size specifications only"
-                      " apply to common variables", ext->name);
-                while (*special && *special != ':')
-                    special++;
-                if (*special == ':')
-                    special++;
-            }
-        }
-    }
-
-    i = segment / 2;
-    eb = ebhead;
-    if (!eb) {
-        eb = *ebtail = nasm_zalloc(sizeof(*eb));
-        eb->next = NULL;
-        ebtail = &eb->next;
-    }
-    while (i >= EXT_BLKSIZ) {
-        if (eb && eb->next)
-            eb = eb->next;
-        else {
-            eb = *ebtail = nasm_zalloc(sizeof(*eb));
-            eb->next = NULL;
-            ebtail = &eb->next;
-        }
-        i -= EXT_BLKSIZ;
-    }
-    eb->exts[i] = ext;
-    ext->index = ++externals;
-
-    if (special && !used_special)
-        nasm_error(ERR_NONFATAL, "OBJ supports no special symbol features"
-              " for this symbol type");
-}
-
-/* forward declaration */
-static void obj_write_fixup(ObjRecord * orp, int bytes,
-                            int segrel, int32_t seg, int32_t wrt,
-                            struct Segment *segto);
-
-static void obj_out(int32_t segto, const void *data,
-		    enum out_type type, uint64_t size,
-                    int32_t segment, int32_t wrt)
-{
-    const uint8_t *ucdata;
-    int32_t ldata;
-    struct Segment *seg;
-    ObjRecord *orp;
-
-    /*
-     * handle absolute-assembly (structure definitions)
-     */
-    if (segto == NO_SEG) {
-        if (type != OUT_RESERVE)
-            nasm_error(ERR_NONFATAL, "attempt to assemble code in [ABSOLUTE]"
-                  " space");
-        return;
-    }
-
-    /*
-     * If `any_segs' is still false, we must define a default
-     * segment.
-     */
-    if (!any_segs) {
-        int tempint;            /* ignored */
-        if (segto != obj_segment("__NASMDEFSEG", 2, &tempint))
-            nasm_panic(0, "strange segment conditions in OBJ driver");
-    }
-
-    /*
-     * Find the segment we are targetting.
-     */
-    for (seg = seghead; seg; seg = seg->next)
-        if (seg->index == segto)
-            break;
-    if (!seg)
-        nasm_panic(0, "code directed to nonexistent segment?");
-
-    orp = seg->orp;
-    orp->parm[0] = seg->currentpos;
-
-    switch (type) {
-    case OUT_RAWDATA:
-        ucdata = data;
-        while (size > 0) {
-            unsigned int len;
-            orp = obj_check(seg->orp, 1);
-            len = RECORD_MAX - orp->used;
-            if (len > size)
-                len = size;
-            memcpy(orp->buf + orp->used, ucdata, len);
-            orp->committed = orp->used += len;
-            orp->parm[0] = seg->currentpos += len;
-            ucdata += len;
-            size -= len;
-        }
-	break;
-
-    case OUT_ADDRESS:
-    case OUT_REL1ADR:
-    case OUT_REL2ADR:
-    case OUT_REL4ADR:
-    case OUT_REL8ADR:
-    {
-        int rsize;
-
-        if (type == OUT_ADDRESS)
-            size = abs((int)size);
-
-        if (segment == NO_SEG && type != OUT_ADDRESS)
-            nasm_error(ERR_NONFATAL, "relative call to absolute address not"
-                  " supported by OBJ format");
-        if (segment >= SEG_ABS)
-            nasm_error(ERR_NONFATAL, "far-absolute relocations not supported"
-                  " by OBJ format");
-
-        ldata = *(int64_t *)data;
-        if (type != OUT_ADDRESS) {
-	    /*
-	     * For 16-bit and 32-bit x86 code, the size and realsize() always
-	     * matches as only jumps, calls and loops uses PC relative
-	     * addressing and the address isn't followed by any other opcode
-	     * bytes.  In 64-bit mode there is RIP relative addressing which
-	     * means the fixup location can be followed by an immediate value,
-	     * meaning that size > realsize().
-	     *
-	     * When the CPU is calculating the effective address, it takes the
-	     * RIP at the end of the instruction and adds the fixed up relative
-	     * address value to it.
-	     *
-	     * The linker's point of reference is the end of the fixup location
-	     * (which is the end of the instruction for Jcc, CALL, LOOP[cc]).
-	     * It is calculating distance between the target symbol and the end
-	     * of the fixup location, and add this to the displacement value we
-	     * are calculating here and storing at the fixup location.
-	     *
-	     * To get the right effect, we need to _reduce_ the displacement
-	     * value by the number of bytes following the fixup.
-	     *
-	     * Example:
-	     *  data at address 0x100; REL4ADR at 0x050, 4 byte immediate,
-	     *  end of fixup at 0x054, end of instruction at 0x058.
-	     *  => size = 8.
-	     *  => realsize() -> 4
-	     *  => CPU needs a value of:   0x100 - 0x058 = 0x0a8
-	     *  => linker/loader will add: 0x100 - 0x054 = 0x0ac
-	     *  => We must add an addend of -4.
-	     *  => realsize() - size = -4.
-	     *
-	     * The code used to do size - realsize() at least since v0.90,
-	     * probably because it wasn't needed...
-	     */
-	    ldata -= size;
-	    size = realsize(type, size);
-	    ldata += size;
-        }
-
-	switch (size) {
-	default:
-	    nasm_error(ERR_NONFATAL, "OBJ format can only handle 16- or "
-		       "32-byte relocations");
-	    segment = NO_SEG;	/* Don't actually generate a relocation */
-	    break;
-	case 2:
-            orp = obj_word(orp, ldata);
-	    break;
-	case 4:
-            orp = obj_dword(orp, ldata);
-	    break;
-	}
-
-        rsize = size;
-        if (segment < SEG_ABS && (segment != NO_SEG && segment % 2) &&
-            size == 4) {
-            /*
-             * This is a 4-byte segment-base relocation such as
-             * `MOV EAX,SEG foo'. OBJ format can't actually handle
-             * these, but if the constant term has the 16 low bits
-             * zero, we can just apply a 2-byte segment-base
-             * relocation to the low word instead.
-             */
-            rsize = 2;
-            if (ldata & 0xFFFF)
-                nasm_error(ERR_NONFATAL, "OBJ format cannot handle complex"
-                      " dword-size segment base references");
-        }
-        if (segment != NO_SEG)
-            obj_write_fixup(orp, rsize,
-                            (type == OUT_ADDRESS ? 0x4000 : 0),
-                            segment, wrt, seg);
-        seg->currentpos += size;
-	break;
-    }
-
-    default:
-	nasm_error(ERR_NONFATAL,
-		   "Relocation type not supported by output format");
-	/* fall through */
-
-    case OUT_RESERVE:
-        if (orp->committed)
-            orp = obj_bump(orp);
-        seg->currentpos += size;
-	break;
-    }
-    obj_commit(orp);
-}
-
-static void obj_write_fixup(ObjRecord * orp, int bytes,
-                            int segrel, int32_t seg, int32_t wrt,
-                            struct Segment *segto)
-{
-    unsigned locat;
-    int method;
-    int base;
-    int32_t tidx, fidx;
-    struct Segment *s = NULL;
-    struct Group *g = NULL;
-    struct External *e = NULL;
-    ObjRecord *forp;
-
-    if (bytes != 2 && bytes != 4) {
-        nasm_error(ERR_NONFATAL, "`obj' output driver does not support"
-		   " %d-bit relocations", bytes << 3);
-        return;
-    }
-
-    forp = orp->child;
-    if (forp == NULL) {
-        orp->child = forp = obj_new();
-        forp->up = &(orp->child);
-        /* We should choose between FIXUPP and FIXU32 record type */
-        /* If we're targeting a 32-bit segment, use a FIXU32 record */
-        if (segto->use32)
-            forp->type = FIXU32;
-        else
-            forp->type = FIXUPP;
-    }
-
-    if (seg % 2) {
-        base = true;
-        locat = FIX_16_SELECTOR;
-        seg--;
-        if (bytes != 2)
-            nasm_panic(0, "OBJ: 4-byte segment base fixup got"
-                  " through sanity check");
-    } else {
-        base = false;
-        locat = (bytes == 2) ? FIX_16_OFFSET : FIX_32_OFFSET;
-        if (!segrel)
-            /*
-             * There is a bug in tlink that makes it process self relative
-             * fixups incorrectly if the x_size doesn't match the location
-             * size.
-             */
-            forp = obj_force(forp, bytes << 3);
-    }
-
-    forp = obj_rword(forp, locat | segrel | (orp->parm[0] - orp->parm[2]));
-
-    tidx = fidx = -1, method = 0;       /* placate optimisers */
-
-    /*
-     * See if we can find the segment ID in our segment list. If
-     * so, we have a T4 (LSEG) target.
-     */
-    for (s = seghead; s; s = s->next)
-        if (s->index == seg)
-            break;
-    if (s)
-        method = 4, tidx = s->obj_index;
-    else {
-        for (g = grphead; g; g = g->next)
-            if (g->index == seg)
-                break;
-        if (g)
-            method = 5, tidx = g->obj_index;
-        else {
-            int32_t i = seg / 2;
-            struct ExtBack *eb = ebhead;
-            while (i >= EXT_BLKSIZ) {
-                if (eb)
-                    eb = eb->next;
-                else
-                    break;
-                i -= EXT_BLKSIZ;
-            }
-            if (eb)
-                method = 6, e = eb->exts[i], tidx = e->index;
-            else
-                nasm_panic(0,
-                      "unrecognised segment value in obj_write_fixup");
-        }
-    }
-
-    /*
-     * If no WRT given, assume the natural default, which is method
-     * F5 unless:
-     *
-     * - we are doing an OFFSET fixup for a grouped segment, in
-     *   which case we require F1 (group).
-     *
-     * - we are doing an OFFSET fixup for an external with a
-     *   default WRT, in which case we must honour the default WRT.
-     */
-    if (wrt == NO_SEG) {
-        if (!base && s && s->grp)
-            method |= 0x10, fidx = s->grp->obj_index;
-        else if (!base && e && e->defwrt_type != DEFWRT_NONE) {
-            if (e->defwrt_type == DEFWRT_SEGMENT)
-                method |= 0x00, fidx = e->defwrt_ptr.seg->obj_index;
-            else if (e->defwrt_type == DEFWRT_GROUP)
-                method |= 0x10, fidx = e->defwrt_ptr.grp->obj_index;
-            else {
-                nasm_error(ERR_NONFATAL, "default WRT specification for"
-                      " external `%s' unresolved", e->name);
-                method |= 0x50, fidx = -1;      /* got to do _something_ */
-            }
-        } else
-            method |= 0x50, fidx = -1;
-    } else {
-        /*
-         * See if we can find the WRT-segment ID in our segment
-         * list. If so, we have a F0 (LSEG) frame.
-         */
-        for (s = seghead; s; s = s->next)
-            if (s->index == wrt - 1)
-                break;
-        if (s)
-            method |= 0x00, fidx = s->obj_index;
-        else {
-            for (g = grphead; g; g = g->next)
-                if (g->index == wrt - 1)
-                    break;
-            if (g)
-                method |= 0x10, fidx = g->obj_index;
-            else {
-                int32_t i = wrt / 2;
-                struct ExtBack *eb = ebhead;
-                while (i >= EXT_BLKSIZ) {
-                    if (eb)
-                        eb = eb->next;
-                    else
-                        break;
-                    i -= EXT_BLKSIZ;
-                }
-                if (eb)
-                    method |= 0x20, fidx = eb->exts[i]->index;
-                else
-                    nasm_panic(0,
-                          "unrecognised WRT value in obj_write_fixup");
-            }
-        }
-    }
-
-    forp = obj_byte(forp, method);
-    if (fidx != -1)
-        forp = obj_index(forp, fidx);
-    forp = obj_index(forp, tidx);
-    obj_commit(forp);
-}
-
-static int32_t obj_segment(char *name, int pass, int *bits)
-{
-    /*
-     * We call the label manager here to define a name for the new
-     * segment, and when our _own_ label-definition stub gets
-     * called in return, it should register the new segment name
-     * using the pointer it gets passed. That way we save memory,
-     * by sponging off the label manager.
-     */
-#if defined(DEBUG) && DEBUG>=3
-    nasm_error(ERR_DEBUG, " obj_segment: < %s >, pass=%d, *bits=%d\n",
-            name, pass, *bits);
-#endif
-    if (!name) {
-        *bits = 16;
-        current_seg = NULL;
-        return first_seg;
-    } else {
-        struct Segment *seg;
-        struct Group *grp;
-        struct External **extp;
-        int obj_idx, i, attrs;
-	bool rn_error;
-        char *p;
-
-        /*
-         * Look for segment attributes.
-         */
-        attrs = 0;
-        while (*name == '.')
-            name++;             /* hack, but a documented one */
-        p = name;
-        while (*p && !nasm_isspace(*p))
-            p++;
-        if (*p) {
-            *p++ = '\0';
-            while (*p && nasm_isspace(*p))
-                *p++ = '\0';
-        }
-        while (*p) {
-            while (*p && !nasm_isspace(*p))
-                p++;
-            if (*p) {
-                *p++ = '\0';
-                while (*p && nasm_isspace(*p))
-                    *p++ = '\0';
-            }
-
-            attrs++;
-        }
-
-        obj_idx = 1;
-        for (seg = seghead; seg; seg = seg->next) {
-            obj_idx++;
-            if (!strcmp(seg->name, name)) {
-                if (attrs > 0 && pass == 1)
-                    nasm_error(ERR_WARNING, "segment attributes specified on"
-                          " redeclaration of segment: ignoring");
-                if (seg->use32)
-                    *bits = 32;
-                else
-                    *bits = 16;
-                current_seg = seg;
-                return seg->index;
-            }
-        }
-
-        *segtail = seg = nasm_malloc(sizeof(*seg));
-        seg->next = NULL;
-        segtail = &seg->next;
-        seg->index = (any_segs ? seg_alloc() : first_seg);
-        seg->obj_index = obj_idx;
-        seg->grp = NULL;
-        any_segs = true;
-        seg->name = NULL;
-        seg->currentpos = 0;
-        seg->align = 1;         /* default */
-        seg->use32 = false;     /* default */
-        seg->combine = CMB_PUBLIC;      /* default */
-        seg->segclass = seg->overlay = NULL;
-        seg->pubhead = NULL;
-        seg->pubtail = &seg->pubhead;
-        seg->lochead = NULL;
-        seg->loctail = &seg->lochead;
-        seg->orp = obj_new();
-        seg->orp->up = &(seg->orp);
-        seg->orp->ori = ori_ledata;
-        seg->orp->type = LEDATA;
-        seg->orp->parm[1] = obj_idx;
-
-        /*
-         * Process the segment attributes.
-         */
-        p = name;
-        while (attrs--) {
-            p += strlen(p);
-            while (!*p)
-                p++;
-
-            /*
-             * `p' contains a segment attribute.
-             */
-            if (!nasm_stricmp(p, "private"))
-                seg->combine = CMB_PRIVATE;
-            else if (!nasm_stricmp(p, "public"))
-                seg->combine = CMB_PUBLIC;
-            else if (!nasm_stricmp(p, "common"))
-                seg->combine = CMB_COMMON;
-            else if (!nasm_stricmp(p, "stack"))
-                seg->combine = CMB_STACK;
-            else if (!nasm_stricmp(p, "use16"))
-                seg->use32 = false;
-            else if (!nasm_stricmp(p, "use32"))
-                seg->use32 = true;
-            else if (!nasm_stricmp(p, "flat")) {
-                /*
-                 * This segment is an OS/2 FLAT segment. That means
-                 * that its default group is group FLAT, even if
-                 * the group FLAT does not explicitly _contain_ the
-                 * segment.
-                 *
-                 * When we see this, we must create the group
-                 * `FLAT', containing no segments, if it does not
-                 * already exist; then we must set the default
-                 * group of this segment to be the FLAT group.
-                 */
-                struct Group *grp;
-                for (grp = grphead; grp; grp = grp->next)
-                    if (!strcmp(grp->name, "FLAT"))
-                        break;
-                if (!grp) {
-                    obj_directive(D_GROUP, "FLAT", 1);
-                    for (grp = grphead; grp; grp = grp->next)
-                        if (!strcmp(grp->name, "FLAT"))
-                            break;
-                    if (!grp)
-                        nasm_panic(0, "failure to define FLAT?!");
-                }
-                seg->grp = grp;
-            } else if (!nasm_strnicmp(p, "class=", 6))
-                seg->segclass = nasm_strdup(p + 6);
-            else if (!nasm_strnicmp(p, "overlay=", 8))
-                seg->overlay = nasm_strdup(p + 8);
-            else if (!nasm_strnicmp(p, "align=", 6)) {
-                seg->align = readnum(p + 6, &rn_error);
-                if (rn_error) {
-                    seg->align = 1;
-                    nasm_error(ERR_NONFATAL, "segment alignment should be"
-                          " numeric");
-                }
-                switch (seg->align) {
-                case 1:        /* BYTE */
-                case 2:        /* WORD */
-                case 4:        /* DWORD */
-                case 16:       /* PARA */
-                case 256:      /* PAGE */
-                case 4096:     /* PharLap extension */
-                    break;
-                case 8:
-                    nasm_error(ERR_WARNING,
-                          "OBJ format does not support alignment"
-                          " of 8: rounding up to 16");
-                    seg->align = 16;
-                    break;
-                case 32:
-                case 64:
-                case 128:
-                    nasm_error(ERR_WARNING,
-                          "OBJ format does not support alignment"
-                          " of %d: rounding up to 256", seg->align);
-                    seg->align = 256;
-                    break;
-                case 512:
-                case 1024:
-                case 2048:
-                    nasm_error(ERR_WARNING,
-                          "OBJ format does not support alignment"
-                          " of %d: rounding up to 4096", seg->align);
-                    seg->align = 4096;
-                    break;
-                default:
-                    nasm_error(ERR_NONFATAL, "invalid alignment value %d",
-                          seg->align);
-                    seg->align = 1;
-                    break;
-                }
-            } else if (!nasm_strnicmp(p, "absolute=", 9)) {
-                seg->align = SEG_ABS + readnum(p + 9, &rn_error);
-                if (rn_error)
-                    nasm_error(ERR_NONFATAL, "argument to `absolute' segment"
-                          " attribute should be numeric");
-            }
-        }
-
-        /* We need to know whenever we have at least one 32-bit segment */
-        obj_use32 |= seg->use32;
-
-        obj_seg_needs_update = seg;
-        if (seg->align >= SEG_ABS)
-            define_label(name, NO_SEG, seg->align - SEG_ABS,
-			 NULL, false, false);
-        else
-            define_label(name, seg->index + 1, 0L,
-			 NULL, false, false);
-        obj_seg_needs_update = NULL;
-
-        /*
-         * See if this segment is defined in any groups.
-         */
-        for (grp = grphead; grp; grp = grp->next) {
-            for (i = grp->nindices; i < grp->nentries; i++) {
-                if (!strcmp(grp->segs[i].name, seg->name)) {
-                    nasm_free(grp->segs[i].name);
-                    grp->segs[i] = grp->segs[grp->nindices];
-                    grp->segs[grp->nindices++].index = seg->obj_index;
-                    if (seg->grp)
-                        nasm_error(ERR_WARNING,
-				   "segment `%s' is already part of"
-				   " a group: first one takes precedence",
-				   seg->name);
-                    else
-                        seg->grp = grp;
-                }
-            }
-        }
-
-        /*
-         * Walk through the list of externals with unresolved
-         * default-WRT clauses, and resolve any that point at this
-         * segment.
-         */
-        extp = &dws;
-        while (*extp) {
-            if ((*extp)->defwrt_type == DEFWRT_STRING &&
-                !strcmp((*extp)->defwrt_ptr.string, seg->name)) {
-                nasm_free((*extp)->defwrt_ptr.string);
-                (*extp)->defwrt_type = DEFWRT_SEGMENT;
-                (*extp)->defwrt_ptr.seg = seg;
-                *extp = (*extp)->next_dws;
-            } else
-                extp = &(*extp)->next_dws;
-        }
-
-        if (seg->use32)
-            *bits = 32;
-        else
-            *bits = 16;
-        current_seg = seg;
-        return seg->index;
-    }
-}
-
-static enum directive_result
-obj_directive(enum directives directive, char *value, int pass)
-{
-    switch (directive) {
-    case D_GROUP:
-    {
-        char *p, *q, *v;
-        if (pass == 1) {
-            struct Group *grp;
-            struct Segment *seg;
-            struct External **extp;
-            int obj_idx;
-
-            q = value;
-            while (*q == '.')
-                q++;            /* hack, but a documented one */
-            v = q;
-            while (*q && !nasm_isspace(*q))
-                q++;
-            if (nasm_isspace(*q)) {
-                *q++ = '\0';
-                while (*q && nasm_isspace(*q))
-                    q++;
-            }
-            /*
-             * Here we used to sanity-check the group directive to
-             * ensure nobody tried to declare a group containing no
-             * segments. However, OS/2 does this as standard
-             * practice, so the sanity check has been removed.
-             *
-             * if (!*q) {
-             *     nasm_error(ERR_NONFATAL,"GROUP directive contains no segments");
-             *     return DIRR_ERROR;
-             * }
-             */
-
-            obj_idx = 1;
-            for (grp = grphead; grp; grp = grp->next) {
-                obj_idx++;
-                if (!strcmp(grp->name, v)) {
-                    nasm_error(ERR_NONFATAL, "group `%s' defined twice", v);
-                    return DIRR_ERROR;
-                }
-            }
-
-            *grptail = grp = nasm_malloc(sizeof(*grp));
-            grp->next = NULL;
-            grptail = &grp->next;
-            grp->index = seg_alloc();
-            grp->obj_index = obj_idx;
-            grp->nindices = grp->nentries = 0;
-            grp->name = NULL;
-
-            obj_grp_needs_update = grp;
-            define_label(v, grp->index + 1, 0L, NULL, false, false);
-            obj_grp_needs_update = NULL;
-
-            while (*q) {
-                p = q;
-                while (*q && !nasm_isspace(*q))
-                    q++;
-                if (nasm_isspace(*q)) {
-                    *q++ = '\0';
-                    while (*q && nasm_isspace(*q))
-                        q++;
-                }
-                /*
-                 * Now p contains a segment name. Find it.
-                 */
-                for (seg = seghead; seg; seg = seg->next)
-                    if (!strcmp(seg->name, p))
-                        break;
-                if (seg) {
-                    /*
-                     * We have a segment index. Shift a name entry
-                     * to the end of the array to make room.
-                     */
-                    grp->segs[grp->nentries++] = grp->segs[grp->nindices];
-                    grp->segs[grp->nindices++].index = seg->obj_index;
-                    if (seg->grp)
-                        nasm_error(ERR_WARNING,
-                              "segment `%s' is already part of"
-                              " a group: first one takes precedence",
-                              seg->name);
-                    else
-                        seg->grp = grp;
-                } else {
-                    /*
-                     * We have an as-yet undefined segment.
-                     * Remember its name, for later.
-                     */
-                    grp->segs[grp->nentries++].name = nasm_strdup(p);
-                }
-            }
-
-            /*
-             * Walk through the list of externals with unresolved
-             * default-WRT clauses, and resolve any that point at
-             * this group.
-             */
-            extp = &dws;
-            while (*extp) {
-                if ((*extp)->defwrt_type == DEFWRT_STRING &&
-                    !strcmp((*extp)->defwrt_ptr.string, grp->name)) {
-                    nasm_free((*extp)->defwrt_ptr.string);
-                    (*extp)->defwrt_type = DEFWRT_GROUP;
-                    (*extp)->defwrt_ptr.grp = grp;
-                    *extp = (*extp)->next_dws;
-                } else
-                    extp = &(*extp)->next_dws;
-            }
-        }
-        return DIRR_OK;
-    }
-    case D_UPPERCASE:
-        obj_uppercase = true;
-        return DIRR_OK;
-
-    case D_IMPORT:
-    {
-        char *q, *extname, *libname, *impname;
-
-        if (pass == 2)
-            return 1;           /* ignore in pass two */
-        extname = q = value;
-        while (*q && !nasm_isspace(*q))
-            q++;
-        if (nasm_isspace(*q)) {
-            *q++ = '\0';
-            while (*q && nasm_isspace(*q))
-                q++;
-        }
-
-        libname = q;
-        while (*q && !nasm_isspace(*q))
-            q++;
-        if (nasm_isspace(*q)) {
-            *q++ = '\0';
-            while (*q && nasm_isspace(*q))
-                q++;
-        }
-
-        impname = q;
-
-        if (!*extname || !*libname)
-            nasm_error(ERR_NONFATAL, "`import' directive requires symbol name"
-                  " and library name");
-        else {
-            struct ImpDef *imp;
-            bool err = false;
-
-            imp = *imptail = nasm_malloc(sizeof(struct ImpDef));
-            imptail = &imp->next;
-            imp->next = NULL;
-            imp->extname = nasm_strdup(extname);
-            imp->libname = nasm_strdup(libname);
-            imp->impindex = readnum(impname, &err);
-            if (!*impname || err)
-                imp->impname = nasm_strdup(impname);
-            else
-                imp->impname = NULL;
-        }
-
-        return DIRR_OK;
-    }
-    case D_EXPORT:
-    {
-        char *q, *extname, *intname, *v;
-        struct ExpDef *export;
-        int flags = 0;
-        unsigned int ordinal = 0;
-
-        if (pass == 2)
-            return DIRR_OK;     /* ignore in pass two */
-        intname = q = value;
-        while (*q && !nasm_isspace(*q))
-            q++;
-        if (nasm_isspace(*q)) {
-            *q++ = '\0';
-            while (*q && nasm_isspace(*q))
-                q++;
-        }
-
-        extname = q;
-        while (*q && !nasm_isspace(*q))
-            q++;
-        if (nasm_isspace(*q)) {
-            *q++ = '\0';
-            while (*q && nasm_isspace(*q))
-                q++;
-        }
-
-        if (!*intname) {
-            nasm_error(ERR_NONFATAL, "`export' directive requires export name");
-            return DIRR_OK;
-        }
-        if (!*extname) {
-            extname = intname;
-            intname = "";
-        }
-        while (*q) {
-            v = q;
-            while (*q && !nasm_isspace(*q))
-                q++;
-            if (nasm_isspace(*q)) {
-                *q++ = '\0';
-                while (*q && nasm_isspace(*q))
-                    q++;
-            }
-            if (!nasm_stricmp(v, "resident"))
-                flags |= EXPDEF_FLAG_RESIDENT;
-            else if (!nasm_stricmp(v, "nodata"))
-                flags |= EXPDEF_FLAG_NODATA;
-            else if (!nasm_strnicmp(v, "parm=", 5)) {
-                bool err = false;
-                flags |= EXPDEF_MASK_PARMCNT & readnum(v + 5, &err);
-                if (err) {
-                    nasm_error(ERR_NONFATAL,
-                          "value `%s' for `parm' is non-numeric", v + 5);
-                    return DIRR_ERROR;
-                }
-            } else {
-                bool err = false;
-                ordinal = readnum(v, &err);
-                if (err) {
-                    nasm_error(ERR_NONFATAL,
-                          "unrecognised export qualifier `%s'", v);
-                    return DIRR_ERROR;
-                }
-                flags |= EXPDEF_FLAG_ORDINAL;
-            }
-        }
-
-        export = *exptail = nasm_malloc(sizeof(struct ExpDef));
-        exptail = &export->next;
-        export->next = NULL;
-        export->extname = nasm_strdup(extname);
-        export->intname = nasm_strdup(intname);
-        export->ordinal = ordinal;
-        export->flags = flags;
-
-        return DIRR_OK;
-    }
-    default:
-	return DIRR_UNKNOWN;
-    }
-}
-
-static void obj_sectalign(int32_t seg, unsigned int value)
-{
-    struct Segment *s;
-
-    list_for_each(s, seghead) {
-        if (s->index == seg)
-            break;
-    }
-
-    /*
-     * it should not be too big value
-     * and applied on non-absolute sections
-     */
-    if (!s || !is_power2(value) ||
-        value > 4096 || s->align >= SEG_ABS)
-        return;
-
-    /*
-     * FIXME: No code duplication please
-     * consider making helper for this
-     * mapping since section handler has
-     * to do the same
-     */
-    switch (value) {
-    case 8:
-        value = 16;
-        break;
-    case 32:
-    case 64:
-    case 128:
-        value = 256;
-        break;
-    case 512:
-    case 1024:
-    case 2048:
-        value = 4096;
-        break;
-    }
-
-    if (s->align < (int)value)
-        s->align = value;
-}
-
-static int32_t obj_segbase(int32_t segment)
-{
-    struct Segment *seg;
-
-    /*
-     * Find the segment in our list.
-     */
-    for (seg = seghead; seg; seg = seg->next)
-        if (seg->index == segment - 1)
-            break;
-
-    if (!seg) {
-        /*
-         * Might be an external with a default WRT.
-         */
-        int32_t i = segment / 2;
-        struct ExtBack *eb = ebhead;
-        struct External *e;
-
-        while (i >= EXT_BLKSIZ) {
-            if (eb)
-                eb = eb->next;
-            else
-                break;
-            i -= EXT_BLKSIZ;
-        }
-        if (eb) {
-            e = eb->exts[i];
-	    if (!e) {
-		nasm_assert(pass0 == 0);
-		/* Not available - can happen during optimization */
-		return NO_SEG;
-	    }
-
-	    switch (e->defwrt_type) {
-	    case DEFWRT_NONE:
-                return segment; /* fine */
-	    case DEFWRT_SEGMENT:
-                return e->defwrt_ptr.seg->index + 1;
-	    case DEFWRT_GROUP:
-                return e->defwrt_ptr.grp->index + 1;
-	    default:
-                return NO_SEG;  /* can't tell what it is */
-	    }
-        }
-
-        return segment;         /* not one of ours - leave it alone */
-    }
-
-    if (seg->align >= SEG_ABS)
-        return seg->align;      /* absolute segment */
-    if (seg->grp)
-        return seg->grp->index + 1;     /* grouped segment */
-
-    return segment;             /* no special treatment */
-}
-
-static void obj_filename(char *inname, char *outname)
-{
-    strcpy(obj_infile, inname);
-    standard_extension(inname, outname, ".obj");
-}
-
-static void obj_write_file(void)
-{
-    struct Segment *seg, *entry_seg_ptr = 0;
-    struct FileName *fn;
-    struct LineNumber *ln;
-    struct Group *grp;
-    struct Public *pub, *loc;
-    struct External *ext;
-    struct ImpDef *imp;
-    struct ExpDef *export;
-    int lname_idx;
-    ObjRecord *orp;
-    const bool debuginfo = (dfmt == &borland_debug_form);
-
-    /*
-     * Write the THEADR module header.
-     */
-    orp = obj_new();
-    orp->type = THEADR;
-    obj_name(orp, obj_infile);
-    obj_emit2(orp);
-
-    /*
-     * Write the NASM boast comment.
-     */
-    orp->type = COMENT;
-    obj_rword(orp, 0);          /* comment type zero */
-    obj_name(orp, nasm_comment);
-    obj_emit2(orp);
-
-    orp->type = COMENT;
-    /*
-     * Write the IMPDEF records, if any.
-     */
-    for (imp = imphead; imp; imp = imp->next) {
-        obj_rword(orp, 0xA0);   /* comment class A0 */
-        obj_byte(orp, 1);       /* subfunction 1: IMPDEF */
-        if (imp->impname)
-            obj_byte(orp, 0);   /* import by name */
-        else
-            obj_byte(orp, 1);   /* import by ordinal */
-        obj_name(orp, imp->extname);
-        obj_name(orp, imp->libname);
-        if (imp->impname)
-            obj_name(orp, imp->impname);
-        else
-            obj_word(orp, imp->impindex);
-        obj_emit2(orp);
-    }
-
-    /*
-     * Write the EXPDEF records, if any.
-     */
-    for (export = exphead; export; export = export->next) {
-        obj_rword(orp, 0xA0);   /* comment class A0 */
-        obj_byte(orp, 2);       /* subfunction 2: EXPDEF */
-        obj_byte(orp, export->flags);
-        obj_name(orp, export->extname);
-        obj_name(orp, export->intname);
-        if (export->flags & EXPDEF_FLAG_ORDINAL)
-            obj_word(orp, export->ordinal);
-        obj_emit2(orp);
-    }
-
-    /* we're using extended OMF if we put in debug info */
-    if (debuginfo) {
-        orp->type = COMENT;
-        obj_byte(orp, 0x40);
-        obj_byte(orp, dEXTENDED);
-        obj_emit2(orp);
-    }
-
-    /*
-     * Write the first LNAMES record, containing LNAME one, which
-     * is null. Also initialize the LNAME counter.
-     */
-    orp->type = LNAMES;
-    obj_byte(orp, 0);
-    lname_idx = 1;
-    /*
-     * Write some LNAMES for the segment names
-     */
-    for (seg = seghead; seg; seg = seg->next) {
-        orp = obj_name(orp, seg->name);
-        if (seg->segclass)
-            orp = obj_name(orp, seg->segclass);
-        if (seg->overlay)
-            orp = obj_name(orp, seg->overlay);
-        obj_commit(orp);
-    }
-    /*
-     * Write some LNAMES for the group names
-     */
-    for (grp = grphead; grp; grp = grp->next) {
-        orp = obj_name(orp, grp->name);
-        obj_commit(orp);
-    }
-    obj_emit(orp);
-
-    /*
-     * Write the SEGDEF records.
-     */
-    orp->type = SEGDEF;
-    for (seg = seghead; seg; seg = seg->next) {
-        int acbp;
-        uint32_t seglen = seg->currentpos;
-
-        acbp = (seg->combine << 2);     /* C field */
-
-        if (seg->use32)
-            acbp |= 0x01;       /* P bit is Use32 flag */
-        else if (seglen == 0x10000L) {
-            seglen = 0;         /* This special case may be needed for old linkers */
-            acbp |= 0x02;       /* B bit */
-        }
-
-        /* A field */
-        if (seg->align >= SEG_ABS)
-            /* acbp |= 0x00 */ ;
-        else if (seg->align >= 4096) {
-            if (seg->align > 4096)
-                nasm_error(ERR_NONFATAL, "segment `%s' requires more alignment"
-                      " than OBJ format supports", seg->name);
-            acbp |= 0xC0;       /* PharLap extension */
-        } else if (seg->align >= 256) {
-            acbp |= 0x80;
-        } else if (seg->align >= 16) {
-            acbp |= 0x60;
-        } else if (seg->align >= 4) {
-            acbp |= 0xA0;
-        } else if (seg->align >= 2) {
-            acbp |= 0x40;
-        } else
-            acbp |= 0x20;
-
-        obj_byte(orp, acbp);
-        if (seg->align & SEG_ABS) {
-            obj_x(orp, seg->align - SEG_ABS);   /* Frame */
-            obj_byte(orp, 0);   /* Offset */
-        }
-        obj_x(orp, seglen);
-        obj_index(orp, ++lname_idx);
-        obj_index(orp, seg->segclass ? ++lname_idx : 1);
-        obj_index(orp, seg->overlay ? ++lname_idx : 1);
-        obj_emit2(orp);
-    }
-
-    /*
-     * Write the GRPDEF records.
-     */
-    orp->type = GRPDEF;
-    for (grp = grphead; grp; grp = grp->next) {
-        int i;
-
-        if (grp->nindices != grp->nentries) {
-            for (i = grp->nindices; i < grp->nentries; i++) {
-                nasm_error(ERR_NONFATAL, "group `%s' contains undefined segment"
-                      " `%s'", grp->name, grp->segs[i].name);
-                nasm_free(grp->segs[i].name);
-                grp->segs[i].name = NULL;
-            }
-        }
-        obj_index(orp, ++lname_idx);
-        for (i = 0; i < grp->nindices; i++) {
-            obj_byte(orp, 0xFF);
-            obj_index(orp, grp->segs[i].index);
-        }
-        obj_emit2(orp);
-    }
-
-    /*
-     * Write the PUBDEF records: first the ones in the segments,
-     * then the far-absolutes.
-     */
-    orp->type = PUBDEF;
-    orp->ori = ori_pubdef;
-    for (seg = seghead; seg; seg = seg->next) {
-        orp->parm[0] = seg->grp ? seg->grp->obj_index : 0;
-        orp->parm[1] = seg->obj_index;
-        for (pub = seg->pubhead; pub; pub = pub->next) {
-            orp = obj_name(orp, pub->name);
-            orp = obj_x(orp, pub->offset);
-            orp = obj_byte(orp, 0);     /* type index */
-            obj_commit(orp);
-        }
-        obj_emit(orp);
-    }
-    orp->parm[0] = 0;
-    orp->parm[1] = 0;
-    for (pub = fpubhead; pub; pub = pub->next) {        /* pub-crawl :-) */
-        if (orp->parm[2] != (uint32_t)pub->segment) {
-            obj_emit(orp);
-            orp->parm[2] = pub->segment;
-        }
-        orp = obj_name(orp, pub->name);
-        orp = obj_x(orp, pub->offset);
-        orp = obj_byte(orp, 0); /* type index */
-        obj_commit(orp);
-    }
-    obj_emit(orp);
-
-    /*
-     * Write the EXTDEF and COMDEF records, in order.
-     */
-    orp->ori = ori_null;
-    for (ext = exthead; ext; ext = ext->next) {
-        if (ext->commonsize == 0) {
-            if (orp->type != EXTDEF) {
-                obj_emit(orp);
-                orp->type = EXTDEF;
-            }
-            orp = obj_name(orp, ext->name);
-            orp = obj_index(orp, 0);
-        } else {
-            if (orp->type != COMDEF) {
-                obj_emit(orp);
-                orp->type = COMDEF;
-            }
-            orp = obj_name(orp, ext->name);
-            orp = obj_index(orp, 0);
-            if (ext->commonelem) {
-                orp = obj_byte(orp, 0x61);      /* far communal */
-                orp = obj_value(orp, (ext->commonsize / ext->commonelem));
-                orp = obj_value(orp, ext->commonelem);
-            } else {
-                orp = obj_byte(orp, 0x62);      /* near communal */
-                orp = obj_value(orp, ext->commonsize);
-            }
-        }
-        obj_commit(orp);
-    }
-    obj_emit(orp);
-
-    /*
-     * Write a COMENT record stating that the linker's first pass
-     * may stop processing at this point. Exception is if our
-     * MODEND record specifies a start point, in which case,
-     * according to some variants of the documentation, this COMENT
-     * should be omitted. So we'll omit it just in case.
-     * But, TASM puts it in all the time so if we are using
-     * TASM debug stuff we are putting it in
-     */
-    if (debuginfo || obj_entry_seg == NO_SEG) {
-        orp->type = COMENT;
-        obj_byte(orp, 0x40);
-        obj_byte(orp, dLINKPASS);
-        obj_byte(orp, 1);
-        obj_emit2(orp);
-    }
-
-    /*
-     * 1) put out the compiler type
-     * 2) Put out the type info.  The only type we are using is near label #19
-     */
-    if (debuginfo) {
-        int i;
-        struct Array *arrtmp = arrhead;
-        orp->type = COMENT;
-        obj_byte(orp, 0x40);
-        obj_byte(orp, dCOMPDEF);
-        obj_byte(orp, 4);
-        obj_byte(orp, 0);
-        obj_emit2(orp);
-
-        obj_byte(orp, 0x40);
-        obj_byte(orp, dTYPEDEF);
-        obj_word(orp, 0x18);    /* type # for linking */
-        obj_word(orp, 6);       /* size of type */
-        obj_byte(orp, 0x2a);    /* absolute type for debugging */
-        obj_emit2(orp);
-        obj_byte(orp, 0x40);
-        obj_byte(orp, dTYPEDEF);
-        obj_word(orp, 0x19);    /* type # for linking */
-        obj_word(orp, 0);       /* size of type */
-        obj_byte(orp, 0x24);    /* absolute type for debugging */
-        obj_byte(orp, 0);       /* near/far specifier */
-        obj_emit2(orp);
-        obj_byte(orp, 0x40);
-        obj_byte(orp, dTYPEDEF);
-        obj_word(orp, 0x1A);    /* type # for linking */
-        obj_word(orp, 0);       /* size of type */
-        obj_byte(orp, 0x24);    /* absolute type for debugging */
-        obj_byte(orp, 1);       /* near/far specifier */
-        obj_emit2(orp);
-        obj_byte(orp, 0x40);
-        obj_byte(orp, dTYPEDEF);
-        obj_word(orp, 0x1b);    /* type # for linking */
-        obj_word(orp, 0);       /* size of type */
-        obj_byte(orp, 0x23);    /* absolute type for debugging */
-        obj_byte(orp, 0);
-        obj_byte(orp, 0);
-        obj_byte(orp, 0);
-        obj_emit2(orp);
-        obj_byte(orp, 0x40);
-        obj_byte(orp, dTYPEDEF);
-        obj_word(orp, 0x1c);    /* type # for linking */
-        obj_word(orp, 0);       /* size of type */
-        obj_byte(orp, 0x23);    /* absolute type for debugging */
-        obj_byte(orp, 0);
-        obj_byte(orp, 4);
-        obj_byte(orp, 0);
-        obj_emit2(orp);
-        obj_byte(orp, 0x40);
-        obj_byte(orp, dTYPEDEF);
-        obj_word(orp, 0x1d);    /* type # for linking */
-        obj_word(orp, 0);       /* size of type */
-        obj_byte(orp, 0x23);    /* absolute type for debugging */
-        obj_byte(orp, 0);
-        obj_byte(orp, 1);
-        obj_byte(orp, 0);
-        obj_emit2(orp);
-        obj_byte(orp, 0x40);
-        obj_byte(orp, dTYPEDEF);
-        obj_word(orp, 0x1e);    /* type # for linking */
-        obj_word(orp, 0);       /* size of type */
-        obj_byte(orp, 0x23);    /* absolute type for debugging */
-        obj_byte(orp, 0);
-        obj_byte(orp, 5);
-        obj_byte(orp, 0);
-        obj_emit2(orp);
-
-        /* put out the array types */
-        for (i = ARRAYBOT; i < arrindex; i++) {
-            obj_byte(orp, 0x40);
-            obj_byte(orp, dTYPEDEF);
-            obj_word(orp, i);   /* type # for linking */
-            obj_word(orp, arrtmp->size);        /* size of type */
-            obj_byte(orp, 0x1A);        /* absolute type for debugging (array) */
-            obj_byte(orp, arrtmp->basetype);    /* base type */
-            obj_emit2(orp);
-            arrtmp = arrtmp->next;
-        }
-    }
-    /*
-     * write out line number info with a LINNUM record
-     * switch records when we switch segments, and output the
-     * file in a pseudo-TASM fashion.  The record switch is naive; that
-     * is that one file may have many records for the same segment
-     * if there are lots of segment switches
-     */
-    if (fnhead && debuginfo) {
-        seg = fnhead->lnhead->segment;
-
-        for (fn = fnhead; fn; fn = fn->next) {
-            /* write out current file name */
-            orp->type = COMENT;
-            orp->ori = ori_null;
-            obj_byte(orp, 0x40);
-            obj_byte(orp, dFILNAME);
-            obj_byte(orp, 0);
-            obj_name(orp, fn->name);
-            obj_dword(orp, 0);
-            obj_emit2(orp);
-
-            /* write out line numbers this file */
-
-            orp->type = LINNUM;
-            orp->ori = ori_linnum;
-            for (ln = fn->lnhead; ln; ln = ln->next) {
-                if (seg != ln->segment) {
-                    /* if we get here have to flush the buffer and start
-                     * a new record for a new segment
-                     */
-                    seg = ln->segment;
-                    obj_emit(orp);
-                }
-                orp->parm[0] = seg->grp ? seg->grp->obj_index : 0;
-                orp->parm[1] = seg->obj_index;
-                orp = obj_word(orp, ln->lineno);
-                orp = obj_x(orp, ln->offset);
-                obj_commit(orp);
-            }
-            obj_emit(orp);
-        }
-    }
-    /*
-     * we are going to locate the entry point segment now
-     * rather than wait until the MODEND record, because,
-     * then we can output a special symbol to tell where the
-     * entry point is.
-     *
-     */
-    if (obj_entry_seg != NO_SEG) {
-        for (seg = seghead; seg; seg = seg->next) {
-            if (seg->index == obj_entry_seg) {
-                entry_seg_ptr = seg;
-                break;
-            }
-        }
-        if (!seg)
-            nasm_error(ERR_NONFATAL, "entry point is not in this module");
-    }
-
-    /*
-     * get ready to put out symbol records
-     */
-    orp->type = COMENT;
-    orp->ori = ori_local;
-
-    /*
-     * put out a symbol for the entry point
-     * no dots in this symbol, because, borland does
-     * not (officially) support dots in label names
-     * and I don't know what various versions of TLINK will do
-     */
-    if (debuginfo && obj_entry_seg != NO_SEG) {
-        orp = obj_name(orp, "start_of_program");
-        orp = obj_word(orp, 0x19);      /* type: near label */
-        orp = obj_index(orp, seg->grp ? seg->grp->obj_index : 0);
-        orp = obj_index(orp, seg->obj_index);
-        orp = obj_x(orp, obj_entry_ofs);
-        obj_commit(orp);
-    }
-
-    /*
-     * put out the local labels
-     */
-    for (seg = seghead; seg && debuginfo; seg = seg->next) {
-        /* labels this seg */
-        for (loc = seg->lochead; loc; loc = loc->next) {
-            orp = obj_name(orp, loc->name);
-            orp = obj_word(orp, loc->type);
-            orp = obj_index(orp, seg->grp ? seg->grp->obj_index : 0);
-            orp = obj_index(orp, seg->obj_index);
-            orp = obj_x(orp, loc->offset);
-            obj_commit(orp);
-        }
-    }
-    if (orp->used)
-        obj_emit(orp);
-
-    /*
-     * Write the LEDATA/FIXUPP pairs.
-     */
-    for (seg = seghead; seg; seg = seg->next) {
-        obj_emit(seg->orp);
-        nasm_free(seg->orp);
-    }
-
-    /*
-     * Write the MODEND module end marker.
-     */
-    orp->type = obj_use32 ? MODE32 : MODEND;
-    orp->ori = ori_null;
-    if (entry_seg_ptr) {
-        orp->type = entry_seg_ptr->use32 ? MODE32 : MODEND;
-        obj_byte(orp, 0xC1);
-        seg = entry_seg_ptr;
-        if (seg->grp) {
-            obj_byte(orp, 0x10);
-            obj_index(orp, seg->grp->obj_index);
-        } else {
-            /*
-             * the below changed to prevent TLINK crashing.
-             * Previous more efficient version read:
-             *
-             *  obj_byte (orp, 0x50);
-             */
-            obj_byte(orp, 0x00);
-            obj_index(orp, seg->obj_index);
-        }
-        obj_index(orp, seg->obj_index);
-        obj_x(orp, obj_entry_ofs);
-    } else
-        obj_byte(orp, 0);
-    obj_emit2(orp);
-    nasm_free(orp);
-}
-
-static void obj_fwrite(ObjRecord * orp)
-{
-    unsigned int cksum, len;
-    uint8_t *ptr;
-
-    cksum = orp->type;
-    if (orp->x_size == 32)
-        cksum |= 1;
-    fputc(cksum, ofile);
-    len = orp->committed + 1;
-    cksum += (len & 0xFF) + ((len >> 8) & 0xFF);
-    fwriteint16_t(len, ofile);
-    nasm_write(orp->buf, len-1, ofile);
-    for (ptr = orp->buf; --len; ptr++)
-        cksum += *ptr;
-    fputc((-cksum) & 0xFF, ofile);
-}
-
-extern macros_t obj_stdmac[];
-
-static void dbgbi_init(void)
-{
-    fnhead = NULL;
-    fntail = &fnhead;
-    arrindex = ARRAYBOT;
-    arrhead = NULL;
-    arrtail = &arrhead;
-}
-static void dbgbi_cleanup(void)
-{
-    struct Segment *segtmp;
-    while (fnhead) {
-        struct FileName *fntemp = fnhead;
-        while (fnhead->lnhead) {
-            struct LineNumber *lntemp = fnhead->lnhead;
-            fnhead->lnhead = lntemp->next;
-            nasm_free(lntemp);
-        }
-        fnhead = fnhead->next;
-        nasm_free(fntemp->name);
-        nasm_free(fntemp);
-    }
-    for (segtmp = seghead; segtmp; segtmp = segtmp->next) {
-        while (segtmp->lochead) {
-            struct Public *loctmp = segtmp->lochead;
-            segtmp->lochead = loctmp->next;
-            nasm_free(loctmp->name);
-            nasm_free(loctmp);
-        }
-    }
-    while (arrhead) {
-        struct Array *arrtmp = arrhead;
-        arrhead = arrhead->next;
-        nasm_free(arrtmp);
-    }
-}
-
-static void dbgbi_linnum(const char *lnfname, int32_t lineno, int32_t segto)
-{
-    struct FileName *fn;
-    struct LineNumber *ln;
-    struct Segment *seg;
-
-    if (segto == NO_SEG)
-        return;
-
-    /*
-     * If `any_segs' is still false, we must define a default
-     * segment.
-     */
-    if (!any_segs) {
-        int tempint;            /* ignored */
-        if (segto != obj_segment("__NASMDEFSEG", 2, &tempint))
-            nasm_panic(0, "strange segment conditions in OBJ driver");
-    }
-
-    /*
-     * Find the segment we are targetting.
-     */
-    for (seg = seghead; seg; seg = seg->next)
-        if (seg->index == segto)
-            break;
-    if (!seg)
-        nasm_panic(0, "lineno directed to nonexistent segment?");
-
-/*    for (fn = fnhead; fn; fn = fnhead->next) */
-    for (fn = fnhead; fn; fn = fn->next)        /* fbk - Austin Lunnen - John Fine */
-        if (!nasm_stricmp(lnfname, fn->name))
-            break;
-    if (!fn) {
-        fn = nasm_malloc(sizeof(*fn));
-        fn->name = nasm_malloc(strlen(lnfname) + 1);
-        strcpy(fn->name, lnfname);
-        fn->lnhead = NULL;
-        fn->lntail = &fn->lnhead;
-        fn->next = NULL;
-        *fntail = fn;
-        fntail = &fn->next;
-    }
-    ln = nasm_malloc(sizeof(*ln));
-    ln->segment = seg;
-    ln->offset = seg->currentpos;
-    ln->lineno = lineno;
-    ln->next = NULL;
-    *fn->lntail = ln;
-    fn->lntail = &ln->next;
-
-}
-static void dbgbi_deflabel(char *name, int32_t segment,
-                           int64_t offset, int is_global, char *special)
-{
-    struct Segment *seg;
-
-    (void)special;
-
-    /*
-     * Note: ..[^@] special symbols are filtered in labels.c
-     */
-
-    /*
-     * If it's a special-retry from pass two, discard it.
-     */
-    if (is_global == 3)
-        return;
-
-    /*
-     * Case (i):
-     */
-    if (obj_seg_needs_update) {
-        return;
-    } else if (obj_grp_needs_update) {
-        return;
-    }
-    if (segment < SEG_ABS && segment != NO_SEG && segment % 2)
-        return;
-
-    if (segment >= SEG_ABS || segment == NO_SEG) {
-        return;
-    }
-
-    /*
-     * If `any_segs' is still false, we might need to define a
-     * default segment, if they're trying to declare a label in
-     * `first_seg'.  But the label should exist due to a prior
-     * call to obj_deflabel so we can skip that.
-     */
-
-    for (seg = seghead; seg; seg = seg->next)
-        if (seg->index == segment) {
-            struct Public *loc = nasm_malloc(sizeof(*loc));
-            /*
-             * Case (ii). Maybe MODPUB someday?
-             */
-            last_defined = *seg->loctail = loc;
-            seg->loctail = &loc->next;
-            loc->next = NULL;
-            loc->name = nasm_strdup(name);
-            loc->offset = offset;
-        }
-}
-static void dbgbi_typevalue(int32_t type)
-{
-    int vsize;
-    int elem = TYM_ELEMENTS(type);
-    type = TYM_TYPE(type);
-
-    if (!last_defined)
-        return;
-
-    switch (type) {
-    case TY_BYTE:
-        last_defined->type = 8; /* uint8_t */
-        vsize = 1;
-        break;
-    case TY_WORD:
-        last_defined->type = 10;        /* unsigned word */
-        vsize = 2;
-        break;
-    case TY_DWORD:
-        last_defined->type = 12;        /* unsigned dword */
-        vsize = 4;
-        break;
-    case TY_FLOAT:
-        last_defined->type = 14;        /* float */
-        vsize = 4;
-        break;
-    case TY_QWORD:
-        last_defined->type = 15;        /* qword */
-        vsize = 8;
-        break;
-    case TY_TBYTE:
-        last_defined->type = 16;        /* TBYTE */
-        vsize = 10;
-        break;
-    default:
-        last_defined->type = 0x19;      /*label */
-        vsize = 0;
-        break;
-    }
-
-    if (elem > 1) {
-        struct Array *arrtmp = nasm_malloc(sizeof(*arrtmp));
-        int vtype = last_defined->type;
-        arrtmp->size = vsize * elem;
-        arrtmp->basetype = vtype;
-        arrtmp->next = NULL;
-        last_defined->type = arrindex++;
-        *arrtail = arrtmp;
-        arrtail = &(arrtmp->next);
-    }
-    last_defined = NULL;
-}
-static void dbgbi_output(int output_type, void *param)
-{
-    (void)output_type;
-    (void)param;
-}
-static const struct dfmt borland_debug_form = {
-    "Borland Debug Records",
-    "borland",
-    dbgbi_init,
-    dbgbi_linnum,
-    dbgbi_deflabel,
-    null_debug_directive,
-    dbgbi_typevalue,
-    dbgbi_output,
-    dbgbi_cleanup,
-    NULL                        /* pragma list */
-};
-
-static const struct dfmt * const borland_debug_arr[3] = {
-    &borland_debug_form,
-    &null_debug_form,
-    NULL
-};
-
-const struct ofmt of_obj = {
-    "MS-DOS 16-bit/32-bit OMF object files",
-    "obj",
-    0,
-    32,
-    borland_debug_arr,
-    &borland_debug_form,
-    obj_stdmac,
-    obj_init,
-    obj_set_info,
-    nasm_do_legacy_output,
-    obj_out,
-    obj_deflabel,
-    obj_segment,
-    obj_sectalign,
-    obj_segbase,
-    obj_directive,
-    obj_filename,
-    obj_cleanup,
-    NULL                        /* pragma list */
-};
-#endif                          /* OF_OBJ */
--- a/nasmbuild/nasm-2.13rc9/output/outobj.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-;; --------------------------------------------------------------------------
-;;   
-;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;     
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-OUT: obj
-%define __SECT__ [section .text]
-%imacro group 1+.nolist
-[group %1]
-%endmacro
-%imacro uppercase 0+.nolist
-[uppercase %1]
-%endmacro
-%imacro export 1+.nolist
-[export %1]
-%endmacro
-%imacro import 1+.nolist
-[import %1]
-%endmacro
-%macro __NASM_CDecl__ 1
-%endmacro
--- a/nasmbuild/nasm-2.13rc9/output/outrdf.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-;; --------------------------------------------------------------------------
-;;   
-;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;     
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-OUT: rdf
-%define __SECT__ [section .text]
-%imacro library 1+.nolist
-[library %1]
-%endmacro
-%macro __NASM_CDecl__ 1
-%endmacro
--- a/nasmbuild/nasm-2.13rc9/output/outrdf2.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,799 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * outrdf2.c	output routines for the Netwide Assembler to produce
- *		RDOFF version 2 format object files, which Julian originally
- *		planned to use it in his MOSCOW operating system.
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <assert.h>
-
-#include "nasm.h"
-#include "nasmlib.h"
-#include "error.h"
-#include "saa.h"
-#include "outform.h"
-#include "outlib.h"
-
-/* VERBOSE_WARNINGS: define this to add some extra warnings... */
-#define VERBOSE_WARNINGS
-
-#ifdef OF_RDF2
-
-#include "rdoff.h"
-
-/* This signature is written to start of RDOFF files */
-static const char *RDOFF2Id = RDOFF2_SIGNATURE;
-
-/* Note that whenever a segment is referred to in the RDOFF file, its number
- * is always half of the segment number that NASM uses to refer to it; this
- * is because NASM only allocates even numbered segments, so as to not
- * waste any of the 16 bits of segment number written to the file - this
- * allows up to 65533 external labels to be defined; otherwise it would be
- * 32764. */
-
-#define COUNT_SEGTYPES 9
-
-static char *segmenttypes[COUNT_SEGTYPES] = {
-    "null", "text", "code", "data",
-    "comment", "lcomment", "pcomment",
-    "symdebug", "linedebug"
-};
-
-static int segmenttypenumbers[COUNT_SEGTYPES] = {
-    0, 1, 1, 2, 3, 4, 5, 6, 7
-};
-
-/* code for managing buffers needed to separate code and data into individual
- * sections until they are ready to be written to the file.
- * We'd better hope that it all fits in memory else we're buggered... */
-
-#define BUF_BLOCK_LEN 4088      /* selected to match page size (4096)
-                                 * on 80x86 machines for efficiency */
-
-/***********************************************************************
- * Actual code to deal with RDOFF2 ouput format begins here...
- */
-
-/* global variables set during the initialisation phase */
-
-static struct SAA *seg[RDF_MAXSEGS];    /* seg 0 = code, seg 1 = data */
-static struct SAA *header;      /* relocation/import/export records */
-
-static struct seginfo {
-    char *segname;
-    int segnumber;
-    uint16_t segtype;
-    uint16_t segreserved;
-    int32_t seglength;
-} segments[RDF_MAXSEGS];
-
-static int nsegments;
-
-static int32_t bsslength;
-static int32_t headerlength;
-
-static void rdf2_init(void)
-{
-    int segtext, segdata, segbss;
-
-    /* set up the initial segments */
-    segments[0].segname = ".text";
-    segments[0].segnumber = 0;
-    segments[0].segtype = 1;
-    segments[0].segreserved = 0;
-    segments[0].seglength = 0;
-
-    segments[1].segname = ".data";
-    segments[1].segnumber = 1;
-    segments[1].segtype = 2;
-    segments[1].segreserved = 0;
-    segments[1].seglength = 0;
-
-    segments[2].segname = ".bss";
-    segments[2].segnumber = 2;
-    segments[2].segtype = 0xFFFF;       /* reserved - should never be produced */
-    segments[2].segreserved = 0;
-    segments[2].seglength = 0;
-
-    nsegments = 3;
-
-    seg[0] = saa_init(1L);
-    seg[1] = saa_init(1L);
-    seg[2] = NULL;              /* special case! */
-
-    header = saa_init(1L);
-
-    segtext = seg_alloc();
-    segdata = seg_alloc();
-    segbss = seg_alloc();
-    if (segtext != 0 || segdata != 2 || segbss != 4)
-        nasm_panic(0,
-              "rdf segment numbers not allocated as expected (%d,%d,%d)",
-              segtext, segdata, segbss);
-    bsslength = 0;
-    headerlength = 0;
-}
-
-static int32_t rdf2_section_names(char *name, int pass, int *bits)
-{
-    int i;
-    bool err;
-    char *p, *q;
-    int code = -1;
-    int reserved = 0;
-
-    (void)pass;
-
-    /*
-     * Default is 32 bits, in the text segment.
-     */
-    if (!name) {
-        *bits = 32;
-        return 0;
-    }
-
-    /* look for segment type code following segment name */
-    p = name;
-    while (*p && !nasm_isspace(*p))
-        p++;
-    if (*p) {                   /* we're now in whitespace */
-        *p++ = '\0';
-        while (*p && nasm_isspace(80))
-            *p++ = '\0';
-    }
-    if (*p) {                   /* we're now in an attribute value */
-        /*
-         * see if we have an optional ',number' following the type code
-         */
-        if ((q = strchr(p, ','))) {
-            *q++ = '\0';
-
-            reserved = readnum(q, &err);
-            if (err) {
-                nasm_error(ERR_NONFATAL,
-                      "value following comma must be numeric");
-                reserved = 0;
-            }
-        }
-        /*
-         * check it against the text strings in segmenttypes
-         */
-
-        for (i = 0; i < COUNT_SEGTYPES; i++)
-            if (!nasm_stricmp(p, segmenttypes[i])) {
-                code = segmenttypenumbers[i];
-                break;
-            }
-        if (code == -1) {       /* didn't find anything */
-            code = readnum(p, &err);
-            if (err) {
-                nasm_error(ERR_NONFATAL, "unrecognised RDF segment type (%s)",
-                      p);
-                code = 3;
-            }
-        }
-    }
-    for (i = 0; i < nsegments; i++) {
-        if (!strcmp(name, segments[i].segname)) {
-            if (code != -1 || reserved != 0)
-                nasm_error(ERR_NONFATAL, "segment attributes specified on"
-                      " redeclaration of segment");
-            return segments[i].segnumber * 2;
-        }
-    }
-
-    /* declaring a new segment! */
-
-    if (code == -1) {
-        nasm_error(ERR_NONFATAL, "new segment declared without type code");
-        code = 3;
-    }
-    if (nsegments == RDF_MAXSEGS) {
-        nasm_fatal(0, "reached compiled-in maximum segment limit (%d)",
-              RDF_MAXSEGS);
-        return NO_SEG;
-    }
-
-    segments[nsegments].segname = nasm_strdup(name);
-    i = seg_alloc();
-    if (i % 2 != 0)
-        nasm_panic(0, "seg_alloc() returned odd number");
-    segments[nsegments].segnumber = i >> 1;
-    segments[nsegments].segtype = code;
-    segments[nsegments].segreserved = reserved;
-    segments[nsegments].seglength = 0;
-
-    seg[nsegments] = saa_init(1L);
-
-    return i;
-}
-
-/*
- * Write relocation record
- */
-static void write_reloc_rec(struct RelocRec *r)
-{
-    char buf[4], *b;
-
-    if (r->refseg != (uint16_t) NO_SEG && (r->refseg & 1))        /* segment base ref */
-        r->type = RDFREC_SEGRELOC;
-
-    r->refseg >>= 1;            /* adjust segment nos to RDF rather than NASM */
-
-    saa_wbytes(header, &r->type, 1);
-    saa_wbytes(header, &r->reclen, 1);
-    saa_wbytes(header, &r->segment, 1);
-    b = buf;
-    WRITELONG(b, r->offset);
-    saa_wbytes(header, buf, 4);
-    saa_wbytes(header, &r->length, 1);
-    b = buf;
-    WRITESHORT(b, r->refseg);
-    saa_wbytes(header, buf, 2);
-    headerlength += r->reclen + 2;
-}
-
-/*
- * Write export record
- */
-static void write_export_rec(struct ExportRec *r)
-{
-    char buf[4], *b;
-
-    r->segment >>= 1;
-
-    saa_wbytes(header, &r->type, 1);
-    saa_wbytes(header, &r->reclen, 1);
-    saa_wbytes(header, &r->flags, 1);
-    saa_wbytes(header, &r->segment, 1);
-    b = buf;
-    WRITELONG(b, r->offset);
-    saa_wbytes(header, buf, 4);
-    saa_wbytes(header, r->label, strlen(r->label) + 1);
-    headerlength += r->reclen + 2;
-}
-
-static void write_import_rec(struct ImportRec *r)
-{
-    char buf[4], *b;
-
-    r->segment >>= 1;
-
-    saa_wbytes(header, &r->type, 1);
-    saa_wbytes(header, &r->reclen, 1);
-    saa_wbytes(header, &r->flags, 1);
-    b = buf;
-    WRITESHORT(b, r->segment);
-    saa_wbytes(header, buf, 2);
-    saa_wbytes(header, r->label, strlen(r->label) + 1);
-    headerlength += r->reclen + 2;
-}
-
-/*
- * Write BSS record
- */
-static void write_bss_rec(struct BSSRec *r)
-{
-    char buf[4], *b;
-
-    saa_wbytes(header, &r->type, 1);
-    saa_wbytes(header, &r->reclen, 1);
-    b = buf;
-    WRITELONG(b, r->amount);
-    saa_wbytes(header, buf, 4);
-    headerlength += r->reclen + 2;
-}
-
-/*
- * Write common variable record
- */
-static void write_common_rec(struct CommonRec *r)
-{
-    char buf[4], *b;
-
-    r->segment >>= 1;
-
-    saa_wbytes(header, &r->type, 1);
-    saa_wbytes(header, &r->reclen, 1);
-    b = buf;
-    WRITESHORT(b, r->segment);
-    saa_wbytes(header, buf, 2);
-    b = buf;
-    WRITELONG(b, r->size);
-    saa_wbytes(header, buf, 4);
-    b = buf;
-    WRITESHORT(b, r->align);
-    saa_wbytes(header, buf, 2);
-    saa_wbytes(header, r->label, strlen(r->label) + 1);
-    headerlength += r->reclen + 2;
-}
-
-/*
- * Write library record
- */
-static void write_dll_rec(struct DLLRec *r)
-{
-    saa_wbytes(header, &r->type, 1);
-    saa_wbytes(header, &r->reclen, 1);
-    saa_wbytes(header, r->libname, strlen(r->libname) + 1);
-    headerlength += r->reclen + 2;
-}
-
-/*
- * Write module name record
- */
-static void write_modname_rec(struct ModRec *r)
-{
-    saa_wbytes(header, &r->type, 1);
-    saa_wbytes(header, &r->reclen, 1);
-    saa_wbytes(header, r->modname, strlen(r->modname) + 1);
-    headerlength += r->reclen + 2;
-}
-
-/*
- * Handle export, import and common records.
- */
-static void rdf2_deflabel(char *name, int32_t segment, int64_t offset,
-                          int is_global, char *special)
-{
-    struct ExportRec r;
-    struct ImportRec ri;
-    struct CommonRec ci;
-    static int farsym = 0;
-    static int i;
-    char symflags = 0;
-    int len;
-
-    /* Check if the label length is OK */
-    if ((len = strlen(name)) >= EXIM_LABEL_MAX) {
-        nasm_error(ERR_NONFATAL, "label size exceeds %d bytes", EXIM_LABEL_MAX);
-        return;
-    }
-    if (!len) {
-        nasm_error(ERR_NONFATAL, "zero-length label");
-        return;
-    }
-
-    if (is_global == 2) {
-        /* Common variable */
-        ci.type = RDFREC_COMMON;
-        ci.size = offset;
-        ci.segment = segment;
-        strcpy(ci.label, name);
-        ci.reclen = 9 + len;
-        ci.align = 0;
-
-        /*
-         * Check the special text to see if it's a valid number and power
-         * of two; if so, store it as the alignment for the common variable.
-         */
-        if (special) {
-            bool err;
-            ci.align = readnum(special, &err);
-            if (err)
-                nasm_error(ERR_NONFATAL, "alignment constraint `%s' is not a"
-                      " valid number", special);
-            else if ((ci.align | (ci.align - 1)) != 2 * ci.align - 1)
-                nasm_error(ERR_NONFATAL, "alignment constraint `%s' is not a"
-                      " power of two", special);
-        }
-        write_common_rec(&ci);
-    }
-
-    /* We don't care about local labels or fix-up hints */
-    if (is_global != 1)
-        return;
-
-    if (special) {
-        while (*special == ' ' || *special == '\t')
-            special++;
-
-        if (!nasm_strnicmp(special, "export", 6)) {
-            special += 6;
-            symflags |= SYM_GLOBAL;
-        } else if (!nasm_strnicmp(special, "import", 6)) {
-            special += 6;
-            symflags |= SYM_IMPORT;
-        }
-
-        if (*special) {
-            while (nasm_isspace(*special))
-                special++;
-            if (!nasm_stricmp(special, "far")) {
-                farsym = 1;
-            } else if (!nasm_stricmp(special, "near")) {
-                farsym = 0;
-            } else if (!nasm_stricmp(special, "proc") ||
-                       !nasm_stricmp(special, "function")) {
-                symflags |= SYM_FUNCTION;
-            } else if (!nasm_stricmp(special, "data") ||
-                       !nasm_stricmp(special, "object")) {
-                symflags |= SYM_DATA;
-            } else
-                nasm_error(ERR_NONFATAL, "unrecognised symbol type `%s'",
-                      special);
-        }
-    }
-
-    if (name[0] == '.' && name[1] == '.' && name[2] != '@') {
-        nasm_error(ERR_NONFATAL, "unrecognised special symbol `%s'", name);
-        return;
-    }
-
-    for (i = 0; i < nsegments; i++) {
-        if (segments[i].segnumber == segment >> 1)
-            break;
-    }
-
-    if (i >= nsegments) {       /* EXTERN declaration */
-        ri.type = farsym ? RDFREC_FARIMPORT : RDFREC_IMPORT;
-        if (symflags & SYM_GLOBAL)
-            nasm_error(ERR_NONFATAL,
-                  "symbol type conflict - EXTERN cannot be EXPORT");
-        ri.flags = symflags;
-        ri.segment = segment;
-        strcpy(ri.label, name);
-        ri.reclen = 4 + len;
-        write_import_rec(&ri);
-    } else if (is_global) {
-        r.type = RDFREC_GLOBAL; /* GLOBAL declaration */
-        if (symflags & SYM_IMPORT)
-            nasm_error(ERR_NONFATAL,
-                  "symbol type conflict - GLOBAL cannot be IMPORT");
-        r.flags = symflags;
-        r.segment = segment;
-        r.offset = offset;
-        strcpy(r.label, name);
-        r.reclen = 7 + len;
-        write_export_rec(&r);
-    }
-}
-
-static void membufwrite(int segment, const void *data, int bytes)
-{
-    int i;
-    char buf[4], *b;
-
-    for (i = 0; i < nsegments; i++) {
-        if (segments[i].segnumber == segment)
-            break;
-    }
-    if (i == nsegments)
-        nasm_panic(0, "can't find segment %d", segment);
-
-    if (bytes < 0) {
-        b = buf;
-        if (bytes == -2)
-            WRITESHORT(b, *(int16_t *)data);
-        else
-            WRITELONG(b, *(int32_t *)data);
-        data = buf;
-        bytes = -bytes;
-    }
-    segments[i].seglength += bytes;
-    saa_wbytes(seg[i], data, bytes);
-}
-
-static int getsegmentlength(int segment)
-{
-    int i;
-    for (i = 0; i < nsegments; i++) {
-        if (segments[i].segnumber == segment)
-            break;
-    }
-    if (i == nsegments)
-        nasm_panic(0, "can't find segment %d", segment);
-
-    return segments[i].seglength;
-}
-
-static void rdf2_out(int32_t segto, const void *data,
-		     enum out_type type, uint64_t size,
-                     int32_t segment, int32_t wrt)
-{
-    struct RelocRec rr;
-    uint8_t databuf[8], *pd;
-    int seg;
-
-    if (segto == NO_SEG) {
-        if (type != OUT_RESERVE)
-            nasm_error(ERR_NONFATAL,
-                  "attempt to assemble code in ABSOLUTE space");
-        return;
-    }
-
-    segto >>= 1;                /* convert NASM segment no to RDF number */
-
-    for (seg = 0; seg < nsegments; seg++) {
-        if (segments[seg].segnumber == segto)
-            break;
-    }
-    if (seg >= nsegments) {
-        nasm_error(ERR_NONFATAL,
-              "specified segment not supported by rdf output format");
-        return;
-    }
-
-    if (wrt != NO_SEG) {
-        wrt = NO_SEG;           /* continue to do _something_ */
-        nasm_error(ERR_NONFATAL, "WRT not supported by rdf output format");
-    }
-
-    if (segto == 2 && type != OUT_RESERVE) {
-        nasm_error(ERR_NONFATAL, "BSS segments may not be initialized");
-
-        /* just reserve the space for now... */
-
-        if (type == OUT_REL2ADR)
-            size = 2;
-        else
-            size = 4;
-        type = OUT_RESERVE;
-    }
-
-    if (type == OUT_RESERVE) {
-        if (segto == 2)         /* BSS segment space reserverd */
-            bsslength += size;
-        else
-            while (size--)
-                membufwrite(segto, databuf, 1);
-    } else if (type == OUT_RAWDATA) {
-        if (segment != NO_SEG)
-            nasm_panic(0, "OUT_RAWDATA with other than NO_SEG");
-
-        membufwrite(segto, data, size);
-    } else if (type == OUT_ADDRESS) {
-        int asize = abs((int)size);
-
-        /* if segment == NO_SEG then we are writing an address of an
-           object within the same segment - do not produce reloc rec. */
-
-        /* FIXME - is this behaviour sane? at first glance it doesn't
-           appear to be. Must test this thoroughly...! */
-
-        if (segment != NO_SEG) {
-            /* it's an address, so we must write a relocation record */
-
-            rr.type = RDFREC_RELOC;     /* type signature */
-            rr.reclen = 8;
-            rr.segment = segto; /* segment we're currently in */
-            rr.offset = getsegmentlength(segto);        /* current offset */
-            rr.length = asize; /* length of reference */
-            rr.refseg = segment;        /* segment referred to */
-            write_reloc_rec(&rr);
-        }
-
-        pd = databuf;           /* convert address to little-endian */
-	WRITEADDR(pd, *(int64_t *)data, asize);
-        membufwrite(segto, databuf, asize);
-    } else if (type == OUT_REL2ADR) {
-        if (segment == segto)
-            nasm_panic(0, "intra-segment OUT_REL2ADR");
-
-        rr.reclen = 8;
-        rr.offset = getsegmentlength(segto);    /* current offset */
-        rr.length = 2;          /* length of reference */
-        rr.refseg = segment;    /* segment referred to (will be >>1'd) */
-
-        if (segment != NO_SEG && segment % 2) {
-            rr.type = RDFREC_SEGRELOC;
-            rr.segment = segto; /* memory base refs *aren't ever* relative! */
-            write_reloc_rec(&rr);
-
-            /* what do we put in the code? Simply the data. This should almost
-             * always be zero, unless someone's doing segment arithmetic...
-             */
-            rr.offset = *(int64_t *)data;
-        } else {
-            rr.type = RDFREC_RELOC;     /* type signature */
-            rr.segment = segto + 64;    /* segment we're currently in + rel flag */
-            write_reloc_rec(&rr);
-
-            /* work out what to put in the code: offset of the end of this operand,
-             * subtracted from any data specified, so that loader can just add
-             * address of imported symbol onto it to get address relative to end of
-             * instruction: import_address + data(offset) - end_of_instrn */
-
-            rr.offset = *(int32_t *)data - (rr.offset + size);
-        }
-
-        membufwrite(segto, &rr.offset, -2);
-    } else if (type == OUT_REL4ADR) {
-        if ((segment == segto) && (globalbits != 64))
-            nasm_panic(0, "intra-segment OUT_REL4ADR");
-        if (segment != NO_SEG && segment % 2) {
-            nasm_panic(0, "erm... 4 byte segment base ref?");
-        }
-
-        rr.type = RDFREC_RELOC; /* type signature */
-        rr.segment = segto + 64;        /* segment we're currently in + rel tag */
-        rr.offset = getsegmentlength(segto);    /* current offset */
-        rr.length = 4;          /* length of reference */
-        rr.refseg = segment;    /* segment referred to */
-        rr.reclen = 8;
-        write_reloc_rec(&rr);
-
-        rr.offset = *(int64_t *)data - (rr.offset + size);
-
-        membufwrite(segto, &rr.offset, -4);
-    }
-}
-
-static void rdf2_cleanup(void)
-{
-    int32_t l;
-    struct BSSRec bs;
-    int i;
-
-    /* should write imported & exported symbol declarations to header here */
-
-    /* generate the output file... */
-    nasm_write(RDOFF2Id, 6, ofile); /* file type magic number */
-
-    if (bsslength != 0) {       /* reserve BSS */
-        bs.type = RDFREC_BSS;
-        bs.amount = bsslength;
-        bs.reclen = 4;
-        write_bss_rec(&bs);
-    }
-
-    /*
-     * calculate overall length of the output object
-     */
-    l = headerlength + 4;
-
-    for (i = 0; i < nsegments; i++) {
-        if (i == 2)
-            continue;           /* skip BSS segment */
-        l += 10 + segments[i].seglength;
-    }
-    l += 10;                    /* null segment */
-
-    fwriteint32_t(l, ofile);
-
-    fwriteint32_t(headerlength, ofile);
-    saa_fpwrite(header, ofile); /* dump header */
-    saa_free(header);
-
-    for (i = 0; i < nsegments; i++) {
-        if (i == 2)
-            continue;
-
-        fwriteint16_t(segments[i].segtype, ofile);
-        fwriteint16_t(segments[i].segnumber, ofile);
-        fwriteint16_t(segments[i].segreserved, ofile);
-        fwriteint32_t(segments[i].seglength, ofile);
-
-        saa_fpwrite(seg[i], ofile);
-        saa_free(seg[i]);
-    }
-
-    /* null segment - write 10 bytes of zero */
-    fwriteint32_t(0, ofile);
-    fwriteint32_t(0, ofile);
-    fwriteint16_t(0, ofile);
-}
-
-static int32_t rdf2_segbase(int32_t segment)
-{
-    return segment;
-}
-
-/*
- * Handle RDOFF2 specific directives
- */
-static enum directive_result
-rdf2_directive(enum directives directive, char *value, int pass)
-{
-    size_t n;
-
-    switch (directive) {
-    case D_LIBRARY:
-	n = strlen(value);
-	if (n >= MODLIB_NAME_MAX) {
-	    nasm_error(ERR_NONFATAL, "name size exceeds %d bytes", MODLIB_NAME_MAX);
-	    return DIRR_ERROR;
-	}
-        if (pass == 1) {
-            struct DLLRec r;
-            r.type = RDFREC_DLL;
-            r.reclen = n + 1;
-            strcpy(r.libname, value);
-            write_dll_rec(&r);
-        }
-        return DIRR_OK;
-	
-    case D_MODULE:
-	if ((n = strlen(value)) >= MODLIB_NAME_MAX) {
-	    nasm_error(ERR_NONFATAL, "name size exceeds %d bytes", MODLIB_NAME_MAX);
-	    return DIRR_ERROR;
-	}
-        if (pass == 1) {
-            struct ModRec r;
-            r.type = RDFREC_MODNAME;
-            r.reclen = n + 1;
-            strcpy(r.modname, value);
-            write_modname_rec(&r);
-        }
-        return DIRR_OK;
-
-    default:
-	return DIRR_UNKNOWN;
-    }
-}
-
-static void rdf2_filename(char *inname, char *outname)
-{
-    standard_extension(inname, outname, ".rdf");
-}
-
-extern macros_t rdf2_stdmac[];
-
-static int rdf2_set_info(enum geninfo type, char **val)
-{
-    (void)type;
-    (void)val;
-    return 0;
-}
-
-const struct ofmt of_rdf2 = {
-    "Relocatable Dynamic Object File Format v2.0",
-    "rdf",
-    0,
-    64,
-    null_debug_arr,
-    &null_debug_form,
-    rdf2_stdmac,
-    rdf2_init,
-    rdf2_set_info,
-    nasm_do_legacy_output,
-    rdf2_out,
-    rdf2_deflabel,
-    rdf2_section_names,
-    null_sectalign,
-    rdf2_segbase,
-    rdf2_directive,
-    rdf2_filename,
-    rdf2_cleanup,
-    NULL                        /* pragma list */
-};
-
-#endif                          /* OF_RDF2 */
--- a/nasmbuild/nasm-2.13rc9/output/outrdf2.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-;; --------------------------------------------------------------------------
-;;   
-;;   Copyright 1996-2009 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;     
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-OUT: rdf2
-%define __SECT__ [section .text]
-%imacro library 1+.nolist
-[library %1]
-%endmacro
-%imacro module 1+.nolist
-[module %1]
-%endmacro
-%macro __NASM_CDecl__ 1
-%endmacro
--- a/nasmbuild/nasm-2.13rc9/output/pecoff.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,532 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2010 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#ifndef PECOFF_H
-#define PECOFF_H
-
-/*
- * Microsoft Portable Executable and Common Object
- * File Format Specification
- *
- * Revision 8.1 – February 15, 2008
- */
-
-/*
- * Machine types
- */
-#define IMAGE_FILE_MACHINE_UNKNOWN      0x0000
-#define IMAGE_FILE_MACHINE_AM33         0x01d3
-#define IMAGE_FILE_MACHINE_AMD64        0x8664
-#define IMAGE_FILE_MACHINE_EBC          0x0ebc
-#define IMAGE_FILE_MACHINE_M32R         0x9041
-#define IMAGE_FILE_MACHINE_ALPHA        0x0184
-#define IMAGE_FILE_MACHINE_ARM          0x01c0
-#define IMAGE_FILE_MACHINE_ALPHA64      0x0284
-#define IMAGE_FILE_MACHINE_I386         0x014c
-#define IMAGE_FILE_MACHINE_IA64         0x0200
-#define IMAGE_FILE_MACHINE_M68K         0x0268
-#define IMAGE_FILE_MACHINE_MIPS16       0x0266
-#define IMAGE_FILE_MACHINE_MIPSFPU      0x0366
-#define IMAGE_FILE_MACHINE_MIPSFPU16    0x0466
-#define IMAGE_FILE_MACHINE_POWERPC      0x01f0
-#define IMAGE_FILE_MACHINE_POWERPCFP    0x01f1
-#define IMAGE_FILE_MACHINE_R3000        0x0162
-#define IMAGE_FILE_MACHINE_R4000        0x0166
-#define IMAGE_FILE_MACHINE_R10000       0x0168
-#define IMAGE_FILE_MACHINE_SH3          0x01a2
-#define IMAGE_FILE_MACHINE_SH3DSP       0x01a3
-#define IMAGE_FILE_MACHINE_SH4          0x01a6
-#define IMAGE_FILE_MACHINE_SH5          0x01a8
-#define IMAGE_FILE_MACHINE_THUMB        0x01c2
-#define IMAGE_FILE_MACHINE_WCEMIPSV2    0x0169
-#define IMAGE_FILE_MACHINE_MASK         0xffff
-
-/*
- * Characteristics
- */
-#define IMAGE_FILE_RELOCS_STRIPPED              0x0001
-#define IMAGE_FILE_EXECUTABLE_IMAGE             0x0002
-#define IMAGE_FILE_LINE_NUMS_STRIPPED           0x0004
-#define IMAGE_FILE_LOCAL_SYMS_STRIPPED          0x0008
-#define IMAGE_FILE_AGGRESSIVE_WS_TRIM           0x0010
-#define IMAGE_FILE_LARGE_ADDRESS_AWARE          0x0020
-#define IMAGE_FILE_BYTES_REVERSED_LO            0x0080
-#define IMAGE_FILE_32BIT_MACHINE                0x0100
-#define IMAGE_FILE_DEBUG_STRIPPED               0x0200
-#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP      0x0400
-#define IMAGE_FILE_NET_RUN_FROM_SWAP            0x0800
-#define IMAGE_FILE_SYSTEM                       0x1000
-#define IMAGE_FILE_DLL                          0x2000
-#define IMAGE_FILE_UP_SYSTEM_ONLY               0x4000
-#define IMAGE_FILE_BYTES_REVERSED_HI            0x8000
-
-/*
- * Windows subsystem
- */
-#define IMAGE_SUBSYSTEM_UNKNOWN                 0
-#define IMAGE_SUBSYSTEM_NATIVE                  1
-#define IMAGE_SUBSYSTEM_WINDOWS_GUI             2
-#define IMAGE_SUBSYSTEM_WINDOWS_CUI             3
-#define IMAGE_SUBSYSTEM_POSIX_CUI               7
-#define IMAGE_SUBSYSTEM_WINDOWS_CE_GUI          9
-#define IMAGE_SUBSYSTEM_EFI_APPLICATION         10
-#define IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 11
-#define IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER      12
-#define IMAGE_SUBSYSTEM_EFI_ROM                 13
-#define IMAGE_SUBSYSTEM_XBOX                    14
-
-/*
- * DLL characteristics
- */
-#define IMAGE_DLL_CHARACTERISTICS_DYNAMIC_BASE          0x0040
-#define IMAGE_DLL_CHARACTERISTICS_FORCE_INTEGRITY       0x0080
-#define IMAGE_DLL_CHARACTERISTICS_NX_COMPAT             0x0100
-#define IMAGE_DLLCHARACTERISTICS_NO_ISOLATION           0x0200
-#define IMAGE_DLLCHARACTERISTICS_NO_SEH                 0x0400
-#define IMAGE_DLLCHARACTERISTICS_NO_BIND                0x0800
-#define IMAGE_DLLCHARACTERISTICS_WDM_DRIVER             0x2000
-#define IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE  0x8000
-
-/*
- * Section flags
- */
-#define IMAGE_SCN_TYPE_REG                      0x00000000
-#define IMAGE_SCN_TYPE_DSECT                    0x00000001
-#define IMAGE_SCN_TYPE_NOLOAD                   0x00000002
-#define IMAGE_SCN_TYPE_GROUP                    0x00000004
-#define IMAGE_SCN_TYPE_NO_PAD                   0x00000008
-#define IMAGE_SCN_TYPE_COPY                     0x00000010
-
-#define IMAGE_SCN_CNT_CODE                      0x00000020
-#define IMAGE_SCN_CNT_INITIALIZED_DATA          0x00000040
-#define IMAGE_SCN_CNT_UNINITIALIZED_DATA        0x00000080
-
-#define IMAGE_SCN_LNK_OTHER                     0x00000100
-#define IMAGE_SCN_LNK_INFO                      0x00000200
-#define IMAGE_SCN_TYPE_OVER                     0x00000400
-#define IMAGE_SCN_LNK_REMOVE                    0x00000800
-#define IMAGE_SCN_LNK_COMDAT                    0x00001000
-
-#define IMAGE_SCN_MAX_RELOC			0xffff
-
-#define IMAGE_SCN_MEM_FARDATA                   0x00008000
-#define IMAGE_SCN_MEM_PURGEABLE                 0x00020000
-#define IMAGE_SCN_MEM_16BIT                     0x00020000
-#define IMAGE_SCN_MEM_LOCKED                    0x00040000
-#define IMAGE_SCN_MEM_PRELOAD                   0x00080000
-
-#define IMAGE_SCN_ALIGN_1BYTES                  0x00100000
-#define IMAGE_SCN_ALIGN_2BYTES                  0x00200000
-#define IMAGE_SCN_ALIGN_4BYTES                  0x00300000
-#define IMAGE_SCN_ALIGN_8BYTES                  0x00400000
-#define IMAGE_SCN_ALIGN_16BYTES                 0x00500000
-#define IMAGE_SCN_ALIGN_32BYTES                 0x00600000
-#define IMAGE_SCN_ALIGN_64BYTES                 0x00700000
-#define IMAGE_SCN_ALIGN_128BYTES                0x00800000
-#define IMAGE_SCN_ALIGN_256BYTES                0x00900000
-#define IMAGE_SCN_ALIGN_512BYTES                0x00a00000
-#define IMAGE_SCN_ALIGN_1024BYTES               0x00b00000
-#define IMAGE_SCN_ALIGN_2048BYTES               0x00c00000
-#define IMAGE_SCN_ALIGN_4096BYTES               0x00d00000
-#define IMAGE_SCN_ALIGN_8192BYTES               0x00e00000
-#define IMAGE_SCN_ALIGN_MASK                    0x00f00000
-
-#define IMAGE_SCN_LNK_NRELOC_OVFL               0x01000000
-#define IMAGE_SCN_MEM_DISCARDABLE               0x02000000
-#define IMAGE_SCN_MEM_NOT_CACHED                0x04000000
-#define IMAGE_SCN_MEM_NOT_PAGED                 0x08000000
-#define IMAGE_SCN_MEM_SHARED                    0x10000000
-#define IMAGE_SCN_MEM_EXECUTE                   0x20000000
-#define IMAGE_SCN_MEM_READ                      0x40000000
-#define IMAGE_SCN_MEM_WRITE                     0x80000000
-
-/*
- * Relocation type x86-64
- */
-#define IMAGE_REL_AMD64_ABSOLUTE        0x0000
-#define IMAGE_REL_AMD64_ADDR64          0x0001
-#define IMAGE_REL_AMD64_ADDR32          0x0002
-#define IMAGE_REL_AMD64_ADDR32NB        0x0003
-#define IMAGE_REL_AMD64_REL32           0x0004
-#define IMAGE_REL_AMD64_REL32_1         0x0005
-#define IMAGE_REL_AMD64_REL32_2         0x0006
-#define IMAGE_REL_AMD64_REL32_3         0x0007
-#define IMAGE_REL_AMD64_REL32_4         0x0008
-#define IMAGE_REL_AMD64_REL32_5         0x0009
-#define IMAGE_REL_AMD64_SECTION         0x000a
-#define IMAGE_REL_AMD64_SECREL          0x000b
-#define IMAGE_REL_AMD64_SECREL7         0x000c
-#define IMAGE_REL_AMD64_TOKEN           0x000d
-#define IMAGE_REL_AMD64_SREL32          0x000e
-#define IMAGE_REL_AMD64_PAIR            0x000f
-#define IMAGE_REL_AMD64_SSPAN32         0x0010
-
-/*
- * Relocation types i386
- */
-#define IMAGE_REL_I386_ABSOLUTE         0x0000
-#define IMAGE_REL_I386_DIR16            0x0001
-#define IMAGE_REL_I386_REL16            0x0002
-#define IMAGE_REL_I386_DIR32            0x0006
-#define IMAGE_REL_I386_DIR32NB          0x0007
-#define IMAGE_REL_I386_SEG12            0x0009
-#define IMAGE_REL_I386_SECTION          0x000a
-#define IMAGE_REL_I386_SECREL           0x000b
-#define IMAGE_REL_I386_TOKEN            0x000c
-#define IMAGE_REL_I386_SECREL7          0x000d
-#define IMAGE_REL_I386_REL32            0x0014
-
-/*
- * Relocation types ARM
- */
-#define IMAGE_REL_ARM_ABSOLUTE          0x0000
-#define IMAGE_REL_ARM_ADDR32            0x0001
-#define IMAGE_REL_ARM_ADDR32NB          0x0002
-#define IMAGE_REL_ARM_BRANCH24          0x0003
-#define IMAGE_REL_ARM_BRANCH11          0x0004
-#define IMAGE_REL_ARM_SECTION           0x000e
-#define IMAGE_REL_ARM_SECREL            0x000f
-
-/*
- * Relocation types Hitachi SuperH
- */
-#define IMAGE_REL_SH3_ABSOLUTE          0x0000
-#define IMAGE_REL_SH3_DIRECT16          0x0001
-#define IMAGE_REL_SH3_DIRECT32          0x0002
-#define IMAGE_REL_SH3_DIRECT8           0x0003
-#define IMAGE_REL_SH3_DIRECT8_WORD      0x0004
-#define IMAGE_REL_SH3_DIRECT8_LONG      0x0005
-#define IMAGE_REL_SH3_DIRECT4           0x0006
-#define IMAGE_REL_SH3_DIRECT4_WORD      0x0007
-#define IMAGE_REL_SH3_DIRECT4_LONG      0x0008
-#define IMAGE_REL_SH3_PCREL8_WORD       0x0009
-#define IMAGE_REL_SH3_PCREL8_LONG       0x000a
-#define IMAGE_REL_SH3_PCREL12_WORD      0x000b
-#define IMAGE_REL_SH3_STARTOF_SECTION   0x000c
-#define IMAGE_REL_SH3_SIZEOF_SECTION    0x000d
-#define IMAGE_REL_SH3_SECTION           0x000e
-#define IMAGE_REL_SH3_SECREL            0x000f
-#define IMAGE_REL_SH3_DIRECT32_NB       0x0010
-#define IMAGE_REL_SH3_GPREL4_LONG       0x0011
-#define IMAGE_REL_SH3_TOKEN             0x0012
-#define IMAGE_REL_SHM_PCRELPT           0x0013
-#define IMAGE_REL_SHM_REFLO             0x0014
-#define IMAGE_REL_SHM_REFHALF           0x0015
-#define IMAGE_REL_SHM_RELLO             0x0016
-#define IMAGE_REL_SHM_RELHALF           0x0017
-#define IMAGE_REL_SHM_PAIR              0x0018
-#define IMAGE_REL_SHM_NOMODE            0x8000
-
-/*
- * Relocation types IBM PowerPC processors
- */
-#define IMAGE_REL_PPC_ABSOLUTE          0x0000
-#define IMAGE_REL_PPC_ADDR64            0x0001
-#define IMAGE_REL_PPC_ADDR32            0x0002
-#define IMAGE_REL_PPC_ADDR24            0x0003
-#define IMAGE_REL_PPC_ADDR16            0x0004
-#define IMAGE_REL_PPC_ADDR14            0x0005
-#define IMAGE_REL_PPC_REL24             0x0006
-#define IMAGE_REL_PPC_REL14             0x0007
-#define IMAGE_REL_PPC_ADDR32NB          0x000a
-#define IMAGE_REL_PPC_SECREL            0x000b
-#define IMAGE_REL_PPC_SECTION           0x000c
-#define IMAGE_REL_PPC_SECREL16          0x000f
-#define IMAGE_REL_PPC_REFHI             0x0010
-#define IMAGE_REL_PPC_REFLO             0x0011
-#define IMAGE_REL_PPC_PAIR              0x0012
-#define IMAGE_REL_PPC_SECRELLO          0x0013
-#define IMAGE_REL_PPC_GPREL             0x0015
-#define IMAGE_REL_PPC_TOKEN             0x0016
-
-/*
- * Relocation types Intel Itanium processor family (IPF)
- */
-#define IMAGE_REL_IA64_ABSOLUTE         0x0000
-#define IMAGE_REL_IA64_IMM14            0x0001
-#define IMAGE_REL_IA64_IMM22            0x0002
-#define IMAGE_REL_IA64_IMM64            0x0003
-#define IMAGE_REL_IA64_DIR32            0x0004
-#define IMAGE_REL_IA64_DIR64            0x0005
-#define IMAGE_REL_IA64_PCREL21B         0x0006
-#define IMAGE_REL_IA64_PCREL21M         0x0007
-#define IMAGE_REL_IA64_PCREL21F         0x0008
-#define IMAGE_REL_IA64_GPREL22          0x0009
-#define IMAGE_REL_IA64_LTOFF22          0x000a
-#define IMAGE_REL_IA64_SECTION          0x000b
-#define IMAGE_REL_IA64_SECREL22         0x000c
-#define IMAGE_REL_IA64_SECREL64I        0x000d
-#define IMAGE_REL_IA64_SECREL32         0x000e
-#define IMAGE_REL_IA64_DIR32NB          0x0010
-#define IMAGE_REL_IA64_SREL14           0x0011
-#define IMAGE_REL_IA64_SREL22           0x0012
-#define IMAGE_REL_IA64_SREL32           0x0013
-#define IMAGE_REL_IA64_UREL32           0x0014
-#define IMAGE_REL_IA64_PCREL60X         0x0015
-#define IMAGE_REL_IA64_PCREL 60B        0x0016
-#define IMAGE_REL_IA64_PCREL60F         0x0017
-#define IMAGE_REL_IA64_PCREL60I         0x0018
-#define IMAGE_REL_IA64_PCREL60M         0x0019
-#define IMAGE_REL_IA64_IMMGPREL64       0x001a
-#define IMAGE_REL_IA64_TOKEN            0x001b
-#define IMAGE_REL_IA64_GPREL32          0x001c
-#define IMAGE_REL_IA64_ADDEND           0x001f
-
-/*
- * Relocation types MIPS Processors
- */
-#define IMAGE_REL_MIPS_ABSOLUTE         0x0000
-#define IMAGE_REL_MIPS_REFHALF          0x0001
-#define IMAGE_REL_MIPS_REFWORD          0x0002
-#define IMAGE_REL_MIPS_JMPADDR          0x0003
-#define IMAGE_REL_MIPS_REFHI            0x0004
-#define IMAGE_REL_MIPS_REFLO            0x0005
-#define IMAGE_REL_MIPS_GPREL            0x0006
-#define IMAGE_REL_MIPS_LITERAL          0x0007
-#define IMAGE_REL_MIPS_SECTION          0x000a
-#define IMAGE_REL_MIPS_SECREL           0x000b
-#define IMAGE_REL_MIPS_SECRELLO         0x000c
-#define IMAGE_REL_MIPS_SECRELHI         0x000d
-#define IMAGE_REL_MIPS_JMPADDR16        0x0010
-#define IMAGE_REL_MIPS_REFWORDNB        0x0022
-#define IMAGE_REL_MIPS_PAIR             0x0025
-
-/*
- * Relocation types Mitsubishi M32R
- */
-#define IMAGE_REL_M32R_ABSOLUTE         0x0000
-#define IMAGE_REL_M32R_ADDR32           0x0001
-#define IMAGE_REL_M32R_ADDR32NB         0x0002
-#define IMAGE_REL_M32R_ADDR24           0x0003
-#define IMAGE_REL_M32R_GPREL16          0x0004
-#define IMAGE_REL_M32R_PCREL24          0x0005
-#define IMAGE_REL_M32R_PCREL16          0x0006
-#define IMAGE_REL_M32R_PCREL8           0x0007
-#define IMAGE_REL_M32R_REFHALF          0x0008
-#define IMAGE_REL_M32R_REFHI            0x0009
-#define IMAGE_REL_M32R_REFLO            0x000a
-#define IMAGE_REL_M32R_PAIR             0x000b
-#define IMAGE_REL_M32R_SECTION          0x000c
-#define IMAGE_REL_M32R_SECREL           0x000d
-#define IMAGE_REL_M32R_TOKEN            0x000e
-
-/*
- * Section number values
- */
-#define IMAGE_SYM_UNDEFINED      0
-#define IMAGE_SYM_ABSOLUTE      -1
-#define IMAGE_SYM_DEBUG         -2
-
-/*
- * Type representation
- */
-#define IMAGE_SYM_TYPE_NULL             0
-#define IMAGE_SYM_TYPE_VOID             1
-#define IMAGE_SYM_TYPE_CHAR             2
-#define IMAGE_SYM_TYPE_SHORT            3
-#define IMAGE_SYM_TYPE_INT              4
-#define IMAGE_SYM_TYPE_LONG             5
-#define IMAGE_SYM_TYPE_FLOAT            6
-#define IMAGE_SYM_TYPE_DOUBLE           7
-#define IMAGE_SYM_TYPE_STRUCT           8
-#define IMAGE_SYM_TYPE_UNION            9
-#define IMAGE_SYM_TYPE_ENUM             10
-#define IMAGE_SYM_TYPE_MOE              11
-#define IMAGE_SYM_TYPE_BYTE             12
-#define IMAGE_SYM_TYPE_WORD             13
-#define IMAGE_SYM_TYPE_UINT             14
-#define IMAGE_SYM_TYPE_DWORD            15
-
-#define IMAGE_SYM_DTYPE_NULL            0
-#define IMAGE_SYM_DTYPE_POINTER         1
-#define IMAGE_SYM_DTYPE_FUNCTION        2
-#define IMAGE_SYM_DTYPE_ARRAY           3
-
-/*
- * Storage class
- */
-#define IMAGE_SYM_CLASS_END_OF_FUNCTION         -1
-#define IMAGE_SYM_CLASS_NULL                    0
-#define IMAGE_SYM_CLASS_AUTOMATIC               1
-#define IMAGE_SYM_CLASS_EXTERNAL                2
-#define IMAGE_SYM_CLASS_STATIC                  3
-#define IMAGE_SYM_CLAS S_REGISTER               4
-#define IMAGE_SYM_CLASS_EXTERNAL_DEF            5
-#define IMAGE_SYM_CLASS_LABEL                   6
-#define IMAGE_SYM_CLASS_UNDEFINED_LABEL         7
-#define IMAGE_SYM_CLASS_MEMBER_OF_STRUCT        8
-#define IMAGE_SYM_CLASS_ARGUMENT                9
-#define IMAGE_SYM_CLASS_STRUCT_TAG              10
-#define IMAGE_SYM_CLASS_MEMBER_OF_UNION         11
-#define IMAGE_SYM_CLASS_UNION_TAG               12
-#define IMAGE_SYM_CLASS_TYPE_DEFINITION         13
-#define IMAGE_SYM_CLASS_UNDEFINED_STATIC        14
-#define IMAGE_SYM_CLASS_ENUM_TAG                15
-#define IMAGE_SYM_CLASS_MEMBER_OF_ENUM          16
-#define IMAGE_SYM_CLASS_REGISTER_PARAM          17
-#define IMAGE_SYM_CLASS_BIT_FIELD               18
-#define IMAGE_SYM_CLASS_BLOCK                   100
-#define IMAGE_SYM_CLASS_FUNCTION                101
-#define IMAGE_SYM_CLASS_END_OF_STRUCT           102
-#define IMAGE_SYM_CLASS_FILE                    103
-#define IMAGE_SYM_CLASS_SECTION                 104
-#define IMAGE_SYM_CLASS_WEAK_EXTERNAL           105
-#define IMAGE_SYM_CLASS_CLR_TOKEN               107
-
-/*
- * COMDAT sections
- */
-#define IMAGE_COMDAT_SELECT_NODUPLICATES        1
-#define IMAGE_COMDAT_SELECT_ANY                 2
-#define IMAGE_COMDAT_SELECT_SAME_SIZE           3
-#define IMAGE_COMDAT_SELECT_EXACT_MATCH         4
-#define IMAGE_COMDAT_SELECT_ASSOCIATIVE         5
-#define IMAGE_COMDAT_SELECT_LARGEST             6
-
-/*
- * Attribute certificate table
- */
-#define WIN_CERT_REVISION_1_0           0x0100
-#define WIN_CERT_REVISION_2_0           0x0200
-#define WIN_CERT_TYPE_X509              0x0001
-#define WIN_CERT_TYPE_PKCS_SIGNED_DATA  0x0002
-#define WIN_CERT_TYPE_RESERVED_1        0x0003
-#define WIN_CERT_TYPE_TS_STACK_SIGNED   0x0004
-
-/*
- * Debug type
- */
-#define IMAGE_DEBUG_TYPE_UNKNOWN        0
-#define IMAGE_DEBUG_TYPE_COFF           1
-#define IMAGE_DEBUG_TYPE_CODEVIEW       2
-#define IMAGE_DEBUG_TYPE_FPO            3
-#define IMAGE_DEBUG_TYPE_MISC           4
-#define IMAGE_DEBUG_TYPE_EXCEPTION      5
-#define IMAGE_DEBUG_TYPE_FIXUP          6
-#define IMAGE_DEBUG_TYPE_OMAP_TO_SRC    7
-#define IMAGE_DEBUG_TYPE_OMAP_FROM_SRC  8
-#define IMAGE_DEBUG_TYP E_BORLAND       9
-#define IMAGE_DEBUG_TYPE_RESERVED10     10
-#define IMAGE_DEBUG_TYPE_CLSID          11
-
-/*
- * Base relocation types
- */
-#define IMAGE_REL_BASED_ABSOLUTE        0
-#define IMAGE_REL_BASED_HIGH            1
-#define IMAGE_REL_BASED_LOW             2
-#define IMAGE_REL_BASED_HIGHLOW         3
-#define IMAGE_REL_BASED_HIGHADJ         4
-#define IMAGE_REL_BASED_MIPS_JMPADDR    5
-#define IMAGE_REL_BASED_MIPS_JMPADDR16  9
-#define IMAGE_REL_BASED_DIR64           10
-
-/*
- * TLS callback functions
- */
-#define DLL_PROCESS_ATTACH      1
-#define DLL_THREAD_ATTACH       2
-#define DLL_THREAD_DETACH       3
-#define DLL_PROCESS_DETACH      0
-
-/*
- * Import Type
- */
-#define IMPORT_CODE     0
-#define IMPORT_DATA     1
-#define IMPORT_CONST    2
-
-/*
- * Import name type
- */
-#define IMPORT_ORDINAL          0
-#define IMPORT_NAME             1
-#define IMPORT_NAME_NOPREFIX    2
-#define IMPORT_NAME_UNDECORATE  3
-
-struct coff_Section {
-    struct SAA *data;
-    uint32_t len;
-    int nrelocs;
-    int32_t index;
-    struct coff_Reloc *head, **tail;
-    uint32_t flags;             /* section flags */
-    char *name;
-    int32_t namepos;            /* Offset of name into the strings table */
-    int32_t pos, relpos;
-};
-
-struct coff_Reloc {
-    struct coff_Reloc *next;
-    int32_t address;            /* relative to _start_ of section */
-    int32_t symbol;             /* symbol number */
-    enum {
-        SECT_SYMBOLS,
-        ABS_SYMBOL,
-        REAL_SYMBOLS
-    } symbase;                  /* relocation for symbol number :) */
-    int16_t type;
-};
-
-struct coff_Symbol {
-    char name[9];
-    int32_t strpos;             /* string table position of name */
-    int32_t value;              /* address, or COMMON variable size */
-    int section;                /* section number where it's defined
-                                 * - in COFF codes, not NASM codes */
-    bool is_global;             /* is it a global symbol or not? */
-    int16_t type;               /* 0 - notype, 0x20 - function */
-    int32_t namlen;             /* full name length */
-};
-
-struct coff_DebugInfo {
-    int32_t segto;
-    int32_t seg;
-    uint64_t size;
-    struct coff_Section *section;
-};
-
-extern struct coff_Section **coff_sects;
-extern int coff_nsects;
-extern struct SAA *coff_syms;
-extern uint32_t coff_nsyms;
-extern struct SAA *coff_strs;
-extern bool win32, win64;
-
-extern char coff_infile[FILENAME_MAX];
-extern char coff_outfile[FILENAME_MAX];
-
-extern int coff_make_section(char *name, uint32_t flags);
-
-
-#endif /* PECOFF_H */
--- a/nasmbuild/nasm-2.13rc9/output/stabs.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2010 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#ifndef STABS_H_
-#define STABS_H_
-
-#include <ctype.h>
-
-#include "compiler.h"
-#include "nasmlib.h"
-#include "nasm.h"
-
-/* offsets */
-enum stab_offsets {
-    STAB_strdxoff   = 0,
-    STAB_typeoff    = 4,
-    STAB_otheroff   = 5,
-    STAB_descoff    = 6,
-    STAB_valoff     = 8,
-    STAB_stabsize   = 12
-};
-
-/* stab/non-stab types */
-enum stab_types {
-    N_UNDF      = 0x00,
-    N_ABS       = 0x02,
-    N_ABS_EXT   = 0x03,
-    N_TEXT      = 0x04,
-    N_TEXT_EXT  = 0x05,
-    N_DATA      = 0x06,
-    N_DATA_EXT  = 0x07,
-    N_BSS       = 0x08,
-    N_BSS_EXT   = 0x09,
-    N_FN_SEQ    = 0x0c,
-    N_INDR      = 0x0a,
-    N_COMM      = 0x12,
-    N_SETA      = 0x14,
-    N_SETA_EXT  = 0x15,
-    N_SETT      = 0x16,
-    N_SETT_EXT  = 0x17,
-    N_SETD      = 0x18,
-    N_SETD_EXT  = 0x19,
-    N_SETB      = 0x1a,
-    N_SETB_EXT  = 0x1b,
-    N_SETV      = 0x1c,
-    N_SETV_EXT  = 0x1d,
-    N_WARNING   = 0x1e,
-    N_FN        = 0x1f,
-    N_GSYM      = 0x20,
-    N_FNAME     = 0x22,
-    N_FUN       = 0x24,
-    N_STSYM     = 0x26,
-    N_LCSYM     = 0x28,
-    N_MAIN      = 0x2a,
-    N_ROSYM     = 0x2c,
-    N_BNSYM     = 0x2e,
-    N_PC        = 0x30,
-    N_NSYMS     = 0x32,
-    N_NOMAP     = 0x34,
-    N_OBJ       = 0x38,
-    N_OPT       = 0x3c,
-    N_RSYM      = 0x40,
-    N_M2C       = 0x42,
-    N_SLINE     = 0x44,
-    N_DSLINE    = 0x46,
-    N_BSLINE    = 0x48,
-    N_BROWS     = 0x48,
-    N_DEFD      = 0x4a,
-    N_FLINE     = 0x4c,
-    N_ENSYM     = 0x4e,
-    N_EHDECL    = 0x50,
-    N_MOD2      = 0x50,
-    N_CATCH     = 0x54,
-    N_SSYM      = 0x60,
-    N_ENDM      = 0x62,
-    N_SO        = 0x64, /* ID for main source file */
-    N_OSO       = 0x66,
-    N_ALIAS     = 0x6c,
-    N_LSYM      = 0x80,
-    N_BINCL     = 0x82,
-    N_SOL       = 0x84, /* ID for sub-source file */
-    N_PSYM      = 0xa0,
-    N_EINCL     = 0xa2,
-    N_ENTRY     = 0xa4,
-    N_LBRAC     = 0xc0,
-    N_EXCL      = 0xc2,
-    N_SCOPE     = 0xc4,
-    N_PATCH     = 0xd0,
-    N_RBRAC     = 0xe0,
-    N_BCOMM     = 0xe2,
-    N_ECOMM     = 0xe4,
-    N_ECOML     = 0xe8,
-    N_WITH      = 0xea,
-    N_NBTEXT    = 0xf0,
-    N_NBDATA    = 0xf2,
-    N_NBBSS     = 0xf4,
-    N_NBSTS     = 0xf6,
-    N_NBLCS     = 0xf8,
-    N_LENG      = 0xfe
-};
-
-enum stab_source_file {
-    N_SO_AS         = 0x01,
-    N_SO_C          = 0x02,
-    N_SO_ANSI_C     = 0x03,
-    N_SO_CC         = 0x04,
-    N_SO_FORTRAN    = 0x05,
-    N_SO_PASCAL     = 0x06,
-    N_SO_FORTRAN90  = 0x07,
-    N_SO_OBJC       = 0x32,
-    N_SO_OBJCPLUS   = 0x33
-};
-
-#endif /* STABS_H_ */
--- a/nasmbuild/nasm-2.13rc9/perllib/crc64.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-# -*- perl -*-
-#
-# Pure Perl implementation of the same CRC64 implementation used
-# elsewhere in NASM.
-#
-# Note: Perl may have 32- or 64-bit integers; we need to handle both
-# without overflowing into floating point (yuck), so handle them as
-# pairs of 32-bit numbers.  Ordering is BIGENDIAN.
-#
-
-@crc64_tab = (
-    [0x00000000, 0x00000000], [0x7ad870c8, 0x30358979],
-    [0xf5b0e190, 0x606b12f2], [0x8f689158, 0x505e9b8b],
-    [0xc038e573, 0x9841b68f], [0xbae095bb, 0xa8743ff6],
-    [0x358804e3, 0xf82aa47d], [0x4f50742b, 0xc81f2d04],
-    [0xab28ecb4, 0x6814fe75], [0xd1f09c7c, 0x5821770c],
-    [0x5e980d24, 0x087fec87], [0x24407dec, 0x384a65fe],
-    [0x6b1009c7, 0xf05548fa], [0x11c8790f, 0xc060c183],
-    [0x9ea0e857, 0x903e5a08], [0xe478989f, 0xa00bd371],
-    [0x7d08ff3b, 0x88be6f81], [0x07d08ff3, 0xb88be6f8],
-    [0x88b81eab, 0xe8d57d73], [0xf2606e63, 0xd8e0f40a],
-    [0xbd301a48, 0x10ffd90e], [0xc7e86a80, 0x20ca5077],
-    [0x4880fbd8, 0x7094cbfc], [0x32588b10, 0x40a14285],
-    [0xd620138f, 0xe0aa91f4], [0xacf86347, 0xd09f188d],
-    [0x2390f21f, 0x80c18306], [0x594882d7, 0xb0f40a7f],
-    [0x1618f6fc, 0x78eb277b], [0x6cc08634, 0x48deae02],
-    [0xe3a8176c, 0x18803589], [0x997067a4, 0x28b5bcf0],
-    [0xfa11fe77, 0x117cdf02], [0x80c98ebf, 0x2149567b],
-    [0x0fa11fe7, 0x7117cdf0], [0x75796f2f, 0x41224489],
-    [0x3a291b04, 0x893d698d], [0x40f16bcc, 0xb908e0f4],
-    [0xcf99fa94, 0xe9567b7f], [0xb5418a5c, 0xd963f206],
-    [0x513912c3, 0x79682177], [0x2be1620b, 0x495da80e],
-    [0xa489f353, 0x19033385], [0xde51839b, 0x2936bafc],
-    [0x9101f7b0, 0xe12997f8], [0xebd98778, 0xd11c1e81],
-    [0x64b11620, 0x8142850a], [0x1e6966e8, 0xb1770c73],
-    [0x8719014c, 0x99c2b083], [0xfdc17184, 0xa9f739fa],
-    [0x72a9e0dc, 0xf9a9a271], [0x08719014, 0xc99c2b08],
-    [0x4721e43f, 0x0183060c], [0x3df994f7, 0x31b68f75],
-    [0xb29105af, 0x61e814fe], [0xc8497567, 0x51dd9d87],
-    [0x2c31edf8, 0xf1d64ef6], [0x56e99d30, 0xc1e3c78f],
-    [0xd9810c68, 0x91bd5c04], [0xa3597ca0, 0xa188d57d],
-    [0xec09088b, 0x6997f879], [0x96d17843, 0x59a27100],
-    [0x19b9e91b, 0x09fcea8b], [0x636199d3, 0x39c963f2],
-    [0xdf7adabd, 0x7a6e2d6f], [0xa5a2aa75, 0x4a5ba416],
-    [0x2aca3b2d, 0x1a053f9d], [0x50124be5, 0x2a30b6e4],
-    [0x1f423fce, 0xe22f9be0], [0x659a4f06, 0xd21a1299],
-    [0xeaf2de5e, 0x82448912], [0x902aae96, 0xb271006b],
-    [0x74523609, 0x127ad31a], [0x0e8a46c1, 0x224f5a63],
-    [0x81e2d799, 0x7211c1e8], [0xfb3aa751, 0x42244891],
-    [0xb46ad37a, 0x8a3b6595], [0xceb2a3b2, 0xba0eecec],
-    [0x41da32ea, 0xea507767], [0x3b024222, 0xda65fe1e],
-    [0xa2722586, 0xf2d042ee], [0xd8aa554e, 0xc2e5cb97],
-    [0x57c2c416, 0x92bb501c], [0x2d1ab4de, 0xa28ed965],
-    [0x624ac0f5, 0x6a91f461], [0x1892b03d, 0x5aa47d18],
-    [0x97fa2165, 0x0afae693], [0xed2251ad, 0x3acf6fea],
-    [0x095ac932, 0x9ac4bc9b], [0x7382b9fa, 0xaaf135e2],
-    [0xfcea28a2, 0xfaafae69], [0x8632586a, 0xca9a2710],
-    [0xc9622c41, 0x02850a14], [0xb3ba5c89, 0x32b0836d],
-    [0x3cd2cdd1, 0x62ee18e6], [0x460abd19, 0x52db919f],
-    [0x256b24ca, 0x6b12f26d], [0x5fb35402, 0x5b277b14],
-    [0xd0dbc55a, 0x0b79e09f], [0xaa03b592, 0x3b4c69e6],
-    [0xe553c1b9, 0xf35344e2], [0x9f8bb171, 0xc366cd9b],
-    [0x10e32029, 0x93385610], [0x6a3b50e1, 0xa30ddf69],
-    [0x8e43c87e, 0x03060c18], [0xf49bb8b6, 0x33338561],
-    [0x7bf329ee, 0x636d1eea], [0x012b5926, 0x53589793],
-    [0x4e7b2d0d, 0x9b47ba97], [0x34a35dc5, 0xab7233ee],
-    [0xbbcbcc9d, 0xfb2ca865], [0xc113bc55, 0xcb19211c],
-    [0x5863dbf1, 0xe3ac9dec], [0x22bbab39, 0xd3991495],
-    [0xadd33a61, 0x83c78f1e], [0xd70b4aa9, 0xb3f20667],
-    [0x985b3e82, 0x7bed2b63], [0xe2834e4a, 0x4bd8a21a],
-    [0x6debdf12, 0x1b863991], [0x1733afda, 0x2bb3b0e8],
-    [0xf34b3745, 0x8bb86399], [0x8993478d, 0xbb8deae0],
-    [0x06fbd6d5, 0xebd3716b], [0x7c23a61d, 0xdbe6f812],
-    [0x3373d236, 0x13f9d516], [0x49aba2fe, 0x23cc5c6f],
-    [0xc6c333a6, 0x7392c7e4], [0xbc1b436e, 0x43a74e9d],
-    [0x95ac9329, 0xac4bc9b5], [0xef74e3e1, 0x9c7e40cc],
-    [0x601c72b9, 0xcc20db47], [0x1ac40271, 0xfc15523e],
-    [0x5594765a, 0x340a7f3a], [0x2f4c0692, 0x043ff643],
-    [0xa02497ca, 0x54616dc8], [0xdafce702, 0x6454e4b1],
-    [0x3e847f9d, 0xc45f37c0], [0x445c0f55, 0xf46abeb9],
-    [0xcb349e0d, 0xa4342532], [0xb1eceec5, 0x9401ac4b],
-    [0xfebc9aee, 0x5c1e814f], [0x8464ea26, 0x6c2b0836],
-    [0x0b0c7b7e, 0x3c7593bd], [0x71d40bb6, 0x0c401ac4],
-    [0xe8a46c12, 0x24f5a634], [0x927c1cda, 0x14c02f4d],
-    [0x1d148d82, 0x449eb4c6], [0x67ccfd4a, 0x74ab3dbf],
-    [0x289c8961, 0xbcb410bb], [0x5244f9a9, 0x8c8199c2],
-    [0xdd2c68f1, 0xdcdf0249], [0xa7f41839, 0xecea8b30],
-    [0x438c80a6, 0x4ce15841], [0x3954f06e, 0x7cd4d138],
-    [0xb63c6136, 0x2c8a4ab3], [0xcce411fe, 0x1cbfc3ca],
-    [0x83b465d5, 0xd4a0eece], [0xf96c151d, 0xe49567b7],
-    [0x76048445, 0xb4cbfc3c], [0x0cdcf48d, 0x84fe7545],
-    [0x6fbd6d5e, 0xbd3716b7], [0x15651d96, 0x8d029fce],
-    [0x9a0d8cce, 0xdd5c0445], [0xe0d5fc06, 0xed698d3c],
-    [0xaf85882d, 0x2576a038], [0xd55df8e5, 0x15432941],
-    [0x5a3569bd, 0x451db2ca], [0x20ed1975, 0x75283bb3],
-    [0xc49581ea, 0xd523e8c2], [0xbe4df122, 0xe51661bb],
-    [0x3125607a, 0xb548fa30], [0x4bfd10b2, 0x857d7349],
-    [0x04ad6499, 0x4d625e4d], [0x7e751451, 0x7d57d734],
-    [0xf11d8509, 0x2d094cbf], [0x8bc5f5c1, 0x1d3cc5c6],
-    [0x12b59265, 0x35897936], [0x686de2ad, 0x05bcf04f],
-    [0xe70573f5, 0x55e26bc4], [0x9ddd033d, 0x65d7e2bd],
-    [0xd28d7716, 0xadc8cfb9], [0xa85507de, 0x9dfd46c0],
-    [0x273d9686, 0xcda3dd4b], [0x5de5e64e, 0xfd965432],
-    [0xb99d7ed1, 0x5d9d8743], [0xc3450e19, 0x6da80e3a],
-    [0x4c2d9f41, 0x3df695b1], [0x36f5ef89, 0x0dc31cc8],
-    [0x79a59ba2, 0xc5dc31cc], [0x037deb6a, 0xf5e9b8b5],
-    [0x8c157a32, 0xa5b7233e], [0xf6cd0afa, 0x9582aa47],
-    [0x4ad64994, 0xd625e4da], [0x300e395c, 0xe6106da3],
-    [0xbf66a804, 0xb64ef628], [0xc5bed8cc, 0x867b7f51],
-    [0x8aeeace7, 0x4e645255], [0xf036dc2f, 0x7e51db2c],
-    [0x7f5e4d77, 0x2e0f40a7], [0x05863dbf, 0x1e3ac9de],
-    [0xe1fea520, 0xbe311aaf], [0x9b26d5e8, 0x8e0493d6],
-    [0x144e44b0, 0xde5a085d], [0x6e963478, 0xee6f8124],
-    [0x21c64053, 0x2670ac20], [0x5b1e309b, 0x16452559],
-    [0xd476a1c3, 0x461bbed2], [0xaeaed10b, 0x762e37ab],
-    [0x37deb6af, 0x5e9b8b5b], [0x4d06c667, 0x6eae0222],
-    [0xc26e573f, 0x3ef099a9], [0xb8b627f7, 0x0ec510d0],
-    [0xf7e653dc, 0xc6da3dd4], [0x8d3e2314, 0xf6efb4ad],
-    [0x0256b24c, 0xa6b12f26], [0x788ec284, 0x9684a65f],
-    [0x9cf65a1b, 0x368f752e], [0xe62e2ad3, 0x06bafc57],
-    [0x6946bb8b, 0x56e467dc], [0x139ecb43, 0x66d1eea5],
-    [0x5ccebf68, 0xaecec3a1], [0x2616cfa0, 0x9efb4ad8],
-    [0xa97e5ef8, 0xcea5d153], [0xd3a62e30, 0xfe90582a],
-    [0xb0c7b7e3, 0xc7593bd8], [0xca1fc72b, 0xf76cb2a1],
-    [0x45775673, 0xa732292a], [0x3faf26bb, 0x9707a053],
-    [0x70ff5290, 0x5f188d57], [0x0a272258, 0x6f2d042e],
-    [0x854fb300, 0x3f739fa5], [0xff97c3c8, 0x0f4616dc],
-    [0x1bef5b57, 0xaf4dc5ad], [0x61372b9f, 0x9f784cd4],
-    [0xee5fbac7, 0xcf26d75f], [0x9487ca0f, 0xff135e26],
-    [0xdbd7be24, 0x370c7322], [0xa10fceec, 0x0739fa5b],
-    [0x2e675fb4, 0x576761d0], [0x54bf2f7c, 0x6752e8a9],
-    [0xcdcf48d8, 0x4fe75459], [0xb7173810, 0x7fd2dd20],
-    [0x387fa948, 0x2f8c46ab], [0x42a7d980, 0x1fb9cfd2],
-    [0x0df7adab, 0xd7a6e2d6], [0x772fdd63, 0xe7936baf],
-    [0xf8474c3b, 0xb7cdf024], [0x829f3cf3, 0x87f8795d],
-    [0x66e7a46c, 0x27f3aa2c], [0x1c3fd4a4, 0x17c62355],
-    [0x935745fc, 0x4798b8de], [0xe98f3534, 0x77ad31a7],
-    [0xa6df411f, 0xbfb21ca3], [0xdc0731d7, 0x8f8795da],
-    [0x536fa08f, 0xdfd90e51], [0x29b7d047, 0xefec8728]
-    );
-
-sub crc64($$) {
-    my ($cv, $str) = @_;
-    my $c;
-    my @cc = @$cv;
-    $cc[0] %= 4294967296;
-    $cc[1] %= 4294967296;
-
-    foreach $c (unpack("C*", $str)) {
-	my @ct = @{$crc64_tab[($cc[1] & 0xff) ^ $c]};
-
-	$cc[1] = $ct[1] ^
-	    ((($cc[1] & 0xffffff00) >> 8) | (($cc[0] & 0xff) << 24));
-	$cc[0] = $ct[0] ^ (($cc[0] & 0xffffff00) >> 8);
-    }
-
-    return @cc;
-}
--- a/nasmbuild/nasm-2.13rc9/perllib/gensv.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-#!/usr/bin/perl
-#
-# Generate a list of rotation vectors so we always use the same set.
-# This needs to be run on a platform with /dev/urandom.
-#
-
-($n) = @ARGV;
-
-sysopen(UR, '/dev/urandom', O_RDONLY) or die;
-
-$maxlen = 78;
-
-print "\@random_sv_vectors = (\n";
-$outl = '   ';
-
-for ($i = 0; $i < $n; $i++) {
-
-    die if (sysread(UR, $x8, 8) != 8);
-    @n = unpack("V*", $x8);
-
-    $xl = sprintf(" [0x%08x, 0x%08x]%s",
-		  $n[0], $n[1],
-		  ($i == $n-1) ? '' : ',');
-    if (length($outl.$xl) > $maxlen) {
-	print $outl, "\n";
-	$outl = '   ';
-    }
-    $outl .= $xl;
-}
-close(UR);
-
-print $outl, "\n";
-print ");\n";
-print "1;\n";
--- a/nasmbuild/nasm-2.13rc9/perllib/phash.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-# -*- perl -*-
-#
-# Perfect Minimal Hash Generator written in Perl, which produces
-# C output.
-#
-
-require 'random_sv_vectors.ph';
-require 'crc64.ph';
-
-#
-# Compute the prehash for a key
-#
-# prehash(key, sv, N)
-#
-sub prehash($$$) {
-    my($key, $n, $sv) = @_;
-    my @c = crc64($sv, $key);
-
-    # Create a bipartite graph...
-    $k1 = (($c[1] & ($n-1)) << 1) + 0; # low word
-    $k2 = (($c[0] & ($n-1)) << 1) + 1; # high word
-
-    return ($k1, $k2);
-}
-
-#
-# Walk the assignment graph, return true on success
-#
-sub walk_graph($$$$) {
-    my($nodeval,$nodeneigh,$n,$v) = @_;
-    my $nx;
-
-    # print STDERR "Vertex $n value $v\n";
-    $$nodeval[$n] = $v;
-
-    foreach $nx (@{$$nodeneigh[$n]}) {
-	# $nx -> [neigh, hash]
-	my ($o, $e) = @$nx;
-
-	# print STDERR "Edge $n,$o value $e: ";
-	my $ov;
-	if (defined($ov = $$nodeval[$o])) {
-	    if ($v+$ov != $e) {
-		# Cyclic graph with collision
-		# print STDERR "error, should be ", $v+$ov, "\n";
-		return 0;
-	    } else {
-		# print STDERR "ok\n";
-	    }
-	} else {
-	    return 0 unless (walk_graph($nodeval, $nodeneigh, $o, $e-$v));
-	}
-    }
-    return 1;
-}
-
-#
-# Generate the function assuming a given N.
-#
-# gen_hash_n(N, sv, \%data, run)
-#
-sub gen_hash_n($$$$) {
-    my($n, $sv, $href, $run) = @_;
-    my @keys = keys(%{$href});
-    my $i, $sv;
-    my $gr;
-    my $k, $v;
-    my $gsize = 2*$n;
-    my @nodeval;
-    my @nodeneigh;
-    my %edges;
-
-    for ($i = 0; $i < $gsize; $i++) {
-	$nodeneigh[$i] = [];
-    }
-
-    %edges = ();
-    foreach $k (@keys) {
-	my ($pf1, $pf2) = prehash($k, $n, $sv);
-	($pf1,$pf2) = ($pf2,$pf1) if ($pf1 > $pf2); # Canonicalize order
-
-	my $pf = "$pf1,$pf2";
-	my $e = ${$href}{$k};
-	my $xkey;
-
-	if (defined($xkey = $edges{$pf})) {
-	    next if ($e == ${$href}{$xkey}); # Duplicate hash, safe to ignore
-	    if (defined($run)) {
-		print STDERR "$run: Collision: $pf: $k with $xkey\n";
-	    }
-	    return;
-	}
-
-	# print STDERR "Edge $pf value $e from $k\n";
-
-	$edges{$pf} = $k;
-	push(@{$nodeneigh[$pf1]}, [$pf2, $e]);
-	push(@{$nodeneigh[$pf2]}, [$pf1, $e]);
-    }
-
-    # Now we need to assign values to each vertex, so that for each
-    # edge, the sum of the values for the two vertices give the value
-    # for the edge (which is our hash index.)  If we find an impossible
-    # sitation, the graph was cyclic.
-    @nodeval = (undef) x $gsize;
-
-    for ($i = 0; $i < $gsize; $i++) {
-	if (scalar(@{$nodeneigh[$i]})) {
-	    # This vertex has neighbors (is used)
-	    if (!defined($nodeval[$i])) {
-		# First vertex in a cluster
-		unless (walk_graph(\@nodeval, \@nodeneigh, $i, 0)) {
-		    if (defined($run)) {
-			print STDERR "$run: Graph is cyclic\n";
-		    }
-		    return;
-		}
-	    }
-	}
-    }
-
-    # for ($i = 0; $i < $n; $i++) {
-    #	print STDERR "Vertex ", $i, ": ", $g[$i], "\n";
-    # }
-
-    if (defined($run)) {
-	printf STDERR "$run: Done: n = $n, sv = [0x%08x, 0x%08x]\n",
-	$$sv[0], $$sv[1];
-    }
-
-    return ($n, $sv, \@nodeval);
-}
-
-#
-# Driver for generating the function
-#
-# gen_perfect_hash(\%data)
-#
-sub gen_perfect_hash($) {
-    my($href) = @_;
-    my @keys = keys(%{$href});
-    my @hashinfo;
-    my $n, $i, $j, $sv, $maxj;
-    my $run = 1;
-
-    # Minimal power of 2 value for N with enough wiggle room.
-    # The scaling constant must be larger than 0.5 in order for the
-    # algorithm to ever terminate.
-    my $room = int(scalar(@keys)*0.8);
-    $n = 1;
-    while ($n < $room) {
-	$n <<= 1;
-    }
-
-    # Number of times to try...
-    $maxj = scalar @random_sv_vectors;
-
-    for ($i = 0; $i < 4; $i++) {
-	printf STDERR "%d vectors, trying n = %d...\n",
-		scalar @keys, $n;
-	for ($j = 0; $j < $maxj; $j++) {
-	    $sv = $random_sv_vectors[$j];
-	    @hashinfo = gen_hash_n($n, $sv, $href, $run++);
-	    return @hashinfo if (@hashinfo);
-	}
-	$n <<= 1;
-    }
-
-    return;
-}
-
-#
-# Verify that the hash table is actually correct...
-#
-sub verify_hash_table($$)
-{
-    my ($href, $hashinfo) = @_;
-    my ($n, $sv, $g) = @{$hashinfo};
-    my $k;
-    my $err = 0;
-
-    foreach $k (keys(%$href)) {
-	my ($pf1, $pf2) = prehash($k, $n, $sv);
-	my $g1 = ${$g}[$pf1];
-	my $g2 = ${$g}[$pf2];
-
-	if ($g1+$g2 != ${$href}{$k}) {
-	    printf STDERR "%s(%d,%d): %d+%d = %d != %d\n",
-	    $k, $pf1, $pf2, $g1, $g2, $g1+$g2, ${$href}{$k};
-	    $err = 1;
-	} else {
-	    # printf STDERR "%s: %d+%d = %d ok\n",
-	    # $k, $g1, $g2, $g1+$g2;
-	}
-    }
-
-    die "$0: hash validation error\n" if ($err);
-}
-
-1;
--- a/nasmbuild/nasm-2.13rc9/perllib/random_sv_vectors.ph	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-@random_sv_vectors = (
-    [0x076259c3, 0xe291c26c], [0xaee7ac5c, 0xcabdec91],
-    [0x5d3862fb, 0x2e8a3060], [0x6fb3635c, 0x4783593a],
-    [0x13f0eafb, 0x407e486a], [0x7436afdd, 0xd04c4829],
-    [0xace2d0e4, 0x80575791], [0x2dd9a392, 0xdc1e869e],
-    [0x199c3e38, 0x026a9d67], [0x9f911c85, 0x3a489c87],
-    [0x9ac31028, 0x0b6e14b2], [0x2ccfbcf9, 0x3f9f2308],
-    [0x2e0210fb, 0x392f380f], [0x14ab403a, 0x81a11065],
-    [0xd496f63c, 0x53196b13], [0x48a34d7f, 0x2ffc6036],
-    [0x34ea8e9d, 0xcd1ed098], [0x2da1a3f2, 0x3d6c23f2],
-    [0xca7374da, 0x06054f89], [0xc909a0bb, 0x31d6c0d2],
-    [0x87454496, 0x15b360d7], [0x9eebbd12, 0x89532131],
-    [0x1119c65b, 0xd9e49705], [0x60c3be0b, 0xd6cc7c8a],
-    [0x117723cd, 0x40af090f], [0xfc284f51, 0x3dcf4c06],
-    [0xb41fcda4, 0xec03644c], [0xd99e1ea7, 0x84eaf76d],
-    [0x534b956a, 0x06d3fb8d], [0x2da4bb09, 0x078092eb],
-    [0x6a5be463, 0xbfa51a88], [0xc4e8be95, 0xe7eec27c],
-    [0x15a1fbb9, 0xfadc08cd], [0x0bcfab08, 0xbccade0f],
-    [0x629f1f6c, 0x90ccede7], [0x5c2b26aa, 0x1f0b1fce],
-    [0xdfe0e3fd, 0xbd7c3cfb], [0xa1628ca9, 0x90a05686],
-    [0xbf0267f2, 0xd2964139], [0x8009a9b9, 0xd2195918],
-    [0xfcc7b5f8, 0xc108c643], [0xf447d4b0, 0x71953863],
-    [0x95d091ed, 0xdbe01948], [0x81dec325, 0x2bfecda2],
-    [0x2ed2acaa, 0x7eeaa0d0], [0xb7b0a20e, 0x8bf5c01b],
-    [0x75eb3917, 0xfd2f758f], [0xb33a5b49, 0x8a8cedf6],
-    [0x3aaf2757, 0x69b319a9], [0x32cfa41b, 0xeba36f19],
-    [0xf54209dd, 0x941f3a08], [0x232703bb, 0x786a6f84],
-    [0x4937b242, 0xc9f07398], [0x74dc5d39, 0x550a58e8],
-    [0x6c9aebdc, 0x8fda5069], [0x5ae6d62a, 0x05cd24a3],
-    [0x8111e50a, 0xc1c6d19b], [0xb980a92b, 0x448b4d1f],
-    [0x568cf58a, 0x8bcb93ca], [0xfe96002f, 0x410cd2f1],
-    [0xaf511e45, 0x99e4872f], [0x822c20bc, 0x3db49ddd],
-    [0x184fec4e, 0xbb82ec52], [0x30ca5326, 0xf3180297],
-    [0x97962aa4, 0x7d4bc6d4], [0x9199a315, 0x8e9f18c6],
-    [0xead69a7e, 0x3262a683], [0xe261ec00, 0x81edc47a],
-    [0x06080c0e, 0x6d18fa9f], [0x1771ec43, 0x6747ed66],
-    [0xe71fe587, 0xe81ad0f3], [0xf083e80c, 0x0898bcd8],
-    [0x30328c5a, 0x2efb4ee7], [0xd04fa5d7, 0xec9c9f18],
-    [0x87820480, 0x48932224], [0xb1f18815, 0x1b27e3e3],
-    [0x79aa440c, 0xdf17a8fc], [0x8a83d404, 0x10fdec8c],
-    [0x7d4dfe60, 0x573561ee], [0x60315c7d, 0xa0692af6],
-    [0xb3ca4d52, 0x89ca832f], [0x9ebc5c79, 0xa84a28fc],
-    [0xdfa76008, 0x7772cf7c], [0xb0e3a15f, 0xbdc35aee],
-    [0x6e252b03, 0x32b2107d], [0x20dcc2a3, 0x21987229],
-    [0x848e3ad8, 0xe692a0c6], [0xdd07fa50, 0x0b64e1ae],
-    [0xc4072bc2, 0x2f120bba], [0xdb3af26e, 0xacab0c48],
-    [0xd7d4b59a, 0xcf72a7a7], [0x4628de45, 0x4dfb2750],
-    [0x7519211f, 0x4798b536], [0x19984af3, 0xffd2aa19],
-    [0x1372d9c0, 0x7512153a], [0x295d19da, 0x497416e5],
-    [0x70932c73, 0x8a9bf591], [0xa0960860, 0xfaa7dc61],
-    [0xd425f548, 0x43aeda4d], [0xaa2573c7, 0x01a2553d],
-    [0x988e71d7, 0xd3c004a4], [0x3da87545, 0x2197af10],
-    [0x2f89e592, 0xa686e2fc], [0x7b88018a, 0xae66d575],
-    [0x93215591, 0xed69e6ea], [0x4fcacc4a, 0x4d2aba97],
-    [0xbedb923b, 0x500b2f1a], [0x0b6d8aa0, 0x232511b0],
-    [0x282fb3ee, 0x23695de0], [0x0c455dfe, 0x820cca3f],
-    [0xe893868c, 0x87f698f6], [0xb6428730, 0x56e576ce],
-    [0xf3843ee7, 0xba79bc28], [0xa1c9ca45, 0x30c479c1],
-    [0xbfc244c2, 0xa9af65f0], [0x6eeb88eb, 0x62b4479c],
-    [0xcc328fe5, 0x60f5c9bf], [0x31aa2c21, 0xc55575fb],
-    [0x9429492d, 0x8e80612a], [0xb12fe59e, 0xf0e1e97b],
-    [0xc2501dad, 0x4a9f4bbf], [0x65ae8366, 0x3e8b0983],
-    [0xd5fc062a, 0xba74f808], [0x7398cc0a, 0x39a6a269],
-    [0x5581dd60, 0xff79d28c], [0xea5e52b3, 0x9be66c71],
-    [0x8f6e02a4, 0xe27318b5], [0xe8bceb99, 0xa48a7f2c],
-);
-1;
--- a/nasmbuild/nasm-2.13rc9/rdoff/Makefile.in	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-#
-# Auto-configuring Makefile for RDOFF object file utils; part of the
-# Netwide Assembler
-#
-# The Netwide Assembler is copyright (C) 1996 Simon Tatham and
-# Julian Hall. All rights reserved. The software is
-# redistributable under the license given in the file "LICENSE"
-# distributed in the NASM archive.
-
-top_srcdir	= @top_srcdir@
-srcdir		= @srcdir@
-VPATH		= @srcdir@
-prefix		= @prefix@
-exec_prefix	= @exec_prefix@
-bindir		= @bindir@
-mandir		= @mandir@
-datarootdir	= @datarootdir@
-
-CC		= @CC@
-CFLAGS		= @CFLAGS@
-BUILD_CFLAGS	= $(CFLAGS) @DEFS@
-INTERNAL_CFLAGS = -I$(srcdir) -I$(top_srcdir) -I$(top_srcdir)/include -I..
-ALL_CFLAGS	= $(BUILD_CFLAGS) $(INTERNAL_CFLAGS)
-LDFLAGS		= @LDFLAGS@
-LIBS		= @LIBS@
-
-AR		= @AR@
-RANLIB		= @RANLIB@
-STRIP		= @STRIP@
-
-INSTALL		= @INSTALL@
-INSTALL_PROGRAM	= @INSTALL_PROGRAM@
-INSTALL_DATA	= @INSTALL_DATA@
-LN_S		= @LN_S@
-
-MKDIR		= mkdir
-RM		= rm
-
-LIBOBJS         = rdoff.$(O) rdfload.$(O) symtab.$(O) collectn.$(O) \
-		  rdlib.$(O) segtab.$(O) hash.$(O)
-RDFLIB		= librdoff.$(A)
-NASMLIB		= ../libnasm.$(A)
-LIBS		= $(RDFLIB) $(NASMLIB)
-
-# Binary suffixes
-O               = @OBJEXT@
-X               = @EXEEXT@
-A		= @LIBEXT@
-
-PROGRAMS = rdfdump$(X) ldrdf$(X) rdx$(X) rdflib$(X) \
-	   rdf2bin$(X) rdf2com$(X) rdf2ith$(X) rdf2ihx$(X) rdf2srec$(X)
-
-.SUFFIXES: .c .i .s .$(O) .$(A) .1 .man
-
-.c.$(O):
-	$(CC) -c $(ALL_CFLAGS) $<
-
-all: $(PROGRAMS)
-
-$(RDFLIB): $(LIBOBJS)
-	$(RM) -f $(RDFLIB)
-	$(AR) cq $(RDFLIB) $(LIBOBJS)
-	$(RANLIB) $(RDFLIB)
-
-rdfdump$(X): rdfdump.$(O) $(LIBS)
-	$(CC) $(LDFLAGS) -o rdfdump$(X) rdfdump.$(O) $(LIBS)
-ldrdf$(X): ldrdf.$(O) $(LIBS)
-	$(CC) $(LDFLAGS) -o ldrdf$(X) ldrdf.$(O) $(LIBS)
-rdx$(X): rdx.$(O) $(LIBS)
-	$(CC) $(LDFLAGS) -o rdx$(X) rdx.$(O) $(LIBS)
-rdflib$(X): rdflib.$(O) $(LIBS)
-	$(CC) $(LDFLAGS) -o rdflib$(X) rdflib.$(O) $(LIBS)
-rdf2bin$(X): rdf2bin.$(O) $(LIBS)
-	$(CC) $(LDFLAGS) -o rdf2bin$(X) rdf2bin.$(O) $(LIBS)
-rdf2com$(X): rdf2bin$(X)
-	rm -f rdf2com$(X) && $(LN_S) rdf2bin$(X) rdf2com$(X)
-rdf2ith$(X): rdf2bin$(X)
-	rm -f rdf2ith$(X) && $(LN_S) rdf2bin$(X) rdf2ith$(X)
-rdf2ihx$(X): rdf2bin$(X)
-	rm -f rdf2ihx$(X) && $(LN_S) rdf2bin$(X) rdf2ihx$(X)
-rdf2srec$(X): rdf2bin$(X)
-	rm -f rdf2srec$(X) && $(LN_S) rdf2bin$(X) rdf2srec$(X)
-
-rdf2ihx.$(O): rdf2ihx.c
-rdf2bin.$(O): rdf2bin.c
-rdfdump.$(O): rdfdump.c
-rdoff.$(O): rdoff.c ../include/rdoff.h
-ldrdf.$(O): ldrdf.c ../include/rdoff.h ../include/nasmlib.h symtab.h \
-	collectn.h rdlib.h
-symtab.$(O): symtab.c symtab.h
-collectn.$(O): collectn.c collectn.h
-rdx.$(O): rdx.c ../include/rdoff.h rdfload.h symtab.h
-rdfload.$(O): rdfload.c rdfload.h ../include/rdoff.h collectn.h symtab.h
-rdlib.$(O): rdlib.c rdlib.h
-rdflib.$(O): rdflib.c
-segtab.$(O): segtab.c
-
-clean:
-	rm -f *.$(O) *.$(A) $(PROGRAMS)
-
-spotless: clean
-	rm -f Makefile
-
-distclean: spotless
-
-install: all
-	$(MKDIR) -p $(INSTALLROOT)$(bindir)
-	$(INSTALL_PROGRAM) rdfdump$(X) $(INSTALLROOT)$(bindir)/rdfdump$(X)
-	$(INSTALL_PROGRAM) ldrdf$(X) $(INSTALLROOT)$(bindir)/ldrdf$(X)
-	$(INSTALL_PROGRAM) rdx$(X) $(INSTALLROOT)$(bindir)/rdx$(X)
-	$(INSTALL_PROGRAM) rdflib$(X) $(INSTALLROOT)$(bindir)/rdflib$(X)
-	$(INSTALL_PROGRAM) rdf2bin$(X) $(INSTALLROOT)$(bindir)/rdf2bin$(X)
-	cd $(INSTALLROOT)$(bindir) && rm -f rdf2com$(X) && $(LN_S) rdf2bin$(X) rdf2com$(X)
-	cd $(INSTALLROOT)$(bindir) && rm -f rdf2ith$(X) && $(LN_S) rdf2bin$(X) rdf2ith$(X)
-	cd $(INSTALLROOT)$(bindir) && rm -f rdf2ihx$(X) && $(LN_S) rdf2bin$(X) rdf2ihx$(X)
-	cd $(INSTALLROOT)$(bindir) && rm -f rdf2srec$(X) && $(LN_S) rdf2bin$(X) rdf2srec$(X)
-	$(MKDIR) -p $(INSTALLROOT)$(mandir)/man1
-	$(INSTALL_DATA) $(srcdir)/*.1 $(INSTALLROOT)$(mandir)/man1/
--- a/nasmbuild/nasm-2.13rc9/rdoff/Mkfiles/Makefile.dj	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-# Generated automatically from Makefile.in by configure.
-#
-# Auto-configuring Makefile for RDOFF object file utils; part of the
-# Netwide Assembler
-#
-# The Netwide Assembler is copyright (C) 1996 Simon Tatham and
-# Julian Hall. All rights reserved. The software is
-# redistributable under the license given in the file "LICENSE"
-# distributed in the NASM archive.
-
-# You may need to adjust these values.
-
-prefix = /djgpp
-CC = gcc -s
-CFLAGS = -O2 -I..
-
-# You _shouldn't_ need to adjust anything below this line.
-
-exec_prefix = ${prefix}
-bindir = ${exec_prefix}/bin
-mandir = ${prefix}/man
-
-INSTALL = /usr/bin/install -c
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_DATA = ${INSTALL} -m 644
-LN_S = ln -s
-
-LDRDFLIBS = rdoff.o ../nasmlib.o symtab.o hash.o collectn.o rdlib.o segtab.o
-RDXLIBS = rdoff.o rdfload.o symtab.o hash.o collectn.o
-
-.c.o:
-	$(CC) -c $(CFLAGS) $*.c
-
-all: rdfdump ldrdf rdx rdflib rdf2bin rdf2com
-
-rdfdump: rdfdump.o rdoff.o
-	$(CC) -o rdfdump rdfdump.o rdoff.o
-
-ldrdf: ldrdf.o $(LDRDFLIBS)
-	$(CC) -o ldrdf ldrdf.o $(LDRDFLIBS)
-rdx: rdx.o $(RDXLIBS)
-	$(CC) -o rdx rdx.o $(RDXLIBS)
-rdflib: rdflib.o
-	$(CC) -o rdflib rdflib.o
-rdf2bin: rdf2bin.o $(RDXLIBS) nasmlib.o
-	$(CC) -o rdf2bin rdf2bin.o $(RDXLIBS) nasmlib.o
-rdf2com:
-	$(LN_S) rdf2bin rdf2com
-
-rdf2bin.o: rdf2bin.c
-rdfdump.o: rdfdump.c
-rdoff.o: rdoff.c rdoff.h
-ldrdf.o: ldrdf.c rdoff.h ../nasmlib.h symtab.h collectn.h rdlib.h
-symtab.o: symtab.c symtab.h hash.h
-collectn.o: collectn.c collectn.h
-rdx.o: rdx.c rdoff.h rdfload.h symtab.h
-rdfload.o: rdfload.c rdfload.h rdoff.h collectn.h symtab.h
-rdlib.o: rdlib.c rdlib.h
-rdflib.o: rdflib.c
-hash.o: hash.c hash.h
-segtab.o: segtab.c segtab.h
-
-nasmlib.o: ../nasmlib.c ../nasmlib.h ../names.c ../nasm.h
-	$(CC) -c $(CFLAGS) ../nasmlib.c
-
-clean:
-	rm -f *.o rdfdump ldrdf rdx rdflib rdf2bin rdf2com
-
-install: rdfdump ldrdf rdx rdflib rdf2bin rdf2com
-	$(INSTALL_PROGRAM) rdfdump $(bindir)/rdfdump
-	$(INSTALL_PROGRAM) ldrdf $(bindir)/ldrdf
-	$(INSTALL_PROGRAM) rdx $(bindir)/rdx
-	$(INSTALL_PROGRAM) rdflib $(bindir)/rdflib
-	$(INSTALL_PROGRAM) rdf2bin $(bindir)/rdf2bin
-	cd $(bindir); $(LN_S) rdf2bin rdf2com
--- a/nasmbuild/nasm-2.13rc9/rdoff/Mkfiles/Makefile.emx	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-# Generated automatically from Makefile.in by configure.
-# $Id$
-#
-# Auto-configuring Makefile for RDOFF object file utils; part of the
-# Netwide Assembler
-#
-# The Netwide Assembler is copyright (C) 1996 Simon Tatham and
-# Julian Hall. All rights reserved. The software is
-# redistributable under the license given in the file "LICENSE"
-# distributed in the NASM archive.
-
-top_srcdir	= ..
-srcdir		= .
-prefix		= /usr/local
-exec_prefix	= ${prefix}
-bindir		= ${exec_prefix}/bin
-mandir		= ${prefix}/man
-
-CC		= gcc
-CFLAGS		= -s -Zomf -O2 -fomit-frame-pointer -Wall -ansi -pedantic -I$(srcdir) -I$(top_srcdir)
-LDFLAGS		= -s -Zomf -Zexe -Zcrtdll
-LIBS		= -lgcc
-
-INSTALL		= .././install-sh -c
-INSTALL_PROGRAM	= ${INSTALL}
-INSTALL_DATA	= ${INSTALL} -m 644
-
-LDRDFLIBS 	= rdoff.o nasmlib.o symtab.o collectn.o rdlib.o segtab.o hash.o
-RDXLIBS 	= rdoff.o rdfload.o symtab.o collectn.o hash.o
-
-.c.o:
-	$(CC) -c $(CFLAGS) -o $@ $<
-
-all: rdfdump ldrdf rdx rdflib rdf2bin
-
-rdfdump: rdfdump.o rdoff.o
-	$(CC) $(LDFLAGS) -o rdfdump rdfdump.o rdoff.o $(LIBS)
-ldrdf: ldrdf.o $(LDRDFLIBS)
-	$(CC) $(LDFLAGS) -o ldrdf ldrdf.o $(LDRDFLIBS) $(LIBS)
-rdx: rdx.o $(RDXLIBS)
-	$(CC) $(LDFLAGS) -o rdx rdx.o $(RDXLIBS) $(LIBS)
-rdflib: rdflib.o
-	$(CC) $(LDFLAGS) -o rdflib rdflib.o $(LIBS)
-rdf2bin: rdf2bin.o $(RDXLIBS) nasmlib.o
-	$(CC) $(LDFLAGS) -o rdf2bin rdf2bin.o $(RDXLIBS) nasmlib.o $(LIBS)
-
-rdf2bin.o: rdf2bin.c
-rdfdump.o: rdfdump.c
-rdoff.o: rdoff.c rdoff.h
-ldrdf.o: ldrdf.c rdoff.h $(top_srcdir)/nasmlib.h symtab.h collectn.h rdlib.h
-symtab.o: symtab.c symtab.h
-collectn.o: collectn.c collectn.h
-rdx.o: rdx.c rdoff.h rdfload.h symtab.h
-rdfload.o: rdfload.c rdfload.h rdoff.h collectn.h symtab.h
-rdlib.o: rdlib.c rdlib.h
-rdflib.o: rdflib.c
-segtab.o: segtab.c
-
-nasmlib.o: $(top_srcdir)/nasmlib.c
-	$(CC) -c $(CFLAGS) -o $@ $(top_srcdir)/nasmlib.c
-
-clean:
-	rm -f *.o rdfdump ldrdf rdx rdflib rdf2bin rdf2com
-
-spotless: clean
-	rm -f Makefile
-
-distclean: spotless
-
-install: rdfdump ldrdf rdx rdflib rdf2bin rdf2com
-	$(INSTALL_PROGRAM) rdfdump $(INSTALLROOT)$(bindir)/rdfdump
-	$(INSTALL_PROGRAM) ldrdf $(INSTALLROOT)$(bindir)/ldrdf
-	$(INSTALL_PROGRAM) rdx $(INSTALLROOT)$(bindir)/rdx
-	$(INSTALL_PROGRAM) rdflib $(INSTALLROOT)$(bindir)/rdflib
-	$(INSTALL_PROGRAM) rdf2bin $(INSTALLROOT)$(bindir)/rdf2bin
-	cd $(INSTALLROOT)$(bindir) && rm -f rdf2com && $(LN_S) rdf2bin rdf2com
--- a/nasmbuild/nasm-2.13rc9/rdoff/Mkfiles/Makefile.sc	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-# Makefile for RDOFF object file utils; part of the Netwide Assembler
-#
-# The Netwide Assembler is copyright (C) 1996 Simon Tatham and
-# Julian Hall. All rights reserved. The software is
-# redistributable under the license given in the file "LICENSE"
-# distributed in the NASM archive.
-#
-# This Makefile is designed for use under Unix (probably fairly
-# portably).
-
-CC = sc
-CCFLAGS = -I..\ -c -a1 -mn -Nc -w2 -w7 -o+time -5
-LINK = link
-LINKFLAGS = /noi /exet:NT /su:console
-
-OBJ=obj
-EXE=.exe
-
-NASMLIB = ..\nasmlib.$(OBJ)
-NASMLIB_H = ..\nasmlib.h
-LDRDFLIBS = rdoff.$(OBJ) $(NASMLIB) symtab.$(OBJ) collectn.$(OBJ) rdlib.$(OBJ)
-RDXLIBS = rdoff.$(OBJ) rdfload.$(OBJ) symtab.$(OBJ) collectn.$(OBJ)
-
-.c.$(OBJ):
-	$(CC) $(CCFLAGS) $*.c
-
-all : rdfdump$(EXE) ldrdf$(EXE) rdx$(EXE) rdflib$(EXE) rdf2bin$(EXE) rdf2com$(EXE)
-
-rdfdump$(EXE)   : rdfdump.$(OBJ)
-        $(LINK) $(LINKFLAGS) rdfdump.$(OBJ), rdfdump$(EXE);
-ldrdf$(EXE)     : ldrdf.$(OBJ) $(LDRDFLIBS)
-        $(LINK) $(LINKFLAGS) ldrdf.$(OBJ) $(LDRDFLIBS), ldrdf$(EXE);
-rdx$(EXE)       : rdx.$(OBJ) $(RDXLIBS)
-        $(LINK) $(LINKFLAGS) rdx.$(OBJ) $(RDXLIBS), rdx$(EXE);
-rdflib$(EXE)    : rdflib.$(OBJ)
-        $(LINK) $(LINKFLAGS) rdflib.$(OBJ), rdflib$(EXE);
-rdf2bin$(EXE)   : rdf2bin.$(OBJ) $(RDXLIBS) $(NASMLIB)
-        $(LINK) $(LINKFLAGS) rdf2bin.$(OBJ) $(RDXLIBS) $(NASMLIB), rdf2bin$(EXE);
-rdf2com$(EXE)   : rdf2bin$(EXE)
-        copy rdf2bin$(EXE) rdf2com$(EXE)
-
-rdf2bin.$(OBJ)  : rdf2bin.c
-rdfdump.$(OBJ)  : rdfdump.c
-rdoff.$(OBJ)    : rdoff.c rdoff.h
-ldrdf.$(OBJ)    : ldrdf.c rdoff.h $(NASMLIB_H) symtab.h collectn.h rdlib.h
-symtab.$(OBJ)   : symtab.c symtab.h
-collectn.$(OBJ) : collectn.c collectn.h
-rdx.$(OBJ)      : rdx.c rdoff.h rdfload.h symtab.h
-rdfload.$(OBJ)  : rdfload.c rdfload.h rdoff.h collectn.h symtab.h
-rdlib.$(OBJ)    : rdlib.c rdlib.h
-rdflib.$(OBJ)   : rdflib.c
-
-clean :
-        del *.$(OBJ) rdfdump$(EXE) ldrdf$(EXE) rdx$(EXE) rdflib$(EXE) rdf2bin$(EXE)
-
-
--- a/nasmbuild/nasm-2.13rc9/rdoff/Mkfiles/Makefile.unx	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-# Generated automatically from Makefile.in by configure.
-#
-# Auto-configuring Makefile for RDOFF object file utils; part of the
-# Netwide Assembler
-#
-# The Netwide Assembler is copyright (C) 1996 Simon Tatham and
-# Julian Hall. All rights reserved. The software is
-# redistributable under the license given in the file "LICENSE"
-# distributed in the NASM archive.
-
-# You may need to adjust these values.
-
-prefix = /usr/local
-CC = cc
-CFLAGS = -O -I..
-
-# You _shouldn't_ need to adjust anything below this line.
-
-exec_prefix = ${prefix}
-bindir = ${exec_prefix}/bin
-mandir = ${prefix}/man
-
-INSTALL = /usr/bin/install -c
-INSTALL_PROGRAM = ${INSTALL}
-INSTALL_DATA = ${INSTALL} -m 644
-LN_S = ln -s
-
-LDRDFLIBS = rdoff.o ../nasmlib.o symtab.o hash.o collectn.o rdlib.o segtab.o
-RDXLIBS = rdoff.o rdfload.o symtab.o hash.o collectn.o
-
-.c.o:
-	$(CC) -c $(CFLAGS) $*.c
-
-all: rdfdump ldrdf rdx rdflib rdf2bin rdf2com
-
-rdfdump: rdfdump.o rdoff.o
-	$(CC) -o rdfdump rdfdump.o rdoff.o
-
-ldrdf: ldrdf.o $(LDRDFLIBS)
-	$(CC) -o ldrdf ldrdf.o $(LDRDFLIBS)
-rdx: rdx.o $(RDXLIBS)
-	$(CC) -o rdx rdx.o $(RDXLIBS)
-rdflib: rdflib.o
-	$(CC) -o rdflib rdflib.o
-rdf2bin: rdf2bin.o $(RDXLIBS) nasmlib.o
-	$(CC) -o rdf2bin rdf2bin.o $(RDXLIBS) nasmlib.o
-rdf2com:
-	$(LN_S) rdf2bin rdf2com
-
-rdf2bin.o: rdf2bin.c
-rdfdump.o: rdfdump.c
-rdoff.o: rdoff.c rdoff.h
-ldrdf.o: ldrdf.c rdoff.h ../nasmlib.h symtab.h collectn.h rdlib.h
-symtab.o: symtab.c symtab.h hash.h
-collectn.o: collectn.c collectn.h
-rdx.o: rdx.c rdoff.h rdfload.h symtab.h
-rdfload.o: rdfload.c rdfload.h rdoff.h collectn.h symtab.h
-rdlib.o: rdlib.c rdlib.h
-rdflib.o: rdflib.c
-hash.o: hash.c hash.h
-segtab.o: segtab.c segtab.h
-
-nasmlib.o: ../nasmlib.c ../nasmlib.h ../names.c ../nasm.h
-	$(CC) -c $(CFLAGS) ../nasmlib.c
-
-clean:
-	rm -f *.o rdfdump ldrdf rdx rdflib rdf2bin rdf2com
-
-install: rdfdump ldrdf rdx rdflib rdf2bin rdf2com
-	$(INSTALL_PROGRAM) rdfdump $(bindir)/rdfdump
-	$(INSTALL_PROGRAM) ldrdf $(bindir)/ldrdf
-	$(INSTALL_PROGRAM) rdx $(bindir)/rdx
-	$(INSTALL_PROGRAM) rdflib $(bindir)/rdflib
-	$(INSTALL_PROGRAM) rdf2bin $(bindir)/rdf2bin
-	cd $(bindir); $(LN_S) rdf2bin rdf2com
--- a/nasmbuild/nasm-2.13rc9/rdoff/Mkfiles/README	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-These are pre-created Makefiles for various platforms, use them if
-GNU autoconf/automake packages are not supported on your system.
-
-Copy appropriate Makefile to ../Makefile and run make.
--- a/nasmbuild/nasm-2.13rc9/rdoff/README	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,185 +0,0 @@
-*******
-This file is getting obsolete. RDOFF documentation is written in Texinfo now.
-Directory doc/ contains Texinfo source (rdoff.texi) and makefile for creating
-different output formats (info, HTML, PostScript and PDF).
-*******
-
-RDOFF Utilities, version 0.3.2
-==============================
-
-The files contained in this directory are the C source code of a set
-of tools (and general purpose library files) for the manipulation of
-RDOFF version 2 object files. Note that these programs (with the
-exception of 'rdfdump') will NOT work with version 1 object files.
-Version 1 of RDOFF is no longer supported.
-
-There is also a 'doc' directory with 'v1-v2' file, which documents the
-differences between RDOFF 1 and 2, and an 'rdoff2.texi' (texinfo source),
-with complete documentation for the new format.
-
-Here is a brief summary of the programs' usage:
-
-
-rdfdump
-=======
-
-This tool prints a list of the header records in an RDOFF object in
-human-readable form, and optionally prints a hex dump of the contents
-of the segments.
-
-Usage:
-	rdfdump [-v] filename
-
-The -v flag specifies that the hex dump (see above) should be printed.
-
-Changes from previous versions:
-
-* rdfdump supports both version 1 and 2 of RDOFF.
-* rdfdump now gives warnings if the RDOFF2 format is violated (it
-  looks for incorrect lengths for header records, and checks the
-  overall length count at the start of the file)
-
-
-ldrdf
-=====
-
-This tool is a version of unix 'ld' (or DOS 'link') for use with RDOFF
-files. It is capable of linking RDOFF objects, and libraries produced
-with the 'rdlib' utility discussed below.
-
-In normal usage, its command line takes the form:
-
-	ldrdf [-o output-file] object files [-llibrary ...]
-
-Modules in libraries are not linked to the program unless they are
-referred to.
-
-Most of its options are not implemented, but those that are are listed here:
-
-  -2	redirect all output from stderr to stdout. It is useful for some
-  	systems which don't have such a redirection in shell (e.g. DOS).
-
-  -v	increase verbosity level. Currently 4 verbosity levels are
-	available: default (which only prints error information), normal
-	(which prints information about the produced object, -v), medium
-	(which prints information about what the program is doing, -v -v)
-	and high (which prints all available information, -v -v -v).
-
-  -a	change alignment value to which multiple segments combigned into
-	a single segment should be aligned (must be either 1, 2, 4, 8,
-	16, 32 or 256. Default is 16).
-
-  -s	strip exported symbols from output file. Symbols marked as
-  	SYM_GLOBAL are never stripped.
-
-  -x	warn about unresolved symbols.
-
-  -xe	issue an error when at least one symbol is unresolved.
-
-  -o name	write output to file <name>. The default output filename
-		is 'aout.rdx'.
-
-  -j path	specify search path for object files. Default path is a
-  		current directory.
-
-  -L path	specify search path for libraries. Default path is a
-  		current directory.
-
-  -g file	embed 'file' as a first header record with type 'generic'.
-
-
-rdx
-===
-
-This program simply loads and executes an RDOFF object, by calling
-'_main', which it expects to be a C-style function, which will accept
-two parameters, argc and argv in normal C style.
-
-
-rdflib
-======
-
-This program creates a library file for use with ldrdf.
-
-It is supplied with a shell script 'makelib' which should probably be used
-to create libraries.
-
-Usage:
-	rdflib command library [optional arguments]
-
-Valid commands are:
-
-	c	Create (or truncate) the library
-	a	Add a module (requires a filename and a name to give the
-		module, ie 'rdflib a libc.rdl strcpy.rdf strcpy' puts the
-		file 'strcpy.rdf' into 'libc.rdl', and calls it 'strcpy'.
-	x	Extract (arguments are the opposite to the 'a' command,
-		ie you'd do 'rdflib x libc.rdl strcpy strcpy.rdf to get
-		a copy of strcpy.rdf back out again...)
-        t       List modules in the library
-	d	Delete modules from library
-	r	Replace a module in library with a new file
-
-
-Library functions
-=================
-
-The files 'rdoff.c', 'rdoff.h', 'rdfload.c' and 'rdfload.h' contain
-code which you may find useful. They retain the same interface as
-the previous version, so any code that used them previously should
-still work OK (maybe). 'rdoff.c' contains at the top a line:
-
-#define STRICT_ERRORS
-
-Comment this line out if you wish to use record types other than the
-7 predefined types; it will then not report such records as an error,
-but accept them gracefully, and read them byte for byte into
-a 'generic record' (see the definition of GenericRec in 'rdoff.h').
-
-If you are using these functions to write RDF modules (rather than
-just reading them), then please note the existance of a new function
-'rdfaddsegment(rdf_headerbuf,long)'. This must be called once for
-each segment in your object, to tell the header writing functions
-how long the segment is.
-
-
-BUGS
-====
-
-This product has recently undergone a major revision, and as such there
-are probably several bugs left over from the testing phase (although the
-previous version had quite a few that have now been fixed!). Could you
-please report any bugs to maintainers at the addresses below, including the
-following information:
-
-  - A description of the bug
-  - What you think the program should be doing
-  - Which programs you are using
-  - Which operating system you are using, and which C compiler was used to
-    compile the programs (or state that the pre-compiled versions were used).
-  - If appropriate, any of the following:
-    * source code (preferably cut down to a minimum that will still assemble
-      and show the bug)
-    * the output of rdfdump on produced modules (or send the module if the
-      problem is in code generated)
-    * exact descriptions of error messages/symptoms/etc
-
-
-TODO
-====
-
-There are still various things unimplemented that we would like to add.
-If you want to find out what these are, search near the top of each *.c
-file for a comment containing the word 'TODO'. A brief list is given here:
-
-- Improve the performace of ldrdf (there are several enhancements I can think
-  of that wouldn't be too hard to add)
-- Stop assuming that we're on a little endian machine
-- Check for more bugs
-
-
-MAINTAINERS
-===========
-
-Yuri Zaporozhets <r_tty@yahoo.co.uk> - primary maintainer
-Julian Hall <jules@dsf.org.uk> - original designer and author
--- a/nasmbuild/nasm-2.13rc9/rdoff/collectn.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/*
- * collectn.c - implements variable length pointer arrays [collections].
- *
- * This file is public domain.
- */
-
-#include "compiler.h"
-#include <stdlib.h>
-#include "collectn.h"
-
-void collection_init(Collection * c)
-{
-    int i;
-
-    for (i = 0; i < 32; i++)
-        c->p[i] = NULL;
-    c->next = NULL;
-}
-
-void **colln(Collection * c, int index)
-{
-    while (index >= 32) {
-        index -= 32;
-        if (c->next == NULL) {
-            c->next = malloc(sizeof(Collection));
-            collection_init(c->next);
-        }
-        c = c->next;
-    }
-    return &(c->p[index]);
-}
-
-void collection_reset(Collection * c)
-{
-    int i;
-
-    if (c->next) {
-        collection_reset(c->next);
-        free(c->next);
-    }
-
-    c->next = NULL;
-    for (i = 0; i < 32; i++)
-        c->p[i] = NULL;
-}
--- a/nasmbuild/nasm-2.13rc9/rdoff/collectn.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/*
- * collectn.h - header file for 'collection' abstract data type.
- *
- * This file is public domain, and does not come under the NASM license.
- * It, aint32_t with 'collectn.c' implements what is basically a variable
- * length array (of pointers).
- */
-
-#ifndef RDOFF_COLLECTN_H
-#define RDOFF_COLLECTN_H 1
-
-typedef struct tagCollection {
-    void *p[32];                /* array of pointers to objects */
-
-    struct tagCollection *next;
-} Collection;
-
-void collection_init(Collection * c);
-void **colln(Collection * c, int index);
-void collection_reset(Collection * c);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/rdoff/doc/Makefile	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-#
-# Make info documentation
-#
-
-AUXFILES = *.aux *.cp *.fn *.ky *.log *.pg *.toc *.tp *.vr *.dvi
-
-SRCS = rdoff.texi
-OUTS = rdoff.info rdoff.html rdoff.ps rdoff.pdf
-
-
-## Implicit rules
-%.html : %.texi
-	makeinfo --html $<
-
-%.dvi : %.texi
-	texi2dvi $<
-
-%.ps: %.dvi
-	dvips $<
-
-%.pdf: %.dvi
-	dvipdf $<
-
-
-## Explicit rules
-all: info
-
-info: rdoff.info
-
-html: rdoff.html
-
-ps: rdoff.ps
-
-pdf: rdoff.pdf
-
-clean:
-	rm -f $(OUTS) $(AUXFILES)
--- a/nasmbuild/nasm-2.13rc9/rdoff/doc/rdoff.texi	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-\input texinfo @c -*-texinfo-*-
-@c %**start of header
-@setfilename rdoff.info
-@settitle Relocatable Dynamic Object File Format (RDOFF)
-@afourpaper
-@c %**end of header
-
-@titlepage
-@title Relocatable Dynamic Object File Format (RDOFF)
-@author Yuri Zaporozhets @email{r_tty@@yahoo.co.uk}
-@author Julian Hall @email{jules@@dsf.org.uk}
-@end titlepage
-
-@ifinfo
-Copyright @copyright{} 2002-2015 Netwide Assembler Project.
-Written by Yuri Zaporozhets @email{r_tty@@yahoo.co.uk}
-Based on various sources and notes written by Julian Hall @email{jules@@dsf.org.uk}
-Distributed under GNU documentation license.
-@end ifinfo
-
-@ifnottex
-@node Top, Overview, (dir), (dir)
-@top RDOFF
-
-RDOFF is a Relocatable Dynamic Object File Format.
-
-@end ifnottex
-
-@menu
-* Overview::		Introduction.
-* Structure::		Structure of RDOFF file.
-* Utilities::		Description of RDOFF utilities.
-@end menu
-
-@node Overview
-@chapter Introduction
-
-RDOFF was designed initially to test the object-file production
-interface to NASM. It soon became apparent that it could be enhanced
-for use in serious applications due to its simplicity; code to load
-and execute an RDOFF object module is very simple. It also contains
-enhancements to allow it to be linked with a dynamic link library at
-either run- or load- time, depending on how complex you wish to make
-your loader.
-
-@node Structure
-@chapter Structure of RDOFF file
-
-RDOFF module consists of three parts:
-
-@itemize
-@item Master header
-@item Header (may be omited)
-@item Sections
-@end itemize
-
-@dfn{Master header} contains signature, version and size information.
-
-@dfn{Header} consists of zero or more @ref{Records, records}.
-
-@dfn{Sections} represent actual contents of the file. Each section is prepended
-by a section header.
-
-@node Records, , ,Structure
-@section Records that may appear in RDOFF header
-
-@menu
-* Relocation::		Relocation records.
-* Import::		Declaring external symbols.
-* Export::		Declaring public and exported symbols.
-* DLL::			Specifying a run-time library name.
-* BSS::			Reserving space in BSS section.
-* Segment relocation::	Complexity of relocation in segmented systems.
-* Far import::		External 'far' symbols.
-* Module name::		Specifying module name.
-* Common variable::	Declaring common variables.
-* Generic record::	Embedding general-purpose data into the header.
-@end menu
-
-@node Relocation
-@subsection Relocation records
-
-@node Import
-@subsection Declaring external and imported symbols
-
-@node Export
-@subsection Declaring public and exported symbols
-
-@node DLL
-@subsection Specifying a run-time library name
-
-@node BSS
-@subsection Reserving space in BSS section
-
-@node Segment relocation
-@subsection Complexity of relocation in segmented systems
-
-@node Far import
-@subsection External 'far' symbols.
-
-@node Module name
-@subsection Specifying module name.
-
-@node Common variable
-@subsection Declaring common variables.
-
-@node Generic record
-@subsection Embedding general-purpose data into the header.
-
-
-@node Utilities
-@chapter RDOFF utilities
-
-@menu
-* rdfdump::		Dump the contents of RDOFF file.
-* ldrdf::		RDOFF linker.
-* rdflib::		RDOFF librarian.
-* rdlar::		New RDOFF librarian/archiver.
-* rdx::			Load and execute RDOFF module.
-@end menu
-
-@node rdfdump
-@section @command{rdfdump} - dump the contents of RDOFF file
-
-@node ldrdf
-@section @command{ldrdf} - RDOFF linker
-
-@node rdflib
-@section @command{rdflib} - RDOFF librarian
-
-@node rdlar
-@section @command{rdlar} - new RDOFF librarian/archiver
-
-@node rdx
-@section @command{rdx} - load and execute RDOFF module
-
-@bye
--- a/nasmbuild/nasm-2.13rc9/rdoff/doc/v1-v2.txt	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-Differences between RDOFF versions 1 & 2
-========================================
-
-This document is designed primarily for people maintaining code which
-uses RDOFF version 1, and would like to upgrade that code to work
-with version 2.
-
-The main changes are summarised here:
-
-Overall format
-==============
-
-The overall format has changed somewhat since version 1, in order
-to make RDOFF more flexible. After the file type identifier (which
-has been changed to 'RDOFF2', obviously), there is now a 4 byte
-integer describing the length of the object module. This allows
-multiple objects to be concatenated, while the loader can easily
-build an index of the locations of each object. This isn't as
-pointless as it sounds; I'm using RDOFF in a microkernel operating
-system, and this is the ideal way of loading multiple driver modules
-at boot time.
-
-There are also no longer a fixed number of segments; instead there
-is a list of segments, immediately following the header.
-Each segment is preceded by a 10 byte header giving information about
-that segment. This header has the following format:
-
-Length	Description
-2	Type
-2	Number
-2	Reserved
-4	Length
-
-'Type' is a number describing what sort of segment it is (eg text, data,
-comment, debug info). See 'rdoff2.txt' for a list of the segment types.
-'Number' is the number used to refer to the segment in the header records.
-Not all segments will be loaded; it is only intended that one code
-and one data segment will be loaded into memory. It is possible, however,
-for a loaded segment to contain a reference to an unloaded segment.
-This is an error, and should be flagged at load time. Or maybe you should
-load the segment... its up to you, really.
-
-The segment's data immediately follows the end of the segment header.
-
-HEADER RECORDS
-==============
-
-All of the header records have changed in this version, but not
-substantially. Each record type has had a content-length code added,
-a single byte immediately following the type byte. This contains the
-length of the rest of the record (excluding the type and length bytes,
-but including the terminating nulls on any strings in the record).
-
-There are two new record types, Segment Relocation (6), and FAR import (7).
-The record formats are identical to Relocation (1) and import (2). They are
-only of real use on systems using segmented architectures. Systems using
-a flat model should treat FAR import (7) exactly the same as an import (2),
-and should either flag segment relocation as an error, or attempt to figure
-out whether it is a reference to a code or data symbol, and set the value
-referenced to the according selector value. I am opting for the former
-approach, and would recommend that others working on 32 bit flat systems
-do the same.
--- a/nasmbuild/nasm-2.13rc9/rdoff/hash.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,122 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * hash.h     Routines to calculate a CRC32 hash value
- *
- *   These routines donated to the NASM effort by Graeme Defty.
- */
-
-#include "compiler.h"
-
-#include "hash.h"
-
-const uint32_t consttab[] = {
-    0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,
-    0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,
-    0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,
-    0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,
-    0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,
-    0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,
-    0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,
-    0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,
-    0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,
-    0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,
-    0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,
-    0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,
-    0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,
-    0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,
-    0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,
-    0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,
-    0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,
-    0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,
-    0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,
-    0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,
-    0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,
-    0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,
-    0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,
-    0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,
-    0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,
-    0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,
-    0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,
-    0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,
-    0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,
-    0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,
-    0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,
-    0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,
-    0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,
-    0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,
-    0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,
-    0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,
-    0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,
-    0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,
-    0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,
-    0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,
-    0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,
-    0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,
-    0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,
-    0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,
-    0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,
-    0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,
-    0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,
-    0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,
-    0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,
-    0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,
-    0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,
-    0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,
-    0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,
-    0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,
-    0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,
-    0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,
-    0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,
-    0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,
-    0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,
-    0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,
-    0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,
-    0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,
-    0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,
-    0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D
-};
-
-uint32_t hash(const char *name)
-{
-    register const char *n;
-    register uint32_t hashval = 0xffffffff;
-
-    for (n = name; *n; n++)
-        hashval = (hashval >> 8) ^ consttab[(hashval ^ *n) & 0xff];
-
-    hashval ^= 0xffffffff;
-
-    return hashval;
-}
--- a/nasmbuild/nasm-2.13rc9/rdoff/hash.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-/* hash.h     Routines to calculate a CRC32 hash value
- *
- *   These routines donated to the NASM effort by Graeme Defty.
- *
- * The Netwide Assembler is copyright (C) 1996 Simon Tatham and
- * Julian Hall. All rights reserved. The software is
- * redistributable under the license given in the file "LICENSE"
- * distributed in the NASM archive.
- */
-
-#ifndef RDOFF_HASH_H
-#define RDOFF_HASH_H 1
-
-
-uint32_t hash(const char *name);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/rdoff/ldrdf.1	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-.TH LDRDF 1 "September 6, 1999" "Debian Project" "Debian Manual"
-.SH NAME
-ldrdf \- link RDOFF objects and libraries produced by rdflib(1)
-.SH SYNOPSIS
-.B ldrdf
-.RI "[-o " output-file ]
-.I object-file\c
-.RI "... [-l" library "...]"
-.SH DESCRIPTION
-.B ldrdf
-is a version of unix
-.BR ld (1)
-(or DOS LINK) for use with RDOFF files.  It is capable of linking RDOFF
-objects, and libraries produced with the
-.BR rdflib (1)
-utility.
-.PP
-Libraries must be specified with their path as no search is performed.
-Modules in libraries are not linked to the program unless they are
-referred to.
-.SH OPTIONS
-.TP
-.RI "-o " output-file
-Specify an output file.  The default output filename is
-.RI ' aout.rdx '.
-.TP
--v
-Increase verbosity level.  Currently 4 verbosity levels are available:
-default (which only prints error information), normal (which prints
-information about the produced object, -v), medium (which prints information
-about what the program is doing, -v -v) and high (which prints all available
-information, -v -v -v).
-.TP
--p
-Change alignment value to which multiple segments combigned into a single
-segment should be aligned (must be either 1, 2, 4, 8, 16, 32 or 256; default
-is 16).
-.SH AUTHORS
-Julian Hall <jules@earthcorp.com>.
-.PP
-This manual page was written by Matej Vela <vela@debian.org>.
--- a/nasmbuild/nasm-2.13rc9/rdoff/ldrdf.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1406 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * ldrdf.c - RDOFF Object File linker/loader main program.
- */
-
-/*
- * TODO:
- * - enhance search of required export symbols in libraries (now depends
- *   on modules order in library)
- * - keep a cache of symbol names in each library module so
- *   we don't have to constantly recheck the file
- * - general performance improvements
- *
- * BUGS & LIMITATIONS: this program doesn't support multiple code, data
- * or bss segments, therefore for 16 bit programs whose code, data or BSS
- * segment exceeds 64K in size, it will not work. This program probably
- * won't work if compiled by a 16 bit compiler. Try DJGPP if you're running
- * under DOS. '#define STINGY_MEMORY' may help a little.
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define RDOFF_UTILS
-
-#include "rdoff.h"
-#include "symtab.h"
-#include "collectn.h"
-#include "rdlib.h"
-#include "segtab.h"
-#include "nasmlib.h"
-
-#define LDRDF_VERSION "1.08"
-
-/* #define STINGY_MEMORY */
-
-/* =======================================================================
- * Types & macros that are private to this program
- */
-
-struct segment_infonode {
-    int dest_seg;               /* output segment to be placed into, -1 to
-                                   skip linking this segment */
-    int32_t reloc;                 /* segment's relocation factor */
-};
-
-struct modulenode {
-    rdffile f;                  /* the RDOFF file structure */
-    struct segment_infonode seginfo[RDF_MAXSEGS];       /* what are we doing
-                                                           with each segment? */
-    void *header;
-    char *name;
-    struct modulenode *next;
-    int32_t bss_reloc;
-};
-
-#include "ldsegs.h"
-
-#define newstr(str) strcpy(malloc(strlen(str) + 1),str)
-#define newstrcat(s1,s2) strcat(strcpy(malloc(strlen(s1)+strlen(s2)+1),s1),s2)
-
-/* ==========================================================================
- * Function prototypes of private utility functions
- */
-
-void processmodule(const char *filename, struct modulenode *mod);
-int allocnewseg(uint16_t type, uint16_t reserved);
-int findsegment(uint16_t type, uint16_t reserved);
-void symtab_add(const char *symbol, int segment, int32_t offset);
-int symtab_get(const char *symbol, int *segment, int32_t *offset);
-
-/* =========================================================================
- * Global data structures.
- */
-
-/* a linked list of modules that will be included in the output */
-struct modulenode *modules = NULL;
-struct modulenode *lastmodule = NULL;
-
-/* a linked list of libraries to be searched for unresolved imported symbols */
-struct librarynode *libraries = NULL;
-struct librarynode *lastlib = NULL;
-
-/* the symbol table */
-void *symtab = NULL;
-
-/* objects search path */
-char *objpath = NULL;
-
-/* libraries search path */
-char *libpath = NULL;
-
-/* file to embed as a generic record */
-char *generic_rec_file = NULL;
-
-/* module name to be added at the beginning of output file */
-char *modname_specified = NULL;
-
-/* error file */
-static FILE *error_file;
-
-/* the header of the output file, built up stage by stage */
-rdf_headerbuf *newheader = NULL;
-
-/* The current state of segment allocation, including information about
- * which output segment numbers have been allocated, and their types and
- * amount of data which has already been allocated inside them.
- */
-struct SegmentHeaderRec outputseg[RDF_MAXSEGS];
-int nsegs = 0;
-int32_t bss_length;
-
-/* global options which affect how the program behaves */
-struct ldrdfoptions {
-    int verbose;
-    int align;
-    int dynalink;
-    int strip;
-    int respfile;
-    int stderr_redir;
-    int objpath;
-    int libpath;
-} options;
-
-int errorcount = 0;             /* determines main program exit status */
-
-/* =========================================================================
- * Utility functions
- */
-
-/*
- * initsegments()
- *
- * sets up segments 0, 1, and 2, the initial code data and bss segments
- */
-static void initsegments(void)
-{
-    nsegs = 3;
-    outputseg[0].type = 1;
-    outputseg[0].number = 0;
-    outputseg[0].reserved = 0;
-    outputseg[0].length = 0;
-    outputseg[1].type = 2;
-    outputseg[1].number = 1;
-    outputseg[1].reserved = 0;
-    outputseg[1].length = 0;
-    outputseg[2].type = 0xFFFF; /* reserved segment type */
-    outputseg[2].number = 2;
-    outputseg[2].reserved = 0;
-    outputseg[2].length = 0;
-    bss_length = 0;
-}
-
-/*
- * loadmodule()
- *
- * Determine the characteristics of a module, and decide what to do with
- * each segment it contains (including determining destination segments and
- * relocation factors for segments that	are kept).
- */
-static void loadmodule(const char *filename)
-{
-    if (options.verbose)
-        printf("loading `%s'\n", filename);
-
-    /* allocate a new module entry on the end of the modules list */
-    if (!modules) {
-        modules = malloc(sizeof(*modules));
-        lastmodule = modules;
-    } else {
-        lastmodule->next = malloc(sizeof(*modules));
-        lastmodule = lastmodule->next;
-    }
-
-    if (!lastmodule) {
-        fprintf(stderr, "ldrdf: out of memory\n");
-        exit(1);
-    }
-
-    /* open the file using 'rdfopen', which returns nonzero on error */
-    if (rdfopen(&lastmodule->f, filename) != 0) {
-        rdfperror("ldrdf", filename);
-        exit(1);
-    }
-
-    /*
-     * store information about the module, and determine what segments
-     * it contains, and what we should do with them (determine relocation
-     * factor if we decide to keep them)
-     */
-    lastmodule->header = NULL;
-    lastmodule->name = strdup(filename);
-    lastmodule->next = NULL;
-
-    processmodule(filename, lastmodule);
-}
-
-/*
- * processmodule()
- *
- * step through each segment, determine what exactly we're doing with
- * it, and if we intend to keep it, determine (a) which segment to
- * put it in and (b) whereabouts in that segment it will end up.
- * (b) is fairly easy, because we're now keeping track of how big each
- * segment in our output file is...
- */
-void processmodule(const char *filename, struct modulenode *mod)
-{
-    struct segconfig sconf;
-    int seg, outseg;
-    void *header;
-    rdfheaderrec *hr;
-    int32_t bssamount = 0;
-    int bss_was_referenced = 0;
-
-    memset(&sconf, 0, sizeof sconf);
-
-    for (seg = 0; seg < mod->f.nsegs; seg++) {
-        /*
-         * get the segment configuration for this type from the segment
-         * table. getsegconfig() is a macro, defined in ldsegs.h.
-         */
-        getsegconfig(sconf, mod->f.seg[seg].type);
-
-        if (options.verbose > 1) {
-            printf("%s %04x [%04x:%10s] ", filename,
-                   mod->f.seg[seg].number, mod->f.seg[seg].type,
-                   sconf.typedesc);
-        }
-        /*
-         * sconf->dowhat tells us what to do with a segment of this type.
-         */
-        switch (sconf.dowhat) {
-        case SEG_IGNORE:
-            /*
-             * Set destination segment to -1, to indicate that this segment
-             * should be ignored for the purpose of output, ie it is left
-             * out of the linked executable.
-             */
-            mod->seginfo[seg].dest_seg = -1;
-            if (options.verbose > 1)
-                printf("IGNORED\n");
-            break;
-
-        case SEG_NEWSEG:
-            /*
-             * The configuration tells us to create a new segment for
-             * each occurrence of this segment type.
-             */
-            outseg = allocnewseg(sconf.mergetype,
-                                 mod->f.seg[seg].reserved);
-            mod->seginfo[seg].dest_seg = outseg;
-            mod->seginfo[seg].reloc = 0;
-            outputseg[outseg].length = mod->f.seg[seg].length;
-            if (options.verbose > 1)
-                printf("=> %04x:%08"PRIx32" (+%04"PRIx32")\n", outseg,
-                       mod->seginfo[seg].reloc, mod->f.seg[seg].length);
-            break;
-
-        case SEG_MERGE:
-            /*
-             * The configuration tells us to merge the segment with
-             * a previously existing segment of type 'sconf.mergetype',
-             * if one exists. Otherwise a new segment is created.
-             * This is handled transparently by 'findsegment()'.
-             */
-            outseg = findsegment(sconf.mergetype,
-                                 mod->f.seg[seg].reserved);
-            mod->seginfo[seg].dest_seg = outseg;
-
-            /*
-             * We need to add alignment to these segments.
-             */
-            if (outputseg[outseg].length % options.align != 0)
-                outputseg[outseg].length +=
-                    options.align -
-                    (outputseg[outseg].length % options.align);
-
-            mod->seginfo[seg].reloc = outputseg[outseg].length;
-            outputseg[outseg].length += mod->f.seg[seg].length;
-
-            if (options.verbose > 1)
-                printf("=> %04x:%08"PRIx32" (+%04"PRIx32")\n", outseg,
-                       mod->seginfo[seg].reloc, mod->f.seg[seg].length);
-        }
-
-    }
-
-    /*
-     * extract symbols from the header, and dump them into the
-     * symbol table
-     */
-    header = malloc(mod->f.header_len);
-    if (!header) {
-        fprintf(stderr, "ldrdf: not enough memory\n");
-        exit(1);
-    }
-    if (rdfloadseg(&mod->f, RDOFF_HEADER, header)) {
-        rdfperror("ldrdf", filename);
-        exit(1);
-    }
-
-    while ((hr = rdfgetheaderrec(&mod->f))) {
-        switch (hr->type) {
-        case RDFREC_IMPORT:    /* imported symbol */
-        case RDFREC_FARIMPORT:
-            /* Define with seg = -1 */
-            symtab_add(hr->i.label, -1, 0);
-            break;
-
-        case RDFREC_GLOBAL:{   /* exported symbol */
-                int destseg;
-                int32_t destreloc;
-
-                if (hr->e.segment == 2) {
-                    bss_was_referenced = 1;
-                    destreloc = bss_length;
-                    if (destreloc % options.align != 0)
-                        destreloc +=
-                            options.align - (destreloc % options.align);
-                    destseg = 2;
-                } else {
-                    if ((destseg =
-                         mod->seginfo[(int)hr->e.segment].dest_seg) == -1)
-                        continue;
-                    destreloc = mod->seginfo[(int)hr->e.segment].reloc;
-                }
-                symtab_add(hr->e.label, destseg, destreloc + hr->e.offset);
-                break;
-            }
-
-        case RDFREC_BSS:       /* BSS reservation */
-            /*
-             * first, amalgamate all BSS reservations in this module
-             * into one, because we allow this in the output format.
-             */
-            bssamount += hr->b.amount;
-            break;
-
-        case RDFREC_COMMON:{   /* Common variable */
-                symtabEnt *ste = symtabFind(symtab, hr->c.label);
-
-                /* Is the symbol already in the table? */
-                if (ste)
-                    break;
-
-                /* Align the variable */
-                if (bss_length % hr->c.align != 0)
-                    bss_length += hr->c.align - (bss_length % hr->c.align);
-                if (options.verbose > 1) {
-                    printf("%s %04x common '%s' => 0002:%08"PRIx32" (+%04"PRIx32")\n",
-                           filename, hr->c.segment, hr->c.label,
-                           bss_length, hr->c.size);
-                }
-
-                symtab_add(hr->c.label, 2, bss_length);
-                mod->bss_reloc = bss_length;
-                bss_length += hr->c.size;
-                break;
-            }
-        }
-    }
-
-    if (bssamount != 0 || bss_was_referenced) {
-        /*
-         * handle the BSS segment - first pad the existing bss length
-         * to the correct alignment, then store the length in bss_reloc
-         * for this module. Then add this module's BSS length onto
-         * bss_length.
-         */
-        if (bss_length % options.align != 0)
-            bss_length += options.align - (bss_length % options.align);
-
-        mod->bss_reloc = bss_length;
-        if (options.verbose > 1) {
-            printf("%s 0002 [            BSS] => 0002:%08"PRIx32" (+%04"PRIx32")\n",
-                   filename, bss_length, bssamount);
-        }
-        bss_length += bssamount;
-    }
-#ifdef STINGY_MEMORY
-    /*
-     * we free the header buffer here, to save memory later.
-     * this isn't efficient, but probably halves the memory usage
-     * of this program...
-     */
-    mod->f.header_loc = NULL;
-    free(header);
-
-#endif
-
-}
-
-/*
- * Return 1 if a given module is in the list, 0 otherwise.
- */
-static int lookformodule(const char *name)
-{
-    struct modulenode *curr = modules;
-
-    while (curr) {
-        if (!strcmp(name, curr->name))
-            return 1;
-        curr = curr->next;
-    }
-    return 0;
-}
-
-/*
- * allocnewseg()
- * findsegment()
- *
- * These functions manipulate the array of output segments, and are used
- * by processmodule(). allocnewseg() allocates a segment in the array,
- * initialising it to be empty. findsegment() first scans the array for
- * a segment of the type requested, and if one isn't found allocates a
- * new one.
- */
-int allocnewseg(uint16_t type, uint16_t reserved)
-{
-    outputseg[nsegs].type = type;
-    outputseg[nsegs].number = nsegs;
-    outputseg[nsegs].reserved = reserved;
-    outputseg[nsegs].length = 0;
-    outputseg[nsegs].offset = 0;
-    outputseg[nsegs].data = NULL;
-
-    return nsegs++;
-}
-
-int findsegment(uint16_t type, uint16_t reserved)
-{
-    int i;
-
-    for (i = 0; i < nsegs; i++)
-        if (outputseg[i].type == type)
-            return i;
-
-    return allocnewseg(type, reserved);
-}
-
-/*
- * symtab_add()
- *
- * inserts a symbol into the global symbol table, which associates symbol
- * names either with addresses, or a marker that the symbol hasn't been
- * resolved yet, or possibly that the symbol has been defined as
- * contained in a dynamic [load time/run time] linked library.
- *
- * segment = -1 => not yet defined
- * segment = -2 => defined as dll symbol
- *
- * If the symbol is already defined, and the new segment >= 0, then
- * if the original segment was < 0 the symbol is redefined, otherwise
- * a duplicate symbol warning is issued. If new segment == -1, this
- * routine won't change a previously existing symbol. It will change
- * to segment = -2 only if the segment was previously < 0.
- */
-void symtab_add(const char *symbol, int segment, int32_t offset)
-{
-    symtabEnt *ste;
-
-    ste = symtabFind(symtab, symbol);
-    if (ste) {
-        if (ste->segment >= 0) {
-            /*
-             * symbol previously defined
-             */
-            if (segment < 0)
-                return;
-            fprintf(error_file, "warning: `%s' redefined\n", symbol);
-            return;
-        }
-
-        /*
-         * somebody wanted the symbol, and put an undefined symbol
-         * marker into the table
-         */
-        if (segment == -1)
-            return;
-        /*
-         * we have more information now - update the symbol's entry
-         */
-        ste->segment = segment;
-        ste->offset = offset;
-        ste->flags = 0;
-        return;
-    }
-    /*
-     * this is the first declaration of this symbol
-     */
-    ste = malloc(sizeof(symtabEnt));
-    if (!ste) {
-        fprintf(stderr, "ldrdf: out of memory\n");
-        exit(1);
-    }
-    ste->name = strdup(symbol);
-    ste->segment = segment;
-    ste->offset = offset;
-    ste->flags = 0;
-    symtabInsert(symtab, ste);
-}
-
-/*
- * symtab_get()
- *
- * Retrieves the values associated with a symbol. Undefined symbols
- * are assumed to have -1:0 associated. Returns 1 if the symbol was
- * successfully located.
- */
-int symtab_get(const char *symbol, int *segment, int32_t *offset)
-{
-    symtabEnt *ste = symtabFind(symtab, symbol);
-    if (!ste) {
-        *segment = -1;
-        *offset = 0;
-        return 0;
-    } else {
-        *segment = ste->segment;
-        *offset = ste->offset;
-        return 1;
-    }
-}
-
-/*
- * add_library()
- *
- * checks that a library can be opened and is in the correct format,
- * then adds it to the linked list of libraries.
- */
-static void add_library(const char *name)
-{
-    if (rdl_verify(name)) {
-        rdl_perror("ldrdf", name);
-        errorcount++;
-        return;
-    }
-    if (!libraries) {
-        lastlib = libraries = malloc(sizeof(*libraries));
-        if (!libraries) {
-            fprintf(stderr, "ldrdf: out of memory\n");
-            exit(1);
-        }
-    } else {
-        lastlib->next = malloc(sizeof(*libraries));
-        if (!lastlib->next) {
-            fprintf(stderr, "ldrdf: out of memory\n");
-            exit(1);
-        }
-        lastlib = lastlib->next;
-    }
-    lastlib->next = NULL;
-    if (rdl_open(lastlib, name)) {
-        rdl_perror("ldrdf", name);
-        errorcount++;
-        return;
-    }
-}
-
-/*
- * search_libraries()
- *
- * scans through the list of libraries, attempting to match symbols
- * defined in library modules against symbols that are referenced but
- * not defined (segment = -1 in the symbol table)
- *
- * returns 1 if any extra library modules are included, indicating that
- * another pass through the library list should be made (possibly).
- */
-static int search_libraries(void)
-{
-    struct librarynode *cur;
-    rdffile f;
-    int i;
-    void *header;
-    int segment;
-    int32_t offset;
-    int doneanything = 0, pass = 1, keepfile;
-    rdfheaderrec *hr;
-
-    cur = libraries;
-
-    while (cur) {
-        if (options.verbose > 2)
-            printf("scanning library `%s', pass %d...\n", cur->name, pass);
-
-        for (i = 0; rdl_openmodule(cur, i, &f) == 0; i++) {
-            if (pass == 2 && lookformodule(f.name))
-                continue;
-
-            if (options.verbose > 3)
-                printf("  looking in module `%s'\n", f.name);
-
-            header = malloc(f.header_len);
-            if (!header) {
-                fprintf(stderr, "ldrdf: not enough memory\n");
-                exit(1);
-            }
-            if (rdfloadseg(&f, RDOFF_HEADER, header)) {
-                rdfperror("ldrdf", f.name);
-                errorcount++;
-                return 0;
-            }
-
-            keepfile = 0;
-
-            while ((hr = rdfgetheaderrec(&f))) {
-                /* We're only interested in exports, so skip others */
-                if (hr->type != RDFREC_GLOBAL)
-                    continue;
-
-                /*
-                 * If the symbol is marked as SYM_GLOBAL, somebody will be
-                 * definitely interested in it..
-                 */
-                if ((hr->e.flags & SYM_GLOBAL) == 0) {
-                    /*
-                     * otherwise the symbol is just public. Find it in
-                     * the symbol table. If the symbol isn't defined, we
-                     * aren't interested, so go on to the next.
-                     * If it is defined as anything but -1, we're also not
-                     * interested. But if it is defined as -1, insert this
-                     * module into the list of modules to use, and go
-                     * immediately on to the next module...
-                     */
-                    if (!symtab_get(hr->e.label, &segment, &offset)
-                        || segment != -1)
-                        continue;
-                }
-
-                doneanything = 1;
-                keepfile = 1;
-
-                /*
-                 * as there are undefined symbols, we can assume that
-                 * there are modules on the module list by the time
-                 * we get here.
-                 */
-                lastmodule->next = malloc(sizeof(*lastmodule->next));
-                if (!lastmodule->next) {
-                    fprintf(stderr, "ldrdf: not enough memory\n");
-                    exit(1);
-                }
-                lastmodule = lastmodule->next;
-                memcpy(&lastmodule->f, &f, sizeof(f));
-                lastmodule->name = strdup(f.name);
-                lastmodule->next = NULL;
-                processmodule(f.name, lastmodule);
-                break;
-            }
-            if (!keepfile) {
-                free(f.name);
-                f.name = NULL;
-                f.fp = NULL;
-            }
-        }
-        if (rdl_error != 0 && rdl_error != RDL_ENOTFOUND)
-            rdl_perror("ldrdf", cur->name);
-
-        cur = cur->next;
-        if (cur == NULL && pass == 1) {
-            cur = libraries;
-            pass++;
-        }
-    }
-
-    return doneanything;
-}
-
-/*
- * write_output()
- *
- * this takes the linked list of modules, and walks through it, merging
- * all the modules into a single output module, and then writes this to a
- * file.
- */
-static void write_output(const char *filename)
-{
-    FILE *f;
-    rdf_headerbuf *rdfheader;
-    struct modulenode *cur;
-    int i, n, availableseg, seg, localseg, isrelative;
-    void *header;
-    rdfheaderrec *hr, newrec;
-    symtabEnt *se;
-    segtab segs;
-    int32_t offset;
-    uint8_t *data;
-
-    if ((f = fopen(filename, "wb")) == NULL) {
-        fprintf(stderr, "ldrdf: couldn't open %s for output\n", filename);
-        exit(1);
-    }
-    if ((rdfheader = rdfnewheader()) == NULL) {
-        fprintf(stderr, "ldrdf: out of memory\n");
-        exit(1);
-    }
-
-    /*
-     * If '-g' option was given, first record in output file will be a
-     * `generic' record, filled with a given file content.
-     * This can be useful, for example, when constructing multiboot
-     * compliant kernels.
-     */
-    if (generic_rec_file) {
-        FILE *ff;
-
-        if (options.verbose)
-            printf("\nadding generic record from binary file %s\n",
-                   generic_rec_file);
-
-        hr = (rdfheaderrec *) malloc(sizeof(struct GenericRec));
-        if ((ff = fopen(generic_rec_file, "r")) == NULL) {
-            fprintf(stderr, "ldrdf: couldn't open %s for input\n",
-                    generic_rec_file);
-            exit(1);
-        }
-        n = fread(hr->g.data, 1, sizeof(hr->g.data), ff);
-        fseek(ff, 0, SEEK_END);
-        if (ftell(ff) > (long)sizeof(hr->g.data)) {
-            fprintf(error_file,
-                    "warning: maximum generic record size is %u, "
-		    "rest of file ignored\n",
-                    (unsigned int)sizeof(hr->g.data));
-        }
-        fclose(ff);
-
-        hr->g.type = RDFREC_GENERIC;
-        hr->g.reclen = n;
-        rdfaddheader(rdfheader, hr);
-        free(hr);
-    }
-
-    /*
-     * Add module name record if `-mn' option was given
-     */
-    if (modname_specified) {
-	n = strlen(modname_specified);
-
-	if ((n < 1) || (n >= MODLIB_NAME_MAX)) {
-            fprintf(stderr, "ldrdf: invalid length of module name `%s'\n",
-        	modname_specified);
-            exit(1);
-        }
-
-        if (options.verbose)
-            printf("\nadding module name record %s\n", modname_specified);
-
-        hr = (rdfheaderrec *) malloc(sizeof(struct ModRec));
-	hr->m.type = RDFREC_MODNAME;
-        hr->m.reclen = n + 1;
-        strcpy(hr->m.modname, modname_specified);
-        rdfaddheader(rdfheader, hr);
-        free(hr);
-    }
-
-
-    if (options.verbose)
-        printf("\nbuilding output module (%d segments)\n", nsegs);
-
-    /*
-     * Allocate the memory for the segments. We may be better off
-     * building the output module one segment at a time when running
-     * under 16 bit DOS, but that would be a slower way of doing this.
-     * And you could always use DJGPP...
-     */
-    for (i = 0; i < nsegs; i++) {
-        outputseg[i].data = NULL;
-        if (!outputseg[i].length)
-            continue;
-        outputseg[i].data = malloc(outputseg[i].length);
-        if (!outputseg[i].data) {
-            fprintf(stderr, "ldrdf: out of memory\n");
-            exit(1);
-        }
-    }
-
-    /*
-     * initialise availableseg, used to allocate segment numbers for
-     * imported and exported labels...
-     */
-    availableseg = nsegs;
-
-    /*
-     * Step through the modules, performing required actions on each one
-     */
-    for (cur = modules; cur; cur = cur->next) {
-        /*
-         * Read the actual segment contents into the correct places in
-         * the newly allocated segments
-         */
-
-        for (i = 0; i < cur->f.nsegs; i++) {
-            int dest = cur->seginfo[i].dest_seg;
-
-            if (dest == -1)
-                continue;
-            if (rdfloadseg(&cur->f, i,
-                           outputseg[dest].data + cur->seginfo[i].reloc)) {
-                rdfperror("ldrdf", cur->name);
-                exit(1);
-            }
-        }
-
-        /*
-         * Perform fixups, and add new header records where required
-         */
-
-        header = malloc(cur->f.header_len);
-        if (!header) {
-            fprintf(stderr, "ldrdf: out of memory\n");
-            exit(1);
-        }
-
-        if (cur->f.header_loc)
-            rdfheaderrewind(&cur->f);
-        else if (rdfloadseg(&cur->f, RDOFF_HEADER, header)) {
-            rdfperror("ldrdf", cur->name);
-            exit(1);
-        }
-
-        /*
-         * we need to create a local segment number -> location
-         * table for the segments in this module.
-         */
-        init_seglocations(&segs);
-        for (i = 0; i < cur->f.nsegs; i++) {
-            add_seglocation(&segs, cur->f.seg[i].number,
-                            cur->seginfo[i].dest_seg,
-                            cur->seginfo[i].reloc);
-        }
-        /*
-         * and the BSS segment (doh!)
-         */
-        add_seglocation(&segs, 2, 2, cur->bss_reloc);
-
-        while ((hr = rdfgetheaderrec(&cur->f))) {
-            switch (hr->type) {
-            case RDFREC_RELOC: /* relocation record - need to do a fixup */
-                /*
-                 * First correct the offset stored in the segment from
-                 * the start of the segment (which may well have changed).
-                 *
-                 * To do this we add to the number stored the relocation
-                 * factor associated with the segment that contains the
-                 * target segment.
-                 *
-                 * The relocation could be a relative relocation, in which
-                 * case we have to first subtract the amount we've relocated
-                 * the containing segment by.
-                 */
-                if (!get_seglocation(&segs, hr->r.refseg, &seg, &offset)) {
-                    fprintf(stderr,
-                            "%s: reloc to undefined segment %04x\n",
-                            cur->name, (int)hr->r.refseg);
-                    errorcount++;
-                    break;
-                }
-
-                isrelative =
-                    (hr->r.segment & RDOFF_RELATIVEMASK) ==
-                    RDOFF_RELATIVEMASK;
-                hr->r.segment &= (RDOFF_RELATIVEMASK - 1);
-
-                if (hr->r.segment == 2 ||
-                    (localseg =
-                     rdffindsegment(&cur->f, hr->r.segment)) == -1) {
-                    fprintf(stderr, "%s: reloc from %s segment (%d)\n",
-                            cur->name,
-                            hr->r.segment == 2 ? "BSS" : "unknown",
-                            hr->r.segment);
-                    errorcount++;
-                    break;
-                }
-
-                if (hr->r.length != 1 && hr->r.length != 2 &&
-                    hr->r.length != 4) {
-                    fprintf(stderr, "%s: nonstandard length reloc "
-                            "(%d bytes)\n", cur->name, hr->r.length);
-                    errorcount++;
-                    break;
-                }
-
-                /*
-                 * okay, now the relocation is in the segment pointed to by
-                 * cur->seginfo[localseg], and we know everything else is
-                 * okay to go ahead and do the relocation
-                 */
-                data = outputseg[cur->seginfo[localseg].dest_seg].data;
-                data += cur->seginfo[localseg].reloc + hr->r.offset;
-
-                /*
-                 * data now points to the reference that needs
-                 * relocation. Calculate the relocation factor.
-                 * Factor is:
-                 *      offset of referred object in segment [in offset]
-                 *      (- relocation of localseg, if ref is relative)
-                 * For simplicity, the result is stored in 'offset'.
-                 * Then add 'offset' onto the value at data.
-                 */
-
-                if (isrelative)
-                    offset -= cur->seginfo[localseg].reloc;
-                switch (hr->r.length) {
-                case 1:
-                    offset += *data;
-                    if (offset < -127 || offset > 128)
-                        fprintf(error_file,
-                                "warning: relocation out of range "
-                                "at %s(%02x:%08"PRIx32")\n", cur->name,
-                                (int)hr->r.segment, hr->r.offset);
-                    *data = (char)offset;
-                    break;
-                case 2:
-                    offset += *(int16_t *)data;
-                    if (offset < -32767 || offset > 32768)
-                        fprintf(error_file,
-                                "warning: relocation out of range "
-                                "at %s(%02x:%08"PRIx32")\n", cur->name,
-                                (int)hr->r.segment, hr->r.offset);
-                    *(int16_t *)data = (int16_t)offset;
-                    break;
-                case 4:
-                    *(int32_t *)data += offset;
-                    /* we can't easily detect overflow on this one */
-                    break;
-                }
-
-                /*
-                 * If the relocation was relative between two symbols in
-                 * the same segment, then we're done.
-                 *
-                 * Otherwise, we need to output a new relocation record
-                 * with the references updated segment and offset...
-                 */
-                if (!isrelative || cur->seginfo[localseg].dest_seg != seg) {
-                    hr->r.segment = cur->seginfo[localseg].dest_seg;
-                    hr->r.offset += cur->seginfo[localseg].reloc;
-                    hr->r.refseg = seg;
-                    if (isrelative)
-                        hr->r.segment += RDOFF_RELATIVEMASK;
-                    rdfaddheader(rdfheader, hr);
-                }
-                break;
-
-            case RDFREC_IMPORT:        /* import symbol */
-            case RDFREC_FARIMPORT:
-                /*
-                 * scan the global symbol table for the symbol
-                 * and associate its location with the segment number
-                 * for this module
-                 */
-                se = symtabFind(symtab, hr->i.label);
-                if (!se || se->segment == -1) {
-                    if (!options.dynalink && !(hr->i.flags & SYM_IMPORT)) {
-                        fprintf(error_file,
-                                "error: unresolved reference to `%s'"
-                                " in module `%s'\n", hr->i.label,
-                                cur->name);
-                        errorcount++;
-                    }
-                    /*
-                     * we need to allocate a segment number for this
-                     * symbol, and store it in the symbol table for
-                     * future reference
-                     */
-                    if (!se) {
-                        se = malloc(sizeof(*se));
-                        if (!se) {
-                            fprintf(stderr, "ldrdf: out of memory\n");
-                            exit(1);
-                        }
-                        se->name = strdup(hr->i.label);
-                        se->flags = 0;
-                        se->segment = availableseg++;
-                        se->offset = 0;
-                        symtabInsert(symtab, se);
-                    } else {
-                        se->segment = availableseg++;
-                        se->offset = 0;
-                    }
-                    /*
-                     * output a header record that imports it to the
-                     * recently allocated segment number...
-                     */
-                    newrec = *hr;
-                    newrec.i.segment = se->segment;
-                    rdfaddheader(rdfheader, &newrec);
-                }
-
-                add_seglocation(&segs, hr->i.segment, se->segment,
-                                se->offset);
-                break;
-
-            case RDFREC_GLOBAL:        /* export symbol */
-                /*
-                 * need to insert an export for this symbol into the new
-                 * header, unless we're stripping symbols. Even if we're
-                 * stripping, put the symbol if it's marked as SYM_GLOBAL.
-                 */
-                if (options.strip && !(hr->e.flags & SYM_GLOBAL))
-                    break;
-
-                if (hr->e.segment == 2) {
-                    seg = 2;
-                    offset = cur->bss_reloc;
-                } else {
-                    localseg = rdffindsegment(&cur->f, hr->e.segment);
-                    if (localseg == -1) {
-                        fprintf(stderr, "%s: exported symbol `%s' from "
-                                "unrecognised segment\n", cur->name,
-                                hr->e.label);
-                        errorcount++;
-                        break;
-                    }
-                    offset = cur->seginfo[localseg].reloc;
-                    seg = cur->seginfo[localseg].dest_seg;
-                }
-
-                hr->e.segment = seg;
-                hr->e.offset += offset;
-                rdfaddheader(rdfheader, hr);
-                break;
-
-            case RDFREC_MODNAME:       /* module name */
-                /*
-                 * Insert module name record if export symbols
-                 * are not stripped.
-                 * If module name begins with '$' - insert it anyway.
-                 */
-                if (options.strip && hr->m.modname[0] != '$')
-                    break;
-                rdfaddheader(rdfheader, hr);
-                break;
-
-            case RDFREC_DLL:   /* DLL name */
-                /*
-                 * Insert DLL name if it begins with '$'
-                 */
-                if (hr->d.libname[0] != '$')
-                    break;
-                rdfaddheader(rdfheader, hr);
-                break;
-
-            case RDFREC_SEGRELOC:      /* segment fixup */
-                /*
-                 * modify the segment numbers if necessary, and
-                 * pass straight through to the output module header
-                 *
-                 * *** FIXME ***
-                 */
-                if (hr->r.segment == 2) {
-                    fprintf(stderr, "%s: segment fixup in BSS section\n",
-                            cur->name);
-                    errorcount++;
-                    break;
-                }
-                localseg = rdffindsegment(&cur->f, hr->r.segment);
-                if (localseg == -1) {
-                    fprintf(stderr, "%s: segment fixup in unrecognised"
-                            " segment (%d)\n", cur->name, hr->r.segment);
-                    errorcount++;
-                    break;
-                }
-                hr->r.segment = cur->seginfo[localseg].dest_seg;
-                hr->r.offset += cur->seginfo[localseg].reloc;
-
-                if (!get_seglocation(&segs, hr->r.refseg, &seg, &offset)) {
-                    fprintf(stderr, "%s: segment fixup to undefined "
-                            "segment %04x\n", cur->name,
-                            (int)hr->r.refseg);
-                    errorcount++;
-                    break;
-                }
-                hr->r.refseg = seg;
-                rdfaddheader(rdfheader, hr);
-                break;
-
-            case RDFREC_COMMON:        /* Common variable */
-                /* Is this symbol already in the table? */
-                se = symtabFind(symtab, hr->c.label);
-                if (!se) {
-                    printf("%s is not in symtab yet\n", hr->c.label);
-                    break;
-                }
-                /* Add segment location */
-                add_seglocation(&segs, hr->c.segment, se->segment,
-                                se->offset);
-                break;
-            }
-        }
-
-        free(header);
-        done_seglocations(&segs);
-
-    }
-
-    /*
-     * combined BSS reservation for the entire results
-     */
-    newrec.type = RDFREC_BSS;
-    newrec.b.reclen = 4;
-    newrec.b.amount = bss_length;
-    rdfaddheader(rdfheader, &newrec);
-
-    /*
-     * Write the header
-     */
-    for (i = 0; i < nsegs; i++) {
-        if (i == 2)
-            continue;
-        rdfaddsegment(rdfheader, outputseg[i].length);
-    }
-
-    rdfwriteheader(f, rdfheader);
-    rdfdoneheader(rdfheader);
-
-    /*
-     * Step through the segments, one at a time, writing out into
-     * the output file
-     */
-    for (i = 0; i < nsegs; i++) {
-        uint16_t s;
-        int32_t l;
-
-        if (i == 2)
-            continue;
-
-        s = translateint16_t(outputseg[i].type);
-        fwrite(&s, 2, 1, f);
-        s = translateint16_t(outputseg[i].number);
-        fwrite(&s, 2, 1, f);
-        s = translateint16_t(outputseg[i].reserved);
-        fwrite(&s, 2, 1, f);
-        l = translateint32_t(outputseg[i].length);
-        fwrite(&l, 4, 1, f);
-
-        fwrite(outputseg[i].data, outputseg[i].length, 1, f);
-    }
-
-    fwritezero(10, f);
-}
-
-/* =========================================================================
- * Main program
- */
-
-static void usage(void)
-{
-    printf("usage:\n"
-           "   ldrdf [options] object modules ... [-llibrary ...]\n"
-           "   ldrdf -r\n"
-           "options:\n"
-           "   -v[=n]          increase verbosity by 1, or set it to n\n"
-           "   -a nn           set segment alignment value (default 16)\n"
-           "   -s              strip public symbols\n"
-           "   -dy             Unix-style dynamic linking\n"
-           "   -o name         write output in file 'name'\n"
-           "   -j path         specify objects search path\n"
-           "   -L path         specify libraries search path\n"
-           "   -g file         embed 'file' as a first header record with type 'generic'\n"
-           "   -mn name        add module name record at the beginning of output file\n");
-    exit(0);
-}
-
-int main(int argc, char **argv)
-{
-    char *outname = "aout.rdf";
-    int moduleloaded = 0;
-    char *respstrings[128] = { 0, };
-
-    options.verbose = 0;
-    options.align = 16;
-    options.dynalink = 0;
-    options.strip = 0;
-
-    error_file = stderr;
-
-    argc--, argv++;
-    if (argc == 0)
-        usage();
-    while (argc && *argv && **argv == '-' && argv[0][1] != 'l') {
-        switch (argv[0][1]) {
-        case 'r':
-            printf("ldrdf (linker for RDF files) version " LDRDF_VERSION
-                   "\n");
-            printf("RDOFF2 revision %s\n", RDOFF2_REVISION);
-            exit(0);
-        case 'v':
-            if (argv[0][2] == '=') {
-                options.verbose = argv[0][3] - '0';
-                if (options.verbose < 0 || options.verbose > 9) {
-                    fprintf(stderr,
-                            "ldrdf: verbosity level must be a number"
-                            " between 0 and 9\n");
-                    exit(1);
-                }
-            } else
-                options.verbose++;
-            break;
-        case 'a':
-            options.align = atoi(argv[1]);
-            if (options.align <= 0) {
-                fprintf(stderr,
-                        "ldrdf: -a expects a positive number argument\n");
-                exit(1);
-            }
-            argv++, argc--;
-            break;
-        case 's':
-            options.strip = 1;
-            break;
-        case 'd':
-            if (argv[0][2] == 'y')
-                options.dynalink = 1;
-            break;
-        case 'm':
-            if (argv[0][2] == 'n') {
-                modname_specified = argv[1];
-        	argv++, argc--;
-        	if (!argc) {
-        	    fprintf(stderr, "ldrdf: -mn expects a module name\n");
-            	    exit(1);
-        	}
-	    }
-            break;
-        case 'o':
-            outname = argv[1];
-            argv++, argc--;
-            break;
-        case 'j':
-            if (!objpath) {
-                options.objpath = 1;
-                objpath = argv[1];
-                argv++, argc--;
-                break;
-            } else {
-                fprintf(stderr,
-                        "ldrdf: more than one objects search path specified\n");
-                exit(1);
-            }
-        case 'L':
-            if (!libpath) {
-                options.libpath = 1;
-                libpath = argv[1];
-                argv++, argc--;
-                break;
-            } else {
-                fprintf(stderr,
-                        "ldrdf: more than one libraries search path specified\n");
-                exit(1);
-            }
-        case '@':{
-                int i = 0;
-                char buf[256];
-                FILE *f;
-
-                options.respfile = 1;
-                if (argv[1] != NULL)
-                    f = fopen(argv[1], "r");
-                else {
-                    fprintf(stderr,
-                            "ldrdf: no response file name specified\n");
-                    exit(1);
-                }
-
-                if (f == NULL) {
-                    fprintf(stderr,
-                            "ldrdf: unable to open response file\n");
-                    exit(1);
-                }
-
-                argv++, argc--;
-                while (fgets(buf, sizeof(buf), f) != NULL) {
-                    char *p;
-                    if (buf[0] == '\n')
-                        continue;
-                    if ((p = strchr(buf, '\n')) != NULL)
-                        *p = '\0';
-                    if (i >= 128) {
-                        fclose(f);
-                        fprintf(stderr, "ldrdf: too many input files\n");
-                        exit(1);
-                    }
-                    *(respstrings + i) = newstr(buf);
-                    argc++, i++;
-                }
-                fclose(f);
-                break;
-            }
-        case '2':
-            options.stderr_redir = 1;
-            error_file = stdout;
-            break;
-        case 'g':
-            generic_rec_file = argv[1];
-            argv++, argc--;
-            if (!argc) {
-        	fprintf(stderr, "ldrdf: -g expects a file name\n");
-            	exit(1);
-	    }
-            break;
-        default:
-            usage();
-        }
-        argv++, argc--;
-    }
-
-    if (options.verbose > 4) {
-        printf("ldrdf invoked with options:\n");
-        printf("    section alignment: %d bytes\n", options.align);
-        printf("    output name: `%s'\n", outname);
-        if (options.strip)
-            printf("    strip symbols\n");
-        if (options.dynalink)
-            printf("    Unix-style dynamic linking\n");
-        if (options.objpath)
-            printf("    objects search path: %s\n", objpath);
-        if (options.libpath)
-            printf("    libraries search path: %s\n", libpath);
-        printf("\n");
-    }
-
-    symtab = symtabNew();
-    initsegments();
-
-    if (!symtab) {
-        fprintf(stderr, "ldrdf: out of memory\n");
-        exit(1);
-    }
-
-    while (argc) {
-        if (!*argv)
-            argv = respstrings;
-        if (!*argv)
-            break;
-        if (!strncmp(*argv, "-l", 2)) {
-            if (libpath && (argv[0][2] != '/'))
-                add_library(newstrcat(libpath, *argv + 2));
-            else
-                add_library(*argv + 2);
-        } else {
-            if (objpath && (argv[0][0] != '/'))
-                loadmodule(newstrcat(objpath, *argv));
-            else
-                loadmodule(*argv);
-            moduleloaded = 1;
-        }
-        argv++, argc--;
-    }
-
-    if (!moduleloaded) {
-        printf("ldrdf: nothing to do. ldrdf -h for usage\n");
-        return 0;
-    }
-
-    search_libraries();
-
-    if (options.verbose > 2) {
-        printf("symbol table:\n");
-        symtabDump(symtab, stdout);
-    }
-
-    write_output(outname);
-
-    if (errorcount > 0) {
-        remove(outname);
-        exit(1);
-    }
-    return 0;
-}
--- a/nasmbuild/nasm-2.13rc9/rdoff/ldsegs.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-/*
- * ldsegs.h	Data for 'ldrdf' to determine what to do with different
- *		types of segment. This may be useful in other contexts also.
- */
-
-#ifndef RDOFF_LDSEGS_H
-#define RDOFF_LDSEGS_H 1
-
-
-struct segconfig {
-    uint16_t typelow, typehi;	/* range of seg nos for which this is valid */
-    char *typedesc;		/* a description of the segment type */
-    uint16_t dowhat;		/* one of the SEG_xxxx values below */
-    uint16_t mergetype;		/* if SEG_MERGE what type segment do we merge
-				   with?
-                                   0 -> same type of segment. This type is also
-                                   used with SEG_NEWSEG. */
-};
-
-#define SEG_IGNORE 0
-#define SEG_NEWSEG 1
-#define SEG_MERGE  2
-
-#define SEGCONFIGMAX 11
-
-struct segconfig sconft[SEGCONFIGMAX] = {
-    {0x0000, 0x0000, "NULL segment", 0, 0},
-    {0x0001, 0x0001, "text", 2, 0},
-    {0x0002, 0x0002, "data", 2, 0},
-    {0x0003, 0x0003, "comment(ignored)", 0, 0},
-    {0x0004, 0x0005, "comment(kept)", 2, 0},
-    {0x0006, 0x0007, "debug information", 2, 0},
-    {0x0008, 0x001F, "reserved(general extensions)", 1, 0},
-    {0x0020, 0x0FFF, "reserved(MOSCOW)", 1, 0},
-    {0x1000, 0x7FFF, "reserved(system dependant)", 1, 0},
-    {0x8000, 0xFFFE, "reserved(other)", 1, 0},
-    {0xFFFF, 0xFFFF, "invalid segment", 0, 0}
-};
-
-#define getsegconfig(target,number)				\
-    {								\
-       int _i;							\
-       int _t = number;						\
-       for (_i = 0; _i < SEGCONFIGMAX; _i++)			\
-          if (_t >= sconft[_i].typelow && _t <= sconft[_i].typehi)	\
-          {							\
-              target = sconft[_i];				\
-              if (target.mergetype == 0) target.mergetype = _t;	\
-              break;						\
-          }							\
-       if (_i == SEGCONFIGMAX)					\
-       {							\
-          fprintf(stderr, "PANIC: can't find segment %04X in segconfig\n",\
-                  _t);						\
-          exit(1);						\
-       }							\
-    }
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdf2bin.1	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-.TH RDF2BIN 1 "September 6, 1999" "Debian Project" "Debian Manual"
-.SH NAME
-rdf2bin, rdf2com \- convert an RDOFF object file to flat binary
-.SH SYNOPSIS
-.B rdf2bin
-.RI "[\-o " relocation-origin ]
-.RI "[\-p " segment-alignment ]
-.RI "[\-f " format ]
-.I input-file
-.I output-file
-.br
-.B rdf2com
-.RI "[\-p " segment-alignment ]
-.I input-file
-.I output-file
-.br
-.B rdf2ith
-.RI "[\-o " relocation-origin ]
-.RI "[\-p " segment-alignment ]
-.I input-file
-.I output-file
-.br
-.B rdf2srec
-.RI "[\-o " relocation-origin ]
-.RI "[\-p " segment-alignment ]
-.I input-file
-.I output-file
-.SH OPTIONS
-.TP
-.RI "\-o " relocation-origin
-Relocate at origin
-.IR relocation-origin .
-If invoked as
-.BR rdf2com ,
-the default relocation origin will be 0x100. Else, the default origin is 0.
-.TP
-.RI "\-p " segment-alignment
-Pad segments until their size is a multiple of
-.IR segment-alignment .
-By default, 16 is used.
-.TP
-.RI "\-f " format
-Specify the output format.  The currently supported formats are binary
-.RI ( bin ),
-DOS COM (binary with origin 0x100)
-.RI ( com )
-Intel hex
-.RI ( ith
-or
-.IR ihx ),
-and
-Motorola S-Records
-.RI ( srec ).
-If not specified, the format is set by the command name.
-.SH AUTHORS
-Julian Hall <jules@earthcorp.com>, H. Peter Anvin <hpa@zytor.com>.
-.PP
-This manual page was written by Matej Vela <vela@debian.org>.
-.SH BUGS
-This utility currently only supports the classic segments
-.IR .text ,
-.I .data
-and
-.IR .bss .
-
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdf2bin.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,429 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * rdf2bin.c - convert an RDOFF object file to flat binary
- */
-
-#include "compiler.h"
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-
-#include "rdfload.h"
-#include "nasmlib.h"
-
-const char *progname;
-
-static uint32_t origin = 0;
-static bool origin_def = false;
-static uint32_t align = 16;
-static bool align_def = false;
-
-struct output_format {
-    const char *name;
-    const char *mode;
-    int (*init)(FILE *f);
-    int (*output)(FILE *f, void *data, uint32_t bytes, uint32_t where);
-    int (*fini)(FILE *f);
-};
-
-static int null_init_fini(FILE *f)
-{
-    (void)f;
-    return 0;
-}
-
-static int com_init(FILE *f)
-{
-    (void)f;
-    if (!origin_def)
-	origin = 0x100;
-    return 0;
-}
-
-static int output_bin(FILE *f, void *data, uint32_t bytes, uint32_t where)
-{
-    static uint32_t offset = 0;	/* Current file offset, if applicable */
-    size_t pad;
-
-    if (where-origin < offset) {
-	fprintf(stderr, "%s: internal error: backwards movement\n", progname);
-	exit(1);
-    }
-
-    pad = (where-origin) - offset;
-    fwritezero(pad, f);
-    offset += pad;
-
-    if (fwrite(data, 1, bytes, f) != bytes)
-	return -1;
-    offset += bytes;
-
-    return 0;
-}
-
-static int write_ith_record(FILE *f, unsigned int len, uint16_t addr,
-			    uint8_t type, void *data)
-{
-    char buf[1+2+4+2+255*2+2+2];
-    char *p = buf;
-    uint8_t csum, *dptr = data;
-    unsigned int i;
-
-    if (len > 255) {
-	fprintf(stderr, "%s: internal error: invalid ith record size\n",
-		progname);
-	exit(1);
-    }
-
-    csum = len + addr + (addr >> 8) + type;
-    for (i = 0; i < len; i++)
-	csum += dptr[i];
-    csum = -csum;
-
-    p += sprintf(p, ":%02X%04X%02X", len, addr, type);
-    for (i = 0; i < len; i++)
-	p += sprintf(p, "%02X", dptr[i]);
-    p += sprintf(p, "%02X\n", csum);
-
-    if (fwrite(buf, 1, p-buf, f) != (size_t)(p-buf))
-	return -1;
-
-    return 0;
-}
-
-static int output_ith(FILE *f, void *data, uint32_t bytes, uint32_t where)
-{
-    static uint32_t last = 0;	/* Last address written */
-    uint8_t abuf[2];
-    uint8_t *dbuf = data;
-    uint32_t chunk;
-
-    while (bytes) {
-	if ((where ^ last) & ~0xffff) {
-	    abuf[0] = where >> 24;
-	    abuf[1] = where >> 16;
-	    if (write_ith_record(f, 2, 0, 4, abuf))
-		return -1;
-	}
-
-	/* Output up to 32 bytes, but always end on an aligned boundary */
-	chunk = 32 - (where & 31);
-	if (bytes < chunk)
-	    chunk = bytes;
-
-	if (write_ith_record(f, chunk, (uint16_t)where, 0, dbuf))
-	    return -1;
-
-	dbuf += chunk;
-	last = where + chunk - 1;
-	where += chunk;
-	bytes -= chunk;
-    }
-    return 0;
-}
-
-static int fini_ith(FILE *f)
-{
-    /* XXX: entry point? */
-    return write_ith_record(f, 0, 0, 1, NULL);
-}
-
-static int write_srecord(FILE *f, unsigned int len,  unsigned int alen,
-			 uint32_t addr, uint8_t type, void *data)
-{
-    char buf[2+2+8+255*2+2+2];
-    char *p = buf;
-    uint8_t csum, *dptr = data;
-    unsigned int i;
-
-    if (len > 255) {
-	fprintf(stderr, "%s: internal error: invalid srec record size\n",
-		progname);
-	exit(1);
-    }
-
-    switch (alen) {
-    case 2:
-	addr &= 0xffff;
-	break;
-    case 3:
-	addr &= 0xffffff;
-	break;
-    case 4:
-	break;
-    default:
-	fprintf(stderr, "%s: internal error: invalid srec address length\n",
-		progname);
-	exit(1);
-    }
-
-    csum = (len+alen+1) + addr + (addr >> 8) + (addr >> 16) + (addr >> 24);
-    for (i = 0; i < len; i++)
-	csum += dptr[i];
-    csum = 0xff-csum;
-
-    p += sprintf(p, "S%c%02X%0*X", type, len+alen+1, alen*2, addr);
-    for (i = 0; i < len; i++)
-	p += sprintf(p, "%02X", dptr[i]);
-    p += sprintf(p, "%02X\n", csum);
-
-    if (fwrite(buf, 1, p-buf, f) != (size_t)(p-buf))
-	return -1;
-
-    return 0;
-}
-
-static int init_srec(FILE *f)
-{
-    return write_srecord(f, 0, 2, 0, '0', NULL);
-}
-
-static int fini_srec(FILE *f)
-{
-    /* XXX: entry point? */
-    return write_srecord(f, 0, 4, 0, '7', NULL);
-}
-
-static int output_srec(FILE *f, void *data, uint32_t bytes, uint32_t where)
-{
-    uint8_t *dbuf = data;
-    unsigned int chunk;
-
-    while (bytes) {
-	/* Output up to 32 bytes, but always end on an aligned boundary */
-	chunk = 32 - (where & 31);
-	if (bytes < chunk)
-	    chunk = bytes;
-
-	if (write_srecord(f, chunk, 4, where, '3', dbuf))
-	    return -1;
-
-	dbuf += chunk;
-	where += chunk;
-	bytes -= chunk;
-    }
-    return 0;
-}
-
-static struct output_format output_formats[] = {
-    { "bin",  "wb", null_init_fini, output_bin, null_init_fini },
-    { "com",  "wb", com_init, output_bin, null_init_fini },
-    { "ith",  "wt", null_init_fini, output_ith, fini_ith },
-    { "ihx",  "wt", null_init_fini, output_ith, fini_ith },
-    { "srec", "wt", init_srec, output_srec, fini_srec },
-    { NULL, NULL, NULL, NULL, NULL }
-};
-
-static const char *getformat(const char *pathname)
-{
-    const char *p;
-    static char fmt_buf[16];
-
-    /* 
-     * Search backwards for the string "rdf2" followed by a string
-     * of alphanumeric characters.  This should handle path prefixes,
-     * as well as extensions (e.g. C:\FOO\RDF2SREC.EXE).
-     */
-    for (p = strchr(pathname, '\0')-1 ; p >= pathname ; p--) {
-	if (!nasm_stricmp(p, "rdf2")) {
-	    const char *q = p+4;
-	    char *r = fmt_buf;
-	    while (isalnum(*q) && r < fmt_buf+sizeof fmt_buf-1)
-		*r++ = *q++;
-	    *r = '\0';
-	    if (fmt_buf[0])
-		return fmt_buf;
-	}
-     }
-    return NULL;
-}
-
-static void usage(void)
-{
-    fprintf(stderr,
-	    "Usage: %s [options] input-file output-file\n"
-	    "Options:\n"
-	    "    -o origin       Specify the relocation origin\n"
-	    "    -p alignment    Specify minimum segment alignment\n"
-	    "    -f format       Select format (bin, com, ith, srec)\n"
-	    "    -q              Run quiet\n"
-	    "    -v              Run verbose\n",
-	    progname);
-}
-
-int main(int argc, char **argv)
-{
-    rdfmodule *m;
-    bool err;
-    FILE *of;
-    int codepad, datapad;
-    const char *format = NULL;
-    const struct output_format *fmt;
-    bool quiet = false;
-
-    progname = argv[0];
-
-    if (argc < 2) {
-	usage();
-        return 1;
-    }
-
-    argv++, argc--;
-
-    while (argc > 2) {
-	if (argv[0][0] == '-' && argv[0][1] && !argv[0][2]) {
-	    switch (argv[0][1]) {
-	    case 'o':
-		argv++, argc--;
-		origin = readnum(*argv, &err);
-		if (err) {
-		    fprintf(stderr, "%s: invalid parameter: %s\n",
-			    progname, *argv);
-		    return 1;
-		}
-		origin_def = true;
-		break;
-	    case 'p':
-		argv++, argc--;
-		align = readnum(*argv, &err);
-		if (err) {
-		    fprintf(stderr, "%s: invalid parameter: %s\n",
-			    progname, *argv);
-		    return 1;
-		}
-		align_def = true;
-		break;
-	    case 'f':
-		argv++, argc--;
-		format = *argv;
-		break;
-	    case 'q':
-		quiet = true;
-		break;
-	    case 'v':
-		quiet = false;
-		break;
-	    case 'h':
-		usage();
-		return 0;
-	    default:
-		fprintf(stderr, "%s: unknown option: %s\n",
-			progname, *argv);
-		return 1;
-	    }
-	}
-        argv++, argc--;
-    }
-
-    if (argc < 2) {
-	usage();
-        return 1;
-    }
-
-    if (!format)
-	format = getformat(progname);
-
-    if (!format) {
-	fprintf(stderr, "%s: unable to determine desired output format\n",
-		progname);
-	return 1;
-    }
-
-    for (fmt = output_formats; fmt->name; fmt++) {
-	if (!nasm_stricmp(format, fmt->name))
-	    break;
-    }
-
-    if (!fmt->name) {
-	fprintf(stderr, "%s: unknown output format: %s\n", progname, format);
-	return 1;
-    }
-
-    m = rdfload(*argv);
-
-    if (!m) {
-        rdfperror(progname, *argv);
-        return 1;
-    }
-
-    if (!quiet)
-	printf("relocating %s: origin=%"PRIx32", align=%d\n",
-	       *argv, origin, align);
-
-    m->textrel = origin;
-    m->datarel = origin + m->f.seg[0].length;
-    if (m->datarel % align != 0) {
-        codepad = align - (m->datarel % align);
-        m->datarel += codepad;
-    } else
-        codepad = 0;
-
-    m->bssrel = m->datarel + m->f.seg[1].length;
-    if (m->bssrel % align != 0) {
-        datapad = align - (m->bssrel % align);
-        m->bssrel += datapad;
-    } else
-        datapad = 0;
-
-    if (!quiet)
-	printf("code: %08"PRIx32"\ndata: %08"PRIx32"\nbss:  %08"PRIx32"\n",
-	       m->textrel, m->datarel, m->bssrel);
-
-    rdf_relocate(m);
-
-    argv++;
-
-    of = fopen(*argv, fmt->mode);
-    if (!of) {
-        fprintf(stderr, "%s: could not open output file %s: %s\n",
-		progname, *argv, strerror(errno));
-        return 1;
-    }
-
-    if (fmt->init(of) ||
-	fmt->output(of, m->t, m->f.seg[0].length, m->textrel) ||
-	fmt->output(of, m->d, m->f.seg[1].length, m->datarel) ||
-	fmt->fini(of)) {
-        fprintf(stderr, "%s: error writing to %s: %s\n",
-		progname, *argv, strerror(errno));
-        return 1;
-    }
-
-    fclose(of);
-    return 0;
-}
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdf2com.1	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-.so man1/rdf2bin.1
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdf2ihx.1	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-.so man1/rdf2bin.1
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdf2ith.1	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-.so man1/rdf2bin.1
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdf2srec.1	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-.so man1/rdf2bin.1
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdfdump.1	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-.TH RDFDUMP 1 "September 6, 1999" "Debian Project" "Debian Manual"
-.SH NAME
-rdfdump \- dumps an RDOFF object in human-readable form
-.SH SYNOPSIS
-.B rdfdump
-[-v]
-.RI < filename >
-.SH DESCRIPTION
-.B rdfdump
-prints a list of the header records in an RDOFF object in human-readable
-form, and optionally prints a hex dump of the contents of the segments.
-.PP
-.B rdfdump
-supports both version 1 and 2 of RDOFF.  It will give warnings if the RDOFF2
-format is violated (it looks for incorrect lengths for header records, and
-checks the overall length count at the start of the file).
-.SH OPTIONS
-.TP
--v
-Print a hex dump of the contents of the segments.
-.SH AUTHORS
-Julian Hall <jules@earthcorp.com>.
-.PP
-This manual page was written by Matej Vela <vela@debian.org>.
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdfdump.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,347 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * rdfdump.c - dump RDOFF file header.
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define RDOFF_UTILS
-
-#include "rdoff.h"
-
-#define PROGRAM_VERSION	"2.3"
-
-FILE *infile;
-
-static void print_header(int32_t length, int rdf_version)
-{
-    char buf[129], t, l, s, flags;
-    uint8_t reclen;
-    int32_t o, ll;
-    uint16_t rs;
-
-    while (length > 0) {
-        fread(&t, 1, 1, infile);
-        if (rdf_version >= 2) {
-            fread(&reclen, 1, 1, infile);
-        }
-        switch (t) {
-        case RDFREC_GENERIC:   /* generic record */
-            printf("  generic record (length=%d)\n", (int)reclen);
-            fseek(infile, reclen, SEEK_CUR);
-            break;
-
-        case RDFREC_RELOC:     /* relocation record */
-        case RDFREC_SEGRELOC:  /* segment relocation */
-            fread(&s, 1, 1, infile);
-            fread(&o, 4, 1, infile);
-            fread(&l, 1, 1, infile);
-            fread(&rs, 2, 1, infile);
-            printf("  %s: location (%04x:%08"PRIx32"), length %d, "
-                   "referred seg %04x\n",
-                   t == 1 ? "relocation" : "seg relocation", (int)s,
-                   translateint32_t(o), (int)l, translateint16_t(rs));
-            if (rdf_version >= 2 && reclen != 8)
-                printf("    warning: reclen != 8\n");
-            if (rdf_version == 1)
-                length -= 9;
-            if (rdf_version == 1 && t == 6)
-                printf
-                    ("    warning: seg relocation not supported in RDOFF1\n");
-            break;
-
-        case RDFREC_IMPORT:    /* import record */
-        case RDFREC_FARIMPORT: /* import far symbol */
-            fread(&flags, 1, 1, infile);
-            fread(&rs, 2, 1, infile);
-            ll = 0;
-
-            if (rdf_version == 1) {
-                do {
-                    fread(&buf[ll], 1, 1, infile);
-                } while (buf[ll++]);
-            } else {
-                for (; ll < reclen - 3; ll++)
-                    fread(&buf[ll], 1, 1, infile);
-            }
-
-            if (t == 7)
-                printf("far ");
-            printf((flags & SYM_IMPORT) ? "  import" : "  extern");
-            if (flags & SYM_FUNCTION)
-                printf(" proc");
-            if (flags & SYM_DATA)
-                printf(" data");
-            printf(": segment %04x = %s\n", translateint16_t(rs), buf);
-            if (rdf_version == 1)
-                length -= ll + 3;
-            if (rdf_version == 1 && t == 7)
-                printf
-                    ("    warning: far import not supported in RDOFF1\n");
-            break;
-
-        case RDFREC_GLOBAL:    /* export record */
-            fread(&flags, 1, 1, infile);
-            fread(&s, 1, 1, infile);
-            fread(&o, 4, 1, infile);
-            ll = 0;
-
-            if (rdf_version == 1) {
-                do {
-                    fread(&buf[ll], 1, 1, infile);
-                } while (buf[ll++]);
-            } else {
-                for (; ll < reclen - 6; ll++)
-                    fread(&buf[ll], 1, 1, infile);
-            }
-            printf((flags & SYM_GLOBAL) ? "  export" : "  public");
-            if (flags & SYM_FUNCTION)
-                printf(" proc");
-            if (flags & SYM_DATA)
-                printf(" data");
-            printf(": (%04x:%08"PRIx32") = %s\n", (int)s, translateint32_t(o), buf);
-            if (rdf_version == 1)
-                length -= ll + 6;
-            break;
-
-        case RDFREC_DLL:       /* DLL and Module records */
-        case RDFREC_MODNAME:
-            ll = 0;
-            if (rdf_version == 1) {
-                do {
-                    fread(&buf[ll], 1, 1, infile);
-                } while (buf[ll++]);
-            } else {
-                for (; ll < reclen; ll++)
-                    fread(&buf[ll], 1, 1, infile);
-            }
-            if (t == 4)
-                printf("  dll: %s\n", buf);
-            else
-                printf("  module: %s\n", buf);
-            if (rdf_version == 1)
-                length -= ll + 1;
-            break;
-
-        case RDFREC_BSS:       /* BSS reservation */
-            fread(&ll, 4, 1, infile);
-            printf("  bss reservation: %08"PRIx32" bytes\n", translateint32_t(ll));
-            if (rdf_version == 1)
-                length -= 5;
-            if (rdf_version > 1 && reclen != 4)
-                printf("    warning: reclen != 4\n");
-            break;
-
-        case RDFREC_COMMON:{
-                uint16_t seg, align;
-                uint32_t size;
-
-                fread(&seg, 2, 1, infile);
-                fread(&size, 4, 1, infile);
-                fread(&align, 2, 1, infile);
-                for (ll = 0; ll < reclen - 8; ll++)
-                    fread(buf + ll, 1, 1, infile);
-                printf("  common: segment %04x = %s, %"PRId32":%d\n",
-                       translateint16_t(seg), buf, translateint32_t(size),
-                       translateint16_t(align));
-                break;
-            }
-
-        default:
-            printf("  unrecognized record (type %d", (int)t);
-            if (rdf_version > 1) {
-                printf(", length %d", (int)reclen);
-                fseek(infile, reclen, SEEK_CUR);
-            } else
-                length--;
-            printf(")\n");
-        }
-        if (rdf_version != 1)
-            length -= 2 + reclen;
-    }
-}
-
-int main(int argc, char **argv)
-{
-    char id[7];
-    int32_t l;
-    uint16_t s;
-    int verbose = 0;
-    int32_t offset;
-    int foundnullsegment = 0;
-    int version;
-    int32_t segmentcontentlength = 0;
-    int nsegments = 0;
-    int32_t headerlength = 0;
-    int32_t objectlength = 0;
-
-    printf("RDOFF dump utility, version %s\n", PROGRAM_VERSION);
-    printf("RDOFF2 revision %s\n", RDOFF2_REVISION);
-    puts("Copyright (c) 1996,99 Julian R Hall\n"
-         "Improvements and fixes (c) 2002-2004 RET & COM Research.");
-
-    if (argc < 2) {
-        fputs("Usage: rdfdump [-v] <filename>\n", stderr);
-        exit(1);
-    }
-
-    if (!strcmp(argv[1], "-v")) {
-        verbose = 1;
-        if (argc < 3) {
-            fputs("required parameter missing\n", stderr);
-            exit(1);
-        }
-        argv++;
-    }
-
-    infile = fopen(argv[1], "rb");
-    if (!infile) {
-        fprintf(stderr, "rdfdump: Could not open %s\n", argv[1]);
-        exit(1);
-    }
-
-    fread(id, 6, 1, infile);
-    if (strncmp(id, "RDOFF", 5)) {
-        fputs("rdfdump: File does not contain valid RDOFF header\n",
-              stderr);
-        exit(1);
-    }
-
-    printf("File %s: RDOFF version %c\n\n", argv[1], id[5]);
-    if (id[5] < '1' || id[5] > '2') {
-        fprintf(stderr, "rdfdump: unknown RDOFF version '%c'\n", id[5]);
-        exit(1);
-    }
-    version = id[5] - '0';
-
-    if (version > 1) {
-        fread(&l, 4, 1, infile);
-        objectlength = translateint32_t(l);
-        printf("Object content size: %"PRId32" bytes\n", objectlength);
-    }
-
-    fread(&l, 4, 1, infile);
-    headerlength = translateint32_t(l);
-    printf("Header (%"PRId32" bytes):\n", headerlength);
-    print_header(headerlength, version);
-
-    if (version == 1) {
-        fread(&l, 4, 1, infile);
-        l = translateint32_t(l);
-        printf("\nText segment length = %"PRId32" bytes\n", l);
-        offset = 0;
-        while (l--) {
-            fread(id, 1, 1, infile);
-            if (verbose) {
-                if (offset % 16 == 0)
-                    printf("\n%08"PRIx32" ", offset);
-                printf(" %02x", (int)(uint8_t)id[0]);
-                offset++;
-            }
-        }
-        if (verbose)
-            printf("\n\n");
-
-        fread(&l, 4, 1, infile);
-        l = translateint32_t(l);
-        printf("Data segment length = %"PRId32" bytes\n", l);
-
-        if (verbose) {
-            offset = 0;
-            while (l--) {
-                fread(id, 1, 1, infile);
-                if (offset % 16 == 0)
-                    printf("\n%08"PRIx32" ", offset);
-                printf(" %02x", (int)(uint8_t)id[0]);
-                offset++;
-            }
-            printf("\n");
-        }
-    } else {
-        do {
-            fread(&s, 2, 1, infile);
-            s = translateint16_t(s);
-            if (!s) {
-                printf("\nNULL segment\n");
-                foundnullsegment = 1;
-                break;
-            }
-            printf("\nSegment:\n  Type   = %04X (%s)\n", (int)s,
-                   translatesegmenttype(s));
-            nsegments++;
-
-            fread(&s, 2, 1, infile);
-            printf("  Number = %04X\n", (int)translateint16_t(s));
-            fread(&s, 2, 1, infile);
-            printf("  Resrvd = %04X\n", (int)translateint16_t(s));
-            fread(&l, 4, 1, infile);
-            l = translateint32_t(l);
-            printf("  Length = %"PRId32" bytes\n", l);
-            segmentcontentlength += l;
-
-            offset = 0;
-            while (l--) {
-                fread(id, 1, 1, infile);
-                if (verbose) {
-                    if (offset % 16 == 0)
-                        printf("\n%08"PRIx32" ", offset);
-                    printf(" %02x", (int)(uint8_t)id[0]);
-                    offset++;
-                }
-            }
-            if (verbose)
-                printf("\n");
-        } while (!feof(infile));
-        if (!foundnullsegment)
-            printf("\nWarning: unexpected end of file - "
-                   "NULL segment not found\n");
-
-        printf("\nTotal number of segments: %d\n", nsegments);
-        printf("Total segment content length: %"PRId32" bytes\n",
-               segmentcontentlength);
-
-        /* calculate what the total object content length should have been */
-        l = segmentcontentlength + 10 * (nsegments + 1) + headerlength + 4;
-        if (l != objectlength)
-            printf("Warning: actual object length (%"PRId32") != "
-                   "stored object length (%"PRId32")\n", l, objectlength);
-    }
-    fclose(infile);
-    return 0;
-}
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdflib.1	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-.TH RDFLIB 1 "September 6, 1999" "Debian Project" "Debian Manual"
-.SH NAME
-rdflib \- manage a library file for use with ldrdf(1)
-.SH SYNOPSIS
-.B rdflib
-.I command
-.I arguments
-.SH DESCRIPTION
-.B rdflib
-manages a library file which can be used by
-.BR ldrdf (1).
-It is supplied with a shell script
-.B makelib
-which should probably be used to create libraries.
-.SH COMMANDS
-.TP
-.BI c " library-file"
-Create (or truncate) a library.
-.TP
-.BI a " library-file object-file module"
-Add the
-.I object-file
-to the library under the name
-.IR module .
-.TP
-.BI x " library-file module object-file"
-Extract a
-.I module
-from the library to the file
-.IR object-file .
-.TP
-.B t " library-file"
-Display a list of modules in the library.
-.SH NOTES
-A remove command will be added soon.
-.SH AUTHORS
-Julian Hall <jules@earthcorp.com>.
-.PP
-This manual page was written by Matej Vela <vela@debian.org>.
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdflib.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,431 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/* rdflib - manipulate RDOFF library files (.rdl) */
-
-/*
- * an rdoff library is simply a sequence of RDOFF object files, each
- * preceded by the name of the module, an ASCII string of up to 255
- * characters, terminated by a zero.
- *
- * When a library is being created, special signature block is placed
- * in the beginning of the file. It is a string 'RDLIB' followed by a
- * version number, then int32_t content size and a int32_t time stamp.
- * The module name of the signature block is '.sig'.
- *
- *
- * There may be an optional directory placed on the end of the file.
- * The format of the directory will be 'RDLDD' followed by a version
- * number, followed by the length of the directory, and then the
- * directory, the format of which has not yet been designed.
- * The module name of the directory must be '.dir'.
- *
- * All module names beginning with '.' are reserved for possible future
- * extensions. The linker ignores all such modules, assuming they have
- * the format of a six uint8_t type & version identifier followed by int32_t
- * content size, followed by data.
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <errno.h>
-#include <string.h>
-#include <time.h>
-
-/* functions supported:
- *   create a library	(no extra operands required)
- *   add a module from a library (requires filename and name to give mod.)
- *   replace a module in a library (requires given name and filename)
- *   delete a module from a library (requires given name)
- *   extract a module from the library (requires given name and filename)
- *   list modules
- */
-
-const char *usage =
-    "usage:\n"
-    "  rdflib x libname [extra operands]\n\n"
-    "  where x is one of:\n"
-    "    c - create library\n"
-    "    a - add module (operands = filename module-name)\n"
-    "    x - extract               (module-name filename)\n"
-    "    r - replace               (module-name filename)\n"
-    "    d - delete                (module-name)\n" "    t - list\n";
-
-/* Library signature */
-const char *rdl_signature = "RDLIB2", *sig_modname = ".sig";
-
-char **_argv;
-
-#define _ENDIANNESS 0           /* 0 for little, 1 for big */
-
-static void int32_ttolocal(int32_t *l)
-{
-#if _ENDIANNESS
-    uint8_t t;
-    uint8_t *p = (uint8_t *)l;
-
-    t = p[0];
-    p[0] = p[3];
-    p[3] = t;
-    t = p[1];
-    p[1] = p[2];
-    p[2] = p[1];
-#else
-    (void)l;             /* placate optimizers */
-#endif
-}
-
-static char copybytes(FILE * fp, FILE * fp2, int n)
-{
-    int i, t = 0;
-
-    for (i = 0; i < n; i++) {
-        t = fgetc(fp);
-        if (t == EOF) {
-            fprintf(stderr, "rdflib: premature end of file in '%s'\n",
-                    _argv[2]);
-            exit(1);
-        }
-        if (fp2)
-            if (fputc(t, fp2) == EOF) {
-                fprintf(stderr, "rdflib: write error\n");
-                exit(1);
-            }
-    }
-    return (char)t;             /* return last char read */
-}
-
-static int32_t copyint32_t(FILE * fp, FILE * fp2)
-{
-    int32_t l;
-    int i, t;
-    uint8_t *p = (uint8_t *)&l;
-
-    for (i = 0; i < 4; i++) {   /* skip magic no */
-        t = fgetc(fp);
-        if (t == EOF) {
-            fprintf(stderr, "rdflib: premature end of file in '%s'\n",
-                    _argv[2]);
-            exit(1);
-        }
-        if (fp2)
-            if (fputc(t, fp2) == EOF) {
-                fprintf(stderr, "rdflib: write error\n");
-                exit(1);
-            }
-        *p++ = t;
-    }
-    int32_ttolocal(&l);
-    return l;
-}
-
-int main(int argc, char **argv)
-{
-    FILE *fp, *fp2 = NULL, *fptmp;
-    char *p, buf[256], c;
-    int i;
-    int32_t l;
-    time_t t;
-    char rdbuf[10];
-
-    _argv = argv;
-
-    if (argc < 3 || !strncmp(argv[1], "-h", 2)
-        || !strncmp(argv[1], "--h", 3)) {
-        fputs(usage, stdout);
-        exit(1);
-    }
-
-    switch (argv[1][0]) {
-    case 'c':                  /* create library */
-        fp = fopen(argv[2], "wb");
-        if (!fp) {
-            fprintf(stderr, "rdflib: could not open '%s'\n", argv[2]);
-            perror("rdflib");
-            exit(1);
-        }
-        fwrite(sig_modname, 1, strlen(sig_modname) + 1, fp);
-        fwrite(rdl_signature, 1, strlen(rdl_signature), fp);
-	t = time(NULL);
-        l = sizeof(t);
-        fwrite(&l, sizeof(l), 1, fp);
-        fwrite(&t, 1, l, fp);
-        fclose(fp);
-        break;
-
-    case 'a':                  /* add module */
-        if (argc < 5) {
-            fprintf(stderr, "rdflib: required parameter missing\n");
-            exit(1);
-        }
-        fp = fopen(argv[2], "ab");
-        if (!fp) {
-            fprintf(stderr, "rdflib: could not open '%s'\n", argv[2]);
-            perror("rdflib");
-            exit(1);
-        }
-
-        fp2 = fopen(argv[3], "rb");
-        if (!fp2) {
-            fprintf(stderr, "rdflib: could not open '%s'\n", argv[3]);
-            perror("rdflib");
-            exit(1);
-        }
-
-        p = argv[4];
-        do {
-            if (fputc(*p, fp) == EOF) {
-                fprintf(stderr, "rdflib: write error\n");
-                exit(1);
-            }
-        } while (*p++);
-
-        while (!feof(fp2)) {
-            i = fgetc(fp2);
-            if (i == EOF) {
-                break;
-            }
-
-            if (fputc(i, fp) == EOF) {
-                fprintf(stderr, "rdflib: write error\n");
-                exit(1);
-            }
-        }
-        fclose(fp2);
-        fclose(fp);
-        break;
-
-    case 'x':
-        if (argc < 5) {
-            fprintf(stderr, "rdflib: required parameter missing\n");
-            exit(1);
-        }
-    case 't':
-        fp = fopen(argv[2], "rb");
-        if (!fp) {
-            fprintf(stderr, "rdflib: could not open '%s'\n", argv[2]);
-            perror("rdflib");
-            exit(1);
-        }
-
-        fp2 = NULL;
-        while (!feof(fp)) {
-            /* read name */
-            p = buf;
-            while ((*(p++) = (char)fgetc(fp)))
-                if (feof(fp))
-                    break;
-
-            if (feof(fp))
-                break;
-
-            fp2 = NULL;
-            if (argv[1][0] == 'x') {
-                /* check against desired name */
-                if (!strcmp(buf, argv[3])) {
-                    fp2 = fopen(argv[4], "wb");
-                    if (!fp2) {
-                        fprintf(stderr, "rdflib: could not open '%s'\n",
-                                argv[4]);
-                        perror("rdflib");
-                        exit(1);
-                    }
-                }
-            } else
-                printf("%-40s ", buf);
-
-            /* step over the RDOFF file, extracting type information for
-             * the listing, and copying it if fp2 != NULL */
-
-            if (buf[0] == '.') {
-
-                if (argv[1][0] == 't')
-                    for (i = 0; i < 6; i++)
-                        printf("%c", copybytes(fp, fp2, 1));
-                else
-                    copybytes(fp, fp2, 6);
-
-                l = copyint32_t(fp, fp2);
-
-                if (argv[1][0] == 't')
-                    printf("   %"PRId32" bytes content\n", l);
-
-                copybytes(fp, fp2, l);
-            } else if ((c = copybytes(fp, fp2, 6)) >= '2') {    /* version 2 or above */
-                l = copyint32_t(fp, fp2);
-
-                if (argv[1][0] == 't')
-                    printf("RDOFF%c   %"PRId32" bytes content\n", c, l);
-                copybytes(fp, fp2, l);  /* entire object */
-            } else {
-                if (argv[1][0] == 't')
-                    printf("RDOFF1\n");
-                /*
-                 * version 1 object, so we don't have an object content
-                 * length field.
-                 */
-                copybytes(fp, fp2, copyint32_t(fp, fp2));  /* header */
-                copybytes(fp, fp2, copyint32_t(fp, fp2));  /* text */
-                copybytes(fp, fp2, copyint32_t(fp, fp2));  /* data */
-            }
-
-            if (fp2)
-                break;
-        }
-        fclose(fp);
-        if (fp2)
-            fclose(fp2);
-        else if (argv[1][0] == 'x') {
-            fprintf(stderr, "rdflib: module '%s' not found in '%s'\n",
-                    argv[3], argv[2]);
-            exit(1);
-        }
-        break;
-
-    case 'r':                  /* replace module */
-        argc--;
-    case 'd':                  /* delete module */
-        if (argc < 4) {
-            fprintf(stderr, "rdflib: required parameter missing\n");
-            exit(1);
-        }
-
-        fp = fopen(argv[2], "rb");
-        if (!fp) {
-            fprintf(stderr, "rdflib: could not open '%s'\n", argv[2]);
-            perror("rdflib");
-            exit(1);
-        }
-
-        if (argv[1][0] == 'r') {
-            fp2 = fopen(argv[4], "rb");
-            if (!fp2) {
-                fprintf(stderr, "rdflib: could not open '%s'\n", argv[4]);
-                perror("rdflib");
-                exit(1);
-            }
-        }
-
-        fptmp = tmpfile();
-        if (!fptmp) {
-            fprintf(stderr, "rdflib: could not open temporary file\n");
-            perror("rdflib");
-            exit(1);
-        }
-
-        /* copy library into temporary file */
-        fseek(fp, 0, SEEK_END); /* get file length */
-        l = ftell(fp);
-        fseek(fp, 0, SEEK_SET);
-        copybytes(fp, fptmp, l);
-        rewind(fptmp);
-        if (freopen(argv[2], "wb", fp) == NULL) {
-            fprintf(stderr, "rdflib: could not reopen '%s'\n", argv[2]);
-            perror("rdflib");
-            exit(1);
-        }
-
-        while (!feof(fptmp)) {
-            /* read name */
-            p = buf;
-            while ((*(p++) = (char)fgetc(fptmp)))
-                if (feof(fptmp))
-                    break;
-
-            if (feof(fptmp))
-                break;
-
-            /* check against desired name */
-            if (!strcmp(buf, argv[3])) {
-                fread(p = rdbuf, 1, sizeof(rdbuf), fptmp);
-                l = *(int32_t *)(p + 6);
-                fseek(fptmp, l, SEEK_CUR);
-                break;
-            } else {
-                fwrite(buf, 1, strlen(buf) + 1, fp);    /* module name */
-                if ((c = copybytes(fptmp, fp, 6)) >= '2') {
-                    l = copyint32_t(fptmp, fp);    /* version 2 or above */
-                    copybytes(fptmp, fp, l);    /* entire object */
-                }
-            }
-        }
-
-        if (argv[1][0] == 'r') {
-            /* copy new module into library */
-            p = argv[3];
-            do {
-                if (fputc(*p, fp) == EOF) {
-                    fprintf(stderr, "rdflib: write error\n");
-                    exit(1);
-                }
-            } while (*p++);
-
-            while (!feof(fp2)) {
-                i = fgetc(fp2);
-                if (i == EOF) {
-                    break;
-                }
-                if (fputc(i, fp) == EOF) {
-                    fprintf(stderr, "rdflib: write error\n");
-                    exit(1);
-                }
-            }
-            fclose(fp2);
-        }
-
-        /* copy rest of library if any */
-        while (!feof(fptmp)) {
-            i = fgetc(fptmp);
-            if (i == EOF) {
-                break;
-            }
-
-            if (fputc(i, fp) == EOF) {
-                fprintf(stderr, "rdflib: write error\n");
-                exit(1);
-            }
-        }
-
-        fclose(fp);
-        fclose(fptmp);
-        break;
-
-    default:
-        fprintf(stderr, "rdflib: command '%c' not recognized\n",
-                argv[1][0]);
-        exit(1);
-    }
-    return 0;
-}
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdfload.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * rdfload.c	RDOFF Object File loader library
- */
-
-/*
- * TODO: this has been modified from previous version only in very
- * simplistic ways. Needs to be improved drastically, especially:
- *   - support for more than the 2 standard segments
- *   - support for segment relocations (hard to do in ANSI C)
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "rdfload.h"
-#include "symtab.h"
-#include "collectn.h"
-
-extern int rdf_errno;
-
-rdfmodule *rdfload(const char *filename)
-{
-    rdfmodule *f;
-    int32_t bsslength = 0;
-    char *hdr;
-    rdfheaderrec *r;
-
-    f = malloc(sizeof(rdfmodule));
-    if (f == NULL) {
-        rdf_errno = RDF_ERR_NOMEM;
-        return NULL;
-    }
-
-    f->symtab = symtabNew();
-    if (!f->symtab) {
-        free(f);
-        rdf_errno = RDF_ERR_NOMEM;
-        return NULL;
-    }
-
-    /* open the file */
-    if (rdfopen(&(f->f), filename)) {
-        free(f);
-        return NULL;
-    }
-
-    /* read in text and data segments, and header */
-
-    f->t = malloc(f->f.seg[0].length);
-    f->d = malloc(f->f.seg[1].length);  /* BSS seg allocated later */
-    hdr = malloc(f->f.header_len);
-
-    if (!f->t || !f->d || !hdr) {
-        rdf_errno = RDF_ERR_NOMEM;
-        rdfclose(&f->f);
-        if (f->t)
-            free(f->t);
-        if (f->d)
-            free(f->d);
-        free(f);
-        free(hdr);
-        return NULL;
-    }
-
-    if (rdfloadseg(&f->f, RDOFF_HEADER, hdr) ||
-        rdfloadseg(&f->f, RDOFF_CODE, f->t) ||
-        rdfloadseg(&f->f, RDOFF_DATA, f->d)) {
-        rdfclose(&f->f);
-        free(f->t);
-        free(f->d);
-        free(f);
-        free(hdr);
-        return NULL;
-    }
-
-    rdfclose(&f->f);
-
-    /* Allocate BSS segment; step through header and count BSS records */
-
-    while ((r = rdfgetheaderrec(&f->f))) {
-        if (r->type == 5)
-            bsslength += r->b.amount;
-    }
-
-    f->b = malloc(bsslength);
-    if (bsslength && (!f->b)) {
-        free(f->t);
-        free(f->d);
-        free(f);
-        free(hdr);
-        rdf_errno = RDF_ERR_NOMEM;
-        return NULL;
-    }
-
-    rdfheaderrewind(&f->f);
-
-    f->textrel = (int32_t)(size_t)f->t;
-    f->datarel = (int32_t)(size_t)f->d;
-    f->bssrel  = (int32_t)(size_t)f->b;
-
-    return f;
-}
-
-int rdf_relocate(rdfmodule * m)
-{
-    rdfheaderrec *r;
-    Collection imports;
-    symtabEnt e;
-    int32_t rel;
-    uint8_t *seg;
-
-    rdfheaderrewind(&m->f);
-    collection_init(&imports);
-
-    while ((r = rdfgetheaderrec(&m->f))) {
-        switch (r->type) {
-        case 1:                /* Relocation record */
-
-            /* calculate relocation factor */
-
-            if (r->r.refseg == 0)
-                rel = m->textrel;
-            else if (r->r.refseg == 1)
-                rel = m->datarel;
-            else if (r->r.refseg == 2)
-                rel = m->bssrel;
-            else
-                /* We currently do not support load-time linkage.
-                   This should be added some time soon... */
-
-                return 1;       /* return error code */
-
-            if ((r->r.segment & 63) == 0)
-                seg = m->t;
-            else if ((r->r.segment & 63) == 1)
-                seg = m->d;
-            else
-                continue;       /* relocation not in a loaded segment */
-
-            /* it doesn't matter in this case that the code is non-portable,
-               as the entire concept of executing a module like this is
-               non-portable */
-            switch (r->r.length) {
-            case 1:
-                seg[r->r.offset] += (char)rel;
-                break;
-            case 2:
-                *(uint16_t *) (seg + r->r.offset) += (uint16_t) rel;
-                break;
-            case 4:
-                *(int32_t *)(seg + r->r.offset) += rel;
-                break;
-            }
-            break;
-
-        case 3:                /* export record - add to symtab */
-            e.segment = r->e.segment;
-            e.offset = r->e.offset + (e.segment == 0 ? m->textrel :     /* 0 -> code */
-                                      e.segment == 1 ? m->datarel :     /* 1 -> data */
-                                      m->bssrel);       /* 2 -> bss  */
-            e.flags = 0;
-            e.name = malloc(strlen(r->e.label) + 1);
-            if (!e.name)
-                return 1;
-
-            strcpy(e.name, r->e.label);
-            symtabInsert(m->symtab, &e);
-            break;
-
-        case 6:                /* segment relocation */
-            fprintf(stderr, "%s: segment relocation not supported by this "
-                    "loader\n", m->f.name);
-            return 1;
-        }
-    }
-    return 0;
-}
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdfload.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-/* rdfload.h	RDOFF Object File loader library header file
- *
- * The Netwide Assembler is copyright (C) 1996 Simon Tatham and
- * Julian Hall. All rights reserved. The software is
- * redistributable under the license given in the file "LICENSE"
- * distributed in the NASM archive.
- *
- * See the file 'rdfload.c' for special license information for this
- * file.
- */
-
-#ifndef RDOFF_RDFLOAD_H
-#define RDOFF_RDFLOAD_H 1
-
-#define RDOFF_UTILS
-
-#include "rdoff.h"
-
-typedef struct RDFModuleStruct {
-    rdffile f;                  /* file structure */
-    uint8_t *t, *d, *b;   /* text, data, and bss segments */
-    uint32_t textrel;
-    uint32_t datarel;
-    uint32_t bssrel;
-    void *symtab;
-} rdfmodule;
-
-rdfmodule *rdfload(const char *filename);
-int rdf_relocate(rdfmodule * m);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdlar.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,490 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * rdlar.c - new librarian/archiver for RDOFF2.
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <ctype.h>
-#include <stdarg.h>
-#include <string.h>
-#include <errno.h>
-#include <time.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include "rdlar.h"
-
-#define PROGRAM_VERSION "0.1"
-
-/** Constants **/
-const char commands[] = "adnrtx";
-const char modifiers[] = "cflouvV";
-
-/** Global variables **/
-char *progname = "rdlar";
-char **_argv = NULL;
-struct {
-    bool createok;
-    bool usefname;
-    bool align;
-    bool odate;
-    bool fresh;
-    int verbose;
-} options = {
-0, 0, 0, 0, 0, 0};
-
-#define _ENDIANNESS 0           /* 0 for little, 1 for big */
-
-/*
- * Convert int32_t to little endian (if we were compiled on big-endian machine)
- */
-static void int32_ttolocal(int32_t *l)
-{
-#if _ENDIANNESS
-    uint8_t t;
-    uint8_t *p = (uint8_t *)l;
-
-    t = p[0];
-    p[0] = p[3];
-    p[3] = t;
-    t = p[1];
-    p[1] = p[2];
-    p[2] = p[1];
-#endif
-}
-
-/*
- * Print version information
- */
-void show_version(void)
-{
-    puts("New RDOFF2 librarian/archiver, version " PROGRAM_VERSION);
-}
-
-/*
- * Print usage instructions
- */
-void usage(void)
-{
-    printf("Usage:  %s [-]{%s}[%s] libfile [module-name] [files]\n",
-           progname, commands, modifiers);
-    puts(" commands:\n"
-         "  a            - add module(s) to the library\n"
-         "  d            - delete module(s) from the library\n"
-         "  n            - create the library\n"
-         "  r            - replace module(s)\n"
-         "  t            - display contents of library\n"
-         "  x            - extract module(s)\n"
-         " command specific modifiers:\n"
-         "  o            - preserve original dates\n"
-         "  u            - only replace modules that are newer than library contents\n"
-         " generic modifiers:\n"
-         "  c            - do not warn if the library had to be created\n"
-         "  f            - use file name as a module name\n"
-         "  v            - be verbose\n"
-         "  V            - display version information");
-}
-
-/*
- * Print an error message and exit
- */
-void error_exit(int errcode, bool useperror, const char *fmt, ...)
-{
-    va_list ap;
-
-    fprintf(stderr, "%s: ", progname);
-    va_start(ap, fmt);
-    vfprintf(stderr, fmt, ap);
-    va_end(ap);
-    putc('\n', stderr);
-    if (useperror)
-        perror(progname);
-    exit(errcode);
-}
-
-/*
- * Fill in and write a header
- */
-void put_header(struct rdlm_hdr *hdr, FILE * libfp, char *modname)
-{
-    int n = 0;
-
-    hdr->hdrsize = sizeof(*hdr);
-    if (modname)
-        hdr->hdrsize += (n = strlen(modname) + 1);
-    if (libfp == NULL)
-        return;
-    if (fwrite(hdr, 1, sizeof(*hdr), libfp) != sizeof(*hdr) ||
-        (modname && (fwrite(modname, 1, n, libfp) != n)))
-        error_exit(3, true, "could not write header");
-}
-
-/*
- * Copy n bytes from one file to another and return last character read.
- */
-char copybytes(FILE * fp, FILE * fp2, int n)
-{
-    int i, t = 0;
-
-    for (i = 0; i < n; i++) {
-        t = fgetc(fp);
-        if (t == EOF)
-            error_exit(1, false, "premature end of file in '%s'",
-                       _argv[2]);
-        if (fp2)
-            if (fputc(t, fp2) == EOF)
-                error_exit(1, false, "write error");
-    }
-    return (char)t;
-}
-
-/*
- * Copy uint32_t from one file to another.
- * Return local presentation of int32_t.
- */
-int32_t copyint32_t(FILE * fp, FILE * fp2)
-{
-    int32_t l;
-    int i, t;
-    uint8_t *p = (uint8_t *)&l;
-
-    for (i = 0; i < 4; i++) {
-        t = fgetc(fp);
-        if (t == EOF)
-            error_exit(1, false, "premature end of file in '%s'",
-                       _argv[2]);
-        if (fp2)
-            if (fputc(t, fp2) == EOF)
-                error_exit(1, false, "write error");
-        *p++ = t;
-    }
-    int32_ttolocal(&l);
-    return l;
-}
-
-/*
- * Create a new library
- */
-int create_library(char *libname)
-{
-    FILE *libfp;
-    struct rdlm_hdr hdr;
-
-    hdr.magic = RDLAMAG;
-    hdr.hdrsize = 0;
-    hdr.date = time(NULL);
-    hdr.owner = getuid();
-    hdr.group = getgid();
-    hdr.mode = umask(022);
-    hdr.size = 0;
-
-    libfp = fopen(libname, "wb");
-    if (!libfp)
-        error_exit(1, true, "could not open '%s'\n", libname);
-
-    /* Write library header */
-    put_header(&hdr, libfp, NULL);
-
-    fclose(libfp);
-    return true;
-}
-
-/*
- * Add a module to the library
- */
-int add_module(FILE * libfp, const char *fname, char *modname)
-{
-    FILE *modfp;
-    struct rdlm_hdr hdr = { RDLMMAG, 0, 0, 0, 0, 0, 0 };
-    struct stat finfo;
-    int i;
-
-    if (options.verbose)
-        fprintf(stderr, "adding module %s\n", modname);
-
-    /* Initialize some fields in the module header */
-    if (stat(fname, &finfo) < 0)
-        error_exit(1, true, "could not stat '%s'", fname);
-    hdr.date = finfo.st_mtime;
-    hdr.owner = finfo.st_uid;
-    hdr.group = finfo.st_gid;
-    hdr.size = finfo.st_size;
-
-    modfp = fopen(fname, "rb");
-    if (!modfp)
-        error_exit(1, true, "could not open '%s'", fname);
-
-    /* Write module header */
-    put_header(&hdr, libfp, modname);
-
-    /* Put the module itself */
-    while (!feof(modfp)) {
-        i = fgetc(modfp);
-        if (i == EOF)
-            break;
-        if (fputc(i, libfp) == EOF)
-            error_exit(1, false, "write error");
-    }
-
-    fclose(modfp);
-    return true;
-}
-
-/*
- * Main
- */
-int main(int argc, char **argv)
-{
-    FILE *libfp, *tmpfp, *modfp = NULL;
-    struct stat finfo;
-    struct rdlm_hdr hdr;
-    char buf[MAXMODNAMELEN], *p = NULL;
-    char c;
-    int i;
-
-    progname = argv[0];
-    _argv = argv;
-
-    if (argc < 2) {
-        usage();
-        exit(1);
-    }
-
-    /* Check whether some modifiers were specified */
-    for (i = 1; i < strlen(argv[1]); i++) {
-        switch (c = argv[1][i]) {
-        case 'c':
-            options.createok = true;
-            break;
-        case 'f':
-            options.usefname = true;
-            break;
-        case 'l':
-            options.align = true;
-            break;
-        case 'o':
-            options.odate = true;
-            break;
-        case 'u':
-            options.fresh = true;
-            break;
-        case 'v':
-            options.verbose++;
-            break;
-        case 'V':
-            show_version();
-            exit(0);
-        default:
-            if (strchr(commands, c) == NULL)
-                error_exit(2, false, "invalid command or modifier '%c'",
-                           c);
-        }
-    }
-
-    if (argc < 3)
-        error_exit(2, false, "missing library name");
-
-    /* Process the command */
-    if (argv[1][0] == '-')
-        argv[1]++;
-    switch (c = argv[1][0]) {
-    case 'a':                  /* add a module */
-        if (argc < 4 || (!options.usefname && argc != 5))
-            error_exit(2, false, "invalid number of arguments");
-
-        /* Check if a library already exists. If not - create it */
-        if (access(argv[2], F_OK) < 0) {
-            if (!options.createok)
-                fprintf(stderr, "creating library %s\n", argv[2]);
-            create_library(argv[2]);
-        }
-
-        libfp = fopen(argv[2], "ab");
-        if (!libfp)
-            error_exit(1, true, "could not open '%s'", argv[2]);
-
-        if (!options.usefname)
-            add_module(libfp, argv[4], argv[3]);
-        else
-            for (i = 3; i < argc; i++)
-                add_module(libfp, argv[i], argv[i]);
-
-        fclose(libfp);
-        break;
-
-    case 'n':                  /* create library */
-        create_library(argv[2]);
-        break;
-
-    case 'x':                  /* extract module(s) */
-        if (!options.usefname)
-            argc--;
-        if (argc < 4)
-            error_exit(2, false, "required parameter missing");
-        p = options.usefname ? argv[3] : argv[4];
-    case 't':                  /* list library contents */
-        libfp = fopen(argv[2], "rb");
-        if (!libfp)
-            error_exit(1, true, "could not open '%s'\n", argv[2]);
-
-        /* Read library header */
-        if (fread(&hdr, 1, sizeof(hdr), libfp) != sizeof(hdr) ||
-            hdr.magic != RDLAMAG)
-            error_exit(1, false, "invalid library format");
-
-        /* Walk through the library looking for requested module */
-        while (!feof(libfp)) {
-            /* Read module header */
-            i = fread(&hdr, 1, sizeof(hdr), libfp);
-            if (feof(libfp))
-                break;
-            if (i != sizeof(hdr) || hdr.magic != RDLMMAG)
-                error_exit(1, false, "invalid module header");
-            /* Read module name */
-            i = hdr.hdrsize - sizeof(hdr);
-            if (i > sizeof(buf) || fread(buf, 1, i, libfp) != i)
-                error_exit(1, false, "invalid module name");
-            if (c == 'x') {
-                /* Check against desired name */
-                if (!strcmp(buf, argv[3])) {
-                    if (options.verbose)
-                        fprintf(stderr,
-                                "extracting module %s to file %s\n", buf,
-                                p);
-                    modfp = fopen(p, "wb");
-                    if (!modfp)
-                        error_exit(1, true, "could not open '%s'", p);
-                }
-            } else {
-                printf("%-40s ", buf);
-                if (options.verbose) {
-                    printf("%ld bytes", hdr.size);
-                }
-                putchar('\n');
-            }
-
-            copybytes(libfp, modfp, hdr.size);
-            if (modfp)
-                break;
-        }
-
-        fclose(libfp);
-        if (modfp)
-            fclose(modfp);
-        else if (c == 'x')
-            error_exit(1, false, "module '%s' not found in '%s'",
-                       argv[3], argv[2]);
-        break;
-
-    case 'r':                  /* replace module(s) */
-        argc--;
-        if (stat(argv[4], &finfo) < 0)
-            error_exit(1, true, "could not stat '%s'", argv[4]);
-    case 'd':                  /* delete module(s) */
-        if (argc < 4)
-            error_exit(2, false, "required parameter missing");
-
-        libfp = fopen(argv[2], "rb");
-        if (!libfp)
-            error_exit(1, true, "could not open '%s'", argv[2]);
-
-        /* Copy the library into a temporary file */
-        tmpfp = tmpfile();
-        if (!tmpfp)
-            error_exit(1, true, "could not open temporary file");
-
-        stat(argv[2], &finfo);
-        copybytes(libfp, tmpfp, finfo.st_size);
-        rewind(tmpfp);
-        freopen(argv[2], "wb", libfp);
-
-        /* Read library header and write it to a new file */
-        if (fread(&hdr, 1, sizeof(hdr), tmpfp) != sizeof(hdr) ||
-            hdr.magic != RDLAMAG)
-            error_exit(1, false, "invalid library format");
-        put_header(&hdr, libfp, NULL);
-
-        /* Walk through the library looking for requested module */
-        while (!feof(tmpfp)) {
-            /* Read module header */
-            if (fread(&hdr, 1, sizeof(hdr), tmpfp) != sizeof(hdr) ||
-                hdr.magic != RDLMMAG)
-                error_exit(1, false, "invalid module header");
-            /* Read module name */
-            i = hdr.hdrsize - sizeof(hdr);
-            if (i > sizeof(buf) || fread(buf, 1, i, tmpfp) != i)
-                error_exit(1, false, "invalid module name");
-            /* Check against desired name */
-            if (!strcmp(buf, argv[3]) &&
-                (c == 'd' || !options.odate
-                 || finfo.st_mtime <= hdr.date)) {
-                if (options.verbose)
-                    fprintf(stderr, "deleting module %s\n", buf);
-                fseek(tmpfp, hdr.size, SEEK_CUR);
-                break;
-            } else {
-                put_header(&hdr, libfp, buf);
-                copybytes(tmpfp, libfp, hdr.size);
-            }
-        }
-
-        if (c == 'r') {
-            /* Copy new module into library */
-            p = options.usefname ? argv[4] : argv[3];
-            add_module(libfp, argv[4], p);
-        }
-
-        /* Copy rest of library if any */
-        while (!feof(tmpfp)) {
-            if ((i = fgetc(tmpfp)) == EOF)
-                break;
-
-            if (fputc(i, libfp) == EOF)
-                error_exit(1, false, "write error");
-        }
-
-        fclose(libfp);
-        fclose(tmpfp);
-        break;
-
-    default:
-        error_exit(2, false, "invalid command '%c'\n", c);
-    }
-
-    return 0;
-}
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdlar.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/*
- * rdlar.h - definitions of new RDOFF library/archive format.
- */
-
-#ifndef RDOFF_RDLAR_H
-#define RDOFF_RDLAR_H 1
-
-#include "compiler.h"
-
-/* For non-POSIX operating systems */
-#ifndef HAVE_GETUID
-# define getuid() 0
-#endif
-#ifndef HAVE_GETGID
-# define getgid() 0
-#endif
-
-#define RDLAMAG		0x414C4452      /* Archive magic */
-#define RDLMMAG		0x4D4C4452      /* Member magic */
-
-#define MAXMODNAMELEN	256     /* Maximum length of module name */
-
-struct rdlm_hdr {
-    uint32_t magic;        /* Must be RDLAMAG */
-    uint32_t hdrsize;      /* Header size + sizeof(module_name) */
-    uint32_t date;         /* Creation date */
-    uint32_t owner;        /* UID */
-    uint32_t group;        /* GID */
-    uint32_t mode;         /* File mode */
-    uint32_t size;         /* File size */
-    /* NULL-terminated module name immediately follows */
-};
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdlib.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,292 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * rdlib.c - routines for manipulating RDOFF libraries (.rdl)
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define RDOFF_UTILS
-
-#include "rdoff.h"
-#include "rdlib.h"
-#include "rdlar.h"
-
-/* See Texinfo documentation about new RDOFF libraries format */
-
-int rdl_error = 0;
-
-char *rdl_errors[5] = {
-    "no error", "could not open file", "invalid file structure",
-    "file contains modules of an unsupported RDOFF version",
-    "module not found"
-};
-
-int rdl_verify(const char *filename)
-{
-    FILE *fp;
-    char buf[257];
-    int i;
-    int32_t length;
-    static char lastverified[256];
-    static int lastresult = -1;
-
-    if (lastresult != -1 && !strcmp(filename, lastverified))
-        return lastresult;
-
-    fp = fopen(filename, "rb");
-    strcpy(lastverified, filename);
-
-    if (!fp)
-        return (rdl_error = lastresult = 1);
-
-    while (!feof(fp)) {
-        i = 0;
-
-        while (fread(buf + i, 1, 1, fp) == 1 && i < 257 && buf[i])
-            i++;
-        if (feof(fp))
-            break;
-
-        if (buf[0] == '.') {
-            /*
-             * A special module, eg a signature block or a directory.
-             * Format of such a module is defined to be:
-             *   six char type identifier
-             *   int32_t count bytes content
-             *   content
-             * so we can handle it uniformaly with RDOFF2 modules.
-             */
-            fread(buf, 6, 1, fp);
-            buf[6] = 0;
-            /* Currently, nothing useful to do with signature block.. */
-        } else {
-            fread(buf, 6, 1, fp);
-            buf[6] = 0;
-            if (strncmp(buf, "RDOFF", 5)) {
-                fclose(fp);
-                return rdl_error = lastresult = 2;
-            } else if (buf[5] != '2') {
-                fclose(fp);
-                return rdl_error = lastresult = 3;
-            }
-        }
-        fread(&length, 4, 1, fp);
-        fseek(fp, length, SEEK_CUR);    /* skip over the module */
-    }
-    fclose(fp);
-    return lastresult = 0;      /* library in correct format */
-}
-
-int rdl_open(struct librarynode *lib, const char *name)
-{
-    int i = rdl_verify(name);
-    if (i)
-        return i;
-
-    lib->fp = NULL;
-    lib->name = strdup(name);
-    lib->referenced = 0;
-    lib->next = NULL;
-    return 0;
-}
-
-int rdl_searchlib(struct librarynode *lib, const char *label, rdffile * f)
-{
-    char buf[512];
-    int i, t;
-    void *hdr;
-    rdfheaderrec *r;
-    int32_t l;
-
-    rdl_error = 0;
-    lib->referenced++;
-
-    if (!lib->fp) {
-        lib->fp = fopen(lib->name, "rb");
-
-        if (!lib->fp) {
-            rdl_error = 1;
-            return 0;
-        }
-    } else
-        rewind(lib->fp);
-
-    while (!feof(lib->fp)) {
-        /*
-         * read the module name from the file, and prepend
-         * the library name and '.' to it.
-         */
-        strcpy(buf, lib->name);
-
-        i = strlen(lib->name);
-        buf[i++] = '.';
-        t = i;
-        while (fread(buf + i, 1, 1, lib->fp) == 1 && i < 512 && buf[i])
-            i++;
-
-        buf[i] = 0;
-
-        if (feof(lib->fp))
-            break;
-        if (!strcmp(buf + t, ".dir")) { /* skip over directory */
-            fread(&l, 4, 1, lib->fp);
-            fseek(lib->fp, l, SEEK_CUR);
-            continue;
-        }
-        /*
-         * open the RDOFF module
-         */
-        if (rdfopenhere(f, lib->fp, &lib->referenced, buf)) {
-            rdl_error = 16 * rdf_errno;
-            return 0;
-        }
-        /*
-         * read in the header, and scan for exported symbols
-         */
-        hdr = malloc(f->header_len);
-        rdfloadseg(f, RDOFF_HEADER, hdr);
-
-        while ((r = rdfgetheaderrec(f))) {
-            if (r->type != 3)   /* not an export */
-                continue;
-
-            if (!strcmp(r->e.label, label)) {   /* match! */
-                free(hdr);      /* reset to 'just open' */
-                f->header_loc = NULL;   /* state... */
-                f->header_fp = 0;
-                return 1;
-            }
-        }
-
-        /* find start of next module... */
-        i = f->eof_offset;
-        rdfclose(f);
-        fseek(lib->fp, i, SEEK_SET);
-    }
-
-    /*
-     * close the file if nobody else is using it
-     */
-    lib->referenced--;
-    if (!lib->referenced) {
-        fclose(lib->fp);
-        lib->fp = NULL;
-    }
-    return 0;
-}
-
-int rdl_openmodule(struct librarynode *lib, int moduleno, rdffile * f)
-{
-    char buf[512];
-    int i, cmod, t;
-    int32_t length;
-
-    lib->referenced++;
-
-    if (!lib->fp) {
-        lib->fp = fopen(lib->name, "rb");
-        if (!lib->fp) {
-            lib->referenced--;
-            return (rdl_error = 1);
-        }
-    } else
-        rewind(lib->fp);
-
-    cmod = -1;
-    while (!feof(lib->fp)) {
-        strcpy(buf, lib->name);
-        i = strlen(buf);
-        buf[i++] = '.';
-        t = i;
-        while (fread(buf + i, 1, 1, lib->fp) == 1 && i < 512 && buf[i])
-            i++;
-        buf[i] = 0;
-        if (feof(lib->fp))
-            break;
-
-        if (buf[t] != '.')      /* special module - not counted in the numbering */
-            cmod++;             /* of RDOFF modules - must be referred to by name */
-
-        if (cmod == moduleno) {
-            rdl_error = 16 *
-                rdfopenhere(f, lib->fp, &lib->referenced, buf);
-            lib->referenced--;
-            if (!lib->referenced) {
-                fclose(lib->fp);
-                lib->fp = NULL;
-            }
-            return rdl_error;
-        }
-
-        fread(buf, 6, 1, lib->fp);
-        buf[6] = 0;
-        if (buf[t] == '.') {
-            /* do nothing */
-        } else if (strncmp(buf, "RDOFF", 5)) {
-            if (!--lib->referenced) {
-                fclose(lib->fp);
-                lib->fp = NULL;
-            }
-            return rdl_error = 2;
-        } else if (buf[5] != '2') {
-            if (!--lib->referenced) {
-                fclose(lib->fp);
-                lib->fp = NULL;
-            }
-            return rdl_error = 3;
-        }
-
-        fread(&length, 4, 1, lib->fp);
-        fseek(lib->fp, length, SEEK_CUR);       /* skip over the module */
-    }
-    if (!--lib->referenced) {
-        fclose(lib->fp);
-        lib->fp = NULL;
-    }
-    return rdl_error = 4;       /* module not found */
-}
-
-void rdl_perror(const char *apname, const char *filename)
-{
-    if (rdl_error >= 16)
-        rdfperror(apname, filename);
-    else
-        fprintf(stderr, "%s:%s:%s\n", apname, filename,
-                rdl_errors[rdl_error]);
-}
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdlib.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * rdlib.h	Functions for manipulating libraries of RDOFF object files.
- */
-
-#ifndef RDOFF_RDLIB_H
-#define RDOFF_RDLIB_H 1
-
-struct librarynode {
-    char *name;
-    FILE *fp;                   /* initialised to NULL - always check */
-    int referenced;             /* & open if required. Close afterwards */
-    struct librarynode *next;   /* if ! referenced. */
-};
-
-extern int rdl_error;
-
-#define RDL_EOPEN     1
-#define RDL_EINVALID  2
-#define RDL_EVERSION  3
-#define RDL_ENOTFOUND 4
-
-int rdl_verify(const char *filename);
-int rdl_open(struct librarynode *lib, const char *filename);
-int rdl_searchlib(struct librarynode *lib, const char *label, rdffile * f);
-int rdl_openmodule(struct librarynode *lib, int module, rdffile * f);
-
-void rdl_perror(const char *apname, const char *filename);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdoff.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,610 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * rdoff.c	library of routines for manipulating rdoff files
- */
-
-/* TODO:	The functions in this module assume they are running
- *		on a little-endian machine. This should be fixed to
- *		make it portable.
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-#define RDOFF_UTILS
-
-#include "rdoff.h"
-
-#define newstr(str) strcpy(malloc(strlen(str) + 1),str)
-#define newstrcat(s1,s2) strcat(strcpy(malloc(strlen(s1) + strlen(s2) + 1), \
-                                       s1),s2)
-
-/*
- * Comment this out to allow the module to read & write header record types
- * that it isn't aware of. With this defined, unrecognised header records
- * will generate error number 8, reported as 'unknown extended header record'.
- */
-
-#define STRICT_ERRORS
-
-/* ========================================================================
- * Code for memory buffers (for delayed writing of header until we know
- * how int32_t it is).
- * ======================================================================== */
-
-static memorybuffer *newmembuf(void)
-{
-    memorybuffer *t;
-
-    t = malloc(sizeof(memorybuffer));
-    if (!t)
-        return NULL;
-
-    t->length = 0;
-    t->next = NULL;
-    return t;
-}
-
-static void membufwrite(memorybuffer * const b, void *data, int bytes)
-{
-    uint16_t w;
-    int32_t l;
-    char *c;
-
-    if (b->next) {              /* memory buffer full - use next buffer */
-        membufwrite(b->next, data, bytes);
-        return;
-    }
-
-    if ((bytes < 0 && b->length - bytes > BUF_BLOCK_LEN)
-        || (bytes > 0 && b->length + bytes > BUF_BLOCK_LEN)) {
-
-        /* buffer full and no next allocated... allocate and initialise next
-         * buffer */
-        b->next = newmembuf();
-        membufwrite(b->next, data, bytes);
-        return;
-    }
-
-    switch (bytes) {
-    case -4:                   /* convert to little-endian */
-        l = *(int32_t *)data;
-        b->buffer[b->length++] = l & 0xFF;
-        l >>= 8;
-        b->buffer[b->length++] = l & 0xFF;
-        l >>= 8;
-        b->buffer[b->length++] = l & 0xFF;
-        l >>= 8;
-        b->buffer[b->length++] = l & 0xFF;
-        break;
-
-    case -2:
-        w = *(uint16_t *) data;
-        b->buffer[b->length++] = w & 0xFF;
-        w >>= 8;
-        b->buffer[b->length++] = w & 0xFF;
-        break;
-
-    default:
-        c = data;
-        while (bytes--)
-            b->buffer[b->length++] = *c++;
-        break;
-    }
-}
-
-static void membufdump(memorybuffer * b, FILE * fp)
-{
-    if (!b)
-        return;
-
-    fwrite(b->buffer, 1, b->length, fp);
-
-    membufdump(b->next, fp);
-}
-
-static int membuflength(memorybuffer * b)
-{
-    if (!b)
-        return 0;
-    return b->length + membuflength(b->next);
-}
-
-static void freemembuf(memorybuffer * b)
-{
-    if (!b)
-        return;
-    freemembuf(b->next);
-    free(b);
-}
-
-/* =========================================================================
-   General purpose routines and variables used by the library functions
-   ========================================================================= */
-
-/*
- * translateint32_t() and translateint16_t()
- *
- * translate from little endian to local representation
- */
-int32_t translateint32_t(int32_t in)
-{
-    int32_t r;
-    uint8_t *i;
-
-    i = (uint8_t *)&in;
-    r = i[3];
-    r = (r << 8) + i[2];
-    r = (r << 8) + i[1];
-    r = (r << 8) + *i;
-
-    return r;
-}
-
-uint16_t translateint16_t(uint16_t in)
-{
-    uint16_t r;
-    uint8_t *i;
-
-    i = (uint8_t *)&in;
-    r = (i[1] << 8) + i[0];
-
-    return r;
-}
-
-/* Segment types */
-static char *knownsegtypes[8] = {
-    "NULL", "text", "data", "object comment",
-    "linked comment", "loader comment",
-    "symbolic debug", "line number debug"
-};
-
-/* Get a textual string describing the segment type */
-char *translatesegmenttype(uint16_t type)
-{
-    if (type < 8)
-        return knownsegtypes[type];
-    if (type < 0x0020)
-        return "reserved";
-    if (type < 0x1000)
-        return "reserved - Moscow";
-    if (type < 0x8000)
-        return "reserved - system dependant";
-    if (type < 0xFFFF)
-        return "reserved - other";
-    if (type == 0xFFFF)
-        return "invalid type code";
-    return "type code out of range";
-}
-
-/* This signature is written to the start of RDOFF files */
-const char *RDOFFId = RDOFF2_SIGNATURE;
-
-/* Error messages. Must correspond to the codes defined in rdoff.h */
-const char *rdf_errors[11] = {
-    /* 0 */ "no error occurred",
-    /* 1 */ "could not open file",
-    /* 2 */ "invalid file format",
-    /* 3 */ "error reading file",
-    /* 4 */ "unknown error",
-    /* 5 */ "header not read",
-    /* 6 */ "out of memory",
-    /* 7 */ "RDOFF v1 not supported",
-    /* 8 */ "unknown extended header record",
-    /* 9 */ "header record of known type but unknown length",
-    /* 10 */ "no such segment"
-};
-
-int rdf_errno = 0;
-
-/* ========================================================================
-   The library functions
-   ======================================================================== */
-
-int rdfopen(rdffile * f, const char *name)
-{
-    FILE *fp;
-
-    fp = fopen(name, "rb");
-    if (!fp)
-        return rdf_errno = RDF_ERR_OPEN;
-
-    return rdfopenhere(f, fp, NULL, name);
-}
-
-int rdfopenhere(rdffile * f, FILE * fp, int *refcount, const char *name)
-{
-    char buf[8];
-    int32_t initpos;
-    int32_t l;
-    uint16_t s;
-
-    if (translateint32_t(0x01020304) != 0x01020304) {
-        /* fix this to be portable! */
-        fputs("*** this program requires a little endian machine\n",
-              stderr);
-        fprintf(stderr, "01020304h = %08"PRIx32"h\n", translateint32_t(0x01020304));
-        exit(3);
-    }
-
-    f->fp = fp;
-    initpos = ftell(fp);
-
-    fread(buf, 6, 1, f->fp);    /* read header */
-    buf[6] = 0;
-
-    if (strcmp(buf, RDOFFId)) {
-        fclose(f->fp);
-        if (!strcmp(buf, "RDOFF1"))
-            return rdf_errno = RDF_ERR_VER;
-        return rdf_errno = RDF_ERR_FORMAT;
-    }
-
-    if (fread(&l, 1, 4, f->fp) != 4
-        || fread(&f->header_len, 1, 4, f->fp) != 4) {
-        fclose(f->fp);
-        return rdf_errno = RDF_ERR_READ;
-    }
-
-    f->header_ofs = ftell(f->fp);
-    f->eof_offset = f->header_ofs + translateint32_t(l) - 4;
-
-    if (fseek(f->fp, f->header_len, SEEK_CUR)) {
-        fclose(f->fp);
-        return rdf_errno = RDF_ERR_FORMAT;      /* seek past end of file...? */
-    }
-
-    if (fread(&s, 1, 2, f->fp) != 2) {
-        fclose(f->fp);
-        return rdf_errno = RDF_ERR_READ;
-    }
-
-    f->nsegs = 0;
-
-    while (s != 0) {
-        f->seg[f->nsegs].type = s;
-        if (fread(&f->seg[f->nsegs].number, 1, 2, f->fp) != 2 ||
-            fread(&f->seg[f->nsegs].reserved, 1, 2, f->fp) != 2 ||
-            fread(&f->seg[f->nsegs].length, 1, 4, f->fp) != 4) {
-            fclose(f->fp);
-            return rdf_errno = RDF_ERR_READ;
-        }
-
-        f->seg[f->nsegs].offset = ftell(f->fp);
-        if (fseek(f->fp, f->seg[f->nsegs].length, SEEK_CUR)) {
-            fclose(f->fp);
-            return rdf_errno = RDF_ERR_FORMAT;
-        }
-        f->nsegs++;
-
-        if (fread(&s, 1, 2, f->fp) != 2) {
-            fclose(f->fp);
-            return rdf_errno = RDF_ERR_READ;
-        }
-    }
-
-    if (f->eof_offset != ftell(f->fp) + 8) {    /* +8 = skip null segment header */
-        fprintf(stderr, "warning: eof_offset [%"PRId32"] and actual eof offset "
-                "[%ld] don't match\n", f->eof_offset, ftell(f->fp) + 8);
-    }
-    fseek(f->fp, initpos, SEEK_SET);
-    f->header_loc = NULL;
-
-    f->name = newstr(name);
-    f->refcount = refcount;
-    if (refcount)
-        (*refcount)++;
-    return RDF_OK;
-}
-
-int rdfclose(rdffile * f)
-{
-    if (!f->refcount || !--(*f->refcount)) {
-        fclose(f->fp);
-        f->fp = NULL;
-    }
-    free(f->name);
-
-    return 0;
-}
-
-/*
- * Print the message for last error (from rdf_errno)
- */
-void rdfperror(const char *app, const char *name)
-{
-    fprintf(stderr, "%s:%s: %s\n", app, name, rdf_errors[rdf_errno]);
-    if (rdf_errno == RDF_ERR_OPEN || rdf_errno == RDF_ERR_READ) {
-        perror(app);
-    }
-}
-
-/*
- * Find the segment by its number.
- * Returns segment array index, or -1 if segment with such number was not found.
- */
-int rdffindsegment(rdffile * f, int segno)
-{
-    int i;
-    for (i = 0; i < f->nsegs; i++)
-        if (f->seg[i].number == segno)
-            return i;
-    return -1;
-}
-
-/*
- * Load the segment. Returns status.
- */
-int rdfloadseg(rdffile * f, int segment, void *buffer)
-{
-    int32_t fpos;
-    size_t slen;
-
-    switch (segment) {
-    case RDOFF_HEADER:
-        fpos = f->header_ofs;
-        slen = f->header_len;
-        f->header_loc = (uint8_t *) buffer;
-        f->header_fp = 0;
-        break;
-    default:
-        if (segment < f->nsegs) {
-            fpos = f->seg[segment].offset;
-            slen = f->seg[segment].length;
-            f->seg[segment].data = (uint8_t *) buffer;
-        } else {
-            return rdf_errno = RDF_ERR_SEGMENT;
-        }
-    }
-
-    if (fseek(f->fp, fpos, SEEK_SET))
-        return rdf_errno = RDF_ERR_UNKNOWN;
-
-    if (fread(buffer, 1, slen, f->fp) != slen)
-        return rdf_errno = RDF_ERR_READ;
-
-    return RDF_OK;
-}
-
-/* Macros for reading integers from header in memory */
-
-#define RI8(v) v = f->header_loc[f->header_fp++]
-#define RI16(v) { v = (f->header_loc[f->header_fp] + \
-		       (f->header_loc[f->header_fp+1] << 8)); \
-		  f->header_fp += 2; }
-
-#define RI32(v) { v = (f->header_loc[f->header_fp] + \
-		       (f->header_loc[f->header_fp+1] << 8) + \
-		       (f->header_loc[f->header_fp+2] << 16) + \
-		       (f->header_loc[f->header_fp+3] << 24)); \
-		  f->header_fp += 4; }
-
-#define RS(str,max) { for(i=0;i<max;i++){\
-  RI8(str[i]); if (!str[i]) break;} str[i]=0; }
-
-/*
- * Read a header record.
- * Returns the address of record, or NULL in case of error.
- */
-rdfheaderrec *rdfgetheaderrec(rdffile * f)
-{
-    static rdfheaderrec r;
-    int i;
-
-    if (!f->header_loc) {
-        rdf_errno = RDF_ERR_HEADER;
-        return NULL;
-    }
-
-    if (f->header_fp >= f->header_len)
-        return 0;
-
-    RI8(r.type);
-    RI8(r.g.reclen);
-
-    switch (r.type) {
-    case RDFREC_RELOC:         /* Relocation record */
-    case RDFREC_SEGRELOC:
-        if (r.r.reclen != 8) {
-            rdf_errno = RDF_ERR_RECLEN;
-            return NULL;
-        }
-        RI8(r.r.segment);
-        RI32(r.r.offset);
-        RI8(r.r.length);
-        RI16(r.r.refseg);
-        break;
-
-    case RDFREC_IMPORT:        /* Imported symbol record */
-    case RDFREC_FARIMPORT:
-        RI8(r.i.flags);
-        RI16(r.i.segment);
-        RS(r.i.label, EXIM_LABEL_MAX);
-        break;
-
-    case RDFREC_GLOBAL:        /* Exported symbol record */
-        RI8(r.e.flags);
-        RI8(r.e.segment);
-        RI32(r.e.offset);
-        RS(r.e.label, EXIM_LABEL_MAX);
-        break;
-
-    case RDFREC_DLL:           /* DLL record */
-        RS(r.d.libname, MODLIB_NAME_MAX);
-        break;
-
-    case RDFREC_BSS:           /* BSS reservation record */
-        if (r.r.reclen != 4) {
-            rdf_errno = RDF_ERR_RECLEN;
-            return NULL;
-        }
-        RI32(r.b.amount);
-        break;
-
-    case RDFREC_MODNAME:       /* Module name record */
-        RS(r.m.modname, MODLIB_NAME_MAX);
-        break;
-
-    case RDFREC_COMMON:        /* Common variable */
-        RI16(r.c.segment);
-        RI32(r.c.size);
-        RI16(r.c.align);
-        RS(r.c.label, EXIM_LABEL_MAX);
-        break;
-
-    default:
-#ifdef STRICT_ERRORS
-        rdf_errno = RDF_ERR_RECTYPE;    /* unknown header record */
-        return NULL;
-#else
-        for (i = 0; i < r.g.reclen; i++)
-            RI8(r.g.data[i]);
-#endif
-    }
-    return &r;
-}
-
-/*
- * Rewind to the beginning of the file
- */
-void rdfheaderrewind(rdffile * f)
-{
-    f->header_fp = 0;
-}
-
-rdf_headerbuf *rdfnewheader(void)
-{
-    rdf_headerbuf *hb = malloc(sizeof(rdf_headerbuf));
-    if (hb == NULL)
-        return NULL;
-
-    hb->buf = newmembuf();
-    hb->nsegments = 0;
-    hb->seglength = 0;
-
-    return hb;
-}
-
-int rdfaddheader(rdf_headerbuf * h, rdfheaderrec * r)
-{
-#ifndef STRICT_ERRORS
-    int i;
-#endif
-    membufwrite(h->buf, &r->type, 1);
-    membufwrite(h->buf, &r->g.reclen, 1);
-
-    switch (r->type) {
-    case RDFREC_GENERIC:       /* generic */
-        membufwrite(h->buf, &r->g.data, r->g.reclen);
-        break;
-    case RDFREC_RELOC:
-    case RDFREC_SEGRELOC:
-        membufwrite(h->buf, &r->r.segment, 1);
-        membufwrite(h->buf, &r->r.offset, -4);
-        membufwrite(h->buf, &r->r.length, 1);
-        membufwrite(h->buf, &r->r.refseg, -2);  /* 9 bytes written */
-        break;
-
-    case RDFREC_IMPORT:        /* import */
-    case RDFREC_FARIMPORT:
-        membufwrite(h->buf, &r->i.flags, 1);
-        membufwrite(h->buf, &r->i.segment, -2);
-        membufwrite(h->buf, &r->i.label, strlen(r->i.label) + 1);
-        break;
-
-    case RDFREC_GLOBAL:        /* export */
-        membufwrite(h->buf, &r->e.flags, 1);
-        membufwrite(h->buf, &r->e.segment, 1);
-        membufwrite(h->buf, &r->e.offset, -4);
-        membufwrite(h->buf, &r->e.label, strlen(r->e.label) + 1);
-        break;
-
-    case RDFREC_DLL:           /* DLL */
-        membufwrite(h->buf, &r->d.libname, strlen(r->d.libname) + 1);
-        break;
-
-    case RDFREC_BSS:           /* BSS */
-        membufwrite(h->buf, &r->b.amount, -4);
-        break;
-
-    case RDFREC_MODNAME:       /* Module name */
-        membufwrite(h->buf, &r->m.modname, strlen(r->m.modname) + 1);
-        break;
-
-    default:
-#ifdef STRICT_ERRORS
-        return rdf_errno = RDF_ERR_RECTYPE;
-#else
-        for (i = 0; i < r->g.reclen; i++)
-            membufwrite(h->buf, r->g.data[i], 1);
-#endif
-    }
-    return 0;
-}
-
-int rdfaddsegment(rdf_headerbuf * h, int32_t seglength)
-{
-    h->nsegments++;
-    h->seglength += seglength;
-    return 0;
-}
-
-int rdfwriteheader(FILE * fp, rdf_headerbuf * h)
-{
-    int32_t l, l2;
-
-    fwrite(RDOFFId, 1, strlen(RDOFFId), fp);
-
-    l = membuflength(h->buf);
-    l2 = l + 14 + 10 * h->nsegments + h->seglength;
-    l = translateint32_t(l);
-    l2 = translateint32_t(l2);
-    fwrite(&l2, 4, 1, fp);      /* object length */
-    fwrite(&l, 4, 1, fp);       /* header length */
-
-    membufdump(h->buf, fp);
-
-    return 0;                   /* no error handling in here... CHANGE THIS! */
-}
-
-void rdfdoneheader(rdf_headerbuf * h)
-{
-    freemembuf(h->buf);
-    free(h);
-}
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdx.1	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-.TH RDX 1 "September 6, 1999" "Debian Project" "Debian Manual"
-.SH NAME
-rdx \- load and execute an RDOFF object
-.SH SYNOPSIS
-.B rdx
-.I object
-.SH DESCRIPTION
-.B rdx
-loads an RDOFF
-.IR object ,
-and then calls
-.RB ` _main ',
-which it expects to be a C-style function, accepting two parameters,
-.I argc
-and
-.I argv
-in normal C style.
-.SH AUTHORS
-Julian Hall <jules@earthcorp.com>.
-.PP
-This manual page was written by Matej Vela <vela@debian.org>.
--- a/nasmbuild/nasm-2.13rc9/rdoff/rdx.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * rdx.c	RDOFF Object File loader program
- */
-
-/* note: most of the actual work of this program is done by the modules
-   "rdfload.c", which loads and relocates the object file, and by "rdoff.c",
-   which contains general purpose routines to manipulate RDOFF object
-   files. You can use these files in your own program to load RDOFF objects
-   and execute the code in them in a similar way to what is shown here. */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-
-#include "rdfload.h"
-#include "symtab.h"
-
-typedef int (*main_fn) (int, char **);  /* Main function prototype */
-
-int main(int argc, char **argv)
-{
-    rdfmodule *m;
-    main_fn code;
-    symtabEnt *s;
-
-    if (argc < 2) {
-        puts("usage: rdx <rdoff-executable> [params]\n");
-        exit(255);
-    }
-
-    m = rdfload(argv[1]);
-
-    if (!m) {
-        rdfperror("rdx", argv[1]);
-        exit(255);
-    }
-
-    rdf_relocate(m);            /* in this instance, the default relocation
-                                   values will work fine, but they may need changing
-                                   in other cases... */
-
-    s = symtabFind(m->symtab, "_main");
-    if (!s) {
-        fprintf(stderr, "rdx: could not find symbol '_main' in '%s'\n",
-                argv[1]);
-        exit(255);
-    }
-
-    code = (main_fn)(size_t) s->offset;
-
-    argv++, argc--;             /* remove 'rdx' from command line */
-
-    return code(argc, argv);    /* execute */
-}
--- a/nasmbuild/nasm-2.13rc9/rdoff/segtab.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2014 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include "segtab.h"
-
-struct segtabnode {
-    int localseg;
-    int destseg;
-    int32_t offset;
-
-    struct segtabnode *left;
-    struct segtabnode *right;
-    /*
-     * counts of how many are left or right, for use in reorganising
-     * the tree
-     */
-    int leftcount;
-    int rightcount;
-};
-
-/*
- * init_seglocations()
- * add_seglocation()
- * get_seglocation()
- * done_seglocation()
- *
- * functions used by write_output() to manipulate associations
- * between segment numbers and locations (which are built up on a per
- * module basis, but we only need one module at a time...)
- *
- * implementation: we build a binary tree.
- */
-
-void init_seglocations(segtab * root)
-{
-    *root = NULL;
-}
-
-static void descend_tree_add(struct segtabnode **node,
-                      int localseg, int destseg, int32_t offset)
-{
-    struct segtabnode *n;
-
-    if (*node == NULL) {
-        *node = malloc(sizeof(**node));
-        if (!*node) {
-            fprintf(stderr, "segment table: out of memory\n");
-            exit(1);
-        }
-        (*node)->localseg = localseg;
-        (*node)->offset = offset;
-        (*node)->left = NULL;
-        (*node)->leftcount = 0;
-        (*node)->right = NULL;
-        (*node)->rightcount = 0;
-        (*node)->destseg = destseg;
-        return;
-    }
-
-    if (localseg < (*node)->localseg) {
-        (*node)->leftcount++;
-        descend_tree_add(&(*node)->left, localseg, destseg, offset);
-
-        if ((*node)->leftcount > (*node)->rightcount + 2) {
-            n = *node;
-            *node = n->left;
-            n->left = (*node)->right;
-            n->leftcount = (*node)->rightcount;
-            (*node)->right = n;
-            (*node)->rightcount = n->leftcount + n->rightcount + 1;
-        }
-    } else {
-        (*node)->rightcount++;
-        descend_tree_add(&(*node)->right, localseg, destseg, offset);
-
-        if ((*node)->rightcount > (*node)->leftcount + 2) {
-            n = *node;
-            *node = n->right;
-            n->right = (*node)->left;
-            n->rightcount = (*node)->leftcount;
-            (*node)->left = n;
-            (*node)->leftcount = n->leftcount + n->rightcount + 1;
-        }
-    }
-}
-
-void add_seglocation(segtab * root, int localseg, int destseg, int32_t offset)
-{
-    descend_tree_add((struct segtabnode **)root, localseg, destseg,
-                     offset);
-}
-
-int get_seglocation(segtab * root, int localseg, int *destseg,
-                    int32_t *offset)
-{
-    struct segtabnode *n = (struct segtabnode *)*root;
-
-    while (n && n->localseg != localseg) {
-        if (localseg < n->localseg)
-            n = n->left;
-        else
-            n = n->right;
-    }
-    if (n) {
-        *destseg = n->destseg;
-        *offset = n->offset;
-        return 1;
-    } else
-        return 0;
-}
-
-static void freenode(struct segtabnode *n)
-{
-    if (!n)
-        return;
-    freenode(n->left);
-    freenode(n->right);
-    free(n);
-}
-
-void done_seglocations(segtab * root)
-{
-    freenode(*root);
-    *root = NULL;
-}
-
-#if 0
-void printnode(int i, struct segtabnode *n)
-{
-    if (!n)
-        return;
-    printnode(i + 1, n->left);
-    printf("%*s%d %d %ld\n", i, "", n->localseg, n->destseg, n->offset);
-    printnode(i + 1, n->right);
-}
-
-void printtable()
-{
-    printnode(0, root);
-}
-#endif
--- a/nasmbuild/nasm-2.13rc9/rdoff/segtab.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#ifndef RDOFF_SEGTAB_H
-#define RDOFF_SEGTAB_H 1
-
-
-typedef void *segtab;
-
-void init_seglocations(segtab * r);
-void add_seglocation(segtab * r, int localseg, int destseg, int32_t offset);
-int get_seglocation(segtab * r, int localseg, int *destseg, int32_t *offset);
-void done_seglocations(segtab * r);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/rdoff/symtab.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/* 
- * symtab.c     Routines to maintain and manipulate a symbol table
- *
- *   These routines donated to the NASM effort by Graeme Defty.
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "symtab.h"
-#include "hash.h"
-
-#define SYMTABSIZE 64
-#define slotnum(x) (hash((x)) % SYMTABSIZE)
-
-/* ------------------------------------- */
-/* Private data types */
-
-typedef struct tagSymtabNode {
-    struct tagSymtabNode *next;
-    symtabEnt ent;
-} symtabNode;
-
-typedef symtabNode *(symtabTab[SYMTABSIZE]);
-
-typedef symtabTab *symtab;
-
-/* ------------------------------------- */
-void *symtabNew(void)
-{
-    symtab mytab;
-
-    mytab = (symtabTab *) calloc(SYMTABSIZE, sizeof(symtabNode *));
-    if (mytab == NULL) {
-        fprintf(stderr, "symtab: out of memory\n");
-        exit(3);
-    }
-
-    return mytab;
-}
-
-/* ------------------------------------- */
-void symtabDone(void *stab)
-{
-    symtab mytab = (symtab) stab;
-    int i;
-    symtabNode *this, *next;
-
-    for (i = 0; i < SYMTABSIZE; ++i) {
-
-        for (this = (*mytab)[i]; this; this = next) {
-            next = this->next;
-            free(this);
-        }
-
-    }
-    free(*mytab);
-}
-
-/* ------------------------------------- */
-void symtabInsert(void *stab, symtabEnt * ent)
-{
-    symtab mytab = (symtab) stab;
-    symtabNode *node;
-    int slot;
-
-    node = malloc(sizeof(symtabNode));
-    if (node == NULL) {
-        fprintf(stderr, "symtab: out of memory\n");
-        exit(3);
-    }
-
-    slot = slotnum(ent->name);
-
-    node->ent = *ent;
-    node->next = (*mytab)[slot];
-    (*mytab)[slot] = node;
-}
-
-/* ------------------------------------- */
-symtabEnt *symtabFind(void *stab, const char *name)
-{
-    symtab mytab = (symtab) stab;
-    int slot = slotnum(name);
-    symtabNode *node = (*mytab)[slot];
-
-    while (node) {
-        if (!strcmp(node->ent.name, name)) {
-            return &(node->ent);
-        }
-        node = node->next;
-    }
-
-    return NULL;
-}
-
-/* ------------------------------------- */
-void symtabDump(void *stab, FILE * of)
-{
-    symtab mytab = (symtab) stab;
-    int i;
-    char *SegNames[3] = { "code", "data", "bss" };
-
-    fprintf(of, "Symbol table is ...\n");
-    for (i = 0; i < SYMTABSIZE; ++i) {
-        symtabNode *l = (symtabNode *) (*mytab)[i];
-
-        if (l) {
-            fprintf(of, " ... slot %d ...\n", i);
-        }
-        while (l) {
-            if ((l->ent.segment) == -1) {
-                fprintf(of, "%-32s Unresolved reference\n", l->ent.name);
-            } else {
-                fprintf(of, "%-32s %s:%08"PRIx32" (%"PRId32")\n", l->ent.name,
-                        SegNames[l->ent.segment],
-                        l->ent.offset, l->ent.flags);
-            }
-            l = l->next;
-        }
-    }
-    fprintf(of, "........... end of Symbol table.\n");
-}
--- a/nasmbuild/nasm-2.13rc9/rdoff/symtab.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *   
- *   Copyright 1996-2009 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *     
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * symtab.h	Header file for symbol table manipulation routines
- */
-
-#ifndef RDOFF_SYMTAB_H
-#define RDOFF_SYMTAB_H 1
-
-
-typedef struct {
-    char *name;
-    int segment;
-    int32_t offset;
-    int32_t flags;
-} symtabEnt;
-
-void *symtabNew(void);
-void symtabDone(void *symtab);
-void symtabInsert(void *symtab, symtabEnt * ent);
-symtabEnt *symtabFind(void *symtab, const char *name);
-void symtabDump(void *symtab, FILE * of);
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/rdoff/test/Makefile	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-RDT  = $(patsubst %.asm,%.rdf,$(wildcard *.asm))
-NASM = ../../nasm
-
-all: $(RDT)
-
-%.rdf: %.asm
-	$(NASM) -f rdf -o $@ -l $*.lst $<
-
-clean:
-	rm -f *.rdf *.rdx *.lst
--- a/nasmbuild/nasm-2.13rc9/rdoff/test/makelib.sh	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-#! /bin/sh
-
-[ $1 ] || {
-    echo "Usage: $0 <library name> <module> [...]"
-    exit 1
-}
-
-libname=$1; shift
-
-rdflib c $libname
-
-for f in $*; do
-	rdflib a $libname $f $f
-done
--- a/nasmbuild/nasm-2.13rc9/rdoff/test/rdfseg.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-	;; program to test inter-segment production and linkage of RDF objects
-
-	;; [1] should produce segment base ref
-	;; [2] should produce standard relocation
-	
-[GLOBAL _main]
-[EXTERN _puts:	far]
-[BITS 16]
-	
-_main:
-	mov ax, seg _message	; 0000 [1]
-	mov ds, ax		; 0003
-	mov dx, _message	; 0005 [2]
-	call far _puts		; 0008 [2][1]
-	xor ax,ax		; 000D
-	int 21h			; 000F
-	
-[SECTION .data]
-_message:	db 'Hello, World', 10, 13, 0
-	
\ No newline at end of file
--- a/nasmbuild/nasm-2.13rc9/rdoff/test/rdfseg2.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-	;; library function for rdfseg - this file is linked as a far segment
-
-[BITS 16]
-[GLOBAL _puts]
-_puts:
-	;; can't remember how to print a string in DOS, but if anyone wants
-	;; to actually test this program, it should be fairly easy to put
-	;; in here!
-
-	retf
-
-	
\ No newline at end of file
--- a/nasmbuild/nasm-2.13rc9/rdoff/test/rdftest1.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-	;; program to test RDOFF production and linkage
-
-	;; items to test include:
-	;;	[1] relocation within the same segment in each module
-	;;	[2] relocation to different segments in same module
-	;;	[3] relocation to same segment in different module
-	;;	[4] relocation to different segment in different module
-	;;	[5] relative relocation to same module
-	;;	[6] relative relocation to different module
-	;;	[7] correct generation of BSS addresses
-
-[SECTION .text]
-[BITS 32]
-	
-_main:
-	mov ax,localdata	; [2] (16 bit) => 66 b8 0000
-	mov eax,localdata2	; [2] (32 bit) => b8 0000000a
-
-[EXTERN _fardata]
-
-	mov eax,[_fardata]	; [4] => a1 00000000 (+20)
-	mov cx,next		; [1] => 66 b9 0012
-next:
-	call localproc		; [5] => e8 00000019
-
-[EXTERN _farproc]
-	mov eax,_farproc	; [3] => b8 00000000 (+40+0)
-	call _farproc		; [6] => e8 -$ (-0+40+0) (=1f)
-
-	mov eax,localbss	; [7] => b8 00000000
-
-[GLOBAL _term]
-_term:	xor ax,ax		; => 66 31 c0
-	int 21h			; => cd 21
-	jmp _term		; => e9 -0a (=fffffff6)
-
-localproc:	
-	ret			; => c3
-
-[GLOBAL _test1proc]
-_test1proc:
-	call localproc		; [5] => e8 -$ (-0+0+?) (=-6=fffffffa)
-	ret			; => c3
-			
-[SECTION .data]
-[GLOBAL localdata2]
-localdata:	db 'localdata',0
-localdata2:	db 'localdata2',0
-farref:		dd _fardata	; [3] => 0 (+20)
-localref:	dd _main	; [2] => 0 (+0)
-
-[SECTION .bss]
-localbss:	resw 4		; reserve 8 bytes BSS
-	
\ No newline at end of file
--- a/nasmbuild/nasm-2.13rc9/rdoff/test/rdftest2.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-	;; rdftest2.asm - test linkage and generation of RDOFF files
-
-[SECTION .text]
-[BITS 32]
-
-[GLOBAL _farproc]
-[EXTERN _test1proc]
-[EXTERN localdata2]
-[EXTERN _term]
-_farproc:
-	
-	mov bx,localdata2	; [4] 0 => 66 bb 000a(+0)
-	mov eax,_term		; [3] 5 => b8 00000000(+26+0)
-	call _test1proc		; [6] A => e8 fffffff2(-40+0+31)(=ffffffe3)
-
-	mov eax,_farproc	; [1] => b8 00000000(+40)
-	add eax,[_fardata]	; [2] => 03 05 00000000(+20)
-
-	mov ebx,mybssdata	; [7] => bb 00000000(+08)
-	call myproc		; [5] => e8 00000001
-	ret
-
-myproc:
-	add eax,ebx
-	ret
-	
-[SECTION .data]
-[GLOBAL _fardata]
-_fardata:	dw _term	; [4]
-_localref:	dd _farproc	; [2]
-
-[SECTION .bss]
-mybssdata:	resw 1
--- a/nasmbuild/nasm-2.13rc9/rdoff/test/rdtlib.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-	;; library functions for rdtmain - test of rdx linking and execution
-
-	;; library function = _strcmp, defined as in C
-
-[SECTION .text]
-[BITS 32]
-
-[GLOBAL _strcmp]
-_strcmp:
-	push ebp
-	mov ebp,esp
-
-	;; ebp+8 = first paramater, ebp+12 = second
-
-	mov esi,[ebp+8]
-	mov edi,[ebp+12]
-
-.loop:
-	mov cl,byte [esi]
-	mov dl,byte [edi]
-	cmp cl,dl
-	jb .below
-	ja .above
-	or cl,cl
-	jz .match
-	inc esi
-	inc edi
-	jmp .loop
-
-.below:	
-	mov eax,-1
-	pop ebp
-	ret
-	
-.above:
-	mov eax,1
-	pop ebp
-	ret
-
-.match:
-	xor eax,eax
-	pop ebp
-	ret
-
-[SECTION .data]
-[GLOBAL _message]
-
-_message:	db 'hello',0
\ No newline at end of file
--- a/nasmbuild/nasm-2.13rc9/rdoff/test/rdtmain.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-	;; rdtmain - main part of test program for RDX execution.
-	;; returns true (0) if its parameter equals the phrase "hello"
-	;; "hello" is stored in the library part, to complicate the
-	;; linkage.
-
-	;; assemble and link with the following commands:
-	;; nasm -f rdf rdtmain.asm
-	;; nasm -f rdf rdtlib.asm
-	;; ldrdf rdtmain.rdf rdtlib.rdf -o rdxtest.rdx
-
-	;; run with 'rdx rdxtest.rdx [parameters]' on a Linux (or possibly
-	;; other 32 bit OS) systems (x86 architectures only!)
-	;; try using '&& echo Yes' afterwards to find out when it returns 0.
-	
-[EXTERN _strcmp]		; strcmp is an imported function
-[EXTERN _message]		; imported data
-[SECTION .text]
-[BITS 32]
-
-	;; main(int argc,char **argv)
-[GLOBAL _main]
-_main:
-	push ebp
-	mov ebp,esp
-
-	;; ebp+8 = argc, ebp+12 = argv
-
-	cmp dword [ebp+8],2
-	jb error		; cause error if < 1 parameters
-
-	mov eax, [ebp+12]	; eax = argv
-
-	mov ebx, [eax+4]	; ebx = argv[1]
-	mov ecx, _message	; ecx = "hello"
-
-	push ecx
-	push ebx
-	call _strcmp		; compare strings
-	add esp,8		; caller clears stack
-	
-	pop ebp
-	ret			; return return value of _strcmp
-	
-error:
-	mov eax,2		; return 2 on error
-	pop ebp
-	ret
--- a/nasmbuild/nasm-2.13rc9/rdoff/test/testlib.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-; program to test retrieval of and linkage to modules in libraries by
-; ldrdf
-
-[SECTION .text]
-[GLOBAL _main]
-[EXTERN _strcmp]
-
-_main:
-	push dword string1
-	push dword string2
-	call _strcmp
-	add esp,8		; doh! clear up stack ;-)
-	ret
-
-[SECTION .data]
-
-string1:	db 'abc',0	; try changing these strings and see
-string2:	db 'abd',0	; what happens!
--- a/nasmbuild/nasm-2.13rc9/stdlib/snprintf.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-/*
- * snprintf()
- *
- * Implement snprintf() in terms of vsnprintf()
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-
-#include "nasmlib.h"
-
-#if !defined(HAVE_SNPRINTF) && !defined(HAVE__SNPRINTF)
-
-int snprintf(char *str, size_t size, const char *format, ...)
-{
-    va_list ap;
-    int rv;
-
-    va_start(ap, format);
-    rv = vsnprintf(str, size, format, ap);
-    va_end(ap);
-
-    return rv;
-}
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/stdlib/strlcpy.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
- * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "compiler.h"
-
-/*
- * Copy src to string dst of size siz.  At most siz-1 characters
- * will be copied.  Always NUL terminates (unless siz == 0).
- * Returns strlen(src); if retval >= siz, truncation occurred.
- */
-#ifndef HAVE_STRLCPY
-
-size_t strlcpy(char *dst, const char *src, size_t siz)
-{
-    char *d = dst;
-    const char *s = src;
-    size_t n = siz;
-
-    /* Copy as many bytes as will fit */
-    if (n != 0) {
-	while (--n != 0) {
-	    if ((*d++ = *s++) == '\0')
-		break;
-	}
-    }
-
-    /* Not enough room in dst, add NUL and traverse rest of src */
-    if (n == 0) {
-	if (siz != 0)
-	    *d = '\0';		/* NUL-terminate dst */
-	while (*s++)
-	    ;
-    }
-
-    return(s - src - 1);	/* count does not include NUL */
-}
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/stdlib/strnlen.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2016 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-#include "compiler.h"
-#include <string.h>
-
-#ifndef HAVE_STRNLEN
-
-size_t strnlen(const char *s, size_t maxlen)
-{
-    const char *end = memchr(s, 0, maxlen);
-
-    return end ? (size_t)(end - s) : maxlen;
-}
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/stdlib/vsnprintf.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-/*
- * vsnprintf()
- *
- * Poor substitute for a real vsnprintf() function for systems
- * that don't have them...
- */
-
-#include "compiler.h"
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-
-#include "nasmlib.h"
-#include "error.h"
-
-#if !defined(HAVE_VSNPRINTF) && !defined(HAVE__VSNPRINTF)
-
-#define BUFFER_SIZE     65536   /* Bigger than any string we might print... */
-
-static char snprintf_buffer[BUFFER_SIZE];
-
-int vsnprintf(char *str, size_t size, const char *format, va_list ap)
-{
-    int rv, bytes;
-
-    if (size > BUFFER_SIZE) {
-        nasm_panic(ERR_NOFILE,
-                   "vsnprintf: size (%d) > BUFFER_SIZE (%d)",
-                   size, BUFFER_SIZE);
-        size = BUFFER_SIZE;
-    }
-
-    rv = vsprintf(snprintf_buffer, format, ap);
-    if (rv >= BUFFER_SIZE)
-        nasm_panic(ERR_NOFILE, "vsnprintf buffer overflow");
-
-    if (size > 0) {
-        if ((size_t)rv < size-1)
-            bytes = rv;
-        else
-            bytes = size-1;
-        memcpy(str, snprintf_buffer, bytes);
-        str[bytes] = '\0';
-    }
-
-    return rv;
-}
-
-#endif
--- a/nasmbuild/nasm-2.13rc9/test/Makefile	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-.SUFFIXES: .bin .o .o64 .obj .obj64 .exe .asm .lst .pl
-
-NASM	= ../nasm
-NASMOPT = -Ox -I../misc $(OPT)
-PERL	= perl
-TESTS	= $(wildcard *.asm)
-
-$(NASM):
-	$(MAKE) -C ..
-
-%.bin: %.asm $(NASM)
-	$(NASM) $(NASMOPT) -f bin -o $@ -l $*.lst $<
-
-%.ith: %.asm $(NASM)
-	$(NASM) $(NASMOPT) -f ith -o $@ -l $*.lst $<
-
-%.srec: %.asm $(NASM)
-	$(NASM) $(NASMOPT) -f srec -o $@ -l $*.lst $<
-
-%.o: %.asm $(NASM)
-	$(NASM) $(NASMOPT) -f elf32 -o $@ -l $*.lst $<
-
-%.o64: %.asm $(NASM)
-	$(NASM) $(NASMOPT) -f elf64 -o $@ -l $*.lst $<
-
-%.obj: %.asm $(NASM)
-	$(NASM) $(NASMOPT) -f obj -o $@ -l $*.lst $<
-
-%.coff: %.asm $(NASM)
-	$(NASM) $(NASMOPT) -f coff -o $@ -l $*.lst $<
-
-%.win32: %.asm $(NASM)
-	$(NASM) $(NASMOPT) -f win32 -o $@ -l $*.lst $<
-
-%.win64: %.asm $(NASM)
-	$(NASM) $(NASMOPT) -f win64 -o $@ -l $*.lst $<
-
-%.mo32: %.asm $(NASM)
-	$(NASM) $(NASMOPT) -f macho32 -o $@ -l $*.lst $<
-
-%.mo64: %.asm $(NASM)
-	$(NASM) $(NASMOPT) -f macho64 -o $@ -l $*.lst $<
-
-%.dbg: %.asm $(NASM)
-	$(NASM) $(NASMOPT) -f dbg -o $@ -l $*.lst $<
-
-%.asm: %.pl
-	$(PERL) $< > $@
-
-%.i: %.asm $(NASM)
-	$(NASM) $(NASMOPT) -E -o $@ $<
-
-all:
-
-golden: performtest.pl $(TESTS)
-	$(PERL) performtest.pl --golden --nasm='$(NASM)' $(TESTS)
-
-test:	performtest.pl $(NASM) $(TESTS)
-	$(PERL) performtest.pl --nasm='$(NASM)' $(TESTS)
-
-diff:	performtest.pl $(NASM) $(TESTS)
-	$(PERL) performtest.pl --diff --nasm='$(NASM)' $(TESTS)
-
-clean:
-	rm -f *.com *.o *.o64 *.obj *.win32 *.win64 *.exe *.lst *.bin
-	rm -f *.dbg *.coff *.ith *.srec *.mo32 *.mo64 *.i
-	rm -rf testresults
-	rm -f elftest elftest64
-
-spotless: clean
-	rm -rf golden
-
-#
-# Test for ELF32 shared libraries; assumes an x86 Linux system
-#
-elfso.o: elfso.asm $(NASM)
-	$(NASM) $(NASMOPT) -f elf32 -F stabs -o $@ -l $*.lst $<
-
-elfso.so: elfso.o
-	$(LD) -m elf_i386 -shared -o $@ $<
-
-elftest: elftest.c elfso.so
-	$(CC) -g -m32 -o $@ $^
-	-env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH ./elftest
-
-#
-# Test for ELF64 shared libraries; assumes an x86-64 Linux system
-#
-elf64so.o: elf64so.asm $(NASM)
-	$(NASM) $(NASMOPT) -f elf64 -F dwarf -o $@ -l $*.lst $<
-
-elf64so.so: elf64so.o
-	$(LD) -shared -o $@ $<
-
-elftest64: elftest64.c elf64so.so
-	$(CC) -g -o $@ $^
-	-env LD_LIBRARY_PATH=.:$$LD_LIBRARY_PATH ./elftest64
--- a/nasmbuild/nasm-2.13rc9/test/_file_.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-;Testname=bin; Arguments=-fbin -o_file_.bin; Files=stdout stderr _file_.bin
-	db __FILE__, `\r\n`
-	db __FILE__, `\r\n`
-	dw __LINE__
-	dw __LINE__
--- a/nasmbuild/nasm-2.13rc9/test/_version.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-;Testname=version; Arguments=-v; Files=stdout
-;Dummy test to record version numbers
--- a/nasmbuild/nasm-2.13rc9/test/a32offs.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -oa32offs.bin; Files=a32offs.bin stdout stderr
-;Testname=optimized;   Arguments=-Ox -fbin -oa32offs.bin; Files=a32offs.bin stdout stderr
-	bits 16
-foo:	a32 loop foo
-bar:	loop bar, ecx
-	
-	bits 32
-baz:	a16 loop baz
-qux:	loop qux, cx
--- a/nasmbuild/nasm-2.13rc9/test/absolute.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-;Testname=bin; Arguments=-fbin -oabsolute.bin; Files=stdout stderr absolute.bin
-	org 7c00h
-init_foo:
-	jmp init_bar
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	
-init_bar:
-	mov [b1],dl
-	mov [b2],edx
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	nop
-	ret
-		
-	absolute init_bar+7
-b1:	resb 1
-b2:	resd 6
-
--- a/nasmbuild/nasm-2.13rc9/test/addr64x.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-;Testname=O0; Arguments=-O0 -fbin -oaddr64.bin; Files=stdout stderr addr64.bin
-;Testname=O1; Arguments=-O1 -fbin -oaddr64.bin; Files=stdout stderr addr64.bin
-;Testname=Ox; Arguments=-Ox -fbin -oaddr64.bin; Files=stdout stderr addr64.bin
-	bits	64
-	mov	rdx,[rax]
-	mov	eax,[byte rsp+0x01]
-	mov	eax,[byte rsp-0x01]
-	mov	eax,[byte rsp+0xFF]
-	mov	eax,[byte rsp-0xFF]
-	mov	eax,[rsp+0x08]
-	mov	eax,[rsp-0x01]
-	mov	eax,[rsp+0xFF]
-	mov	eax,[rsp-0xFF]
-	mov	rax,[rsp+56]
-	mov	[rsi],dl
-	mov	byte [rsi],'-'
-	mov	[rsi],al
-	mov	byte [rsi],' '
--- a/nasmbuild/nasm-2.13rc9/test/align13.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -oalign13.bin; Files=stdout stderr align13.bin
-;Testname=optimized; Arguments=-Ox -fbin -oalign13.bin; Files=stdout stderr align13.bin
-
-; Test of non-power-of-2 alignment
-
-	bits 32
-
-	inc eax
-	inc eax
-	align 13
-	inc eax
-	inc eax
-	align 13
-	inc eax
-	inc eax
-	align 13
-	align 13 ;should do nothing
-	inc eax
-	inc eax
--- a/nasmbuild/nasm-2.13rc9/test/align13s.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -oalign13s.bin; Files=stdout stderr align13s.bin
-;Testname=optimized; Arguments=-Ox -fbin -oalign13s.bin; Files=stdout stderr align13s.bin
-
-; Test of non-power-of-2 alignment
-
-%use smartalign
-
-	bits 32
-
-	inc eax
-	inc eax
-	align 13
-	inc eax
-	inc eax
-	align 13
-	inc eax
-	inc eax
-	align 13
-	inc eax
-	inc eax
--- a/nasmbuild/nasm-2.13rc9/test/alonesym-obj.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,166 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fobj -oalonesym-obj.obj; Files=stdout stderr alonesym-obj.obj
-;Testname=optimized; Arguments=-Ox -fobj -oalonesym-obj.obj; Files=stdout stderr alonesym-obj.obj
-
-section         DOS32DATA align=16 public use32 FLAT class=DOS32DATA
-
-                global sym0000
-                global sym0001
-                global sym0002
-                global sym0003
-                global sym0004
-                global sym0005
-                global sym0006
-                global sym0007
-                global sym0008
-                global sym0009
-                global sym0010
-                global sym0011
-                global sym0012
-                global sym0013
-                global sym0014
-                global sym0015
-                global sym0016
-                global sym0017
-                global sym0018
-                global sym0019
-                global sym0020
-                global sym0021
-                global sym0022
-                global sym0023
-                global sym0024
-                global sym0025
-                global sym0026
-                global sym0027
-                global sym0028
-                global sym0029
-                global sym0030
-                global sym0031
-                global sym0032
-                global sym0033
-                global sym0034
-                global sym0035
-                global sym0036
-                global sym0037
-                global sym0038
-                global sym0039
-                global sym0040
-                global sym0041
-                global sym0042
-                global sym0043
-                global sym0044
-                global sym0045
-                global sym0046
-                global sym0047
-                global sym0048
-                global sym0049
-                global sym0050
-                global sym0051
-                global sym0052
-                global sym0053
-                global sym0054
-                global sym0055
-                global sym0056
-                global sym0057
-                global sym0058
-                global sym0059
-                global sym0060
-                global sym0061
-                global sym0062
-                global sym0063
-                global sym0064
-                global sym0065
-                global sym0066
-                global sym0067
-                global sym0068
-                global sym0069
-                global sym0070
-                global sym0071
-                global sym0072
-                global sym0073
-                global sym0074
-                global sym0075
-                global sym0076
-                global sym0077
-                global s
-
-
-                resb 20000h
-sym0000         resd 1
-sym0001         resd 1
-sym0002         resd 1
-sym0003         resd 1
-sym0004         resd 1
-sym0005         resd 1
-sym0006         resd 1
-sym0007         resd 1
-sym0008         resd 1
-sym0009         resd 1
-sym0010         resd 1
-sym0011         resd 1
-sym0012         resd 1
-sym0013         resd 1
-sym0014         resd 1
-sym0015         resd 1
-sym0016         resd 1
-sym0017         resd 1
-sym0018         resd 1
-sym0019         resd 1
-sym0020         resd 1
-sym0021         resd 1
-sym0022         resd 1
-sym0023         resd 1
-sym0024         resd 1
-sym0025         resd 1
-sym0026         resd 1
-sym0027         resd 1
-sym0028         resd 1
-sym0029         resd 1
-sym0030         resd 1
-sym0031         resd 1
-sym0032         resd 1
-sym0033         resd 1
-sym0034         resd 1
-sym0035         resd 1
-sym0036         resd 1
-sym0037         resd 1
-sym0038         resd 1
-sym0039         resd 1
-sym0040         resd 1
-sym0041         resd 1
-sym0042         resd 1
-sym0043         resd 1
-sym0044         resd 1
-sym0045         resd 1
-sym0046         resd 1
-sym0047         resd 1
-sym0048         resd 1
-sym0049         resd 1
-sym0050         resd 1
-sym0051         resd 1
-sym0052         resd 1
-sym0053         resd 1
-sym0054         resd 1
-sym0055         resd 1
-sym0056         resd 1
-sym0057         resd 1
-sym0058         resd 1
-sym0059         resd 1
-sym0060         resd 1
-sym0061         resd 1
-sym0062         resd 1
-sym0063         resd 1
-sym0064         resd 1
-sym0065         resd 1
-sym0066         resd 1
-sym0067         resd 1
-sym0068         resd 1
-sym0069         resd 1
-sym0070         resd 1
-sym0071         resd 1
-sym0072         resd 1
-sym0073         resd 1
-sym0074         resd 1
-sym0075         resd 1
-sym0076         resd 1
-sym0077         resd 1
-s               resd 1
--- a/nasmbuild/nasm-2.13rc9/test/andbyte.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-;Testname=test; Arguments=-fbin -oandbyte.bin; Files=stdout stderr andbyte.bin
-;Testname=otest; Arguments=-Ox -fbin -oandbyte.bin; Files=stdout stderr andbyte.bin
-
-	bits 16
-
-	add sp, byte -0x10
-	add sp, -0x10
-	adc sp, byte -0x10
-	adc sp, -0x10
-	and sp, byte -0x10
-	and sp, -0x10
-	sbb sp, byte -0x10
-	sbb sp, -0x10
-	sub sp, byte -0x10
-	sub sp, -0x10
--- a/nasmbuild/nasm-2.13rc9/test/aoutso.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -faoutb -oaoutso.o; Files=stdout stderr aoutso.o
-;Testname=optimized;   Arguments=-Ox -faoutb -oaoutso.o; Files=stdout stderr aoutso.o
-
-; test source file for assembling to NetBSD/FreeBSD a.out shared library
-; build with:
-;    nasm -f aoutb aoutso.asm
-;    ld -Bshareable -o aoutso.so aoutso.o
-; test with:
-;    cc -o aoutso aouttest.c aoutso.so
-;    ./aoutso
-
-; This file should test the following:
-; [1] Define and export a global text-section symbol
-; [2] Define and export a global data-section symbol
-; [3] Define and export a global BSS-section symbol
-; [4] Define a non-global text-section symbol
-; [5] Define a non-global data-section symbol
-; [6] Define a non-global BSS-section symbol
-; [7] Define a COMMON symbol
-; [8] Define a NASM local label
-; [9] Reference a NASM local label
-; [10] Import an external symbol
-; [11] Make a PC-relative call to an external symbol
-; [12] Reference a text-section symbol in the text section
-; [13] Reference a data-section symbol in the text section
-; [14] Reference a BSS-section symbol in the text section
-; [15] Reference a text-section symbol in the data section
-; [16] Reference a data-section symbol in the data section
-; [17] Reference a BSS-section symbol in the data section
-
-	  BITS 32
-	  EXTERN __GLOBAL_OFFSET_TABLE_
-	  GLOBAL _lrotate:function ; [1]
-	  GLOBAL _greet:function ; [1]
-	  GLOBAL _asmstr:data _asmstr.end-_asmstr ; [2]
-	  GLOBAL _textptr:data 4 ; [2]
-	  GLOBAL _selfptr:data 4 ; [2]
-	  GLOBAL _integer:data 4 ; [3]
-	  EXTERN _printf	; [10]
-	  COMMON _commvar 4	; [7]
-
-	  SECTION .text
-
-; prototype: long lrotate(long x, int num);
-_lrotate:			; [1]
-	  push ebp
-	  mov ebp,esp
-	  mov eax,[ebp+8]
-	  mov ecx,[ebp+12]
-.label	  rol eax,1		; [4] [8]
-	  loop .label		; [9] [12]
-	  mov esp,ebp
-	  pop ebp
-	  ret
-
-; prototype: void greet(void);
-_greet	  push ebx		; we'll use EBX for GOT, so save it
-	  call .getgot
-.getgot:  pop ebx
-	  add ebx,__GLOBAL_OFFSET_TABLE_ + $$ - .getgot wrt ..gotpc
-	  mov eax,[ebx+_integer wrt ..got] ; [14]
-	  mov eax,[eax]
-	  inc eax
-	  mov [ebx+localint wrt ..gotoff],eax ; [14]
-	  mov eax,[ebx+_commvar wrt ..got]
-	  push dword [eax]
-	  mov eax,[ebx+localptr wrt ..gotoff] ; [13]
-	  push dword [eax]
-	  mov eax,[ebx+_integer wrt ..got] ; [1] [14]
-	  push dword [eax]
-	  lea eax,[ebx+_printfstr wrt ..gotoff]
-	  push eax		; [13]
-	  call _printf wrt ..plt ; [11]
-	  add esp,16
-	  pop ebx
-	  ret
-
-	  SECTION .data
-
-; a string
-_asmstr	  db 'hello, world', 0	; [2]
-.end
-
-; a string for Printf
-_printfstr db "integer==%d, localint==%d, commvar=%d"
-	  db 10, 0
-
-; some pointers
-localptr  dd localint		; [5] [17]
-_textptr  dd _greet wrt ..sym	; [15]
-_selfptr  dd _selfptr wrt ..sym	; [16]
-
-	  SECTION .bss
-
-; an integer
-_integer  resd 1		; [3]
-
-; a local integer
-localint  resd 1		; [6]
--- a/nasmbuild/nasm-2.13rc9/test/aouttest.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -faout -oaouttest.o; Files=stdout stderr aouttest.o
-;Testname=optimized;   Arguments=-Ox -faout -oaouttest.o; Files=stdout stderr aouttest.o
-
-; test source file for assembling to a.out
-; build with:
-;    nasm -f aout aouttest.asm
-;    gcc -o aouttest aouttest.c aouttest.o
-; (assuming your gcc is a.out)
-
-; This file should test the following:
-; [1] Define and export a global text-section symbol
-; [2] Define and export a global data-section symbol
-; [3] Define and export a global BSS-section symbol
-; [4] Define a non-global text-section symbol
-; [5] Define a non-global data-section symbol
-; [6] Define a non-global BSS-section symbol
-; [7] Define a COMMON symbol
-; [8] Define a NASM local label
-; [9] Reference a NASM local label
-; [10] Import an external symbol
-; [11] Make a PC-relative call to an external symbol
-; [12] Reference a text-section symbol in the text section
-; [13] Reference a data-section symbol in the text section
-; [14] Reference a BSS-section symbol in the text section
-; [15] Reference a text-section symbol in the data section
-; [16] Reference a data-section symbol in the data section
-; [17] Reference a BSS-section symbol in the data section
-
-	  BITS 32
-	  GLOBAL _lrotate	; [1]
-	  GLOBAL _greet		; [1]
-	  GLOBAL _asmstr	; [2]
-	  GLOBAL _textptr	; [2]
-	  GLOBAL _selfptr	; [2]
-	  GLOBAL _integer	; [3]
-	  EXTERN _printf	; [10]
-	  COMMON _commvar 4	; [7]
-
-	  SECTION .text
-
-; prototype: long lrotate(long x, int num);
-_lrotate:			; [1]
-	  push ebp
-	  mov ebp,esp
-	  mov eax,[ebp+8]
-	  mov ecx,[ebp+12]
-.label	  rol eax,1		; [4] [8]
-	  loop .label		; [9] [12]
-	  mov esp,ebp
-	  pop ebp
-	  ret
-
-; prototype: void greet(void);
-_greet	  mov eax,[_integer]	; [14]
-	  inc eax
-	  mov [localint],eax	; [14]
-	  push dword [_commvar]
-	  mov eax,[localptr]	; [13]
-	  push dword [eax]
-	  push dword [_integer]	; [1] [14]
-	  push dword _printfstr	; [13]
-	  call _printf		; [11]
-	  add esp,16
-	  ret
-
-	  SECTION .data
-
-; a string
-_asmstr	  db 'hello, world', 0	; [2]
-
-; a string for Printf
-_printfstr db "integer==%d, localint==%d, commvar=%d"
-	  db 10, 0
-
-; some pointers
-localptr  dd localint		; [5] [17]
-_textptr  dd _greet		; [15]
-_selfptr  dd _selfptr		; [16]
-
-	  SECTION .bss
-
-; an integer
-_integer  resd 1		; [3]
-
-; a local integer
-localint  resd 1		; [6]
--- a/nasmbuild/nasm-2.13rc9/test/aouttest.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/*
- * test source file for assembling to a.out
- * build with:
- *    nasm -f aout aouttest.asm
- *    gcc -o aouttest aouttest.c aouttest.o
- * (assuming your gcc is a.out)
- */
-
-#include <stdio.h>
-#include <inttypes.h>
-
-extern int lrotate(int32_t, int);
-extern void greet(void);
-extern int8_t asmstr[];
-extern void *selfptr;
-extern void *textptr;
-extern int integer, commvar;
-
-int main(void)
-{
-
-    printf("Testing lrotate: should get 0x00400000, 0x00000001\n");
-    printf("lrotate(0x00040000, 4) = 0x%08lx\n", lrotate(0x40000, 4));
-    printf("lrotate(0x00040000, 14) = 0x%08lx\n", lrotate(0x40000, 14));
-
-    printf("This string should read `hello, world': `%s'\n", asmstr);
-
-    printf("The integers here should be 1234, 1235 and 4321:\n");
-    integer = 1234;
-    commvar = 4321;
-    greet();
-
-    printf("These pointers should be equal: %p and %p\n", &greet, textptr);
-
-    printf("So should these: %p and %p\n", selfptr, &selfptr);
-}
--- a/nasmbuild/nasm-2.13rc9/test/avx.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -oavx.bin; Files=stdout stderr avx.bin
-;Testname=optimized;   Arguments=-Ox -fbin -oavx.bin; Files=stdout stderr avx.bin
-
-		bits 64
-		blendvpd	xmm2,xmm1,xmm0
-
-		vblendvpd	xmm2,xmm1,xmm0,xmm0
-		vblendvpd	xmm2,xmm1,xmm0
-		vblendvpd	ymm2,ymm1,ymm0,ymm0
-		vblendvpd	ymm2,ymm1,ymm0
-
-		vcvtsi2sd	xmm9,xmm10,ecx
-		vcvtsi2sd	xmm9,xmm10,rcx
-		vcvtsi2sd	xmm9,xmm10,dword [rdi]
-		vcvtsi2sd	xmm9,xmm10,qword [rdi]
-
-		vpextrb		[rax],xmm1,0x33
-		vpextrw		[rax],xmm1,0x33
-		vpextrd		[rax],xmm1,0x33
-		vpextrq		[rax],xmm1,0x33
-		vpextrb		rax,xmm1,0x33
-		vpextrw		rax,xmm1,0x33
-		vpextrd		rax,xmm1,0x33
-		vpextrq		rax,xmm1,0x33
-		vpextrb		eax,xmm1,0x33
-		vpextrw		eax,xmm1,0x33
-		vpextrd		eax,xmm1,0x33
-;		vpextrq		eax,xmm1,0x33
-
-		vcvtpd2ps	xmm0,xmm1
-		vcvtpd2ps	xmm0,oword [rsi]
-		vcvtpd2ps	xmm0,ymm1
-		vcvtpd2ps	xmm0,yword [rsi]
-;		vcvtpd2ps	xmm0,[rsi]
-
-		vcvtpd2dq	xmm0,xmm1
-		vcvtpd2dq	xmm0,oword [rsi]
-		vcvtpd2dq	xmm0,ymm1
-		vcvtpd2dq	xmm0,yword [rsi]
-;		vcvtpd2dq	xmm0,[rsi]
-
-		vcvttpd2dq	xmm0,xmm1
-		vcvttpd2dq	xmm0,oword [rsi]
-		vcvttpd2dq	xmm0,ymm1
-		vcvttpd2dq	xmm0,yword [rsi]
-;		vcvttpd2dq	xmm0,[rsi]
--- a/nasmbuild/nasm-2.13rc9/test/avx005.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,529 +0,0 @@
-;Testname=avx005; Arguments=-fbin -oavx005.bin -Ox; Files=stdout stderr avx005.bin
-
-%define regxmm xmm0
-%define regymm ymm0
-%define mem [0]
-%define imm 3
-
-%macro x 1+.nolist
- %1 ; comment this line if RELAXed variants are not supported
-%endmacro
-
-  VFMADDSUB132PS regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMADDSUB132PS regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMADDSUB132PS regymm,regymm,mem        ; VEX_FMA,SY
-  VFMADDSUB132PS regymm,regymm,regymm     ; VEX_FMA
-
-x VFMADDSUB312PS regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMADDSUB312PS regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMADDSUB312PS regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMADDSUB312PS regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMADDSUB132PD regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMADDSUB132PD regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMADDSUB132PD regymm,regymm,mem        ; VEX_FMA,SY
-  VFMADDSUB132PD regymm,regymm,regymm     ; VEX_FMA
-
-x VFMADDSUB312PD regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMADDSUB312PD regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMADDSUB312PD regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMADDSUB312PD regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMSUBADD132PS regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMSUBADD132PS regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMSUBADD132PS regymm,regymm,mem        ; VEX_FMA,SY
-  VFMSUBADD132PS regymm,regymm,regymm     ; VEX_FMA
-
-x VFMSUBADD312PS regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMSUBADD312PS regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMSUBADD312PS regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMSUBADD312PS regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMSUBADD132PD regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMSUBADD132PD regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMSUBADD132PD regymm,regymm,mem        ; VEX_FMA,SY
-  VFMSUBADD132PD regymm,regymm,regymm     ; VEX_FMA
-
-x VFMSUBADD312PD regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMSUBADD312PD regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMSUBADD312PD regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMSUBADD312PD regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMADD132PS    regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMADD132PS    regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMADD132PS    regymm,regymm,mem        ; VEX_FMA,SY
-  VFMADD132PS    regymm,regymm,regymm     ; VEX_FMA
-
-x VFMADD312PS    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMADD312PS    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMADD312PS    regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMADD312PS    regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMADD132PD    regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMADD132PD    regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMADD132PD    regymm,regymm,mem        ; VEX_FMA,SY
-  VFMADD132PD    regymm,regymm,regymm     ; VEX_FMA
-
-x VFMADD312PD    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMADD312PD    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMADD312PD    regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMADD312PD    regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMADD132SS    regxmm,regxmm,mem        ; VEX_FMA,SD
-  VFMADD132SS    regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFMADD312SS    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SD
-x VFMADD312SS    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFMADD132SD    regxmm,regxmm,mem        ; VEX_FMA,SQ
-  VFMADD132SD    regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFMADD312SD    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SQ
-x VFMADD312SD    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFMSUB132PS    regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMSUB132PS    regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMSUB132PS    regymm,regymm,mem        ; VEX_FMA,SY
-  VFMSUB132PS    regymm,regymm,regymm     ; VEX_FMA
-
-x VFMSUB312PS    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMSUB312PS    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMSUB312PS    regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMSUB312PS    regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMSUB132PD    regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMSUB132PD    regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMSUB132PD    regymm,regymm,mem        ; VEX_FMA,SY
-  VFMSUB132PD    regymm,regymm,regymm     ; VEX_FMA
-
-x VFMSUB312PD    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMSUB312PD    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMSUB312PD    regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMSUB312PD    regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMSUB132SS    regxmm,regxmm,mem        ; VEX_FMA,SD
-  VFMSUB132SS    regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFMSUB312SS    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SD
-x VFMSUB312SS    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFMSUB132SD    regxmm,regxmm,mem        ; VEX_FMA,SQ
-  VFMSUB132SD    regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFMSUB312SD    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SQ
-x VFMSUB312SD    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFNMADD132PS   regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFNMADD132PS   regxmm,regxmm,regxmm     ; VEX_FMA
-  VFNMADD132PS   regymm,regymm,mem        ; VEX_FMA,SY
-  VFNMADD132PS   regymm,regymm,regymm     ; VEX_FMA
-
-x VFNMADD312PS   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFNMADD312PS   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFNMADD312PS   regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFNMADD312PS   regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFNMADD132PD   regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFNMADD132PD   regxmm,regxmm,regxmm     ; VEX_FMA
-  VFNMADD132PD   regymm,regymm,mem        ; VEX_FMA,SY
-  VFNMADD132PD   regymm,regymm,regymm     ; VEX_FMA
-
-x VFNMADD312PD   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFNMADD312PD   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFNMADD312PD   regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFNMADD312PD   regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFNMADD132SS   regxmm,regxmm,mem        ; VEX_FMA,SD
-  VFNMADD132SS   regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFNMADD312SS   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SD
-x VFNMADD312SS   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFNMADD132SD   regxmm,regxmm,mem        ; VEX_FMA,SQ
-  VFNMADD132SD   regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFNMADD312SD   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SQ
-x VFNMADD312SD   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFNMSUB132PS   regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFNMSUB132PS   regxmm,regxmm,regxmm     ; VEX_FMA
-  VFNMSUB132PS   regymm,regymm,mem        ; VEX_FMA,SY
-  VFNMSUB132PS   regymm,regymm,regymm     ; VEX_FMA
-
-x VFNMSUB312PS   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFNMSUB312PS   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFNMSUB312PS   regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFNMSUB312PS   regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFNMSUB132PD   regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFNMSUB132PD   regxmm,regxmm,regxmm     ; VEX_FMA
-  VFNMSUB132PD   regymm,regymm,mem        ; VEX_FMA,SY
-  VFNMSUB132PD   regymm,regymm,regymm     ; VEX_FMA
-
-x VFNMSUB312PD   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFNMSUB312PD   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFNMSUB312PD   regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFNMSUB312PD   regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFNMSUB132SS   regxmm,regxmm,mem        ; VEX_FMA,SD
-  VFNMSUB132SS   regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFNMSUB312SS   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SD
-x VFNMSUB312SS   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFNMSUB132SD   regxmm,regxmm,mem        ; VEX_FMA,SQ
-  VFNMSUB132SD   regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFNMSUB312SD   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SQ
-x VFNMSUB312SD   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFMADDSUB213PS regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMADDSUB213PS regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMADDSUB213PS regymm,regymm,mem        ; VEX_FMA,SY
-  VFMADDSUB213PS regymm,regymm,regymm     ; VEX_FMA
-
-x VFMADDSUB123PS regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMADDSUB123PS regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMADDSUB123PS regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMADDSUB123PS regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMADDSUB213PD regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMADDSUB213PD regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMADDSUB213PD regymm,regymm,mem        ; VEX_FMA,SY
-  VFMADDSUB213PD regymm,regymm,regymm     ; VEX_FMA
-
-x VFMADDSUB123PD regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMADDSUB123PD regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMADDSUB123PD regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMADDSUB123PD regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMSUBADD213PS regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMSUBADD213PS regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMSUBADD213PS regymm,regymm,mem        ; VEX_FMA,SY
-  VFMSUBADD213PS regymm,regymm,regymm     ; VEX_FMA
-
-x VFMSUBADD123PS regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMSUBADD123PS regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMSUBADD123PS regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMSUBADD123PS regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMSUBADD213PD regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMSUBADD213PD regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMSUBADD213PD regymm,regymm,mem        ; VEX_FMA,SY
-  VFMSUBADD213PD regymm,regymm,regymm     ; VEX_FMA
-
-x VFMSUBADD123PD regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMSUBADD123PD regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMSUBADD123PD regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMSUBADD123PD regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMADD213PS    regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMADD213PS    regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMADD213PS    regymm,regymm,mem        ; VEX_FMA,SY
-  VFMADD213PS    regymm,regymm,regymm     ; VEX_FMA
-
-x VFMADD123PS    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMADD123PS    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMADD123PS    regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMADD123PS    regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMADD213PD    regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMADD213PD    regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMADD213PD    regymm,regymm,mem        ; VEX_FMA,SY
-  VFMADD213PD    regymm,regymm,regymm     ; VEX_FMA
-
-x VFMADD123PD    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMADD123PD    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMADD123PD    regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMADD123PD    regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMADD213SS    regxmm,regxmm,mem        ; VEX_FMA,SD
-  VFMADD213SS    regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFMADD123SS    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SD
-x VFMADD123SS    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFMADD213SD    regxmm,regxmm,mem        ; VEX_FMA,SQ
-  VFMADD213SD    regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFMADD123SD    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SQ
-x VFMADD123SD    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFMSUB213PS    regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMSUB213PS    regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMSUB213PS    regymm,regymm,mem        ; VEX_FMA,SY
-  VFMSUB213PS    regymm,regymm,regymm     ; VEX_FMA
-
-x VFMSUB123PS    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMSUB123PS    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMSUB123PS    regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMSUB123PS    regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMSUB213PD    regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMSUB213PD    regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMSUB213PD    regymm,regymm,mem        ; VEX_FMA,SY
-  VFMSUB213PD    regymm,regymm,regymm     ; VEX_FMA
-
-x VFMSUB123PD    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMSUB123PD    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMSUB123PD    regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMSUB123PD    regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMSUB213SS    regxmm,regxmm,mem        ; VEX_FMA,SD
-  VFMSUB213SS    regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFMSUB123SS    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SD
-x VFMSUB123SS    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFMSUB213SD    regxmm,regxmm,mem        ; VEX_FMA,SQ
-  VFMSUB213SD    regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFMSUB123SD    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SQ
-x VFMSUB123SD    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFNMADD213PS   regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFNMADD213PS   regxmm,regxmm,regxmm     ; VEX_FMA
-  VFNMADD213PS   regymm,regymm,mem        ; VEX_FMA,SY
-  VFNMADD213PS   regymm,regymm,regymm     ; VEX_FMA
-
-x VFNMADD123PS   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFNMADD123PS   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFNMADD123PS   regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFNMADD123PS   regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFNMADD213PD   regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFNMADD213PD   regxmm,regxmm,regxmm     ; VEX_FMA
-  VFNMADD213PD   regymm,regymm,mem        ; VEX_FMA,SY
-  VFNMADD213PD   regymm,regymm,regymm     ; VEX_FMA
-
-x VFNMADD123PD   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFNMADD123PD   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFNMADD123PD   regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFNMADD123PD   regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFNMADD213SS   regxmm,regxmm,mem        ; VEX_FMA,SD
-  VFNMADD213SS   regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFNMADD123SS   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SD
-x VFNMADD123SS   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFNMADD213SD   regxmm,regxmm,mem        ; VEX_FMA,SQ
-  VFNMADD213SD   regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFNMADD123SD   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SQ
-x VFNMADD123SD   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFNMSUB213PS   regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFNMSUB213PS   regxmm,regxmm,regxmm     ; VEX_FMA
-  VFNMSUB213PS   regymm,regymm,mem        ; VEX_FMA,SY
-  VFNMSUB213PS   regymm,regymm,regymm     ; VEX_FMA
-
-x VFNMSUB123PS   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFNMSUB123PS   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFNMSUB123PS   regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFNMSUB123PS   regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFNMSUB213PD   regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFNMSUB213PD   regxmm,regxmm,regxmm     ; VEX_FMA
-  VFNMSUB213PD   regymm,regymm,mem        ; VEX_FMA,SY
-  VFNMSUB213PD   regymm,regymm,regymm     ; VEX_FMA
-
-x VFNMSUB123PD   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFNMSUB123PD   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFNMSUB123PD   regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFNMSUB123PD   regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFNMSUB213SS   regxmm,regxmm,mem        ; VEX_FMA,SD
-  VFNMSUB213SS   regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFNMSUB123SS   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SD
-x VFNMSUB123SS   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFNMSUB213SD   regxmm,regxmm,mem        ; VEX_FMA,SQ
-  VFNMSUB213SD   regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFNMSUB123SD   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SQ
-x VFNMSUB123SD   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFMADDSUB231PS regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMADDSUB231PS regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMADDSUB231PS regymm,regymm,mem        ; VEX_FMA,SY
-  VFMADDSUB231PS regymm,regymm,regymm     ; VEX_FMA
-
-x VFMADDSUB321PS regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMADDSUB321PS regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMADDSUB321PS regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMADDSUB321PS regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMADDSUB231PD regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMADDSUB231PD regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMADDSUB231PD regymm,regymm,mem        ; VEX_FMA,SY
-  VFMADDSUB231PD regymm,regymm,regymm     ; VEX_FMA
-
-x VFMADDSUB321PD regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMADDSUB321PD regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMADDSUB321PD regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMADDSUB321PD regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMSUBADD231PS regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMSUBADD231PS regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMSUBADD231PS regymm,regymm,mem        ; VEX_FMA,SY
-  VFMSUBADD231PS regymm,regymm,regymm     ; VEX_FMA
-
-x VFMSUBADD321PS regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMSUBADD321PS regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMSUBADD321PS regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMSUBADD321PS regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMSUBADD231PD regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMSUBADD231PD regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMSUBADD231PD regymm,regymm,mem        ; VEX_FMA,SY
-  VFMSUBADD231PD regymm,regymm,regymm     ; VEX_FMA
-
-x VFMSUBADD321PD regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMSUBADD321PD regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMSUBADD321PD regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMSUBADD321PD regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMADD231PS    regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMADD231PS    regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMADD231PS    regymm,regymm,mem        ; VEX_FMA,SY
-  VFMADD231PS    regymm,regymm,regymm     ; VEX_FMA
-
-x VFMADD321PS    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMADD321PS    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMADD321PS    regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMADD321PS    regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMADD231PD    regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMADD231PD    regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMADD231PD    regymm,regymm,mem        ; VEX_FMA,SY
-  VFMADD231PD    regymm,regymm,regymm     ; VEX_FMA
-
-x VFMADD321PD    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMADD321PD    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMADD321PD    regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMADD321PD    regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMADD231SS    regxmm,regxmm,mem        ; VEX_FMA,SD
-  VFMADD231SS    regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFMADD321SS    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SD
-x VFMADD321SS    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFMADD231SD    regxmm,regxmm,mem        ; VEX_FMA,SQ
-  VFMADD231SD    regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFMADD321SD    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SQ
-x VFMADD321SD    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFMSUB231PS    regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMSUB231PS    regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMSUB231PS    regymm,regymm,mem        ; VEX_FMA,SY
-  VFMSUB231PS    regymm,regymm,regymm     ; VEX_FMA
-
-x VFMSUB321PS    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMSUB321PS    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMSUB321PS    regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMSUB321PS    regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMSUB231PD    regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFMSUB231PD    regxmm,regxmm,regxmm     ; VEX_FMA
-  VFMSUB231PD    regymm,regymm,mem        ; VEX_FMA,SY
-  VFMSUB231PD    regymm,regymm,regymm     ; VEX_FMA
-
-x VFMSUB321PD    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFMSUB321PD    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFMSUB321PD    regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFMSUB321PD    regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFMSUB231SS    regxmm,regxmm,mem        ; VEX_FMA,SD
-  VFMSUB231SS    regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFMSUB321SS    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SD
-x VFMSUB321SS    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFMSUB231SD    regxmm,regxmm,mem        ; VEX_FMA,SQ
-  VFMSUB231SD    regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFMSUB321SD    regxmm,regxmm,mem        ; VEX_FMA,RELAX,SQ
-x VFMSUB321SD    regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFNMADD231PS   regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFNMADD231PS   regxmm,regxmm,regxmm     ; VEX_FMA
-  VFNMADD231PS   regymm,regymm,mem        ; VEX_FMA,SY
-  VFNMADD231PS   regymm,regymm,regymm     ; VEX_FMA
-
-x VFNMADD321PS   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFNMADD321PS   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFNMADD321PS   regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFNMADD321PS   regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFNMADD231PD   regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFNMADD231PD   regxmm,regxmm,regxmm     ; VEX_FMA
-  VFNMADD231PD   regymm,regymm,mem        ; VEX_FMA,SY
-  VFNMADD231PD   regymm,regymm,regymm     ; VEX_FMA
-
-x VFNMADD321PD   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFNMADD321PD   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFNMADD321PD   regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFNMADD321PD   regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFNMADD231SS   regxmm,regxmm,mem        ; VEX_FMA,SD
-  VFNMADD231SS   regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFNMADD321SS   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SD
-x VFNMADD321SS   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFNMADD231SD   regxmm,regxmm,mem        ; VEX_FMA,SQ
-  VFNMADD231SD   regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFNMADD321SD   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SQ
-x VFNMADD321SD   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFNMSUB231PS   regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFNMSUB231PS   regxmm,regxmm,regxmm     ; VEX_FMA
-  VFNMSUB231PS   regymm,regymm,mem        ; VEX_FMA,SY
-  VFNMSUB231PS   regymm,regymm,regymm     ; VEX_FMA
-
-x VFNMSUB321PS   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFNMSUB321PS   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFNMSUB321PS   regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFNMSUB321PS   regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFNMSUB231PD   regxmm,regxmm,mem        ; VEX_FMA,SO
-  VFNMSUB231PD   regxmm,regxmm,regxmm     ; VEX_FMA
-  VFNMSUB231PD   regymm,regymm,mem        ; VEX_FMA,SY
-  VFNMSUB231PD   regymm,regymm,regymm     ; VEX_FMA
-
-x VFNMSUB321PD   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SO
-x VFNMSUB321PD   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-x VFNMSUB321PD   regymm,regymm,mem        ; VEX_FMA,RELAX,SY
-x VFNMSUB321PD   regymm,regymm,regymm     ; VEX_FMA,RELAX
-
-  VFNMSUB231SS   regxmm,regxmm,mem        ; VEX_FMA,SD
-  VFNMSUB231SS   regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFNMSUB321SS   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SD
-x VFNMSUB321SS   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VFNMSUB231SD   regxmm,regxmm,mem        ; VEX_FMA,SQ
-  VFNMSUB231SD   regxmm,regxmm,regxmm     ; VEX_FMA
-
-x VFNMSUB321SD   regxmm,regxmm,mem        ; VEX_FMA,RELAX,SQ
-x VFNMSUB321SD   regxmm,regxmm,regxmm     ; VEX_FMA,RELAX
-
-  VPCLMULLQLQDQ  regxmm,regxmm,mem        ; PCLMUL,VEX_AVX,SO
-  VPCLMULLQLQDQ  regxmm,regxmm,regxmm     ; PCLMUL,VEX_AVX
-  VPCLMULHQLQDQ  regxmm,regxmm,mem        ; PCLMUL,VEX_AVX,SO
-  VPCLMULHQLQDQ  regxmm,regxmm,regxmm     ; PCLMUL,VEX_AVX
-  VPCLMULLQHQDQ  regxmm,regxmm,mem        ; PCLMUL,VEX_AVX,SO
-  VPCLMULLQHQDQ  regxmm,regxmm,regxmm     ; PCLMUL,VEX_AVX
-  VPCLMULHQHQDQ  regxmm,regxmm,mem        ; PCLMUL,VEX_AVX,SO
-  VPCLMULHQHQDQ  regxmm,regxmm,regxmm     ; PCLMUL,VEX_AVX
-  VPCLMULQDQ     regxmm,regxmm,mem,imm    ; PCLMUL,VEX_AVX,SB3,SO
-  VPCLMULQDQ     regxmm,regxmm,regxmm,imm ; PCLMUL,VEX_AVX,SB3
-
-; EOF
-
- 	  	 
--- a/nasmbuild/nasm-2.13rc9/test/avx2.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1608 +0,0 @@
-; AVX testcases from gas
-;------------------------
-
-;
-; This file is taken from there
-;     http://sourceware.org/ml/binutils/2011-06/msg00150.html
-; So the original author is "H.J. Lu" <hongjiu dot lu at intel dot com>
-;
-; nasm64developer adopted it for the nasm testing suite
-
-%macro testcase 2
- %ifdef BIN
-  db %1
- %endif
- %ifdef SRC
-  %2
- %endif
-%endmacro
-
-bits 32
-
-; b/gas/testsuite/gas/i386/avx-gather-intel.d
-testcase	{ 0xc4, 0xe2, 0xe9, 0x92, 0x4c, 0x7d, 0x00			}, { vgatherdpd xmm1,QWORD [ebp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0xe9, 0x93, 0x4c, 0x7d, 0x00			}, { vgatherqpd xmm1,QWORD [ebp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0xed, 0x92, 0x4c, 0x7d, 0x00			}, { vgatherdpd ymm1,QWORD [ebp+xmm7*2+0x0],ymm2	}
-testcase	{ 0xc4, 0xe2, 0xed, 0x93, 0x4c, 0x7d, 0x00			}, { vgatherqpd ymm1,QWORD [ebp+ymm7*2+0x0],ymm2	}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0x25, 0x08, 0x00, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm4*1+0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0x25, 0xf8, 0xff, 0xff, 0xff	}, { vgatherdpd ymm6,QWORD [xmm4*1-0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0x25, 0x00, 0x00, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm4*1+0x0],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0x25, 0x98, 0x02, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm4*1+0x298],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0xe5, 0x08, 0x00, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm4*8+0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0xe5, 0xf8, 0xff, 0xff, 0xff	}, { vgatherdpd ymm6,QWORD [xmm4*8-0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0xe5, 0x00, 0x00, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm4*8+0x0],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0xe5, 0x98, 0x02, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm4*8+0x298],ymm5		}
-testcase	{ 0xc4, 0xe2, 0x69, 0x92, 0x4c, 0x7d, 0x00			}, { vgatherdps xmm1,DWORD [ebp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0x69, 0x93, 0x4c, 0x7d, 0x00			}, { vgatherqps xmm1,DWORD [ebp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0x6d, 0x92, 0x4c, 0x7d, 0x00			}, { vgatherdps ymm1,DWORD [ebp+ymm7*2+0x0],ymm2	}
-testcase	{ 0xc4, 0xe2, 0x6d, 0x93, 0x4c, 0x7d, 0x00			}, { vgatherqps xmm1,DWORD [ebp+ymm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0x25, 0x08, 0x00, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm4*1+0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0x25, 0xf8, 0xff, 0xff, 0xff	}, { vgatherdps xmm6,DWORD [xmm4*1-0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0x25, 0x00, 0x00, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm4*1+0x0],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0x25, 0x98, 0x02, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm4*1+0x298],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0xe5, 0x08, 0x00, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm4*8+0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0xe5, 0xf8, 0xff, 0xff, 0xff	}, { vgatherdps xmm6,DWORD [xmm4*8-0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0xe5, 0x00, 0x00, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm4*8+0x0],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0xe5, 0x98, 0x02, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm4*8+0x298],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x69, 0x90, 0x4c, 0x7d, 0x00			}, { vpgatherdd xmm1,DWORD [ebp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0x69, 0x91, 0x4c, 0x7d, 0x00			}, { vpgatherqd xmm1,DWORD [ebp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0x6d, 0x90, 0x4c, 0x7d, 0x00			}, { vpgatherdd ymm1,DWORD [ebp+ymm7*2+0x0],ymm2	}
-testcase	{ 0xc4, 0xe2, 0x6d, 0x91, 0x4c, 0x7d, 0x00			}, { vpgatherqd xmm1,DWORD [ebp+ymm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0x25, 0x08, 0x00, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm4*1+0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0x25, 0xf8, 0xff, 0xff, 0xff	}, { vpgatherdd xmm6,DWORD [xmm4*1-0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0x25, 0x00, 0x00, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm4*1+0x0],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0x25, 0x98, 0x02, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm4*1+0x298],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0xe5, 0x08, 0x00, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm4*8+0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0xe5, 0xf8, 0xff, 0xff, 0xff	}, { vpgatherdd xmm6,DWORD [xmm4*8-0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0xe5, 0x00, 0x00, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm4*8+0x0],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0xe5, 0x98, 0x02, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm4*8+0x298],xmm5		}
-testcase	{ 0xc4, 0xe2, 0xe9, 0x90, 0x4c, 0x7d, 0x00			}, { vpgatherdq xmm1,QWORD [ebp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0xe9, 0x91, 0x4c, 0x7d, 0x00			}, { vpgatherqq xmm1,QWORD [ebp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0xed, 0x90, 0x4c, 0x7d, 0x00			}, { vpgatherdq ymm1,QWORD [ebp+xmm7*2+0x0],ymm2	}
-testcase	{ 0xc4, 0xe2, 0xed, 0x91, 0x4c, 0x7d, 0x00			}, { vpgatherqq ymm1,QWORD [ebp+ymm7*2+0x0],ymm2	}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0x25, 0x08, 0x00, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm4*1+0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0x25, 0xf8, 0xff, 0xff, 0xff	}, { vpgatherdq ymm6,QWORD [xmm4*1-0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0x25, 0x00, 0x00, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm4*1+0x0],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0x25, 0x98, 0x02, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm4*1+0x298],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0xe5, 0x08, 0x00, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm4*8+0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0xe5, 0xf8, 0xff, 0xff, 0xff	}, { vpgatherdq ymm6,QWORD [xmm4*8-0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0xe5, 0x00, 0x00, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm4*8+0x0],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0xe5, 0x98, 0x02, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm4*8+0x298],ymm5		}
-
-; b/gas/testsuite/gas/i386/avx2-intel.d
-testcase	{ 0xc4, 0xe2, 0x5d, 0x8c, 0x31					}, { vpmaskmovd ymm6,ymm4,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x8e, 0x21					}, { vpmaskmovd YWORD [ecx],ymm6,ymm4			}
-testcase	{ 0xc4, 0xe2, 0xdd, 0x8c, 0x31					}, { vpmaskmovq ymm6,ymm4,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x8e, 0x21					}, { vpmaskmovq YWORD [ecx],ymm6,ymm4			}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x01, 0xd6, 0x07				}, { vpermpd ymm2,ymm6,0x7				}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x01, 0x31, 0x07				}, { vpermpd ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x00, 0xd6, 0x07				}, { vpermq ymm2,ymm6,0x7				}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x00, 0x31, 0x07				}, { vpermq ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x36, 0xd4					}, { vpermd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x36, 0x11					}, { vpermd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x16, 0xd4					}, { vpermps ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x16, 0x11					}, { vpermps ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x47, 0xd4					}, { vpsllvd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x47, 0x11					}, { vpsllvd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x47, 0xd4					}, { vpsllvq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x47, 0x11					}, { vpsllvq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x46, 0xd4					}, { vpsravd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x46, 0x11					}, { vpsravd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x45, 0xd4					}, { vpsrlvd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x45, 0x11					}, { vpsrlvd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x45, 0xd4					}, { vpsrlvq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x45, 0x11					}, { vpsrlvq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x2a, 0x21					}, { vmovntdqa ymm4,YWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x19, 0xf4					}, { vbroadcastsd ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x18, 0xf4					}, { vbroadcastss ymm6,xmm4				}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x02, 0xd4, 0x07				}, { vpblendd ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x02, 0x11, 0x07				}, { vpblendd ymm2,ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x46, 0xd4, 0x07				}, { vperm2i128 ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x46, 0x11, 0x07				}, { vperm2i128 ymm2,ymm6,YWORD [ecx],0x7		}
-testcase	{ 0xc4, 0xe3, 0x5d, 0x38, 0xf4, 0x07				}, { vinserti128 ymm6,ymm4,xmm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x5d, 0x38, 0x31, 0x07				}, { vinserti128 ymm6,ymm4,OWORD [ecx],0x7		}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x5a, 0x21					}, { vbroadcasti128 ymm4,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x47, 0xd4					}, { vpsllvd xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x49, 0x47, 0x39					}, { vpsllvd xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x47, 0xd4					}, { vpsllvq xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x47, 0x39					}, { vpsllvq xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x46, 0xd4					}, { vpsravd xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x49, 0x46, 0x39					}, { vpsravd xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x45, 0xd4					}, { vpsrlvd xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x49, 0x45, 0x39					}, { vpsrlvd xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x45, 0xd4					}, { vpsrlvq xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x45, 0x39					}, { vpsrlvq xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x59, 0x8c, 0x31					}, { vpmaskmovd xmm6,xmm4,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xd9, 0x8c, 0x31					}, { vpmaskmovq xmm6,xmm4,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe3, 0x7d, 0x39, 0xe6, 0x07				}, { vextracti128 xmm6,ymm4,0x7				}
-testcase	{ 0xc4, 0xe3, 0x7d, 0x39, 0x21, 0x07				}, { vextracti128 OWORD [ecx],ymm4,0x7			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x8e, 0x21					}, { vpmaskmovd OWORD [ecx],xmm6,xmm4			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x8e, 0x21					}, { vpmaskmovq OWORD [ecx],xmm6,xmm4			}
-testcase	{ 0xc4, 0xe3, 0x49, 0x02, 0xd4, 0x07				}, { vpblendd xmm2,xmm6,xmm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x49, 0x02, 0x11, 0x07				}, { vpblendd xmm2,xmm6,OWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x59, 0xf4					}, { vpbroadcastq xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x59, 0x21					}, { vpbroadcastq xmm4,QWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x59, 0xf4					}, { vpbroadcastq ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x59, 0x21					}, { vpbroadcastq ymm4,QWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x58, 0xe4					}, { vpbroadcastd ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x58, 0x21					}, { vpbroadcastd ymm4,DWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x58, 0xf4					}, { vpbroadcastd xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x58, 0x21					}, { vpbroadcastd xmm4,DWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x79, 0xf4					}, { vpbroadcastw xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x79, 0x21					}, { vpbroadcastw xmm4,WORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x79, 0xf4					}, { vpbroadcastw ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x79, 0x21					}, { vpbroadcastw ymm4,WORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x78, 0xf4					}, { vpbroadcastb xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x78, 0x21					}, { vpbroadcastb xmm4,BYTE [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x78, 0xf4					}, { vpbroadcastb ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x78, 0x21					}, { vpbroadcastb ymm4,BYTE [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x18, 0xf4					}, { vbroadcastss xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x5d, 0x8c, 0x31					}, { vpmaskmovd ymm6,ymm4,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x8e, 0x21					}, { vpmaskmovd YWORD [ecx],ymm6,ymm4			}
-testcase	{ 0xc4, 0xe2, 0x5d, 0x8c, 0x31					}, { vpmaskmovd ymm6,ymm4,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x8e, 0x21					}, { vpmaskmovd YWORD [ecx],ymm6,ymm4			}
-testcase	{ 0xc4, 0xe2, 0xdd, 0x8c, 0x31					}, { vpmaskmovq ymm6,ymm4,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x8e, 0x21					}, { vpmaskmovq YWORD [ecx],ymm6,ymm4			}
-testcase	{ 0xc4, 0xe2, 0xdd, 0x8c, 0x31					}, { vpmaskmovq ymm6,ymm4,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x8e, 0x21					}, { vpmaskmovq YWORD [ecx],ymm6,ymm4			}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x01, 0xd6, 0x07				}, { vpermpd ymm2,ymm6,0x7				}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x01, 0x31, 0x07				}, { vpermpd ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x01, 0x31, 0x07				}, { vpermpd ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x00, 0xd6, 0x07				}, { vpermq ymm2,ymm6,0x7				}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x00, 0x31, 0x07				}, { vpermq ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x00, 0x31, 0x07				}, { vpermq ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x36, 0xd4					}, { vpermd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x36, 0x11					}, { vpermd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x36, 0x11					}, { vpermd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x16, 0xd4					}, { vpermps ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x16, 0x11					}, { vpermps ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x16, 0x11					}, { vpermps ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x47, 0xd4					}, { vpsllvd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x47, 0x11					}, { vpsllvd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x47, 0x11					}, { vpsllvd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x47, 0xd4					}, { vpsllvq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x47, 0x11					}, { vpsllvq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x47, 0x11					}, { vpsllvq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x46, 0xd4					}, { vpsravd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x46, 0x11					}, { vpsravd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x46, 0x11					}, { vpsravd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x45, 0xd4					}, { vpsrlvd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x45, 0x11					}, { vpsrlvd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x45, 0x11					}, { vpsrlvd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x45, 0xd4					}, { vpsrlvq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x45, 0x11					}, { vpsrlvq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x45, 0x11					}, { vpsrlvq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x2a, 0x21					}, { vmovntdqa ymm4,YWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x2a, 0x21					}, { vmovntdqa ymm4,YWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x19, 0xf4					}, { vbroadcastsd ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x18, 0xf4					}, { vbroadcastss ymm6,xmm4				}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x02, 0xd4, 0x07				}, { vpblendd ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x02, 0x11, 0x07				}, { vpblendd ymm2,ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x02, 0x11, 0x07				}, { vpblendd ymm2,ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x46, 0xd4, 0x07				}, { vperm2i128 ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x46, 0x11, 0x07				}, { vperm2i128 ymm2,ymm6,YWORD [ecx],0x7		}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x46, 0x11, 0x07				}, { vperm2i128 ymm2,ymm6,YWORD [ecx],0x7		}
-testcase	{ 0xc4, 0xe3, 0x5d, 0x38, 0xf4, 0x07				}, { vinserti128 ymm6,ymm4,xmm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x5d, 0x38, 0x31, 0x07				}, { vinserti128 ymm6,ymm4,OWORD [ecx],0x7		}
-testcase	{ 0xc4, 0xe3, 0x5d, 0x38, 0x31, 0x07				}, { vinserti128 ymm6,ymm4,OWORD [ecx],0x7		}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x5a, 0x21					}, { vbroadcasti128 ymm4,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x5a, 0x21					}, { vbroadcasti128 ymm4,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x47, 0xd4					}, { vpsllvd xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x49, 0x47, 0x39					}, { vpsllvd xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x47, 0x39					}, { vpsllvd xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x47, 0xd4					}, { vpsllvq xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x47, 0x39					}, { vpsllvq xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x47, 0x39					}, { vpsllvq xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x46, 0xd4					}, { vpsravd xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x49, 0x46, 0x39					}, { vpsravd xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x46, 0x39					}, { vpsravd xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x45, 0xd4					}, { vpsrlvd xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x49, 0x45, 0x39					}, { vpsrlvd xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x45, 0x39					}, { vpsrlvd xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x45, 0xd4					}, { vpsrlvq xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x45, 0x39					}, { vpsrlvq xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x45, 0x39					}, { vpsrlvq xmm7,xmm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x59, 0x8c, 0x31					}, { vpmaskmovd xmm6,xmm4,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x59, 0x8c, 0x31					}, { vpmaskmovd xmm6,xmm4,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xd9, 0x8c, 0x31					}, { vpmaskmovq xmm6,xmm4,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0xd9, 0x8c, 0x31					}, { vpmaskmovq xmm6,xmm4,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe3, 0x7d, 0x39, 0xe6, 0x07				}, { vextracti128 xmm6,ymm4,0x7				}
-testcase	{ 0xc4, 0xe3, 0x7d, 0x39, 0x21, 0x07				}, { vextracti128 OWORD [ecx],ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x7d, 0x39, 0x21, 0x07				}, { vextracti128 OWORD [ecx],ymm4,0x7			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x8e, 0x21					}, { vpmaskmovd OWORD [ecx],xmm6,xmm4			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x8e, 0x21					}, { vpmaskmovd OWORD [ecx],xmm6,xmm4			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x8e, 0x21					}, { vpmaskmovq OWORD [ecx],xmm6,xmm4			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x8e, 0x21					}, { vpmaskmovq OWORD [ecx],xmm6,xmm4			}
-testcase	{ 0xc4, 0xe3, 0x49, 0x02, 0xd4, 0x07				}, { vpblendd xmm2,xmm6,xmm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x49, 0x02, 0x11, 0x07				}, { vpblendd xmm2,xmm6,OWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x49, 0x02, 0x11, 0x07				}, { vpblendd xmm2,xmm6,OWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x59, 0xf4					}, { vpbroadcastq xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x59, 0x21					}, { vpbroadcastq xmm4,QWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x59, 0x21					}, { vpbroadcastq xmm4,QWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x59, 0xf4					}, { vpbroadcastq ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x59, 0x21					}, { vpbroadcastq ymm4,QWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x59, 0x21					}, { vpbroadcastq ymm4,QWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x58, 0xe4					}, { vpbroadcastd ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x58, 0x21					}, { vpbroadcastd ymm4,DWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x58, 0x21					}, { vpbroadcastd ymm4,DWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x58, 0xf4					}, { vpbroadcastd xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x58, 0x21					}, { vpbroadcastd xmm4,DWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x58, 0x21					}, { vpbroadcastd xmm4,DWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x79, 0xf4					}, { vpbroadcastw xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x79, 0x21					}, { vpbroadcastw xmm4,WORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x79, 0x21					}, { vpbroadcastw xmm4,WORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x79, 0xf4					}, { vpbroadcastw ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x79, 0x21					}, { vpbroadcastw ymm4,WORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x79, 0x21					}, { vpbroadcastw ymm4,WORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x78, 0xf4					}, { vpbroadcastb xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x78, 0x21					}, { vpbroadcastb xmm4,BYTE [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x78, 0x21					}, { vpbroadcastb xmm4,BYTE [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x78, 0xf4					}, { vpbroadcastb ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x78, 0x21					}, { vpbroadcastb ymm4,BYTE [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x78, 0x21					}, { vpbroadcastb ymm4,BYTE [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x18, 0xf4					}, { vbroadcastss xmm6,xmm4				}
-
-; b/gas/testsuite/gas/i386/avx256int-intel.d
-testcase	{ 0xc5, 0xfd, 0xd7, 0xcc					}, { vpmovmskb ecx,ymm4					}
-testcase	{ 0xc5, 0xed, 0x72, 0xf6, 0x07					}, { vpslld ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xfe, 0x07					}, { vpslldq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xf6, 0x07					}, { vpsllq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x71, 0xf6, 0x07					}, { vpsllw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x72, 0xe6, 0x07					}, { vpsrad ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x71, 0xe6, 0x07					}, { vpsraw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x72, 0xd6, 0x07					}, { vpsrld ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xde, 0x07					}, { vpsrldq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xd6, 0x07					}, { vpsrlq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x71, 0xd6, 0x07					}, { vpsrlw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xfd, 0x70, 0xd6, 0x07					}, { vpshufd ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xfd, 0x70, 0x31, 0x07					}, { vpshufd ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc5, 0xfe, 0x70, 0xd6, 0x07					}, { vpshufhw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xfe, 0x70, 0x31, 0x07					}, { vpshufhw ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc5, 0xff, 0x70, 0xd6, 0x07					}, { vpshuflw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xff, 0x70, 0x31, 0x07					}, { vpshuflw ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc5, 0xcd, 0x6b, 0xd4					}, { vpackssdw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6b, 0x11					}, { vpackssdw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x63, 0xd4					}, { vpacksswb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x63, 0x11					}, { vpacksswb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x2b, 0xd4					}, { vpackusdw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x2b, 0x11					}, { vpackusdw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x67, 0xd4					}, { vpackuswb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x67, 0x11					}, { vpackuswb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfc, 0xd4					}, { vpaddb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfc, 0x11					}, { vpaddb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfd, 0xd4					}, { vpaddw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfd, 0x11					}, { vpaddw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfe, 0xd4					}, { vpaddd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfe, 0x11					}, { vpaddd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd4, 0xd4					}, { vpaddq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd4, 0x11					}, { vpaddq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xec, 0xd4					}, { vpaddsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xec, 0x11					}, { vpaddsb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xed, 0xd4					}, { vpaddsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xed, 0x11					}, { vpaddsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xdc, 0xd4					}, { vpaddusb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdc, 0x11					}, { vpaddusb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xdd, 0xd4					}, { vpaddusw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdd, 0x11					}, { vpaddusw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xdb, 0xd4					}, { vpand ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdb, 0x11					}, { vpand ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xdf, 0xd4					}, { vpandn ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdf, 0x11					}, { vpandn ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe0, 0xd4					}, { vpavgb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe0, 0x11					}, { vpavgb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe3, 0xd4					}, { vpavgw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe3, 0x11					}, { vpavgw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x74, 0xd4					}, { vpcmpeqb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x74, 0x11					}, { vpcmpeqb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x75, 0xd4					}, { vpcmpeqw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x75, 0x11					}, { vpcmpeqw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x76, 0xd4					}, { vpcmpeqd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x76, 0x11					}, { vpcmpeqd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x29, 0xd4					}, { vpcmpeqq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x29, 0x11					}, { vpcmpeqq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x64, 0xd4					}, { vpcmpgtb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x64, 0x11					}, { vpcmpgtb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x65, 0xd4					}, { vpcmpgtw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x65, 0x11					}, { vpcmpgtw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x66, 0xd4					}, { vpcmpgtd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x66, 0x11					}, { vpcmpgtd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x37, 0xd4					}, { vpcmpgtq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x37, 0x11					}, { vpcmpgtq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x01, 0xd4					}, { vphaddw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x01, 0x11					}, { vphaddw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x02, 0xd4					}, { vphaddd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x02, 0x11					}, { vphaddd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x03, 0xd4					}, { vphaddsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x03, 0x11					}, { vphaddsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x05, 0xd4					}, { vphsubw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x05, 0x11					}, { vphsubw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x06, 0xd4					}, { vphsubd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x06, 0x11					}, { vphsubd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x07, 0xd4					}, { vphsubsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x07, 0x11					}, { vphsubsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf5, 0xd4					}, { vpmaddwd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf5, 0x11					}, { vpmaddwd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x04, 0xd4					}, { vpmaddubsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x04, 0x11					}, { vpmaddubsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3c, 0xd4					}, { vpmaxsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3c, 0x11					}, { vpmaxsb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xee, 0xd4					}, { vpmaxsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xee, 0x11					}, { vpmaxsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3d, 0xd4					}, { vpmaxsd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3d, 0x11					}, { vpmaxsd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xde, 0xd4					}, { vpmaxub ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xde, 0x11					}, { vpmaxub ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3e, 0xd4					}, { vpmaxuw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3e, 0x11					}, { vpmaxuw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3f, 0xd4					}, { vpmaxud ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3f, 0x11					}, { vpmaxud ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x38, 0xd4					}, { vpminsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x38, 0x11					}, { vpminsb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xea, 0xd4					}, { vpminsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xea, 0x11					}, { vpminsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x39, 0xd4					}, { vpminsd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x39, 0x11					}, { vpminsd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xda, 0xd4					}, { vpminub ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xda, 0x11					}, { vpminub ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3a, 0xd4					}, { vpminuw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3a, 0x11					}, { vpminuw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3b, 0xd4					}, { vpminud ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3b, 0x11					}, { vpminud ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe4, 0xd4					}, { vpmulhuw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe4, 0x11					}, { vpmulhuw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0b, 0xd4					}, { vpmulhrsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0b, 0x11					}, { vpmulhrsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe5, 0xd4					}, { vpmulhw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe5, 0x11					}, { vpmulhw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd5, 0xd4					}, { vpmullw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd5, 0x11					}, { vpmullw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x40, 0xd4					}, { vpmulld ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x40, 0x11					}, { vpmulld ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf4, 0xd4					}, { vpmuludq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf4, 0x11					}, { vpmuludq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x28, 0xd4					}, { vpmuldq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x28, 0x11					}, { vpmuldq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xeb, 0xd4					}, { vpor ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xeb, 0x11					}, { vpor ymm2,ymm6,YWORD [ecx]				}
-testcase	{ 0xc5, 0xcd, 0xf6, 0xd4					}, { vpsadbw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf6, 0x11					}, { vpsadbw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x00, 0xd4					}, { vpshufb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x00, 0x11					}, { vpshufb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x08, 0xd4					}, { vpsignb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x08, 0x11					}, { vpsignb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x09, 0xd4					}, { vpsignw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x09, 0x11					}, { vpsignw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0a, 0xd4					}, { vpsignd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0a, 0x11					}, { vpsignd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf8, 0xd4					}, { vpsubb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf8, 0x11					}, { vpsubb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf9, 0xd4					}, { vpsubw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf9, 0x11					}, { vpsubw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfa, 0xd4					}, { vpsubd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfa, 0x11					}, { vpsubd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfb, 0xd4					}, { vpsubq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfb, 0x11					}, { vpsubq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe8, 0xd4					}, { vpsubsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe8, 0x11					}, { vpsubsb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe9, 0xd4					}, { vpsubsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe9, 0x11					}, { vpsubsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd8, 0xd4					}, { vpsubusb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd8, 0x11					}, { vpsubusb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd9, 0xd4					}, { vpsubusw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd9, 0x11					}, { vpsubusw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x68, 0xd4					}, { vpunpckhbw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x68, 0x11					}, { vpunpckhbw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x69, 0xd4					}, { vpunpckhwd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x69, 0x11					}, { vpunpckhwd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x6a, 0xd4					}, { vpunpckhdq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6a, 0x11					}, { vpunpckhdq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x6d, 0xd4					}, { vpunpckhqdq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6d, 0x11					}, { vpunpckhqdq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x60, 0xd4					}, { vpunpcklbw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x60, 0x11					}, { vpunpcklbw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x61, 0xd4					}, { vpunpcklwd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x61, 0x11					}, { vpunpcklwd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x62, 0xd4					}, { vpunpckldq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x62, 0x11					}, { vpunpckldq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x6c, 0xd4					}, { vpunpcklqdq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6c, 0x11					}, { vpunpcklqdq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xef, 0xd4					}, { vpxor ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xef, 0x11					}, { vpxor ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1c, 0xf4					}, { vpabsb ymm6,ymm4					}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1c, 0x21					}, { vpabsb ymm4,YWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1d, 0xf4					}, { vpabsw ymm6,ymm4					}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1d, 0x21					}, { vpabsw ymm4,YWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1e, 0xf4					}, { vpabsd ymm6,ymm4					}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1e, 0x21					}, { vpabsd ymm4,YWORD [ecx]				}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x42, 0xd4, 0x07				}, { vmpsadbw ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x42, 0x11, 0x07				}, { vmpsadbw ymm2,ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0f, 0xd4, 0x07				}, { vpalignr ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0f, 0x11, 0x07				}, { vpalignr ymm2,ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0e, 0xd4, 0x07				}, { vpblendw ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0e, 0x11, 0x07				}, { vpblendw ymm2,ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x6d, 0x4c, 0xfe, 0x40				}, { vpblendvb ymm7,ymm2,ymm6,ymm4			}
-testcase	{ 0xc4, 0xe3, 0x6d, 0x4c, 0x39, 0x40				}, { vpblendvb ymm7,ymm2,YWORD [ecx],ymm4		}
-testcase	{ 0xc5, 0xcd, 0xf1, 0xd4					}, { vpsllw ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xf1, 0x11					}, { vpsllw ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf2, 0xd4					}, { vpslld ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xf2, 0x11					}, { vpslld ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf3, 0xd4					}, { vpsllq ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xf3, 0x11					}, { vpsllq ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe1, 0xd4					}, { vpsraw ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xe1, 0x11					}, { vpsraw ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe2, 0xd4					}, { vpsrad ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xe2, 0x11					}, { vpsrad ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd1, 0xd4					}, { vpsrlw ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xd1, 0x11					}, { vpsrlw ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd2, 0xd4					}, { vpsrld ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xd2, 0x11					}, { vpsrld ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd3, 0xd4					}, { vpsrlq ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xd3, 0x11					}, { vpsrlq ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x20, 0xe4					}, { vpmovsxbw ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x20, 0x21					}, { vpmovsxbw ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x23, 0xe4					}, { vpmovsxwd ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x23, 0x21					}, { vpmovsxwd ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x25, 0xe4					}, { vpmovsxdq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x25, 0x21					}, { vpmovsxdq ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x30, 0xe4					}, { vpmovzxbw ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x30, 0x21					}, { vpmovzxbw ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x33, 0xe4					}, { vpmovzxwd ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x33, 0x21					}, { vpmovzxwd ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x35, 0xe4					}, { vpmovzxdq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x35, 0x21					}, { vpmovzxdq ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x21, 0xf4					}, { vpmovsxbd ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x21, 0x21					}, { vpmovsxbd ymm4,QWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x24, 0xf4					}, { vpmovsxwq ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x24, 0x21					}, { vpmovsxwq ymm4,QWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x31, 0xf4					}, { vpmovzxbd ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x31, 0x21					}, { vpmovzxbd ymm4,QWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x34, 0xf4					}, { vpmovzxwq ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x34, 0x21					}, { vpmovzxwq ymm4,QWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x22, 0xe4					}, { vpmovsxbq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x22, 0x21					}, { vpmovsxbq ymm4,DWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x32, 0xe4					}, { vpmovzxbq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x32, 0x21					}, { vpmovzxbq ymm4,DWORD [ecx]				}
-testcase	{ 0xc5, 0xfd, 0xd7, 0xcc					}, { vpmovmskb ecx,ymm4					}
-testcase	{ 0xc5, 0xed, 0x72, 0xf6, 0x07					}, { vpslld ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xfe, 0x07					}, { vpslldq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xf6, 0x07					}, { vpsllq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x71, 0xf6, 0x07					}, { vpsllw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x72, 0xe6, 0x07					}, { vpsrad ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x71, 0xe6, 0x07					}, { vpsraw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x72, 0xd6, 0x07					}, { vpsrld ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xde, 0x07					}, { vpsrldq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xd6, 0x07					}, { vpsrlq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x71, 0xd6, 0x07					}, { vpsrlw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xfd, 0x70, 0xd6, 0x07					}, { vpshufd ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xfd, 0x70, 0x31, 0x07					}, { vpshufd ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc5, 0xfd, 0x70, 0x31, 0x07					}, { vpshufd ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc5, 0xfe, 0x70, 0xd6, 0x07					}, { vpshufhw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xfe, 0x70, 0x31, 0x07					}, { vpshufhw ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc5, 0xfe, 0x70, 0x31, 0x07					}, { vpshufhw ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc5, 0xff, 0x70, 0xd6, 0x07					}, { vpshuflw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xff, 0x70, 0x31, 0x07					}, { vpshuflw ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc5, 0xff, 0x70, 0x31, 0x07					}, { vpshuflw ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc5, 0xcd, 0x6b, 0xd4					}, { vpackssdw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6b, 0x11					}, { vpackssdw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x6b, 0x11					}, { vpackssdw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x63, 0xd4					}, { vpacksswb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x63, 0x11					}, { vpacksswb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x63, 0x11					}, { vpacksswb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x2b, 0xd4					}, { vpackusdw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x2b, 0x11					}, { vpackusdw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x2b, 0x11					}, { vpackusdw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x67, 0xd4					}, { vpackuswb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x67, 0x11					}, { vpackuswb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x67, 0x11					}, { vpackuswb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfc, 0xd4					}, { vpaddb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfc, 0x11					}, { vpaddb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfc, 0x11					}, { vpaddb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfd, 0xd4					}, { vpaddw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfd, 0x11					}, { vpaddw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfd, 0x11					}, { vpaddw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfe, 0xd4					}, { vpaddd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfe, 0x11					}, { vpaddd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfe, 0x11					}, { vpaddd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd4, 0xd4					}, { vpaddq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd4, 0x11					}, { vpaddq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd4, 0x11					}, { vpaddq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xec, 0xd4					}, { vpaddsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xec, 0x11					}, { vpaddsb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xec, 0x11					}, { vpaddsb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xed, 0xd4					}, { vpaddsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xed, 0x11					}, { vpaddsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xed, 0x11					}, { vpaddsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xdc, 0xd4					}, { vpaddusb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdc, 0x11					}, { vpaddusb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xdc, 0x11					}, { vpaddusb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xdd, 0xd4					}, { vpaddusw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdd, 0x11					}, { vpaddusw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xdd, 0x11					}, { vpaddusw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xdb, 0xd4					}, { vpand ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdb, 0x11					}, { vpand ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xdb, 0x11					}, { vpand ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xdf, 0xd4					}, { vpandn ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdf, 0x11					}, { vpandn ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xdf, 0x11					}, { vpandn ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe0, 0xd4					}, { vpavgb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe0, 0x11					}, { vpavgb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe0, 0x11					}, { vpavgb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe3, 0xd4					}, { vpavgw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe3, 0x11					}, { vpavgw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe3, 0x11					}, { vpavgw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x74, 0xd4					}, { vpcmpeqb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x74, 0x11					}, { vpcmpeqb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x74, 0x11					}, { vpcmpeqb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x75, 0xd4					}, { vpcmpeqw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x75, 0x11					}, { vpcmpeqw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x75, 0x11					}, { vpcmpeqw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x76, 0xd4					}, { vpcmpeqd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x76, 0x11					}, { vpcmpeqd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x76, 0x11					}, { vpcmpeqd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x29, 0xd4					}, { vpcmpeqq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x29, 0x11					}, { vpcmpeqq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x29, 0x11					}, { vpcmpeqq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x64, 0xd4					}, { vpcmpgtb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x64, 0x11					}, { vpcmpgtb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x64, 0x11					}, { vpcmpgtb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x65, 0xd4					}, { vpcmpgtw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x65, 0x11					}, { vpcmpgtw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x65, 0x11					}, { vpcmpgtw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x66, 0xd4					}, { vpcmpgtd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x66, 0x11					}, { vpcmpgtd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x66, 0x11					}, { vpcmpgtd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x37, 0xd4					}, { vpcmpgtq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x37, 0x11					}, { vpcmpgtq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x37, 0x11					}, { vpcmpgtq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x01, 0xd4					}, { vphaddw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x01, 0x11					}, { vphaddw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x01, 0x11					}, { vphaddw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x02, 0xd4					}, { vphaddd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x02, 0x11					}, { vphaddd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x02, 0x11					}, { vphaddd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x03, 0xd4					}, { vphaddsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x03, 0x11					}, { vphaddsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x03, 0x11					}, { vphaddsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x05, 0xd4					}, { vphsubw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x05, 0x11					}, { vphsubw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x05, 0x11					}, { vphsubw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x06, 0xd4					}, { vphsubd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x06, 0x11					}, { vphsubd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x06, 0x11					}, { vphsubd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x07, 0xd4					}, { vphsubsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x07, 0x11					}, { vphsubsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x07, 0x11					}, { vphsubsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf5, 0xd4					}, { vpmaddwd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf5, 0x11					}, { vpmaddwd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf5, 0x11					}, { vpmaddwd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x04, 0xd4					}, { vpmaddubsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x04, 0x11					}, { vpmaddubsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x04, 0x11					}, { vpmaddubsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3c, 0xd4					}, { vpmaxsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3c, 0x11					}, { vpmaxsb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3c, 0x11					}, { vpmaxsb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xee, 0xd4					}, { vpmaxsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xee, 0x11					}, { vpmaxsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xee, 0x11					}, { vpmaxsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3d, 0xd4					}, { vpmaxsd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3d, 0x11					}, { vpmaxsd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3d, 0x11					}, { vpmaxsd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xde, 0xd4					}, { vpmaxub ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xde, 0x11					}, { vpmaxub ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xde, 0x11					}, { vpmaxub ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3e, 0xd4					}, { vpmaxuw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3e, 0x11					}, { vpmaxuw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3e, 0x11					}, { vpmaxuw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3f, 0xd4					}, { vpmaxud ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3f, 0x11					}, { vpmaxud ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3f, 0x11					}, { vpmaxud ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x38, 0xd4					}, { vpminsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x38, 0x11					}, { vpminsb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x38, 0x11					}, { vpminsb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xea, 0xd4					}, { vpminsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xea, 0x11					}, { vpminsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xea, 0x11					}, { vpminsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x39, 0xd4					}, { vpminsd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x39, 0x11					}, { vpminsd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x39, 0x11					}, { vpminsd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xda, 0xd4					}, { vpminub ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xda, 0x11					}, { vpminub ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xda, 0x11					}, { vpminub ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3a, 0xd4					}, { vpminuw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3a, 0x11					}, { vpminuw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3a, 0x11					}, { vpminuw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3b, 0xd4					}, { vpminud ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3b, 0x11					}, { vpminud ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3b, 0x11					}, { vpminud ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe4, 0xd4					}, { vpmulhuw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe4, 0x11					}, { vpmulhuw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe4, 0x11					}, { vpmulhuw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0b, 0xd4					}, { vpmulhrsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0b, 0x11					}, { vpmulhrsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0b, 0x11					}, { vpmulhrsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe5, 0xd4					}, { vpmulhw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe5, 0x11					}, { vpmulhw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe5, 0x11					}, { vpmulhw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd5, 0xd4					}, { vpmullw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd5, 0x11					}, { vpmullw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd5, 0x11					}, { vpmullw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x40, 0xd4					}, { vpmulld ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x40, 0x11					}, { vpmulld ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x40, 0x11					}, { vpmulld ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf4, 0xd4					}, { vpmuludq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf4, 0x11					}, { vpmuludq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf4, 0x11					}, { vpmuludq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x28, 0xd4					}, { vpmuldq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x28, 0x11					}, { vpmuldq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x28, 0x11					}, { vpmuldq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xeb, 0xd4					}, { vpor ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xeb, 0x11					}, { vpor ymm2,ymm6,YWORD [ecx]				}
-testcase	{ 0xc5, 0xcd, 0xeb, 0x11					}, { vpor ymm2,ymm6,YWORD [ecx]				}
-testcase	{ 0xc5, 0xcd, 0xf6, 0xd4					}, { vpsadbw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf6, 0x11					}, { vpsadbw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf6, 0x11					}, { vpsadbw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x00, 0xd4					}, { vpshufb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x00, 0x11					}, { vpshufb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x00, 0x11					}, { vpshufb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x08, 0xd4					}, { vpsignb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x08, 0x11					}, { vpsignb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x08, 0x11					}, { vpsignb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x09, 0xd4					}, { vpsignw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x09, 0x11					}, { vpsignw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x09, 0x11					}, { vpsignw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0a, 0xd4					}, { vpsignd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0a, 0x11					}, { vpsignd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0a, 0x11					}, { vpsignd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf8, 0xd4					}, { vpsubb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf8, 0x11					}, { vpsubb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf8, 0x11					}, { vpsubb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf9, 0xd4					}, { vpsubw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf9, 0x11					}, { vpsubw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf9, 0x11					}, { vpsubw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfa, 0xd4					}, { vpsubd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfa, 0x11					}, { vpsubd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfa, 0x11					}, { vpsubd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfb, 0xd4					}, { vpsubq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfb, 0x11					}, { vpsubq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xfb, 0x11					}, { vpsubq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe8, 0xd4					}, { vpsubsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe8, 0x11					}, { vpsubsb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe8, 0x11					}, { vpsubsb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe9, 0xd4					}, { vpsubsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe9, 0x11					}, { vpsubsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe9, 0x11					}, { vpsubsw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd8, 0xd4					}, { vpsubusb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd8, 0x11					}, { vpsubusb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd8, 0x11					}, { vpsubusb ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd9, 0xd4					}, { vpsubusw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd9, 0x11					}, { vpsubusw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd9, 0x11					}, { vpsubusw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x68, 0xd4					}, { vpunpckhbw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x68, 0x11					}, { vpunpckhbw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x68, 0x11					}, { vpunpckhbw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x69, 0xd4					}, { vpunpckhwd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x69, 0x11					}, { vpunpckhwd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x69, 0x11					}, { vpunpckhwd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x6a, 0xd4					}, { vpunpckhdq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6a, 0x11					}, { vpunpckhdq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x6a, 0x11					}, { vpunpckhdq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x6d, 0xd4					}, { vpunpckhqdq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6d, 0x11					}, { vpunpckhqdq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x6d, 0x11					}, { vpunpckhqdq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x60, 0xd4					}, { vpunpcklbw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x60, 0x11					}, { vpunpcklbw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x60, 0x11					}, { vpunpcklbw ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x61, 0xd4					}, { vpunpcklwd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x61, 0x11					}, { vpunpcklwd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x61, 0x11					}, { vpunpcklwd ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x62, 0xd4					}, { vpunpckldq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x62, 0x11					}, { vpunpckldq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x62, 0x11					}, { vpunpckldq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x6c, 0xd4					}, { vpunpcklqdq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6c, 0x11					}, { vpunpcklqdq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0x6c, 0x11					}, { vpunpcklqdq ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xef, 0xd4					}, { vpxor ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xef, 0x11					}, { vpxor ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xef, 0x11					}, { vpxor ymm2,ymm6,YWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1c, 0xf4					}, { vpabsb ymm6,ymm4					}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1c, 0x21					}, { vpabsb ymm4,YWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1c, 0x21					}, { vpabsb ymm4,YWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1d, 0xf4					}, { vpabsw ymm6,ymm4					}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1d, 0x21					}, { vpabsw ymm4,YWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1d, 0x21					}, { vpabsw ymm4,YWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1e, 0xf4					}, { vpabsd ymm6,ymm4					}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1e, 0x21					}, { vpabsd ymm4,YWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1e, 0x21					}, { vpabsd ymm4,YWORD [ecx]				}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x42, 0xd4, 0x07				}, { vmpsadbw ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x42, 0x11, 0x07				}, { vmpsadbw ymm2,ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x42, 0x11, 0x07				}, { vmpsadbw ymm2,ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0f, 0xd4, 0x07				}, { vpalignr ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0f, 0x11, 0x07				}, { vpalignr ymm2,ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0f, 0x11, 0x07				}, { vpalignr ymm2,ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0e, 0xd4, 0x07				}, { vpblendw ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0e, 0x11, 0x07				}, { vpblendw ymm2,ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0e, 0x11, 0x07				}, { vpblendw ymm2,ymm6,YWORD [ecx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x6d, 0x4c, 0xfe, 0x40				}, { vpblendvb ymm7,ymm2,ymm6,ymm4			}
-testcase	{ 0xc4, 0xe3, 0x6d, 0x4c, 0x39, 0x40				}, { vpblendvb ymm7,ymm2,YWORD [ecx],ymm4		}
-testcase	{ 0xc4, 0xe3, 0x6d, 0x4c, 0x39, 0x40				}, { vpblendvb ymm7,ymm2,YWORD [ecx],ymm4		}
-testcase	{ 0xc5, 0xcd, 0xf1, 0xd4					}, { vpsllw ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xf1, 0x11					}, { vpsllw ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf1, 0x11					}, { vpsllw ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf2, 0xd4					}, { vpslld ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xf2, 0x11					}, { vpslld ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf2, 0x11					}, { vpslld ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf3, 0xd4					}, { vpsllq ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xf3, 0x11					}, { vpsllq ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xf3, 0x11					}, { vpsllq ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe1, 0xd4					}, { vpsraw ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xe1, 0x11					}, { vpsraw ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe1, 0x11					}, { vpsraw ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe2, 0xd4					}, { vpsrad ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xe2, 0x11					}, { vpsrad ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xe2, 0x11					}, { vpsrad ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd1, 0xd4					}, { vpsrlw ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xd1, 0x11					}, { vpsrlw ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd1, 0x11					}, { vpsrlw ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd2, 0xd4					}, { vpsrld ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xd2, 0x11					}, { vpsrld ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd2, 0x11					}, { vpsrld ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd3, 0xd4					}, { vpsrlq ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xd3, 0x11					}, { vpsrlq ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc5, 0xcd, 0xd3, 0x11					}, { vpsrlq ymm2,ymm6,OWORD [ecx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x20, 0xe4					}, { vpmovsxbw ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x20, 0x21					}, { vpmovsxbw ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x20, 0x21					}, { vpmovsxbw ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x23, 0xe4					}, { vpmovsxwd ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x23, 0x21					}, { vpmovsxwd ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x23, 0x21					}, { vpmovsxwd ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x25, 0xe4					}, { vpmovsxdq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x25, 0x21					}, { vpmovsxdq ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x25, 0x21					}, { vpmovsxdq ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x30, 0xe4					}, { vpmovzxbw ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x30, 0x21					}, { vpmovzxbw ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x30, 0x21					}, { vpmovzxbw ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x33, 0xe4					}, { vpmovzxwd ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x33, 0x21					}, { vpmovzxwd ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x33, 0x21					}, { vpmovzxwd ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x35, 0xe4					}, { vpmovzxdq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x35, 0x21					}, { vpmovzxdq ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x35, 0x21					}, { vpmovzxdq ymm4,OWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x21, 0xf4					}, { vpmovsxbd ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x21, 0x21					}, { vpmovsxbd ymm4,QWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x21, 0x21					}, { vpmovsxbd ymm4,QWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x24, 0xf4					}, { vpmovsxwq ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x24, 0x21					}, { vpmovsxwq ymm4,QWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x24, 0x21					}, { vpmovsxwq ymm4,QWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x31, 0xf4					}, { vpmovzxbd ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x31, 0x21					}, { vpmovzxbd ymm4,QWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x31, 0x21					}, { vpmovzxbd ymm4,QWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x34, 0xf4					}, { vpmovzxwq ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x34, 0x21					}, { vpmovzxwq ymm4,QWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x34, 0x21					}, { vpmovzxwq ymm4,QWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x22, 0xe4					}, { vpmovsxbq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x22, 0x21					}, { vpmovsxbq ymm4,DWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x22, 0x21					}, { vpmovsxbq ymm4,DWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x32, 0xe4					}, { vpmovzxbq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x32, 0x21					}, { vpmovzxbq ymm4,DWORD [ecx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x32, 0x21					}, { vpmovzxbq ymm4,DWORD [ecx]				}
-
-bits 64
-
-; b/gas/testsuite/gas/i386/x86-64-avx-gather-intel.d
-testcase	{ 0xc4, 0xe2, 0xe9, 0x92, 0x4c, 0x7d, 0x00			}, { vgatherdpd xmm1,QWORD [rbp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0xe9, 0x93, 0x4c, 0x7d, 0x00			}, { vgatherqpd xmm1,QWORD [rbp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0xed, 0x92, 0x4c, 0x7d, 0x00			}, { vgatherdpd ymm1,QWORD [rbp+xmm7*2+0x0],ymm2	}
-testcase	{ 0xc4, 0xe2, 0xed, 0x93, 0x4c, 0x7d, 0x00			}, { vgatherqpd ymm1,QWORD [rbp+ymm7*2+0x0],ymm2	}
-testcase	{ 0xc4, 0x02, 0x99, 0x92, 0x5c, 0x75, 0x00			}, { vgatherdpd xmm11,QWORD [r13+xmm14*2+0x0],xmm12	}
-testcase	{ 0xc4, 0x02, 0x99, 0x93, 0x5c, 0x75, 0x00			}, { vgatherqpd xmm11,QWORD [r13+xmm14*2+0x0],xmm12	}
-testcase	{ 0xc4, 0x02, 0x9d, 0x92, 0x5c, 0x75, 0x00			}, { vgatherdpd ymm11,QWORD [r13+xmm14*2+0x0],ymm12	}
-testcase	{ 0xc4, 0x02, 0x9d, 0x93, 0x5c, 0x75, 0x00			}, { vgatherqpd ymm11,QWORD [r13+ymm14*2+0x0],ymm12	}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0x25, 0x08, 0x00, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm4*1+0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0x25, 0xf8, 0xff, 0xff, 0xff	}, { vgatherdpd ymm6,QWORD [xmm4*1-0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0x25, 0x00, 0x00, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm4*1+0x0],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0x25, 0x98, 0x02, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm4*1+0x298],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0xe5, 0x08, 0x00, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm4*8+0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0xe5, 0xf8, 0xff, 0xff, 0xff	}, { vgatherdpd ymm6,QWORD [xmm4*8-0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0xe5, 0x00, 0x00, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm4*8+0x0],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x92, 0x34, 0xe5, 0x98, 0x02, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm4*8+0x298],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x92, 0x34, 0x35, 0x08, 0x00, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm14*1+0x8],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x92, 0x34, 0x35, 0xf8, 0xff, 0xff, 0xff	}, { vgatherdpd ymm6,QWORD [xmm14*1-0x8],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x92, 0x34, 0x35, 0x00, 0x00, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm14*1+0x0],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x92, 0x34, 0x35, 0x98, 0x02, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm14*1+0x298],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x92, 0x34, 0xf5, 0x08, 0x00, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm14*8+0x8],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x92, 0x34, 0xf5, 0xf8, 0xff, 0xff, 0xff	}, { vgatherdpd ymm6,QWORD [xmm14*8-0x8],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x92, 0x34, 0xf5, 0x00, 0x00, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm14*8+0x0],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x92, 0x34, 0xf5, 0x98, 0x02, 0x00, 0x00	}, { vgatherdpd ymm6,QWORD [xmm14*8+0x298],ymm5		}
-testcase	{ 0xc4, 0xe2, 0x69, 0x92, 0x4c, 0x7d, 0x00			}, { vgatherdps xmm1,DWORD [rbp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0x69, 0x93, 0x4c, 0x7d, 0x00			}, { vgatherqps xmm1,DWORD [rbp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0x6d, 0x92, 0x4c, 0x7d, 0x00			}, { vgatherdps ymm1,DWORD [rbp+ymm7*2+0x0],ymm2	}
-testcase	{ 0xc4, 0xe2, 0x6d, 0x93, 0x4c, 0x7d, 0x00			}, { vgatherqps xmm1,DWORD [rbp+ymm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0x02, 0x19, 0x92, 0x5c, 0x75, 0x00			}, { vgatherdps xmm11,DWORD [r13+xmm14*2+0x0],xmm12	}
-testcase	{ 0xc4, 0x02, 0x19, 0x93, 0x5c, 0x75, 0x00			}, { vgatherqps xmm11,DWORD [r13+xmm14*2+0x0],xmm12	}
-testcase	{ 0xc4, 0x02, 0x1d, 0x92, 0x5c, 0x75, 0x00			}, { vgatherdps ymm11,DWORD [r13+ymm14*2+0x0],ymm12	}
-testcase	{ 0xc4, 0x02, 0x1d, 0x93, 0x5c, 0x75, 0x00			}, { vgatherqps xmm11,DWORD [r13+ymm14*2+0x0],xmm12	}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0x25, 0x08, 0x00, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm4*1+0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0x25, 0xf8, 0xff, 0xff, 0xff	}, { vgatherdps xmm6,DWORD [xmm4*1-0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0x25, 0x00, 0x00, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm4*1+0x0],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0x25, 0x98, 0x02, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm4*1+0x298],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0xe5, 0x08, 0x00, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm4*8+0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0xe5, 0xf8, 0xff, 0xff, 0xff	}, { vgatherdps xmm6,DWORD [xmm4*8-0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0xe5, 0x00, 0x00, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm4*8+0x0],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x92, 0x34, 0xe5, 0x98, 0x02, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm4*8+0x298],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x92, 0x34, 0x35, 0x08, 0x00, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm14*1+0x8],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x92, 0x34, 0x35, 0xf8, 0xff, 0xff, 0xff	}, { vgatherdps xmm6,DWORD [xmm14*1-0x8],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x92, 0x34, 0x35, 0x00, 0x00, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm14*1+0x0],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x92, 0x34, 0x35, 0x98, 0x02, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm14*1+0x298],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x92, 0x34, 0xf5, 0x08, 0x00, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm14*8+0x8],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x92, 0x34, 0xf5, 0xf8, 0xff, 0xff, 0xff	}, { vgatherdps xmm6,DWORD [xmm14*8-0x8],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x92, 0x34, 0xf5, 0x00, 0x00, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm14*8+0x0],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x92, 0x34, 0xf5, 0x98, 0x02, 0x00, 0x00	}, { vgatherdps xmm6,DWORD [xmm14*8+0x298],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x69, 0x90, 0x4c, 0x7d, 0x00			}, { vpgatherdd xmm1,DWORD [rbp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0x69, 0x91, 0x4c, 0x7d, 0x00			}, { vpgatherqd xmm1,DWORD [rbp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0x6d, 0x90, 0x4c, 0x7d, 0x00			}, { vpgatherdd ymm1,DWORD [rbp+ymm7*2+0x0],ymm2	}
-testcase	{ 0xc4, 0xe2, 0x6d, 0x91, 0x4c, 0x7d, 0x00			}, { vpgatherqd xmm1,DWORD [rbp+ymm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0x02, 0x19, 0x90, 0x5c, 0x75, 0x00			}, { vpgatherdd xmm11,DWORD [r13+xmm14*2+0x0],xmm12	}
-testcase	{ 0xc4, 0x02, 0x19, 0x91, 0x5c, 0x75, 0x00			}, { vpgatherqd xmm11,DWORD [r13+xmm14*2+0x0],xmm12	}
-testcase	{ 0xc4, 0x02, 0x1d, 0x90, 0x5c, 0x75, 0x00			}, { vpgatherdd ymm11,DWORD [r13+ymm14*2+0x0],ymm12	}
-testcase	{ 0xc4, 0x02, 0x1d, 0x91, 0x5c, 0x75, 0x00			}, { vpgatherqd xmm11,DWORD [r13+ymm14*2+0x0],xmm12	}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0x25, 0x08, 0x00, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm4*1+0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0x25, 0xf8, 0xff, 0xff, 0xff	}, { vpgatherdd xmm6,DWORD [xmm4*1-0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0x25, 0x00, 0x00, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm4*1+0x0],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0x25, 0x98, 0x02, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm4*1+0x298],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0xe5, 0x08, 0x00, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm4*8+0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0xe5, 0xf8, 0xff, 0xff, 0xff	}, { vpgatherdd xmm6,DWORD [xmm4*8-0x8],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0xe5, 0x00, 0x00, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm4*8+0x0],xmm5		}
-testcase	{ 0xc4, 0xe2, 0x51, 0x90, 0x34, 0xe5, 0x98, 0x02, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm4*8+0x298],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x90, 0x34, 0x35, 0x08, 0x00, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm14*1+0x8],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x90, 0x34, 0x35, 0xf8, 0xff, 0xff, 0xff	}, { vpgatherdd xmm6,DWORD [xmm14*1-0x8],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x90, 0x34, 0x35, 0x00, 0x00, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm14*1+0x0],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x90, 0x34, 0x35, 0x98, 0x02, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm14*1+0x298],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x90, 0x34, 0xf5, 0x08, 0x00, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm14*8+0x8],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x90, 0x34, 0xf5, 0xf8, 0xff, 0xff, 0xff	}, { vpgatherdd xmm6,DWORD [xmm14*8-0x8],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x90, 0x34, 0xf5, 0x00, 0x00, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm14*8+0x0],xmm5		}
-testcase	{ 0xc4, 0xa2, 0x51, 0x90, 0x34, 0xf5, 0x98, 0x02, 0x00, 0x00	}, { vpgatherdd xmm6,DWORD [xmm14*8+0x298],xmm5		}
-testcase	{ 0xc4, 0xe2, 0xe9, 0x90, 0x4c, 0x7d, 0x00			}, { vpgatherdq xmm1,QWORD [rbp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0xe9, 0x91, 0x4c, 0x7d, 0x00			}, { vpgatherqq xmm1,QWORD [rbp+xmm7*2+0x0],xmm2	}
-testcase	{ 0xc4, 0xe2, 0xed, 0x90, 0x4c, 0x7d, 0x00			}, { vpgatherdq ymm1,QWORD [rbp+xmm7*2+0x0],ymm2	}
-testcase	{ 0xc4, 0xe2, 0xed, 0x91, 0x4c, 0x7d, 0x00			}, { vpgatherqq ymm1,QWORD [rbp+ymm7*2+0x0],ymm2	}
-testcase	{ 0xc4, 0x02, 0x99, 0x90, 0x5c, 0x75, 0x00			}, { vpgatherdq xmm11,QWORD [r13+xmm14*2+0x0],xmm12	}
-testcase	{ 0xc4, 0x02, 0x99, 0x91, 0x5c, 0x75, 0x00			}, { vpgatherqq xmm11,QWORD [r13+xmm14*2+0x0],xmm12	}
-testcase	{ 0xc4, 0x02, 0x9d, 0x90, 0x5c, 0x75, 0x00			}, { vpgatherdq ymm11,QWORD [r13+xmm14*2+0x0],ymm12	}
-testcase	{ 0xc4, 0x02, 0x9d, 0x91, 0x5c, 0x75, 0x00			}, { vpgatherqq ymm11,QWORD [r13+ymm14*2+0x0],ymm12	}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0x25, 0x08, 0x00, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm4*1+0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0x25, 0xf8, 0xff, 0xff, 0xff	}, { vpgatherdq ymm6,QWORD [xmm4*1-0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0x25, 0x00, 0x00, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm4*1+0x0],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0x25, 0x98, 0x02, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm4*1+0x298],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0xe5, 0x08, 0x00, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm4*8+0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0xe5, 0xf8, 0xff, 0xff, 0xff	}, { vpgatherdq ymm6,QWORD [xmm4*8-0x8],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0xe5, 0x00, 0x00, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm4*8+0x0],ymm5		}
-testcase	{ 0xc4, 0xe2, 0xd5, 0x90, 0x34, 0xe5, 0x98, 0x02, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm4*8+0x298],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x90, 0x34, 0x35, 0x08, 0x00, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm14*1+0x8],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x90, 0x34, 0x35, 0xf8, 0xff, 0xff, 0xff	}, { vpgatherdq ymm6,QWORD [xmm14*1-0x8],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x90, 0x34, 0x35, 0x00, 0x00, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm14*1+0x0],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x90, 0x34, 0x35, 0x98, 0x02, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm14*1+0x298],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x90, 0x34, 0xf5, 0x08, 0x00, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm14*8+0x8],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x90, 0x34, 0xf5, 0xf8, 0xff, 0xff, 0xff	}, { vpgatherdq ymm6,QWORD [xmm14*8-0x8],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x90, 0x34, 0xf5, 0x00, 0x00, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm14*8+0x0],ymm5		}
-testcase	{ 0xc4, 0xa2, 0xd5, 0x90, 0x34, 0xf5, 0x98, 0x02, 0x00, 0x00	}, { vpgatherdq ymm6,QWORD [xmm14*8+0x298],ymm5		}
-
-; b/gas/testsuite/gas/i386/x86-64-avx2-intel.d
-testcase	{ 0xc4, 0xe2, 0x5d, 0x8c, 0x31					}, { vpmaskmovd ymm6,ymm4,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x8e, 0x21					}, { vpmaskmovd YWORD [rcx],ymm6,ymm4			}
-testcase	{ 0xc4, 0xe2, 0xdd, 0x8c, 0x31					}, { vpmaskmovq ymm6,ymm4,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x8e, 0x21					}, { vpmaskmovq YWORD [rcx],ymm6,ymm4			}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x01, 0xd6, 0x07				}, { vpermpd ymm2,ymm6,0x7				}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x01, 0x31, 0x07				}, { vpermpd ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x00, 0xd6, 0x07				}, { vpermq ymm2,ymm6,0x7				}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x00, 0x31, 0x07				}, { vpermq ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x36, 0xd4					}, { vpermd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x36, 0x11					}, { vpermd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x16, 0xd4					}, { vpermps ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x16, 0x11					}, { vpermps ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x47, 0xd4					}, { vpsllvd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x47, 0x11					}, { vpsllvd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x47, 0xd4					}, { vpsllvq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x47, 0x11					}, { vpsllvq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x46, 0xd4					}, { vpsravd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x46, 0x11					}, { vpsravd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x45, 0xd4					}, { vpsrlvd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x45, 0x11					}, { vpsrlvd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x45, 0xd4					}, { vpsrlvq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x45, 0x11					}, { vpsrlvq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x2a, 0x21					}, { vmovntdqa ymm4,YWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x19, 0xf4					}, { vbroadcastsd ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x18, 0xf4					}, { vbroadcastss ymm6,xmm4				}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x02, 0xd4, 0x07				}, { vpblendd ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x02, 0x11, 0x07				}, { vpblendd ymm2,ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x46, 0xd4, 0x07				}, { vperm2i128 ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x46, 0x11, 0x07				}, { vperm2i128 ymm2,ymm6,YWORD [rcx],0x7		}
-testcase	{ 0xc4, 0xe3, 0x5d, 0x38, 0xf4, 0x07				}, { vinserti128 ymm6,ymm4,xmm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x5d, 0x38, 0x31, 0x07				}, { vinserti128 ymm6,ymm4,OWORD [rcx],0x7		}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x5a, 0x21					}, { vbroadcasti128 ymm4,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x47, 0xd4					}, { vpsllvd xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x49, 0x47, 0x39					}, { vpsllvd xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x47, 0xd4					}, { vpsllvq xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x47, 0x39					}, { vpsllvq xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x46, 0xd4					}, { vpsravd xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x49, 0x46, 0x39					}, { vpsravd xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x45, 0xd4					}, { vpsrlvd xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x49, 0x45, 0x39					}, { vpsrlvd xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x45, 0xd4					}, { vpsrlvq xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x45, 0x39					}, { vpsrlvq xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x59, 0x8c, 0x31					}, { vpmaskmovd xmm6,xmm4,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xd9, 0x8c, 0x31					}, { vpmaskmovq xmm6,xmm4,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe3, 0x7d, 0x39, 0xe6, 0x07				}, { vextracti128 xmm6,ymm4,0x7				}
-testcase	{ 0xc4, 0xe3, 0x7d, 0x39, 0x21, 0x07				}, { vextracti128 OWORD [rcx],ymm4,0x7			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x8e, 0x21					}, { vpmaskmovd OWORD [rcx],xmm6,xmm4			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x8e, 0x21					}, { vpmaskmovq OWORD [rcx],xmm6,xmm4			}
-testcase	{ 0xc4, 0xe3, 0x49, 0x02, 0xd4, 0x07				}, { vpblendd xmm2,xmm6,xmm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x49, 0x02, 0x11, 0x07				}, { vpblendd xmm2,xmm6,OWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x59, 0xf4					}, { vpbroadcastq xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x59, 0x21					}, { vpbroadcastq xmm4,QWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x59, 0xf4					}, { vpbroadcastq ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x59, 0x21					}, { vpbroadcastq ymm4,QWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x58, 0xe4					}, { vpbroadcastd ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x58, 0x21					}, { vpbroadcastd ymm4,DWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x58, 0xf4					}, { vpbroadcastd xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x58, 0x21					}, { vpbroadcastd xmm4,DWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x79, 0xf4					}, { vpbroadcastw xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x79, 0x21					}, { vpbroadcastw xmm4,WORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x79, 0xf4					}, { vpbroadcastw ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x79, 0x21					}, { vpbroadcastw ymm4,WORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x78, 0xf4					}, { vpbroadcastb xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x78, 0x21					}, { vpbroadcastb xmm4,BYTE [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x78, 0xf4					}, { vpbroadcastb ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x78, 0x21					}, { vpbroadcastb ymm4,BYTE [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x18, 0xf4					}, { vbroadcastss xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x5d, 0x8c, 0x31					}, { vpmaskmovd ymm6,ymm4,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x8e, 0x21					}, { vpmaskmovd YWORD [rcx],ymm6,ymm4			}
-testcase	{ 0xc4, 0xe2, 0x5d, 0x8c, 0x31					}, { vpmaskmovd ymm6,ymm4,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x8e, 0x21					}, { vpmaskmovd YWORD [rcx],ymm6,ymm4			}
-testcase	{ 0xc4, 0xe2, 0xdd, 0x8c, 0x31					}, { vpmaskmovq ymm6,ymm4,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x8e, 0x21					}, { vpmaskmovq YWORD [rcx],ymm6,ymm4			}
-testcase	{ 0xc4, 0xe2, 0xdd, 0x8c, 0x31					}, { vpmaskmovq ymm6,ymm4,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x8e, 0x21					}, { vpmaskmovq YWORD [rcx],ymm6,ymm4			}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x01, 0xd6, 0x07				}, { vpermpd ymm2,ymm6,0x7				}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x01, 0x31, 0x07				}, { vpermpd ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x01, 0x31, 0x07				}, { vpermpd ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x00, 0xd6, 0x07				}, { vpermq ymm2,ymm6,0x7				}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x00, 0x31, 0x07				}, { vpermq ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0xfd, 0x00, 0x31, 0x07				}, { vpermq ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x36, 0xd4					}, { vpermd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x36, 0x11					}, { vpermd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x36, 0x11					}, { vpermd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x16, 0xd4					}, { vpermps ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x16, 0x11					}, { vpermps ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x16, 0x11					}, { vpermps ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x47, 0xd4					}, { vpsllvd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x47, 0x11					}, { vpsllvd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x47, 0x11					}, { vpsllvd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x47, 0xd4					}, { vpsllvq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x47, 0x11					}, { vpsllvq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x47, 0x11					}, { vpsllvq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x46, 0xd4					}, { vpsravd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x46, 0x11					}, { vpsravd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x46, 0x11					}, { vpsravd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x45, 0xd4					}, { vpsrlvd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x45, 0x11					}, { vpsrlvd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x45, 0x11					}, { vpsrlvd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x45, 0xd4					}, { vpsrlvq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x45, 0x11					}, { vpsrlvq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xcd, 0x45, 0x11					}, { vpsrlvq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x2a, 0x21					}, { vmovntdqa ymm4,YWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x2a, 0x21					}, { vmovntdqa ymm4,YWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x19, 0xf4					}, { vbroadcastsd ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x18, 0xf4					}, { vbroadcastss ymm6,xmm4				}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x02, 0xd4, 0x07				}, { vpblendd ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x02, 0x11, 0x07				}, { vpblendd ymm2,ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x02, 0x11, 0x07				}, { vpblendd ymm2,ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x46, 0xd4, 0x07				}, { vperm2i128 ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x46, 0x11, 0x07				}, { vperm2i128 ymm2,ymm6,YWORD [rcx],0x7		}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x46, 0x11, 0x07				}, { vperm2i128 ymm2,ymm6,YWORD [rcx],0x7		}
-testcase	{ 0xc4, 0xe3, 0x5d, 0x38, 0xf4, 0x07				}, { vinserti128 ymm6,ymm4,xmm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x5d, 0x38, 0x31, 0x07				}, { vinserti128 ymm6,ymm4,OWORD [rcx],0x7		}
-testcase	{ 0xc4, 0xe3, 0x5d, 0x38, 0x31, 0x07				}, { vinserti128 ymm6,ymm4,OWORD [rcx],0x7		}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x5a, 0x21					}, { vbroadcasti128 ymm4,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x5a, 0x21					}, { vbroadcasti128 ymm4,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x47, 0xd4					}, { vpsllvd xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x49, 0x47, 0x39					}, { vpsllvd xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x47, 0x39					}, { vpsllvd xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x47, 0xd4					}, { vpsllvq xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x47, 0x39					}, { vpsllvq xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x47, 0x39					}, { vpsllvq xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x46, 0xd4					}, { vpsravd xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x49, 0x46, 0x39					}, { vpsravd xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x46, 0x39					}, { vpsravd xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x45, 0xd4					}, { vpsrlvd xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x49, 0x45, 0x39					}, { vpsrlvd xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x45, 0x39					}, { vpsrlvd xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x45, 0xd4					}, { vpsrlvq xmm2,xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x45, 0x39					}, { vpsrlvq xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x45, 0x39					}, { vpsrlvq xmm7,xmm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x59, 0x8c, 0x31					}, { vpmaskmovd xmm6,xmm4,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x59, 0x8c, 0x31					}, { vpmaskmovd xmm6,xmm4,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xd9, 0x8c, 0x31					}, { vpmaskmovq xmm6,xmm4,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0xd9, 0x8c, 0x31					}, { vpmaskmovq xmm6,xmm4,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe3, 0x7d, 0x39, 0xe6, 0x07				}, { vextracti128 xmm6,ymm4,0x7				}
-testcase	{ 0xc4, 0xe3, 0x7d, 0x39, 0x21, 0x07				}, { vextracti128 OWORD [rcx],ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x7d, 0x39, 0x21, 0x07				}, { vextracti128 OWORD [rcx],ymm4,0x7			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x8e, 0x21					}, { vpmaskmovd OWORD [rcx],xmm6,xmm4			}
-testcase	{ 0xc4, 0xe2, 0x49, 0x8e, 0x21					}, { vpmaskmovd OWORD [rcx],xmm6,xmm4			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x8e, 0x21					}, { vpmaskmovq OWORD [rcx],xmm6,xmm4			}
-testcase	{ 0xc4, 0xe2, 0xc9, 0x8e, 0x21					}, { vpmaskmovq OWORD [rcx],xmm6,xmm4			}
-testcase	{ 0xc4, 0xe3, 0x49, 0x02, 0xd4, 0x07				}, { vpblendd xmm2,xmm6,xmm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x49, 0x02, 0x11, 0x07				}, { vpblendd xmm2,xmm6,OWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x49, 0x02, 0x11, 0x07				}, { vpblendd xmm2,xmm6,OWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x59, 0xf4					}, { vpbroadcastq xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x59, 0x21					}, { vpbroadcastq xmm4,QWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x59, 0x21					}, { vpbroadcastq xmm4,QWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x59, 0xf4					}, { vpbroadcastq ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x59, 0x21					}, { vpbroadcastq ymm4,QWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x59, 0x21					}, { vpbroadcastq ymm4,QWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x58, 0xe4					}, { vpbroadcastd ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x58, 0x21					}, { vpbroadcastd ymm4,DWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x58, 0x21					}, { vpbroadcastd ymm4,DWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x58, 0xf4					}, { vpbroadcastd xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x58, 0x21					}, { vpbroadcastd xmm4,DWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x58, 0x21					}, { vpbroadcastd xmm4,DWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x79, 0xf4					}, { vpbroadcastw xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x79, 0x21					}, { vpbroadcastw xmm4,WORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x79, 0x21					}, { vpbroadcastw xmm4,WORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x79, 0xf4					}, { vpbroadcastw ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x79, 0x21					}, { vpbroadcastw ymm4,WORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x79, 0x21					}, { vpbroadcastw ymm4,WORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x78, 0xf4					}, { vpbroadcastb xmm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x79, 0x78, 0x21					}, { vpbroadcastb xmm4,BYTE [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x78, 0x21					}, { vpbroadcastb xmm4,BYTE [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x78, 0xf4					}, { vpbroadcastb ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x78, 0x21					}, { vpbroadcastb ymm4,BYTE [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x78, 0x21					}, { vpbroadcastb ymm4,BYTE [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x79, 0x18, 0xf4					}, { vbroadcastss xmm6,xmm4				}
-
-; b/gas/testsuite/gas/i386/x86-64-avx256int-intel.d
-testcase	{ 0xc5, 0xfd, 0xd7, 0xcc					}, { vpmovmskb ecx,ymm4					}
-testcase	{ 0xc5, 0xfd, 0xd7, 0xcc					}, { vpmovmskb ecx,ymm4					}
-testcase	{ 0xc5, 0xed, 0x72, 0xf6, 0x07					}, { vpslld ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xfe, 0x07					}, { vpslldq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xf6, 0x07					}, { vpsllq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x71, 0xf6, 0x07					}, { vpsllw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x72, 0xe6, 0x07					}, { vpsrad ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x71, 0xe6, 0x07					}, { vpsraw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x72, 0xd6, 0x07					}, { vpsrld ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xde, 0x07					}, { vpsrldq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xd6, 0x07					}, { vpsrlq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x71, 0xd6, 0x07					}, { vpsrlw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xfd, 0x70, 0xd6, 0x07					}, { vpshufd ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xfd, 0x70, 0x31, 0x07					}, { vpshufd ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc5, 0xfe, 0x70, 0xd6, 0x07					}, { vpshufhw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xfe, 0x70, 0x31, 0x07					}, { vpshufhw ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc5, 0xff, 0x70, 0xd6, 0x07					}, { vpshuflw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xff, 0x70, 0x31, 0x07					}, { vpshuflw ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc5, 0xcd, 0x6b, 0xd4					}, { vpackssdw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6b, 0x11					}, { vpackssdw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x63, 0xd4					}, { vpacksswb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x63, 0x11					}, { vpacksswb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x2b, 0xd4					}, { vpackusdw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x2b, 0x11					}, { vpackusdw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x67, 0xd4					}, { vpackuswb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x67, 0x11					}, { vpackuswb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfc, 0xd4					}, { vpaddb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfc, 0x11					}, { vpaddb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfd, 0xd4					}, { vpaddw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfd, 0x11					}, { vpaddw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfe, 0xd4					}, { vpaddd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfe, 0x11					}, { vpaddd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd4, 0xd4					}, { vpaddq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd4, 0x11					}, { vpaddq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xec, 0xd4					}, { vpaddsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xec, 0x11					}, { vpaddsb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xed, 0xd4					}, { vpaddsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xed, 0x11					}, { vpaddsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xdc, 0xd4					}, { vpaddusb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdc, 0x11					}, { vpaddusb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xdd, 0xd4					}, { vpaddusw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdd, 0x11					}, { vpaddusw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xdb, 0xd4					}, { vpand ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdb, 0x11					}, { vpand ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xdf, 0xd4					}, { vpandn ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdf, 0x11					}, { vpandn ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe0, 0xd4					}, { vpavgb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe0, 0x11					}, { vpavgb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe3, 0xd4					}, { vpavgw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe3, 0x11					}, { vpavgw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x74, 0xd4					}, { vpcmpeqb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x74, 0x11					}, { vpcmpeqb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x75, 0xd4					}, { vpcmpeqw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x75, 0x11					}, { vpcmpeqw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x76, 0xd4					}, { vpcmpeqd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x76, 0x11					}, { vpcmpeqd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x29, 0xd4					}, { vpcmpeqq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x29, 0x11					}, { vpcmpeqq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x64, 0xd4					}, { vpcmpgtb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x64, 0x11					}, { vpcmpgtb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x65, 0xd4					}, { vpcmpgtw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x65, 0x11					}, { vpcmpgtw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x66, 0xd4					}, { vpcmpgtd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x66, 0x11					}, { vpcmpgtd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x37, 0xd4					}, { vpcmpgtq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x37, 0x11					}, { vpcmpgtq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x01, 0xd4					}, { vphaddw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x01, 0x11					}, { vphaddw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x02, 0xd4					}, { vphaddd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x02, 0x11					}, { vphaddd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x03, 0xd4					}, { vphaddsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x03, 0x11					}, { vphaddsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x05, 0xd4					}, { vphsubw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x05, 0x11					}, { vphsubw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x06, 0xd4					}, { vphsubd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x06, 0x11					}, { vphsubd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x07, 0xd4					}, { vphsubsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x07, 0x11					}, { vphsubsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf5, 0xd4					}, { vpmaddwd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf5, 0x11					}, { vpmaddwd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x04, 0xd4					}, { vpmaddubsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x04, 0x11					}, { vpmaddubsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3c, 0xd4					}, { vpmaxsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3c, 0x11					}, { vpmaxsb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xee, 0xd4					}, { vpmaxsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xee, 0x11					}, { vpmaxsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3d, 0xd4					}, { vpmaxsd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3d, 0x11					}, { vpmaxsd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xde, 0xd4					}, { vpmaxub ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xde, 0x11					}, { vpmaxub ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3e, 0xd4					}, { vpmaxuw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3e, 0x11					}, { vpmaxuw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3f, 0xd4					}, { vpmaxud ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3f, 0x11					}, { vpmaxud ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x38, 0xd4					}, { vpminsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x38, 0x11					}, { vpminsb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xea, 0xd4					}, { vpminsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xea, 0x11					}, { vpminsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x39, 0xd4					}, { vpminsd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x39, 0x11					}, { vpminsd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xda, 0xd4					}, { vpminub ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xda, 0x11					}, { vpminub ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3a, 0xd4					}, { vpminuw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3a, 0x11					}, { vpminuw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3b, 0xd4					}, { vpminud ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3b, 0x11					}, { vpminud ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe4, 0xd4					}, { vpmulhuw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe4, 0x11					}, { vpmulhuw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0b, 0xd4					}, { vpmulhrsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0b, 0x11					}, { vpmulhrsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe5, 0xd4					}, { vpmulhw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe5, 0x11					}, { vpmulhw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd5, 0xd4					}, { vpmullw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd5, 0x11					}, { vpmullw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x40, 0xd4					}, { vpmulld ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x40, 0x11					}, { vpmulld ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf4, 0xd4					}, { vpmuludq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf4, 0x11					}, { vpmuludq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x28, 0xd4					}, { vpmuldq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x28, 0x11					}, { vpmuldq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xeb, 0xd4					}, { vpor ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xeb, 0x11					}, { vpor ymm2,ymm6,YWORD [rcx]				}
-testcase	{ 0xc5, 0xcd, 0xf6, 0xd4					}, { vpsadbw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf6, 0x11					}, { vpsadbw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x00, 0xd4					}, { vpshufb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x00, 0x11					}, { vpshufb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x08, 0xd4					}, { vpsignb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x08, 0x11					}, { vpsignb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x09, 0xd4					}, { vpsignw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x09, 0x11					}, { vpsignw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0a, 0xd4					}, { vpsignd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0a, 0x11					}, { vpsignd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf8, 0xd4					}, { vpsubb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf8, 0x11					}, { vpsubb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf9, 0xd4					}, { vpsubw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf9, 0x11					}, { vpsubw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfa, 0xd4					}, { vpsubd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfa, 0x11					}, { vpsubd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfb, 0xd4					}, { vpsubq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfb, 0x11					}, { vpsubq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe8, 0xd4					}, { vpsubsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe8, 0x11					}, { vpsubsb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe9, 0xd4					}, { vpsubsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe9, 0x11					}, { vpsubsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd8, 0xd4					}, { vpsubusb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd8, 0x11					}, { vpsubusb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd9, 0xd4					}, { vpsubusw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd9, 0x11					}, { vpsubusw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x68, 0xd4					}, { vpunpckhbw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x68, 0x11					}, { vpunpckhbw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x69, 0xd4					}, { vpunpckhwd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x69, 0x11					}, { vpunpckhwd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x6a, 0xd4					}, { vpunpckhdq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6a, 0x11					}, { vpunpckhdq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x6d, 0xd4					}, { vpunpckhqdq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6d, 0x11					}, { vpunpckhqdq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x60, 0xd4					}, { vpunpcklbw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x60, 0x11					}, { vpunpcklbw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x61, 0xd4					}, { vpunpcklwd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x61, 0x11					}, { vpunpcklwd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x62, 0xd4					}, { vpunpckldq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x62, 0x11					}, { vpunpckldq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x6c, 0xd4					}, { vpunpcklqdq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6c, 0x11					}, { vpunpcklqdq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xef, 0xd4					}, { vpxor ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xef, 0x11					}, { vpxor ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1c, 0xf4					}, { vpabsb ymm6,ymm4					}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1c, 0x21					}, { vpabsb ymm4,YWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1d, 0xf4					}, { vpabsw ymm6,ymm4					}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1d, 0x21					}, { vpabsw ymm4,YWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1e, 0xf4					}, { vpabsd ymm6,ymm4					}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1e, 0x21					}, { vpabsd ymm4,YWORD [rcx]				}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x42, 0xd4, 0x07				}, { vmpsadbw ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x42, 0x11, 0x07				}, { vmpsadbw ymm2,ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0f, 0xd4, 0x07				}, { vpalignr ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0f, 0x11, 0x07				}, { vpalignr ymm2,ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0e, 0xd4, 0x07				}, { vpblendw ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0e, 0x11, 0x07				}, { vpblendw ymm2,ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x6d, 0x4c, 0xfe, 0x40				}, { vpblendvb ymm7,ymm2,ymm6,ymm4			}
-testcase	{ 0xc4, 0xe3, 0x6d, 0x4c, 0x39, 0x40				}, { vpblendvb ymm7,ymm2,YWORD [rcx],ymm4		}
-testcase	{ 0xc5, 0xcd, 0xf1, 0xd4					}, { vpsllw ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xf1, 0x11					}, { vpsllw ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf2, 0xd4					}, { vpslld ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xf2, 0x11					}, { vpslld ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf3, 0xd4					}, { vpsllq ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xf3, 0x11					}, { vpsllq ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe1, 0xd4					}, { vpsraw ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xe1, 0x11					}, { vpsraw ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe2, 0xd4					}, { vpsrad ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xe2, 0x11					}, { vpsrad ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd1, 0xd4					}, { vpsrlw ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xd1, 0x11					}, { vpsrlw ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd2, 0xd4					}, { vpsrld ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xd2, 0x11					}, { vpsrld ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd3, 0xd4					}, { vpsrlq ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xd3, 0x11					}, { vpsrlq ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x20, 0xe4					}, { vpmovsxbw ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x20, 0x21					}, { vpmovsxbw ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x23, 0xe4					}, { vpmovsxwd ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x23, 0x21					}, { vpmovsxwd ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x25, 0xe4					}, { vpmovsxdq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x25, 0x21					}, { vpmovsxdq ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x30, 0xe4					}, { vpmovzxbw ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x30, 0x21					}, { vpmovzxbw ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x33, 0xe4					}, { vpmovzxwd ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x33, 0x21					}, { vpmovzxwd ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x35, 0xe4					}, { vpmovzxdq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x35, 0x21					}, { vpmovzxdq ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x21, 0xf4					}, { vpmovsxbd ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x21, 0x21					}, { vpmovsxbd ymm4,QWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x24, 0xf4					}, { vpmovsxwq ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x24, 0x21					}, { vpmovsxwq ymm4,QWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x31, 0xf4					}, { vpmovzxbd ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x31, 0x21					}, { vpmovzxbd ymm4,QWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x34, 0xf4					}, { vpmovzxwq ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x34, 0x21					}, { vpmovzxwq ymm4,QWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x22, 0xe4					}, { vpmovsxbq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x22, 0x21					}, { vpmovsxbq ymm4,DWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x32, 0xe4					}, { vpmovzxbq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x32, 0x21					}, { vpmovzxbq ymm4,DWORD [rcx]				}
-testcase	{ 0xc5, 0xfd, 0xd7, 0xcc					}, { vpmovmskb ecx,ymm4					}
-testcase	{ 0xc5, 0xfd, 0xd7, 0xcc					}, { vpmovmskb ecx,ymm4					}
-testcase	{ 0xc5, 0xed, 0x72, 0xf6, 0x07					}, { vpslld ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xfe, 0x07					}, { vpslldq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xf6, 0x07					}, { vpsllq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x71, 0xf6, 0x07					}, { vpsllw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x72, 0xe6, 0x07					}, { vpsrad ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x71, 0xe6, 0x07					}, { vpsraw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x72, 0xd6, 0x07					}, { vpsrld ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xde, 0x07					}, { vpsrldq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x73, 0xd6, 0x07					}, { vpsrlq ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xed, 0x71, 0xd6, 0x07					}, { vpsrlw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xfd, 0x70, 0xd6, 0x07					}, { vpshufd ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xfd, 0x70, 0x31, 0x07					}, { vpshufd ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc5, 0xfd, 0x70, 0x31, 0x07					}, { vpshufd ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc5, 0xfe, 0x70, 0xd6, 0x07					}, { vpshufhw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xfe, 0x70, 0x31, 0x07					}, { vpshufhw ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc5, 0xfe, 0x70, 0x31, 0x07					}, { vpshufhw ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc5, 0xff, 0x70, 0xd6, 0x07					}, { vpshuflw ymm2,ymm6,0x7				}
-testcase	{ 0xc5, 0xff, 0x70, 0x31, 0x07					}, { vpshuflw ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc5, 0xff, 0x70, 0x31, 0x07					}, { vpshuflw ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc5, 0xcd, 0x6b, 0xd4					}, { vpackssdw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6b, 0x11					}, { vpackssdw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x6b, 0x11					}, { vpackssdw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x63, 0xd4					}, { vpacksswb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x63, 0x11					}, { vpacksswb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x63, 0x11					}, { vpacksswb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x2b, 0xd4					}, { vpackusdw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x2b, 0x11					}, { vpackusdw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x2b, 0x11					}, { vpackusdw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x67, 0xd4					}, { vpackuswb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x67, 0x11					}, { vpackuswb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x67, 0x11					}, { vpackuswb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfc, 0xd4					}, { vpaddb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfc, 0x11					}, { vpaddb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfc, 0x11					}, { vpaddb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfd, 0xd4					}, { vpaddw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfd, 0x11					}, { vpaddw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfd, 0x11					}, { vpaddw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfe, 0xd4					}, { vpaddd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfe, 0x11					}, { vpaddd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfe, 0x11					}, { vpaddd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd4, 0xd4					}, { vpaddq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd4, 0x11					}, { vpaddq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd4, 0x11					}, { vpaddq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xec, 0xd4					}, { vpaddsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xec, 0x11					}, { vpaddsb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xec, 0x11					}, { vpaddsb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xed, 0xd4					}, { vpaddsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xed, 0x11					}, { vpaddsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xed, 0x11					}, { vpaddsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xdc, 0xd4					}, { vpaddusb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdc, 0x11					}, { vpaddusb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xdc, 0x11					}, { vpaddusb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xdd, 0xd4					}, { vpaddusw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdd, 0x11					}, { vpaddusw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xdd, 0x11					}, { vpaddusw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xdb, 0xd4					}, { vpand ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdb, 0x11					}, { vpand ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xdb, 0x11					}, { vpand ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xdf, 0xd4					}, { vpandn ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xdf, 0x11					}, { vpandn ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xdf, 0x11					}, { vpandn ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe0, 0xd4					}, { vpavgb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe0, 0x11					}, { vpavgb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe0, 0x11					}, { vpavgb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe3, 0xd4					}, { vpavgw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe3, 0x11					}, { vpavgw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe3, 0x11					}, { vpavgw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x74, 0xd4					}, { vpcmpeqb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x74, 0x11					}, { vpcmpeqb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x74, 0x11					}, { vpcmpeqb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x75, 0xd4					}, { vpcmpeqw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x75, 0x11					}, { vpcmpeqw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x75, 0x11					}, { vpcmpeqw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x76, 0xd4					}, { vpcmpeqd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x76, 0x11					}, { vpcmpeqd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x76, 0x11					}, { vpcmpeqd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x29, 0xd4					}, { vpcmpeqq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x29, 0x11					}, { vpcmpeqq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x29, 0x11					}, { vpcmpeqq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x64, 0xd4					}, { vpcmpgtb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x64, 0x11					}, { vpcmpgtb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x64, 0x11					}, { vpcmpgtb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x65, 0xd4					}, { vpcmpgtw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x65, 0x11					}, { vpcmpgtw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x65, 0x11					}, { vpcmpgtw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x66, 0xd4					}, { vpcmpgtd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x66, 0x11					}, { vpcmpgtd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x66, 0x11					}, { vpcmpgtd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x37, 0xd4					}, { vpcmpgtq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x37, 0x11					}, { vpcmpgtq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x37, 0x11					}, { vpcmpgtq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x01, 0xd4					}, { vphaddw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x01, 0x11					}, { vphaddw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x01, 0x11					}, { vphaddw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x02, 0xd4					}, { vphaddd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x02, 0x11					}, { vphaddd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x02, 0x11					}, { vphaddd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x03, 0xd4					}, { vphaddsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x03, 0x11					}, { vphaddsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x03, 0x11					}, { vphaddsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x05, 0xd4					}, { vphsubw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x05, 0x11					}, { vphsubw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x05, 0x11					}, { vphsubw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x06, 0xd4					}, { vphsubd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x06, 0x11					}, { vphsubd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x06, 0x11					}, { vphsubd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x07, 0xd4					}, { vphsubsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x07, 0x11					}, { vphsubsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x07, 0x11					}, { vphsubsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf5, 0xd4					}, { vpmaddwd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf5, 0x11					}, { vpmaddwd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf5, 0x11					}, { vpmaddwd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x04, 0xd4					}, { vpmaddubsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x04, 0x11					}, { vpmaddubsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x04, 0x11					}, { vpmaddubsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3c, 0xd4					}, { vpmaxsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3c, 0x11					}, { vpmaxsb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3c, 0x11					}, { vpmaxsb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xee, 0xd4					}, { vpmaxsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xee, 0x11					}, { vpmaxsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xee, 0x11					}, { vpmaxsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3d, 0xd4					}, { vpmaxsd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3d, 0x11					}, { vpmaxsd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3d, 0x11					}, { vpmaxsd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xde, 0xd4					}, { vpmaxub ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xde, 0x11					}, { vpmaxub ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xde, 0x11					}, { vpmaxub ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3e, 0xd4					}, { vpmaxuw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3e, 0x11					}, { vpmaxuw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3e, 0x11					}, { vpmaxuw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3f, 0xd4					}, { vpmaxud ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3f, 0x11					}, { vpmaxud ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3f, 0x11					}, { vpmaxud ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x38, 0xd4					}, { vpminsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x38, 0x11					}, { vpminsb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x38, 0x11					}, { vpminsb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xea, 0xd4					}, { vpminsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xea, 0x11					}, { vpminsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xea, 0x11					}, { vpminsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x39, 0xd4					}, { vpminsd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x39, 0x11					}, { vpminsd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x39, 0x11					}, { vpminsd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xda, 0xd4					}, { vpminub ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xda, 0x11					}, { vpminub ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xda, 0x11					}, { vpminub ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3a, 0xd4					}, { vpminuw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3a, 0x11					}, { vpminuw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3a, 0x11					}, { vpminuw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3b, 0xd4					}, { vpminud ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3b, 0x11					}, { vpminud ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x3b, 0x11					}, { vpminud ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe4, 0xd4					}, { vpmulhuw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe4, 0x11					}, { vpmulhuw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe4, 0x11					}, { vpmulhuw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0b, 0xd4					}, { vpmulhrsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0b, 0x11					}, { vpmulhrsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0b, 0x11					}, { vpmulhrsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe5, 0xd4					}, { vpmulhw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe5, 0x11					}, { vpmulhw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe5, 0x11					}, { vpmulhw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd5, 0xd4					}, { vpmullw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd5, 0x11					}, { vpmullw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd5, 0x11					}, { vpmullw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x40, 0xd4					}, { vpmulld ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x40, 0x11					}, { vpmulld ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x40, 0x11					}, { vpmulld ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf4, 0xd4					}, { vpmuludq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf4, 0x11					}, { vpmuludq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf4, 0x11					}, { vpmuludq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x28, 0xd4					}, { vpmuldq ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x28, 0x11					}, { vpmuldq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x28, 0x11					}, { vpmuldq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xeb, 0xd4					}, { vpor ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xeb, 0x11					}, { vpor ymm2,ymm6,YWORD [rcx]				}
-testcase	{ 0xc5, 0xcd, 0xeb, 0x11					}, { vpor ymm2,ymm6,YWORD [rcx]				}
-testcase	{ 0xc5, 0xcd, 0xf6, 0xd4					}, { vpsadbw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf6, 0x11					}, { vpsadbw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf6, 0x11					}, { vpsadbw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x00, 0xd4					}, { vpshufb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x00, 0x11					}, { vpshufb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x00, 0x11					}, { vpshufb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x08, 0xd4					}, { vpsignb ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x08, 0x11					}, { vpsignb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x08, 0x11					}, { vpsignb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x09, 0xd4					}, { vpsignw ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x09, 0x11					}, { vpsignw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x09, 0x11					}, { vpsignw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0a, 0xd4					}, { vpsignd ymm2,ymm6,ymm4				}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0a, 0x11					}, { vpsignd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x4d, 0x0a, 0x11					}, { vpsignd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf8, 0xd4					}, { vpsubb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf8, 0x11					}, { vpsubb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf8, 0x11					}, { vpsubb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf9, 0xd4					}, { vpsubw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xf9, 0x11					}, { vpsubw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf9, 0x11					}, { vpsubw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfa, 0xd4					}, { vpsubd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfa, 0x11					}, { vpsubd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfa, 0x11					}, { vpsubd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfb, 0xd4					}, { vpsubq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xfb, 0x11					}, { vpsubq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xfb, 0x11					}, { vpsubq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe8, 0xd4					}, { vpsubsb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe8, 0x11					}, { vpsubsb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe8, 0x11					}, { vpsubsb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe9, 0xd4					}, { vpsubsw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xe9, 0x11					}, { vpsubsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe9, 0x11					}, { vpsubsw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd8, 0xd4					}, { vpsubusb ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd8, 0x11					}, { vpsubusb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd8, 0x11					}, { vpsubusb ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd9, 0xd4					}, { vpsubusw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xd9, 0x11					}, { vpsubusw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd9, 0x11					}, { vpsubusw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x68, 0xd4					}, { vpunpckhbw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x68, 0x11					}, { vpunpckhbw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x68, 0x11					}, { vpunpckhbw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x69, 0xd4					}, { vpunpckhwd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x69, 0x11					}, { vpunpckhwd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x69, 0x11					}, { vpunpckhwd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x6a, 0xd4					}, { vpunpckhdq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6a, 0x11					}, { vpunpckhdq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x6a, 0x11					}, { vpunpckhdq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x6d, 0xd4					}, { vpunpckhqdq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6d, 0x11					}, { vpunpckhqdq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x6d, 0x11					}, { vpunpckhqdq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x60, 0xd4					}, { vpunpcklbw ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x60, 0x11					}, { vpunpcklbw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x60, 0x11					}, { vpunpcklbw ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x61, 0xd4					}, { vpunpcklwd ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x61, 0x11					}, { vpunpcklwd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x61, 0x11					}, { vpunpcklwd ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x62, 0xd4					}, { vpunpckldq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x62, 0x11					}, { vpunpckldq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x62, 0x11					}, { vpunpckldq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x6c, 0xd4					}, { vpunpcklqdq ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0x6c, 0x11					}, { vpunpcklqdq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0x6c, 0x11					}, { vpunpcklqdq ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xef, 0xd4					}, { vpxor ymm2,ymm6,ymm4				}
-testcase	{ 0xc5, 0xcd, 0xef, 0x11					}, { vpxor ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xef, 0x11					}, { vpxor ymm2,ymm6,YWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1c, 0xf4					}, { vpabsb ymm6,ymm4					}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1c, 0x21					}, { vpabsb ymm4,YWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1c, 0x21					}, { vpabsb ymm4,YWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1d, 0xf4					}, { vpabsw ymm6,ymm4					}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1d, 0x21					}, { vpabsw ymm4,YWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1d, 0x21					}, { vpabsw ymm4,YWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1e, 0xf4					}, { vpabsd ymm6,ymm4					}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1e, 0x21					}, { vpabsd ymm4,YWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x1e, 0x21					}, { vpabsd ymm4,YWORD [rcx]				}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x42, 0xd4, 0x07				}, { vmpsadbw ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x42, 0x11, 0x07				}, { vmpsadbw ymm2,ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x42, 0x11, 0x07				}, { vmpsadbw ymm2,ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0f, 0xd4, 0x07				}, { vpalignr ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0f, 0x11, 0x07				}, { vpalignr ymm2,ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0f, 0x11, 0x07				}, { vpalignr ymm2,ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0e, 0xd4, 0x07				}, { vpblendw ymm2,ymm6,ymm4,0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0e, 0x11, 0x07				}, { vpblendw ymm2,ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x4d, 0x0e, 0x11, 0x07				}, { vpblendw ymm2,ymm6,YWORD [rcx],0x7			}
-testcase	{ 0xc4, 0xe3, 0x6d, 0x4c, 0xfe, 0x40				}, { vpblendvb ymm7,ymm2,ymm6,ymm4			}
-testcase	{ 0xc4, 0xe3, 0x6d, 0x4c, 0x39, 0x40				}, { vpblendvb ymm7,ymm2,YWORD [rcx],ymm4		}
-testcase	{ 0xc4, 0xe3, 0x6d, 0x4c, 0x39, 0x40				}, { vpblendvb ymm7,ymm2,YWORD [rcx],ymm4		}
-testcase	{ 0xc5, 0xcd, 0xf1, 0xd4					}, { vpsllw ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xf1, 0x11					}, { vpsllw ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf1, 0x11					}, { vpsllw ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf2, 0xd4					}, { vpslld ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xf2, 0x11					}, { vpslld ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf2, 0x11					}, { vpslld ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf3, 0xd4					}, { vpsllq ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xf3, 0x11					}, { vpsllq ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xf3, 0x11					}, { vpsllq ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe1, 0xd4					}, { vpsraw ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xe1, 0x11					}, { vpsraw ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe1, 0x11					}, { vpsraw ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe2, 0xd4					}, { vpsrad ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xe2, 0x11					}, { vpsrad ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xe2, 0x11					}, { vpsrad ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd1, 0xd4					}, { vpsrlw ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xd1, 0x11					}, { vpsrlw ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd1, 0x11					}, { vpsrlw ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd2, 0xd4					}, { vpsrld ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xd2, 0x11					}, { vpsrld ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd2, 0x11					}, { vpsrld ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd3, 0xd4					}, { vpsrlq ymm2,ymm6,xmm4				}
-testcase	{ 0xc5, 0xcd, 0xd3, 0x11					}, { vpsrlq ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc5, 0xcd, 0xd3, 0x11					}, { vpsrlq ymm2,ymm6,OWORD [rcx]			}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x20, 0xe4					}, { vpmovsxbw ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x20, 0x21					}, { vpmovsxbw ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x20, 0x21					}, { vpmovsxbw ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x23, 0xe4					}, { vpmovsxwd ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x23, 0x21					}, { vpmovsxwd ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x23, 0x21					}, { vpmovsxwd ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x25, 0xe4					}, { vpmovsxdq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x25, 0x21					}, { vpmovsxdq ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x25, 0x21					}, { vpmovsxdq ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x30, 0xe4					}, { vpmovzxbw ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x30, 0x21					}, { vpmovzxbw ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x30, 0x21					}, { vpmovzxbw ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x33, 0xe4					}, { vpmovzxwd ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x33, 0x21					}, { vpmovzxwd ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x33, 0x21					}, { vpmovzxwd ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x35, 0xe4					}, { vpmovzxdq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x35, 0x21					}, { vpmovzxdq ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x35, 0x21					}, { vpmovzxdq ymm4,OWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x21, 0xf4					}, { vpmovsxbd ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x21, 0x21					}, { vpmovsxbd ymm4,QWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x21, 0x21					}, { vpmovsxbd ymm4,QWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x24, 0xf4					}, { vpmovsxwq ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x24, 0x21					}, { vpmovsxwq ymm4,QWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x24, 0x21					}, { vpmovsxwq ymm4,QWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x31, 0xf4					}, { vpmovzxbd ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x31, 0x21					}, { vpmovzxbd ymm4,QWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x31, 0x21					}, { vpmovzxbd ymm4,QWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x34, 0xf4					}, { vpmovzxwq ymm6,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x34, 0x21					}, { vpmovzxwq ymm4,QWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x34, 0x21					}, { vpmovzxwq ymm4,QWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x22, 0xe4					}, { vpmovsxbq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x22, 0x21					}, { vpmovsxbq ymm4,DWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x22, 0x21					}, { vpmovsxbq ymm4,DWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x32, 0xe4					}, { vpmovzxbq ymm4,xmm4				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x32, 0x21					}, { vpmovzxbq ymm4,DWORD [rcx]				}
-testcase	{ 0xc4, 0xe2, 0x7d, 0x32, 0x21					}, { vpmovzxbq ymm4,DWORD [rcx]				}
-
-; EOF
--- a/nasmbuild/nasm-2.13rc9/test/avx512cd.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-;Testname=avx512cd; Arguments=-fbin -oavx512cd.bin -O0 -DSRC; Files=stdout stderr avx512cd.bin
-; AVX-512CD testcases from gas
-;------------------------
-;
-; This file is taken from there
-;     https://gnu.googlesource.com/binutils/+/master/gas/testsuite/gas/i386/x86-64-avx512cd-intel.d
-; So the original author is "H.J. Lu" <hongjiu dot lu at intel dot com>
-;
-; Jin Kyu Song converted it for the nasm testing suite using gas2nasm.py
-
-%macro testcase 2
- %ifdef BIN
-  db %1
- %endif
- %ifdef SRC
-  %2
- %endif
-%endmacro
-
-
-bits 64
-
-testcase	{ 0x62, 0x02, 0x7d, 0x48, 0xc4, 0xf5                                     }, { vpconflictd zmm30,zmm29                                      }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0xc4, 0xf5                                     }, { vpconflictd zmm30{k7},zmm29                                  }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0xc4, 0xf5                                     }, { vpconflictd zmm30{k7}{z},zmm29                               }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xc4, 0x31                                     }, { vpconflictd zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0xc4, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpconflictd zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xc4, 0x31                                     }, { vpconflictd zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xc4, 0x72, 0x7f                               }, { vpconflictd zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xc4, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpconflictd zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xc4, 0x72, 0x80                               }, { vpconflictd zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xc4, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpconflictd zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xc4, 0x72, 0x7f                               }, { vpconflictd zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xc4, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpconflictd zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xc4, 0x72, 0x80                               }, { vpconflictd zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xc4, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpconflictd zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x02, 0xfd, 0x48, 0xc4, 0xf5                                     }, { vpconflictq zmm30,zmm29                                      }
-testcase	{ 0x62, 0x02, 0xfd, 0x4f, 0xc4, 0xf5                                     }, { vpconflictq zmm30{k7},zmm29                                  }
-testcase	{ 0x62, 0x02, 0xfd, 0xcf, 0xc4, 0xf5                                     }, { vpconflictq zmm30{k7}{z},zmm29                               }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xc4, 0x31                                     }, { vpconflictq zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0xc4, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpconflictq zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xc4, 0x31                                     }, { vpconflictq zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xc4, 0x72, 0x7f                               }, { vpconflictq zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xc4, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpconflictq zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xc4, 0x72, 0x80                               }, { vpconflictq zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xc4, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpconflictq zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xc4, 0x72, 0x7f                               }, { vpconflictq zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xc4, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpconflictq zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xc4, 0x72, 0x80                               }, { vpconflictq zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xc4, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpconflictq zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x02, 0x7d, 0x48, 0x44, 0xf5                                     }, { vplzcntd zmm30,zmm29                                         }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x44, 0xf5                                     }, { vplzcntd zmm30{k7},zmm29                                     }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x44, 0xf5                                     }, { vplzcntd zmm30{k7}{z},zmm29                                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x44, 0x31                                     }, { vplzcntd zmm30,ZWORD [rcx]                                   }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0x44, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vplzcntd zmm30,ZWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x44, 0x31                                     }, { vplzcntd zmm30,DWORD [rcx]{1to16}                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x44, 0x72, 0x7f                               }, { vplzcntd zmm30,ZWORD [rdx+0x1fc0]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x44, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vplzcntd zmm30,ZWORD [rdx+0x2000]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x44, 0x72, 0x80                               }, { vplzcntd zmm30,ZWORD [rdx-0x2000]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x44, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vplzcntd zmm30,ZWORD [rdx-0x2040]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x44, 0x72, 0x7f                               }, { vplzcntd zmm30,DWORD [rdx+0x1fc]{1to16}                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x44, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vplzcntd zmm30,DWORD [rdx+0x200]{1to16}                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x44, 0x72, 0x80                               }, { vplzcntd zmm30,DWORD [rdx-0x200]{1to16}                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x44, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vplzcntd zmm30,DWORD [rdx-0x204]{1to16}                      }
-testcase	{ 0x62, 0x02, 0xfd, 0x48, 0x44, 0xf5                                     }, { vplzcntq zmm30,zmm29                                         }
-testcase	{ 0x62, 0x02, 0xfd, 0x4f, 0x44, 0xf5                                     }, { vplzcntq zmm30{k7},zmm29                                     }
-testcase	{ 0x62, 0x02, 0xfd, 0xcf, 0x44, 0xf5                                     }, { vplzcntq zmm30{k7}{z},zmm29                                  }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x44, 0x31                                     }, { vplzcntq zmm30,ZWORD [rcx]                                   }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0x44, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vplzcntq zmm30,ZWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x44, 0x31                                     }, { vplzcntq zmm30,QWORD [rcx]{1to8}                             }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x44, 0x72, 0x7f                               }, { vplzcntq zmm30,ZWORD [rdx+0x1fc0]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x44, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vplzcntq zmm30,ZWORD [rdx+0x2000]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x44, 0x72, 0x80                               }, { vplzcntq zmm30,ZWORD [rdx-0x2000]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x44, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vplzcntq zmm30,ZWORD [rdx-0x2040]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x44, 0x72, 0x7f                               }, { vplzcntq zmm30,QWORD [rdx+0x3f8]{1to8}                       }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x44, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vplzcntq zmm30,QWORD [rdx+0x400]{1to8}                       }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x44, 0x72, 0x80                               }, { vplzcntq zmm30,QWORD [rdx-0x400]{1to8}                       }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x44, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vplzcntq zmm30,QWORD [rdx-0x408]{1to8}                       }
-testcase	{ 0x62, 0x92, 0x16, 0x40, 0x27, 0xec                                     }, { vptestnmd k5,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x92, 0x16, 0x47, 0x27, 0xec                                     }, { vptestnmd k5{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0xf2, 0x16, 0x40, 0x27, 0x29                                     }, { vptestnmd k5,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb2, 0x16, 0x40, 0x27, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vptestnmd k5,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf2, 0x16, 0x50, 0x27, 0x29                                     }, { vptestnmd k5,zmm29,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf2, 0x16, 0x40, 0x27, 0x6a, 0x7f                               }, { vptestnmd k5,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf2, 0x16, 0x40, 0x27, 0xaa, 0x00, 0x20, 0x00, 0x00             }, { vptestnmd k5,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf2, 0x16, 0x40, 0x27, 0x6a, 0x80                               }, { vptestnmd k5,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf2, 0x16, 0x40, 0x27, 0xaa, 0xc0, 0xdf, 0xff, 0xff             }, { vptestnmd k5,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf2, 0x16, 0x50, 0x27, 0x6a, 0x7f                               }, { vptestnmd k5,zmm29,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf2, 0x16, 0x50, 0x27, 0xaa, 0x00, 0x02, 0x00, 0x00             }, { vptestnmd k5,zmm29,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf2, 0x16, 0x50, 0x27, 0x6a, 0x80                               }, { vptestnmd k5,zmm29,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf2, 0x16, 0x50, 0x27, 0xaa, 0xfc, 0xfd, 0xff, 0xff             }, { vptestnmd k5,zmm29,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x92, 0x96, 0x40, 0x27, 0xec                                     }, { vptestnmq k5,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x92, 0x96, 0x47, 0x27, 0xec                                     }, { vptestnmq k5{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0xf2, 0x96, 0x40, 0x27, 0x29                                     }, { vptestnmq k5,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb2, 0x96, 0x40, 0x27, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vptestnmq k5,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf2, 0x96, 0x50, 0x27, 0x29                                     }, { vptestnmq k5,zmm29,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf2, 0x96, 0x40, 0x27, 0x6a, 0x7f                               }, { vptestnmq k5,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf2, 0x96, 0x40, 0x27, 0xaa, 0x00, 0x20, 0x00, 0x00             }, { vptestnmq k5,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf2, 0x96, 0x40, 0x27, 0x6a, 0x80                               }, { vptestnmq k5,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf2, 0x96, 0x40, 0x27, 0xaa, 0xc0, 0xdf, 0xff, 0xff             }, { vptestnmq k5,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf2, 0x96, 0x50, 0x27, 0x6a, 0x7f                               }, { vptestnmq k5,zmm29,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf2, 0x96, 0x50, 0x27, 0xaa, 0x00, 0x04, 0x00, 0x00             }, { vptestnmq k5,zmm29,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf2, 0x96, 0x50, 0x27, 0x6a, 0x80                               }, { vptestnmq k5,zmm29,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf2, 0x96, 0x50, 0x27, 0xaa, 0xf8, 0xfb, 0xff, 0xff             }, { vptestnmq k5,zmm29,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x3a, 0xf6                                     }, { vpbroadcastmw2d zmm30,k6                                     }
-testcase	{ 0x62, 0x62, 0xfe, 0x48, 0x2a, 0xf6                                     }, { vpbroadcastmb2q zmm30,k6                                     }
--- a/nasmbuild/nasm-2.13rc9/test/avx512er.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,144 +0,0 @@
-;Testname=avx512er; Arguments=-fbin -oavx512er.bin -O0 -DSRC; Files=stdout stderr avx512er.bin
-; AVX-512ER testcases from gas
-;------------------------
-;
-; This file is taken from there
-;     https://gnu.googlesource.com/binutils/+/master/gas/testsuite/gas/i386/x86-64-avx512er-intel.d
-; So the original author is "H.J. Lu" <hongjiu dot lu at intel dot com>
-;
-; Jin Kyu Song converted it for the nasm testing suite using gas2nasm.py
-
-%macro testcase 2
- %ifdef BIN
-  db %1
- %endif
- %ifdef SRC
-  %2
- %endif
-%endmacro
-
-
-bits 64
-
-testcase	{ 0x62, 0x02, 0x7d, 0x48, 0xc8, 0xf5                                     }, { vexp2ps zmm30,zmm29                                          }
-testcase	{ 0x62, 0x02, 0x7d, 0x18, 0xc8, 0xf5                                     }, { vexp2ps zmm30,zmm29,{sae}                                    }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xc8, 0x31                                     }, { vexp2ps zmm30,ZWORD [rcx]                                    }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0xc8, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vexp2ps zmm30,ZWORD [rax+r14*8+0x123]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xc8, 0x31                                     }, { vexp2ps zmm30,DWORD [rcx]{1to16}                             }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xc8, 0x72, 0x7f                               }, { vexp2ps zmm30,ZWORD [rdx+0x1fc0]                             }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xc8, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vexp2ps zmm30,ZWORD [rdx+0x2000]                             }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xc8, 0x72, 0x80                               }, { vexp2ps zmm30,ZWORD [rdx-0x2000]                             }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xc8, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vexp2ps zmm30,ZWORD [rdx-0x2040]                             }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xc8, 0x72, 0x7f                               }, { vexp2ps zmm30,DWORD [rdx+0x1fc]{1to16}                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xc8, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vexp2ps zmm30,DWORD [rdx+0x200]{1to16}                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xc8, 0x72, 0x80                               }, { vexp2ps zmm30,DWORD [rdx-0x200]{1to16}                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xc8, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vexp2ps zmm30,DWORD [rdx-0x204]{1to16}                       }
-testcase	{ 0x62, 0x02, 0xfd, 0x48, 0xc8, 0xf5                                     }, { vexp2pd zmm30,zmm29                                          }
-testcase	{ 0x62, 0x02, 0xfd, 0x18, 0xc8, 0xf5                                     }, { vexp2pd zmm30,zmm29,{sae}                                    }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xc8, 0x31                                     }, { vexp2pd zmm30,ZWORD [rcx]                                    }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0xc8, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vexp2pd zmm30,ZWORD [rax+r14*8+0x123]                        }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xc8, 0x31                                     }, { vexp2pd zmm30,QWORD [rcx]{1to8}                              }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xc8, 0x72, 0x7f                               }, { vexp2pd zmm30,ZWORD [rdx+0x1fc0]                             }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xc8, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vexp2pd zmm30,ZWORD [rdx+0x2000]                             }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xc8, 0x72, 0x80                               }, { vexp2pd zmm30,ZWORD [rdx-0x2000]                             }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xc8, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vexp2pd zmm30,ZWORD [rdx-0x2040]                             }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xc8, 0x72, 0x7f                               }, { vexp2pd zmm30,QWORD [rdx+0x3f8]{1to8}                        }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xc8, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vexp2pd zmm30,QWORD [rdx+0x400]{1to8}                        }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xc8, 0x72, 0x80                               }, { vexp2pd zmm30,QWORD [rdx-0x400]{1to8}                        }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xc8, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vexp2pd zmm30,QWORD [rdx-0x408]{1to8}                        }
-testcase	{ 0x62, 0x02, 0x7d, 0x48, 0xca, 0xf5                                     }, { vrcp28ps zmm30,zmm29                                         }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0xca, 0xf5                                     }, { vrcp28ps zmm30{k7},zmm29                                     }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0xca, 0xf5                                     }, { vrcp28ps zmm30{k7}{z},zmm29                                  }
-testcase	{ 0x62, 0x02, 0x7d, 0x18, 0xca, 0xf5                                     }, { vrcp28ps zmm30,zmm29,{sae}                                   }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xca, 0x31                                     }, { vrcp28ps zmm30,ZWORD [rcx]                                   }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0xca, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrcp28ps zmm30,ZWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xca, 0x31                                     }, { vrcp28ps zmm30,DWORD [rcx]{1to16}                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xca, 0x72, 0x7f                               }, { vrcp28ps zmm30,ZWORD [rdx+0x1fc0]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xca, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vrcp28ps zmm30,ZWORD [rdx+0x2000]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xca, 0x72, 0x80                               }, { vrcp28ps zmm30,ZWORD [rdx-0x2000]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xca, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vrcp28ps zmm30,ZWORD [rdx-0x2040]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xca, 0x72, 0x7f                               }, { vrcp28ps zmm30,DWORD [rdx+0x1fc]{1to16}                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xca, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vrcp28ps zmm30,DWORD [rdx+0x200]{1to16}                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xca, 0x72, 0x80                               }, { vrcp28ps zmm30,DWORD [rdx-0x200]{1to16}                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xca, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vrcp28ps zmm30,DWORD [rdx-0x204]{1to16}                      }
-testcase	{ 0x62, 0x02, 0xfd, 0x48, 0xca, 0xf5                                     }, { vrcp28pd zmm30,zmm29                                         }
-testcase	{ 0x62, 0x02, 0xfd, 0x4f, 0xca, 0xf5                                     }, { vrcp28pd zmm30{k7},zmm29                                     }
-testcase	{ 0x62, 0x02, 0xfd, 0xcf, 0xca, 0xf5                                     }, { vrcp28pd zmm30{k7}{z},zmm29                                  }
-testcase	{ 0x62, 0x02, 0xfd, 0x18, 0xca, 0xf5                                     }, { vrcp28pd zmm30,zmm29,{sae}                                   }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xca, 0x31                                     }, { vrcp28pd zmm30,ZWORD [rcx]                                   }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0xca, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrcp28pd zmm30,ZWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xca, 0x31                                     }, { vrcp28pd zmm30,QWORD [rcx]{1to8}                             }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xca, 0x72, 0x7f                               }, { vrcp28pd zmm30,ZWORD [rdx+0x1fc0]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xca, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vrcp28pd zmm30,ZWORD [rdx+0x2000]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xca, 0x72, 0x80                               }, { vrcp28pd zmm30,ZWORD [rdx-0x2000]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xca, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vrcp28pd zmm30,ZWORD [rdx-0x2040]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xca, 0x72, 0x7f                               }, { vrcp28pd zmm30,QWORD [rdx+0x3f8]{1to8}                       }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xca, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vrcp28pd zmm30,QWORD [rdx+0x400]{1to8}                       }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xca, 0x72, 0x80                               }, { vrcp28pd zmm30,QWORD [rdx-0x400]{1to8}                       }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xca, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vrcp28pd zmm30,QWORD [rdx-0x408]{1to8}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0xcb, 0xf4                                     }, { vrcp28ss xmm30{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0xcb, 0xf4                                     }, { vrcp28ss xmm30{k7}{z},xmm29,xmm28                            }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0xcb, 0xf4                                     }, { vrcp28ss xmm30{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xcb, 0x31                                     }, { vrcp28ss xmm30{k7},xmm29,DWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0xcb, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrcp28ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xcb, 0x72, 0x7f                               }, { vrcp28ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xcb, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vrcp28ss xmm30{k7},xmm29,DWORD [rdx+0x200]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xcb, 0x72, 0x80                               }, { vrcp28ss xmm30{k7},xmm29,DWORD [rdx-0x200]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xcb, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vrcp28ss xmm30{k7},xmm29,DWORD [rdx-0x204]                   }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0xcb, 0xf4                                     }, { vrcp28sd xmm30{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0xcb, 0xf4                                     }, { vrcp28sd xmm30{k7}{z},xmm29,xmm28                            }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0xcb, 0xf4                                     }, { vrcp28sd xmm30{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xcb, 0x31                                     }, { vrcp28sd xmm30{k7},xmm29,QWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0xcb, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrcp28sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xcb, 0x72, 0x7f                               }, { vrcp28sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xcb, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vrcp28sd xmm30{k7},xmm29,QWORD [rdx+0x400]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xcb, 0x72, 0x80                               }, { vrcp28sd xmm30{k7},xmm29,QWORD [rdx-0x400]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xcb, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vrcp28sd xmm30{k7},xmm29,QWORD [rdx-0x408]                   }
-testcase	{ 0x62, 0x02, 0x7d, 0x48, 0xcc, 0xf5                                     }, { vrsqrt28ps zmm30,zmm29                                       }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0xcc, 0xf5                                     }, { vrsqrt28ps zmm30{k7},zmm29                                   }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0xcc, 0xf5                                     }, { vrsqrt28ps zmm30{k7}{z},zmm29                                }
-testcase	{ 0x62, 0x02, 0x7d, 0x18, 0xcc, 0xf5                                     }, { vrsqrt28ps zmm30,zmm29,{sae}                                 }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xcc, 0x31                                     }, { vrsqrt28ps zmm30,ZWORD [rcx]                                 }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0xcc, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrsqrt28ps zmm30,ZWORD [rax+r14*8+0x123]                     }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xcc, 0x31                                     }, { vrsqrt28ps zmm30,DWORD [rcx]{1to16}                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xcc, 0x72, 0x7f                               }, { vrsqrt28ps zmm30,ZWORD [rdx+0x1fc0]                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xcc, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vrsqrt28ps zmm30,ZWORD [rdx+0x2000]                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xcc, 0x72, 0x80                               }, { vrsqrt28ps zmm30,ZWORD [rdx-0x2000]                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0xcc, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vrsqrt28ps zmm30,ZWORD [rdx-0x2040]                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xcc, 0x72, 0x7f                               }, { vrsqrt28ps zmm30,DWORD [rdx+0x1fc]{1to16}                    }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xcc, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vrsqrt28ps zmm30,DWORD [rdx+0x200]{1to16}                    }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xcc, 0x72, 0x80                               }, { vrsqrt28ps zmm30,DWORD [rdx-0x200]{1to16}                    }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0xcc, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vrsqrt28ps zmm30,DWORD [rdx-0x204]{1to16}                    }
-testcase	{ 0x62, 0x02, 0xfd, 0x48, 0xcc, 0xf5                                     }, { vrsqrt28pd zmm30,zmm29                                       }
-testcase	{ 0x62, 0x02, 0xfd, 0x4f, 0xcc, 0xf5                                     }, { vrsqrt28pd zmm30{k7},zmm29                                   }
-testcase	{ 0x62, 0x02, 0xfd, 0xcf, 0xcc, 0xf5                                     }, { vrsqrt28pd zmm30{k7}{z},zmm29                                }
-testcase	{ 0x62, 0x02, 0xfd, 0x18, 0xcc, 0xf5                                     }, { vrsqrt28pd zmm30,zmm29,{sae}                                 }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xcc, 0x31                                     }, { vrsqrt28pd zmm30,ZWORD [rcx]                                 }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0xcc, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrsqrt28pd zmm30,ZWORD [rax+r14*8+0x123]                     }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xcc, 0x31                                     }, { vrsqrt28pd zmm30,QWORD [rcx]{1to8}                           }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xcc, 0x72, 0x7f                               }, { vrsqrt28pd zmm30,ZWORD [rdx+0x1fc0]                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xcc, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vrsqrt28pd zmm30,ZWORD [rdx+0x2000]                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xcc, 0x72, 0x80                               }, { vrsqrt28pd zmm30,ZWORD [rdx-0x2000]                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0xcc, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vrsqrt28pd zmm30,ZWORD [rdx-0x2040]                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xcc, 0x72, 0x7f                               }, { vrsqrt28pd zmm30,QWORD [rdx+0x3f8]{1to8}                     }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xcc, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vrsqrt28pd zmm30,QWORD [rdx+0x400]{1to8}                     }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xcc, 0x72, 0x80                               }, { vrsqrt28pd zmm30,QWORD [rdx-0x400]{1to8}                     }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0xcc, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vrsqrt28pd zmm30,QWORD [rdx-0x408]{1to8}                     }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0xcd, 0xf4                                     }, { vrsqrt28ss xmm30{k7},xmm29,xmm28                             }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0xcd, 0xf4                                     }, { vrsqrt28ss xmm30{k7}{z},xmm29,xmm28                          }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0xcd, 0xf4                                     }, { vrsqrt28ss xmm30{k7},xmm29,xmm28,{sae}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xcd, 0x31                                     }, { vrsqrt28ss xmm30{k7},xmm29,DWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0xcd, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrsqrt28ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xcd, 0x72, 0x7f                               }, { vrsqrt28ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                 }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xcd, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vrsqrt28ss xmm30{k7},xmm29,DWORD [rdx+0x200]                 }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xcd, 0x72, 0x80                               }, { vrsqrt28ss xmm30{k7},xmm29,DWORD [rdx-0x200]                 }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xcd, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vrsqrt28ss xmm30{k7},xmm29,DWORD [rdx-0x204]                 }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0xcd, 0xf4                                     }, { vrsqrt28sd xmm30{k7},xmm29,xmm28                             }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0xcd, 0xf4                                     }, { vrsqrt28sd xmm30{k7}{z},xmm29,xmm28                          }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0xcd, 0xf4                                     }, { vrsqrt28sd xmm30{k7},xmm29,xmm28,{sae}                       }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xcd, 0x31                                     }, { vrsqrt28sd xmm30{k7},xmm29,QWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0xcd, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrsqrt28sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xcd, 0x72, 0x7f                               }, { vrsqrt28sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                 }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xcd, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vrsqrt28sd xmm30{k7},xmm29,QWORD [rdx+0x400]                 }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xcd, 0x72, 0x80                               }, { vrsqrt28sd xmm30{k7},xmm29,QWORD [rdx-0x400]                 }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xcd, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vrsqrt28sd xmm30{k7},xmm29,QWORD [rdx-0x408]                 }
--- a/nasmbuild/nasm-2.13rc9/test/avx512f.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7000 +0,0 @@
-;Testname=avx512f; Arguments=-fbin -oavx512f.bin -O0 -DSRC; Files=stdout stderr avx512f.bin
-; AVX-512F testcases from gas
-;------------------------
-;
-; This file is taken from there
-;     https://gnu.googlesource.com/binutils/+/master/gas/testsuite/gas/i386/x86-64-avx512f-intel.d
-; So the original author is "H.J. Lu" <hongjiu dot lu at intel dot com>
-;
-; Jin Kyu Song converted it for the nasm testing suite using gas2nasm.py
-
-%macro testcase 2
- %ifdef BIN
-  db %1
- %endif
- %ifdef SRC
-  %2
- %endif
-%endmacro
-
-
-bits 64
-
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0x58, 0xf4                                     }, { vaddpd zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0x58, 0xf4                                     }, { vaddpd zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0x58, 0xf4                                     }, { vaddpd zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x95, 0x10, 0x58, 0xf4                                     }, { vaddpd zmm30,zmm29,zmm28,{rn-sae}                            }
-testcase	{ 0x62, 0x01, 0x95, 0x50, 0x58, 0xf4                                     }, { vaddpd zmm30,zmm29,zmm28,{ru-sae}                            }
-testcase	{ 0x62, 0x01, 0x95, 0x30, 0x58, 0xf4                                     }, { vaddpd zmm30,zmm29,zmm28,{rd-sae}                            }
-testcase	{ 0x62, 0x01, 0x95, 0x70, 0x58, 0xf4                                     }, { vaddpd zmm30,zmm29,zmm28,{rz-sae}                            }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x58, 0x31                                     }, { vaddpd zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0x58, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vaddpd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x58, 0x31                                     }, { vaddpd zmm30,zmm29,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x58, 0x72, 0x7f                               }, { vaddpd zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x58, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vaddpd zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x58, 0x72, 0x80                               }, { vaddpd zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x58, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vaddpd zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x58, 0x72, 0x7f                               }, { vaddpd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x58, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vaddpd zmm30,zmm29,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x58, 0x72, 0x80                               }, { vaddpd zmm30,zmm29,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x58, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vaddpd zmm30,zmm29,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x01, 0x14, 0x40, 0x58, 0xf4                                     }, { vaddps zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x14, 0x47, 0x58, 0xf4                                     }, { vaddps zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x14, 0xc7, 0x58, 0xf4                                     }, { vaddps zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x14, 0x10, 0x58, 0xf4                                     }, { vaddps zmm30,zmm29,zmm28,{rn-sae}                            }
-testcase	{ 0x62, 0x01, 0x14, 0x50, 0x58, 0xf4                                     }, { vaddps zmm30,zmm29,zmm28,{ru-sae}                            }
-testcase	{ 0x62, 0x01, 0x14, 0x30, 0x58, 0xf4                                     }, { vaddps zmm30,zmm29,zmm28,{rd-sae}                            }
-testcase	{ 0x62, 0x01, 0x14, 0x70, 0x58, 0xf4                                     }, { vaddps zmm30,zmm29,zmm28,{rz-sae}                            }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x58, 0x31                                     }, { vaddps zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x14, 0x40, 0x58, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vaddps zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x58, 0x31                                     }, { vaddps zmm30,zmm29,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x58, 0x72, 0x7f                               }, { vaddps zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x58, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vaddps zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x58, 0x72, 0x80                               }, { vaddps zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x58, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vaddps zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x58, 0x72, 0x7f                               }, { vaddps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x58, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vaddps zmm30,zmm29,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x58, 0x72, 0x80                               }, { vaddps zmm30,zmm29,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x58, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vaddps zmm30,zmm29,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x01, 0x97, 0x07, 0x58, 0xf4                                     }, { vaddsd xmm30{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x97, 0x87, 0x58, 0xf4                                     }, { vaddsd xmm30{k7}{z},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x97, 0x17, 0x58, 0xf4                                     }, { vaddsd xmm30{k7},xmm29,xmm28,{rn-sae}                        }
-testcase	{ 0x62, 0x01, 0x97, 0x57, 0x58, 0xf4                                     }, { vaddsd xmm30{k7},xmm29,xmm28,{ru-sae}                        }
-testcase	{ 0x62, 0x01, 0x97, 0x37, 0x58, 0xf4                                     }, { vaddsd xmm30{k7},xmm29,xmm28,{rd-sae}                        }
-testcase	{ 0x62, 0x01, 0x97, 0x77, 0x58, 0xf4                                     }, { vaddsd xmm30{k7},xmm29,xmm28,{rz-sae}                        }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x58, 0x31                                     }, { vaddsd xmm30{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x97, 0x07, 0x58, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vaddsd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x58, 0x72, 0x7f                               }, { vaddsd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x58, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vaddsd xmm30{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x58, 0x72, 0x80                               }, { vaddsd xmm30{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x58, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vaddsd xmm30{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x01, 0x16, 0x07, 0x58, 0xf4                                     }, { vaddss xmm30{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x16, 0x87, 0x58, 0xf4                                     }, { vaddss xmm30{k7}{z},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x16, 0x17, 0x58, 0xf4                                     }, { vaddss xmm30{k7},xmm29,xmm28,{rn-sae}                        }
-testcase	{ 0x62, 0x01, 0x16, 0x57, 0x58, 0xf4                                     }, { vaddss xmm30{k7},xmm29,xmm28,{ru-sae}                        }
-testcase	{ 0x62, 0x01, 0x16, 0x37, 0x58, 0xf4                                     }, { vaddss xmm30{k7},xmm29,xmm28,{rd-sae}                        }
-testcase	{ 0x62, 0x01, 0x16, 0x77, 0x58, 0xf4                                     }, { vaddss xmm30{k7},xmm29,xmm28,{rz-sae}                        }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x58, 0x31                                     }, { vaddss xmm30{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x16, 0x07, 0x58, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vaddss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x58, 0x72, 0x7f                               }, { vaddss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x58, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vaddss xmm30{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x58, 0x72, 0x80                               }, { vaddss xmm30{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x58, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vaddss xmm30{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x03, 0x15, 0x40, 0x03, 0xf4, 0xab                               }, { valignd zmm30,zmm29,zmm28,0xab                               }
-testcase	{ 0x62, 0x03, 0x15, 0x47, 0x03, 0xf4, 0xab                               }, { valignd zmm30{k7},zmm29,zmm28,0xab                           }
-testcase	{ 0x62, 0x03, 0x15, 0xc7, 0x03, 0xf4, 0xab                               }, { valignd zmm30{k7}{z},zmm29,zmm28,0xab                        }
-testcase	{ 0x62, 0x03, 0x15, 0x40, 0x03, 0xf4, 0x7b                               }, { valignd zmm30,zmm29,zmm28,0x7b                               }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x03, 0x31, 0x7b                               }, { valignd zmm30,zmm29,ZWORD [rcx],0x7b                         }
-testcase	{ 0x62, 0x23, 0x15, 0x40, 0x03, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { valignd zmm30,zmm29,ZWORD [rax+r14*8+0x123],0x7b             }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x03, 0x31, 0x7b                               }, { valignd zmm30,zmm29,DWORD [rcx]{1to16},0x7b                  }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x03, 0x72, 0x7f, 0x7b                         }, { valignd zmm30,zmm29,ZWORD [rdx+0x1fc0],0x7b                  }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x03, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { valignd zmm30,zmm29,ZWORD [rdx+0x2000],0x7b                  }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x03, 0x72, 0x80, 0x7b                         }, { valignd zmm30,zmm29,ZWORD [rdx-0x2000],0x7b                  }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x03, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { valignd zmm30,zmm29,ZWORD [rdx-0x2040],0x7b                  }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x03, 0x72, 0x7f, 0x7b                         }, { valignd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16},0x7b            }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x03, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { valignd zmm30,zmm29,DWORD [rdx+0x200]{1to16},0x7b            }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x03, 0x72, 0x80, 0x7b                         }, { valignd zmm30,zmm29,DWORD [rdx-0x200]{1to16},0x7b            }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x03, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { valignd zmm30,zmm29,DWORD [rdx-0x204]{1to16},0x7b            }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x65, 0xf4                                     }, { vblendmpd zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x65, 0xf4                                     }, { vblendmpd zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x65, 0xf4                                     }, { vblendmpd zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x65, 0x31                                     }, { vblendmpd zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x65, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vblendmpd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x65, 0x31                                     }, { vblendmpd zmm30,zmm29,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x65, 0x72, 0x7f                               }, { vblendmpd zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x65, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vblendmpd zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x65, 0x72, 0x80                               }, { vblendmpd zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x65, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vblendmpd zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x65, 0x72, 0x7f                               }, { vblendmpd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x65, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vblendmpd zmm30,zmm29,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x65, 0x72, 0x80                               }, { vblendmpd zmm30,zmm29,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x65, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vblendmpd zmm30,zmm29,QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x65, 0xf4                                     }, { vblendmps zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x65, 0xf4                                     }, { vblendmps zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x65, 0xf4                                     }, { vblendmps zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x65, 0x31                                     }, { vblendmps zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x65, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vblendmps zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x65, 0x31                                     }, { vblendmps zmm30,zmm29,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x65, 0x72, 0x7f                               }, { vblendmps zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x65, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vblendmps zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x65, 0x72, 0x80                               }, { vblendmps zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x65, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vblendmps zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x65, 0x72, 0x7f                               }, { vblendmps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x65, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vblendmps zmm30,zmm29,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x65, 0x72, 0x80                               }, { vblendmps zmm30,zmm29,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x65, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vblendmps zmm30,zmm29,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x1a, 0x31                                     }, { vbroadcastf32x4 zmm30,OWORD [rcx]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x1a, 0x31                                     }, { vbroadcastf32x4 zmm30{k7},OWORD [rcx]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0xcf, 0x1a, 0x31                                     }, { vbroadcastf32x4 zmm30{k7}{z},OWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0x1a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vbroadcastf32x4 zmm30,OWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x1a, 0x72, 0x7f                               }, { vbroadcastf32x4 zmm30,OWORD [rdx+0x7f0]                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x1a, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vbroadcastf32x4 zmm30,OWORD [rdx+0x800]                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x1a, 0x72, 0x80                               }, { vbroadcastf32x4 zmm30,OWORD [rdx-0x800]                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x1a, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vbroadcastf32x4 zmm30,OWORD [rdx-0x810]                      }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x1b, 0x31                                     }, { vbroadcastf64x4 zmm30,YWORD [rcx]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x4f, 0x1b, 0x31                                     }, { vbroadcastf64x4 zmm30{k7},YWORD [rcx]                        }
-testcase	{ 0x62, 0x62, 0xfd, 0xcf, 0x1b, 0x31                                     }, { vbroadcastf64x4 zmm30{k7}{z},YWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0x1b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vbroadcastf64x4 zmm30,YWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x1b, 0x72, 0x7f                               }, { vbroadcastf64x4 zmm30,YWORD [rdx+0xfe0]                      }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x1b, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vbroadcastf64x4 zmm30,YWORD [rdx+0x1000]                     }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x1b, 0x72, 0x80                               }, { vbroadcastf64x4 zmm30,YWORD [rdx-0x1000]                     }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x1b, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vbroadcastf64x4 zmm30,YWORD [rdx-0x1020]                     }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x5a, 0x31                                     }, { vbroadcasti32x4 zmm30,OWORD [rcx]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x5a, 0x31                                     }, { vbroadcasti32x4 zmm30{k7},OWORD [rcx]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0xcf, 0x5a, 0x31                                     }, { vbroadcasti32x4 zmm30{k7}{z},OWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0x5a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vbroadcasti32x4 zmm30,OWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x5a, 0x72, 0x7f                               }, { vbroadcasti32x4 zmm30,OWORD [rdx+0x7f0]                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x5a, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vbroadcasti32x4 zmm30,OWORD [rdx+0x800]                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x5a, 0x72, 0x80                               }, { vbroadcasti32x4 zmm30,OWORD [rdx-0x800]                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x5a, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vbroadcasti32x4 zmm30,OWORD [rdx-0x810]                      }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x5b, 0x31                                     }, { vbroadcasti64x4 zmm30,YWORD [rcx]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x4f, 0x5b, 0x31                                     }, { vbroadcasti64x4 zmm30{k7},YWORD [rcx]                        }
-testcase	{ 0x62, 0x62, 0xfd, 0xcf, 0x5b, 0x31                                     }, { vbroadcasti64x4 zmm30{k7}{z},YWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0x5b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vbroadcasti64x4 zmm30,YWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x5b, 0x72, 0x7f                               }, { vbroadcasti64x4 zmm30,YWORD [rdx+0xfe0]                      }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x5b, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vbroadcasti64x4 zmm30,YWORD [rdx+0x1000]                     }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x5b, 0x72, 0x80                               }, { vbroadcasti64x4 zmm30,YWORD [rdx-0x1000]                     }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x5b, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vbroadcasti64x4 zmm30,YWORD [rdx-0x1020]                     }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x19, 0x31                                     }, { vbroadcastsd zmm30,QWORD [rcx]                               }
-testcase	{ 0x62, 0x62, 0xfd, 0x4f, 0x19, 0x31                                     }, { vbroadcastsd zmm30{k7},QWORD [rcx]                           }
-testcase	{ 0x62, 0x62, 0xfd, 0xcf, 0x19, 0x31                                     }, { vbroadcastsd zmm30{k7}{z},QWORD [rcx]                        }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0x19, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vbroadcastsd zmm30,QWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x19, 0x72, 0x7f                               }, { vbroadcastsd zmm30,QWORD [rdx+0x3f8]                         }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x19, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vbroadcastsd zmm30,QWORD [rdx+0x400]                         }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x19, 0x72, 0x80                               }, { vbroadcastsd zmm30,QWORD [rdx-0x400]                         }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x19, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vbroadcastsd zmm30,QWORD [rdx-0x408]                         }
-testcase	{ 0x62, 0x02, 0xfd, 0x4f, 0x19, 0xf5                                     }, { vbroadcastsd zmm30{k7},xmm29                                 }
-testcase	{ 0x62, 0x02, 0xfd, 0xcf, 0x19, 0xf5                                     }, { vbroadcastsd zmm30{k7}{z},xmm29                              }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x18, 0x31                                     }, { vbroadcastss zmm30,DWORD [rcx]                               }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x18, 0x31                                     }, { vbroadcastss zmm30{k7},DWORD [rcx]                           }
-testcase	{ 0x62, 0x62, 0x7d, 0xcf, 0x18, 0x31                                     }, { vbroadcastss zmm30{k7}{z},DWORD [rcx]                        }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0x18, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vbroadcastss zmm30,DWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x18, 0x72, 0x7f                               }, { vbroadcastss zmm30,DWORD [rdx+0x1fc]                         }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x18, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vbroadcastss zmm30,DWORD [rdx+0x200]                         }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x18, 0x72, 0x80                               }, { vbroadcastss zmm30,DWORD [rdx-0x200]                         }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x18, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vbroadcastss zmm30,DWORD [rdx-0x204]                         }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x18, 0xf5                                     }, { vbroadcastss zmm30{k7},xmm29                                 }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x18, 0xf5                                     }, { vbroadcastss zmm30{k7}{z},xmm29                              }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0xab                               }, { vcmppd k5,zmm30,zmm29,0xab                                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0xab                               }, { vcmppd k5{k7},zmm30,zmm29,0xab                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0xab                               }, { vcmppd k5,zmm30,zmm29,{sae},0xab                             }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x7b                               }, { vcmppd k5,zmm30,zmm29,0x7b                                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x7b                               }, { vcmppd k5,zmm30,zmm29,{sae},0x7b                             }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x7b                               }, { vcmppd k5,zmm30,ZWORD [rcx],0x7b                             }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vcmppd k5,zmm30,ZWORD [rax+r14*8+0x123],0x7b                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x7b                               }, { vcmppd k5,zmm30,QWORD [rcx]{1to8},0x7b                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x7b                         }, { vcmppd k5,zmm30,ZWORD [rdx+0x1fc0],0x7b                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vcmppd k5,zmm30,ZWORD [rdx+0x2000],0x7b                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x7b                         }, { vcmppd k5,zmm30,ZWORD [rdx-0x2000],0x7b                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vcmppd k5,zmm30,ZWORD [rdx-0x2040],0x7b                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x7b                         }, { vcmppd k5,zmm30,QWORD [rdx+0x3f8]{1to8},0x7b                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vcmppd k5,zmm30,QWORD [rdx+0x400]{1to8},0x7b                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x7b                         }, { vcmppd k5,zmm30,QWORD [rdx-0x400]{1to8},0x7b                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vcmppd k5,zmm30,QWORD [rdx-0x408]{1to8},0x7b                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x00                               }, { vcmpeqpd k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x00                               }, { vcmpeqpd k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x00                               }, { vcmpeqpd k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x00                               }, { vcmpeqpd k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x00 }, { vcmpeqpd k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x00                               }, { vcmpeqpd k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x00                         }, { vcmpeqpd k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x00       }, { vcmpeqpd k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x00                         }, { vcmpeqpd k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x00       }, { vcmpeqpd k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x00                         }, { vcmpeqpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x00       }, { vcmpeqpd k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x00                         }, { vcmpeqpd k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x00       }, { vcmpeqpd k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x00                               }, { vcmpeqpd k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x00                               }, { vcmpeqpd k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x00                               }, { vcmpeqpd k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x00                               }, { vcmpeqpd k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x00 }, { vcmpeqpd k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x00                               }, { vcmpeqpd k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x00                         }, { vcmpeqpd k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x00       }, { vcmpeqpd k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x00                         }, { vcmpeqpd k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x00       }, { vcmpeqpd k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x00                         }, { vcmpeqpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x00       }, { vcmpeqpd k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x00                         }, { vcmpeqpd k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x00       }, { vcmpeqpd k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x01                               }, { vcmpltpd k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x01                               }, { vcmpltpd k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x01                               }, { vcmpltpd k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x01                               }, { vcmpltpd k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x01 }, { vcmpltpd k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x01                               }, { vcmpltpd k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x01                         }, { vcmpltpd k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x01       }, { vcmpltpd k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x01                         }, { vcmpltpd k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x01       }, { vcmpltpd k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x01                         }, { vcmpltpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x01       }, { vcmpltpd k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x01                         }, { vcmpltpd k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x01       }, { vcmpltpd k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x01                               }, { vcmpltpd k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x01                               }, { vcmpltpd k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x01                               }, { vcmpltpd k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x01                               }, { vcmpltpd k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x01 }, { vcmpltpd k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x01                               }, { vcmpltpd k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x01                         }, { vcmpltpd k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x01       }, { vcmpltpd k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x01                         }, { vcmpltpd k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x01       }, { vcmpltpd k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x01                         }, { vcmpltpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x01       }, { vcmpltpd k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x01                         }, { vcmpltpd k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x01       }, { vcmpltpd k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x02                               }, { vcmplepd k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x02                               }, { vcmplepd k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x02                               }, { vcmplepd k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x02                               }, { vcmplepd k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x02 }, { vcmplepd k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x02                               }, { vcmplepd k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x02                         }, { vcmplepd k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x02       }, { vcmplepd k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x02                         }, { vcmplepd k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x02       }, { vcmplepd k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x02                         }, { vcmplepd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x02       }, { vcmplepd k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x02                         }, { vcmplepd k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x02       }, { vcmplepd k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x02                               }, { vcmplepd k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x02                               }, { vcmplepd k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x02                               }, { vcmplepd k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x02                               }, { vcmplepd k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x02 }, { vcmplepd k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x02                               }, { vcmplepd k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x02                         }, { vcmplepd k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x02       }, { vcmplepd k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x02                         }, { vcmplepd k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x02       }, { vcmplepd k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x02                         }, { vcmplepd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x02       }, { vcmplepd k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x02                         }, { vcmplepd k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x02       }, { vcmplepd k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x03                               }, { vcmpunordpd k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x03                               }, { vcmpunordpd k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x03                               }, { vcmpunordpd k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x03                               }, { vcmpunordpd k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x03 }, { vcmpunordpd k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x03                               }, { vcmpunordpd k5,zmm30,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x03                         }, { vcmpunordpd k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x03       }, { vcmpunordpd k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x03                         }, { vcmpunordpd k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x03       }, { vcmpunordpd k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x03                         }, { vcmpunordpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x03       }, { vcmpunordpd k5,zmm30,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x03                         }, { vcmpunordpd k5,zmm30,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x03       }, { vcmpunordpd k5,zmm30,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x03                               }, { vcmpunordpd k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x03                               }, { vcmpunordpd k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x03                               }, { vcmpunordpd k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x03                               }, { vcmpunordpd k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x03 }, { vcmpunordpd k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x03                               }, { vcmpunordpd k5,zmm30,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x03                         }, { vcmpunordpd k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x03       }, { vcmpunordpd k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x03                         }, { vcmpunordpd k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x03       }, { vcmpunordpd k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x03                         }, { vcmpunordpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x03       }, { vcmpunordpd k5,zmm30,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x03                         }, { vcmpunordpd k5,zmm30,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x03       }, { vcmpunordpd k5,zmm30,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x04                               }, { vcmpneqpd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x04                               }, { vcmpneqpd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x04                               }, { vcmpneqpd k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x04                               }, { vcmpneqpd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x04 }, { vcmpneqpd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x04                               }, { vcmpneqpd k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x04                         }, { vcmpneqpd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x04       }, { vcmpneqpd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x04                         }, { vcmpneqpd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x04       }, { vcmpneqpd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x04                         }, { vcmpneqpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x04       }, { vcmpneqpd k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x04                         }, { vcmpneqpd k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x04       }, { vcmpneqpd k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x04                               }, { vcmpneqpd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x04                               }, { vcmpneqpd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x04                               }, { vcmpneqpd k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x04                               }, { vcmpneqpd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x04 }, { vcmpneqpd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x04                               }, { vcmpneqpd k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x04                         }, { vcmpneqpd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x04       }, { vcmpneqpd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x04                         }, { vcmpneqpd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x04       }, { vcmpneqpd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x04                         }, { vcmpneqpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x04       }, { vcmpneqpd k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x04                         }, { vcmpneqpd k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x04       }, { vcmpneqpd k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x05                               }, { vcmpnltpd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x05                               }, { vcmpnltpd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x05                               }, { vcmpnltpd k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x05                               }, { vcmpnltpd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x05 }, { vcmpnltpd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x05                               }, { vcmpnltpd k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x05                         }, { vcmpnltpd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x05       }, { vcmpnltpd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x05                         }, { vcmpnltpd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x05       }, { vcmpnltpd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x05                         }, { vcmpnltpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x05       }, { vcmpnltpd k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x05                         }, { vcmpnltpd k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x05       }, { vcmpnltpd k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x05                               }, { vcmpnltpd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x05                               }, { vcmpnltpd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x05                               }, { vcmpnltpd k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x05                               }, { vcmpnltpd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x05 }, { vcmpnltpd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x05                               }, { vcmpnltpd k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x05                         }, { vcmpnltpd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x05       }, { vcmpnltpd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x05                         }, { vcmpnltpd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x05       }, { vcmpnltpd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x05                         }, { vcmpnltpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x05       }, { vcmpnltpd k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x05                         }, { vcmpnltpd k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x05       }, { vcmpnltpd k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x06                               }, { vcmpnlepd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x06                               }, { vcmpnlepd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x06                               }, { vcmpnlepd k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x06                               }, { vcmpnlepd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x06 }, { vcmpnlepd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x06                               }, { vcmpnlepd k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x06                         }, { vcmpnlepd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x06       }, { vcmpnlepd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x06                         }, { vcmpnlepd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x06       }, { vcmpnlepd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x06                         }, { vcmpnlepd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x06       }, { vcmpnlepd k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x06                         }, { vcmpnlepd k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x06       }, { vcmpnlepd k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x06                               }, { vcmpnlepd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x06                               }, { vcmpnlepd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x06                               }, { vcmpnlepd k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x06                               }, { vcmpnlepd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x06 }, { vcmpnlepd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x06                               }, { vcmpnlepd k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x06                         }, { vcmpnlepd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x06       }, { vcmpnlepd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x06                         }, { vcmpnlepd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x06       }, { vcmpnlepd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x06                         }, { vcmpnlepd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x06       }, { vcmpnlepd k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x06                         }, { vcmpnlepd k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x06       }, { vcmpnlepd k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x07                               }, { vcmpordpd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x07                               }, { vcmpordpd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x07                               }, { vcmpordpd k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x07                               }, { vcmpordpd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x07 }, { vcmpordpd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x07                               }, { vcmpordpd k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x07                         }, { vcmpordpd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x07       }, { vcmpordpd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x07                         }, { vcmpordpd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x07       }, { vcmpordpd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x07                         }, { vcmpordpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x07       }, { vcmpordpd k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x07                         }, { vcmpordpd k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x07       }, { vcmpordpd k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x07                               }, { vcmpordpd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x07                               }, { vcmpordpd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x07                               }, { vcmpordpd k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x07                               }, { vcmpordpd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x07 }, { vcmpordpd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x07                               }, { vcmpordpd k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x07                         }, { vcmpordpd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x07       }, { vcmpordpd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x07                         }, { vcmpordpd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x07       }, { vcmpordpd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x07                         }, { vcmpordpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x07       }, { vcmpordpd k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x07                         }, { vcmpordpd k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x07       }, { vcmpordpd k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x08                               }, { vcmpeq_uqpd k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x08                               }, { vcmpeq_uqpd k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x08                               }, { vcmpeq_uqpd k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x08                               }, { vcmpeq_uqpd k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x08 }, { vcmpeq_uqpd k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x08                               }, { vcmpeq_uqpd k5,zmm30,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x08                         }, { vcmpeq_uqpd k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x08       }, { vcmpeq_uqpd k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x08                         }, { vcmpeq_uqpd k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x08       }, { vcmpeq_uqpd k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x08                         }, { vcmpeq_uqpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x08       }, { vcmpeq_uqpd k5,zmm30,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x08                         }, { vcmpeq_uqpd k5,zmm30,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x08       }, { vcmpeq_uqpd k5,zmm30,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x09                               }, { vcmpngepd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x09                               }, { vcmpngepd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x09                               }, { vcmpngepd k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x09                               }, { vcmpngepd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x09 }, { vcmpngepd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x09                               }, { vcmpngepd k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x09                         }, { vcmpngepd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x09       }, { vcmpngepd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x09                         }, { vcmpngepd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x09       }, { vcmpngepd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x09                         }, { vcmpngepd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x09       }, { vcmpngepd k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x09                         }, { vcmpngepd k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x09       }, { vcmpngepd k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x09                               }, { vcmpngepd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x09                               }, { vcmpngepd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x09                               }, { vcmpngepd k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x09                               }, { vcmpngepd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x09 }, { vcmpngepd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x09                               }, { vcmpngepd k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x09                         }, { vcmpngepd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x09       }, { vcmpngepd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x09                         }, { vcmpngepd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x09       }, { vcmpngepd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x09                         }, { vcmpngepd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x09       }, { vcmpngepd k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x09                         }, { vcmpngepd k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x09       }, { vcmpngepd k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x0a                               }, { vcmpngtpd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x0a                               }, { vcmpngtpd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x0a                               }, { vcmpngtpd k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x0a                               }, { vcmpngtpd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0a }, { vcmpngtpd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x0a                               }, { vcmpngtpd k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x0a                         }, { vcmpngtpd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0a       }, { vcmpngtpd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x0a                         }, { vcmpngtpd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0a       }, { vcmpngtpd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x0a                         }, { vcmpngtpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0a       }, { vcmpngtpd k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x0a                         }, { vcmpngtpd k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0a       }, { vcmpngtpd k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x0a                               }, { vcmpngtpd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x0a                               }, { vcmpngtpd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x0a                               }, { vcmpngtpd k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x0a                               }, { vcmpngtpd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0a }, { vcmpngtpd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x0a                               }, { vcmpngtpd k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x0a                         }, { vcmpngtpd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0a       }, { vcmpngtpd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x0a                         }, { vcmpngtpd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0a       }, { vcmpngtpd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x0a                         }, { vcmpngtpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0a       }, { vcmpngtpd k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x0a                         }, { vcmpngtpd k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0a       }, { vcmpngtpd k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x0b                               }, { vcmpfalsepd k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x0b                               }, { vcmpfalsepd k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x0b                               }, { vcmpfalsepd k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x0b                               }, { vcmpfalsepd k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0b }, { vcmpfalsepd k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x0b                               }, { vcmpfalsepd k5,zmm30,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x0b                         }, { vcmpfalsepd k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0b       }, { vcmpfalsepd k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x0b                         }, { vcmpfalsepd k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0b       }, { vcmpfalsepd k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x0b                         }, { vcmpfalsepd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0b       }, { vcmpfalsepd k5,zmm30,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x0b                         }, { vcmpfalsepd k5,zmm30,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0b       }, { vcmpfalsepd k5,zmm30,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x0b                               }, { vcmpfalsepd k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x0b                               }, { vcmpfalsepd k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x0b                               }, { vcmpfalsepd k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x0b                               }, { vcmpfalsepd k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0b }, { vcmpfalsepd k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x0b                               }, { vcmpfalsepd k5,zmm30,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x0b                         }, { vcmpfalsepd k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0b       }, { vcmpfalsepd k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x0b                         }, { vcmpfalsepd k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0b       }, { vcmpfalsepd k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x0b                         }, { vcmpfalsepd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0b       }, { vcmpfalsepd k5,zmm30,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x0b                         }, { vcmpfalsepd k5,zmm30,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0b       }, { vcmpfalsepd k5,zmm30,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x0c                               }, { vcmpneq_oqpd k5,zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x0c                               }, { vcmpneq_oqpd k5{k7},zmm30,zmm29                              }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x0c                               }, { vcmpneq_oqpd k5,zmm30,zmm29,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x0c                               }, { vcmpneq_oqpd k5,zmm30,ZWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0c }, { vcmpneq_oqpd k5,zmm30,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x0c                               }, { vcmpneq_oqpd k5,zmm30,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x0c                         }, { vcmpneq_oqpd k5,zmm30,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0c       }, { vcmpneq_oqpd k5,zmm30,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x0c                         }, { vcmpneq_oqpd k5,zmm30,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0c       }, { vcmpneq_oqpd k5,zmm30,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x0c                         }, { vcmpneq_oqpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0c       }, { vcmpneq_oqpd k5,zmm30,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x0c                         }, { vcmpneq_oqpd k5,zmm30,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0c       }, { vcmpneq_oqpd k5,zmm30,QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x0d                               }, { vcmpgepd k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x0d                               }, { vcmpgepd k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x0d                               }, { vcmpgepd k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x0d                               }, { vcmpgepd k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0d }, { vcmpgepd k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x0d                               }, { vcmpgepd k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x0d                         }, { vcmpgepd k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0d       }, { vcmpgepd k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x0d                         }, { vcmpgepd k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0d       }, { vcmpgepd k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x0d                         }, { vcmpgepd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0d       }, { vcmpgepd k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x0d                         }, { vcmpgepd k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0d       }, { vcmpgepd k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x0d                               }, { vcmpgepd k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x0d                               }, { vcmpgepd k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x0d                               }, { vcmpgepd k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x0d                               }, { vcmpgepd k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0d }, { vcmpgepd k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x0d                               }, { vcmpgepd k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x0d                         }, { vcmpgepd k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0d       }, { vcmpgepd k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x0d                         }, { vcmpgepd k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0d       }, { vcmpgepd k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x0d                         }, { vcmpgepd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0d       }, { vcmpgepd k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x0d                         }, { vcmpgepd k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0d       }, { vcmpgepd k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x0e                               }, { vcmpgtpd k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x0e                               }, { vcmpgtpd k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x0e                               }, { vcmpgtpd k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x0e                               }, { vcmpgtpd k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0e }, { vcmpgtpd k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x0e                               }, { vcmpgtpd k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x0e                         }, { vcmpgtpd k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0e       }, { vcmpgtpd k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x0e                         }, { vcmpgtpd k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0e       }, { vcmpgtpd k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x0e                         }, { vcmpgtpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0e       }, { vcmpgtpd k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x0e                         }, { vcmpgtpd k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0e       }, { vcmpgtpd k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x0e                               }, { vcmpgtpd k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x0e                               }, { vcmpgtpd k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x0e                               }, { vcmpgtpd k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x0e                               }, { vcmpgtpd k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0e }, { vcmpgtpd k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x0e                               }, { vcmpgtpd k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x0e                         }, { vcmpgtpd k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0e       }, { vcmpgtpd k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x0e                         }, { vcmpgtpd k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0e       }, { vcmpgtpd k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x0e                         }, { vcmpgtpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0e       }, { vcmpgtpd k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x0e                         }, { vcmpgtpd k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0e       }, { vcmpgtpd k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x0f                               }, { vcmptruepd k5,zmm30,zmm29                                    }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x0f                               }, { vcmptruepd k5{k7},zmm30,zmm29                                }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x0f                               }, { vcmptruepd k5,zmm30,zmm29,{sae}                              }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x0f                               }, { vcmptruepd k5,zmm30,ZWORD [rcx]                              }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0f }, { vcmptruepd k5,zmm30,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x0f                               }, { vcmptruepd k5,zmm30,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x0f                         }, { vcmptruepd k5,zmm30,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0f       }, { vcmptruepd k5,zmm30,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x0f                         }, { vcmptruepd k5,zmm30,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0f       }, { vcmptruepd k5,zmm30,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x0f                         }, { vcmptruepd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0f       }, { vcmptruepd k5,zmm30,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x0f                         }, { vcmptruepd k5,zmm30,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0f       }, { vcmptruepd k5,zmm30,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x0f                               }, { vcmptruepd k5,zmm30,zmm29                                    }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x0f                               }, { vcmptruepd k5{k7},zmm30,zmm29                                }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x0f                               }, { vcmptruepd k5,zmm30,zmm29,{sae}                              }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x0f                               }, { vcmptruepd k5,zmm30,ZWORD [rcx]                              }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0f }, { vcmptruepd k5,zmm30,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x0f                               }, { vcmptruepd k5,zmm30,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x0f                         }, { vcmptruepd k5,zmm30,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0f       }, { vcmptruepd k5,zmm30,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x0f                         }, { vcmptruepd k5,zmm30,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0f       }, { vcmptruepd k5,zmm30,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x0f                         }, { vcmptruepd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0f       }, { vcmptruepd k5,zmm30,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x0f                         }, { vcmptruepd k5,zmm30,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0f       }, { vcmptruepd k5,zmm30,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x10                               }, { vcmpeq_ospd k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x10                               }, { vcmpeq_ospd k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x10                               }, { vcmpeq_ospd k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x10                               }, { vcmpeq_ospd k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x10 }, { vcmpeq_ospd k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x10                               }, { vcmpeq_ospd k5,zmm30,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x10                         }, { vcmpeq_ospd k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x10       }, { vcmpeq_ospd k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x10                         }, { vcmpeq_ospd k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x10       }, { vcmpeq_ospd k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x10                         }, { vcmpeq_ospd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x10       }, { vcmpeq_ospd k5,zmm30,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x10                         }, { vcmpeq_ospd k5,zmm30,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x10       }, { vcmpeq_ospd k5,zmm30,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x11                               }, { vcmplt_oqpd k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x11                               }, { vcmplt_oqpd k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x11                               }, { vcmplt_oqpd k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x11                               }, { vcmplt_oqpd k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x11 }, { vcmplt_oqpd k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x11                               }, { vcmplt_oqpd k5,zmm30,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x11                         }, { vcmplt_oqpd k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x11       }, { vcmplt_oqpd k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x11                         }, { vcmplt_oqpd k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x11       }, { vcmplt_oqpd k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x11                         }, { vcmplt_oqpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x11       }, { vcmplt_oqpd k5,zmm30,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x11                         }, { vcmplt_oqpd k5,zmm30,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x11       }, { vcmplt_oqpd k5,zmm30,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x12                               }, { vcmple_oqpd k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x12                               }, { vcmple_oqpd k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x12                               }, { vcmple_oqpd k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x12                               }, { vcmple_oqpd k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x12 }, { vcmple_oqpd k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x12                               }, { vcmple_oqpd k5,zmm30,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x12                         }, { vcmple_oqpd k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x12       }, { vcmple_oqpd k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x12                         }, { vcmple_oqpd k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x12       }, { vcmple_oqpd k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x12                         }, { vcmple_oqpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x12       }, { vcmple_oqpd k5,zmm30,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x12                         }, { vcmple_oqpd k5,zmm30,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x12       }, { vcmple_oqpd k5,zmm30,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x13                               }, { vcmpunord_spd k5,zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x13                               }, { vcmpunord_spd k5{k7},zmm30,zmm29                             }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x13                               }, { vcmpunord_spd k5,zmm30,zmm29,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x13                               }, { vcmpunord_spd k5,zmm30,ZWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x13 }, { vcmpunord_spd k5,zmm30,ZWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x13                               }, { vcmpunord_spd k5,zmm30,QWORD [rcx]{1to8}                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x13                         }, { vcmpunord_spd k5,zmm30,ZWORD [rdx+0x1fc0]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x13       }, { vcmpunord_spd k5,zmm30,ZWORD [rdx+0x2000]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x13                         }, { vcmpunord_spd k5,zmm30,ZWORD [rdx-0x2000]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x13       }, { vcmpunord_spd k5,zmm30,ZWORD [rdx-0x2040]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x13                         }, { vcmpunord_spd k5,zmm30,QWORD [rdx+0x3f8]{1to8}               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x13       }, { vcmpunord_spd k5,zmm30,QWORD [rdx+0x400]{1to8}               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x13                         }, { vcmpunord_spd k5,zmm30,QWORD [rdx-0x400]{1to8}               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x13       }, { vcmpunord_spd k5,zmm30,QWORD [rdx-0x408]{1to8}               }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x14                               }, { vcmpneq_uspd k5,zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x14                               }, { vcmpneq_uspd k5{k7},zmm30,zmm29                              }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x14                               }, { vcmpneq_uspd k5,zmm30,zmm29,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x14                               }, { vcmpneq_uspd k5,zmm30,ZWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x14 }, { vcmpneq_uspd k5,zmm30,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x14                               }, { vcmpneq_uspd k5,zmm30,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x14                         }, { vcmpneq_uspd k5,zmm30,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x14       }, { vcmpneq_uspd k5,zmm30,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x14                         }, { vcmpneq_uspd k5,zmm30,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x14       }, { vcmpneq_uspd k5,zmm30,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x14                         }, { vcmpneq_uspd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x14       }, { vcmpneq_uspd k5,zmm30,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x14                         }, { vcmpneq_uspd k5,zmm30,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x14       }, { vcmpneq_uspd k5,zmm30,QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x15                               }, { vcmpnlt_uqpd k5,zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x15                               }, { vcmpnlt_uqpd k5{k7},zmm30,zmm29                              }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x15                               }, { vcmpnlt_uqpd k5,zmm30,zmm29,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x15                               }, { vcmpnlt_uqpd k5,zmm30,ZWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x15 }, { vcmpnlt_uqpd k5,zmm30,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x15                               }, { vcmpnlt_uqpd k5,zmm30,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x15                         }, { vcmpnlt_uqpd k5,zmm30,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x15       }, { vcmpnlt_uqpd k5,zmm30,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x15                         }, { vcmpnlt_uqpd k5,zmm30,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x15       }, { vcmpnlt_uqpd k5,zmm30,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x15                         }, { vcmpnlt_uqpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x15       }, { vcmpnlt_uqpd k5,zmm30,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x15                         }, { vcmpnlt_uqpd k5,zmm30,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x15       }, { vcmpnlt_uqpd k5,zmm30,QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x16                               }, { vcmpnle_uqpd k5,zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x16                               }, { vcmpnle_uqpd k5{k7},zmm30,zmm29                              }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x16                               }, { vcmpnle_uqpd k5,zmm30,zmm29,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x16                               }, { vcmpnle_uqpd k5,zmm30,ZWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x16 }, { vcmpnle_uqpd k5,zmm30,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x16                               }, { vcmpnle_uqpd k5,zmm30,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x16                         }, { vcmpnle_uqpd k5,zmm30,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x16       }, { vcmpnle_uqpd k5,zmm30,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x16                         }, { vcmpnle_uqpd k5,zmm30,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x16       }, { vcmpnle_uqpd k5,zmm30,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x16                         }, { vcmpnle_uqpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x16       }, { vcmpnle_uqpd k5,zmm30,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x16                         }, { vcmpnle_uqpd k5,zmm30,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x16       }, { vcmpnle_uqpd k5,zmm30,QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x17                               }, { vcmpord_spd k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x17                               }, { vcmpord_spd k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x17                               }, { vcmpord_spd k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x17                               }, { vcmpord_spd k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x17 }, { vcmpord_spd k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x17                               }, { vcmpord_spd k5,zmm30,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x17                         }, { vcmpord_spd k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x17       }, { vcmpord_spd k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x17                         }, { vcmpord_spd k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x17       }, { vcmpord_spd k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x17                         }, { vcmpord_spd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x17       }, { vcmpord_spd k5,zmm30,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x17                         }, { vcmpord_spd k5,zmm30,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x17       }, { vcmpord_spd k5,zmm30,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x18                               }, { vcmpeq_uspd k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x18                               }, { vcmpeq_uspd k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x18                               }, { vcmpeq_uspd k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x18                               }, { vcmpeq_uspd k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x18 }, { vcmpeq_uspd k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x18                               }, { vcmpeq_uspd k5,zmm30,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x18                         }, { vcmpeq_uspd k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x18       }, { vcmpeq_uspd k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x18                         }, { vcmpeq_uspd k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x18       }, { vcmpeq_uspd k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x18                         }, { vcmpeq_uspd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x18       }, { vcmpeq_uspd k5,zmm30,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x18                         }, { vcmpeq_uspd k5,zmm30,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x18       }, { vcmpeq_uspd k5,zmm30,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x19                               }, { vcmpnge_uqpd k5,zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x19                               }, { vcmpnge_uqpd k5{k7},zmm30,zmm29                              }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x19                               }, { vcmpnge_uqpd k5,zmm30,zmm29,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x19                               }, { vcmpnge_uqpd k5,zmm30,ZWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x19 }, { vcmpnge_uqpd k5,zmm30,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x19                               }, { vcmpnge_uqpd k5,zmm30,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x19                         }, { vcmpnge_uqpd k5,zmm30,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x19       }, { vcmpnge_uqpd k5,zmm30,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x19                         }, { vcmpnge_uqpd k5,zmm30,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x19       }, { vcmpnge_uqpd k5,zmm30,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x19                         }, { vcmpnge_uqpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x19       }, { vcmpnge_uqpd k5,zmm30,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x19                         }, { vcmpnge_uqpd k5,zmm30,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x19       }, { vcmpnge_uqpd k5,zmm30,QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x1a                               }, { vcmpngt_uqpd k5,zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x1a                               }, { vcmpngt_uqpd k5{k7},zmm30,zmm29                              }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x1a                               }, { vcmpngt_uqpd k5,zmm30,zmm29,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x1a                               }, { vcmpngt_uqpd k5,zmm30,ZWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1a }, { vcmpngt_uqpd k5,zmm30,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x1a                               }, { vcmpngt_uqpd k5,zmm30,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x1a                         }, { vcmpngt_uqpd k5,zmm30,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x1a       }, { vcmpngt_uqpd k5,zmm30,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x1a                         }, { vcmpngt_uqpd k5,zmm30,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x1a       }, { vcmpngt_uqpd k5,zmm30,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x1a                         }, { vcmpngt_uqpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x1a       }, { vcmpngt_uqpd k5,zmm30,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x1a                         }, { vcmpngt_uqpd k5,zmm30,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x1a       }, { vcmpngt_uqpd k5,zmm30,QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x1b                               }, { vcmpfalse_ospd k5,zmm30,zmm29                                }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x1b                               }, { vcmpfalse_ospd k5{k7},zmm30,zmm29                            }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x1b                               }, { vcmpfalse_ospd k5,zmm30,zmm29,{sae}                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x1b                               }, { vcmpfalse_ospd k5,zmm30,ZWORD [rcx]                          }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1b }, { vcmpfalse_ospd k5,zmm30,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x1b                               }, { vcmpfalse_ospd k5,zmm30,QWORD [rcx]{1to8}                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x1b                         }, { vcmpfalse_ospd k5,zmm30,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x1b       }, { vcmpfalse_ospd k5,zmm30,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x1b                         }, { vcmpfalse_ospd k5,zmm30,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x1b       }, { vcmpfalse_ospd k5,zmm30,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x1b                         }, { vcmpfalse_ospd k5,zmm30,QWORD [rdx+0x3f8]{1to8}              }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x1b       }, { vcmpfalse_ospd k5,zmm30,QWORD [rdx+0x400]{1to8}              }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x1b                         }, { vcmpfalse_ospd k5,zmm30,QWORD [rdx-0x400]{1to8}              }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x1b       }, { vcmpfalse_ospd k5,zmm30,QWORD [rdx-0x408]{1to8}              }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x1c                               }, { vcmpneq_ospd k5,zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x1c                               }, { vcmpneq_ospd k5{k7},zmm30,zmm29                              }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x1c                               }, { vcmpneq_ospd k5,zmm30,zmm29,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x1c                               }, { vcmpneq_ospd k5,zmm30,ZWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1c }, { vcmpneq_ospd k5,zmm30,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x1c                               }, { vcmpneq_ospd k5,zmm30,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x1c                         }, { vcmpneq_ospd k5,zmm30,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x1c       }, { vcmpneq_ospd k5,zmm30,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x1c                         }, { vcmpneq_ospd k5,zmm30,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x1c       }, { vcmpneq_ospd k5,zmm30,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x1c                         }, { vcmpneq_ospd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x1c       }, { vcmpneq_ospd k5,zmm30,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x1c                         }, { vcmpneq_ospd k5,zmm30,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x1c       }, { vcmpneq_ospd k5,zmm30,QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x1d                               }, { vcmpge_oqpd k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x1d                               }, { vcmpge_oqpd k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x1d                               }, { vcmpge_oqpd k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x1d                               }, { vcmpge_oqpd k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1d }, { vcmpge_oqpd k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x1d                               }, { vcmpge_oqpd k5,zmm30,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x1d                         }, { vcmpge_oqpd k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x1d       }, { vcmpge_oqpd k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x1d                         }, { vcmpge_oqpd k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x1d       }, { vcmpge_oqpd k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x1d                         }, { vcmpge_oqpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x1d       }, { vcmpge_oqpd k5,zmm30,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x1d                         }, { vcmpge_oqpd k5,zmm30,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x1d       }, { vcmpge_oqpd k5,zmm30,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x1e                               }, { vcmpgt_oqpd k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x1e                               }, { vcmpgt_oqpd k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x1e                               }, { vcmpgt_oqpd k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x1e                               }, { vcmpgt_oqpd k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1e }, { vcmpgt_oqpd k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x1e                               }, { vcmpgt_oqpd k5,zmm30,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x1e                         }, { vcmpgt_oqpd k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x1e       }, { vcmpgt_oqpd k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x1e                         }, { vcmpgt_oqpd k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x1e       }, { vcmpgt_oqpd k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x1e                         }, { vcmpgt_oqpd k5,zmm30,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x1e       }, { vcmpgt_oqpd k5,zmm30,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x1e                         }, { vcmpgt_oqpd k5,zmm30,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x1e       }, { vcmpgt_oqpd k5,zmm30,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0xc2, 0xed, 0x1f                               }, { vcmptrue_uspd k5,zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0xc2, 0xed, 0x1f                               }, { vcmptrue_uspd k5{k7},zmm30,zmm29                             }
-testcase	{ 0x62, 0x91, 0x8d, 0x10, 0xc2, 0xed, 0x1f                               }, { vcmptrue_uspd k5,zmm30,zmm29,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x29, 0x1f                               }, { vcmptrue_uspd k5,zmm30,ZWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1f }, { vcmptrue_uspd k5,zmm30,ZWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x29, 0x1f                               }, { vcmptrue_uspd k5,zmm30,QWORD [rcx]{1to8}                     }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x7f, 0x1f                         }, { vcmptrue_uspd k5,zmm30,ZWORD [rdx+0x1fc0]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x1f       }, { vcmptrue_uspd k5,zmm30,ZWORD [rdx+0x2000]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0x6a, 0x80, 0x1f                         }, { vcmptrue_uspd k5,zmm30,ZWORD [rdx-0x2000]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x1f       }, { vcmptrue_uspd k5,zmm30,ZWORD [rdx-0x2040]                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x7f, 0x1f                         }, { vcmptrue_uspd k5,zmm30,QWORD [rdx+0x3f8]{1to8}               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x1f       }, { vcmptrue_uspd k5,zmm30,QWORD [rdx+0x400]{1to8}               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0x6a, 0x80, 0x1f                         }, { vcmptrue_uspd k5,zmm30,QWORD [rdx-0x400]{1to8}               }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x1f       }, { vcmptrue_uspd k5,zmm30,QWORD [rdx-0x408]{1to8}               }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0xab                               }, { vcmpps k5,zmm30,zmm29,0xab                                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0xab                               }, { vcmpps k5{k7},zmm30,zmm29,0xab                               }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0xab                               }, { vcmpps k5,zmm30,zmm29,{sae},0xab                             }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x7b                               }, { vcmpps k5,zmm30,zmm29,0x7b                                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x7b                               }, { vcmpps k5,zmm30,zmm29,{sae},0x7b                             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x7b                               }, { vcmpps k5,zmm30,ZWORD [rcx],0x7b                             }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vcmpps k5,zmm30,ZWORD [rax+r14*8+0x123],0x7b                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x7b                               }, { vcmpps k5,zmm30,DWORD [rcx]{1to16},0x7b                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x7b                         }, { vcmpps k5,zmm30,ZWORD [rdx+0x1fc0],0x7b                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vcmpps k5,zmm30,ZWORD [rdx+0x2000],0x7b                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x7b                         }, { vcmpps k5,zmm30,ZWORD [rdx-0x2000],0x7b                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vcmpps k5,zmm30,ZWORD [rdx-0x2040],0x7b                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x7b                         }, { vcmpps k5,zmm30,DWORD [rdx+0x1fc]{1to16},0x7b                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vcmpps k5,zmm30,DWORD [rdx+0x200]{1to16},0x7b                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x7b                         }, { vcmpps k5,zmm30,DWORD [rdx-0x200]{1to16},0x7b                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vcmpps k5,zmm30,DWORD [rdx-0x204]{1to16},0x7b                }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x00                               }, { vcmpeqps k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x00                               }, { vcmpeqps k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x00                               }, { vcmpeqps k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x00                               }, { vcmpeqps k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x00 }, { vcmpeqps k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x00                               }, { vcmpeqps k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x00                         }, { vcmpeqps k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x00       }, { vcmpeqps k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x00                         }, { vcmpeqps k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x00       }, { vcmpeqps k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x00                         }, { vcmpeqps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x00       }, { vcmpeqps k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x00                         }, { vcmpeqps k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x00       }, { vcmpeqps k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x00                               }, { vcmpeqps k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x00                               }, { vcmpeqps k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x00                               }, { vcmpeqps k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x00                               }, { vcmpeqps k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x00 }, { vcmpeqps k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x00                               }, { vcmpeqps k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x00                         }, { vcmpeqps k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x00       }, { vcmpeqps k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x00                         }, { vcmpeqps k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x00       }, { vcmpeqps k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x00                         }, { vcmpeqps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x00       }, { vcmpeqps k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x00                         }, { vcmpeqps k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x00       }, { vcmpeqps k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x01                               }, { vcmpltps k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x01                               }, { vcmpltps k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x01                               }, { vcmpltps k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x01                               }, { vcmpltps k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x01 }, { vcmpltps k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x01                               }, { vcmpltps k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x01                         }, { vcmpltps k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x01       }, { vcmpltps k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x01                         }, { vcmpltps k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x01       }, { vcmpltps k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x01                         }, { vcmpltps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x01       }, { vcmpltps k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x01                         }, { vcmpltps k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x01       }, { vcmpltps k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x01                               }, { vcmpltps k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x01                               }, { vcmpltps k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x01                               }, { vcmpltps k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x01                               }, { vcmpltps k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x01 }, { vcmpltps k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x01                               }, { vcmpltps k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x01                         }, { vcmpltps k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x01       }, { vcmpltps k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x01                         }, { vcmpltps k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x01       }, { vcmpltps k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x01                         }, { vcmpltps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x01       }, { vcmpltps k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x01                         }, { vcmpltps k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x01       }, { vcmpltps k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x02                               }, { vcmpleps k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x02                               }, { vcmpleps k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x02                               }, { vcmpleps k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x02                               }, { vcmpleps k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x02 }, { vcmpleps k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x02                               }, { vcmpleps k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x02                         }, { vcmpleps k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x02       }, { vcmpleps k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x02                         }, { vcmpleps k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x02       }, { vcmpleps k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x02                         }, { vcmpleps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x02       }, { vcmpleps k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x02                         }, { vcmpleps k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x02       }, { vcmpleps k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x02                               }, { vcmpleps k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x02                               }, { vcmpleps k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x02                               }, { vcmpleps k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x02                               }, { vcmpleps k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x02 }, { vcmpleps k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x02                               }, { vcmpleps k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x02                         }, { vcmpleps k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x02       }, { vcmpleps k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x02                         }, { vcmpleps k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x02       }, { vcmpleps k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x02                         }, { vcmpleps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x02       }, { vcmpleps k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x02                         }, { vcmpleps k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x02       }, { vcmpleps k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x03                               }, { vcmpunordps k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x03                               }, { vcmpunordps k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x03                               }, { vcmpunordps k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x03                               }, { vcmpunordps k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x03 }, { vcmpunordps k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x03                               }, { vcmpunordps k5,zmm30,DWORD [rcx]{1to16}                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x03                         }, { vcmpunordps k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x03       }, { vcmpunordps k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x03                         }, { vcmpunordps k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x03       }, { vcmpunordps k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x03                         }, { vcmpunordps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x03       }, { vcmpunordps k5,zmm30,DWORD [rdx+0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x03                         }, { vcmpunordps k5,zmm30,DWORD [rdx-0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x03       }, { vcmpunordps k5,zmm30,DWORD [rdx-0x204]{1to16}                }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x03                               }, { vcmpunordps k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x03                               }, { vcmpunordps k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x03                               }, { vcmpunordps k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x03                               }, { vcmpunordps k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x03 }, { vcmpunordps k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x03                               }, { vcmpunordps k5,zmm30,DWORD [rcx]{1to16}                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x03                         }, { vcmpunordps k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x03       }, { vcmpunordps k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x03                         }, { vcmpunordps k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x03       }, { vcmpunordps k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x03                         }, { vcmpunordps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x03       }, { vcmpunordps k5,zmm30,DWORD [rdx+0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x03                         }, { vcmpunordps k5,zmm30,DWORD [rdx-0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x03       }, { vcmpunordps k5,zmm30,DWORD [rdx-0x204]{1to16}                }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x04                               }, { vcmpneqps k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x04                               }, { vcmpneqps k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x04                               }, { vcmpneqps k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x04                               }, { vcmpneqps k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x04 }, { vcmpneqps k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x04                               }, { vcmpneqps k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x04                         }, { vcmpneqps k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x04       }, { vcmpneqps k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x04                         }, { vcmpneqps k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x04       }, { vcmpneqps k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x04                         }, { vcmpneqps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x04       }, { vcmpneqps k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x04                         }, { vcmpneqps k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x04       }, { vcmpneqps k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x04                               }, { vcmpneqps k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x04                               }, { vcmpneqps k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x04                               }, { vcmpneqps k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x04                               }, { vcmpneqps k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x04 }, { vcmpneqps k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x04                               }, { vcmpneqps k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x04                         }, { vcmpneqps k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x04       }, { vcmpneqps k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x04                         }, { vcmpneqps k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x04       }, { vcmpneqps k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x04                         }, { vcmpneqps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x04       }, { vcmpneqps k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x04                         }, { vcmpneqps k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x04       }, { vcmpneqps k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x05                               }, { vcmpnltps k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x05                               }, { vcmpnltps k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x05                               }, { vcmpnltps k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x05                               }, { vcmpnltps k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x05 }, { vcmpnltps k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x05                               }, { vcmpnltps k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x05                         }, { vcmpnltps k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x05       }, { vcmpnltps k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x05                         }, { vcmpnltps k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x05       }, { vcmpnltps k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x05                         }, { vcmpnltps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x05       }, { vcmpnltps k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x05                         }, { vcmpnltps k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x05       }, { vcmpnltps k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x05                               }, { vcmpnltps k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x05                               }, { vcmpnltps k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x05                               }, { vcmpnltps k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x05                               }, { vcmpnltps k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x05 }, { vcmpnltps k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x05                               }, { vcmpnltps k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x05                         }, { vcmpnltps k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x05       }, { vcmpnltps k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x05                         }, { vcmpnltps k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x05       }, { vcmpnltps k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x05                         }, { vcmpnltps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x05       }, { vcmpnltps k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x05                         }, { vcmpnltps k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x05       }, { vcmpnltps k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x06                               }, { vcmpnleps k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x06                               }, { vcmpnleps k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x06                               }, { vcmpnleps k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x06                               }, { vcmpnleps k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x06 }, { vcmpnleps k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x06                               }, { vcmpnleps k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x06                         }, { vcmpnleps k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x06       }, { vcmpnleps k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x06                         }, { vcmpnleps k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x06       }, { vcmpnleps k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x06                         }, { vcmpnleps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x06       }, { vcmpnleps k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x06                         }, { vcmpnleps k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x06       }, { vcmpnleps k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x06                               }, { vcmpnleps k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x06                               }, { vcmpnleps k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x06                               }, { vcmpnleps k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x06                               }, { vcmpnleps k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x06 }, { vcmpnleps k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x06                               }, { vcmpnleps k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x06                         }, { vcmpnleps k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x06       }, { vcmpnleps k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x06                         }, { vcmpnleps k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x06       }, { vcmpnleps k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x06                         }, { vcmpnleps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x06       }, { vcmpnleps k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x06                         }, { vcmpnleps k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x06       }, { vcmpnleps k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x07                               }, { vcmpordps k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x07                               }, { vcmpordps k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x07                               }, { vcmpordps k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x07                               }, { vcmpordps k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x07 }, { vcmpordps k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x07                               }, { vcmpordps k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x07                         }, { vcmpordps k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x07       }, { vcmpordps k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x07                         }, { vcmpordps k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x07       }, { vcmpordps k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x07                         }, { vcmpordps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x07       }, { vcmpordps k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x07                         }, { vcmpordps k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x07       }, { vcmpordps k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x07                               }, { vcmpordps k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x07                               }, { vcmpordps k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x07                               }, { vcmpordps k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x07                               }, { vcmpordps k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x07 }, { vcmpordps k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x07                               }, { vcmpordps k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x07                         }, { vcmpordps k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x07       }, { vcmpordps k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x07                         }, { vcmpordps k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x07       }, { vcmpordps k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x07                         }, { vcmpordps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x07       }, { vcmpordps k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x07                         }, { vcmpordps k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x07       }, { vcmpordps k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x08                               }, { vcmpeq_uqps k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x08                               }, { vcmpeq_uqps k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x08                               }, { vcmpeq_uqps k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x08                               }, { vcmpeq_uqps k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x08 }, { vcmpeq_uqps k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x08                               }, { vcmpeq_uqps k5,zmm30,DWORD [rcx]{1to16}                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x08                         }, { vcmpeq_uqps k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x08       }, { vcmpeq_uqps k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x08                         }, { vcmpeq_uqps k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x08       }, { vcmpeq_uqps k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x08                         }, { vcmpeq_uqps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x08       }, { vcmpeq_uqps k5,zmm30,DWORD [rdx+0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x08                         }, { vcmpeq_uqps k5,zmm30,DWORD [rdx-0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x08       }, { vcmpeq_uqps k5,zmm30,DWORD [rdx-0x204]{1to16}                }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x09                               }, { vcmpngeps k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x09                               }, { vcmpngeps k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x09                               }, { vcmpngeps k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x09                               }, { vcmpngeps k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x09 }, { vcmpngeps k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x09                               }, { vcmpngeps k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x09                         }, { vcmpngeps k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x09       }, { vcmpngeps k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x09                         }, { vcmpngeps k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x09       }, { vcmpngeps k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x09                         }, { vcmpngeps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x09       }, { vcmpngeps k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x09                         }, { vcmpngeps k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x09       }, { vcmpngeps k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x09                               }, { vcmpngeps k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x09                               }, { vcmpngeps k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x09                               }, { vcmpngeps k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x09                               }, { vcmpngeps k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x09 }, { vcmpngeps k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x09                               }, { vcmpngeps k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x09                         }, { vcmpngeps k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x09       }, { vcmpngeps k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x09                         }, { vcmpngeps k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x09       }, { vcmpngeps k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x09                         }, { vcmpngeps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x09       }, { vcmpngeps k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x09                         }, { vcmpngeps k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x09       }, { vcmpngeps k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x0a                               }, { vcmpngtps k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x0a                               }, { vcmpngtps k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x0a                               }, { vcmpngtps k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x0a                               }, { vcmpngtps k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0a }, { vcmpngtps k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x0a                               }, { vcmpngtps k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x0a                         }, { vcmpngtps k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0a       }, { vcmpngtps k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x0a                         }, { vcmpngtps k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0a       }, { vcmpngtps k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x0a                         }, { vcmpngtps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0a       }, { vcmpngtps k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x0a                         }, { vcmpngtps k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0a       }, { vcmpngtps k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x0a                               }, { vcmpngtps k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x0a                               }, { vcmpngtps k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x0a                               }, { vcmpngtps k5,zmm30,zmm29,{sae}                               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x0a                               }, { vcmpngtps k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0a }, { vcmpngtps k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x0a                               }, { vcmpngtps k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x0a                         }, { vcmpngtps k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0a       }, { vcmpngtps k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x0a                         }, { vcmpngtps k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0a       }, { vcmpngtps k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x0a                         }, { vcmpngtps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0a       }, { vcmpngtps k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x0a                         }, { vcmpngtps k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0a       }, { vcmpngtps k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x0b                               }, { vcmpfalseps k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x0b                               }, { vcmpfalseps k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x0b                               }, { vcmpfalseps k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x0b                               }, { vcmpfalseps k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0b }, { vcmpfalseps k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x0b                               }, { vcmpfalseps k5,zmm30,DWORD [rcx]{1to16}                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x0b                         }, { vcmpfalseps k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0b       }, { vcmpfalseps k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x0b                         }, { vcmpfalseps k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0b       }, { vcmpfalseps k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x0b                         }, { vcmpfalseps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0b       }, { vcmpfalseps k5,zmm30,DWORD [rdx+0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x0b                         }, { vcmpfalseps k5,zmm30,DWORD [rdx-0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0b       }, { vcmpfalseps k5,zmm30,DWORD [rdx-0x204]{1to16}                }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x0b                               }, { vcmpfalseps k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x0b                               }, { vcmpfalseps k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x0b                               }, { vcmpfalseps k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x0b                               }, { vcmpfalseps k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0b }, { vcmpfalseps k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x0b                               }, { vcmpfalseps k5,zmm30,DWORD [rcx]{1to16}                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x0b                         }, { vcmpfalseps k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0b       }, { vcmpfalseps k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x0b                         }, { vcmpfalseps k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0b       }, { vcmpfalseps k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x0b                         }, { vcmpfalseps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0b       }, { vcmpfalseps k5,zmm30,DWORD [rdx+0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x0b                         }, { vcmpfalseps k5,zmm30,DWORD [rdx-0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0b       }, { vcmpfalseps k5,zmm30,DWORD [rdx-0x204]{1to16}                }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x0c                               }, { vcmpneq_oqps k5,zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x0c                               }, { vcmpneq_oqps k5{k7},zmm30,zmm29                              }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x0c                               }, { vcmpneq_oqps k5,zmm30,zmm29,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x0c                               }, { vcmpneq_oqps k5,zmm30,ZWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0c }, { vcmpneq_oqps k5,zmm30,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x0c                               }, { vcmpneq_oqps k5,zmm30,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x0c                         }, { vcmpneq_oqps k5,zmm30,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0c       }, { vcmpneq_oqps k5,zmm30,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x0c                         }, { vcmpneq_oqps k5,zmm30,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0c       }, { vcmpneq_oqps k5,zmm30,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x0c                         }, { vcmpneq_oqps k5,zmm30,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0c       }, { vcmpneq_oqps k5,zmm30,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x0c                         }, { vcmpneq_oqps k5,zmm30,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0c       }, { vcmpneq_oqps k5,zmm30,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x0d                               }, { vcmpgeps k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x0d                               }, { vcmpgeps k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x0d                               }, { vcmpgeps k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x0d                               }, { vcmpgeps k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0d }, { vcmpgeps k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x0d                               }, { vcmpgeps k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x0d                         }, { vcmpgeps k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0d       }, { vcmpgeps k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x0d                         }, { vcmpgeps k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0d       }, { vcmpgeps k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x0d                         }, { vcmpgeps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0d       }, { vcmpgeps k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x0d                         }, { vcmpgeps k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0d       }, { vcmpgeps k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x0d                               }, { vcmpgeps k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x0d                               }, { vcmpgeps k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x0d                               }, { vcmpgeps k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x0d                               }, { vcmpgeps k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0d }, { vcmpgeps k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x0d                               }, { vcmpgeps k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x0d                         }, { vcmpgeps k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0d       }, { vcmpgeps k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x0d                         }, { vcmpgeps k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0d       }, { vcmpgeps k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x0d                         }, { vcmpgeps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0d       }, { vcmpgeps k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x0d                         }, { vcmpgeps k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0d       }, { vcmpgeps k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x0e                               }, { vcmpgtps k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x0e                               }, { vcmpgtps k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x0e                               }, { vcmpgtps k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x0e                               }, { vcmpgtps k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0e }, { vcmpgtps k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x0e                               }, { vcmpgtps k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x0e                         }, { vcmpgtps k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0e       }, { vcmpgtps k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x0e                         }, { vcmpgtps k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0e       }, { vcmpgtps k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x0e                         }, { vcmpgtps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0e       }, { vcmpgtps k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x0e                         }, { vcmpgtps k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0e       }, { vcmpgtps k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x0e                               }, { vcmpgtps k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x0e                               }, { vcmpgtps k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x0e                               }, { vcmpgtps k5,zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x0e                               }, { vcmpgtps k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0e }, { vcmpgtps k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x0e                               }, { vcmpgtps k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x0e                         }, { vcmpgtps k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0e       }, { vcmpgtps k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x0e                         }, { vcmpgtps k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0e       }, { vcmpgtps k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x0e                         }, { vcmpgtps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0e       }, { vcmpgtps k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x0e                         }, { vcmpgtps k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0e       }, { vcmpgtps k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x0f                               }, { vcmptrueps k5,zmm30,zmm29                                    }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x0f                               }, { vcmptrueps k5{k7},zmm30,zmm29                                }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x0f                               }, { vcmptrueps k5,zmm30,zmm29,{sae}                              }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x0f                               }, { vcmptrueps k5,zmm30,ZWORD [rcx]                              }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0f }, { vcmptrueps k5,zmm30,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x0f                               }, { vcmptrueps k5,zmm30,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x0f                         }, { vcmptrueps k5,zmm30,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0f       }, { vcmptrueps k5,zmm30,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x0f                         }, { vcmptrueps k5,zmm30,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0f       }, { vcmptrueps k5,zmm30,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x0f                         }, { vcmptrueps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0f       }, { vcmptrueps k5,zmm30,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x0f                         }, { vcmptrueps k5,zmm30,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0f       }, { vcmptrueps k5,zmm30,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x0f                               }, { vcmptrueps k5,zmm30,zmm29                                    }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x0f                               }, { vcmptrueps k5{k7},zmm30,zmm29                                }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x0f                               }, { vcmptrueps k5,zmm30,zmm29,{sae}                              }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x0f                               }, { vcmptrueps k5,zmm30,ZWORD [rcx]                              }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0f }, { vcmptrueps k5,zmm30,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x0f                               }, { vcmptrueps k5,zmm30,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x0f                         }, { vcmptrueps k5,zmm30,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x0f       }, { vcmptrueps k5,zmm30,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x0f                         }, { vcmptrueps k5,zmm30,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x0f       }, { vcmptrueps k5,zmm30,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x0f                         }, { vcmptrueps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0f       }, { vcmptrueps k5,zmm30,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x0f                         }, { vcmptrueps k5,zmm30,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0f       }, { vcmptrueps k5,zmm30,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x10                               }, { vcmpeq_osps k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x10                               }, { vcmpeq_osps k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x10                               }, { vcmpeq_osps k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x10                               }, { vcmpeq_osps k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x10 }, { vcmpeq_osps k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x10                               }, { vcmpeq_osps k5,zmm30,DWORD [rcx]{1to16}                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x10                         }, { vcmpeq_osps k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x10       }, { vcmpeq_osps k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x10                         }, { vcmpeq_osps k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x10       }, { vcmpeq_osps k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x10                         }, { vcmpeq_osps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x10       }, { vcmpeq_osps k5,zmm30,DWORD [rdx+0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x10                         }, { vcmpeq_osps k5,zmm30,DWORD [rdx-0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x10       }, { vcmpeq_osps k5,zmm30,DWORD [rdx-0x204]{1to16}                }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x11                               }, { vcmplt_oqps k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x11                               }, { vcmplt_oqps k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x11                               }, { vcmplt_oqps k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x11                               }, { vcmplt_oqps k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x11 }, { vcmplt_oqps k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x11                               }, { vcmplt_oqps k5,zmm30,DWORD [rcx]{1to16}                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x11                         }, { vcmplt_oqps k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x11       }, { vcmplt_oqps k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x11                         }, { vcmplt_oqps k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x11       }, { vcmplt_oqps k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x11                         }, { vcmplt_oqps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x11       }, { vcmplt_oqps k5,zmm30,DWORD [rdx+0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x11                         }, { vcmplt_oqps k5,zmm30,DWORD [rdx-0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x11       }, { vcmplt_oqps k5,zmm30,DWORD [rdx-0x204]{1to16}                }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x12                               }, { vcmple_oqps k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x12                               }, { vcmple_oqps k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x12                               }, { vcmple_oqps k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x12                               }, { vcmple_oqps k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x12 }, { vcmple_oqps k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x12                               }, { vcmple_oqps k5,zmm30,DWORD [rcx]{1to16}                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x12                         }, { vcmple_oqps k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x12       }, { vcmple_oqps k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x12                         }, { vcmple_oqps k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x12       }, { vcmple_oqps k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x12                         }, { vcmple_oqps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x12       }, { vcmple_oqps k5,zmm30,DWORD [rdx+0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x12                         }, { vcmple_oqps k5,zmm30,DWORD [rdx-0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x12       }, { vcmple_oqps k5,zmm30,DWORD [rdx-0x204]{1to16}                }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x13                               }, { vcmpunord_sps k5,zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x13                               }, { vcmpunord_sps k5{k7},zmm30,zmm29                             }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x13                               }, { vcmpunord_sps k5,zmm30,zmm29,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x13                               }, { vcmpunord_sps k5,zmm30,ZWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x13 }, { vcmpunord_sps k5,zmm30,ZWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x13                               }, { vcmpunord_sps k5,zmm30,DWORD [rcx]{1to16}                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x13                         }, { vcmpunord_sps k5,zmm30,ZWORD [rdx+0x1fc0]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x13       }, { vcmpunord_sps k5,zmm30,ZWORD [rdx+0x2000]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x13                         }, { vcmpunord_sps k5,zmm30,ZWORD [rdx-0x2000]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x13       }, { vcmpunord_sps k5,zmm30,ZWORD [rdx-0x2040]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x13                         }, { vcmpunord_sps k5,zmm30,DWORD [rdx+0x1fc]{1to16}              }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x13       }, { vcmpunord_sps k5,zmm30,DWORD [rdx+0x200]{1to16}              }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x13                         }, { vcmpunord_sps k5,zmm30,DWORD [rdx-0x200]{1to16}              }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x13       }, { vcmpunord_sps k5,zmm30,DWORD [rdx-0x204]{1to16}              }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x14                               }, { vcmpneq_usps k5,zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x14                               }, { vcmpneq_usps k5{k7},zmm30,zmm29                              }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x14                               }, { vcmpneq_usps k5,zmm30,zmm29,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x14                               }, { vcmpneq_usps k5,zmm30,ZWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x14 }, { vcmpneq_usps k5,zmm30,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x14                               }, { vcmpneq_usps k5,zmm30,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x14                         }, { vcmpneq_usps k5,zmm30,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x14       }, { vcmpneq_usps k5,zmm30,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x14                         }, { vcmpneq_usps k5,zmm30,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x14       }, { vcmpneq_usps k5,zmm30,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x14                         }, { vcmpneq_usps k5,zmm30,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x14       }, { vcmpneq_usps k5,zmm30,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x14                         }, { vcmpneq_usps k5,zmm30,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x14       }, { vcmpneq_usps k5,zmm30,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x15                               }, { vcmpnlt_uqps k5,zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x15                               }, { vcmpnlt_uqps k5{k7},zmm30,zmm29                              }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x15                               }, { vcmpnlt_uqps k5,zmm30,zmm29,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x15                               }, { vcmpnlt_uqps k5,zmm30,ZWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x15 }, { vcmpnlt_uqps k5,zmm30,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x15                               }, { vcmpnlt_uqps k5,zmm30,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x15                         }, { vcmpnlt_uqps k5,zmm30,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x15       }, { vcmpnlt_uqps k5,zmm30,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x15                         }, { vcmpnlt_uqps k5,zmm30,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x15       }, { vcmpnlt_uqps k5,zmm30,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x15                         }, { vcmpnlt_uqps k5,zmm30,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x15       }, { vcmpnlt_uqps k5,zmm30,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x15                         }, { vcmpnlt_uqps k5,zmm30,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x15       }, { vcmpnlt_uqps k5,zmm30,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x16                               }, { vcmpnle_uqps k5,zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x16                               }, { vcmpnle_uqps k5{k7},zmm30,zmm29                              }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x16                               }, { vcmpnle_uqps k5,zmm30,zmm29,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x16                               }, { vcmpnle_uqps k5,zmm30,ZWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x16 }, { vcmpnle_uqps k5,zmm30,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x16                               }, { vcmpnle_uqps k5,zmm30,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x16                         }, { vcmpnle_uqps k5,zmm30,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x16       }, { vcmpnle_uqps k5,zmm30,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x16                         }, { vcmpnle_uqps k5,zmm30,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x16       }, { vcmpnle_uqps k5,zmm30,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x16                         }, { vcmpnle_uqps k5,zmm30,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x16       }, { vcmpnle_uqps k5,zmm30,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x16                         }, { vcmpnle_uqps k5,zmm30,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x16       }, { vcmpnle_uqps k5,zmm30,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x17                               }, { vcmpord_sps k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x17                               }, { vcmpord_sps k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x17                               }, { vcmpord_sps k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x17                               }, { vcmpord_sps k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x17 }, { vcmpord_sps k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x17                               }, { vcmpord_sps k5,zmm30,DWORD [rcx]{1to16}                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x17                         }, { vcmpord_sps k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x17       }, { vcmpord_sps k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x17                         }, { vcmpord_sps k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x17       }, { vcmpord_sps k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x17                         }, { vcmpord_sps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x17       }, { vcmpord_sps k5,zmm30,DWORD [rdx+0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x17                         }, { vcmpord_sps k5,zmm30,DWORD [rdx-0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x17       }, { vcmpord_sps k5,zmm30,DWORD [rdx-0x204]{1to16}                }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x18                               }, { vcmpeq_usps k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x18                               }, { vcmpeq_usps k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x18                               }, { vcmpeq_usps k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x18                               }, { vcmpeq_usps k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x18 }, { vcmpeq_usps k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x18                               }, { vcmpeq_usps k5,zmm30,DWORD [rcx]{1to16}                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x18                         }, { vcmpeq_usps k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x18       }, { vcmpeq_usps k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x18                         }, { vcmpeq_usps k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x18       }, { vcmpeq_usps k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x18                         }, { vcmpeq_usps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x18       }, { vcmpeq_usps k5,zmm30,DWORD [rdx+0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x18                         }, { vcmpeq_usps k5,zmm30,DWORD [rdx-0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x18       }, { vcmpeq_usps k5,zmm30,DWORD [rdx-0x204]{1to16}                }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x19                               }, { vcmpnge_uqps k5,zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x19                               }, { vcmpnge_uqps k5{k7},zmm30,zmm29                              }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x19                               }, { vcmpnge_uqps k5,zmm30,zmm29,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x19                               }, { vcmpnge_uqps k5,zmm30,ZWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x19 }, { vcmpnge_uqps k5,zmm30,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x19                               }, { vcmpnge_uqps k5,zmm30,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x19                         }, { vcmpnge_uqps k5,zmm30,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x19       }, { vcmpnge_uqps k5,zmm30,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x19                         }, { vcmpnge_uqps k5,zmm30,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x19       }, { vcmpnge_uqps k5,zmm30,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x19                         }, { vcmpnge_uqps k5,zmm30,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x19       }, { vcmpnge_uqps k5,zmm30,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x19                         }, { vcmpnge_uqps k5,zmm30,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x19       }, { vcmpnge_uqps k5,zmm30,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x1a                               }, { vcmpngt_uqps k5,zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x1a                               }, { vcmpngt_uqps k5{k7},zmm30,zmm29                              }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x1a                               }, { vcmpngt_uqps k5,zmm30,zmm29,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x1a                               }, { vcmpngt_uqps k5,zmm30,ZWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1a }, { vcmpngt_uqps k5,zmm30,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x1a                               }, { vcmpngt_uqps k5,zmm30,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x1a                         }, { vcmpngt_uqps k5,zmm30,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x1a       }, { vcmpngt_uqps k5,zmm30,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x1a                         }, { vcmpngt_uqps k5,zmm30,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x1a       }, { vcmpngt_uqps k5,zmm30,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x1a                         }, { vcmpngt_uqps k5,zmm30,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x1a       }, { vcmpngt_uqps k5,zmm30,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x1a                         }, { vcmpngt_uqps k5,zmm30,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x1a       }, { vcmpngt_uqps k5,zmm30,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x1b                               }, { vcmpfalse_osps k5,zmm30,zmm29                                }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x1b                               }, { vcmpfalse_osps k5{k7},zmm30,zmm29                            }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x1b                               }, { vcmpfalse_osps k5,zmm30,zmm29,{sae}                          }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x1b                               }, { vcmpfalse_osps k5,zmm30,ZWORD [rcx]                          }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1b }, { vcmpfalse_osps k5,zmm30,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x1b                               }, { vcmpfalse_osps k5,zmm30,DWORD [rcx]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x1b                         }, { vcmpfalse_osps k5,zmm30,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x1b       }, { vcmpfalse_osps k5,zmm30,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x1b                         }, { vcmpfalse_osps k5,zmm30,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x1b       }, { vcmpfalse_osps k5,zmm30,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x1b                         }, { vcmpfalse_osps k5,zmm30,DWORD [rdx+0x1fc]{1to16}             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x1b       }, { vcmpfalse_osps k5,zmm30,DWORD [rdx+0x200]{1to16}             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x1b                         }, { vcmpfalse_osps k5,zmm30,DWORD [rdx-0x200]{1to16}             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x1b       }, { vcmpfalse_osps k5,zmm30,DWORD [rdx-0x204]{1to16}             }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x1c                               }, { vcmpneq_osps k5,zmm30,zmm29                                  }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x1c                               }, { vcmpneq_osps k5{k7},zmm30,zmm29                              }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x1c                               }, { vcmpneq_osps k5,zmm30,zmm29,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x1c                               }, { vcmpneq_osps k5,zmm30,ZWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1c }, { vcmpneq_osps k5,zmm30,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x1c                               }, { vcmpneq_osps k5,zmm30,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x1c                         }, { vcmpneq_osps k5,zmm30,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x1c       }, { vcmpneq_osps k5,zmm30,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x1c                         }, { vcmpneq_osps k5,zmm30,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x1c       }, { vcmpneq_osps k5,zmm30,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x1c                         }, { vcmpneq_osps k5,zmm30,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x1c       }, { vcmpneq_osps k5,zmm30,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x1c                         }, { vcmpneq_osps k5,zmm30,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x1c       }, { vcmpneq_osps k5,zmm30,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x1d                               }, { vcmpge_oqps k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x1d                               }, { vcmpge_oqps k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x1d                               }, { vcmpge_oqps k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x1d                               }, { vcmpge_oqps k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1d }, { vcmpge_oqps k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x1d                               }, { vcmpge_oqps k5,zmm30,DWORD [rcx]{1to16}                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x1d                         }, { vcmpge_oqps k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x1d       }, { vcmpge_oqps k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x1d                         }, { vcmpge_oqps k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x1d       }, { vcmpge_oqps k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x1d                         }, { vcmpge_oqps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x1d       }, { vcmpge_oqps k5,zmm30,DWORD [rdx+0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x1d                         }, { vcmpge_oqps k5,zmm30,DWORD [rdx-0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x1d       }, { vcmpge_oqps k5,zmm30,DWORD [rdx-0x204]{1to16}                }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x1e                               }, { vcmpgt_oqps k5,zmm30,zmm29                                   }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x1e                               }, { vcmpgt_oqps k5{k7},zmm30,zmm29                               }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x1e                               }, { vcmpgt_oqps k5,zmm30,zmm29,{sae}                             }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x1e                               }, { vcmpgt_oqps k5,zmm30,ZWORD [rcx]                             }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1e }, { vcmpgt_oqps k5,zmm30,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x1e                               }, { vcmpgt_oqps k5,zmm30,DWORD [rcx]{1to16}                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x1e                         }, { vcmpgt_oqps k5,zmm30,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x1e       }, { vcmpgt_oqps k5,zmm30,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x1e                         }, { vcmpgt_oqps k5,zmm30,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x1e       }, { vcmpgt_oqps k5,zmm30,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x1e                         }, { vcmpgt_oqps k5,zmm30,DWORD [rdx+0x1fc]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x1e       }, { vcmpgt_oqps k5,zmm30,DWORD [rdx+0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x1e                         }, { vcmpgt_oqps k5,zmm30,DWORD [rdx-0x200]{1to16}                }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x1e       }, { vcmpgt_oqps k5,zmm30,DWORD [rdx-0x204]{1to16}                }
-testcase	{ 0x62, 0x91, 0x0c, 0x40, 0xc2, 0xed, 0x1f                               }, { vcmptrue_usps k5,zmm30,zmm29                                 }
-testcase	{ 0x62, 0x91, 0x0c, 0x47, 0xc2, 0xed, 0x1f                               }, { vcmptrue_usps k5{k7},zmm30,zmm29                             }
-testcase	{ 0x62, 0x91, 0x0c, 0x10, 0xc2, 0xed, 0x1f                               }, { vcmptrue_usps k5,zmm30,zmm29,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x29, 0x1f                               }, { vcmptrue_usps k5,zmm30,ZWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x0c, 0x40, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1f }, { vcmptrue_usps k5,zmm30,ZWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x29, 0x1f                               }, { vcmptrue_usps k5,zmm30,DWORD [rcx]{1to16}                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x7f, 0x1f                         }, { vcmptrue_usps k5,zmm30,ZWORD [rdx+0x1fc0]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x1f       }, { vcmptrue_usps k5,zmm30,ZWORD [rdx+0x2000]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0x6a, 0x80, 0x1f                         }, { vcmptrue_usps k5,zmm30,ZWORD [rdx-0x2000]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x40, 0xc2, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x1f       }, { vcmptrue_usps k5,zmm30,ZWORD [rdx-0x2040]                    }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x7f, 0x1f                         }, { vcmptrue_usps k5,zmm30,DWORD [rdx+0x1fc]{1to16}              }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x1f       }, { vcmptrue_usps k5,zmm30,DWORD [rdx+0x200]{1to16}              }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0x6a, 0x80, 0x1f                         }, { vcmptrue_usps k5,zmm30,DWORD [rdx-0x200]{1to16}              }
-testcase	{ 0x62, 0xf1, 0x0c, 0x50, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x1f       }, { vcmptrue_usps k5,zmm30,DWORD [rdx-0x204]{1to16}              }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0xab                               }, { vcmpsd k5{k7},xmm29,xmm28,0xab                               }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0xab                               }, { vcmpsd k5{k7},xmm29,xmm28,{sae},0xab                         }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x7b                               }, { vcmpsd k5{k7},xmm29,xmm28,0x7b                               }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x7b                               }, { vcmpsd k5{k7},xmm29,xmm28,{sae},0x7b                         }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x7b                               }, { vcmpsd k5{k7},xmm29,QWORD [rcx],0x7b                         }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vcmpsd k5{k7},xmm29,QWORD [rax+r14*8+0x123],0x7b             }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x7b                         }, { vcmpsd k5{k7},xmm29,QWORD [rdx+0x3f8],0x7b                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vcmpsd k5{k7},xmm29,QWORD [rdx+0x400],0x7b                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x7b                         }, { vcmpsd k5{k7},xmm29,QWORD [rdx-0x400],0x7b                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vcmpsd k5{k7},xmm29,QWORD [rdx-0x408],0x7b                   }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x00                               }, { vcmpeqsd k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x00                               }, { vcmpeqsd k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x00                               }, { vcmpeqsd k5{k7},xmm29,QWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x00 }, { vcmpeqsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x00                         }, { vcmpeqsd k5{k7},xmm29,QWORD [rdx+0x3f8]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x00       }, { vcmpeqsd k5{k7},xmm29,QWORD [rdx+0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x00                         }, { vcmpeqsd k5{k7},xmm29,QWORD [rdx-0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x00       }, { vcmpeqsd k5{k7},xmm29,QWORD [rdx-0x408]                      }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x00                               }, { vcmpeqsd k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x00                               }, { vcmpeqsd k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x00                               }, { vcmpeqsd k5{k7},xmm29,QWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x00 }, { vcmpeqsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x00                         }, { vcmpeqsd k5{k7},xmm29,QWORD [rdx+0x3f8]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x00       }, { vcmpeqsd k5{k7},xmm29,QWORD [rdx+0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x00                         }, { vcmpeqsd k5{k7},xmm29,QWORD [rdx-0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x00       }, { vcmpeqsd k5{k7},xmm29,QWORD [rdx-0x408]                      }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x01                               }, { vcmpltsd k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x01                               }, { vcmpltsd k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x01                               }, { vcmpltsd k5{k7},xmm29,QWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x01 }, { vcmpltsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x01                         }, { vcmpltsd k5{k7},xmm29,QWORD [rdx+0x3f8]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x01       }, { vcmpltsd k5{k7},xmm29,QWORD [rdx+0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x01                         }, { vcmpltsd k5{k7},xmm29,QWORD [rdx-0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x01       }, { vcmpltsd k5{k7},xmm29,QWORD [rdx-0x408]                      }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x01                               }, { vcmpltsd k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x01                               }, { vcmpltsd k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x01                               }, { vcmpltsd k5{k7},xmm29,QWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x01 }, { vcmpltsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x01                         }, { vcmpltsd k5{k7},xmm29,QWORD [rdx+0x3f8]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x01       }, { vcmpltsd k5{k7},xmm29,QWORD [rdx+0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x01                         }, { vcmpltsd k5{k7},xmm29,QWORD [rdx-0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x01       }, { vcmpltsd k5{k7},xmm29,QWORD [rdx-0x408]                      }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x02                               }, { vcmplesd k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x02                               }, { vcmplesd k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x02                               }, { vcmplesd k5{k7},xmm29,QWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x02 }, { vcmplesd k5{k7},xmm29,QWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x02                         }, { vcmplesd k5{k7},xmm29,QWORD [rdx+0x3f8]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x02       }, { vcmplesd k5{k7},xmm29,QWORD [rdx+0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x02                         }, { vcmplesd k5{k7},xmm29,QWORD [rdx-0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x02       }, { vcmplesd k5{k7},xmm29,QWORD [rdx-0x408]                      }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x02                               }, { vcmplesd k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x02                               }, { vcmplesd k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x02                               }, { vcmplesd k5{k7},xmm29,QWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x02 }, { vcmplesd k5{k7},xmm29,QWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x02                         }, { vcmplesd k5{k7},xmm29,QWORD [rdx+0x3f8]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x02       }, { vcmplesd k5{k7},xmm29,QWORD [rdx+0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x02                         }, { vcmplesd k5{k7},xmm29,QWORD [rdx-0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x02       }, { vcmplesd k5{k7},xmm29,QWORD [rdx-0x408]                      }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x03                               }, { vcmpunordsd k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x03                               }, { vcmpunordsd k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x03                               }, { vcmpunordsd k5{k7},xmm29,QWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x03 }, { vcmpunordsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x03                         }, { vcmpunordsd k5{k7},xmm29,QWORD [rdx+0x3f8]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x03       }, { vcmpunordsd k5{k7},xmm29,QWORD [rdx+0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x03                         }, { vcmpunordsd k5{k7},xmm29,QWORD [rdx-0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x03       }, { vcmpunordsd k5{k7},xmm29,QWORD [rdx-0x408]                   }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x03                               }, { vcmpunordsd k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x03                               }, { vcmpunordsd k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x03                               }, { vcmpunordsd k5{k7},xmm29,QWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x03 }, { vcmpunordsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x03                         }, { vcmpunordsd k5{k7},xmm29,QWORD [rdx+0x3f8]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x03       }, { vcmpunordsd k5{k7},xmm29,QWORD [rdx+0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x03                         }, { vcmpunordsd k5{k7},xmm29,QWORD [rdx-0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x03       }, { vcmpunordsd k5{k7},xmm29,QWORD [rdx-0x408]                   }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x04                               }, { vcmpneqsd k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x04                               }, { vcmpneqsd k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x04                               }, { vcmpneqsd k5{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x04 }, { vcmpneqsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x04                         }, { vcmpneqsd k5{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x04       }, { vcmpneqsd k5{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x04                         }, { vcmpneqsd k5{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x04       }, { vcmpneqsd k5{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x04                               }, { vcmpneqsd k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x04                               }, { vcmpneqsd k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x04                               }, { vcmpneqsd k5{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x04 }, { vcmpneqsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x04                         }, { vcmpneqsd k5{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x04       }, { vcmpneqsd k5{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x04                         }, { vcmpneqsd k5{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x04       }, { vcmpneqsd k5{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x05                               }, { vcmpnltsd k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x05                               }, { vcmpnltsd k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x05                               }, { vcmpnltsd k5{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x05 }, { vcmpnltsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x05                         }, { vcmpnltsd k5{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x05       }, { vcmpnltsd k5{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x05                         }, { vcmpnltsd k5{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x05       }, { vcmpnltsd k5{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x05                               }, { vcmpnltsd k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x05                               }, { vcmpnltsd k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x05                               }, { vcmpnltsd k5{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x05 }, { vcmpnltsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x05                         }, { vcmpnltsd k5{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x05       }, { vcmpnltsd k5{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x05                         }, { vcmpnltsd k5{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x05       }, { vcmpnltsd k5{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x06                               }, { vcmpnlesd k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x06                               }, { vcmpnlesd k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x06                               }, { vcmpnlesd k5{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x06 }, { vcmpnlesd k5{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x06                         }, { vcmpnlesd k5{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x06       }, { vcmpnlesd k5{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x06                         }, { vcmpnlesd k5{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x06       }, { vcmpnlesd k5{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x06                               }, { vcmpnlesd k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x06                               }, { vcmpnlesd k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x06                               }, { vcmpnlesd k5{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x06 }, { vcmpnlesd k5{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x06                         }, { vcmpnlesd k5{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x06       }, { vcmpnlesd k5{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x06                         }, { vcmpnlesd k5{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x06       }, { vcmpnlesd k5{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x07                               }, { vcmpordsd k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x07                               }, { vcmpordsd k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x07                               }, { vcmpordsd k5{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x07 }, { vcmpordsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x07                         }, { vcmpordsd k5{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x07       }, { vcmpordsd k5{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x07                         }, { vcmpordsd k5{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x07       }, { vcmpordsd k5{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x07                               }, { vcmpordsd k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x07                               }, { vcmpordsd k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x07                               }, { vcmpordsd k5{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x07 }, { vcmpordsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x07                         }, { vcmpordsd k5{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x07       }, { vcmpordsd k5{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x07                         }, { vcmpordsd k5{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x07       }, { vcmpordsd k5{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x08                               }, { vcmpeq_uqsd k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x08                               }, { vcmpeq_uqsd k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x08                               }, { vcmpeq_uqsd k5{k7},xmm29,QWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x08 }, { vcmpeq_uqsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x08                         }, { vcmpeq_uqsd k5{k7},xmm29,QWORD [rdx+0x3f8]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x08       }, { vcmpeq_uqsd k5{k7},xmm29,QWORD [rdx+0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x08                         }, { vcmpeq_uqsd k5{k7},xmm29,QWORD [rdx-0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x08       }, { vcmpeq_uqsd k5{k7},xmm29,QWORD [rdx-0x408]                   }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x09                               }, { vcmpngesd k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x09                               }, { vcmpngesd k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x09                               }, { vcmpngesd k5{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x09 }, { vcmpngesd k5{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x09                         }, { vcmpngesd k5{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x09       }, { vcmpngesd k5{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x09                         }, { vcmpngesd k5{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x09       }, { vcmpngesd k5{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x09                               }, { vcmpngesd k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x09                               }, { vcmpngesd k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x09                               }, { vcmpngesd k5{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x09 }, { vcmpngesd k5{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x09                         }, { vcmpngesd k5{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x09       }, { vcmpngesd k5{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x09                         }, { vcmpngesd k5{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x09       }, { vcmpngesd k5{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x0a                               }, { vcmpngtsd k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x0a                               }, { vcmpngtsd k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x0a                               }, { vcmpngtsd k5{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0a }, { vcmpngtsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x0a                         }, { vcmpngtsd k5{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0a       }, { vcmpngtsd k5{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x0a                         }, { vcmpngtsd k5{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0a       }, { vcmpngtsd k5{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x0a                               }, { vcmpngtsd k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x0a                               }, { vcmpngtsd k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x0a                               }, { vcmpngtsd k5{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0a }, { vcmpngtsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x0a                         }, { vcmpngtsd k5{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0a       }, { vcmpngtsd k5{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x0a                         }, { vcmpngtsd k5{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0a       }, { vcmpngtsd k5{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x0b                               }, { vcmpfalsesd k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x0b                               }, { vcmpfalsesd k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x0b                               }, { vcmpfalsesd k5{k7},xmm29,QWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0b }, { vcmpfalsesd k5{k7},xmm29,QWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x0b                         }, { vcmpfalsesd k5{k7},xmm29,QWORD [rdx+0x3f8]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0b       }, { vcmpfalsesd k5{k7},xmm29,QWORD [rdx+0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x0b                         }, { vcmpfalsesd k5{k7},xmm29,QWORD [rdx-0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0b       }, { vcmpfalsesd k5{k7},xmm29,QWORD [rdx-0x408]                   }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x0b                               }, { vcmpfalsesd k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x0b                               }, { vcmpfalsesd k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x0b                               }, { vcmpfalsesd k5{k7},xmm29,QWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0b }, { vcmpfalsesd k5{k7},xmm29,QWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x0b                         }, { vcmpfalsesd k5{k7},xmm29,QWORD [rdx+0x3f8]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0b       }, { vcmpfalsesd k5{k7},xmm29,QWORD [rdx+0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x0b                         }, { vcmpfalsesd k5{k7},xmm29,QWORD [rdx-0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0b       }, { vcmpfalsesd k5{k7},xmm29,QWORD [rdx-0x408]                   }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x0c                               }, { vcmpneq_oqsd k5{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x0c                               }, { vcmpneq_oqsd k5{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x0c                               }, { vcmpneq_oqsd k5{k7},xmm29,QWORD [rcx]                        }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0c }, { vcmpneq_oqsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x0c                         }, { vcmpneq_oqsd k5{k7},xmm29,QWORD [rdx+0x3f8]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0c       }, { vcmpneq_oqsd k5{k7},xmm29,QWORD [rdx+0x400]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x0c                         }, { vcmpneq_oqsd k5{k7},xmm29,QWORD [rdx-0x400]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0c       }, { vcmpneq_oqsd k5{k7},xmm29,QWORD [rdx-0x408]                  }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x0d                               }, { vcmpgesd k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x0d                               }, { vcmpgesd k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x0d                               }, { vcmpgesd k5{k7},xmm29,QWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0d }, { vcmpgesd k5{k7},xmm29,QWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x0d                         }, { vcmpgesd k5{k7},xmm29,QWORD [rdx+0x3f8]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0d       }, { vcmpgesd k5{k7},xmm29,QWORD [rdx+0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x0d                         }, { vcmpgesd k5{k7},xmm29,QWORD [rdx-0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0d       }, { vcmpgesd k5{k7},xmm29,QWORD [rdx-0x408]                      }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x0d                               }, { vcmpgesd k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x0d                               }, { vcmpgesd k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x0d                               }, { vcmpgesd k5{k7},xmm29,QWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0d }, { vcmpgesd k5{k7},xmm29,QWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x0d                         }, { vcmpgesd k5{k7},xmm29,QWORD [rdx+0x3f8]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0d       }, { vcmpgesd k5{k7},xmm29,QWORD [rdx+0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x0d                         }, { vcmpgesd k5{k7},xmm29,QWORD [rdx-0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0d       }, { vcmpgesd k5{k7},xmm29,QWORD [rdx-0x408]                      }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x0e                               }, { vcmpgtsd k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x0e                               }, { vcmpgtsd k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x0e                               }, { vcmpgtsd k5{k7},xmm29,QWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0e }, { vcmpgtsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x0e                         }, { vcmpgtsd k5{k7},xmm29,QWORD [rdx+0x3f8]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0e       }, { vcmpgtsd k5{k7},xmm29,QWORD [rdx+0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x0e                         }, { vcmpgtsd k5{k7},xmm29,QWORD [rdx-0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0e       }, { vcmpgtsd k5{k7},xmm29,QWORD [rdx-0x408]                      }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x0e                               }, { vcmpgtsd k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x0e                               }, { vcmpgtsd k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x0e                               }, { vcmpgtsd k5{k7},xmm29,QWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0e }, { vcmpgtsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x0e                         }, { vcmpgtsd k5{k7},xmm29,QWORD [rdx+0x3f8]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0e       }, { vcmpgtsd k5{k7},xmm29,QWORD [rdx+0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x0e                         }, { vcmpgtsd k5{k7},xmm29,QWORD [rdx-0x400]                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0e       }, { vcmpgtsd k5{k7},xmm29,QWORD [rdx-0x408]                      }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x0f                               }, { vcmptruesd k5{k7},xmm29,xmm28                                }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x0f                               }, { vcmptruesd k5{k7},xmm29,xmm28,{sae}                          }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x0f                               }, { vcmptruesd k5{k7},xmm29,QWORD [rcx]                          }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0f }, { vcmptruesd k5{k7},xmm29,QWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x0f                         }, { vcmptruesd k5{k7},xmm29,QWORD [rdx+0x3f8]                    }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0f       }, { vcmptruesd k5{k7},xmm29,QWORD [rdx+0x400]                    }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x0f                         }, { vcmptruesd k5{k7},xmm29,QWORD [rdx-0x400]                    }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0f       }, { vcmptruesd k5{k7},xmm29,QWORD [rdx-0x408]                    }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x0f                               }, { vcmptruesd k5{k7},xmm29,xmm28                                }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x0f                               }, { vcmptruesd k5{k7},xmm29,xmm28,{sae}                          }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x0f                               }, { vcmptruesd k5{k7},xmm29,QWORD [rcx]                          }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0f }, { vcmptruesd k5{k7},xmm29,QWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x0f                         }, { vcmptruesd k5{k7},xmm29,QWORD [rdx+0x3f8]                    }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x0f       }, { vcmptruesd k5{k7},xmm29,QWORD [rdx+0x400]                    }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x0f                         }, { vcmptruesd k5{k7},xmm29,QWORD [rdx-0x400]                    }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x0f       }, { vcmptruesd k5{k7},xmm29,QWORD [rdx-0x408]                    }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x10                               }, { vcmpeq_ossd k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x10                               }, { vcmpeq_ossd k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x10                               }, { vcmpeq_ossd k5{k7},xmm29,QWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x10 }, { vcmpeq_ossd k5{k7},xmm29,QWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x10                         }, { vcmpeq_ossd k5{k7},xmm29,QWORD [rdx+0x3f8]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x10       }, { vcmpeq_ossd k5{k7},xmm29,QWORD [rdx+0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x10                         }, { vcmpeq_ossd k5{k7},xmm29,QWORD [rdx-0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x10       }, { vcmpeq_ossd k5{k7},xmm29,QWORD [rdx-0x408]                   }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x11                               }, { vcmplt_oqsd k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x11                               }, { vcmplt_oqsd k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x11                               }, { vcmplt_oqsd k5{k7},xmm29,QWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x11 }, { vcmplt_oqsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x11                         }, { vcmplt_oqsd k5{k7},xmm29,QWORD [rdx+0x3f8]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x11       }, { vcmplt_oqsd k5{k7},xmm29,QWORD [rdx+0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x11                         }, { vcmplt_oqsd k5{k7},xmm29,QWORD [rdx-0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x11       }, { vcmplt_oqsd k5{k7},xmm29,QWORD [rdx-0x408]                   }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x12                               }, { vcmple_oqsd k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x12                               }, { vcmple_oqsd k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x12                               }, { vcmple_oqsd k5{k7},xmm29,QWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x12 }, { vcmple_oqsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x12                         }, { vcmple_oqsd k5{k7},xmm29,QWORD [rdx+0x3f8]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x12       }, { vcmple_oqsd k5{k7},xmm29,QWORD [rdx+0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x12                         }, { vcmple_oqsd k5{k7},xmm29,QWORD [rdx-0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x12       }, { vcmple_oqsd k5{k7},xmm29,QWORD [rdx-0x408]                   }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x13                               }, { vcmpunord_ssd k5{k7},xmm29,xmm28                             }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x13                               }, { vcmpunord_ssd k5{k7},xmm29,xmm28,{sae}                       }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x13                               }, { vcmpunord_ssd k5{k7},xmm29,QWORD [rcx]                       }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x13 }, { vcmpunord_ssd k5{k7},xmm29,QWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x13                         }, { vcmpunord_ssd k5{k7},xmm29,QWORD [rdx+0x3f8]                 }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x13       }, { vcmpunord_ssd k5{k7},xmm29,QWORD [rdx+0x400]                 }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x13                         }, { vcmpunord_ssd k5{k7},xmm29,QWORD [rdx-0x400]                 }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x13       }, { vcmpunord_ssd k5{k7},xmm29,QWORD [rdx-0x408]                 }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x14                               }, { vcmpneq_ussd k5{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x14                               }, { vcmpneq_ussd k5{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x14                               }, { vcmpneq_ussd k5{k7},xmm29,QWORD [rcx]                        }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x14 }, { vcmpneq_ussd k5{k7},xmm29,QWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x14                         }, { vcmpneq_ussd k5{k7},xmm29,QWORD [rdx+0x3f8]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x14       }, { vcmpneq_ussd k5{k7},xmm29,QWORD [rdx+0x400]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x14                         }, { vcmpneq_ussd k5{k7},xmm29,QWORD [rdx-0x400]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x14       }, { vcmpneq_ussd k5{k7},xmm29,QWORD [rdx-0x408]                  }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x15                               }, { vcmpnlt_uqsd k5{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x15                               }, { vcmpnlt_uqsd k5{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x15                               }, { vcmpnlt_uqsd k5{k7},xmm29,QWORD [rcx]                        }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x15 }, { vcmpnlt_uqsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x15                         }, { vcmpnlt_uqsd k5{k7},xmm29,QWORD [rdx+0x3f8]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x15       }, { vcmpnlt_uqsd k5{k7},xmm29,QWORD [rdx+0x400]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x15                         }, { vcmpnlt_uqsd k5{k7},xmm29,QWORD [rdx-0x400]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x15       }, { vcmpnlt_uqsd k5{k7},xmm29,QWORD [rdx-0x408]                  }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x16                               }, { vcmpnle_uqsd k5{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x16                               }, { vcmpnle_uqsd k5{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x16                               }, { vcmpnle_uqsd k5{k7},xmm29,QWORD [rcx]                        }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x16 }, { vcmpnle_uqsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x16                         }, { vcmpnle_uqsd k5{k7},xmm29,QWORD [rdx+0x3f8]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x16       }, { vcmpnle_uqsd k5{k7},xmm29,QWORD [rdx+0x400]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x16                         }, { vcmpnle_uqsd k5{k7},xmm29,QWORD [rdx-0x400]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x16       }, { vcmpnle_uqsd k5{k7},xmm29,QWORD [rdx-0x408]                  }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x17                               }, { vcmpord_ssd k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x17                               }, { vcmpord_ssd k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x17                               }, { vcmpord_ssd k5{k7},xmm29,QWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x17 }, { vcmpord_ssd k5{k7},xmm29,QWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x17                         }, { vcmpord_ssd k5{k7},xmm29,QWORD [rdx+0x3f8]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x17       }, { vcmpord_ssd k5{k7},xmm29,QWORD [rdx+0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x17                         }, { vcmpord_ssd k5{k7},xmm29,QWORD [rdx-0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x17       }, { vcmpord_ssd k5{k7},xmm29,QWORD [rdx-0x408]                   }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x18                               }, { vcmpeq_ussd k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x18                               }, { vcmpeq_ussd k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x18                               }, { vcmpeq_ussd k5{k7},xmm29,QWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x18 }, { vcmpeq_ussd k5{k7},xmm29,QWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x18                         }, { vcmpeq_ussd k5{k7},xmm29,QWORD [rdx+0x3f8]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x18       }, { vcmpeq_ussd k5{k7},xmm29,QWORD [rdx+0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x18                         }, { vcmpeq_ussd k5{k7},xmm29,QWORD [rdx-0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x18       }, { vcmpeq_ussd k5{k7},xmm29,QWORD [rdx-0x408]                   }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x19                               }, { vcmpnge_uqsd k5{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x19                               }, { vcmpnge_uqsd k5{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x19                               }, { vcmpnge_uqsd k5{k7},xmm29,QWORD [rcx]                        }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x19 }, { vcmpnge_uqsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x19                         }, { vcmpnge_uqsd k5{k7},xmm29,QWORD [rdx+0x3f8]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x19       }, { vcmpnge_uqsd k5{k7},xmm29,QWORD [rdx+0x400]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x19                         }, { vcmpnge_uqsd k5{k7},xmm29,QWORD [rdx-0x400]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x19       }, { vcmpnge_uqsd k5{k7},xmm29,QWORD [rdx-0x408]                  }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x1a                               }, { vcmpngt_uqsd k5{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x1a                               }, { vcmpngt_uqsd k5{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x1a                               }, { vcmpngt_uqsd k5{k7},xmm29,QWORD [rcx]                        }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1a }, { vcmpngt_uqsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x1a                         }, { vcmpngt_uqsd k5{k7},xmm29,QWORD [rdx+0x3f8]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x1a       }, { vcmpngt_uqsd k5{k7},xmm29,QWORD [rdx+0x400]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x1a                         }, { vcmpngt_uqsd k5{k7},xmm29,QWORD [rdx-0x400]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x1a       }, { vcmpngt_uqsd k5{k7},xmm29,QWORD [rdx-0x408]                  }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x1b                               }, { vcmpfalse_ossd k5{k7},xmm29,xmm28                            }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x1b                               }, { vcmpfalse_ossd k5{k7},xmm29,xmm28,{sae}                      }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x1b                               }, { vcmpfalse_ossd k5{k7},xmm29,QWORD [rcx]                      }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1b }, { vcmpfalse_ossd k5{k7},xmm29,QWORD [rax+r14*8+0x123]          }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x1b                         }, { vcmpfalse_ossd k5{k7},xmm29,QWORD [rdx+0x3f8]                }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x1b       }, { vcmpfalse_ossd k5{k7},xmm29,QWORD [rdx+0x400]                }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x1b                         }, { vcmpfalse_ossd k5{k7},xmm29,QWORD [rdx-0x400]                }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x1b       }, { vcmpfalse_ossd k5{k7},xmm29,QWORD [rdx-0x408]                }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x1c                               }, { vcmpneq_ossd k5{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x1c                               }, { vcmpneq_ossd k5{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x1c                               }, { vcmpneq_ossd k5{k7},xmm29,QWORD [rcx]                        }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1c }, { vcmpneq_ossd k5{k7},xmm29,QWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x1c                         }, { vcmpneq_ossd k5{k7},xmm29,QWORD [rdx+0x3f8]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x1c       }, { vcmpneq_ossd k5{k7},xmm29,QWORD [rdx+0x400]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x1c                         }, { vcmpneq_ossd k5{k7},xmm29,QWORD [rdx-0x400]                  }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x1c       }, { vcmpneq_ossd k5{k7},xmm29,QWORD [rdx-0x408]                  }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x1d                               }, { vcmpge_oqsd k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x1d                               }, { vcmpge_oqsd k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x1d                               }, { vcmpge_oqsd k5{k7},xmm29,QWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1d }, { vcmpge_oqsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x1d                         }, { vcmpge_oqsd k5{k7},xmm29,QWORD [rdx+0x3f8]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x1d       }, { vcmpge_oqsd k5{k7},xmm29,QWORD [rdx+0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x1d                         }, { vcmpge_oqsd k5{k7},xmm29,QWORD [rdx-0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x1d       }, { vcmpge_oqsd k5{k7},xmm29,QWORD [rdx-0x408]                   }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x1e                               }, { vcmpgt_oqsd k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x1e                               }, { vcmpgt_oqsd k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x1e                               }, { vcmpgt_oqsd k5{k7},xmm29,QWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1e }, { vcmpgt_oqsd k5{k7},xmm29,QWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x1e                         }, { vcmpgt_oqsd k5{k7},xmm29,QWORD [rdx+0x3f8]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x1e       }, { vcmpgt_oqsd k5{k7},xmm29,QWORD [rdx+0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x1e                         }, { vcmpgt_oqsd k5{k7},xmm29,QWORD [rdx-0x400]                   }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x1e       }, { vcmpgt_oqsd k5{k7},xmm29,QWORD [rdx-0x408]                   }
-testcase	{ 0x62, 0x91, 0x97, 0x07, 0xc2, 0xec, 0x1f                               }, { vcmptrue_ussd k5{k7},xmm29,xmm28                             }
-testcase	{ 0x62, 0x91, 0x97, 0x17, 0xc2, 0xec, 0x1f                               }, { vcmptrue_ussd k5{k7},xmm29,xmm28,{sae}                       }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x29, 0x1f                               }, { vcmptrue_ussd k5{k7},xmm29,QWORD [rcx]                       }
-testcase	{ 0x62, 0xb1, 0x97, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1f }, { vcmptrue_ussd k5{k7},xmm29,QWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x7f, 0x1f                         }, { vcmptrue_ussd k5{k7},xmm29,QWORD [rdx+0x3f8]                 }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x1f       }, { vcmptrue_ussd k5{k7},xmm29,QWORD [rdx+0x400]                 }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0x6a, 0x80, 0x1f                         }, { vcmptrue_ussd k5{k7},xmm29,QWORD [rdx-0x400]                 }
-testcase	{ 0x62, 0xf1, 0x97, 0x07, 0xc2, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x1f       }, { vcmptrue_ussd k5{k7},xmm29,QWORD [rdx-0x408]                 }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0xab                               }, { vcmpss k5{k7},xmm29,xmm28,0xab                               }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0xab                               }, { vcmpss k5{k7},xmm29,xmm28,{sae},0xab                         }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x7b                               }, { vcmpss k5{k7},xmm29,xmm28,0x7b                               }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x7b                               }, { vcmpss k5{k7},xmm29,xmm28,{sae},0x7b                         }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x7b                               }, { vcmpss k5{k7},xmm29,DWORD [rcx],0x7b                         }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vcmpss k5{k7},xmm29,DWORD [rax+r14*8+0x123],0x7b             }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x7b                         }, { vcmpss k5{k7},xmm29,DWORD [rdx+0x1fc],0x7b                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vcmpss k5{k7},xmm29,DWORD [rdx+0x200],0x7b                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x7b                         }, { vcmpss k5{k7},xmm29,DWORD [rdx-0x200],0x7b                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vcmpss k5{k7},xmm29,DWORD [rdx-0x204],0x7b                   }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x00                               }, { vcmpeqss k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x00                               }, { vcmpeqss k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x00                               }, { vcmpeqss k5{k7},xmm29,DWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x00 }, { vcmpeqss k5{k7},xmm29,DWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x00                         }, { vcmpeqss k5{k7},xmm29,DWORD [rdx+0x1fc]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x00       }, { vcmpeqss k5{k7},xmm29,DWORD [rdx+0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x00                         }, { vcmpeqss k5{k7},xmm29,DWORD [rdx-0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x00       }, { vcmpeqss k5{k7},xmm29,DWORD [rdx-0x204]                      }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x00                               }, { vcmpeqss k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x00                               }, { vcmpeqss k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x00                               }, { vcmpeqss k5{k7},xmm29,DWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x00 }, { vcmpeqss k5{k7},xmm29,DWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x00                         }, { vcmpeqss k5{k7},xmm29,DWORD [rdx+0x1fc]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x00       }, { vcmpeqss k5{k7},xmm29,DWORD [rdx+0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x00                         }, { vcmpeqss k5{k7},xmm29,DWORD [rdx-0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x00       }, { vcmpeqss k5{k7},xmm29,DWORD [rdx-0x204]                      }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x01                               }, { vcmpltss k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x01                               }, { vcmpltss k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x01                               }, { vcmpltss k5{k7},xmm29,DWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x01 }, { vcmpltss k5{k7},xmm29,DWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x01                         }, { vcmpltss k5{k7},xmm29,DWORD [rdx+0x1fc]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x01       }, { vcmpltss k5{k7},xmm29,DWORD [rdx+0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x01                         }, { vcmpltss k5{k7},xmm29,DWORD [rdx-0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x01       }, { vcmpltss k5{k7},xmm29,DWORD [rdx-0x204]                      }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x01                               }, { vcmpltss k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x01                               }, { vcmpltss k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x01                               }, { vcmpltss k5{k7},xmm29,DWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x01 }, { vcmpltss k5{k7},xmm29,DWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x01                         }, { vcmpltss k5{k7},xmm29,DWORD [rdx+0x1fc]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x01       }, { vcmpltss k5{k7},xmm29,DWORD [rdx+0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x01                         }, { vcmpltss k5{k7},xmm29,DWORD [rdx-0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x01       }, { vcmpltss k5{k7},xmm29,DWORD [rdx-0x204]                      }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x02                               }, { vcmpless k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x02                               }, { vcmpless k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x02                               }, { vcmpless k5{k7},xmm29,DWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x02 }, { vcmpless k5{k7},xmm29,DWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x02                         }, { vcmpless k5{k7},xmm29,DWORD [rdx+0x1fc]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x02       }, { vcmpless k5{k7},xmm29,DWORD [rdx+0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x02                         }, { vcmpless k5{k7},xmm29,DWORD [rdx-0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x02       }, { vcmpless k5{k7},xmm29,DWORD [rdx-0x204]                      }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x02                               }, { vcmpless k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x02                               }, { vcmpless k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x02                               }, { vcmpless k5{k7},xmm29,DWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x02 }, { vcmpless k5{k7},xmm29,DWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x02                         }, { vcmpless k5{k7},xmm29,DWORD [rdx+0x1fc]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x02       }, { vcmpless k5{k7},xmm29,DWORD [rdx+0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x02                         }, { vcmpless k5{k7},xmm29,DWORD [rdx-0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x02       }, { vcmpless k5{k7},xmm29,DWORD [rdx-0x204]                      }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x03                               }, { vcmpunordss k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x03                               }, { vcmpunordss k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x03                               }, { vcmpunordss k5{k7},xmm29,DWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x03 }, { vcmpunordss k5{k7},xmm29,DWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x03                         }, { vcmpunordss k5{k7},xmm29,DWORD [rdx+0x1fc]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x03       }, { vcmpunordss k5{k7},xmm29,DWORD [rdx+0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x03                         }, { vcmpunordss k5{k7},xmm29,DWORD [rdx-0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x03       }, { vcmpunordss k5{k7},xmm29,DWORD [rdx-0x204]                   }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x03                               }, { vcmpunordss k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x03                               }, { vcmpunordss k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x03                               }, { vcmpunordss k5{k7},xmm29,DWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x03 }, { vcmpunordss k5{k7},xmm29,DWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x03                         }, { vcmpunordss k5{k7},xmm29,DWORD [rdx+0x1fc]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x03       }, { vcmpunordss k5{k7},xmm29,DWORD [rdx+0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x03                         }, { vcmpunordss k5{k7},xmm29,DWORD [rdx-0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x03       }, { vcmpunordss k5{k7},xmm29,DWORD [rdx-0x204]                   }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x04                               }, { vcmpneqss k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x04                               }, { vcmpneqss k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x04                               }, { vcmpneqss k5{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x04 }, { vcmpneqss k5{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x04                         }, { vcmpneqss k5{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x04       }, { vcmpneqss k5{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x04                         }, { vcmpneqss k5{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x04       }, { vcmpneqss k5{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x04                               }, { vcmpneqss k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x04                               }, { vcmpneqss k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x04                               }, { vcmpneqss k5{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x04 }, { vcmpneqss k5{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x04                         }, { vcmpneqss k5{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x04       }, { vcmpneqss k5{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x04                         }, { vcmpneqss k5{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x04       }, { vcmpneqss k5{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x05                               }, { vcmpnltss k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x05                               }, { vcmpnltss k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x05                               }, { vcmpnltss k5{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x05 }, { vcmpnltss k5{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x05                         }, { vcmpnltss k5{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x05       }, { vcmpnltss k5{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x05                         }, { vcmpnltss k5{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x05       }, { vcmpnltss k5{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x05                               }, { vcmpnltss k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x05                               }, { vcmpnltss k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x05                               }, { vcmpnltss k5{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x05 }, { vcmpnltss k5{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x05                         }, { vcmpnltss k5{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x05       }, { vcmpnltss k5{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x05                         }, { vcmpnltss k5{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x05       }, { vcmpnltss k5{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x06                               }, { vcmpnless k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x06                               }, { vcmpnless k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x06                               }, { vcmpnless k5{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x06 }, { vcmpnless k5{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x06                         }, { vcmpnless k5{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x06       }, { vcmpnless k5{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x06                         }, { vcmpnless k5{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x06       }, { vcmpnless k5{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x06                               }, { vcmpnless k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x06                               }, { vcmpnless k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x06                               }, { vcmpnless k5{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x06 }, { vcmpnless k5{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x06                         }, { vcmpnless k5{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x06       }, { vcmpnless k5{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x06                         }, { vcmpnless k5{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x06       }, { vcmpnless k5{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x07                               }, { vcmpordss k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x07                               }, { vcmpordss k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x07                               }, { vcmpordss k5{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x07 }, { vcmpordss k5{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x07                         }, { vcmpordss k5{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x07       }, { vcmpordss k5{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x07                         }, { vcmpordss k5{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x07       }, { vcmpordss k5{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x07                               }, { vcmpordss k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x07                               }, { vcmpordss k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x07                               }, { vcmpordss k5{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x07 }, { vcmpordss k5{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x07                         }, { vcmpordss k5{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x07       }, { vcmpordss k5{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x07                         }, { vcmpordss k5{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x07       }, { vcmpordss k5{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x08                               }, { vcmpeq_uqss k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x08                               }, { vcmpeq_uqss k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x08                               }, { vcmpeq_uqss k5{k7},xmm29,DWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x08 }, { vcmpeq_uqss k5{k7},xmm29,DWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x08                         }, { vcmpeq_uqss k5{k7},xmm29,DWORD [rdx+0x1fc]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x08       }, { vcmpeq_uqss k5{k7},xmm29,DWORD [rdx+0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x08                         }, { vcmpeq_uqss k5{k7},xmm29,DWORD [rdx-0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x08       }, { vcmpeq_uqss k5{k7},xmm29,DWORD [rdx-0x204]                   }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x09                               }, { vcmpngess k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x09                               }, { vcmpngess k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x09                               }, { vcmpngess k5{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x09 }, { vcmpngess k5{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x09                         }, { vcmpngess k5{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x09       }, { vcmpngess k5{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x09                         }, { vcmpngess k5{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x09       }, { vcmpngess k5{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x09                               }, { vcmpngess k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x09                               }, { vcmpngess k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x09                               }, { vcmpngess k5{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x09 }, { vcmpngess k5{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x09                         }, { vcmpngess k5{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x09       }, { vcmpngess k5{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x09                         }, { vcmpngess k5{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x09       }, { vcmpngess k5{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x0a                               }, { vcmpngtss k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x0a                               }, { vcmpngtss k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x0a                               }, { vcmpngtss k5{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0a }, { vcmpngtss k5{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x0a                         }, { vcmpngtss k5{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0a       }, { vcmpngtss k5{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x0a                         }, { vcmpngtss k5{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0a       }, { vcmpngtss k5{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x0a                               }, { vcmpngtss k5{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x0a                               }, { vcmpngtss k5{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x0a                               }, { vcmpngtss k5{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0a }, { vcmpngtss k5{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x0a                         }, { vcmpngtss k5{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0a       }, { vcmpngtss k5{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x0a                         }, { vcmpngtss k5{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0a       }, { vcmpngtss k5{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x0b                               }, { vcmpfalsess k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x0b                               }, { vcmpfalsess k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x0b                               }, { vcmpfalsess k5{k7},xmm29,DWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0b }, { vcmpfalsess k5{k7},xmm29,DWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x0b                         }, { vcmpfalsess k5{k7},xmm29,DWORD [rdx+0x1fc]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0b       }, { vcmpfalsess k5{k7},xmm29,DWORD [rdx+0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x0b                         }, { vcmpfalsess k5{k7},xmm29,DWORD [rdx-0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0b       }, { vcmpfalsess k5{k7},xmm29,DWORD [rdx-0x204]                   }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x0b                               }, { vcmpfalsess k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x0b                               }, { vcmpfalsess k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x0b                               }, { vcmpfalsess k5{k7},xmm29,DWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0b }, { vcmpfalsess k5{k7},xmm29,DWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x0b                         }, { vcmpfalsess k5{k7},xmm29,DWORD [rdx+0x1fc]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0b       }, { vcmpfalsess k5{k7},xmm29,DWORD [rdx+0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x0b                         }, { vcmpfalsess k5{k7},xmm29,DWORD [rdx-0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0b       }, { vcmpfalsess k5{k7},xmm29,DWORD [rdx-0x204]                   }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x0c                               }, { vcmpneq_oqss k5{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x0c                               }, { vcmpneq_oqss k5{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x0c                               }, { vcmpneq_oqss k5{k7},xmm29,DWORD [rcx]                        }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0c }, { vcmpneq_oqss k5{k7},xmm29,DWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x0c                         }, { vcmpneq_oqss k5{k7},xmm29,DWORD [rdx+0x1fc]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0c       }, { vcmpneq_oqss k5{k7},xmm29,DWORD [rdx+0x200]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x0c                         }, { vcmpneq_oqss k5{k7},xmm29,DWORD [rdx-0x200]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0c       }, { vcmpneq_oqss k5{k7},xmm29,DWORD [rdx-0x204]                  }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x0d                               }, { vcmpgess k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x0d                               }, { vcmpgess k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x0d                               }, { vcmpgess k5{k7},xmm29,DWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0d }, { vcmpgess k5{k7},xmm29,DWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x0d                         }, { vcmpgess k5{k7},xmm29,DWORD [rdx+0x1fc]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0d       }, { vcmpgess k5{k7},xmm29,DWORD [rdx+0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x0d                         }, { vcmpgess k5{k7},xmm29,DWORD [rdx-0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0d       }, { vcmpgess k5{k7},xmm29,DWORD [rdx-0x204]                      }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x0d                               }, { vcmpgess k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x0d                               }, { vcmpgess k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x0d                               }, { vcmpgess k5{k7},xmm29,DWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0d }, { vcmpgess k5{k7},xmm29,DWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x0d                         }, { vcmpgess k5{k7},xmm29,DWORD [rdx+0x1fc]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0d       }, { vcmpgess k5{k7},xmm29,DWORD [rdx+0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x0d                         }, { vcmpgess k5{k7},xmm29,DWORD [rdx-0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0d       }, { vcmpgess k5{k7},xmm29,DWORD [rdx-0x204]                      }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x0e                               }, { vcmpgtss k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x0e                               }, { vcmpgtss k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x0e                               }, { vcmpgtss k5{k7},xmm29,DWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0e }, { vcmpgtss k5{k7},xmm29,DWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x0e                         }, { vcmpgtss k5{k7},xmm29,DWORD [rdx+0x1fc]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0e       }, { vcmpgtss k5{k7},xmm29,DWORD [rdx+0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x0e                         }, { vcmpgtss k5{k7},xmm29,DWORD [rdx-0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0e       }, { vcmpgtss k5{k7},xmm29,DWORD [rdx-0x204]                      }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x0e                               }, { vcmpgtss k5{k7},xmm29,xmm28                                  }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x0e                               }, { vcmpgtss k5{k7},xmm29,xmm28,{sae}                            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x0e                               }, { vcmpgtss k5{k7},xmm29,DWORD [rcx]                            }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0e }, { vcmpgtss k5{k7},xmm29,DWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x0e                         }, { vcmpgtss k5{k7},xmm29,DWORD [rdx+0x1fc]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0e       }, { vcmpgtss k5{k7},xmm29,DWORD [rdx+0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x0e                         }, { vcmpgtss k5{k7},xmm29,DWORD [rdx-0x200]                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0e       }, { vcmpgtss k5{k7},xmm29,DWORD [rdx-0x204]                      }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x0f                               }, { vcmptruess k5{k7},xmm29,xmm28                                }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x0f                               }, { vcmptruess k5{k7},xmm29,xmm28,{sae}                          }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x0f                               }, { vcmptruess k5{k7},xmm29,DWORD [rcx]                          }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0f }, { vcmptruess k5{k7},xmm29,DWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x0f                         }, { vcmptruess k5{k7},xmm29,DWORD [rdx+0x1fc]                    }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0f       }, { vcmptruess k5{k7},xmm29,DWORD [rdx+0x200]                    }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x0f                         }, { vcmptruess k5{k7},xmm29,DWORD [rdx-0x200]                    }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0f       }, { vcmptruess k5{k7},xmm29,DWORD [rdx-0x204]                    }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x0f                               }, { vcmptruess k5{k7},xmm29,xmm28                                }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x0f                               }, { vcmptruess k5{k7},xmm29,xmm28,{sae}                          }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x0f                               }, { vcmptruess k5{k7},xmm29,DWORD [rcx]                          }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x0f }, { vcmptruess k5{k7},xmm29,DWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x0f                         }, { vcmptruess k5{k7},xmm29,DWORD [rdx+0x1fc]                    }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x0f       }, { vcmptruess k5{k7},xmm29,DWORD [rdx+0x200]                    }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x0f                         }, { vcmptruess k5{k7},xmm29,DWORD [rdx-0x200]                    }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x0f       }, { vcmptruess k5{k7},xmm29,DWORD [rdx-0x204]                    }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x10                               }, { vcmpeq_osss k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x10                               }, { vcmpeq_osss k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x10                               }, { vcmpeq_osss k5{k7},xmm29,DWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x10 }, { vcmpeq_osss k5{k7},xmm29,DWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x10                         }, { vcmpeq_osss k5{k7},xmm29,DWORD [rdx+0x1fc]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x10       }, { vcmpeq_osss k5{k7},xmm29,DWORD [rdx+0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x10                         }, { vcmpeq_osss k5{k7},xmm29,DWORD [rdx-0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x10       }, { vcmpeq_osss k5{k7},xmm29,DWORD [rdx-0x204]                   }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x11                               }, { vcmplt_oqss k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x11                               }, { vcmplt_oqss k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x11                               }, { vcmplt_oqss k5{k7},xmm29,DWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x11 }, { vcmplt_oqss k5{k7},xmm29,DWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x11                         }, { vcmplt_oqss k5{k7},xmm29,DWORD [rdx+0x1fc]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x11       }, { vcmplt_oqss k5{k7},xmm29,DWORD [rdx+0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x11                         }, { vcmplt_oqss k5{k7},xmm29,DWORD [rdx-0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x11       }, { vcmplt_oqss k5{k7},xmm29,DWORD [rdx-0x204]                   }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x12                               }, { vcmple_oqss k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x12                               }, { vcmple_oqss k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x12                               }, { vcmple_oqss k5{k7},xmm29,DWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x12 }, { vcmple_oqss k5{k7},xmm29,DWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x12                         }, { vcmple_oqss k5{k7},xmm29,DWORD [rdx+0x1fc]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x12       }, { vcmple_oqss k5{k7},xmm29,DWORD [rdx+0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x12                         }, { vcmple_oqss k5{k7},xmm29,DWORD [rdx-0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x12       }, { vcmple_oqss k5{k7},xmm29,DWORD [rdx-0x204]                   }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x13                               }, { vcmpunord_sss k5{k7},xmm29,xmm28                             }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x13                               }, { vcmpunord_sss k5{k7},xmm29,xmm28,{sae}                       }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x13                               }, { vcmpunord_sss k5{k7},xmm29,DWORD [rcx]                       }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x13 }, { vcmpunord_sss k5{k7},xmm29,DWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x13                         }, { vcmpunord_sss k5{k7},xmm29,DWORD [rdx+0x1fc]                 }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x13       }, { vcmpunord_sss k5{k7},xmm29,DWORD [rdx+0x200]                 }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x13                         }, { vcmpunord_sss k5{k7},xmm29,DWORD [rdx-0x200]                 }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x13       }, { vcmpunord_sss k5{k7},xmm29,DWORD [rdx-0x204]                 }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x14                               }, { vcmpneq_usss k5{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x14                               }, { vcmpneq_usss k5{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x14                               }, { vcmpneq_usss k5{k7},xmm29,DWORD [rcx]                        }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x14 }, { vcmpneq_usss k5{k7},xmm29,DWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x14                         }, { vcmpneq_usss k5{k7},xmm29,DWORD [rdx+0x1fc]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x14       }, { vcmpneq_usss k5{k7},xmm29,DWORD [rdx+0x200]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x14                         }, { vcmpneq_usss k5{k7},xmm29,DWORD [rdx-0x200]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x14       }, { vcmpneq_usss k5{k7},xmm29,DWORD [rdx-0x204]                  }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x15                               }, { vcmpnlt_uqss k5{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x15                               }, { vcmpnlt_uqss k5{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x15                               }, { vcmpnlt_uqss k5{k7},xmm29,DWORD [rcx]                        }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x15 }, { vcmpnlt_uqss k5{k7},xmm29,DWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x15                         }, { vcmpnlt_uqss k5{k7},xmm29,DWORD [rdx+0x1fc]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x15       }, { vcmpnlt_uqss k5{k7},xmm29,DWORD [rdx+0x200]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x15                         }, { vcmpnlt_uqss k5{k7},xmm29,DWORD [rdx-0x200]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x15       }, { vcmpnlt_uqss k5{k7},xmm29,DWORD [rdx-0x204]                  }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x16                               }, { vcmpnle_uqss k5{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x16                               }, { vcmpnle_uqss k5{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x16                               }, { vcmpnle_uqss k5{k7},xmm29,DWORD [rcx]                        }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x16 }, { vcmpnle_uqss k5{k7},xmm29,DWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x16                         }, { vcmpnle_uqss k5{k7},xmm29,DWORD [rdx+0x1fc]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x16       }, { vcmpnle_uqss k5{k7},xmm29,DWORD [rdx+0x200]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x16                         }, { vcmpnle_uqss k5{k7},xmm29,DWORD [rdx-0x200]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x16       }, { vcmpnle_uqss k5{k7},xmm29,DWORD [rdx-0x204]                  }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x17                               }, { vcmpord_sss k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x17                               }, { vcmpord_sss k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x17                               }, { vcmpord_sss k5{k7},xmm29,DWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x17 }, { vcmpord_sss k5{k7},xmm29,DWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x17                         }, { vcmpord_sss k5{k7},xmm29,DWORD [rdx+0x1fc]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x17       }, { vcmpord_sss k5{k7},xmm29,DWORD [rdx+0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x17                         }, { vcmpord_sss k5{k7},xmm29,DWORD [rdx-0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x17       }, { vcmpord_sss k5{k7},xmm29,DWORD [rdx-0x204]                   }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x18                               }, { vcmpeq_usss k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x18                               }, { vcmpeq_usss k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x18                               }, { vcmpeq_usss k5{k7},xmm29,DWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x18 }, { vcmpeq_usss k5{k7},xmm29,DWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x18                         }, { vcmpeq_usss k5{k7},xmm29,DWORD [rdx+0x1fc]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x18       }, { vcmpeq_usss k5{k7},xmm29,DWORD [rdx+0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x18                         }, { vcmpeq_usss k5{k7},xmm29,DWORD [rdx-0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x18       }, { vcmpeq_usss k5{k7},xmm29,DWORD [rdx-0x204]                   }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x19                               }, { vcmpnge_uqss k5{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x19                               }, { vcmpnge_uqss k5{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x19                               }, { vcmpnge_uqss k5{k7},xmm29,DWORD [rcx]                        }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x19 }, { vcmpnge_uqss k5{k7},xmm29,DWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x19                         }, { vcmpnge_uqss k5{k7},xmm29,DWORD [rdx+0x1fc]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x19       }, { vcmpnge_uqss k5{k7},xmm29,DWORD [rdx+0x200]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x19                         }, { vcmpnge_uqss k5{k7},xmm29,DWORD [rdx-0x200]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x19       }, { vcmpnge_uqss k5{k7},xmm29,DWORD [rdx-0x204]                  }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x1a                               }, { vcmpngt_uqss k5{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x1a                               }, { vcmpngt_uqss k5{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x1a                               }, { vcmpngt_uqss k5{k7},xmm29,DWORD [rcx]                        }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1a }, { vcmpngt_uqss k5{k7},xmm29,DWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x1a                         }, { vcmpngt_uqss k5{k7},xmm29,DWORD [rdx+0x1fc]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x1a       }, { vcmpngt_uqss k5{k7},xmm29,DWORD [rdx+0x200]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x1a                         }, { vcmpngt_uqss k5{k7},xmm29,DWORD [rdx-0x200]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x1a       }, { vcmpngt_uqss k5{k7},xmm29,DWORD [rdx-0x204]                  }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x1b                               }, { vcmpfalse_osss k5{k7},xmm29,xmm28                            }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x1b                               }, { vcmpfalse_osss k5{k7},xmm29,xmm28,{sae}                      }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x1b                               }, { vcmpfalse_osss k5{k7},xmm29,DWORD [rcx]                      }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1b }, { vcmpfalse_osss k5{k7},xmm29,DWORD [rax+r14*8+0x123]          }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x1b                         }, { vcmpfalse_osss k5{k7},xmm29,DWORD [rdx+0x1fc]                }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x1b       }, { vcmpfalse_osss k5{k7},xmm29,DWORD [rdx+0x200]                }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x1b                         }, { vcmpfalse_osss k5{k7},xmm29,DWORD [rdx-0x200]                }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x1b       }, { vcmpfalse_osss k5{k7},xmm29,DWORD [rdx-0x204]                }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x1c                               }, { vcmpneq_osss k5{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x1c                               }, { vcmpneq_osss k5{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x1c                               }, { vcmpneq_osss k5{k7},xmm29,DWORD [rcx]                        }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1c }, { vcmpneq_osss k5{k7},xmm29,DWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x1c                         }, { vcmpneq_osss k5{k7},xmm29,DWORD [rdx+0x1fc]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x1c       }, { vcmpneq_osss k5{k7},xmm29,DWORD [rdx+0x200]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x1c                         }, { vcmpneq_osss k5{k7},xmm29,DWORD [rdx-0x200]                  }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x1c       }, { vcmpneq_osss k5{k7},xmm29,DWORD [rdx-0x204]                  }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x1d                               }, { vcmpge_oqss k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x1d                               }, { vcmpge_oqss k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x1d                               }, { vcmpge_oqss k5{k7},xmm29,DWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1d }, { vcmpge_oqss k5{k7},xmm29,DWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x1d                         }, { vcmpge_oqss k5{k7},xmm29,DWORD [rdx+0x1fc]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x1d       }, { vcmpge_oqss k5{k7},xmm29,DWORD [rdx+0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x1d                         }, { vcmpge_oqss k5{k7},xmm29,DWORD [rdx-0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x1d       }, { vcmpge_oqss k5{k7},xmm29,DWORD [rdx-0x204]                   }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x1e                               }, { vcmpgt_oqss k5{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x1e                               }, { vcmpgt_oqss k5{k7},xmm29,xmm28,{sae}                         }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x1e                               }, { vcmpgt_oqss k5{k7},xmm29,DWORD [rcx]                         }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1e }, { vcmpgt_oqss k5{k7},xmm29,DWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x1e                         }, { vcmpgt_oqss k5{k7},xmm29,DWORD [rdx+0x1fc]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x1e       }, { vcmpgt_oqss k5{k7},xmm29,DWORD [rdx+0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x1e                         }, { vcmpgt_oqss k5{k7},xmm29,DWORD [rdx-0x200]                   }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x1e       }, { vcmpgt_oqss k5{k7},xmm29,DWORD [rdx-0x204]                   }
-testcase	{ 0x62, 0x91, 0x16, 0x07, 0xc2, 0xec, 0x1f                               }, { vcmptrue_usss k5{k7},xmm29,xmm28                             }
-testcase	{ 0x62, 0x91, 0x16, 0x17, 0xc2, 0xec, 0x1f                               }, { vcmptrue_usss k5{k7},xmm29,xmm28,{sae}                       }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x29, 0x1f                               }, { vcmptrue_usss k5{k7},xmm29,DWORD [rcx]                       }
-testcase	{ 0x62, 0xb1, 0x16, 0x07, 0xc2, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x1f }, { vcmptrue_usss k5{k7},xmm29,DWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x7f, 0x1f                         }, { vcmptrue_usss k5{k7},xmm29,DWORD [rdx+0x1fc]                 }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x1f       }, { vcmptrue_usss k5{k7},xmm29,DWORD [rdx+0x200]                 }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0x6a, 0x80, 0x1f                         }, { vcmptrue_usss k5{k7},xmm29,DWORD [rdx-0x200]                 }
-testcase	{ 0x62, 0xf1, 0x16, 0x07, 0xc2, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x1f       }, { vcmptrue_usss k5{k7},xmm29,DWORD [rdx-0x204]                 }
-testcase	{ 0x62, 0x01, 0xfd, 0x08, 0x2f, 0xf5                                     }, { vcomisd xmm30,xmm29                                          }
-testcase	{ 0x62, 0x01, 0xfd, 0x18, 0x2f, 0xf5                                     }, { vcomisd xmm30,xmm29,{sae}                                    }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x2f, 0x31                                     }, { vcomisd xmm30,QWORD [rcx]                                    }
-testcase	{ 0x62, 0x21, 0xfd, 0x08, 0x2f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcomisd xmm30,QWORD [rax+r14*8+0x123]                        }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x2f, 0x72, 0x7f                               }, { vcomisd xmm30,QWORD [rdx+0x3f8]                              }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x2f, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vcomisd xmm30,QWORD [rdx+0x400]                              }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x2f, 0x72, 0x80                               }, { vcomisd xmm30,QWORD [rdx-0x400]                              }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x2f, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vcomisd xmm30,QWORD [rdx-0x408]                              }
-testcase	{ 0x62, 0x01, 0x7c, 0x08, 0x2f, 0xf5                                     }, { vcomiss xmm30,xmm29                                          }
-testcase	{ 0x62, 0x01, 0x7c, 0x18, 0x2f, 0xf5                                     }, { vcomiss xmm30,xmm29,{sae}                                    }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x2f, 0x31                                     }, { vcomiss xmm30,DWORD [rcx]                                    }
-testcase	{ 0x62, 0x21, 0x7c, 0x08, 0x2f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcomiss xmm30,DWORD [rax+r14*8+0x123]                        }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x2f, 0x72, 0x7f                               }, { vcomiss xmm30,DWORD [rdx+0x1fc]                              }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x2f, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcomiss xmm30,DWORD [rdx+0x200]                              }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x2f, 0x72, 0x80                               }, { vcomiss xmm30,DWORD [rdx-0x200]                              }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x2f, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcomiss xmm30,DWORD [rdx-0x204]                              }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x8a, 0x31                                     }, { vcompresspd ZWORD [rcx],zmm30                                }
-testcase	{ 0x62, 0x62, 0xfd, 0x4f, 0x8a, 0x31                                     }, { vcompresspd ZWORD [rcx]{k7},zmm30                            }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0x8a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcompresspd ZWORD [rax+r14*8+0x123],zmm30                    }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x8a, 0x72, 0x7f                               }, { vcompresspd ZWORD [rdx+0x3f8],zmm30                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x8a, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vcompresspd ZWORD [rdx+0x400],zmm30                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x8a, 0x72, 0x80                               }, { vcompresspd ZWORD [rdx-0x400],zmm30                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x8a, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vcompresspd ZWORD [rdx-0x408],zmm30                          }
-testcase	{ 0x62, 0x02, 0xfd, 0x48, 0x8a, 0xee                                     }, { vcompresspd zmm30,zmm29                                      }
-testcase	{ 0x62, 0x02, 0xfd, 0x4f, 0x8a, 0xee                                     }, { vcompresspd zmm30{k7},zmm29                                  }
-testcase	{ 0x62, 0x02, 0xfd, 0xcf, 0x8a, 0xee                                     }, { vcompresspd zmm30{k7}{z},zmm29                               }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x8a, 0x31                                     }, { vcompressps ZWORD [rcx],zmm30                                }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x8a, 0x31                                     }, { vcompressps ZWORD [rcx]{k7},zmm30                            }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0x8a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcompressps ZWORD [rax+r14*8+0x123],zmm30                    }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x8a, 0x72, 0x7f                               }, { vcompressps ZWORD [rdx+0x1fc],zmm30                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x8a, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcompressps ZWORD [rdx+0x200],zmm30                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x8a, 0x72, 0x80                               }, { vcompressps ZWORD [rdx-0x200],zmm30                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x8a, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcompressps ZWORD [rdx-0x204],zmm30                          }
-testcase	{ 0x62, 0x02, 0x7d, 0x48, 0x8a, 0xee                                     }, { vcompressps zmm30,zmm29                                      }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x8a, 0xee                                     }, { vcompressps zmm30{k7},zmm29                                  }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x8a, 0xee                                     }, { vcompressps zmm30{k7}{z},zmm29                               }
-testcase	{ 0x62, 0x01, 0x7e, 0x4f, 0xe6, 0xf5                                     }, { vcvtdq2pd zmm30{k7},ymm29                                    }
-testcase	{ 0x62, 0x01, 0x7e, 0xcf, 0xe6, 0xf5                                     }, { vcvtdq2pd zmm30{k7}{z},ymm29                                 }
-testcase	{ 0x62, 0x61, 0x7e, 0x4f, 0xe6, 0x31                                     }, { vcvtdq2pd zmm30{k7},YWORD [rcx]                              }
-testcase	{ 0x62, 0x21, 0x7e, 0x4f, 0xe6, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtdq2pd zmm30{k7},YWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x61, 0x7e, 0x5f, 0xe6, 0x31                                     }, { vcvtdq2pd zmm30{k7},DWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x61, 0x7e, 0x4f, 0xe6, 0x72, 0x7f                               }, { vcvtdq2pd zmm30{k7},YWORD [rdx+0xfe0]                        }
-testcase	{ 0x62, 0x61, 0x7e, 0x4f, 0xe6, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vcvtdq2pd zmm30{k7},YWORD [rdx+0x1000]                       }
-testcase	{ 0x62, 0x61, 0x7e, 0x4f, 0xe6, 0x72, 0x80                               }, { vcvtdq2pd zmm30{k7},YWORD [rdx-0x1000]                       }
-testcase	{ 0x62, 0x61, 0x7e, 0x4f, 0xe6, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vcvtdq2pd zmm30{k7},YWORD [rdx-0x1020]                       }
-testcase	{ 0x62, 0x61, 0x7e, 0x5f, 0xe6, 0x72, 0x7f                               }, { vcvtdq2pd zmm30{k7},DWORD [rdx+0x1fc]{1to8}                  }
-testcase	{ 0x62, 0x61, 0x7e, 0x5f, 0xe6, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcvtdq2pd zmm30{k7},DWORD [rdx+0x200]{1to8}                  }
-testcase	{ 0x62, 0x61, 0x7e, 0x5f, 0xe6, 0x72, 0x80                               }, { vcvtdq2pd zmm30{k7},DWORD [rdx-0x200]{1to8}                  }
-testcase	{ 0x62, 0x61, 0x7e, 0x5f, 0xe6, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtdq2pd zmm30{k7},DWORD [rdx-0x204]{1to8}                  }
-testcase	{ 0x62, 0x01, 0x7c, 0x48, 0x5b, 0xf5                                     }, { vcvtdq2ps zmm30,zmm29                                        }
-testcase	{ 0x62, 0x01, 0x7c, 0x4f, 0x5b, 0xf5                                     }, { vcvtdq2ps zmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x01, 0x7c, 0xcf, 0x5b, 0xf5                                     }, { vcvtdq2ps zmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x01, 0x7c, 0x18, 0x5b, 0xf5                                     }, { vcvtdq2ps zmm30,zmm29,{rn-sae}                               }
-testcase	{ 0x62, 0x01, 0x7c, 0x58, 0x5b, 0xf5                                     }, { vcvtdq2ps zmm30,zmm29,{ru-sae}                               }
-testcase	{ 0x62, 0x01, 0x7c, 0x38, 0x5b, 0xf5                                     }, { vcvtdq2ps zmm30,zmm29,{rd-sae}                               }
-testcase	{ 0x62, 0x01, 0x7c, 0x78, 0x5b, 0xf5                                     }, { vcvtdq2ps zmm30,zmm29,{rz-sae}                               }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x5b, 0x31                                     }, { vcvtdq2ps zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x21, 0x7c, 0x48, 0x5b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtdq2ps zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x5b, 0x31                                     }, { vcvtdq2ps zmm30,DWORD [rcx]{1to16}                           }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x5b, 0x72, 0x7f                               }, { vcvtdq2ps zmm30,ZWORD [rdx+0x1fc0]                           }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x5b, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vcvtdq2ps zmm30,ZWORD [rdx+0x2000]                           }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x5b, 0x72, 0x80                               }, { vcvtdq2ps zmm30,ZWORD [rdx-0x2000]                           }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x5b, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vcvtdq2ps zmm30,ZWORD [rdx-0x2040]                           }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x5b, 0x72, 0x7f                               }, { vcvtdq2ps zmm30,DWORD [rdx+0x1fc]{1to16}                     }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x5b, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcvtdq2ps zmm30,DWORD [rdx+0x200]{1to16}                     }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x5b, 0x72, 0x80                               }, { vcvtdq2ps zmm30,DWORD [rdx-0x200]{1to16}                     }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x5b, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtdq2ps zmm30,DWORD [rdx-0x204]{1to16}                     }
-testcase	{ 0x62, 0x01, 0xff, 0x4f, 0xe6, 0xf5                                     }, { vcvtpd2dq ymm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x01, 0xff, 0xcf, 0xe6, 0xf5                                     }, { vcvtpd2dq ymm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x01, 0xff, 0x1f, 0xe6, 0xf5                                     }, { vcvtpd2dq ymm30{k7},zmm29,{rn-sae}                           }
-testcase	{ 0x62, 0x01, 0xff, 0x5f, 0xe6, 0xf5                                     }, { vcvtpd2dq ymm30{k7},zmm29,{ru-sae}                           }
-testcase	{ 0x62, 0x01, 0xff, 0x3f, 0xe6, 0xf5                                     }, { vcvtpd2dq ymm30{k7},zmm29,{rd-sae}                           }
-testcase	{ 0x62, 0x01, 0xff, 0x7f, 0xe6, 0xf5                                     }, { vcvtpd2dq ymm30{k7},zmm29,{rz-sae}                           }
-testcase	{ 0x62, 0x61, 0xff, 0x4f, 0xe6, 0x31                                     }, { vcvtpd2dq ymm30{k7},ZWORD [rcx]                              }
-testcase	{ 0x62, 0x21, 0xff, 0x4f, 0xe6, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtpd2dq ymm30{k7},ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x61, 0xff, 0x5f, 0xe6, 0x31                                     }, { vcvtpd2dq ymm30{k7},QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x61, 0xff, 0x4f, 0xe6, 0x72, 0x7f                               }, { vcvtpd2dq ymm30{k7},ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x61, 0xff, 0x4f, 0xe6, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vcvtpd2dq ymm30{k7},ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x61, 0xff, 0x4f, 0xe6, 0x72, 0x80                               }, { vcvtpd2dq ymm30{k7},ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x61, 0xff, 0x4f, 0xe6, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vcvtpd2dq ymm30{k7},ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x61, 0xff, 0x5f, 0xe6, 0x72, 0x7f                               }, { vcvtpd2dq ymm30{k7},QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0x61, 0xff, 0x5f, 0xe6, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vcvtpd2dq ymm30{k7},QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0x61, 0xff, 0x5f, 0xe6, 0x72, 0x80                               }, { vcvtpd2dq ymm30{k7},QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0x61, 0xff, 0x5f, 0xe6, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vcvtpd2dq ymm30{k7},QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x01, 0xfd, 0x4f, 0x5a, 0xf5                                     }, { vcvtpd2ps ymm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x01, 0xfd, 0xcf, 0x5a, 0xf5                                     }, { vcvtpd2ps ymm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x01, 0xfd, 0x1f, 0x5a, 0xf5                                     }, { vcvtpd2ps ymm30{k7},zmm29,{rn-sae}                           }
-testcase	{ 0x62, 0x01, 0xfd, 0x5f, 0x5a, 0xf5                                     }, { vcvtpd2ps ymm30{k7},zmm29,{ru-sae}                           }
-testcase	{ 0x62, 0x01, 0xfd, 0x3f, 0x5a, 0xf5                                     }, { vcvtpd2ps ymm30{k7},zmm29,{rd-sae}                           }
-testcase	{ 0x62, 0x01, 0xfd, 0x7f, 0x5a, 0xf5                                     }, { vcvtpd2ps ymm30{k7},zmm29,{rz-sae}                           }
-testcase	{ 0x62, 0x61, 0xfd, 0x4f, 0x5a, 0x31                                     }, { vcvtpd2ps ymm30{k7},ZWORD [rcx]                              }
-testcase	{ 0x62, 0x21, 0xfd, 0x4f, 0x5a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtpd2ps ymm30{k7},ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x61, 0xfd, 0x5f, 0x5a, 0x31                                     }, { vcvtpd2ps ymm30{k7},QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x61, 0xfd, 0x4f, 0x5a, 0x72, 0x7f                               }, { vcvtpd2ps ymm30{k7},ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x61, 0xfd, 0x4f, 0x5a, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vcvtpd2ps ymm30{k7},ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x61, 0xfd, 0x4f, 0x5a, 0x72, 0x80                               }, { vcvtpd2ps ymm30{k7},ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x61, 0xfd, 0x4f, 0x5a, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vcvtpd2ps ymm30{k7},ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x61, 0xfd, 0x5f, 0x5a, 0x72, 0x7f                               }, { vcvtpd2ps ymm30{k7},QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0x61, 0xfd, 0x5f, 0x5a, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vcvtpd2ps ymm30{k7},QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0x61, 0xfd, 0x5f, 0x5a, 0x72, 0x80                               }, { vcvtpd2ps ymm30{k7},QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0x61, 0xfd, 0x5f, 0x5a, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vcvtpd2ps ymm30{k7},QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x01, 0xfc, 0x4f, 0x79, 0xf5                                     }, { vcvtpd2udq ymm30{k7},zmm29                                   }
-testcase	{ 0x62, 0x01, 0xfc, 0xcf, 0x79, 0xf5                                     }, { vcvtpd2udq ymm30{k7}{z},zmm29                                }
-testcase	{ 0x62, 0x01, 0xfc, 0x1f, 0x79, 0xf5                                     }, { vcvtpd2udq ymm30{k7},zmm29,{rn-sae}                          }
-testcase	{ 0x62, 0x01, 0xfc, 0x5f, 0x79, 0xf5                                     }, { vcvtpd2udq ymm30{k7},zmm29,{ru-sae}                          }
-testcase	{ 0x62, 0x01, 0xfc, 0x3f, 0x79, 0xf5                                     }, { vcvtpd2udq ymm30{k7},zmm29,{rd-sae}                          }
-testcase	{ 0x62, 0x01, 0xfc, 0x7f, 0x79, 0xf5                                     }, { vcvtpd2udq ymm30{k7},zmm29,{rz-sae}                          }
-testcase	{ 0x62, 0x61, 0xfc, 0x4f, 0x79, 0x31                                     }, { vcvtpd2udq ymm30{k7},ZWORD [rcx]                             }
-testcase	{ 0x62, 0x21, 0xfc, 0x4f, 0x79, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtpd2udq ymm30{k7},ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0x61, 0xfc, 0x5f, 0x79, 0x31                                     }, { vcvtpd2udq ymm30{k7},QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0x61, 0xfc, 0x4f, 0x79, 0x72, 0x7f                               }, { vcvtpd2udq ymm30{k7},ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0x61, 0xfc, 0x4f, 0x79, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vcvtpd2udq ymm30{k7},ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0x61, 0xfc, 0x4f, 0x79, 0x72, 0x80                               }, { vcvtpd2udq ymm30{k7},ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0x61, 0xfc, 0x4f, 0x79, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vcvtpd2udq ymm30{k7},ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0x61, 0xfc, 0x5f, 0x79, 0x72, 0x7f                               }, { vcvtpd2udq ymm30{k7},QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0x61, 0xfc, 0x5f, 0x79, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vcvtpd2udq ymm30{k7},QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0x61, 0xfc, 0x5f, 0x79, 0x72, 0x80                               }, { vcvtpd2udq ymm30{k7},QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0x61, 0xfc, 0x5f, 0x79, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vcvtpd2udq ymm30{k7},QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x13, 0xf5                                     }, { vcvtph2ps zmm30{k7},ymm29                                    }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x13, 0xf5                                     }, { vcvtph2ps zmm30{k7}{z},ymm29                                 }
-testcase	{ 0x62, 0x02, 0x7d, 0x1f, 0x13, 0xf5                                     }, { vcvtph2ps zmm30{k7},ymm29,{sae}                              }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x13, 0x31                                     }, { vcvtph2ps zmm30{k7},YWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x7d, 0x4f, 0x13, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtph2ps zmm30{k7},YWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x13, 0x72, 0x7f                               }, { vcvtph2ps zmm30{k7},YWORD [rdx+0xfe0]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x13, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vcvtph2ps zmm30{k7},YWORD [rdx+0x1000]                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x13, 0x72, 0x80                               }, { vcvtph2ps zmm30{k7},YWORD [rdx-0x1000]                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x13, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vcvtph2ps zmm30{k7},YWORD [rdx-0x1020]                       }
-testcase	{ 0x62, 0x01, 0x7d, 0x48, 0x5b, 0xf5                                     }, { vcvtps2dq zmm30,zmm29                                        }
-testcase	{ 0x62, 0x01, 0x7d, 0x4f, 0x5b, 0xf5                                     }, { vcvtps2dq zmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x01, 0x7d, 0xcf, 0x5b, 0xf5                                     }, { vcvtps2dq zmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x01, 0x7d, 0x18, 0x5b, 0xf5                                     }, { vcvtps2dq zmm30,zmm29,{rn-sae}                               }
-testcase	{ 0x62, 0x01, 0x7d, 0x58, 0x5b, 0xf5                                     }, { vcvtps2dq zmm30,zmm29,{ru-sae}                               }
-testcase	{ 0x62, 0x01, 0x7d, 0x38, 0x5b, 0xf5                                     }, { vcvtps2dq zmm30,zmm29,{rd-sae}                               }
-testcase	{ 0x62, 0x01, 0x7d, 0x78, 0x5b, 0xf5                                     }, { vcvtps2dq zmm30,zmm29,{rz-sae}                               }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x5b, 0x31                                     }, { vcvtps2dq zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x21, 0x7d, 0x48, 0x5b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtps2dq zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x61, 0x7d, 0x58, 0x5b, 0x31                                     }, { vcvtps2dq zmm30,DWORD [rcx]{1to16}                           }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x5b, 0x72, 0x7f                               }, { vcvtps2dq zmm30,ZWORD [rdx+0x1fc0]                           }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x5b, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vcvtps2dq zmm30,ZWORD [rdx+0x2000]                           }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x5b, 0x72, 0x80                               }, { vcvtps2dq zmm30,ZWORD [rdx-0x2000]                           }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x5b, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vcvtps2dq zmm30,ZWORD [rdx-0x2040]                           }
-testcase	{ 0x62, 0x61, 0x7d, 0x58, 0x5b, 0x72, 0x7f                               }, { vcvtps2dq zmm30,DWORD [rdx+0x1fc]{1to16}                     }
-testcase	{ 0x62, 0x61, 0x7d, 0x58, 0x5b, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcvtps2dq zmm30,DWORD [rdx+0x200]{1to16}                     }
-testcase	{ 0x62, 0x61, 0x7d, 0x58, 0x5b, 0x72, 0x80                               }, { vcvtps2dq zmm30,DWORD [rdx-0x200]{1to16}                     }
-testcase	{ 0x62, 0x61, 0x7d, 0x58, 0x5b, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtps2dq zmm30,DWORD [rdx-0x204]{1to16}                     }
-testcase	{ 0x62, 0x01, 0x7c, 0x4f, 0x5a, 0xf5                                     }, { vcvtps2pd zmm30{k7},ymm29                                    }
-testcase	{ 0x62, 0x01, 0x7c, 0xcf, 0x5a, 0xf5                                     }, { vcvtps2pd zmm30{k7}{z},ymm29                                 }
-testcase	{ 0x62, 0x01, 0x7c, 0x1f, 0x5a, 0xf5                                     }, { vcvtps2pd zmm30{k7},ymm29,{sae}                              }
-testcase	{ 0x62, 0x61, 0x7c, 0x4f, 0x5a, 0x31                                     }, { vcvtps2pd zmm30{k7},YWORD [rcx]                              }
-testcase	{ 0x62, 0x21, 0x7c, 0x4f, 0x5a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtps2pd zmm30{k7},YWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x61, 0x7c, 0x5f, 0x5a, 0x31                                     }, { vcvtps2pd zmm30{k7},DWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x61, 0x7c, 0x4f, 0x5a, 0x72, 0x7f                               }, { vcvtps2pd zmm30{k7},YWORD [rdx+0xfe0]                        }
-testcase	{ 0x62, 0x61, 0x7c, 0x4f, 0x5a, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vcvtps2pd zmm30{k7},YWORD [rdx+0x1000]                       }
-testcase	{ 0x62, 0x61, 0x7c, 0x4f, 0x5a, 0x72, 0x80                               }, { vcvtps2pd zmm30{k7},YWORD [rdx-0x1000]                       }
-testcase	{ 0x62, 0x61, 0x7c, 0x4f, 0x5a, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vcvtps2pd zmm30{k7},YWORD [rdx-0x1020]                       }
-testcase	{ 0x62, 0x61, 0x7c, 0x5f, 0x5a, 0x72, 0x7f                               }, { vcvtps2pd zmm30{k7},DWORD [rdx+0x1fc]{1to8}                  }
-testcase	{ 0x62, 0x61, 0x7c, 0x5f, 0x5a, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcvtps2pd zmm30{k7},DWORD [rdx+0x200]{1to8}                  }
-testcase	{ 0x62, 0x61, 0x7c, 0x5f, 0x5a, 0x72, 0x80                               }, { vcvtps2pd zmm30{k7},DWORD [rdx-0x200]{1to8}                  }
-testcase	{ 0x62, 0x61, 0x7c, 0x5f, 0x5a, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtps2pd zmm30{k7},DWORD [rdx-0x204]{1to8}                  }
-testcase	{ 0x62, 0x03, 0x7d, 0x4f, 0x1d, 0xee, 0xab                               }, { vcvtps2ph ymm30{k7},zmm29,0xab                               }
-testcase	{ 0x62, 0x03, 0x7d, 0xcf, 0x1d, 0xee, 0xab                               }, { vcvtps2ph ymm30{k7}{z},zmm29,0xab                            }
-testcase	{ 0x62, 0x03, 0x7d, 0x1f, 0x1d, 0xee, 0xab                               }, { vcvtps2ph ymm30{k7},zmm29,{sae},0xab                         }
-testcase	{ 0x62, 0x03, 0x7d, 0x4f, 0x1d, 0xee, 0x7b                               }, { vcvtps2ph ymm30{k7},zmm29,0x7b                               }
-testcase	{ 0x62, 0x03, 0x7d, 0x1f, 0x1d, 0xee, 0x7b                               }, { vcvtps2ph ymm30{k7},zmm29,{sae},0x7b                         }
-testcase	{ 0x62, 0x01, 0x7c, 0x48, 0x79, 0xf5                                     }, { vcvtps2udq zmm30,zmm29                                       }
-testcase	{ 0x62, 0x01, 0x7c, 0x4f, 0x79, 0xf5                                     }, { vcvtps2udq zmm30{k7},zmm29                                   }
-testcase	{ 0x62, 0x01, 0x7c, 0xcf, 0x79, 0xf5                                     }, { vcvtps2udq zmm30{k7}{z},zmm29                                }
-testcase	{ 0x62, 0x01, 0x7c, 0x18, 0x79, 0xf5                                     }, { vcvtps2udq zmm30,zmm29,{rn-sae}                              }
-testcase	{ 0x62, 0x01, 0x7c, 0x58, 0x79, 0xf5                                     }, { vcvtps2udq zmm30,zmm29,{ru-sae}                              }
-testcase	{ 0x62, 0x01, 0x7c, 0x38, 0x79, 0xf5                                     }, { vcvtps2udq zmm30,zmm29,{rd-sae}                              }
-testcase	{ 0x62, 0x01, 0x7c, 0x78, 0x79, 0xf5                                     }, { vcvtps2udq zmm30,zmm29,{rz-sae}                              }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x79, 0x31                                     }, { vcvtps2udq zmm30,ZWORD [rcx]                                 }
-testcase	{ 0x62, 0x21, 0x7c, 0x48, 0x79, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtps2udq zmm30,ZWORD [rax+r14*8+0x123]                     }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x79, 0x31                                     }, { vcvtps2udq zmm30,DWORD [rcx]{1to16}                          }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x79, 0x72, 0x7f                               }, { vcvtps2udq zmm30,ZWORD [rdx+0x1fc0]                          }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x79, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vcvtps2udq zmm30,ZWORD [rdx+0x2000]                          }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x79, 0x72, 0x80                               }, { vcvtps2udq zmm30,ZWORD [rdx-0x2000]                          }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x79, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vcvtps2udq zmm30,ZWORD [rdx-0x2040]                          }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x79, 0x72, 0x7f                               }, { vcvtps2udq zmm30,DWORD [rdx+0x1fc]{1to16}                    }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x79, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcvtps2udq zmm30,DWORD [rdx+0x200]{1to16}                    }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x79, 0x72, 0x80                               }, { vcvtps2udq zmm30,DWORD [rdx-0x200]{1to16}                    }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x79, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtps2udq zmm30,DWORD [rdx-0x204]{1to16}                    }
-testcase	{ 0x62, 0x91, 0x7f, 0x18, 0x2d, 0xc6                                     }, { vcvtsd2si eax,xmm30,{rn-sae}                                 }
-testcase	{ 0x62, 0x91, 0x7f, 0x58, 0x2d, 0xc6                                     }, { vcvtsd2si eax,xmm30,{ru-sae}                                 }
-testcase	{ 0x62, 0x91, 0x7f, 0x38, 0x2d, 0xc6                                     }, { vcvtsd2si eax,xmm30,{rd-sae}                                 }
-testcase	{ 0x62, 0x91, 0x7f, 0x78, 0x2d, 0xc6                                     }, { vcvtsd2si eax,xmm30,{rz-sae}                                 }
-testcase	{ 0x62, 0x91, 0x7f, 0x18, 0x2d, 0xee                                     }, { vcvtsd2si ebp,xmm30,{rn-sae}                                 }
-testcase	{ 0x62, 0x91, 0x7f, 0x58, 0x2d, 0xee                                     }, { vcvtsd2si ebp,xmm30,{ru-sae}                                 }
-testcase	{ 0x62, 0x91, 0x7f, 0x38, 0x2d, 0xee                                     }, { vcvtsd2si ebp,xmm30,{rd-sae}                                 }
-testcase	{ 0x62, 0x91, 0x7f, 0x78, 0x2d, 0xee                                     }, { vcvtsd2si ebp,xmm30,{rz-sae}                                 }
-testcase	{ 0x62, 0x11, 0x7f, 0x18, 0x2d, 0xee                                     }, { vcvtsd2si r13d,xmm30,{rn-sae}                                }
-testcase	{ 0x62, 0x11, 0x7f, 0x58, 0x2d, 0xee                                     }, { vcvtsd2si r13d,xmm30,{ru-sae}                                }
-testcase	{ 0x62, 0x11, 0x7f, 0x38, 0x2d, 0xee                                     }, { vcvtsd2si r13d,xmm30,{rd-sae}                                }
-testcase	{ 0x62, 0x11, 0x7f, 0x78, 0x2d, 0xee                                     }, { vcvtsd2si r13d,xmm30,{rz-sae}                                }
-testcase	{ 0x62, 0x91, 0xff, 0x18, 0x2d, 0xc6                                     }, { vcvtsd2si rax,xmm30,{rn-sae}                                 }
-testcase	{ 0x62, 0x91, 0xff, 0x58, 0x2d, 0xc6                                     }, { vcvtsd2si rax,xmm30,{ru-sae}                                 }
-testcase	{ 0x62, 0x91, 0xff, 0x38, 0x2d, 0xc6                                     }, { vcvtsd2si rax,xmm30,{rd-sae}                                 }
-testcase	{ 0x62, 0x91, 0xff, 0x78, 0x2d, 0xc6                                     }, { vcvtsd2si rax,xmm30,{rz-sae}                                 }
-testcase	{ 0x62, 0x11, 0xff, 0x18, 0x2d, 0xc6                                     }, { vcvtsd2si r8,xmm30,{rn-sae}                                  }
-testcase	{ 0x62, 0x11, 0xff, 0x58, 0x2d, 0xc6                                     }, { vcvtsd2si r8,xmm30,{ru-sae}                                  }
-testcase	{ 0x62, 0x11, 0xff, 0x38, 0x2d, 0xc6                                     }, { vcvtsd2si r8,xmm30,{rd-sae}                                  }
-testcase	{ 0x62, 0x11, 0xff, 0x78, 0x2d, 0xc6                                     }, { vcvtsd2si r8,xmm30,{rz-sae}                                  }
-testcase	{ 0x62, 0x01, 0x97, 0x07, 0x5a, 0xf4                                     }, { vcvtsd2ss xmm30{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x97, 0x87, 0x5a, 0xf4                                     }, { vcvtsd2ss xmm30{k7}{z},xmm29,xmm28                           }
-testcase	{ 0x62, 0x01, 0x97, 0x17, 0x5a, 0xf4                                     }, { vcvtsd2ss xmm30{k7},xmm29,xmm28,{rn-sae}                     }
-testcase	{ 0x62, 0x01, 0x97, 0x57, 0x5a, 0xf4                                     }, { vcvtsd2ss xmm30{k7},xmm29,xmm28,{ru-sae}                     }
-testcase	{ 0x62, 0x01, 0x97, 0x37, 0x5a, 0xf4                                     }, { vcvtsd2ss xmm30{k7},xmm29,xmm28,{rd-sae}                     }
-testcase	{ 0x62, 0x01, 0x97, 0x77, 0x5a, 0xf4                                     }, { vcvtsd2ss xmm30{k7},xmm29,xmm28,{rz-sae}                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5a, 0x31                                     }, { vcvtsd2ss xmm30{k7},xmm29,QWORD [rcx]                        }
-testcase	{ 0x62, 0x21, 0x97, 0x07, 0x5a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtsd2ss xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5a, 0x72, 0x7f                               }, { vcvtsd2ss xmm30{k7},xmm29,QWORD [rdx+0x3f8]                  }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5a, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vcvtsd2ss xmm30{k7},xmm29,QWORD [rdx+0x400]                  }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5a, 0x72, 0x80                               }, { vcvtsd2ss xmm30{k7},xmm29,QWORD [rdx-0x400]                  }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5a, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vcvtsd2ss xmm30{k7},xmm29,QWORD [rdx-0x408]                  }
-testcase	{ 0x62, 0x61, 0x17, 0x00, 0x2a, 0xf0                                     }, { vcvtsi2sd xmm30,xmm29,eax                                    }
-testcase	{ 0x62, 0x61, 0x17, 0x00, 0x2a, 0xf5                                     }, { vcvtsi2sd xmm30,xmm29,ebp                                    }
-testcase	{ 0x62, 0x41, 0x17, 0x00, 0x2a, 0xf5                                     }, { vcvtsi2sd xmm30,xmm29,r13d                                   }
-testcase	{ 0x62, 0x61, 0x17, 0x00, 0x2a, 0x31                                     }, { vcvtsi2sd xmm30,xmm29,DWORD [rcx]                            }
-testcase	{ 0x62, 0x21, 0x17, 0x00, 0x2a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtsi2sd xmm30,xmm29,DWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x61, 0x17, 0x00, 0x2a, 0x72, 0x7f                               }, { vcvtsi2sd xmm30,xmm29,DWORD [rdx+0x1fc]                      }
-testcase	{ 0x62, 0x61, 0x17, 0x00, 0x2a, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcvtsi2sd xmm30,xmm29,DWORD [rdx+0x200]                      }
-testcase	{ 0x62, 0x61, 0x17, 0x00, 0x2a, 0x72, 0x80                               }, { vcvtsi2sd xmm30,xmm29,DWORD [rdx-0x200]                      }
-testcase	{ 0x62, 0x61, 0x17, 0x00, 0x2a, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtsi2sd xmm30,xmm29,DWORD [rdx-0x204]                      }
-testcase	{ 0x62, 0x61, 0x97, 0x00, 0x2a, 0xf0                                     }, { vcvtsi2sd xmm30,xmm29,rax                                    }
-testcase	{ 0x62, 0x61, 0x97, 0x10, 0x2a, 0xf0                                     }, { vcvtsi2sd xmm30,xmm29,{rn-sae},rax                           }
-testcase	{ 0x62, 0x61, 0x97, 0x50, 0x2a, 0xf0                                     }, { vcvtsi2sd xmm30,xmm29,{ru-sae},rax                           }
-testcase	{ 0x62, 0x61, 0x97, 0x30, 0x2a, 0xf0                                     }, { vcvtsi2sd xmm30,xmm29,{rd-sae},rax                           }
-testcase	{ 0x62, 0x61, 0x97, 0x70, 0x2a, 0xf0                                     }, { vcvtsi2sd xmm30,xmm29,{rz-sae},rax                           }
-testcase	{ 0x62, 0x41, 0x97, 0x00, 0x2a, 0xf0                                     }, { vcvtsi2sd xmm30,xmm29,r8                                     }
-testcase	{ 0x62, 0x41, 0x97, 0x10, 0x2a, 0xf0                                     }, { vcvtsi2sd xmm30,xmm29,{rn-sae},r8                            }
-testcase	{ 0x62, 0x41, 0x97, 0x50, 0x2a, 0xf0                                     }, { vcvtsi2sd xmm30,xmm29,{ru-sae},r8                            }
-testcase	{ 0x62, 0x41, 0x97, 0x30, 0x2a, 0xf0                                     }, { vcvtsi2sd xmm30,xmm29,{rd-sae},r8                            }
-testcase	{ 0x62, 0x41, 0x97, 0x70, 0x2a, 0xf0                                     }, { vcvtsi2sd xmm30,xmm29,{rz-sae},r8                            }
-testcase	{ 0x62, 0x61, 0x97, 0x00, 0x2a, 0x31                                     }, { vcvtsi2sd xmm30,xmm29,QWORD [rcx]                            }
-testcase	{ 0x62, 0x21, 0x97, 0x00, 0x2a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtsi2sd xmm30,xmm29,QWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x61, 0x97, 0x00, 0x2a, 0x72, 0x7f                               }, { vcvtsi2sd xmm30,xmm29,QWORD [rdx+0x3f8]                      }
-testcase	{ 0x62, 0x61, 0x97, 0x00, 0x2a, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vcvtsi2sd xmm30,xmm29,QWORD [rdx+0x400]                      }
-testcase	{ 0x62, 0x61, 0x97, 0x00, 0x2a, 0x72, 0x80                               }, { vcvtsi2sd xmm30,xmm29,QWORD [rdx-0x400]                      }
-testcase	{ 0x62, 0x61, 0x97, 0x00, 0x2a, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vcvtsi2sd xmm30,xmm29,QWORD [rdx-0x408]                      }
-testcase	{ 0x62, 0x61, 0x16, 0x00, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,eax                                    }
-testcase	{ 0x62, 0x61, 0x16, 0x10, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,{rn-sae},eax                           }
-testcase	{ 0x62, 0x61, 0x16, 0x50, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,{ru-sae},eax                           }
-testcase	{ 0x62, 0x61, 0x16, 0x30, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,{rd-sae},eax                           }
-testcase	{ 0x62, 0x61, 0x16, 0x70, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,{rz-sae},eax                           }
-testcase	{ 0x62, 0x61, 0x16, 0x00, 0x2a, 0xf5                                     }, { vcvtsi2ss xmm30,xmm29,ebp                                    }
-testcase	{ 0x62, 0x61, 0x16, 0x10, 0x2a, 0xf5                                     }, { vcvtsi2ss xmm30,xmm29,{rn-sae},ebp                           }
-testcase	{ 0x62, 0x61, 0x16, 0x50, 0x2a, 0xf5                                     }, { vcvtsi2ss xmm30,xmm29,{ru-sae},ebp                           }
-testcase	{ 0x62, 0x61, 0x16, 0x30, 0x2a, 0xf5                                     }, { vcvtsi2ss xmm30,xmm29,{rd-sae},ebp                           }
-testcase	{ 0x62, 0x61, 0x16, 0x70, 0x2a, 0xf5                                     }, { vcvtsi2ss xmm30,xmm29,{rz-sae},ebp                           }
-testcase	{ 0x62, 0x41, 0x16, 0x00, 0x2a, 0xf5                                     }, { vcvtsi2ss xmm30,xmm29,r13d                                   }
-testcase	{ 0x62, 0x41, 0x16, 0x10, 0x2a, 0xf5                                     }, { vcvtsi2ss xmm30,xmm29,{rn-sae},r13d                          }
-testcase	{ 0x62, 0x41, 0x16, 0x50, 0x2a, 0xf5                                     }, { vcvtsi2ss xmm30,xmm29,{ru-sae},r13d                          }
-testcase	{ 0x62, 0x41, 0x16, 0x30, 0x2a, 0xf5                                     }, { vcvtsi2ss xmm30,xmm29,{rd-sae},r13d                          }
-testcase	{ 0x62, 0x41, 0x16, 0x70, 0x2a, 0xf5                                     }, { vcvtsi2ss xmm30,xmm29,{rz-sae},r13d                          }
-testcase	{ 0x62, 0x61, 0x16, 0x00, 0x2a, 0x31                                     }, { vcvtsi2ss xmm30,xmm29,DWORD [rcx]                            }
-testcase	{ 0x62, 0x21, 0x16, 0x00, 0x2a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtsi2ss xmm30,xmm29,DWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x61, 0x16, 0x00, 0x2a, 0x72, 0x7f                               }, { vcvtsi2ss xmm30,xmm29,DWORD [rdx+0x1fc]                      }
-testcase	{ 0x62, 0x61, 0x16, 0x00, 0x2a, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcvtsi2ss xmm30,xmm29,DWORD [rdx+0x200]                      }
-testcase	{ 0x62, 0x61, 0x16, 0x00, 0x2a, 0x72, 0x80                               }, { vcvtsi2ss xmm30,xmm29,DWORD [rdx-0x200]                      }
-testcase	{ 0x62, 0x61, 0x16, 0x00, 0x2a, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtsi2ss xmm30,xmm29,DWORD [rdx-0x204]                      }
-testcase	{ 0x62, 0x61, 0x96, 0x00, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,rax                                    }
-testcase	{ 0x62, 0x61, 0x96, 0x10, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,{rn-sae},rax                           }
-testcase	{ 0x62, 0x61, 0x96, 0x50, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,{ru-sae},rax                           }
-testcase	{ 0x62, 0x61, 0x96, 0x30, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,{rd-sae},rax                           }
-testcase	{ 0x62, 0x61, 0x96, 0x70, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,{rz-sae},rax                           }
-testcase	{ 0x62, 0x41, 0x96, 0x00, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,r8                                     }
-testcase	{ 0x62, 0x41, 0x96, 0x10, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,{rn-sae},r8                            }
-testcase	{ 0x62, 0x41, 0x96, 0x50, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,{ru-sae},r8                            }
-testcase	{ 0x62, 0x41, 0x96, 0x30, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,{rd-sae},r8                            }
-testcase	{ 0x62, 0x41, 0x96, 0x70, 0x2a, 0xf0                                     }, { vcvtsi2ss xmm30,xmm29,{rz-sae},r8                            }
-testcase	{ 0x62, 0x61, 0x96, 0x00, 0x2a, 0x31                                     }, { vcvtsi2ss xmm30,xmm29,QWORD [rcx]                            }
-testcase	{ 0x62, 0x21, 0x96, 0x00, 0x2a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtsi2ss xmm30,xmm29,QWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x61, 0x96, 0x00, 0x2a, 0x72, 0x7f                               }, { vcvtsi2ss xmm30,xmm29,QWORD [rdx+0x3f8]                      }
-testcase	{ 0x62, 0x61, 0x96, 0x00, 0x2a, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vcvtsi2ss xmm30,xmm29,QWORD [rdx+0x400]                      }
-testcase	{ 0x62, 0x61, 0x96, 0x00, 0x2a, 0x72, 0x80                               }, { vcvtsi2ss xmm30,xmm29,QWORD [rdx-0x400]                      }
-testcase	{ 0x62, 0x61, 0x96, 0x00, 0x2a, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vcvtsi2ss xmm30,xmm29,QWORD [rdx-0x408]                      }
-testcase	{ 0x62, 0x01, 0x16, 0x07, 0x5a, 0xf4                                     }, { vcvtss2sd xmm30{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x16, 0x87, 0x5a, 0xf4                                     }, { vcvtss2sd xmm30{k7}{z},xmm29,xmm28                           }
-testcase	{ 0x62, 0x01, 0x16, 0x17, 0x5a, 0xf4                                     }, { vcvtss2sd xmm30{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5a, 0x31                                     }, { vcvtss2sd xmm30{k7},xmm29,DWORD [rcx]                        }
-testcase	{ 0x62, 0x21, 0x16, 0x07, 0x5a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtss2sd xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5a, 0x72, 0x7f                               }, { vcvtss2sd xmm30{k7},xmm29,DWORD [rdx+0x1fc]                  }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5a, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcvtss2sd xmm30{k7},xmm29,DWORD [rdx+0x200]                  }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5a, 0x72, 0x80                               }, { vcvtss2sd xmm30{k7},xmm29,DWORD [rdx-0x200]                  }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5a, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtss2sd xmm30{k7},xmm29,DWORD [rdx-0x204]                  }
-testcase	{ 0x62, 0x91, 0x7e, 0x18, 0x2d, 0xc6                                     }, { vcvtss2si eax,xmm30,{rn-sae}                                 }
-testcase	{ 0x62, 0x91, 0x7e, 0x58, 0x2d, 0xc6                                     }, { vcvtss2si eax,xmm30,{ru-sae}                                 }
-testcase	{ 0x62, 0x91, 0x7e, 0x38, 0x2d, 0xc6                                     }, { vcvtss2si eax,xmm30,{rd-sae}                                 }
-testcase	{ 0x62, 0x91, 0x7e, 0x78, 0x2d, 0xc6                                     }, { vcvtss2si eax,xmm30,{rz-sae}                                 }
-testcase	{ 0x62, 0x91, 0x7e, 0x18, 0x2d, 0xee                                     }, { vcvtss2si ebp,xmm30,{rn-sae}                                 }
-testcase	{ 0x62, 0x91, 0x7e, 0x58, 0x2d, 0xee                                     }, { vcvtss2si ebp,xmm30,{ru-sae}                                 }
-testcase	{ 0x62, 0x91, 0x7e, 0x38, 0x2d, 0xee                                     }, { vcvtss2si ebp,xmm30,{rd-sae}                                 }
-testcase	{ 0x62, 0x91, 0x7e, 0x78, 0x2d, 0xee                                     }, { vcvtss2si ebp,xmm30,{rz-sae}                                 }
-testcase	{ 0x62, 0x11, 0x7e, 0x18, 0x2d, 0xee                                     }, { vcvtss2si r13d,xmm30,{rn-sae}                                }
-testcase	{ 0x62, 0x11, 0x7e, 0x58, 0x2d, 0xee                                     }, { vcvtss2si r13d,xmm30,{ru-sae}                                }
-testcase	{ 0x62, 0x11, 0x7e, 0x38, 0x2d, 0xee                                     }, { vcvtss2si r13d,xmm30,{rd-sae}                                }
-testcase	{ 0x62, 0x11, 0x7e, 0x78, 0x2d, 0xee                                     }, { vcvtss2si r13d,xmm30,{rz-sae}                                }
-testcase	{ 0x62, 0x91, 0xfe, 0x18, 0x2d, 0xc6                                     }, { vcvtss2si rax,xmm30,{rn-sae}                                 }
-testcase	{ 0x62, 0x91, 0xfe, 0x58, 0x2d, 0xc6                                     }, { vcvtss2si rax,xmm30,{ru-sae}                                 }
-testcase	{ 0x62, 0x91, 0xfe, 0x38, 0x2d, 0xc6                                     }, { vcvtss2si rax,xmm30,{rd-sae}                                 }
-testcase	{ 0x62, 0x91, 0xfe, 0x78, 0x2d, 0xc6                                     }, { vcvtss2si rax,xmm30,{rz-sae}                                 }
-testcase	{ 0x62, 0x11, 0xfe, 0x18, 0x2d, 0xc6                                     }, { vcvtss2si r8,xmm30,{rn-sae}                                  }
-testcase	{ 0x62, 0x11, 0xfe, 0x58, 0x2d, 0xc6                                     }, { vcvtss2si r8,xmm30,{ru-sae}                                  }
-testcase	{ 0x62, 0x11, 0xfe, 0x38, 0x2d, 0xc6                                     }, { vcvtss2si r8,xmm30,{rd-sae}                                  }
-testcase	{ 0x62, 0x11, 0xfe, 0x78, 0x2d, 0xc6                                     }, { vcvtss2si r8,xmm30,{rz-sae}                                  }
-testcase	{ 0x62, 0x01, 0xfd, 0x4f, 0xe6, 0xf5                                     }, { vcvttpd2dq ymm30{k7},zmm29                                   }
-testcase	{ 0x62, 0x01, 0xfd, 0xcf, 0xe6, 0xf5                                     }, { vcvttpd2dq ymm30{k7}{z},zmm29                                }
-testcase	{ 0x62, 0x01, 0xfd, 0x1f, 0xe6, 0xf5                                     }, { vcvttpd2dq ymm30{k7},zmm29,{sae}                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x4f, 0xe6, 0x31                                     }, { vcvttpd2dq ymm30{k7},ZWORD [rcx]                             }
-testcase	{ 0x62, 0x21, 0xfd, 0x4f, 0xe6, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvttpd2dq ymm30{k7},ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0x61, 0xfd, 0x5f, 0xe6, 0x31                                     }, { vcvttpd2dq ymm30{k7},QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0x61, 0xfd, 0x4f, 0xe6, 0x72, 0x7f                               }, { vcvttpd2dq ymm30{k7},ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0x61, 0xfd, 0x4f, 0xe6, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vcvttpd2dq ymm30{k7},ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0x61, 0xfd, 0x4f, 0xe6, 0x72, 0x80                               }, { vcvttpd2dq ymm30{k7},ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0x61, 0xfd, 0x4f, 0xe6, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vcvttpd2dq ymm30{k7},ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0x61, 0xfd, 0x5f, 0xe6, 0x72, 0x7f                               }, { vcvttpd2dq ymm30{k7},QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0x61, 0xfd, 0x5f, 0xe6, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vcvttpd2dq ymm30{k7},QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0x61, 0xfd, 0x5f, 0xe6, 0x72, 0x80                               }, { vcvttpd2dq ymm30{k7},QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0x61, 0xfd, 0x5f, 0xe6, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vcvttpd2dq ymm30{k7},QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x01, 0x7e, 0x48, 0x5b, 0xf5                                     }, { vcvttps2dq zmm30,zmm29                                       }
-testcase	{ 0x62, 0x01, 0x7e, 0x4f, 0x5b, 0xf5                                     }, { vcvttps2dq zmm30{k7},zmm29                                   }
-testcase	{ 0x62, 0x01, 0x7e, 0xcf, 0x5b, 0xf5                                     }, { vcvttps2dq zmm30{k7}{z},zmm29                                }
-testcase	{ 0x62, 0x01, 0x7e, 0x18, 0x5b, 0xf5                                     }, { vcvttps2dq zmm30,zmm29,{sae}                                 }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x5b, 0x31                                     }, { vcvttps2dq zmm30,ZWORD [rcx]                                 }
-testcase	{ 0x62, 0x21, 0x7e, 0x48, 0x5b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvttps2dq zmm30,ZWORD [rax+r14*8+0x123]                     }
-testcase	{ 0x62, 0x61, 0x7e, 0x58, 0x5b, 0x31                                     }, { vcvttps2dq zmm30,DWORD [rcx]{1to16}                          }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x5b, 0x72, 0x7f                               }, { vcvttps2dq zmm30,ZWORD [rdx+0x1fc0]                          }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x5b, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vcvttps2dq zmm30,ZWORD [rdx+0x2000]                          }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x5b, 0x72, 0x80                               }, { vcvttps2dq zmm30,ZWORD [rdx-0x2000]                          }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x5b, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vcvttps2dq zmm30,ZWORD [rdx-0x2040]                          }
-testcase	{ 0x62, 0x61, 0x7e, 0x58, 0x5b, 0x72, 0x7f                               }, { vcvttps2dq zmm30,DWORD [rdx+0x1fc]{1to16}                    }
-testcase	{ 0x62, 0x61, 0x7e, 0x58, 0x5b, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcvttps2dq zmm30,DWORD [rdx+0x200]{1to16}                    }
-testcase	{ 0x62, 0x61, 0x7e, 0x58, 0x5b, 0x72, 0x80                               }, { vcvttps2dq zmm30,DWORD [rdx-0x200]{1to16}                    }
-testcase	{ 0x62, 0x61, 0x7e, 0x58, 0x5b, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcvttps2dq zmm30,DWORD [rdx-0x204]{1to16}                    }
-testcase	{ 0x62, 0x91, 0x7f, 0x18, 0x2c, 0xc6                                     }, { vcvttsd2si eax,xmm30,{sae}                                   }
-testcase	{ 0x62, 0x91, 0x7f, 0x18, 0x2c, 0xee                                     }, { vcvttsd2si ebp,xmm30,{sae}                                   }
-testcase	{ 0x62, 0x11, 0x7f, 0x18, 0x2c, 0xee                                     }, { vcvttsd2si r13d,xmm30,{sae}                                  }
-testcase	{ 0x62, 0x91, 0xff, 0x18, 0x2c, 0xc6                                     }, { vcvttsd2si rax,xmm30,{sae}                                   }
-testcase	{ 0x62, 0x11, 0xff, 0x18, 0x2c, 0xc6                                     }, { vcvttsd2si r8,xmm30,{sae}                                    }
-testcase	{ 0x62, 0x91, 0x7e, 0x18, 0x2c, 0xc6                                     }, { vcvttss2si eax,xmm30,{sae}                                   }
-testcase	{ 0x62, 0x91, 0x7e, 0x18, 0x2c, 0xee                                     }, { vcvttss2si ebp,xmm30,{sae}                                   }
-testcase	{ 0x62, 0x11, 0x7e, 0x18, 0x2c, 0xee                                     }, { vcvttss2si r13d,xmm30,{sae}                                  }
-testcase	{ 0x62, 0x91, 0xfe, 0x18, 0x2c, 0xc6                                     }, { vcvttss2si rax,xmm30,{sae}                                   }
-testcase	{ 0x62, 0x11, 0xfe, 0x18, 0x2c, 0xc6                                     }, { vcvttss2si r8,xmm30,{sae}                                    }
-testcase	{ 0x62, 0x01, 0x7e, 0x4f, 0x7a, 0xf5                                     }, { vcvtudq2pd zmm30{k7},ymm29                                   }
-testcase	{ 0x62, 0x01, 0x7e, 0xcf, 0x7a, 0xf5                                     }, { vcvtudq2pd zmm30{k7}{z},ymm29                                }
-testcase	{ 0x62, 0x61, 0x7e, 0x4f, 0x7a, 0x31                                     }, { vcvtudq2pd zmm30{k7},YWORD [rcx]                             }
-testcase	{ 0x62, 0x21, 0x7e, 0x4f, 0x7a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtudq2pd zmm30{k7},YWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0x61, 0x7e, 0x5f, 0x7a, 0x31                                     }, { vcvtudq2pd zmm30{k7},DWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0x61, 0x7e, 0x4f, 0x7a, 0x72, 0x7f                               }, { vcvtudq2pd zmm30{k7},YWORD [rdx+0xfe0]                       }
-testcase	{ 0x62, 0x61, 0x7e, 0x4f, 0x7a, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vcvtudq2pd zmm30{k7},YWORD [rdx+0x1000]                      }
-testcase	{ 0x62, 0x61, 0x7e, 0x4f, 0x7a, 0x72, 0x80                               }, { vcvtudq2pd zmm30{k7},YWORD [rdx-0x1000]                      }
-testcase	{ 0x62, 0x61, 0x7e, 0x4f, 0x7a, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vcvtudq2pd zmm30{k7},YWORD [rdx-0x1020]                      }
-testcase	{ 0x62, 0x61, 0x7e, 0x5f, 0x7a, 0x72, 0x7f                               }, { vcvtudq2pd zmm30{k7},DWORD [rdx+0x1fc]{1to8}                 }
-testcase	{ 0x62, 0x61, 0x7e, 0x5f, 0x7a, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcvtudq2pd zmm30{k7},DWORD [rdx+0x200]{1to8}                 }
-testcase	{ 0x62, 0x61, 0x7e, 0x5f, 0x7a, 0x72, 0x80                               }, { vcvtudq2pd zmm30{k7},DWORD [rdx-0x200]{1to8}                 }
-testcase	{ 0x62, 0x61, 0x7e, 0x5f, 0x7a, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtudq2pd zmm30{k7},DWORD [rdx-0x204]{1to8}                 }
-testcase	{ 0x62, 0x01, 0x7f, 0x48, 0x7a, 0xf5                                     }, { vcvtudq2ps zmm30,zmm29                                       }
-testcase	{ 0x62, 0x01, 0x7f, 0x4f, 0x7a, 0xf5                                     }, { vcvtudq2ps zmm30{k7},zmm29                                   }
-testcase	{ 0x62, 0x01, 0x7f, 0xcf, 0x7a, 0xf5                                     }, { vcvtudq2ps zmm30{k7}{z},zmm29                                }
-testcase	{ 0x62, 0x01, 0x7f, 0x18, 0x7a, 0xf5                                     }, { vcvtudq2ps zmm30,zmm29,{rn-sae}                              }
-testcase	{ 0x62, 0x01, 0x7f, 0x58, 0x7a, 0xf5                                     }, { vcvtudq2ps zmm30,zmm29,{ru-sae}                              }
-testcase	{ 0x62, 0x01, 0x7f, 0x38, 0x7a, 0xf5                                     }, { vcvtudq2ps zmm30,zmm29,{rd-sae}                              }
-testcase	{ 0x62, 0x01, 0x7f, 0x78, 0x7a, 0xf5                                     }, { vcvtudq2ps zmm30,zmm29,{rz-sae}                              }
-testcase	{ 0x62, 0x61, 0x7f, 0x48, 0x7a, 0x31                                     }, { vcvtudq2ps zmm30,ZWORD [rcx]                                 }
-testcase	{ 0x62, 0x21, 0x7f, 0x48, 0x7a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtudq2ps zmm30,ZWORD [rax+r14*8+0x123]                     }
-testcase	{ 0x62, 0x61, 0x7f, 0x58, 0x7a, 0x31                                     }, { vcvtudq2ps zmm30,DWORD [rcx]{1to16}                          }
-testcase	{ 0x62, 0x61, 0x7f, 0x48, 0x7a, 0x72, 0x7f                               }, { vcvtudq2ps zmm30,ZWORD [rdx+0x1fc0]                          }
-testcase	{ 0x62, 0x61, 0x7f, 0x48, 0x7a, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vcvtudq2ps zmm30,ZWORD [rdx+0x2000]                          }
-testcase	{ 0x62, 0x61, 0x7f, 0x48, 0x7a, 0x72, 0x80                               }, { vcvtudq2ps zmm30,ZWORD [rdx-0x2000]                          }
-testcase	{ 0x62, 0x61, 0x7f, 0x48, 0x7a, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vcvtudq2ps zmm30,ZWORD [rdx-0x2040]                          }
-testcase	{ 0x62, 0x61, 0x7f, 0x58, 0x7a, 0x72, 0x7f                               }, { vcvtudq2ps zmm30,DWORD [rdx+0x1fc]{1to16}                    }
-testcase	{ 0x62, 0x61, 0x7f, 0x58, 0x7a, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcvtudq2ps zmm30,DWORD [rdx+0x200]{1to16}                    }
-testcase	{ 0x62, 0x61, 0x7f, 0x58, 0x7a, 0x72, 0x80                               }, { vcvtudq2ps zmm30,DWORD [rdx-0x200]{1to16}                    }
-testcase	{ 0x62, 0x61, 0x7f, 0x58, 0x7a, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtudq2ps zmm30,DWORD [rdx-0x204]{1to16}                    }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0x5e, 0xf4                                     }, { vdivpd zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0x5e, 0xf4                                     }, { vdivpd zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0x5e, 0xf4                                     }, { vdivpd zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x95, 0x10, 0x5e, 0xf4                                     }, { vdivpd zmm30,zmm29,zmm28,{rn-sae}                            }
-testcase	{ 0x62, 0x01, 0x95, 0x50, 0x5e, 0xf4                                     }, { vdivpd zmm30,zmm29,zmm28,{ru-sae}                            }
-testcase	{ 0x62, 0x01, 0x95, 0x30, 0x5e, 0xf4                                     }, { vdivpd zmm30,zmm29,zmm28,{rd-sae}                            }
-testcase	{ 0x62, 0x01, 0x95, 0x70, 0x5e, 0xf4                                     }, { vdivpd zmm30,zmm29,zmm28,{rz-sae}                            }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5e, 0x31                                     }, { vdivpd zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0x5e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vdivpd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5e, 0x31                                     }, { vdivpd zmm30,zmm29,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5e, 0x72, 0x7f                               }, { vdivpd zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5e, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vdivpd zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5e, 0x72, 0x80                               }, { vdivpd zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5e, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vdivpd zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5e, 0x72, 0x7f                               }, { vdivpd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5e, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vdivpd zmm30,zmm29,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5e, 0x72, 0x80                               }, { vdivpd zmm30,zmm29,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5e, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vdivpd zmm30,zmm29,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x01, 0x14, 0x40, 0x5e, 0xf4                                     }, { vdivps zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x14, 0x47, 0x5e, 0xf4                                     }, { vdivps zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x14, 0xc7, 0x5e, 0xf4                                     }, { vdivps zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x14, 0x10, 0x5e, 0xf4                                     }, { vdivps zmm30,zmm29,zmm28,{rn-sae}                            }
-testcase	{ 0x62, 0x01, 0x14, 0x50, 0x5e, 0xf4                                     }, { vdivps zmm30,zmm29,zmm28,{ru-sae}                            }
-testcase	{ 0x62, 0x01, 0x14, 0x30, 0x5e, 0xf4                                     }, { vdivps zmm30,zmm29,zmm28,{rd-sae}                            }
-testcase	{ 0x62, 0x01, 0x14, 0x70, 0x5e, 0xf4                                     }, { vdivps zmm30,zmm29,zmm28,{rz-sae}                            }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5e, 0x31                                     }, { vdivps zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x14, 0x40, 0x5e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vdivps zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5e, 0x31                                     }, { vdivps zmm30,zmm29,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5e, 0x72, 0x7f                               }, { vdivps zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5e, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vdivps zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5e, 0x72, 0x80                               }, { vdivps zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5e, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vdivps zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5e, 0x72, 0x7f                               }, { vdivps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5e, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vdivps zmm30,zmm29,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5e, 0x72, 0x80                               }, { vdivps zmm30,zmm29,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5e, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vdivps zmm30,zmm29,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x01, 0x97, 0x07, 0x5e, 0xf4                                     }, { vdivsd xmm30{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x97, 0x87, 0x5e, 0xf4                                     }, { vdivsd xmm30{k7}{z},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x97, 0x17, 0x5e, 0xf4                                     }, { vdivsd xmm30{k7},xmm29,xmm28,{rn-sae}                        }
-testcase	{ 0x62, 0x01, 0x97, 0x57, 0x5e, 0xf4                                     }, { vdivsd xmm30{k7},xmm29,xmm28,{ru-sae}                        }
-testcase	{ 0x62, 0x01, 0x97, 0x37, 0x5e, 0xf4                                     }, { vdivsd xmm30{k7},xmm29,xmm28,{rd-sae}                        }
-testcase	{ 0x62, 0x01, 0x97, 0x77, 0x5e, 0xf4                                     }, { vdivsd xmm30{k7},xmm29,xmm28,{rz-sae}                        }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5e, 0x31                                     }, { vdivsd xmm30{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x97, 0x07, 0x5e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vdivsd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5e, 0x72, 0x7f                               }, { vdivsd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5e, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vdivsd xmm30{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5e, 0x72, 0x80                               }, { vdivsd xmm30{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5e, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vdivsd xmm30{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x01, 0x16, 0x07, 0x5e, 0xf4                                     }, { vdivss xmm30{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x16, 0x87, 0x5e, 0xf4                                     }, { vdivss xmm30{k7}{z},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x16, 0x17, 0x5e, 0xf4                                     }, { vdivss xmm30{k7},xmm29,xmm28,{rn-sae}                        }
-testcase	{ 0x62, 0x01, 0x16, 0x57, 0x5e, 0xf4                                     }, { vdivss xmm30{k7},xmm29,xmm28,{ru-sae}                        }
-testcase	{ 0x62, 0x01, 0x16, 0x37, 0x5e, 0xf4                                     }, { vdivss xmm30{k7},xmm29,xmm28,{rd-sae}                        }
-testcase	{ 0x62, 0x01, 0x16, 0x77, 0x5e, 0xf4                                     }, { vdivss xmm30{k7},xmm29,xmm28,{rz-sae}                        }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5e, 0x31                                     }, { vdivss xmm30{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x16, 0x07, 0x5e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vdivss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5e, 0x72, 0x7f                               }, { vdivss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5e, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vdivss xmm30{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5e, 0x72, 0x80                               }, { vdivss xmm30{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5e, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vdivss xmm30{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x88, 0x31                                     }, { vexpandpd zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x62, 0xfd, 0x4f, 0x88, 0x31                                     }, { vexpandpd zmm30{k7},ZWORD [rcx]                              }
-testcase	{ 0x62, 0x62, 0xfd, 0xcf, 0x88, 0x31                                     }, { vexpandpd zmm30{k7}{z},ZWORD [rcx]                           }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0x88, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vexpandpd zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x88, 0x72, 0x7f                               }, { vexpandpd zmm30,ZWORD [rdx+0x3f8]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x88, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vexpandpd zmm30,ZWORD [rdx+0x400]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x88, 0x72, 0x80                               }, { vexpandpd zmm30,ZWORD [rdx-0x400]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x88, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vexpandpd zmm30,ZWORD [rdx-0x408]                            }
-testcase	{ 0x62, 0x02, 0xfd, 0x48, 0x88, 0xf5                                     }, { vexpandpd zmm30,zmm29                                        }
-testcase	{ 0x62, 0x02, 0xfd, 0x4f, 0x88, 0xf5                                     }, { vexpandpd zmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x02, 0xfd, 0xcf, 0x88, 0xf5                                     }, { vexpandpd zmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x88, 0x31                                     }, { vexpandps zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x88, 0x31                                     }, { vexpandps zmm30{k7},ZWORD [rcx]                              }
-testcase	{ 0x62, 0x62, 0x7d, 0xcf, 0x88, 0x31                                     }, { vexpandps zmm30{k7}{z},ZWORD [rcx]                           }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0x88, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vexpandps zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x88, 0x72, 0x7f                               }, { vexpandps zmm30,ZWORD [rdx+0x1fc]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x88, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vexpandps zmm30,ZWORD [rdx+0x200]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x88, 0x72, 0x80                               }, { vexpandps zmm30,ZWORD [rdx-0x200]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x88, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vexpandps zmm30,ZWORD [rdx-0x204]                            }
-testcase	{ 0x62, 0x02, 0x7d, 0x48, 0x88, 0xf5                                     }, { vexpandps zmm30,zmm29                                        }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x88, 0xf5                                     }, { vexpandps zmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x88, 0xf5                                     }, { vexpandps zmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x03, 0x7d, 0x4f, 0x19, 0xee, 0xab                               }, { vextractf32x4 xmm30{k7},zmm29,0xab                           }
-testcase	{ 0x62, 0x03, 0x7d, 0xcf, 0x19, 0xee, 0xab                               }, { vextractf32x4 xmm30{k7}{z},zmm29,0xab                        }
-testcase	{ 0x62, 0x03, 0x7d, 0x4f, 0x19, 0xee, 0x7b                               }, { vextractf32x4 xmm30{k7},zmm29,0x7b                           }
-testcase	{ 0x62, 0x03, 0xfd, 0x4f, 0x1b, 0xee, 0xab                               }, { vextractf64x4 ymm30{k7},zmm29,0xab                           }
-testcase	{ 0x62, 0x03, 0xfd, 0xcf, 0x1b, 0xee, 0xab                               }, { vextractf64x4 ymm30{k7}{z},zmm29,0xab                        }
-testcase	{ 0x62, 0x03, 0xfd, 0x4f, 0x1b, 0xee, 0x7b                               }, { vextractf64x4 ymm30{k7},zmm29,0x7b                           }
-testcase	{ 0x62, 0x03, 0x7d, 0x4f, 0x39, 0xee, 0xab                               }, { vextracti32x4 xmm30{k7},zmm29,0xab                           }
-testcase	{ 0x62, 0x03, 0x7d, 0xcf, 0x39, 0xee, 0xab                               }, { vextracti32x4 xmm30{k7}{z},zmm29,0xab                        }
-testcase	{ 0x62, 0x03, 0x7d, 0x4f, 0x39, 0xee, 0x7b                               }, { vextracti32x4 xmm30{k7},zmm29,0x7b                           }
-testcase	{ 0x62, 0x03, 0xfd, 0x4f, 0x3b, 0xee, 0xab                               }, { vextracti64x4 ymm30{k7},zmm29,0xab                           }
-testcase	{ 0x62, 0x03, 0xfd, 0xcf, 0x3b, 0xee, 0xab                               }, { vextracti64x4 ymm30{k7}{z},zmm29,0xab                        }
-testcase	{ 0x62, 0x03, 0xfd, 0x4f, 0x3b, 0xee, 0x7b                               }, { vextracti64x4 ymm30{k7},zmm29,0x7b                           }
-testcase	{ 0x62, 0x63, 0xfd, 0x08, 0x17, 0xe8, 0xab                               }, { vextractps rax,xmm29,0xab                                    }
-testcase	{ 0x62, 0x63, 0xfd, 0x08, 0x17, 0xe8, 0x7b                               }, { vextractps rax,xmm29,0x7b                                    }
-testcase	{ 0x62, 0x43, 0xfd, 0x08, 0x17, 0xe8, 0x7b                               }, { vextractps r8,xmm29,0x7b                                     }
-testcase	{ 0x62, 0x63, 0x7d, 0x08, 0x17, 0x29, 0x7b                               }, { vextractps DWORD [rcx],xmm29,0x7b                            }
-testcase	{ 0x62, 0x23, 0x7d, 0x08, 0x17, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vextractps DWORD [rax+r14*8+0x123],xmm29,0x7b                }
-testcase	{ 0x62, 0x63, 0x7d, 0x08, 0x17, 0x6a, 0x7f, 0x7b                         }, { vextractps DWORD [rdx+0x1fc],xmm29,0x7b                      }
-testcase	{ 0x62, 0x63, 0x7d, 0x08, 0x17, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vextractps DWORD [rdx+0x200],xmm29,0x7b                      }
-testcase	{ 0x62, 0x63, 0x7d, 0x08, 0x17, 0x6a, 0x80, 0x7b                         }, { vextractps DWORD [rdx-0x200],xmm29,0x7b                      }
-testcase	{ 0x62, 0x63, 0x7d, 0x08, 0x17, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vextractps DWORD [rdx-0x204],xmm29,0x7b                      }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x98, 0xf4                                     }, { vfmadd132pd zmm30,zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x98, 0xf4                                     }, { vfmadd132pd zmm30{k7},zmm29,zmm28                            }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x98, 0xf4                                     }, { vfmadd132pd zmm30{k7}{z},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0x98, 0xf4                                     }, { vfmadd132pd zmm30,zmm29,zmm28,{rn-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0x98, 0xf4                                     }, { vfmadd132pd zmm30,zmm29,zmm28,{ru-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0x98, 0xf4                                     }, { vfmadd132pd zmm30,zmm29,zmm28,{rd-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0x98, 0xf4                                     }, { vfmadd132pd zmm30,zmm29,zmm28,{rz-sae}                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x98, 0x31                                     }, { vfmadd132pd zmm30,zmm29,ZWORD [rcx]                          }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x98, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmadd132pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x98, 0x31                                     }, { vfmadd132pd zmm30,zmm29,QWORD [rcx]{1to8}                    }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x98, 0x72, 0x7f                               }, { vfmadd132pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x98, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmadd132pd zmm30,zmm29,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x98, 0x72, 0x80                               }, { vfmadd132pd zmm30,zmm29,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x98, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmadd132pd zmm30,zmm29,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x98, 0x72, 0x7f                               }, { vfmadd132pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x98, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmadd132pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x98, 0x72, 0x80                               }, { vfmadd132pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x98, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmadd132pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}              }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x98, 0xf4                                     }, { vfmadd132ps zmm30,zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x98, 0xf4                                     }, { vfmadd132ps zmm30{k7},zmm29,zmm28                            }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x98, 0xf4                                     }, { vfmadd132ps zmm30{k7}{z},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0x98, 0xf4                                     }, { vfmadd132ps zmm30,zmm29,zmm28,{rn-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0x98, 0xf4                                     }, { vfmadd132ps zmm30,zmm29,zmm28,{ru-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0x98, 0xf4                                     }, { vfmadd132ps zmm30,zmm29,zmm28,{rd-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0x98, 0xf4                                     }, { vfmadd132ps zmm30,zmm29,zmm28,{rz-sae}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x98, 0x31                                     }, { vfmadd132ps zmm30,zmm29,ZWORD [rcx]                          }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x98, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmadd132ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x98, 0x31                                     }, { vfmadd132ps zmm30,zmm29,DWORD [rcx]{1to16}                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x98, 0x72, 0x7f                               }, { vfmadd132ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x98, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmadd132ps zmm30,zmm29,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x98, 0x72, 0x80                               }, { vfmadd132ps zmm30,zmm29,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x98, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmadd132ps zmm30,zmm29,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x98, 0x72, 0x7f                               }, { vfmadd132ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x98, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmadd132ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x98, 0x72, 0x80                               }, { vfmadd132ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x98, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmadd132ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}             }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0x99, 0xf4                                     }, { vfmadd132sd xmm30{k7},xmm29,xmm28                            }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0x99, 0xf4                                     }, { vfmadd132sd xmm30{k7}{z},xmm29,xmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0x99, 0xf4                                     }, { vfmadd132sd xmm30{k7},xmm29,xmm28,{rn-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x57, 0x99, 0xf4                                     }, { vfmadd132sd xmm30{k7},xmm29,xmm28,{ru-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x37, 0x99, 0xf4                                     }, { vfmadd132sd xmm30{k7},xmm29,xmm28,{rd-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x77, 0x99, 0xf4                                     }, { vfmadd132sd xmm30{k7},xmm29,xmm28,{rz-sae}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x99, 0x31                                     }, { vfmadd132sd xmm30{k7},xmm29,QWORD [rcx]                      }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0x99, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmadd132sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]          }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x99, 0x72, 0x7f                               }, { vfmadd132sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x99, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmadd132sd xmm30{k7},xmm29,QWORD [rdx+0x400]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x99, 0x72, 0x80                               }, { vfmadd132sd xmm30{k7},xmm29,QWORD [rdx-0x400]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x99, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmadd132sd xmm30{k7},xmm29,QWORD [rdx-0x408]                }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0x99, 0xf4                                     }, { vfmadd132ss xmm30{k7},xmm29,xmm28                            }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0x99, 0xf4                                     }, { vfmadd132ss xmm30{k7}{z},xmm29,xmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0x99, 0xf4                                     }, { vfmadd132ss xmm30{k7},xmm29,xmm28,{rn-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x57, 0x99, 0xf4                                     }, { vfmadd132ss xmm30{k7},xmm29,xmm28,{ru-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x37, 0x99, 0xf4                                     }, { vfmadd132ss xmm30{k7},xmm29,xmm28,{rd-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x77, 0x99, 0xf4                                     }, { vfmadd132ss xmm30{k7},xmm29,xmm28,{rz-sae}                   }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x99, 0x31                                     }, { vfmadd132ss xmm30{k7},xmm29,DWORD [rcx]                      }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0x99, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmadd132ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]          }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x99, 0x72, 0x7f                               }, { vfmadd132ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x99, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmadd132ss xmm30{k7},xmm29,DWORD [rdx+0x200]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x99, 0x72, 0x80                               }, { vfmadd132ss xmm30{k7},xmm29,DWORD [rdx-0x200]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x99, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmadd132ss xmm30{k7},xmm29,DWORD [rdx-0x204]                }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0xa8, 0xf4                                     }, { vfmadd213pd zmm30,zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0xa8, 0xf4                                     }, { vfmadd213pd zmm30{k7},zmm29,zmm28                            }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0xa8, 0xf4                                     }, { vfmadd213pd zmm30{k7}{z},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0xa8, 0xf4                                     }, { vfmadd213pd zmm30,zmm29,zmm28,{rn-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0xa8, 0xf4                                     }, { vfmadd213pd zmm30,zmm29,zmm28,{ru-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0xa8, 0xf4                                     }, { vfmadd213pd zmm30,zmm29,zmm28,{rd-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0xa8, 0xf4                                     }, { vfmadd213pd zmm30,zmm29,zmm28,{rz-sae}                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa8, 0x31                                     }, { vfmadd213pd zmm30,zmm29,ZWORD [rcx]                          }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0xa8, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmadd213pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa8, 0x31                                     }, { vfmadd213pd zmm30,zmm29,QWORD [rcx]{1to8}                    }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa8, 0x72, 0x7f                               }, { vfmadd213pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa8, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmadd213pd zmm30,zmm29,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa8, 0x72, 0x80                               }, { vfmadd213pd zmm30,zmm29,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa8, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmadd213pd zmm30,zmm29,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa8, 0x72, 0x7f                               }, { vfmadd213pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa8, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmadd213pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa8, 0x72, 0x80                               }, { vfmadd213pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa8, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmadd213pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}              }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0xa8, 0xf4                                     }, { vfmadd213ps zmm30,zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0xa8, 0xf4                                     }, { vfmadd213ps zmm30{k7},zmm29,zmm28                            }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0xa8, 0xf4                                     }, { vfmadd213ps zmm30{k7}{z},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0xa8, 0xf4                                     }, { vfmadd213ps zmm30,zmm29,zmm28,{rn-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0xa8, 0xf4                                     }, { vfmadd213ps zmm30,zmm29,zmm28,{ru-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0xa8, 0xf4                                     }, { vfmadd213ps zmm30,zmm29,zmm28,{rd-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0xa8, 0xf4                                     }, { vfmadd213ps zmm30,zmm29,zmm28,{rz-sae}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa8, 0x31                                     }, { vfmadd213ps zmm30,zmm29,ZWORD [rcx]                          }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0xa8, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmadd213ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa8, 0x31                                     }, { vfmadd213ps zmm30,zmm29,DWORD [rcx]{1to16}                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa8, 0x72, 0x7f                               }, { vfmadd213ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa8, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmadd213ps zmm30,zmm29,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa8, 0x72, 0x80                               }, { vfmadd213ps zmm30,zmm29,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa8, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmadd213ps zmm30,zmm29,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa8, 0x72, 0x7f                               }, { vfmadd213ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa8, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmadd213ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa8, 0x72, 0x80                               }, { vfmadd213ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa8, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmadd213ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}             }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0xa9, 0xf4                                     }, { vfmadd213sd xmm30{k7},xmm29,xmm28                            }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0xa9, 0xf4                                     }, { vfmadd213sd xmm30{k7}{z},xmm29,xmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0xa9, 0xf4                                     }, { vfmadd213sd xmm30{k7},xmm29,xmm28,{rn-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x57, 0xa9, 0xf4                                     }, { vfmadd213sd xmm30{k7},xmm29,xmm28,{ru-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x37, 0xa9, 0xf4                                     }, { vfmadd213sd xmm30{k7},xmm29,xmm28,{rd-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x77, 0xa9, 0xf4                                     }, { vfmadd213sd xmm30{k7},xmm29,xmm28,{rz-sae}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xa9, 0x31                                     }, { vfmadd213sd xmm30{k7},xmm29,QWORD [rcx]                      }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0xa9, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmadd213sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]          }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xa9, 0x72, 0x7f                               }, { vfmadd213sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xa9, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmadd213sd xmm30{k7},xmm29,QWORD [rdx+0x400]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xa9, 0x72, 0x80                               }, { vfmadd213sd xmm30{k7},xmm29,QWORD [rdx-0x400]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xa9, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmadd213sd xmm30{k7},xmm29,QWORD [rdx-0x408]                }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0xa9, 0xf4                                     }, { vfmadd213ss xmm30{k7},xmm29,xmm28                            }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0xa9, 0xf4                                     }, { vfmadd213ss xmm30{k7}{z},xmm29,xmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0xa9, 0xf4                                     }, { vfmadd213ss xmm30{k7},xmm29,xmm28,{rn-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x57, 0xa9, 0xf4                                     }, { vfmadd213ss xmm30{k7},xmm29,xmm28,{ru-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x37, 0xa9, 0xf4                                     }, { vfmadd213ss xmm30{k7},xmm29,xmm28,{rd-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x77, 0xa9, 0xf4                                     }, { vfmadd213ss xmm30{k7},xmm29,xmm28,{rz-sae}                   }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xa9, 0x31                                     }, { vfmadd213ss xmm30{k7},xmm29,DWORD [rcx]                      }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0xa9, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmadd213ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]          }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xa9, 0x72, 0x7f                               }, { vfmadd213ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xa9, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmadd213ss xmm30{k7},xmm29,DWORD [rdx+0x200]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xa9, 0x72, 0x80                               }, { vfmadd213ss xmm30{k7},xmm29,DWORD [rdx-0x200]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xa9, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmadd213ss xmm30{k7},xmm29,DWORD [rdx-0x204]                }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0xb8, 0xf4                                     }, { vfmadd231pd zmm30,zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0xb8, 0xf4                                     }, { vfmadd231pd zmm30{k7},zmm29,zmm28                            }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0xb8, 0xf4                                     }, { vfmadd231pd zmm30{k7}{z},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0xb8, 0xf4                                     }, { vfmadd231pd zmm30,zmm29,zmm28,{rn-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0xb8, 0xf4                                     }, { vfmadd231pd zmm30,zmm29,zmm28,{ru-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0xb8, 0xf4                                     }, { vfmadd231pd zmm30,zmm29,zmm28,{rd-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0xb8, 0xf4                                     }, { vfmadd231pd zmm30,zmm29,zmm28,{rz-sae}                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb8, 0x31                                     }, { vfmadd231pd zmm30,zmm29,ZWORD [rcx]                          }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0xb8, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmadd231pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb8, 0x31                                     }, { vfmadd231pd zmm30,zmm29,QWORD [rcx]{1to8}                    }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb8, 0x72, 0x7f                               }, { vfmadd231pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb8, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmadd231pd zmm30,zmm29,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb8, 0x72, 0x80                               }, { vfmadd231pd zmm30,zmm29,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb8, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmadd231pd zmm30,zmm29,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb8, 0x72, 0x7f                               }, { vfmadd231pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb8, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmadd231pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb8, 0x72, 0x80                               }, { vfmadd231pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb8, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmadd231pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}              }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0xb8, 0xf4                                     }, { vfmadd231ps zmm30,zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0xb8, 0xf4                                     }, { vfmadd231ps zmm30{k7},zmm29,zmm28                            }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0xb8, 0xf4                                     }, { vfmadd231ps zmm30{k7}{z},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0xb8, 0xf4                                     }, { vfmadd231ps zmm30,zmm29,zmm28,{rn-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0xb8, 0xf4                                     }, { vfmadd231ps zmm30,zmm29,zmm28,{ru-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0xb8, 0xf4                                     }, { vfmadd231ps zmm30,zmm29,zmm28,{rd-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0xb8, 0xf4                                     }, { vfmadd231ps zmm30,zmm29,zmm28,{rz-sae}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb8, 0x31                                     }, { vfmadd231ps zmm30,zmm29,ZWORD [rcx]                          }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0xb8, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmadd231ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb8, 0x31                                     }, { vfmadd231ps zmm30,zmm29,DWORD [rcx]{1to16}                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb8, 0x72, 0x7f                               }, { vfmadd231ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb8, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmadd231ps zmm30,zmm29,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb8, 0x72, 0x80                               }, { vfmadd231ps zmm30,zmm29,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb8, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmadd231ps zmm30,zmm29,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb8, 0x72, 0x7f                               }, { vfmadd231ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb8, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmadd231ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb8, 0x72, 0x80                               }, { vfmadd231ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb8, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmadd231ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}             }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0xb9, 0xf4                                     }, { vfmadd231sd xmm30{k7},xmm29,xmm28                            }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0xb9, 0xf4                                     }, { vfmadd231sd xmm30{k7}{z},xmm29,xmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0xb9, 0xf4                                     }, { vfmadd231sd xmm30{k7},xmm29,xmm28,{rn-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x57, 0xb9, 0xf4                                     }, { vfmadd231sd xmm30{k7},xmm29,xmm28,{ru-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x37, 0xb9, 0xf4                                     }, { vfmadd231sd xmm30{k7},xmm29,xmm28,{rd-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x77, 0xb9, 0xf4                                     }, { vfmadd231sd xmm30{k7},xmm29,xmm28,{rz-sae}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xb9, 0x31                                     }, { vfmadd231sd xmm30{k7},xmm29,QWORD [rcx]                      }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0xb9, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmadd231sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]          }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xb9, 0x72, 0x7f                               }, { vfmadd231sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xb9, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmadd231sd xmm30{k7},xmm29,QWORD [rdx+0x400]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xb9, 0x72, 0x80                               }, { vfmadd231sd xmm30{k7},xmm29,QWORD [rdx-0x400]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xb9, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmadd231sd xmm30{k7},xmm29,QWORD [rdx-0x408]                }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0xb9, 0xf4                                     }, { vfmadd231ss xmm30{k7},xmm29,xmm28                            }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0xb9, 0xf4                                     }, { vfmadd231ss xmm30{k7}{z},xmm29,xmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0xb9, 0xf4                                     }, { vfmadd231ss xmm30{k7},xmm29,xmm28,{rn-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x57, 0xb9, 0xf4                                     }, { vfmadd231ss xmm30{k7},xmm29,xmm28,{ru-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x37, 0xb9, 0xf4                                     }, { vfmadd231ss xmm30{k7},xmm29,xmm28,{rd-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x77, 0xb9, 0xf4                                     }, { vfmadd231ss xmm30{k7},xmm29,xmm28,{rz-sae}                   }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xb9, 0x31                                     }, { vfmadd231ss xmm30{k7},xmm29,DWORD [rcx]                      }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0xb9, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmadd231ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]          }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xb9, 0x72, 0x7f                               }, { vfmadd231ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xb9, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmadd231ss xmm30{k7},xmm29,DWORD [rdx+0x200]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xb9, 0x72, 0x80                               }, { vfmadd231ss xmm30{k7},xmm29,DWORD [rdx-0x200]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xb9, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmadd231ss xmm30{k7},xmm29,DWORD [rdx-0x204]                }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x96, 0xf4                                     }, { vfmaddsub132pd zmm30,zmm29,zmm28                             }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x96, 0xf4                                     }, { vfmaddsub132pd zmm30{k7},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x96, 0xf4                                     }, { vfmaddsub132pd zmm30{k7}{z},zmm29,zmm28                      }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0x96, 0xf4                                     }, { vfmaddsub132pd zmm30,zmm29,zmm28,{rn-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0x96, 0xf4                                     }, { vfmaddsub132pd zmm30,zmm29,zmm28,{ru-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0x96, 0xf4                                     }, { vfmaddsub132pd zmm30,zmm29,zmm28,{rd-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0x96, 0xf4                                     }, { vfmaddsub132pd zmm30,zmm29,zmm28,{rz-sae}                    }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x96, 0x31                                     }, { vfmaddsub132pd zmm30,zmm29,ZWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x96, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmaddsub132pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x96, 0x31                                     }, { vfmaddsub132pd zmm30,zmm29,QWORD [rcx]{1to8}                 }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x96, 0x72, 0x7f                               }, { vfmaddsub132pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x96, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmaddsub132pd zmm30,zmm29,ZWORD [rdx+0x2000]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x96, 0x72, 0x80                               }, { vfmaddsub132pd zmm30,zmm29,ZWORD [rdx-0x2000]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x96, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmaddsub132pd zmm30,zmm29,ZWORD [rdx-0x2040]                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x96, 0x72, 0x7f                               }, { vfmaddsub132pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x96, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmaddsub132pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x96, 0x72, 0x80                               }, { vfmaddsub132pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x96, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmaddsub132pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}           }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x96, 0xf4                                     }, { vfmaddsub132ps zmm30,zmm29,zmm28                             }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x96, 0xf4                                     }, { vfmaddsub132ps zmm30{k7},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x96, 0xf4                                     }, { vfmaddsub132ps zmm30{k7}{z},zmm29,zmm28                      }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0x96, 0xf4                                     }, { vfmaddsub132ps zmm30,zmm29,zmm28,{rn-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0x96, 0xf4                                     }, { vfmaddsub132ps zmm30,zmm29,zmm28,{ru-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0x96, 0xf4                                     }, { vfmaddsub132ps zmm30,zmm29,zmm28,{rd-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0x96, 0xf4                                     }, { vfmaddsub132ps zmm30,zmm29,zmm28,{rz-sae}                    }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x96, 0x31                                     }, { vfmaddsub132ps zmm30,zmm29,ZWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x96, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmaddsub132ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x96, 0x31                                     }, { vfmaddsub132ps zmm30,zmm29,DWORD [rcx]{1to16}                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x96, 0x72, 0x7f                               }, { vfmaddsub132ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x96, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmaddsub132ps zmm30,zmm29,ZWORD [rdx+0x2000]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x96, 0x72, 0x80                               }, { vfmaddsub132ps zmm30,zmm29,ZWORD [rdx-0x2000]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x96, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmaddsub132ps zmm30,zmm29,ZWORD [rdx-0x2040]                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x96, 0x72, 0x7f                               }, { vfmaddsub132ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x96, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmaddsub132ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x96, 0x72, 0x80                               }, { vfmaddsub132ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x96, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmaddsub132ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}          }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0xa6, 0xf4                                     }, { vfmaddsub213pd zmm30,zmm29,zmm28                             }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0xa6, 0xf4                                     }, { vfmaddsub213pd zmm30{k7},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0xa6, 0xf4                                     }, { vfmaddsub213pd zmm30{k7}{z},zmm29,zmm28                      }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0xa6, 0xf4                                     }, { vfmaddsub213pd zmm30,zmm29,zmm28,{rn-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0xa6, 0xf4                                     }, { vfmaddsub213pd zmm30,zmm29,zmm28,{ru-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0xa6, 0xf4                                     }, { vfmaddsub213pd zmm30,zmm29,zmm28,{rd-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0xa6, 0xf4                                     }, { vfmaddsub213pd zmm30,zmm29,zmm28,{rz-sae}                    }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa6, 0x31                                     }, { vfmaddsub213pd zmm30,zmm29,ZWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0xa6, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmaddsub213pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa6, 0x31                                     }, { vfmaddsub213pd zmm30,zmm29,QWORD [rcx]{1to8}                 }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa6, 0x72, 0x7f                               }, { vfmaddsub213pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa6, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmaddsub213pd zmm30,zmm29,ZWORD [rdx+0x2000]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa6, 0x72, 0x80                               }, { vfmaddsub213pd zmm30,zmm29,ZWORD [rdx-0x2000]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa6, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmaddsub213pd zmm30,zmm29,ZWORD [rdx-0x2040]                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa6, 0x72, 0x7f                               }, { vfmaddsub213pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa6, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmaddsub213pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa6, 0x72, 0x80                               }, { vfmaddsub213pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa6, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmaddsub213pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}           }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0xa6, 0xf4                                     }, { vfmaddsub213ps zmm30,zmm29,zmm28                             }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0xa6, 0xf4                                     }, { vfmaddsub213ps zmm30{k7},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0xa6, 0xf4                                     }, { vfmaddsub213ps zmm30{k7}{z},zmm29,zmm28                      }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0xa6, 0xf4                                     }, { vfmaddsub213ps zmm30,zmm29,zmm28,{rn-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0xa6, 0xf4                                     }, { vfmaddsub213ps zmm30,zmm29,zmm28,{ru-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0xa6, 0xf4                                     }, { vfmaddsub213ps zmm30,zmm29,zmm28,{rd-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0xa6, 0xf4                                     }, { vfmaddsub213ps zmm30,zmm29,zmm28,{rz-sae}                    }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa6, 0x31                                     }, { vfmaddsub213ps zmm30,zmm29,ZWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0xa6, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmaddsub213ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa6, 0x31                                     }, { vfmaddsub213ps zmm30,zmm29,DWORD [rcx]{1to16}                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa6, 0x72, 0x7f                               }, { vfmaddsub213ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa6, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmaddsub213ps zmm30,zmm29,ZWORD [rdx+0x2000]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa6, 0x72, 0x80                               }, { vfmaddsub213ps zmm30,zmm29,ZWORD [rdx-0x2000]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa6, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmaddsub213ps zmm30,zmm29,ZWORD [rdx-0x2040]                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa6, 0x72, 0x7f                               }, { vfmaddsub213ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa6, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmaddsub213ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa6, 0x72, 0x80                               }, { vfmaddsub213ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa6, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmaddsub213ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}          }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0xb6, 0xf4                                     }, { vfmaddsub231pd zmm30,zmm29,zmm28                             }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0xb6, 0xf4                                     }, { vfmaddsub231pd zmm30{k7},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0xb6, 0xf4                                     }, { vfmaddsub231pd zmm30{k7}{z},zmm29,zmm28                      }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0xb6, 0xf4                                     }, { vfmaddsub231pd zmm30,zmm29,zmm28,{rn-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0xb6, 0xf4                                     }, { vfmaddsub231pd zmm30,zmm29,zmm28,{ru-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0xb6, 0xf4                                     }, { vfmaddsub231pd zmm30,zmm29,zmm28,{rd-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0xb6, 0xf4                                     }, { vfmaddsub231pd zmm30,zmm29,zmm28,{rz-sae}                    }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb6, 0x31                                     }, { vfmaddsub231pd zmm30,zmm29,ZWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0xb6, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmaddsub231pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb6, 0x31                                     }, { vfmaddsub231pd zmm30,zmm29,QWORD [rcx]{1to8}                 }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb6, 0x72, 0x7f                               }, { vfmaddsub231pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb6, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmaddsub231pd zmm30,zmm29,ZWORD [rdx+0x2000]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb6, 0x72, 0x80                               }, { vfmaddsub231pd zmm30,zmm29,ZWORD [rdx-0x2000]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb6, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmaddsub231pd zmm30,zmm29,ZWORD [rdx-0x2040]                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb6, 0x72, 0x7f                               }, { vfmaddsub231pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb6, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmaddsub231pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb6, 0x72, 0x80                               }, { vfmaddsub231pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb6, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmaddsub231pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}           }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0xb6, 0xf4                                     }, { vfmaddsub231ps zmm30,zmm29,zmm28                             }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0xb6, 0xf4                                     }, { vfmaddsub231ps zmm30{k7},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0xb6, 0xf4                                     }, { vfmaddsub231ps zmm30{k7}{z},zmm29,zmm28                      }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0xb6, 0xf4                                     }, { vfmaddsub231ps zmm30,zmm29,zmm28,{rn-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0xb6, 0xf4                                     }, { vfmaddsub231ps zmm30,zmm29,zmm28,{ru-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0xb6, 0xf4                                     }, { vfmaddsub231ps zmm30,zmm29,zmm28,{rd-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0xb6, 0xf4                                     }, { vfmaddsub231ps zmm30,zmm29,zmm28,{rz-sae}                    }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb6, 0x31                                     }, { vfmaddsub231ps zmm30,zmm29,ZWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0xb6, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmaddsub231ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb6, 0x31                                     }, { vfmaddsub231ps zmm30,zmm29,DWORD [rcx]{1to16}                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb6, 0x72, 0x7f                               }, { vfmaddsub231ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb6, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmaddsub231ps zmm30,zmm29,ZWORD [rdx+0x2000]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb6, 0x72, 0x80                               }, { vfmaddsub231ps zmm30,zmm29,ZWORD [rdx-0x2000]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb6, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmaddsub231ps zmm30,zmm29,ZWORD [rdx-0x2040]                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb6, 0x72, 0x7f                               }, { vfmaddsub231ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb6, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmaddsub231ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb6, 0x72, 0x80                               }, { vfmaddsub231ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb6, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmaddsub231ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}          }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x9a, 0xf4                                     }, { vfmsub132pd zmm30,zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x9a, 0xf4                                     }, { vfmsub132pd zmm30{k7},zmm29,zmm28                            }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x9a, 0xf4                                     }, { vfmsub132pd zmm30{k7}{z},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0x9a, 0xf4                                     }, { vfmsub132pd zmm30,zmm29,zmm28,{rn-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0x9a, 0xf4                                     }, { vfmsub132pd zmm30,zmm29,zmm28,{ru-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0x9a, 0xf4                                     }, { vfmsub132pd zmm30,zmm29,zmm28,{rd-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0x9a, 0xf4                                     }, { vfmsub132pd zmm30,zmm29,zmm28,{rz-sae}                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9a, 0x31                                     }, { vfmsub132pd zmm30,zmm29,ZWORD [rcx]                          }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x9a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsub132pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9a, 0x31                                     }, { vfmsub132pd zmm30,zmm29,QWORD [rcx]{1to8}                    }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9a, 0x72, 0x7f                               }, { vfmsub132pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9a, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmsub132pd zmm30,zmm29,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9a, 0x72, 0x80                               }, { vfmsub132pd zmm30,zmm29,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9a, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmsub132pd zmm30,zmm29,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9a, 0x72, 0x7f                               }, { vfmsub132pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9a, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmsub132pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9a, 0x72, 0x80                               }, { vfmsub132pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9a, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmsub132pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}              }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x9a, 0xf4                                     }, { vfmsub132ps zmm30,zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x9a, 0xf4                                     }, { vfmsub132ps zmm30{k7},zmm29,zmm28                            }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x9a, 0xf4                                     }, { vfmsub132ps zmm30{k7}{z},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0x9a, 0xf4                                     }, { vfmsub132ps zmm30,zmm29,zmm28,{rn-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0x9a, 0xf4                                     }, { vfmsub132ps zmm30,zmm29,zmm28,{ru-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0x9a, 0xf4                                     }, { vfmsub132ps zmm30,zmm29,zmm28,{rd-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0x9a, 0xf4                                     }, { vfmsub132ps zmm30,zmm29,zmm28,{rz-sae}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9a, 0x31                                     }, { vfmsub132ps zmm30,zmm29,ZWORD [rcx]                          }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x9a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsub132ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9a, 0x31                                     }, { vfmsub132ps zmm30,zmm29,DWORD [rcx]{1to16}                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9a, 0x72, 0x7f                               }, { vfmsub132ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9a, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmsub132ps zmm30,zmm29,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9a, 0x72, 0x80                               }, { vfmsub132ps zmm30,zmm29,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9a, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmsub132ps zmm30,zmm29,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9a, 0x72, 0x7f                               }, { vfmsub132ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9a, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmsub132ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9a, 0x72, 0x80                               }, { vfmsub132ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9a, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmsub132ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}             }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0x9b, 0xf4                                     }, { vfmsub132sd xmm30{k7},xmm29,xmm28                            }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0x9b, 0xf4                                     }, { vfmsub132sd xmm30{k7}{z},xmm29,xmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0x9b, 0xf4                                     }, { vfmsub132sd xmm30{k7},xmm29,xmm28,{rn-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x57, 0x9b, 0xf4                                     }, { vfmsub132sd xmm30{k7},xmm29,xmm28,{ru-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x37, 0x9b, 0xf4                                     }, { vfmsub132sd xmm30{k7},xmm29,xmm28,{rd-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x77, 0x9b, 0xf4                                     }, { vfmsub132sd xmm30{k7},xmm29,xmm28,{rz-sae}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9b, 0x31                                     }, { vfmsub132sd xmm30{k7},xmm29,QWORD [rcx]                      }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0x9b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsub132sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]          }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9b, 0x72, 0x7f                               }, { vfmsub132sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9b, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmsub132sd xmm30{k7},xmm29,QWORD [rdx+0x400]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9b, 0x72, 0x80                               }, { vfmsub132sd xmm30{k7},xmm29,QWORD [rdx-0x400]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9b, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmsub132sd xmm30{k7},xmm29,QWORD [rdx-0x408]                }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0x9b, 0xf4                                     }, { vfmsub132ss xmm30{k7},xmm29,xmm28                            }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0x9b, 0xf4                                     }, { vfmsub132ss xmm30{k7}{z},xmm29,xmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0x9b, 0xf4                                     }, { vfmsub132ss xmm30{k7},xmm29,xmm28,{rn-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x57, 0x9b, 0xf4                                     }, { vfmsub132ss xmm30{k7},xmm29,xmm28,{ru-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x37, 0x9b, 0xf4                                     }, { vfmsub132ss xmm30{k7},xmm29,xmm28,{rd-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x77, 0x9b, 0xf4                                     }, { vfmsub132ss xmm30{k7},xmm29,xmm28,{rz-sae}                   }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9b, 0x31                                     }, { vfmsub132ss xmm30{k7},xmm29,DWORD [rcx]                      }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0x9b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsub132ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]          }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9b, 0x72, 0x7f                               }, { vfmsub132ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9b, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmsub132ss xmm30{k7},xmm29,DWORD [rdx+0x200]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9b, 0x72, 0x80                               }, { vfmsub132ss xmm30{k7},xmm29,DWORD [rdx-0x200]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9b, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmsub132ss xmm30{k7},xmm29,DWORD [rdx-0x204]                }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0xaa, 0xf4                                     }, { vfmsub213pd zmm30,zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0xaa, 0xf4                                     }, { vfmsub213pd zmm30{k7},zmm29,zmm28                            }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0xaa, 0xf4                                     }, { vfmsub213pd zmm30{k7}{z},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0xaa, 0xf4                                     }, { vfmsub213pd zmm30,zmm29,zmm28,{rn-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0xaa, 0xf4                                     }, { vfmsub213pd zmm30,zmm29,zmm28,{ru-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0xaa, 0xf4                                     }, { vfmsub213pd zmm30,zmm29,zmm28,{rd-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0xaa, 0xf4                                     }, { vfmsub213pd zmm30,zmm29,zmm28,{rz-sae}                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xaa, 0x31                                     }, { vfmsub213pd zmm30,zmm29,ZWORD [rcx]                          }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0xaa, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsub213pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xaa, 0x31                                     }, { vfmsub213pd zmm30,zmm29,QWORD [rcx]{1to8}                    }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xaa, 0x72, 0x7f                               }, { vfmsub213pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xaa, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmsub213pd zmm30,zmm29,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xaa, 0x72, 0x80                               }, { vfmsub213pd zmm30,zmm29,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xaa, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmsub213pd zmm30,zmm29,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xaa, 0x72, 0x7f                               }, { vfmsub213pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xaa, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmsub213pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xaa, 0x72, 0x80                               }, { vfmsub213pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xaa, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmsub213pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}              }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0xaa, 0xf4                                     }, { vfmsub213ps zmm30,zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0xaa, 0xf4                                     }, { vfmsub213ps zmm30{k7},zmm29,zmm28                            }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0xaa, 0xf4                                     }, { vfmsub213ps zmm30{k7}{z},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0xaa, 0xf4                                     }, { vfmsub213ps zmm30,zmm29,zmm28,{rn-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0xaa, 0xf4                                     }, { vfmsub213ps zmm30,zmm29,zmm28,{ru-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0xaa, 0xf4                                     }, { vfmsub213ps zmm30,zmm29,zmm28,{rd-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0xaa, 0xf4                                     }, { vfmsub213ps zmm30,zmm29,zmm28,{rz-sae}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xaa, 0x31                                     }, { vfmsub213ps zmm30,zmm29,ZWORD [rcx]                          }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0xaa, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsub213ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xaa, 0x31                                     }, { vfmsub213ps zmm30,zmm29,DWORD [rcx]{1to16}                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xaa, 0x72, 0x7f                               }, { vfmsub213ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xaa, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmsub213ps zmm30,zmm29,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xaa, 0x72, 0x80                               }, { vfmsub213ps zmm30,zmm29,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xaa, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmsub213ps zmm30,zmm29,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xaa, 0x72, 0x7f                               }, { vfmsub213ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xaa, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmsub213ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xaa, 0x72, 0x80                               }, { vfmsub213ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xaa, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmsub213ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}             }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0xab, 0xf4                                     }, { vfmsub213sd xmm30{k7},xmm29,xmm28                            }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0xab, 0xf4                                     }, { vfmsub213sd xmm30{k7}{z},xmm29,xmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0xab, 0xf4                                     }, { vfmsub213sd xmm30{k7},xmm29,xmm28,{rn-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x57, 0xab, 0xf4                                     }, { vfmsub213sd xmm30{k7},xmm29,xmm28,{ru-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x37, 0xab, 0xf4                                     }, { vfmsub213sd xmm30{k7},xmm29,xmm28,{rd-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x77, 0xab, 0xf4                                     }, { vfmsub213sd xmm30{k7},xmm29,xmm28,{rz-sae}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xab, 0x31                                     }, { vfmsub213sd xmm30{k7},xmm29,QWORD [rcx]                      }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0xab, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsub213sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]          }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xab, 0x72, 0x7f                               }, { vfmsub213sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xab, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmsub213sd xmm30{k7},xmm29,QWORD [rdx+0x400]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xab, 0x72, 0x80                               }, { vfmsub213sd xmm30{k7},xmm29,QWORD [rdx-0x400]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xab, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmsub213sd xmm30{k7},xmm29,QWORD [rdx-0x408]                }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0xab, 0xf4                                     }, { vfmsub213ss xmm30{k7},xmm29,xmm28                            }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0xab, 0xf4                                     }, { vfmsub213ss xmm30{k7}{z},xmm29,xmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0xab, 0xf4                                     }, { vfmsub213ss xmm30{k7},xmm29,xmm28,{rn-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x57, 0xab, 0xf4                                     }, { vfmsub213ss xmm30{k7},xmm29,xmm28,{ru-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x37, 0xab, 0xf4                                     }, { vfmsub213ss xmm30{k7},xmm29,xmm28,{rd-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x77, 0xab, 0xf4                                     }, { vfmsub213ss xmm30{k7},xmm29,xmm28,{rz-sae}                   }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xab, 0x31                                     }, { vfmsub213ss xmm30{k7},xmm29,DWORD [rcx]                      }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0xab, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsub213ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]          }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xab, 0x72, 0x7f                               }, { vfmsub213ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xab, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmsub213ss xmm30{k7},xmm29,DWORD [rdx+0x200]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xab, 0x72, 0x80                               }, { vfmsub213ss xmm30{k7},xmm29,DWORD [rdx-0x200]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xab, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmsub213ss xmm30{k7},xmm29,DWORD [rdx-0x204]                }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0xba, 0xf4                                     }, { vfmsub231pd zmm30,zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0xba, 0xf4                                     }, { vfmsub231pd zmm30{k7},zmm29,zmm28                            }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0xba, 0xf4                                     }, { vfmsub231pd zmm30{k7}{z},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0xba, 0xf4                                     }, { vfmsub231pd zmm30,zmm29,zmm28,{rn-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0xba, 0xf4                                     }, { vfmsub231pd zmm30,zmm29,zmm28,{ru-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0xba, 0xf4                                     }, { vfmsub231pd zmm30,zmm29,zmm28,{rd-sae}                       }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0xba, 0xf4                                     }, { vfmsub231pd zmm30,zmm29,zmm28,{rz-sae}                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xba, 0x31                                     }, { vfmsub231pd zmm30,zmm29,ZWORD [rcx]                          }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0xba, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsub231pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xba, 0x31                                     }, { vfmsub231pd zmm30,zmm29,QWORD [rcx]{1to8}                    }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xba, 0x72, 0x7f                               }, { vfmsub231pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xba, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmsub231pd zmm30,zmm29,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xba, 0x72, 0x80                               }, { vfmsub231pd zmm30,zmm29,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xba, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmsub231pd zmm30,zmm29,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xba, 0x72, 0x7f                               }, { vfmsub231pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xba, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmsub231pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xba, 0x72, 0x80                               }, { vfmsub231pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}              }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xba, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmsub231pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}              }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0xba, 0xf4                                     }, { vfmsub231ps zmm30,zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0xba, 0xf4                                     }, { vfmsub231ps zmm30{k7},zmm29,zmm28                            }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0xba, 0xf4                                     }, { vfmsub231ps zmm30{k7}{z},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0xba, 0xf4                                     }, { vfmsub231ps zmm30,zmm29,zmm28,{rn-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0xba, 0xf4                                     }, { vfmsub231ps zmm30,zmm29,zmm28,{ru-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0xba, 0xf4                                     }, { vfmsub231ps zmm30,zmm29,zmm28,{rd-sae}                       }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0xba, 0xf4                                     }, { vfmsub231ps zmm30,zmm29,zmm28,{rz-sae}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xba, 0x31                                     }, { vfmsub231ps zmm30,zmm29,ZWORD [rcx]                          }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0xba, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsub231ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xba, 0x31                                     }, { vfmsub231ps zmm30,zmm29,DWORD [rcx]{1to16}                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xba, 0x72, 0x7f                               }, { vfmsub231ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xba, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmsub231ps zmm30,zmm29,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xba, 0x72, 0x80                               }, { vfmsub231ps zmm30,zmm29,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xba, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmsub231ps zmm30,zmm29,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xba, 0x72, 0x7f                               }, { vfmsub231ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xba, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmsub231ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xba, 0x72, 0x80                               }, { vfmsub231ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xba, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmsub231ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}             }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0xbb, 0xf4                                     }, { vfmsub231sd xmm30{k7},xmm29,xmm28                            }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0xbb, 0xf4                                     }, { vfmsub231sd xmm30{k7}{z},xmm29,xmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0xbb, 0xf4                                     }, { vfmsub231sd xmm30{k7},xmm29,xmm28,{rn-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x57, 0xbb, 0xf4                                     }, { vfmsub231sd xmm30{k7},xmm29,xmm28,{ru-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x37, 0xbb, 0xf4                                     }, { vfmsub231sd xmm30{k7},xmm29,xmm28,{rd-sae}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x77, 0xbb, 0xf4                                     }, { vfmsub231sd xmm30{k7},xmm29,xmm28,{rz-sae}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbb, 0x31                                     }, { vfmsub231sd xmm30{k7},xmm29,QWORD [rcx]                      }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0xbb, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsub231sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]          }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbb, 0x72, 0x7f                               }, { vfmsub231sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbb, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmsub231sd xmm30{k7},xmm29,QWORD [rdx+0x400]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbb, 0x72, 0x80                               }, { vfmsub231sd xmm30{k7},xmm29,QWORD [rdx-0x400]                }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbb, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmsub231sd xmm30{k7},xmm29,QWORD [rdx-0x408]                }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0xbb, 0xf4                                     }, { vfmsub231ss xmm30{k7},xmm29,xmm28                            }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0xbb, 0xf4                                     }, { vfmsub231ss xmm30{k7}{z},xmm29,xmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0xbb, 0xf4                                     }, { vfmsub231ss xmm30{k7},xmm29,xmm28,{rn-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x57, 0xbb, 0xf4                                     }, { vfmsub231ss xmm30{k7},xmm29,xmm28,{ru-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x37, 0xbb, 0xf4                                     }, { vfmsub231ss xmm30{k7},xmm29,xmm28,{rd-sae}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x77, 0xbb, 0xf4                                     }, { vfmsub231ss xmm30{k7},xmm29,xmm28,{rz-sae}                   }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbb, 0x31                                     }, { vfmsub231ss xmm30{k7},xmm29,DWORD [rcx]                      }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0xbb, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsub231ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]          }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbb, 0x72, 0x7f                               }, { vfmsub231ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbb, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmsub231ss xmm30{k7},xmm29,DWORD [rdx+0x200]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbb, 0x72, 0x80                               }, { vfmsub231ss xmm30{k7},xmm29,DWORD [rdx-0x200]                }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbb, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmsub231ss xmm30{k7},xmm29,DWORD [rdx-0x204]                }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x97, 0xf4                                     }, { vfmsubadd132pd zmm30,zmm29,zmm28                             }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x97, 0xf4                                     }, { vfmsubadd132pd zmm30{k7},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x97, 0xf4                                     }, { vfmsubadd132pd zmm30{k7}{z},zmm29,zmm28                      }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0x97, 0xf4                                     }, { vfmsubadd132pd zmm30,zmm29,zmm28,{rn-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0x97, 0xf4                                     }, { vfmsubadd132pd zmm30,zmm29,zmm28,{ru-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0x97, 0xf4                                     }, { vfmsubadd132pd zmm30,zmm29,zmm28,{rd-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0x97, 0xf4                                     }, { vfmsubadd132pd zmm30,zmm29,zmm28,{rz-sae}                    }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x97, 0x31                                     }, { vfmsubadd132pd zmm30,zmm29,ZWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x97, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsubadd132pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x97, 0x31                                     }, { vfmsubadd132pd zmm30,zmm29,QWORD [rcx]{1to8}                 }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x97, 0x72, 0x7f                               }, { vfmsubadd132pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x97, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmsubadd132pd zmm30,zmm29,ZWORD [rdx+0x2000]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x97, 0x72, 0x80                               }, { vfmsubadd132pd zmm30,zmm29,ZWORD [rdx-0x2000]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x97, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmsubadd132pd zmm30,zmm29,ZWORD [rdx-0x2040]                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x97, 0x72, 0x7f                               }, { vfmsubadd132pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x97, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmsubadd132pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x97, 0x72, 0x80                               }, { vfmsubadd132pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x97, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmsubadd132pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}           }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x97, 0xf4                                     }, { vfmsubadd132ps zmm30,zmm29,zmm28                             }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x97, 0xf4                                     }, { vfmsubadd132ps zmm30{k7},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x97, 0xf4                                     }, { vfmsubadd132ps zmm30{k7}{z},zmm29,zmm28                      }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0x97, 0xf4                                     }, { vfmsubadd132ps zmm30,zmm29,zmm28,{rn-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0x97, 0xf4                                     }, { vfmsubadd132ps zmm30,zmm29,zmm28,{ru-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0x97, 0xf4                                     }, { vfmsubadd132ps zmm30,zmm29,zmm28,{rd-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0x97, 0xf4                                     }, { vfmsubadd132ps zmm30,zmm29,zmm28,{rz-sae}                    }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x97, 0x31                                     }, { vfmsubadd132ps zmm30,zmm29,ZWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x97, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsubadd132ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x97, 0x31                                     }, { vfmsubadd132ps zmm30,zmm29,DWORD [rcx]{1to16}                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x97, 0x72, 0x7f                               }, { vfmsubadd132ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x97, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmsubadd132ps zmm30,zmm29,ZWORD [rdx+0x2000]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x97, 0x72, 0x80                               }, { vfmsubadd132ps zmm30,zmm29,ZWORD [rdx-0x2000]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x97, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmsubadd132ps zmm30,zmm29,ZWORD [rdx-0x2040]                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x97, 0x72, 0x7f                               }, { vfmsubadd132ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x97, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmsubadd132ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x97, 0x72, 0x80                               }, { vfmsubadd132ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x97, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmsubadd132ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}          }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0xa7, 0xf4                                     }, { vfmsubadd213pd zmm30,zmm29,zmm28                             }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0xa7, 0xf4                                     }, { vfmsubadd213pd zmm30{k7},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0xa7, 0xf4                                     }, { vfmsubadd213pd zmm30{k7}{z},zmm29,zmm28                      }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0xa7, 0xf4                                     }, { vfmsubadd213pd zmm30,zmm29,zmm28,{rn-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0xa7, 0xf4                                     }, { vfmsubadd213pd zmm30,zmm29,zmm28,{ru-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0xa7, 0xf4                                     }, { vfmsubadd213pd zmm30,zmm29,zmm28,{rd-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0xa7, 0xf4                                     }, { vfmsubadd213pd zmm30,zmm29,zmm28,{rz-sae}                    }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa7, 0x31                                     }, { vfmsubadd213pd zmm30,zmm29,ZWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0xa7, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsubadd213pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa7, 0x31                                     }, { vfmsubadd213pd zmm30,zmm29,QWORD [rcx]{1to8}                 }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa7, 0x72, 0x7f                               }, { vfmsubadd213pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa7, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmsubadd213pd zmm30,zmm29,ZWORD [rdx+0x2000]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa7, 0x72, 0x80                               }, { vfmsubadd213pd zmm30,zmm29,ZWORD [rdx-0x2000]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xa7, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmsubadd213pd zmm30,zmm29,ZWORD [rdx-0x2040]                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa7, 0x72, 0x7f                               }, { vfmsubadd213pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa7, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmsubadd213pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa7, 0x72, 0x80                               }, { vfmsubadd213pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xa7, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmsubadd213pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}           }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0xa7, 0xf4                                     }, { vfmsubadd213ps zmm30,zmm29,zmm28                             }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0xa7, 0xf4                                     }, { vfmsubadd213ps zmm30{k7},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0xa7, 0xf4                                     }, { vfmsubadd213ps zmm30{k7}{z},zmm29,zmm28                      }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0xa7, 0xf4                                     }, { vfmsubadd213ps zmm30,zmm29,zmm28,{rn-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0xa7, 0xf4                                     }, { vfmsubadd213ps zmm30,zmm29,zmm28,{ru-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0xa7, 0xf4                                     }, { vfmsubadd213ps zmm30,zmm29,zmm28,{rd-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0xa7, 0xf4                                     }, { vfmsubadd213ps zmm30,zmm29,zmm28,{rz-sae}                    }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa7, 0x31                                     }, { vfmsubadd213ps zmm30,zmm29,ZWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0xa7, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsubadd213ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa7, 0x31                                     }, { vfmsubadd213ps zmm30,zmm29,DWORD [rcx]{1to16}                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa7, 0x72, 0x7f                               }, { vfmsubadd213ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa7, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmsubadd213ps zmm30,zmm29,ZWORD [rdx+0x2000]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa7, 0x72, 0x80                               }, { vfmsubadd213ps zmm30,zmm29,ZWORD [rdx-0x2000]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xa7, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmsubadd213ps zmm30,zmm29,ZWORD [rdx-0x2040]                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa7, 0x72, 0x7f                               }, { vfmsubadd213ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa7, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmsubadd213ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa7, 0x72, 0x80                               }, { vfmsubadd213ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xa7, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmsubadd213ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}          }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0xb7, 0xf4                                     }, { vfmsubadd231pd zmm30,zmm29,zmm28                             }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0xb7, 0xf4                                     }, { vfmsubadd231pd zmm30{k7},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0xb7, 0xf4                                     }, { vfmsubadd231pd zmm30{k7}{z},zmm29,zmm28                      }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0xb7, 0xf4                                     }, { vfmsubadd231pd zmm30,zmm29,zmm28,{rn-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0xb7, 0xf4                                     }, { vfmsubadd231pd zmm30,zmm29,zmm28,{ru-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0xb7, 0xf4                                     }, { vfmsubadd231pd zmm30,zmm29,zmm28,{rd-sae}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0xb7, 0xf4                                     }, { vfmsubadd231pd zmm30,zmm29,zmm28,{rz-sae}                    }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb7, 0x31                                     }, { vfmsubadd231pd zmm30,zmm29,ZWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0xb7, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsubadd231pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb7, 0x31                                     }, { vfmsubadd231pd zmm30,zmm29,QWORD [rcx]{1to8}                 }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb7, 0x72, 0x7f                               }, { vfmsubadd231pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb7, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmsubadd231pd zmm30,zmm29,ZWORD [rdx+0x2000]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb7, 0x72, 0x80                               }, { vfmsubadd231pd zmm30,zmm29,ZWORD [rdx-0x2000]                }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xb7, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmsubadd231pd zmm30,zmm29,ZWORD [rdx-0x2040]                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb7, 0x72, 0x7f                               }, { vfmsubadd231pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb7, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfmsubadd231pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb7, 0x72, 0x80                               }, { vfmsubadd231pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}           }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xb7, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfmsubadd231pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}           }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0xb7, 0xf4                                     }, { vfmsubadd231ps zmm30,zmm29,zmm28                             }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0xb7, 0xf4                                     }, { vfmsubadd231ps zmm30{k7},zmm29,zmm28                         }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0xb7, 0xf4                                     }, { vfmsubadd231ps zmm30{k7}{z},zmm29,zmm28                      }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0xb7, 0xf4                                     }, { vfmsubadd231ps zmm30,zmm29,zmm28,{rn-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0xb7, 0xf4                                     }, { vfmsubadd231ps zmm30,zmm29,zmm28,{ru-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0xb7, 0xf4                                     }, { vfmsubadd231ps zmm30,zmm29,zmm28,{rd-sae}                    }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0xb7, 0xf4                                     }, { vfmsubadd231ps zmm30,zmm29,zmm28,{rz-sae}                    }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb7, 0x31                                     }, { vfmsubadd231ps zmm30,zmm29,ZWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0xb7, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfmsubadd231ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb7, 0x31                                     }, { vfmsubadd231ps zmm30,zmm29,DWORD [rcx]{1to16}                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb7, 0x72, 0x7f                               }, { vfmsubadd231ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb7, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfmsubadd231ps zmm30,zmm29,ZWORD [rdx+0x2000]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb7, 0x72, 0x80                               }, { vfmsubadd231ps zmm30,zmm29,ZWORD [rdx-0x2000]                }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xb7, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfmsubadd231ps zmm30,zmm29,ZWORD [rdx-0x2040]                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb7, 0x72, 0x7f                               }, { vfmsubadd231ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb7, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfmsubadd231ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb7, 0x72, 0x80                               }, { vfmsubadd231ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}          }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xb7, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfmsubadd231ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}          }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x9c, 0xf4                                     }, { vfnmadd132pd zmm30,zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x9c, 0xf4                                     }, { vfnmadd132pd zmm30{k7},zmm29,zmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x9c, 0xf4                                     }, { vfnmadd132pd zmm30{k7}{z},zmm29,zmm28                        }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0x9c, 0xf4                                     }, { vfnmadd132pd zmm30,zmm29,zmm28,{rn-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0x9c, 0xf4                                     }, { vfnmadd132pd zmm30,zmm29,zmm28,{ru-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0x9c, 0xf4                                     }, { vfnmadd132pd zmm30,zmm29,zmm28,{rd-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0x9c, 0xf4                                     }, { vfnmadd132pd zmm30,zmm29,zmm28,{rz-sae}                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9c, 0x31                                     }, { vfnmadd132pd zmm30,zmm29,ZWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x9c, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmadd132pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9c, 0x31                                     }, { vfnmadd132pd zmm30,zmm29,QWORD [rcx]{1to8}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9c, 0x72, 0x7f                               }, { vfnmadd132pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9c, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfnmadd132pd zmm30,zmm29,ZWORD [rdx+0x2000]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9c, 0x72, 0x80                               }, { vfnmadd132pd zmm30,zmm29,ZWORD [rdx-0x2000]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9c, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfnmadd132pd zmm30,zmm29,ZWORD [rdx-0x2040]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9c, 0x72, 0x7f                               }, { vfnmadd132pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9c, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfnmadd132pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9c, 0x72, 0x80                               }, { vfnmadd132pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9c, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfnmadd132pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}             }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x9c, 0xf4                                     }, { vfnmadd132ps zmm30,zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x9c, 0xf4                                     }, { vfnmadd132ps zmm30{k7},zmm29,zmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x9c, 0xf4                                     }, { vfnmadd132ps zmm30{k7}{z},zmm29,zmm28                        }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0x9c, 0xf4                                     }, { vfnmadd132ps zmm30,zmm29,zmm28,{rn-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0x9c, 0xf4                                     }, { vfnmadd132ps zmm30,zmm29,zmm28,{ru-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0x9c, 0xf4                                     }, { vfnmadd132ps zmm30,zmm29,zmm28,{rd-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0x9c, 0xf4                                     }, { vfnmadd132ps zmm30,zmm29,zmm28,{rz-sae}                      }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9c, 0x31                                     }, { vfnmadd132ps zmm30,zmm29,ZWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x9c, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmadd132ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9c, 0x31                                     }, { vfnmadd132ps zmm30,zmm29,DWORD [rcx]{1to16}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9c, 0x72, 0x7f                               }, { vfnmadd132ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9c, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfnmadd132ps zmm30,zmm29,ZWORD [rdx+0x2000]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9c, 0x72, 0x80                               }, { vfnmadd132ps zmm30,zmm29,ZWORD [rdx-0x2000]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9c, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfnmadd132ps zmm30,zmm29,ZWORD [rdx-0x2040]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9c, 0x72, 0x7f                               }, { vfnmadd132ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9c, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfnmadd132ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9c, 0x72, 0x80                               }, { vfnmadd132ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9c, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfnmadd132ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}            }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0x9d, 0xf4                                     }, { vfnmadd132sd xmm30{k7},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0x9d, 0xf4                                     }, { vfnmadd132sd xmm30{k7}{z},xmm29,xmm28                        }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0x9d, 0xf4                                     }, { vfnmadd132sd xmm30{k7},xmm29,xmm28,{rn-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x57, 0x9d, 0xf4                                     }, { vfnmadd132sd xmm30{k7},xmm29,xmm28,{ru-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x37, 0x9d, 0xf4                                     }, { vfnmadd132sd xmm30{k7},xmm29,xmm28,{rd-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x77, 0x9d, 0xf4                                     }, { vfnmadd132sd xmm30{k7},xmm29,xmm28,{rz-sae}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9d, 0x31                                     }, { vfnmadd132sd xmm30{k7},xmm29,QWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0x9d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmadd132sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]         }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9d, 0x72, 0x7f                               }, { vfnmadd132sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9d, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfnmadd132sd xmm30{k7},xmm29,QWORD [rdx+0x400]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9d, 0x72, 0x80                               }, { vfnmadd132sd xmm30{k7},xmm29,QWORD [rdx-0x400]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9d, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfnmadd132sd xmm30{k7},xmm29,QWORD [rdx-0x408]               }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0x9d, 0xf4                                     }, { vfnmadd132ss xmm30{k7},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0x9d, 0xf4                                     }, { vfnmadd132ss xmm30{k7}{z},xmm29,xmm28                        }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0x9d, 0xf4                                     }, { vfnmadd132ss xmm30{k7},xmm29,xmm28,{rn-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x57, 0x9d, 0xf4                                     }, { vfnmadd132ss xmm30{k7},xmm29,xmm28,{ru-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x37, 0x9d, 0xf4                                     }, { vfnmadd132ss xmm30{k7},xmm29,xmm28,{rd-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x77, 0x9d, 0xf4                                     }, { vfnmadd132ss xmm30{k7},xmm29,xmm28,{rz-sae}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9d, 0x31                                     }, { vfnmadd132ss xmm30{k7},xmm29,DWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0x9d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmadd132ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]         }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9d, 0x72, 0x7f                               }, { vfnmadd132ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9d, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfnmadd132ss xmm30{k7},xmm29,DWORD [rdx+0x200]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9d, 0x72, 0x80                               }, { vfnmadd132ss xmm30{k7},xmm29,DWORD [rdx-0x200]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9d, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfnmadd132ss xmm30{k7},xmm29,DWORD [rdx-0x204]               }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0xac, 0xf4                                     }, { vfnmadd213pd zmm30,zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0xac, 0xf4                                     }, { vfnmadd213pd zmm30{k7},zmm29,zmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0xac, 0xf4                                     }, { vfnmadd213pd zmm30{k7}{z},zmm29,zmm28                        }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0xac, 0xf4                                     }, { vfnmadd213pd zmm30,zmm29,zmm28,{rn-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0xac, 0xf4                                     }, { vfnmadd213pd zmm30,zmm29,zmm28,{ru-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0xac, 0xf4                                     }, { vfnmadd213pd zmm30,zmm29,zmm28,{rd-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0xac, 0xf4                                     }, { vfnmadd213pd zmm30,zmm29,zmm28,{rz-sae}                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xac, 0x31                                     }, { vfnmadd213pd zmm30,zmm29,ZWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0xac, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmadd213pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xac, 0x31                                     }, { vfnmadd213pd zmm30,zmm29,QWORD [rcx]{1to8}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xac, 0x72, 0x7f                               }, { vfnmadd213pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xac, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfnmadd213pd zmm30,zmm29,ZWORD [rdx+0x2000]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xac, 0x72, 0x80                               }, { vfnmadd213pd zmm30,zmm29,ZWORD [rdx-0x2000]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xac, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfnmadd213pd zmm30,zmm29,ZWORD [rdx-0x2040]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xac, 0x72, 0x7f                               }, { vfnmadd213pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xac, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfnmadd213pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xac, 0x72, 0x80                               }, { vfnmadd213pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xac, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfnmadd213pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}             }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0xac, 0xf4                                     }, { vfnmadd213ps zmm30,zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0xac, 0xf4                                     }, { vfnmadd213ps zmm30{k7},zmm29,zmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0xac, 0xf4                                     }, { vfnmadd213ps zmm30{k7}{z},zmm29,zmm28                        }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0xac, 0xf4                                     }, { vfnmadd213ps zmm30,zmm29,zmm28,{rn-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0xac, 0xf4                                     }, { vfnmadd213ps zmm30,zmm29,zmm28,{ru-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0xac, 0xf4                                     }, { vfnmadd213ps zmm30,zmm29,zmm28,{rd-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0xac, 0xf4                                     }, { vfnmadd213ps zmm30,zmm29,zmm28,{rz-sae}                      }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xac, 0x31                                     }, { vfnmadd213ps zmm30,zmm29,ZWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0xac, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmadd213ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xac, 0x31                                     }, { vfnmadd213ps zmm30,zmm29,DWORD [rcx]{1to16}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xac, 0x72, 0x7f                               }, { vfnmadd213ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xac, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfnmadd213ps zmm30,zmm29,ZWORD [rdx+0x2000]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xac, 0x72, 0x80                               }, { vfnmadd213ps zmm30,zmm29,ZWORD [rdx-0x2000]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xac, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfnmadd213ps zmm30,zmm29,ZWORD [rdx-0x2040]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xac, 0x72, 0x7f                               }, { vfnmadd213ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xac, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfnmadd213ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xac, 0x72, 0x80                               }, { vfnmadd213ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xac, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfnmadd213ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}            }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0xad, 0xf4                                     }, { vfnmadd213sd xmm30{k7},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0xad, 0xf4                                     }, { vfnmadd213sd xmm30{k7}{z},xmm29,xmm28                        }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0xad, 0xf4                                     }, { vfnmadd213sd xmm30{k7},xmm29,xmm28,{rn-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x57, 0xad, 0xf4                                     }, { vfnmadd213sd xmm30{k7},xmm29,xmm28,{ru-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x37, 0xad, 0xf4                                     }, { vfnmadd213sd xmm30{k7},xmm29,xmm28,{rd-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x77, 0xad, 0xf4                                     }, { vfnmadd213sd xmm30{k7},xmm29,xmm28,{rz-sae}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xad, 0x31                                     }, { vfnmadd213sd xmm30{k7},xmm29,QWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0xad, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmadd213sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]         }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xad, 0x72, 0x7f                               }, { vfnmadd213sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xad, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfnmadd213sd xmm30{k7},xmm29,QWORD [rdx+0x400]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xad, 0x72, 0x80                               }, { vfnmadd213sd xmm30{k7},xmm29,QWORD [rdx-0x400]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xad, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfnmadd213sd xmm30{k7},xmm29,QWORD [rdx-0x408]               }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0xad, 0xf4                                     }, { vfnmadd213ss xmm30{k7},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0xad, 0xf4                                     }, { vfnmadd213ss xmm30{k7}{z},xmm29,xmm28                        }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0xad, 0xf4                                     }, { vfnmadd213ss xmm30{k7},xmm29,xmm28,{rn-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x57, 0xad, 0xf4                                     }, { vfnmadd213ss xmm30{k7},xmm29,xmm28,{ru-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x37, 0xad, 0xf4                                     }, { vfnmadd213ss xmm30{k7},xmm29,xmm28,{rd-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x77, 0xad, 0xf4                                     }, { vfnmadd213ss xmm30{k7},xmm29,xmm28,{rz-sae}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xad, 0x31                                     }, { vfnmadd213ss xmm30{k7},xmm29,DWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0xad, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmadd213ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]         }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xad, 0x72, 0x7f                               }, { vfnmadd213ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xad, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfnmadd213ss xmm30{k7},xmm29,DWORD [rdx+0x200]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xad, 0x72, 0x80                               }, { vfnmadd213ss xmm30{k7},xmm29,DWORD [rdx-0x200]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xad, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfnmadd213ss xmm30{k7},xmm29,DWORD [rdx-0x204]               }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0xbc, 0xf4                                     }, { vfnmadd231pd zmm30,zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0xbc, 0xf4                                     }, { vfnmadd231pd zmm30{k7},zmm29,zmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0xbc, 0xf4                                     }, { vfnmadd231pd zmm30{k7}{z},zmm29,zmm28                        }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0xbc, 0xf4                                     }, { vfnmadd231pd zmm30,zmm29,zmm28,{rn-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0xbc, 0xf4                                     }, { vfnmadd231pd zmm30,zmm29,zmm28,{ru-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0xbc, 0xf4                                     }, { vfnmadd231pd zmm30,zmm29,zmm28,{rd-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0xbc, 0xf4                                     }, { vfnmadd231pd zmm30,zmm29,zmm28,{rz-sae}                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xbc, 0x31                                     }, { vfnmadd231pd zmm30,zmm29,ZWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0xbc, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmadd231pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xbc, 0x31                                     }, { vfnmadd231pd zmm30,zmm29,QWORD [rcx]{1to8}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xbc, 0x72, 0x7f                               }, { vfnmadd231pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xbc, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfnmadd231pd zmm30,zmm29,ZWORD [rdx+0x2000]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xbc, 0x72, 0x80                               }, { vfnmadd231pd zmm30,zmm29,ZWORD [rdx-0x2000]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xbc, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfnmadd231pd zmm30,zmm29,ZWORD [rdx-0x2040]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xbc, 0x72, 0x7f                               }, { vfnmadd231pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xbc, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfnmadd231pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xbc, 0x72, 0x80                               }, { vfnmadd231pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xbc, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfnmadd231pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}             }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0xbc, 0xf4                                     }, { vfnmadd231ps zmm30,zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0xbc, 0xf4                                     }, { vfnmadd231ps zmm30{k7},zmm29,zmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0xbc, 0xf4                                     }, { vfnmadd231ps zmm30{k7}{z},zmm29,zmm28                        }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0xbc, 0xf4                                     }, { vfnmadd231ps zmm30,zmm29,zmm28,{rn-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0xbc, 0xf4                                     }, { vfnmadd231ps zmm30,zmm29,zmm28,{ru-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0xbc, 0xf4                                     }, { vfnmadd231ps zmm30,zmm29,zmm28,{rd-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0xbc, 0xf4                                     }, { vfnmadd231ps zmm30,zmm29,zmm28,{rz-sae}                      }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xbc, 0x31                                     }, { vfnmadd231ps zmm30,zmm29,ZWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0xbc, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmadd231ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xbc, 0x31                                     }, { vfnmadd231ps zmm30,zmm29,DWORD [rcx]{1to16}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xbc, 0x72, 0x7f                               }, { vfnmadd231ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xbc, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfnmadd231ps zmm30,zmm29,ZWORD [rdx+0x2000]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xbc, 0x72, 0x80                               }, { vfnmadd231ps zmm30,zmm29,ZWORD [rdx-0x2000]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xbc, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfnmadd231ps zmm30,zmm29,ZWORD [rdx-0x2040]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xbc, 0x72, 0x7f                               }, { vfnmadd231ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xbc, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfnmadd231ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xbc, 0x72, 0x80                               }, { vfnmadd231ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xbc, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfnmadd231ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}            }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0xbd, 0xf4                                     }, { vfnmadd231sd xmm30{k7},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0xbd, 0xf4                                     }, { vfnmadd231sd xmm30{k7}{z},xmm29,xmm28                        }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0xbd, 0xf4                                     }, { vfnmadd231sd xmm30{k7},xmm29,xmm28,{rn-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x57, 0xbd, 0xf4                                     }, { vfnmadd231sd xmm30{k7},xmm29,xmm28,{ru-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x37, 0xbd, 0xf4                                     }, { vfnmadd231sd xmm30{k7},xmm29,xmm28,{rd-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x77, 0xbd, 0xf4                                     }, { vfnmadd231sd xmm30{k7},xmm29,xmm28,{rz-sae}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbd, 0x31                                     }, { vfnmadd231sd xmm30{k7},xmm29,QWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0xbd, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmadd231sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]         }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbd, 0x72, 0x7f                               }, { vfnmadd231sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbd, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfnmadd231sd xmm30{k7},xmm29,QWORD [rdx+0x400]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbd, 0x72, 0x80                               }, { vfnmadd231sd xmm30{k7},xmm29,QWORD [rdx-0x400]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbd, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfnmadd231sd xmm30{k7},xmm29,QWORD [rdx-0x408]               }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0xbd, 0xf4                                     }, { vfnmadd231ss xmm30{k7},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0xbd, 0xf4                                     }, { vfnmadd231ss xmm30{k7}{z},xmm29,xmm28                        }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0xbd, 0xf4                                     }, { vfnmadd231ss xmm30{k7},xmm29,xmm28,{rn-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x57, 0xbd, 0xf4                                     }, { vfnmadd231ss xmm30{k7},xmm29,xmm28,{ru-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x37, 0xbd, 0xf4                                     }, { vfnmadd231ss xmm30{k7},xmm29,xmm28,{rd-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x77, 0xbd, 0xf4                                     }, { vfnmadd231ss xmm30{k7},xmm29,xmm28,{rz-sae}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbd, 0x31                                     }, { vfnmadd231ss xmm30{k7},xmm29,DWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0xbd, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmadd231ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]         }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbd, 0x72, 0x7f                               }, { vfnmadd231ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbd, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfnmadd231ss xmm30{k7},xmm29,DWORD [rdx+0x200]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbd, 0x72, 0x80                               }, { vfnmadd231ss xmm30{k7},xmm29,DWORD [rdx-0x200]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbd, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfnmadd231ss xmm30{k7},xmm29,DWORD [rdx-0x204]               }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x9e, 0xf4                                     }, { vfnmsub132pd zmm30,zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x9e, 0xf4                                     }, { vfnmsub132pd zmm30{k7},zmm29,zmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x9e, 0xf4                                     }, { vfnmsub132pd zmm30{k7}{z},zmm29,zmm28                        }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0x9e, 0xf4                                     }, { vfnmsub132pd zmm30,zmm29,zmm28,{rn-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0x9e, 0xf4                                     }, { vfnmsub132pd zmm30,zmm29,zmm28,{ru-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0x9e, 0xf4                                     }, { vfnmsub132pd zmm30,zmm29,zmm28,{rd-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0x9e, 0xf4                                     }, { vfnmsub132pd zmm30,zmm29,zmm28,{rz-sae}                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9e, 0x31                                     }, { vfnmsub132pd zmm30,zmm29,ZWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x9e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmsub132pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9e, 0x31                                     }, { vfnmsub132pd zmm30,zmm29,QWORD [rcx]{1to8}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9e, 0x72, 0x7f                               }, { vfnmsub132pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9e, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfnmsub132pd zmm30,zmm29,ZWORD [rdx+0x2000]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9e, 0x72, 0x80                               }, { vfnmsub132pd zmm30,zmm29,ZWORD [rdx-0x2000]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x9e, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfnmsub132pd zmm30,zmm29,ZWORD [rdx-0x2040]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9e, 0x72, 0x7f                               }, { vfnmsub132pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9e, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfnmsub132pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9e, 0x72, 0x80                               }, { vfnmsub132pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x9e, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfnmsub132pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}             }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x9e, 0xf4                                     }, { vfnmsub132ps zmm30,zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x9e, 0xf4                                     }, { vfnmsub132ps zmm30{k7},zmm29,zmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x9e, 0xf4                                     }, { vfnmsub132ps zmm30{k7}{z},zmm29,zmm28                        }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0x9e, 0xf4                                     }, { vfnmsub132ps zmm30,zmm29,zmm28,{rn-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0x9e, 0xf4                                     }, { vfnmsub132ps zmm30,zmm29,zmm28,{ru-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0x9e, 0xf4                                     }, { vfnmsub132ps zmm30,zmm29,zmm28,{rd-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0x9e, 0xf4                                     }, { vfnmsub132ps zmm30,zmm29,zmm28,{rz-sae}                      }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9e, 0x31                                     }, { vfnmsub132ps zmm30,zmm29,ZWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x9e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmsub132ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9e, 0x31                                     }, { vfnmsub132ps zmm30,zmm29,DWORD [rcx]{1to16}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9e, 0x72, 0x7f                               }, { vfnmsub132ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9e, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfnmsub132ps zmm30,zmm29,ZWORD [rdx+0x2000]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9e, 0x72, 0x80                               }, { vfnmsub132ps zmm30,zmm29,ZWORD [rdx-0x2000]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x9e, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfnmsub132ps zmm30,zmm29,ZWORD [rdx-0x2040]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9e, 0x72, 0x7f                               }, { vfnmsub132ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9e, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfnmsub132ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9e, 0x72, 0x80                               }, { vfnmsub132ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x9e, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfnmsub132ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}            }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0x9f, 0xf4                                     }, { vfnmsub132sd xmm30{k7},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0x9f, 0xf4                                     }, { vfnmsub132sd xmm30{k7}{z},xmm29,xmm28                        }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0x9f, 0xf4                                     }, { vfnmsub132sd xmm30{k7},xmm29,xmm28,{rn-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x57, 0x9f, 0xf4                                     }, { vfnmsub132sd xmm30{k7},xmm29,xmm28,{ru-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x37, 0x9f, 0xf4                                     }, { vfnmsub132sd xmm30{k7},xmm29,xmm28,{rd-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x77, 0x9f, 0xf4                                     }, { vfnmsub132sd xmm30{k7},xmm29,xmm28,{rz-sae}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9f, 0x31                                     }, { vfnmsub132sd xmm30{k7},xmm29,QWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0x9f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmsub132sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]         }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9f, 0x72, 0x7f                               }, { vfnmsub132sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9f, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfnmsub132sd xmm30{k7},xmm29,QWORD [rdx+0x400]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9f, 0x72, 0x80                               }, { vfnmsub132sd xmm30{k7},xmm29,QWORD [rdx-0x400]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x9f, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfnmsub132sd xmm30{k7},xmm29,QWORD [rdx-0x408]               }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0x9f, 0xf4                                     }, { vfnmsub132ss xmm30{k7},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0x9f, 0xf4                                     }, { vfnmsub132ss xmm30{k7}{z},xmm29,xmm28                        }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0x9f, 0xf4                                     }, { vfnmsub132ss xmm30{k7},xmm29,xmm28,{rn-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x57, 0x9f, 0xf4                                     }, { vfnmsub132ss xmm30{k7},xmm29,xmm28,{ru-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x37, 0x9f, 0xf4                                     }, { vfnmsub132ss xmm30{k7},xmm29,xmm28,{rd-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x77, 0x9f, 0xf4                                     }, { vfnmsub132ss xmm30{k7},xmm29,xmm28,{rz-sae}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9f, 0x31                                     }, { vfnmsub132ss xmm30{k7},xmm29,DWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0x9f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmsub132ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]         }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9f, 0x72, 0x7f                               }, { vfnmsub132ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9f, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfnmsub132ss xmm30{k7},xmm29,DWORD [rdx+0x200]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9f, 0x72, 0x80                               }, { vfnmsub132ss xmm30{k7},xmm29,DWORD [rdx-0x200]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x9f, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfnmsub132ss xmm30{k7},xmm29,DWORD [rdx-0x204]               }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0xae, 0xf4                                     }, { vfnmsub213pd zmm30,zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0xae, 0xf4                                     }, { vfnmsub213pd zmm30{k7},zmm29,zmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0xae, 0xf4                                     }, { vfnmsub213pd zmm30{k7}{z},zmm29,zmm28                        }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0xae, 0xf4                                     }, { vfnmsub213pd zmm30,zmm29,zmm28,{rn-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0xae, 0xf4                                     }, { vfnmsub213pd zmm30,zmm29,zmm28,{ru-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0xae, 0xf4                                     }, { vfnmsub213pd zmm30,zmm29,zmm28,{rd-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0xae, 0xf4                                     }, { vfnmsub213pd zmm30,zmm29,zmm28,{rz-sae}                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xae, 0x31                                     }, { vfnmsub213pd zmm30,zmm29,ZWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0xae, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmsub213pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xae, 0x31                                     }, { vfnmsub213pd zmm30,zmm29,QWORD [rcx]{1to8}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xae, 0x72, 0x7f                               }, { vfnmsub213pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xae, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfnmsub213pd zmm30,zmm29,ZWORD [rdx+0x2000]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xae, 0x72, 0x80                               }, { vfnmsub213pd zmm30,zmm29,ZWORD [rdx-0x2000]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xae, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfnmsub213pd zmm30,zmm29,ZWORD [rdx-0x2040]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xae, 0x72, 0x7f                               }, { vfnmsub213pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xae, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfnmsub213pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xae, 0x72, 0x80                               }, { vfnmsub213pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xae, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfnmsub213pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}             }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0xae, 0xf4                                     }, { vfnmsub213ps zmm30,zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0xae, 0xf4                                     }, { vfnmsub213ps zmm30{k7},zmm29,zmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0xae, 0xf4                                     }, { vfnmsub213ps zmm30{k7}{z},zmm29,zmm28                        }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0xae, 0xf4                                     }, { vfnmsub213ps zmm30,zmm29,zmm28,{rn-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0xae, 0xf4                                     }, { vfnmsub213ps zmm30,zmm29,zmm28,{ru-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0xae, 0xf4                                     }, { vfnmsub213ps zmm30,zmm29,zmm28,{rd-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0xae, 0xf4                                     }, { vfnmsub213ps zmm30,zmm29,zmm28,{rz-sae}                      }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xae, 0x31                                     }, { vfnmsub213ps zmm30,zmm29,ZWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0xae, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmsub213ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xae, 0x31                                     }, { vfnmsub213ps zmm30,zmm29,DWORD [rcx]{1to16}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xae, 0x72, 0x7f                               }, { vfnmsub213ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xae, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfnmsub213ps zmm30,zmm29,ZWORD [rdx+0x2000]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xae, 0x72, 0x80                               }, { vfnmsub213ps zmm30,zmm29,ZWORD [rdx-0x2000]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xae, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfnmsub213ps zmm30,zmm29,ZWORD [rdx-0x2040]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xae, 0x72, 0x7f                               }, { vfnmsub213ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xae, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfnmsub213ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xae, 0x72, 0x80                               }, { vfnmsub213ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xae, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfnmsub213ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}            }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0xaf, 0xf4                                     }, { vfnmsub213sd xmm30{k7},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0xaf, 0xf4                                     }, { vfnmsub213sd xmm30{k7}{z},xmm29,xmm28                        }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0xaf, 0xf4                                     }, { vfnmsub213sd xmm30{k7},xmm29,xmm28,{rn-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x57, 0xaf, 0xf4                                     }, { vfnmsub213sd xmm30{k7},xmm29,xmm28,{ru-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x37, 0xaf, 0xf4                                     }, { vfnmsub213sd xmm30{k7},xmm29,xmm28,{rd-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x77, 0xaf, 0xf4                                     }, { vfnmsub213sd xmm30{k7},xmm29,xmm28,{rz-sae}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xaf, 0x31                                     }, { vfnmsub213sd xmm30{k7},xmm29,QWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0xaf, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmsub213sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]         }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xaf, 0x72, 0x7f                               }, { vfnmsub213sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xaf, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfnmsub213sd xmm30{k7},xmm29,QWORD [rdx+0x400]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xaf, 0x72, 0x80                               }, { vfnmsub213sd xmm30{k7},xmm29,QWORD [rdx-0x400]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xaf, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfnmsub213sd xmm30{k7},xmm29,QWORD [rdx-0x408]               }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0xaf, 0xf4                                     }, { vfnmsub213ss xmm30{k7},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0xaf, 0xf4                                     }, { vfnmsub213ss xmm30{k7}{z},xmm29,xmm28                        }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0xaf, 0xf4                                     }, { vfnmsub213ss xmm30{k7},xmm29,xmm28,{rn-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x57, 0xaf, 0xf4                                     }, { vfnmsub213ss xmm30{k7},xmm29,xmm28,{ru-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x37, 0xaf, 0xf4                                     }, { vfnmsub213ss xmm30{k7},xmm29,xmm28,{rd-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x77, 0xaf, 0xf4                                     }, { vfnmsub213ss xmm30{k7},xmm29,xmm28,{rz-sae}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xaf, 0x31                                     }, { vfnmsub213ss xmm30{k7},xmm29,DWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0xaf, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmsub213ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]         }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xaf, 0x72, 0x7f                               }, { vfnmsub213ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xaf, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfnmsub213ss xmm30{k7},xmm29,DWORD [rdx+0x200]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xaf, 0x72, 0x80                               }, { vfnmsub213ss xmm30{k7},xmm29,DWORD [rdx-0x200]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xaf, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfnmsub213ss xmm30{k7},xmm29,DWORD [rdx-0x204]               }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0xbe, 0xf4                                     }, { vfnmsub231pd zmm30,zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0xbe, 0xf4                                     }, { vfnmsub231pd zmm30{k7},zmm29,zmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0xbe, 0xf4                                     }, { vfnmsub231pd zmm30{k7}{z},zmm29,zmm28                        }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0xbe, 0xf4                                     }, { vfnmsub231pd zmm30,zmm29,zmm28,{rn-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0xbe, 0xf4                                     }, { vfnmsub231pd zmm30,zmm29,zmm28,{ru-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0xbe, 0xf4                                     }, { vfnmsub231pd zmm30,zmm29,zmm28,{rd-sae}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0xbe, 0xf4                                     }, { vfnmsub231pd zmm30,zmm29,zmm28,{rz-sae}                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xbe, 0x31                                     }, { vfnmsub231pd zmm30,zmm29,ZWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0xbe, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmsub231pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xbe, 0x31                                     }, { vfnmsub231pd zmm30,zmm29,QWORD [rcx]{1to8}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xbe, 0x72, 0x7f                               }, { vfnmsub231pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xbe, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfnmsub231pd zmm30,zmm29,ZWORD [rdx+0x2000]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xbe, 0x72, 0x80                               }, { vfnmsub231pd zmm30,zmm29,ZWORD [rdx-0x2000]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0xbe, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfnmsub231pd zmm30,zmm29,ZWORD [rdx-0x2040]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xbe, 0x72, 0x7f                               }, { vfnmsub231pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xbe, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfnmsub231pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xbe, 0x72, 0x80                               }, { vfnmsub231pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}             }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0xbe, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfnmsub231pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}             }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0xbe, 0xf4                                     }, { vfnmsub231ps zmm30,zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0xbe, 0xf4                                     }, { vfnmsub231ps zmm30{k7},zmm29,zmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0xbe, 0xf4                                     }, { vfnmsub231ps zmm30{k7}{z},zmm29,zmm28                        }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0xbe, 0xf4                                     }, { vfnmsub231ps zmm30,zmm29,zmm28,{rn-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0xbe, 0xf4                                     }, { vfnmsub231ps zmm30,zmm29,zmm28,{ru-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0xbe, 0xf4                                     }, { vfnmsub231ps zmm30,zmm29,zmm28,{rd-sae}                      }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0xbe, 0xf4                                     }, { vfnmsub231ps zmm30,zmm29,zmm28,{rz-sae}                      }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xbe, 0x31                                     }, { vfnmsub231ps zmm30,zmm29,ZWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0xbe, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmsub231ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xbe, 0x31                                     }, { vfnmsub231ps zmm30,zmm29,DWORD [rcx]{1to16}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xbe, 0x72, 0x7f                               }, { vfnmsub231ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xbe, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vfnmsub231ps zmm30,zmm29,ZWORD [rdx+0x2000]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xbe, 0x72, 0x80                               }, { vfnmsub231ps zmm30,zmm29,ZWORD [rdx-0x2000]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0xbe, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vfnmsub231ps zmm30,zmm29,ZWORD [rdx-0x2040]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xbe, 0x72, 0x7f                               }, { vfnmsub231ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xbe, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfnmsub231ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xbe, 0x72, 0x80                               }, { vfnmsub231ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}            }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0xbe, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfnmsub231ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}            }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0xbf, 0xf4                                     }, { vfnmsub231sd xmm30{k7},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0xbf, 0xf4                                     }, { vfnmsub231sd xmm30{k7}{z},xmm29,xmm28                        }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0xbf, 0xf4                                     }, { vfnmsub231sd xmm30{k7},xmm29,xmm28,{rn-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x57, 0xbf, 0xf4                                     }, { vfnmsub231sd xmm30{k7},xmm29,xmm28,{ru-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x37, 0xbf, 0xf4                                     }, { vfnmsub231sd xmm30{k7},xmm29,xmm28,{rd-sae}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x77, 0xbf, 0xf4                                     }, { vfnmsub231sd xmm30{k7},xmm29,xmm28,{rz-sae}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbf, 0x31                                     }, { vfnmsub231sd xmm30{k7},xmm29,QWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0xbf, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmsub231sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]         }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbf, 0x72, 0x7f                               }, { vfnmsub231sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbf, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vfnmsub231sd xmm30{k7},xmm29,QWORD [rdx+0x400]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbf, 0x72, 0x80                               }, { vfnmsub231sd xmm30{k7},xmm29,QWORD [rdx-0x400]               }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0xbf, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vfnmsub231sd xmm30{k7},xmm29,QWORD [rdx-0x408]               }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0xbf, 0xf4                                     }, { vfnmsub231ss xmm30{k7},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0xbf, 0xf4                                     }, { vfnmsub231ss xmm30{k7}{z},xmm29,xmm28                        }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0xbf, 0xf4                                     }, { vfnmsub231ss xmm30{k7},xmm29,xmm28,{rn-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x57, 0xbf, 0xf4                                     }, { vfnmsub231ss xmm30{k7},xmm29,xmm28,{ru-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x37, 0xbf, 0xf4                                     }, { vfnmsub231ss xmm30{k7},xmm29,xmm28,{rd-sae}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x77, 0xbf, 0xf4                                     }, { vfnmsub231ss xmm30{k7},xmm29,xmm28,{rz-sae}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbf, 0x31                                     }, { vfnmsub231ss xmm30{k7},xmm29,DWORD [rcx]                     }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0xbf, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vfnmsub231ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]         }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbf, 0x72, 0x7f                               }, { vfnmsub231ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbf, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vfnmsub231ss xmm30{k7},xmm29,DWORD [rdx+0x200]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbf, 0x72, 0x80                               }, { vfnmsub231ss xmm30{k7},xmm29,DWORD [rdx-0x200]               }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0xbf, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vfnmsub231ss xmm30{k7},xmm29,DWORD [rdx-0x204]               }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0x92, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherdpd zmm30{k1}, [r14+ymm31*8+0x7b]                     }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0x92, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherdpd zmm30{k1}, [r14+ymm31*8+0x7b]                     }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0x92, 0x74, 0x39, 0x20                         }, { vgatherdpd zmm30{k1}, [r9+ymm31*1+0x100]                     }
-testcase	{ 0x62, 0x22, 0xfd, 0x41, 0x92, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vgatherdpd zmm30{k1}, [rcx+ymm31*4+0x400]                    }
-testcase	{ 0x62, 0x02, 0x7d, 0x41, 0x92, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherdps zmm30{k1}, [r14+zmm31*8+0x7b]                     }
-testcase	{ 0x62, 0x02, 0x7d, 0x41, 0x92, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherdps zmm30{k1}, [r14+zmm31*8+0x7b]                     }
-testcase	{ 0x62, 0x02, 0x7d, 0x41, 0x92, 0x74, 0x39, 0x40                         }, { vgatherdps zmm30{k1}, [r9+zmm31*1+0x100]                     }
-testcase	{ 0x62, 0x22, 0x7d, 0x41, 0x92, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vgatherdps zmm30{k1}, [rcx+zmm31*4+0x400]                    }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0x93, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherqpd zmm30{k1}, [r14+zmm31*8+0x7b]                     }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0x93, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherqpd zmm30{k1}, [r14+zmm31*8+0x7b]                     }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0x93, 0x74, 0x39, 0x20                         }, { vgatherqpd zmm30{k1}, [r9+zmm31*1+0x100]                     }
-testcase	{ 0x62, 0x22, 0xfd, 0x41, 0x93, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vgatherqpd zmm30{k1}, [rcx+zmm31*4+0x400]                    }
-testcase	{ 0x62, 0x02, 0xfd, 0x48, 0x42, 0xf5                                     }, { vgetexppd zmm30,zmm29                                        }
-testcase	{ 0x62, 0x02, 0xfd, 0x4f, 0x42, 0xf5                                     }, { vgetexppd zmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x02, 0xfd, 0xcf, 0x42, 0xf5                                     }, { vgetexppd zmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x02, 0xfd, 0x18, 0x42, 0xf5                                     }, { vgetexppd zmm30,zmm29,{sae}                                  }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x42, 0x31                                     }, { vgetexppd zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0x42, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vgetexppd zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x42, 0x31                                     }, { vgetexppd zmm30,QWORD [rcx]{1to8}                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x42, 0x72, 0x7f                               }, { vgetexppd zmm30,ZWORD [rdx+0x1fc0]                           }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x42, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vgetexppd zmm30,ZWORD [rdx+0x2000]                           }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x42, 0x72, 0x80                               }, { vgetexppd zmm30,ZWORD [rdx-0x2000]                           }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x42, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vgetexppd zmm30,ZWORD [rdx-0x2040]                           }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x42, 0x72, 0x7f                               }, { vgetexppd zmm30,QWORD [rdx+0x3f8]{1to8}                      }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x42, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vgetexppd zmm30,QWORD [rdx+0x400]{1to8}                      }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x42, 0x72, 0x80                               }, { vgetexppd zmm30,QWORD [rdx-0x400]{1to8}                      }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x42, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vgetexppd zmm30,QWORD [rdx-0x408]{1to8}                      }
-testcase	{ 0x62, 0x02, 0x7d, 0x48, 0x42, 0xf5                                     }, { vgetexpps zmm30,zmm29                                        }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x42, 0xf5                                     }, { vgetexpps zmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x42, 0xf5                                     }, { vgetexpps zmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x02, 0x7d, 0x18, 0x42, 0xf5                                     }, { vgetexpps zmm30,zmm29,{sae}                                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x42, 0x31                                     }, { vgetexpps zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0x42, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vgetexpps zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x42, 0x31                                     }, { vgetexpps zmm30,DWORD [rcx]{1to16}                           }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x42, 0x72, 0x7f                               }, { vgetexpps zmm30,ZWORD [rdx+0x1fc0]                           }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x42, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vgetexpps zmm30,ZWORD [rdx+0x2000]                           }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x42, 0x72, 0x80                               }, { vgetexpps zmm30,ZWORD [rdx-0x2000]                           }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x42, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vgetexpps zmm30,ZWORD [rdx-0x2040]                           }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x42, 0x72, 0x7f                               }, { vgetexpps zmm30,DWORD [rdx+0x1fc]{1to16}                     }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x42, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vgetexpps zmm30,DWORD [rdx+0x200]{1to16}                     }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x42, 0x72, 0x80                               }, { vgetexpps zmm30,DWORD [rdx-0x200]{1to16}                     }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x42, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vgetexpps zmm30,DWORD [rdx-0x204]{1to16}                     }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0x43, 0xf4                                     }, { vgetexpsd xmm30{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0x43, 0xf4                                     }, { vgetexpsd xmm30{k7}{z},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0x43, 0xf4                                     }, { vgetexpsd xmm30{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x43, 0x31                                     }, { vgetexpsd xmm30{k7},xmm29,QWORD [rcx]                        }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0x43, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vgetexpsd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x43, 0x72, 0x7f                               }, { vgetexpsd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x43, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vgetexpsd xmm30{k7},xmm29,QWORD [rdx+0x400]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x43, 0x72, 0x80                               }, { vgetexpsd xmm30{k7},xmm29,QWORD [rdx-0x400]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x43, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vgetexpsd xmm30{k7},xmm29,QWORD [rdx-0x408]                  }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0x43, 0xf4                                     }, { vgetexpss xmm30{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0x43, 0xf4                                     }, { vgetexpss xmm30{k7}{z},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0x43, 0xf4                                     }, { vgetexpss xmm30{k7},xmm29,xmm28,{sae}                        }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x43, 0x31                                     }, { vgetexpss xmm30{k7},xmm29,DWORD [rcx]                        }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0x43, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vgetexpss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x43, 0x72, 0x7f                               }, { vgetexpss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x43, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vgetexpss xmm30{k7},xmm29,DWORD [rdx+0x200]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x43, 0x72, 0x80                               }, { vgetexpss xmm30{k7},xmm29,DWORD [rdx-0x200]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x43, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vgetexpss xmm30{k7},xmm29,DWORD [rdx-0x204]                  }
-testcase	{ 0x62, 0x03, 0xfd, 0x48, 0x26, 0xf5, 0xab                               }, { vgetmantpd zmm30,zmm29,0xab                                  }
-testcase	{ 0x62, 0x03, 0xfd, 0x4f, 0x26, 0xf5, 0xab                               }, { vgetmantpd zmm30{k7},zmm29,0xab                              }
-testcase	{ 0x62, 0x03, 0xfd, 0xcf, 0x26, 0xf5, 0xab                               }, { vgetmantpd zmm30{k7}{z},zmm29,0xab                           }
-testcase	{ 0x62, 0x03, 0xfd, 0x18, 0x26, 0xf5, 0xab                               }, { vgetmantpd zmm30,zmm29,{sae},0xab                            }
-testcase	{ 0x62, 0x03, 0xfd, 0x48, 0x26, 0xf5, 0x7b                               }, { vgetmantpd zmm30,zmm29,0x7b                                  }
-testcase	{ 0x62, 0x03, 0xfd, 0x18, 0x26, 0xf5, 0x7b                               }, { vgetmantpd zmm30,zmm29,{sae},0x7b                            }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x26, 0x31, 0x7b                               }, { vgetmantpd zmm30,ZWORD [rcx],0x7b                            }
-testcase	{ 0x62, 0x23, 0xfd, 0x48, 0x26, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vgetmantpd zmm30,ZWORD [rax+r14*8+0x123],0x7b                }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x26, 0x31, 0x7b                               }, { vgetmantpd zmm30,QWORD [rcx]{1to8},0x7b                      }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x26, 0x72, 0x7f, 0x7b                         }, { vgetmantpd zmm30,ZWORD [rdx+0x1fc0],0x7b                     }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x26, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vgetmantpd zmm30,ZWORD [rdx+0x2000],0x7b                     }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x26, 0x72, 0x80, 0x7b                         }, { vgetmantpd zmm30,ZWORD [rdx-0x2000],0x7b                     }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x26, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vgetmantpd zmm30,ZWORD [rdx-0x2040],0x7b                     }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x26, 0x72, 0x7f, 0x7b                         }, { vgetmantpd zmm30,QWORD [rdx+0x3f8]{1to8},0x7b                }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x26, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vgetmantpd zmm30,QWORD [rdx+0x400]{1to8},0x7b                }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x26, 0x72, 0x80, 0x7b                         }, { vgetmantpd zmm30,QWORD [rdx-0x400]{1to8},0x7b                }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x26, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vgetmantpd zmm30,QWORD [rdx-0x408]{1to8},0x7b                }
-testcase	{ 0x62, 0x03, 0x7d, 0x48, 0x26, 0xf5, 0xab                               }, { vgetmantps zmm30,zmm29,0xab                                  }
-testcase	{ 0x62, 0x03, 0x7d, 0x4f, 0x26, 0xf5, 0xab                               }, { vgetmantps zmm30{k7},zmm29,0xab                              }
-testcase	{ 0x62, 0x03, 0x7d, 0xcf, 0x26, 0xf5, 0xab                               }, { vgetmantps zmm30{k7}{z},zmm29,0xab                           }
-testcase	{ 0x62, 0x03, 0x7d, 0x18, 0x26, 0xf5, 0xab                               }, { vgetmantps zmm30,zmm29,{sae},0xab                            }
-testcase	{ 0x62, 0x03, 0x7d, 0x48, 0x26, 0xf5, 0x7b                               }, { vgetmantps zmm30,zmm29,0x7b                                  }
-testcase	{ 0x62, 0x03, 0x7d, 0x18, 0x26, 0xf5, 0x7b                               }, { vgetmantps zmm30,zmm29,{sae},0x7b                            }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x26, 0x31, 0x7b                               }, { vgetmantps zmm30,ZWORD [rcx],0x7b                            }
-testcase	{ 0x62, 0x23, 0x7d, 0x48, 0x26, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vgetmantps zmm30,ZWORD [rax+r14*8+0x123],0x7b                }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x26, 0x31, 0x7b                               }, { vgetmantps zmm30,DWORD [rcx]{1to16},0x7b                     }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x26, 0x72, 0x7f, 0x7b                         }, { vgetmantps zmm30,ZWORD [rdx+0x1fc0],0x7b                     }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x26, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vgetmantps zmm30,ZWORD [rdx+0x2000],0x7b                     }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x26, 0x72, 0x80, 0x7b                         }, { vgetmantps zmm30,ZWORD [rdx-0x2000],0x7b                     }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x26, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vgetmantps zmm30,ZWORD [rdx-0x2040],0x7b                     }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x26, 0x72, 0x7f, 0x7b                         }, { vgetmantps zmm30,DWORD [rdx+0x1fc]{1to16},0x7b               }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x26, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vgetmantps zmm30,DWORD [rdx+0x200]{1to16},0x7b               }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x26, 0x72, 0x80, 0x7b                         }, { vgetmantps zmm30,DWORD [rdx-0x200]{1to16},0x7b               }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x26, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vgetmantps zmm30,DWORD [rdx-0x204]{1to16},0x7b               }
-testcase	{ 0x62, 0x03, 0x95, 0x07, 0x27, 0xf4, 0xab                               }, { vgetmantsd xmm30{k7},xmm29,xmm28,0xab                        }
-testcase	{ 0x62, 0x03, 0x95, 0x87, 0x27, 0xf4, 0xab                               }, { vgetmantsd xmm30{k7}{z},xmm29,xmm28,0xab                     }
-testcase	{ 0x62, 0x03, 0x95, 0x17, 0x27, 0xf4, 0xab                               }, { vgetmantsd xmm30{k7},xmm29,xmm28,{sae},0xab                  }
-testcase	{ 0x62, 0x03, 0x95, 0x07, 0x27, 0xf4, 0x7b                               }, { vgetmantsd xmm30{k7},xmm29,xmm28,0x7b                        }
-testcase	{ 0x62, 0x03, 0x95, 0x17, 0x27, 0xf4, 0x7b                               }, { vgetmantsd xmm30{k7},xmm29,xmm28,{sae},0x7b                  }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x27, 0x31, 0x7b                               }, { vgetmantsd xmm30{k7},xmm29,QWORD [rcx],0x7b                  }
-testcase	{ 0x62, 0x23, 0x95, 0x07, 0x27, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vgetmantsd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123],0x7b      }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x27, 0x72, 0x7f, 0x7b                         }, { vgetmantsd xmm30{k7},xmm29,QWORD [rdx+0x3f8],0x7b            }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x27, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vgetmantsd xmm30{k7},xmm29,QWORD [rdx+0x400],0x7b            }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x27, 0x72, 0x80, 0x7b                         }, { vgetmantsd xmm30{k7},xmm29,QWORD [rdx-0x400],0x7b            }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x27, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vgetmantsd xmm30{k7},xmm29,QWORD [rdx-0x408],0x7b            }
-testcase	{ 0x62, 0x03, 0x15, 0x07, 0x27, 0xf4, 0xab                               }, { vgetmantss xmm30{k7},xmm29,xmm28,0xab                        }
-testcase	{ 0x62, 0x03, 0x15, 0x87, 0x27, 0xf4, 0xab                               }, { vgetmantss xmm30{k7}{z},xmm29,xmm28,0xab                     }
-testcase	{ 0x62, 0x03, 0x15, 0x17, 0x27, 0xf4, 0xab                               }, { vgetmantss xmm30{k7},xmm29,xmm28,{sae},0xab                  }
-testcase	{ 0x62, 0x03, 0x15, 0x07, 0x27, 0xf4, 0x7b                               }, { vgetmantss xmm30{k7},xmm29,xmm28,0x7b                        }
-testcase	{ 0x62, 0x03, 0x15, 0x17, 0x27, 0xf4, 0x7b                               }, { vgetmantss xmm30{k7},xmm29,xmm28,{sae},0x7b                  }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x27, 0x31, 0x7b                               }, { vgetmantss xmm30{k7},xmm29,DWORD [rcx],0x7b                  }
-testcase	{ 0x62, 0x23, 0x15, 0x07, 0x27, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vgetmantss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123],0x7b      }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x27, 0x72, 0x7f, 0x7b                         }, { vgetmantss xmm30{k7},xmm29,DWORD [rdx+0x1fc],0x7b            }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x27, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vgetmantss xmm30{k7},xmm29,DWORD [rdx+0x200],0x7b            }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x27, 0x72, 0x80, 0x7b                         }, { vgetmantss xmm30{k7},xmm29,DWORD [rdx-0x200],0x7b            }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x27, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vgetmantss xmm30{k7},xmm29,DWORD [rdx-0x204],0x7b            }
-testcase	{ 0x62, 0x03, 0x15, 0x47, 0x18, 0xf4, 0xab                               }, { vinsertf32x4 zmm30{k7},zmm29,xmm28,0xab                      }
-testcase	{ 0x62, 0x03, 0x15, 0xc7, 0x18, 0xf4, 0xab                               }, { vinsertf32x4 zmm30{k7}{z},zmm29,xmm28,0xab                   }
-testcase	{ 0x62, 0x03, 0x15, 0x47, 0x18, 0xf4, 0x7b                               }, { vinsertf32x4 zmm30{k7},zmm29,xmm28,0x7b                      }
-testcase	{ 0x62, 0x63, 0x15, 0x47, 0x18, 0x31, 0x7b                               }, { vinsertf32x4 zmm30{k7},zmm29,OWORD [rcx],0x7b                }
-testcase	{ 0x62, 0x23, 0x15, 0x47, 0x18, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vinsertf32x4 zmm30{k7},zmm29,OWORD [rax+r14*8+0x123],0x7b    }
-testcase	{ 0x62, 0x63, 0x15, 0x47, 0x18, 0x72, 0x7f, 0x7b                         }, { vinsertf32x4 zmm30{k7},zmm29,OWORD [rdx+0x7f0],0x7b          }
-testcase	{ 0x62, 0x63, 0x15, 0x47, 0x18, 0xb2, 0x00, 0x08, 0x00, 0x00, 0x7b       }, { vinsertf32x4 zmm30{k7},zmm29,OWORD [rdx+0x800],0x7b          }
-testcase	{ 0x62, 0x63, 0x15, 0x47, 0x18, 0x72, 0x80, 0x7b                         }, { vinsertf32x4 zmm30{k7},zmm29,OWORD [rdx-0x800],0x7b          }
-testcase	{ 0x62, 0x63, 0x15, 0x47, 0x18, 0xb2, 0xf0, 0xf7, 0xff, 0xff, 0x7b       }, { vinsertf32x4 zmm30{k7},zmm29,OWORD [rdx-0x810],0x7b          }
-testcase	{ 0x62, 0x03, 0x95, 0x47, 0x1a, 0xf4, 0xab                               }, { vinsertf64x4 zmm30{k7},zmm29,ymm28,0xab                      }
-testcase	{ 0x62, 0x03, 0x95, 0xc7, 0x1a, 0xf4, 0xab                               }, { vinsertf64x4 zmm30{k7}{z},zmm29,ymm28,0xab                   }
-testcase	{ 0x62, 0x03, 0x95, 0x47, 0x1a, 0xf4, 0x7b                               }, { vinsertf64x4 zmm30{k7},zmm29,ymm28,0x7b                      }
-testcase	{ 0x62, 0x63, 0x95, 0x47, 0x1a, 0x31, 0x7b                               }, { vinsertf64x4 zmm30{k7},zmm29,YWORD [rcx],0x7b                }
-testcase	{ 0x62, 0x23, 0x95, 0x47, 0x1a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vinsertf64x4 zmm30{k7},zmm29,YWORD [rax+r14*8+0x123],0x7b    }
-testcase	{ 0x62, 0x63, 0x95, 0x47, 0x1a, 0x72, 0x7f, 0x7b                         }, { vinsertf64x4 zmm30{k7},zmm29,YWORD [rdx+0xfe0],0x7b          }
-testcase	{ 0x62, 0x63, 0x95, 0x47, 0x1a, 0xb2, 0x00, 0x10, 0x00, 0x00, 0x7b       }, { vinsertf64x4 zmm30{k7},zmm29,YWORD [rdx+0x1000],0x7b         }
-testcase	{ 0x62, 0x63, 0x95, 0x47, 0x1a, 0x72, 0x80, 0x7b                         }, { vinsertf64x4 zmm30{k7},zmm29,YWORD [rdx-0x1000],0x7b         }
-testcase	{ 0x62, 0x63, 0x95, 0x47, 0x1a, 0xb2, 0xe0, 0xef, 0xff, 0xff, 0x7b       }, { vinsertf64x4 zmm30{k7},zmm29,YWORD [rdx-0x1020],0x7b         }
-testcase	{ 0x62, 0x03, 0x15, 0x47, 0x38, 0xf4, 0xab                               }, { vinserti32x4 zmm30{k7},zmm29,xmm28,0xab                      }
-testcase	{ 0x62, 0x03, 0x15, 0xc7, 0x38, 0xf4, 0xab                               }, { vinserti32x4 zmm30{k7}{z},zmm29,xmm28,0xab                   }
-testcase	{ 0x62, 0x03, 0x15, 0x47, 0x38, 0xf4, 0x7b                               }, { vinserti32x4 zmm30{k7},zmm29,xmm28,0x7b                      }
-testcase	{ 0x62, 0x63, 0x15, 0x47, 0x38, 0x31, 0x7b                               }, { vinserti32x4 zmm30{k7},zmm29,OWORD [rcx],0x7b                }
-testcase	{ 0x62, 0x23, 0x15, 0x47, 0x38, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vinserti32x4 zmm30{k7},zmm29,OWORD [rax+r14*8+0x123],0x7b    }
-testcase	{ 0x62, 0x63, 0x15, 0x47, 0x38, 0x72, 0x7f, 0x7b                         }, { vinserti32x4 zmm30{k7},zmm29,OWORD [rdx+0x7f0],0x7b          }
-testcase	{ 0x62, 0x63, 0x15, 0x47, 0x38, 0xb2, 0x00, 0x08, 0x00, 0x00, 0x7b       }, { vinserti32x4 zmm30{k7},zmm29,OWORD [rdx+0x800],0x7b          }
-testcase	{ 0x62, 0x63, 0x15, 0x47, 0x38, 0x72, 0x80, 0x7b                         }, { vinserti32x4 zmm30{k7},zmm29,OWORD [rdx-0x800],0x7b          }
-testcase	{ 0x62, 0x63, 0x15, 0x47, 0x38, 0xb2, 0xf0, 0xf7, 0xff, 0xff, 0x7b       }, { vinserti32x4 zmm30{k7},zmm29,OWORD [rdx-0x810],0x7b          }
-testcase	{ 0x62, 0x03, 0x95, 0x47, 0x3a, 0xf4, 0xab                               }, { vinserti64x4 zmm30{k7},zmm29,ymm28,0xab                      }
-testcase	{ 0x62, 0x03, 0x95, 0xc7, 0x3a, 0xf4, 0xab                               }, { vinserti64x4 zmm30{k7}{z},zmm29,ymm28,0xab                   }
-testcase	{ 0x62, 0x03, 0x95, 0x47, 0x3a, 0xf4, 0x7b                               }, { vinserti64x4 zmm30{k7},zmm29,ymm28,0x7b                      }
-testcase	{ 0x62, 0x63, 0x95, 0x47, 0x3a, 0x31, 0x7b                               }, { vinserti64x4 zmm30{k7},zmm29,YWORD [rcx],0x7b                }
-testcase	{ 0x62, 0x23, 0x95, 0x47, 0x3a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vinserti64x4 zmm30{k7},zmm29,YWORD [rax+r14*8+0x123],0x7b    }
-testcase	{ 0x62, 0x63, 0x95, 0x47, 0x3a, 0x72, 0x7f, 0x7b                         }, { vinserti64x4 zmm30{k7},zmm29,YWORD [rdx+0xfe0],0x7b          }
-testcase	{ 0x62, 0x63, 0x95, 0x47, 0x3a, 0xb2, 0x00, 0x10, 0x00, 0x00, 0x7b       }, { vinserti64x4 zmm30{k7},zmm29,YWORD [rdx+0x1000],0x7b         }
-testcase	{ 0x62, 0x63, 0x95, 0x47, 0x3a, 0x72, 0x80, 0x7b                         }, { vinserti64x4 zmm30{k7},zmm29,YWORD [rdx-0x1000],0x7b         }
-testcase	{ 0x62, 0x63, 0x95, 0x47, 0x3a, 0xb2, 0xe0, 0xef, 0xff, 0xff, 0x7b       }, { vinserti64x4 zmm30{k7},zmm29,YWORD [rdx-0x1020],0x7b         }
-testcase	{ 0x62, 0x03, 0x15, 0x00, 0x21, 0xf4, 0xab                               }, { vinsertps xmm30,xmm29,xmm28,0xab                             }
-testcase	{ 0x62, 0x03, 0x15, 0x00, 0x21, 0xf4, 0x7b                               }, { vinsertps xmm30,xmm29,xmm28,0x7b                             }
-testcase	{ 0x62, 0x63, 0x15, 0x00, 0x21, 0x31, 0x7b                               }, { vinsertps xmm30,xmm29,DWORD [rcx],0x7b                       }
-testcase	{ 0x62, 0x23, 0x15, 0x00, 0x21, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vinsertps xmm30,xmm29,DWORD [rax+r14*8+0x123],0x7b           }
-testcase	{ 0x62, 0x63, 0x15, 0x00, 0x21, 0x72, 0x7f, 0x7b                         }, { vinsertps xmm30,xmm29,DWORD [rdx+0x1fc],0x7b                 }
-testcase	{ 0x62, 0x63, 0x15, 0x00, 0x21, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vinsertps xmm30,xmm29,DWORD [rdx+0x200],0x7b                 }
-testcase	{ 0x62, 0x63, 0x15, 0x00, 0x21, 0x72, 0x80, 0x7b                         }, { vinsertps xmm30,xmm29,DWORD [rdx-0x200],0x7b                 }
-testcase	{ 0x62, 0x63, 0x15, 0x00, 0x21, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vinsertps xmm30,xmm29,DWORD [rdx-0x204],0x7b                 }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0x5f, 0xf4                                     }, { vmaxpd zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0x5f, 0xf4                                     }, { vmaxpd zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0x5f, 0xf4                                     }, { vmaxpd zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x95, 0x10, 0x5f, 0xf4                                     }, { vmaxpd zmm30,zmm29,zmm28,{sae}                               }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5f, 0x31                                     }, { vmaxpd zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0x5f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmaxpd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5f, 0x31                                     }, { vmaxpd zmm30,zmm29,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5f, 0x72, 0x7f                               }, { vmaxpd zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmaxpd zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5f, 0x72, 0x80                               }, { vmaxpd zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmaxpd zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5f, 0x72, 0x7f                               }, { vmaxpd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5f, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vmaxpd zmm30,zmm29,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5f, 0x72, 0x80                               }, { vmaxpd zmm30,zmm29,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5f, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vmaxpd zmm30,zmm29,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x01, 0x14, 0x40, 0x5f, 0xf4                                     }, { vmaxps zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x14, 0x47, 0x5f, 0xf4                                     }, { vmaxps zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x14, 0xc7, 0x5f, 0xf4                                     }, { vmaxps zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x14, 0x10, 0x5f, 0xf4                                     }, { vmaxps zmm30,zmm29,zmm28,{sae}                               }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5f, 0x31                                     }, { vmaxps zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x14, 0x40, 0x5f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmaxps zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5f, 0x31                                     }, { vmaxps zmm30,zmm29,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5f, 0x72, 0x7f                               }, { vmaxps zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmaxps zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5f, 0x72, 0x80                               }, { vmaxps zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmaxps zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5f, 0x72, 0x7f                               }, { vmaxps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5f, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vmaxps zmm30,zmm29,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5f, 0x72, 0x80                               }, { vmaxps zmm30,zmm29,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5f, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vmaxps zmm30,zmm29,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x01, 0x97, 0x07, 0x5f, 0xf4                                     }, { vmaxsd xmm30{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x97, 0x87, 0x5f, 0xf4                                     }, { vmaxsd xmm30{k7}{z},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x97, 0x17, 0x5f, 0xf4                                     }, { vmaxsd xmm30{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5f, 0x31                                     }, { vmaxsd xmm30{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x97, 0x07, 0x5f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmaxsd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5f, 0x72, 0x7f                               }, { vmaxsd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5f, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vmaxsd xmm30{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5f, 0x72, 0x80                               }, { vmaxsd xmm30{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5f, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vmaxsd xmm30{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x01, 0x16, 0x07, 0x5f, 0xf4                                     }, { vmaxss xmm30{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x16, 0x87, 0x5f, 0xf4                                     }, { vmaxss xmm30{k7}{z},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x16, 0x17, 0x5f, 0xf4                                     }, { vmaxss xmm30{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5f, 0x31                                     }, { vmaxss xmm30{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x16, 0x07, 0x5f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmaxss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5f, 0x72, 0x7f                               }, { vmaxss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5f, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vmaxss xmm30{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5f, 0x72, 0x80                               }, { vmaxss xmm30{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5f, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vmaxss xmm30{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0x5d, 0xf4                                     }, { vminpd zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0x5d, 0xf4                                     }, { vminpd zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0x5d, 0xf4                                     }, { vminpd zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x95, 0x10, 0x5d, 0xf4                                     }, { vminpd zmm30,zmm29,zmm28,{sae}                               }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5d, 0x31                                     }, { vminpd zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0x5d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vminpd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5d, 0x31                                     }, { vminpd zmm30,zmm29,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5d, 0x72, 0x7f                               }, { vminpd zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5d, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vminpd zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5d, 0x72, 0x80                               }, { vminpd zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5d, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vminpd zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5d, 0x72, 0x7f                               }, { vminpd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5d, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vminpd zmm30,zmm29,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5d, 0x72, 0x80                               }, { vminpd zmm30,zmm29,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5d, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vminpd zmm30,zmm29,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x01, 0x14, 0x40, 0x5d, 0xf4                                     }, { vminps zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x14, 0x47, 0x5d, 0xf4                                     }, { vminps zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x14, 0xc7, 0x5d, 0xf4                                     }, { vminps zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x14, 0x10, 0x5d, 0xf4                                     }, { vminps zmm30,zmm29,zmm28,{sae}                               }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5d, 0x31                                     }, { vminps zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x14, 0x40, 0x5d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vminps zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5d, 0x31                                     }, { vminps zmm30,zmm29,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5d, 0x72, 0x7f                               }, { vminps zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5d, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vminps zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5d, 0x72, 0x80                               }, { vminps zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5d, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vminps zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5d, 0x72, 0x7f                               }, { vminps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5d, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vminps zmm30,zmm29,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5d, 0x72, 0x80                               }, { vminps zmm30,zmm29,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5d, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vminps zmm30,zmm29,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x01, 0x97, 0x07, 0x5d, 0xf4                                     }, { vminsd xmm30{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x97, 0x87, 0x5d, 0xf4                                     }, { vminsd xmm30{k7}{z},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x97, 0x17, 0x5d, 0xf4                                     }, { vminsd xmm30{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5d, 0x31                                     }, { vminsd xmm30{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x97, 0x07, 0x5d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vminsd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5d, 0x72, 0x7f                               }, { vminsd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5d, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vminsd xmm30{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5d, 0x72, 0x80                               }, { vminsd xmm30{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5d, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vminsd xmm30{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x01, 0x16, 0x07, 0x5d, 0xf4                                     }, { vminss xmm30{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x16, 0x87, 0x5d, 0xf4                                     }, { vminss xmm30{k7}{z},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x16, 0x17, 0x5d, 0xf4                                     }, { vminss xmm30{k7},xmm29,xmm28,{sae}                           }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5d, 0x31                                     }, { vminss xmm30{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x16, 0x07, 0x5d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vminss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5d, 0x72, 0x7f                               }, { vminss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5d, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vminss xmm30{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5d, 0x72, 0x80                               }, { vminss xmm30{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5d, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vminss xmm30{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x01, 0xfd, 0x48, 0x28, 0xf5                                     }, { vmovapd zmm30,zmm29                                          }
-testcase	{ 0x62, 0x01, 0xfd, 0x4f, 0x28, 0xf5                                     }, { vmovapd zmm30{k7},zmm29                                      }
-testcase	{ 0x62, 0x01, 0xfd, 0xcf, 0x28, 0xf5                                     }, { vmovapd zmm30{k7}{z},zmm29                                   }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x28, 0x31                                     }, { vmovapd zmm30,ZWORD [rcx]                                    }
-testcase	{ 0x62, 0x21, 0xfd, 0x48, 0x28, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovapd zmm30,ZWORD [rax+r14*8+0x123]                        }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x28, 0x72, 0x7f                               }, { vmovapd zmm30,ZWORD [rdx+0x1fc0]                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x28, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovapd zmm30,ZWORD [rdx+0x2000]                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x28, 0x72, 0x80                               }, { vmovapd zmm30,ZWORD [rdx-0x2000]                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x28, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovapd zmm30,ZWORD [rdx-0x2040]                             }
-testcase	{ 0x62, 0x01, 0x7c, 0x48, 0x28, 0xf5                                     }, { vmovaps zmm30,zmm29                                          }
-testcase	{ 0x62, 0x01, 0x7c, 0x4f, 0x28, 0xf5                                     }, { vmovaps zmm30{k7},zmm29                                      }
-testcase	{ 0x62, 0x01, 0x7c, 0xcf, 0x28, 0xf5                                     }, { vmovaps zmm30{k7}{z},zmm29                                   }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x28, 0x31                                     }, { vmovaps zmm30,ZWORD [rcx]                                    }
-testcase	{ 0x62, 0x21, 0x7c, 0x48, 0x28, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovaps zmm30,ZWORD [rax+r14*8+0x123]                        }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x28, 0x72, 0x7f                               }, { vmovaps zmm30,ZWORD [rdx+0x1fc0]                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x28, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovaps zmm30,ZWORD [rdx+0x2000]                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x28, 0x72, 0x80                               }, { vmovaps zmm30,ZWORD [rdx-0x2000]                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x28, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovaps zmm30,ZWORD [rdx-0x2040]                             }
-testcase	{ 0x62, 0x61, 0x7d, 0x08, 0x6e, 0xf0                                     }, { vmovd  xmm30,eax                                             }
-testcase	{ 0x62, 0x61, 0x7d, 0x08, 0x6e, 0xf5                                     }, { vmovd  xmm30,ebp                                             }
-testcase	{ 0x62, 0x41, 0x7d, 0x08, 0x6e, 0xf5                                     }, { vmovd  xmm30,r13d                                            }
-testcase	{ 0x62, 0x61, 0x7d, 0x08, 0x6e, 0x31                                     }, { vmovd  xmm30,DWORD [rcx]                                     }
-testcase	{ 0x62, 0x21, 0x7d, 0x08, 0x6e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovd  xmm30,DWORD [rax+r14*8+0x123]                         }
-testcase	{ 0x62, 0x61, 0x7d, 0x08, 0x6e, 0x72, 0x7f                               }, { vmovd  xmm30,DWORD [rdx+0x1fc]                               }
-testcase	{ 0x62, 0x61, 0x7d, 0x08, 0x6e, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vmovd  xmm30,DWORD [rdx+0x200]                               }
-testcase	{ 0x62, 0x61, 0x7d, 0x08, 0x6e, 0x72, 0x80                               }, { vmovd  xmm30,DWORD [rdx-0x200]                               }
-testcase	{ 0x62, 0x61, 0x7d, 0x08, 0x6e, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vmovd  xmm30,DWORD [rdx-0x204]                               }
-testcase	{ 0x62, 0x61, 0x7d, 0x08, 0x7e, 0x31                                     }, { vmovd  DWORD [rcx],xmm30                                     }
-testcase	{ 0x62, 0x21, 0x7d, 0x08, 0x7e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovd  DWORD [rax+r14*8+0x123],xmm30                         }
-testcase	{ 0x62, 0x61, 0x7d, 0x08, 0x7e, 0x72, 0x7f                               }, { vmovd  DWORD [rdx+0x1fc],xmm30                               }
-testcase	{ 0x62, 0x61, 0x7d, 0x08, 0x7e, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vmovd  DWORD [rdx+0x200],xmm30                               }
-testcase	{ 0x62, 0x61, 0x7d, 0x08, 0x7e, 0x72, 0x80                               }, { vmovd  DWORD [rdx-0x200],xmm30                               }
-testcase	{ 0x62, 0x61, 0x7d, 0x08, 0x7e, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vmovd  DWORD [rdx-0x204],xmm30                               }
-testcase	{ 0x62, 0x01, 0xff, 0x48, 0x12, 0xf5                                     }, { vmovddup zmm30,zmm29                                         }
-testcase	{ 0x62, 0x01, 0xff, 0x4f, 0x12, 0xf5                                     }, { vmovddup zmm30{k7},zmm29                                     }
-testcase	{ 0x62, 0x01, 0xff, 0xcf, 0x12, 0xf5                                     }, { vmovddup zmm30{k7}{z},zmm29                                  }
-testcase	{ 0x62, 0x61, 0xff, 0x48, 0x12, 0x31                                     }, { vmovddup zmm30,ZWORD [rcx]                                   }
-testcase	{ 0x62, 0x21, 0xff, 0x48, 0x12, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovddup zmm30,ZWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0x61, 0xff, 0x48, 0x12, 0x72, 0x7f                               }, { vmovddup zmm30,ZWORD [rdx+0x1fc0]                            }
-testcase	{ 0x62, 0x61, 0xff, 0x48, 0x12, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovddup zmm30,ZWORD [rdx+0x2000]                            }
-testcase	{ 0x62, 0x61, 0xff, 0x48, 0x12, 0x72, 0x80                               }, { vmovddup zmm30,ZWORD [rdx-0x2000]                            }
-testcase	{ 0x62, 0x61, 0xff, 0x48, 0x12, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovddup zmm30,ZWORD [rdx-0x2040]                            }
-testcase	{ 0x62, 0x01, 0x7d, 0x48, 0x6f, 0xf5                                     }, { vmovdqa32 zmm30,zmm29                                        }
-testcase	{ 0x62, 0x01, 0x7d, 0x4f, 0x6f, 0xf5                                     }, { vmovdqa32 zmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x01, 0x7d, 0xcf, 0x6f, 0xf5                                     }, { vmovdqa32 zmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x6f, 0x31                                     }, { vmovdqa32 zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x21, 0x7d, 0x48, 0x6f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovdqa32 zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x6f, 0x72, 0x7f                               }, { vmovdqa32 zmm30,ZWORD [rdx+0x1fc0]                           }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x6f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovdqa32 zmm30,ZWORD [rdx+0x2000]                           }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x6f, 0x72, 0x80                               }, { vmovdqa32 zmm30,ZWORD [rdx-0x2000]                           }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x6f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovdqa32 zmm30,ZWORD [rdx-0x2040]                           }
-testcase	{ 0x62, 0x01, 0xfd, 0x48, 0x6f, 0xf5                                     }, { vmovdqa64 zmm30,zmm29                                        }
-testcase	{ 0x62, 0x01, 0xfd, 0x4f, 0x6f, 0xf5                                     }, { vmovdqa64 zmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x01, 0xfd, 0xcf, 0x6f, 0xf5                                     }, { vmovdqa64 zmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x6f, 0x31                                     }, { vmovdqa64 zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x21, 0xfd, 0x48, 0x6f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovdqa64 zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x6f, 0x72, 0x7f                               }, { vmovdqa64 zmm30,ZWORD [rdx+0x1fc0]                           }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x6f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovdqa64 zmm30,ZWORD [rdx+0x2000]                           }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x6f, 0x72, 0x80                               }, { vmovdqa64 zmm30,ZWORD [rdx-0x2000]                           }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x6f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovdqa64 zmm30,ZWORD [rdx-0x2040]                           }
-testcase	{ 0x62, 0x01, 0x7e, 0x48, 0x6f, 0xf5                                     }, { vmovdqu32 zmm30,zmm29                                        }
-testcase	{ 0x62, 0x01, 0x7e, 0x4f, 0x6f, 0xf5                                     }, { vmovdqu32 zmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x01, 0x7e, 0xcf, 0x6f, 0xf5                                     }, { vmovdqu32 zmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x6f, 0x31                                     }, { vmovdqu32 zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x21, 0x7e, 0x48, 0x6f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovdqu32 zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x6f, 0x72, 0x7f                               }, { vmovdqu32 zmm30,ZWORD [rdx+0x1fc0]                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x6f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovdqu32 zmm30,ZWORD [rdx+0x2000]                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x6f, 0x72, 0x80                               }, { vmovdqu32 zmm30,ZWORD [rdx-0x2000]                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x6f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovdqu32 zmm30,ZWORD [rdx-0x2040]                           }
-testcase	{ 0x62, 0x01, 0xfe, 0x48, 0x6f, 0xf5                                     }, { vmovdqu64 zmm30,zmm29                                        }
-testcase	{ 0x62, 0x01, 0xfe, 0x4f, 0x6f, 0xf5                                     }, { vmovdqu64 zmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x01, 0xfe, 0xcf, 0x6f, 0xf5                                     }, { vmovdqu64 zmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x61, 0xfe, 0x48, 0x6f, 0x31                                     }, { vmovdqu64 zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x21, 0xfe, 0x48, 0x6f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovdqu64 zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x61, 0xfe, 0x48, 0x6f, 0x72, 0x7f                               }, { vmovdqu64 zmm30,ZWORD [rdx+0x1fc0]                           }
-testcase	{ 0x62, 0x61, 0xfe, 0x48, 0x6f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovdqu64 zmm30,ZWORD [rdx+0x2000]                           }
-testcase	{ 0x62, 0x61, 0xfe, 0x48, 0x6f, 0x72, 0x80                               }, { vmovdqu64 zmm30,ZWORD [rdx-0x2000]                           }
-testcase	{ 0x62, 0x61, 0xfe, 0x48, 0x6f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovdqu64 zmm30,ZWORD [rdx-0x2040]                           }
-testcase	{ 0x62, 0x01, 0x14, 0x00, 0x12, 0xf4                                     }, { vmovhlps xmm30,xmm29,xmm28                                   }
-testcase	{ 0x62, 0x61, 0x8d, 0x00, 0x16, 0x29                                     }, { vmovhpd xmm29,xmm30,QWORD [rcx]                              }
-testcase	{ 0x62, 0x21, 0x8d, 0x00, 0x16, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovhpd xmm29,xmm30,QWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x61, 0x8d, 0x00, 0x16, 0x6a, 0x7f                               }, { vmovhpd xmm29,xmm30,QWORD [rdx+0x3f8]                        }
-testcase	{ 0x62, 0x61, 0x8d, 0x00, 0x16, 0xaa, 0x00, 0x04, 0x00, 0x00             }, { vmovhpd xmm29,xmm30,QWORD [rdx+0x400]                        }
-testcase	{ 0x62, 0x61, 0x8d, 0x00, 0x16, 0x6a, 0x80                               }, { vmovhpd xmm29,xmm30,QWORD [rdx-0x400]                        }
-testcase	{ 0x62, 0x61, 0x8d, 0x00, 0x16, 0xaa, 0xf8, 0xfb, 0xff, 0xff             }, { vmovhpd xmm29,xmm30,QWORD [rdx-0x408]                        }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x17, 0x31                                     }, { vmovhpd QWORD [rcx],xmm30                                    }
-testcase	{ 0x62, 0x21, 0xfd, 0x08, 0x17, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovhpd QWORD [rax+r14*8+0x123],xmm30                        }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x17, 0x72, 0x7f                               }, { vmovhpd QWORD [rdx+0x3f8],xmm30                              }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x17, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vmovhpd QWORD [rdx+0x400],xmm30                              }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x17, 0x72, 0x80                               }, { vmovhpd QWORD [rdx-0x400],xmm30                              }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x17, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vmovhpd QWORD [rdx-0x408],xmm30                              }
-testcase	{ 0x62, 0x61, 0x0c, 0x00, 0x16, 0x29                                     }, { vmovhps xmm29,xmm30,QWORD [rcx]                              }
-testcase	{ 0x62, 0x21, 0x0c, 0x00, 0x16, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovhps xmm29,xmm30,QWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x61, 0x0c, 0x00, 0x16, 0x6a, 0x7f                               }, { vmovhps xmm29,xmm30,QWORD [rdx+0x3f8]                        }
-testcase	{ 0x62, 0x61, 0x0c, 0x00, 0x16, 0xaa, 0x00, 0x04, 0x00, 0x00             }, { vmovhps xmm29,xmm30,QWORD [rdx+0x400]                        }
-testcase	{ 0x62, 0x61, 0x0c, 0x00, 0x16, 0x6a, 0x80                               }, { vmovhps xmm29,xmm30,QWORD [rdx-0x400]                        }
-testcase	{ 0x62, 0x61, 0x0c, 0x00, 0x16, 0xaa, 0xf8, 0xfb, 0xff, 0xff             }, { vmovhps xmm29,xmm30,QWORD [rdx-0x408]                        }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x17, 0x31                                     }, { vmovhps QWORD [rcx],xmm30                                    }
-testcase	{ 0x62, 0x21, 0x7c, 0x08, 0x17, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovhps QWORD [rax+r14*8+0x123],xmm30                        }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x17, 0x72, 0x7f                               }, { vmovhps QWORD [rdx+0x3f8],xmm30                              }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x17, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vmovhps QWORD [rdx+0x400],xmm30                              }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x17, 0x72, 0x80                               }, { vmovhps QWORD [rdx-0x400],xmm30                              }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x17, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vmovhps QWORD [rdx-0x408],xmm30                              }
-testcase	{ 0x62, 0x01, 0x14, 0x00, 0x16, 0xf4                                     }, { vmovlhps xmm30,xmm29,xmm28                                   }
-testcase	{ 0x62, 0x61, 0x8d, 0x00, 0x12, 0x29                                     }, { vmovlpd xmm29,xmm30,QWORD [rcx]                              }
-testcase	{ 0x62, 0x21, 0x8d, 0x00, 0x12, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovlpd xmm29,xmm30,QWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x61, 0x8d, 0x00, 0x12, 0x6a, 0x7f                               }, { vmovlpd xmm29,xmm30,QWORD [rdx+0x3f8]                        }
-testcase	{ 0x62, 0x61, 0x8d, 0x00, 0x12, 0xaa, 0x00, 0x04, 0x00, 0x00             }, { vmovlpd xmm29,xmm30,QWORD [rdx+0x400]                        }
-testcase	{ 0x62, 0x61, 0x8d, 0x00, 0x12, 0x6a, 0x80                               }, { vmovlpd xmm29,xmm30,QWORD [rdx-0x400]                        }
-testcase	{ 0x62, 0x61, 0x8d, 0x00, 0x12, 0xaa, 0xf8, 0xfb, 0xff, 0xff             }, { vmovlpd xmm29,xmm30,QWORD [rdx-0x408]                        }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x13, 0x31                                     }, { vmovlpd QWORD [rcx],xmm30                                    }
-testcase	{ 0x62, 0x21, 0xfd, 0x08, 0x13, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovlpd QWORD [rax+r14*8+0x123],xmm30                        }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x13, 0x72, 0x7f                               }, { vmovlpd QWORD [rdx+0x3f8],xmm30                              }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x13, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vmovlpd QWORD [rdx+0x400],xmm30                              }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x13, 0x72, 0x80                               }, { vmovlpd QWORD [rdx-0x400],xmm30                              }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x13, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vmovlpd QWORD [rdx-0x408],xmm30                              }
-testcase	{ 0x62, 0x61, 0x0c, 0x00, 0x12, 0x29                                     }, { vmovlps xmm29,xmm30,QWORD [rcx]                              }
-testcase	{ 0x62, 0x21, 0x0c, 0x00, 0x12, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovlps xmm29,xmm30,QWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x61, 0x0c, 0x00, 0x12, 0x6a, 0x7f                               }, { vmovlps xmm29,xmm30,QWORD [rdx+0x3f8]                        }
-testcase	{ 0x62, 0x61, 0x0c, 0x00, 0x12, 0xaa, 0x00, 0x04, 0x00, 0x00             }, { vmovlps xmm29,xmm30,QWORD [rdx+0x400]                        }
-testcase	{ 0x62, 0x61, 0x0c, 0x00, 0x12, 0x6a, 0x80                               }, { vmovlps xmm29,xmm30,QWORD [rdx-0x400]                        }
-testcase	{ 0x62, 0x61, 0x0c, 0x00, 0x12, 0xaa, 0xf8, 0xfb, 0xff, 0xff             }, { vmovlps xmm29,xmm30,QWORD [rdx-0x408]                        }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x13, 0x31                                     }, { vmovlps QWORD [rcx],xmm30                                    }
-testcase	{ 0x62, 0x21, 0x7c, 0x08, 0x13, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovlps QWORD [rax+r14*8+0x123],xmm30                        }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x13, 0x72, 0x7f                               }, { vmovlps QWORD [rdx+0x3f8],xmm30                              }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x13, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vmovlps QWORD [rdx+0x400],xmm30                              }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x13, 0x72, 0x80                               }, { vmovlps QWORD [rdx-0x400],xmm30                              }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x13, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vmovlps QWORD [rdx-0x408],xmm30                              }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0xe7, 0x31                                     }, { vmovntdq ZWORD [rcx],zmm30                                   }
-testcase	{ 0x62, 0x21, 0x7d, 0x48, 0xe7, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovntdq ZWORD [rax+r14*8+0x123],zmm30                       }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0xe7, 0x72, 0x7f                               }, { vmovntdq ZWORD [rdx+0x1fc0],zmm30                            }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0xe7, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovntdq ZWORD [rdx+0x2000],zmm30                            }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0xe7, 0x72, 0x80                               }, { vmovntdq ZWORD [rdx-0x2000],zmm30                            }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0xe7, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovntdq ZWORD [rdx-0x2040],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x2a, 0x31                                     }, { vmovntdqa zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0x2a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovntdqa zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x2a, 0x72, 0x7f                               }, { vmovntdqa zmm30,ZWORD [rdx+0x1fc0]                           }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x2a, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovntdqa zmm30,ZWORD [rdx+0x2000]                           }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x2a, 0x72, 0x80                               }, { vmovntdqa zmm30,ZWORD [rdx-0x2000]                           }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x2a, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovntdqa zmm30,ZWORD [rdx-0x2040]                           }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x2b, 0x31                                     }, { vmovntpd ZWORD [rcx],zmm30                                   }
-testcase	{ 0x62, 0x21, 0xfd, 0x48, 0x2b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovntpd ZWORD [rax+r14*8+0x123],zmm30                       }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x2b, 0x72, 0x7f                               }, { vmovntpd ZWORD [rdx+0x1fc0],zmm30                            }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x2b, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovntpd ZWORD [rdx+0x2000],zmm30                            }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x2b, 0x72, 0x80                               }, { vmovntpd ZWORD [rdx-0x2000],zmm30                            }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x2b, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovntpd ZWORD [rdx-0x2040],zmm30                            }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x2b, 0x31                                     }, { vmovntps ZWORD [rcx],zmm30                                   }
-testcase	{ 0x62, 0x21, 0x7c, 0x48, 0x2b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovntps ZWORD [rax+r14*8+0x123],zmm30                       }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x2b, 0x72, 0x7f                               }, { vmovntps ZWORD [rdx+0x1fc0],zmm30                            }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x2b, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovntps ZWORD [rdx+0x2000],zmm30                            }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x2b, 0x72, 0x80                               }, { vmovntps ZWORD [rdx-0x2000],zmm30                            }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x2b, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovntps ZWORD [rdx-0x2040],zmm30                            }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x6e, 0xf0                                     }, { vmovq  xmm30,rax                                             }
-testcase	{ 0x62, 0x41, 0xfd, 0x08, 0x6e, 0xf0                                     }, { vmovq  xmm30,r8                                              }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x6e, 0x31                                     }, { vmovq  xmm30,QWORD [rcx]                                     }
-testcase	{ 0x62, 0x21, 0xfd, 0x08, 0x6e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovq  xmm30,QWORD [rax+r14*8+0x123]                         }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x6e, 0x72, 0x7f                               }, { vmovq  xmm30,QWORD [rdx+0x3f8]                               }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x6e, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vmovq  xmm30,QWORD [rdx+0x400]                               }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x6e, 0x72, 0x80                               }, { vmovq  xmm30,QWORD [rdx-0x400]                               }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x6e, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vmovq  xmm30,QWORD [rdx-0x408]                               }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x7e, 0x31                                     }, { vmovq  QWORD [rcx],xmm30                                     }
-testcase	{ 0x62, 0x21, 0xfd, 0x08, 0x7e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovq  QWORD [rax+r14*8+0x123],xmm30                         }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x7e, 0x72, 0x7f                               }, { vmovq  QWORD [rdx+0x3f8],xmm30                               }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x7e, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vmovq  QWORD [rdx+0x400],xmm30                               }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x7e, 0x72, 0x80                               }, { vmovq  QWORD [rdx-0x400],xmm30                               }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x7e, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vmovq  QWORD [rdx-0x408],xmm30                               }
-testcase	{ 0x62, 0x01, 0xfe, 0x08, 0x7e, 0xf5                                     }, { vmovq  xmm30,xmm29                                           }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x6e, 0x31                                     }, { vmovq  xmm30,QWORD [rcx]                                     }
-testcase	{ 0x62, 0x21, 0xfd, 0x08, 0x6e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovq  xmm30,QWORD [rax+r14*8+0x123]                         }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x6e, 0x72, 0x7f                               }, { vmovq  xmm30,QWORD [rdx+0x3f8]                               }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x6e, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vmovq  xmm30,QWORD [rdx+0x400]                               }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x6e, 0x72, 0x80                               }, { vmovq  xmm30,QWORD [rdx-0x400]                               }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x6e, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vmovq  xmm30,QWORD [rdx-0x408]                               }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x7e, 0x29                                     }, { vmovq  QWORD [rcx],xmm29                                     }
-testcase	{ 0x62, 0x21, 0xfd, 0x08, 0x7e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovq  QWORD [rax+r14*8+0x123],xmm29                         }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x7e, 0x6a, 0x7f                               }, { vmovq  QWORD [rdx+0x3f8],xmm29                               }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x7e, 0xaa, 0x00, 0x04, 0x00, 0x00             }, { vmovq  QWORD [rdx+0x400],xmm29                               }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x7e, 0x6a, 0x80                               }, { vmovq  QWORD [rdx-0x400],xmm29                               }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x7e, 0xaa, 0xf8, 0xfb, 0xff, 0xff             }, { vmovq  QWORD [rdx-0x408],xmm29                               }
-testcase	{ 0x62, 0x61, 0xff, 0x0f, 0x10, 0x31                                     }, { vmovsd xmm30{k7},QWORD [rcx]                                 }
-testcase	{ 0x62, 0x61, 0xff, 0x8f, 0x10, 0x31                                     }, { vmovsd xmm30{k7}{z},QWORD [rcx]                              }
-testcase	{ 0x62, 0x21, 0xff, 0x0f, 0x10, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovsd xmm30{k7},QWORD [rax+r14*8+0x123]                     }
-testcase	{ 0x62, 0x61, 0xff, 0x0f, 0x10, 0x72, 0x7f                               }, { vmovsd xmm30{k7},QWORD [rdx+0x3f8]                           }
-testcase	{ 0x62, 0x61, 0xff, 0x0f, 0x10, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vmovsd xmm30{k7},QWORD [rdx+0x400]                           }
-testcase	{ 0x62, 0x61, 0xff, 0x0f, 0x10, 0x72, 0x80                               }, { vmovsd xmm30{k7},QWORD [rdx-0x400]                           }
-testcase	{ 0x62, 0x61, 0xff, 0x0f, 0x10, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vmovsd xmm30{k7},QWORD [rdx-0x408]                           }
-testcase	{ 0x62, 0x61, 0xff, 0x0f, 0x11, 0x31                                     }, { vmovsd QWORD [rcx]{k7},xmm30                                 }
-testcase	{ 0x62, 0x21, 0xff, 0x0f, 0x11, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovsd QWORD [rax+r14*8+0x123]{k7},xmm30                     }
-testcase	{ 0x62, 0x61, 0xff, 0x0f, 0x11, 0x72, 0x7f                               }, { vmovsd QWORD [rdx+0x3f8]{k7},xmm30                           }
-testcase	{ 0x62, 0x61, 0xff, 0x0f, 0x11, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vmovsd QWORD [rdx+0x400]{k7},xmm30                           }
-testcase	{ 0x62, 0x61, 0xff, 0x0f, 0x11, 0x72, 0x80                               }, { vmovsd QWORD [rdx-0x400]{k7},xmm30                           }
-testcase	{ 0x62, 0x61, 0xff, 0x0f, 0x11, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vmovsd QWORD [rdx-0x408]{k7},xmm30                           }
-testcase	{ 0x62, 0x01, 0x97, 0x07, 0x10, 0xf4                                     }, { vmovsd xmm30{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x97, 0x87, 0x10, 0xf4                                     }, { vmovsd xmm30{k7}{z},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x7e, 0x48, 0x16, 0xf5                                     }, { vmovshdup zmm30,zmm29                                        }
-testcase	{ 0x62, 0x01, 0x7e, 0x4f, 0x16, 0xf5                                     }, { vmovshdup zmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x01, 0x7e, 0xcf, 0x16, 0xf5                                     }, { vmovshdup zmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x16, 0x31                                     }, { vmovshdup zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x21, 0x7e, 0x48, 0x16, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovshdup zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x16, 0x72, 0x7f                               }, { vmovshdup zmm30,ZWORD [rdx+0x1fc0]                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x16, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovshdup zmm30,ZWORD [rdx+0x2000]                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x16, 0x72, 0x80                               }, { vmovshdup zmm30,ZWORD [rdx-0x2000]                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x16, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovshdup zmm30,ZWORD [rdx-0x2040]                           }
-testcase	{ 0x62, 0x01, 0x7e, 0x48, 0x12, 0xf5                                     }, { vmovsldup zmm30,zmm29                                        }
-testcase	{ 0x62, 0x01, 0x7e, 0x4f, 0x12, 0xf5                                     }, { vmovsldup zmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x01, 0x7e, 0xcf, 0x12, 0xf5                                     }, { vmovsldup zmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x12, 0x31                                     }, { vmovsldup zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x21, 0x7e, 0x48, 0x12, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovsldup zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x12, 0x72, 0x7f                               }, { vmovsldup zmm30,ZWORD [rdx+0x1fc0]                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x12, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovsldup zmm30,ZWORD [rdx+0x2000]                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x12, 0x72, 0x80                               }, { vmovsldup zmm30,ZWORD [rdx-0x2000]                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x12, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovsldup zmm30,ZWORD [rdx-0x2040]                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x0f, 0x10, 0x31                                     }, { vmovss xmm30{k7},DWORD [rcx]                                 }
-testcase	{ 0x62, 0x61, 0x7e, 0x8f, 0x10, 0x31                                     }, { vmovss xmm30{k7}{z},DWORD [rcx]                              }
-testcase	{ 0x62, 0x21, 0x7e, 0x0f, 0x10, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovss xmm30{k7},DWORD [rax+r14*8+0x123]                     }
-testcase	{ 0x62, 0x61, 0x7e, 0x0f, 0x10, 0x72, 0x7f                               }, { vmovss xmm30{k7},DWORD [rdx+0x1fc]                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x0f, 0x10, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vmovss xmm30{k7},DWORD [rdx+0x200]                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x0f, 0x10, 0x72, 0x80                               }, { vmovss xmm30{k7},DWORD [rdx-0x200]                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x0f, 0x10, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vmovss xmm30{k7},DWORD [rdx-0x204]                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x0f, 0x11, 0x31                                     }, { vmovss DWORD [rcx]{k7},xmm30                                 }
-testcase	{ 0x62, 0x21, 0x7e, 0x0f, 0x11, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovss DWORD [rax+r14*8+0x123]{k7},xmm30                     }
-testcase	{ 0x62, 0x61, 0x7e, 0x0f, 0x11, 0x72, 0x7f                               }, { vmovss DWORD [rdx+0x1fc]{k7},xmm30                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x0f, 0x11, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vmovss DWORD [rdx+0x200]{k7},xmm30                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x0f, 0x11, 0x72, 0x80                               }, { vmovss DWORD [rdx-0x200]{k7},xmm30                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x0f, 0x11, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vmovss DWORD [rdx-0x204]{k7},xmm30                           }
-testcase	{ 0x62, 0x01, 0x16, 0x07, 0x10, 0xf4                                     }, { vmovss xmm30{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x16, 0x87, 0x10, 0xf4                                     }, { vmovss xmm30{k7}{z},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0xfd, 0x48, 0x10, 0xf5                                     }, { vmovupd zmm30,zmm29                                          }
-testcase	{ 0x62, 0x01, 0xfd, 0x4f, 0x10, 0xf5                                     }, { vmovupd zmm30{k7},zmm29                                      }
-testcase	{ 0x62, 0x01, 0xfd, 0xcf, 0x10, 0xf5                                     }, { vmovupd zmm30{k7}{z},zmm29                                   }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x10, 0x31                                     }, { vmovupd zmm30,ZWORD [rcx]                                    }
-testcase	{ 0x62, 0x21, 0xfd, 0x48, 0x10, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovupd zmm30,ZWORD [rax+r14*8+0x123]                        }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x10, 0x72, 0x7f                               }, { vmovupd zmm30,ZWORD [rdx+0x1fc0]                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x10, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovupd zmm30,ZWORD [rdx+0x2000]                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x10, 0x72, 0x80                               }, { vmovupd zmm30,ZWORD [rdx-0x2000]                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x10, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovupd zmm30,ZWORD [rdx-0x2040]                             }
-testcase	{ 0x62, 0x01, 0x7c, 0x48, 0x10, 0xf5                                     }, { vmovups zmm30,zmm29                                          }
-testcase	{ 0x62, 0x01, 0x7c, 0x4f, 0x10, 0xf5                                     }, { vmovups zmm30{k7},zmm29                                      }
-testcase	{ 0x62, 0x01, 0x7c, 0xcf, 0x10, 0xf5                                     }, { vmovups zmm30{k7}{z},zmm29                                   }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x10, 0x31                                     }, { vmovups zmm30,ZWORD [rcx]                                    }
-testcase	{ 0x62, 0x21, 0x7c, 0x48, 0x10, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovups zmm30,ZWORD [rax+r14*8+0x123]                        }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x10, 0x72, 0x7f                               }, { vmovups zmm30,ZWORD [rdx+0x1fc0]                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x10, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovups zmm30,ZWORD [rdx+0x2000]                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x10, 0x72, 0x80                               }, { vmovups zmm30,ZWORD [rdx-0x2000]                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x10, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovups zmm30,ZWORD [rdx-0x2040]                             }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0x59, 0xf4                                     }, { vmulpd zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0x59, 0xf4                                     }, { vmulpd zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0x59, 0xf4                                     }, { vmulpd zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x95, 0x10, 0x59, 0xf4                                     }, { vmulpd zmm30,zmm29,zmm28,{rn-sae}                            }
-testcase	{ 0x62, 0x01, 0x95, 0x50, 0x59, 0xf4                                     }, { vmulpd zmm30,zmm29,zmm28,{ru-sae}                            }
-testcase	{ 0x62, 0x01, 0x95, 0x30, 0x59, 0xf4                                     }, { vmulpd zmm30,zmm29,zmm28,{rd-sae}                            }
-testcase	{ 0x62, 0x01, 0x95, 0x70, 0x59, 0xf4                                     }, { vmulpd zmm30,zmm29,zmm28,{rz-sae}                            }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x59, 0x31                                     }, { vmulpd zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0x59, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmulpd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x59, 0x31                                     }, { vmulpd zmm30,zmm29,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x59, 0x72, 0x7f                               }, { vmulpd zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x59, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmulpd zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x59, 0x72, 0x80                               }, { vmulpd zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x59, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmulpd zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x59, 0x72, 0x7f                               }, { vmulpd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x59, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vmulpd zmm30,zmm29,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x59, 0x72, 0x80                               }, { vmulpd zmm30,zmm29,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x59, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vmulpd zmm30,zmm29,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x01, 0x14, 0x40, 0x59, 0xf4                                     }, { vmulps zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x14, 0x47, 0x59, 0xf4                                     }, { vmulps zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x14, 0xc7, 0x59, 0xf4                                     }, { vmulps zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x14, 0x10, 0x59, 0xf4                                     }, { vmulps zmm30,zmm29,zmm28,{rn-sae}                            }
-testcase	{ 0x62, 0x01, 0x14, 0x50, 0x59, 0xf4                                     }, { vmulps zmm30,zmm29,zmm28,{ru-sae}                            }
-testcase	{ 0x62, 0x01, 0x14, 0x30, 0x59, 0xf4                                     }, { vmulps zmm30,zmm29,zmm28,{rd-sae}                            }
-testcase	{ 0x62, 0x01, 0x14, 0x70, 0x59, 0xf4                                     }, { vmulps zmm30,zmm29,zmm28,{rz-sae}                            }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x59, 0x31                                     }, { vmulps zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x14, 0x40, 0x59, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmulps zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x59, 0x31                                     }, { vmulps zmm30,zmm29,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x59, 0x72, 0x7f                               }, { vmulps zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x59, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmulps zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x59, 0x72, 0x80                               }, { vmulps zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x59, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmulps zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x59, 0x72, 0x7f                               }, { vmulps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x59, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vmulps zmm30,zmm29,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x59, 0x72, 0x80                               }, { vmulps zmm30,zmm29,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x59, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vmulps zmm30,zmm29,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x01, 0x97, 0x07, 0x59, 0xf4                                     }, { vmulsd xmm30{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x97, 0x87, 0x59, 0xf4                                     }, { vmulsd xmm30{k7}{z},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x97, 0x17, 0x59, 0xf4                                     }, { vmulsd xmm30{k7},xmm29,xmm28,{rn-sae}                        }
-testcase	{ 0x62, 0x01, 0x97, 0x57, 0x59, 0xf4                                     }, { vmulsd xmm30{k7},xmm29,xmm28,{ru-sae}                        }
-testcase	{ 0x62, 0x01, 0x97, 0x37, 0x59, 0xf4                                     }, { vmulsd xmm30{k7},xmm29,xmm28,{rd-sae}                        }
-testcase	{ 0x62, 0x01, 0x97, 0x77, 0x59, 0xf4                                     }, { vmulsd xmm30{k7},xmm29,xmm28,{rz-sae}                        }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x59, 0x31                                     }, { vmulsd xmm30{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x97, 0x07, 0x59, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmulsd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x59, 0x72, 0x7f                               }, { vmulsd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x59, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vmulsd xmm30{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x59, 0x72, 0x80                               }, { vmulsd xmm30{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x59, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vmulsd xmm30{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x01, 0x16, 0x07, 0x59, 0xf4                                     }, { vmulss xmm30{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x16, 0x87, 0x59, 0xf4                                     }, { vmulss xmm30{k7}{z},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x16, 0x17, 0x59, 0xf4                                     }, { vmulss xmm30{k7},xmm29,xmm28,{rn-sae}                        }
-testcase	{ 0x62, 0x01, 0x16, 0x57, 0x59, 0xf4                                     }, { vmulss xmm30{k7},xmm29,xmm28,{ru-sae}                        }
-testcase	{ 0x62, 0x01, 0x16, 0x37, 0x59, 0xf4                                     }, { vmulss xmm30{k7},xmm29,xmm28,{rd-sae}                        }
-testcase	{ 0x62, 0x01, 0x16, 0x77, 0x59, 0xf4                                     }, { vmulss xmm30{k7},xmm29,xmm28,{rz-sae}                        }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x59, 0x31                                     }, { vmulss xmm30{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x16, 0x07, 0x59, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmulss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x59, 0x72, 0x7f                               }, { vmulss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x59, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vmulss xmm30{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x59, 0x72, 0x80                               }, { vmulss xmm30{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x59, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vmulss xmm30{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x02, 0x7d, 0x48, 0x1e, 0xf5                                     }, { vpabsd zmm30,zmm29                                           }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x1e, 0xf5                                     }, { vpabsd zmm30{k7},zmm29                                       }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x1e, 0xf5                                     }, { vpabsd zmm30{k7}{z},zmm29                                    }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x1e, 0x31                                     }, { vpabsd zmm30,ZWORD [rcx]                                     }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0x1e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpabsd zmm30,ZWORD [rax+r14*8+0x123]                         }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x1e, 0x31                                     }, { vpabsd zmm30,DWORD [rcx]{1to16}                              }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x1e, 0x72, 0x7f                               }, { vpabsd zmm30,ZWORD [rdx+0x1fc0]                              }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x1e, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpabsd zmm30,ZWORD [rdx+0x2000]                              }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x1e, 0x72, 0x80                               }, { vpabsd zmm30,ZWORD [rdx-0x2000]                              }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x1e, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpabsd zmm30,ZWORD [rdx-0x2040]                              }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x1e, 0x72, 0x7f                               }, { vpabsd zmm30,DWORD [rdx+0x1fc]{1to16}                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x1e, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpabsd zmm30,DWORD [rdx+0x200]{1to16}                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x1e, 0x72, 0x80                               }, { vpabsd zmm30,DWORD [rdx-0x200]{1to16}                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x1e, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpabsd zmm30,DWORD [rdx-0x204]{1to16}                        }
-testcase	{ 0x62, 0x02, 0xfd, 0x48, 0x1f, 0xf5                                     }, { vpabsq zmm30,zmm29                                           }
-testcase	{ 0x62, 0x02, 0xfd, 0x4f, 0x1f, 0xf5                                     }, { vpabsq zmm30{k7},zmm29                                       }
-testcase	{ 0x62, 0x02, 0xfd, 0xcf, 0x1f, 0xf5                                     }, { vpabsq zmm30{k7}{z},zmm29                                    }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x1f, 0x31                                     }, { vpabsq zmm30,ZWORD [rcx]                                     }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0x1f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpabsq zmm30,ZWORD [rax+r14*8+0x123]                         }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x1f, 0x31                                     }, { vpabsq zmm30,QWORD [rcx]{1to8}                               }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x1f, 0x72, 0x7f                               }, { vpabsq zmm30,ZWORD [rdx+0x1fc0]                              }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x1f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpabsq zmm30,ZWORD [rdx+0x2000]                              }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x1f, 0x72, 0x80                               }, { vpabsq zmm30,ZWORD [rdx-0x2000]                              }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x1f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpabsq zmm30,ZWORD [rdx-0x2040]                              }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x1f, 0x72, 0x7f                               }, { vpabsq zmm30,QWORD [rdx+0x3f8]{1to8}                         }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x1f, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpabsq zmm30,QWORD [rdx+0x400]{1to8}                         }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x1f, 0x72, 0x80                               }, { vpabsq zmm30,QWORD [rdx-0x400]{1to8}                         }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x1f, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpabsq zmm30,QWORD [rdx-0x408]{1to8}                         }
-testcase	{ 0x62, 0x01, 0x15, 0x40, 0xfe, 0xf4                                     }, { vpaddd zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x15, 0x47, 0xfe, 0xf4                                     }, { vpaddd zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x15, 0xc7, 0xfe, 0xf4                                     }, { vpaddd zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xfe, 0x31                                     }, { vpaddd zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x15, 0x40, 0xfe, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpaddd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xfe, 0x31                                     }, { vpaddd zmm30,zmm29,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xfe, 0x72, 0x7f                               }, { vpaddd zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xfe, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpaddd zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xfe, 0x72, 0x80                               }, { vpaddd zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xfe, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpaddd zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xfe, 0x72, 0x7f                               }, { vpaddd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xfe, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpaddd zmm30,zmm29,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xfe, 0x72, 0x80                               }, { vpaddd zmm30,zmm29,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xfe, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpaddd zmm30,zmm29,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0xd4, 0xf4                                     }, { vpaddq zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0xd4, 0xf4                                     }, { vpaddq zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0xd4, 0xf4                                     }, { vpaddq zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xd4, 0x31                                     }, { vpaddq zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0xd4, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpaddq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xd4, 0x31                                     }, { vpaddq zmm30,zmm29,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xd4, 0x72, 0x7f                               }, { vpaddq zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xd4, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpaddq zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xd4, 0x72, 0x80                               }, { vpaddq zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xd4, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpaddq zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xd4, 0x72, 0x7f                               }, { vpaddq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xd4, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpaddq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xd4, 0x72, 0x80                               }, { vpaddq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xd4, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpaddq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x01, 0x15, 0x40, 0xdb, 0xf4                                     }, { vpandd zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x15, 0x47, 0xdb, 0xf4                                     }, { vpandd zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x15, 0xc7, 0xdb, 0xf4                                     }, { vpandd zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xdb, 0x31                                     }, { vpandd zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x15, 0x40, 0xdb, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpandd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xdb, 0x31                                     }, { vpandd zmm30,zmm29,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xdb, 0x72, 0x7f                               }, { vpandd zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xdb, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpandd zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xdb, 0x72, 0x80                               }, { vpandd zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xdb, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpandd zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xdb, 0x72, 0x7f                               }, { vpandd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xdb, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpandd zmm30,zmm29,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xdb, 0x72, 0x80                               }, { vpandd zmm30,zmm29,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xdb, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpandd zmm30,zmm29,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x01, 0x15, 0x40, 0xdf, 0xf4                                     }, { vpandnd zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x01, 0x15, 0x47, 0xdf, 0xf4                                     }, { vpandnd zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x01, 0x15, 0xc7, 0xdf, 0xf4                                     }, { vpandnd zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xdf, 0x31                                     }, { vpandnd zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x21, 0x15, 0x40, 0xdf, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpandnd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xdf, 0x31                                     }, { vpandnd zmm30,zmm29,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xdf, 0x72, 0x7f                               }, { vpandnd zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xdf, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpandnd zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xdf, 0x72, 0x80                               }, { vpandnd zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xdf, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpandnd zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xdf, 0x72, 0x7f                               }, { vpandnd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xdf, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpandnd zmm30,zmm29,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xdf, 0x72, 0x80                               }, { vpandnd zmm30,zmm29,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xdf, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpandnd zmm30,zmm29,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0xdf, 0xf4                                     }, { vpandnq zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0xdf, 0xf4                                     }, { vpandnq zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0xdf, 0xf4                                     }, { vpandnq zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xdf, 0x31                                     }, { vpandnq zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0xdf, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpandnq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xdf, 0x31                                     }, { vpandnq zmm30,zmm29,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xdf, 0x72, 0x7f                               }, { vpandnq zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xdf, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpandnq zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xdf, 0x72, 0x80                               }, { vpandnq zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xdf, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpandnq zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xdf, 0x72, 0x7f                               }, { vpandnq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xdf, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpandnq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xdf, 0x72, 0x80                               }, { vpandnq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xdf, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpandnq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0xdb, 0xf4                                     }, { vpandq zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0xdb, 0xf4                                     }, { vpandq zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0xdb, 0xf4                                     }, { vpandq zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xdb, 0x31                                     }, { vpandq zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0xdb, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpandq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xdb, 0x31                                     }, { vpandq zmm30,zmm29,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xdb, 0x72, 0x7f                               }, { vpandq zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xdb, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpandq zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xdb, 0x72, 0x80                               }, { vpandq zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xdb, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpandq zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xdb, 0x72, 0x7f                               }, { vpandq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xdb, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpandq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xdb, 0x72, 0x80                               }, { vpandq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xdb, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpandq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x64, 0xf4                                     }, { vpblendmd zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x64, 0xf4                                     }, { vpblendmd zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x64, 0xf4                                     }, { vpblendmd zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x64, 0x31                                     }, { vpblendmd zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x64, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpblendmd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x64, 0x31                                     }, { vpblendmd zmm30,zmm29,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x64, 0x72, 0x7f                               }, { vpblendmd zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x64, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpblendmd zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x64, 0x72, 0x80                               }, { vpblendmd zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x64, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpblendmd zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x64, 0x72, 0x7f                               }, { vpblendmd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x64, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpblendmd zmm30,zmm29,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x64, 0x72, 0x80                               }, { vpblendmd zmm30,zmm29,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x64, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpblendmd zmm30,zmm29,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x58, 0x31                                     }, { vpbroadcastd zmm30,DWORD [rcx]                               }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x58, 0x31                                     }, { vpbroadcastd zmm30{k7},DWORD [rcx]                           }
-testcase	{ 0x62, 0x62, 0x7d, 0xcf, 0x58, 0x31                                     }, { vpbroadcastd zmm30{k7}{z},DWORD [rcx]                        }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0x58, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpbroadcastd zmm30,DWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x58, 0x72, 0x7f                               }, { vpbroadcastd zmm30,DWORD [rdx+0x1fc]                         }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x58, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpbroadcastd zmm30,DWORD [rdx+0x200]                         }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x58, 0x72, 0x80                               }, { vpbroadcastd zmm30,DWORD [rdx-0x200]                         }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x58, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpbroadcastd zmm30,DWORD [rdx-0x204]                         }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x58, 0xf5                                     }, { vpbroadcastd zmm30{k7},xmm29                                 }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x58, 0xf5                                     }, { vpbroadcastd zmm30{k7}{z},xmm29                              }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x7c, 0xf0                                     }, { vpbroadcastd zmm30,eax                                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x7c, 0xf0                                     }, { vpbroadcastd zmm30{k7},eax                                   }
-testcase	{ 0x62, 0x62, 0x7d, 0xcf, 0x7c, 0xf0                                     }, { vpbroadcastd zmm30{k7}{z},eax                                }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x7c, 0xf5                                     }, { vpbroadcastd zmm30,ebp                                       }
-testcase	{ 0x62, 0x42, 0x7d, 0x48, 0x7c, 0xf5                                     }, { vpbroadcastd zmm30,r13d                                      }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x59, 0x31                                     }, { vpbroadcastq zmm30,QWORD [rcx]                               }
-testcase	{ 0x62, 0x62, 0xfd, 0x4f, 0x59, 0x31                                     }, { vpbroadcastq zmm30{k7},QWORD [rcx]                           }
-testcase	{ 0x62, 0x62, 0xfd, 0xcf, 0x59, 0x31                                     }, { vpbroadcastq zmm30{k7}{z},QWORD [rcx]                        }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0x59, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpbroadcastq zmm30,QWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x59, 0x72, 0x7f                               }, { vpbroadcastq zmm30,QWORD [rdx+0x3f8]                         }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x59, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpbroadcastq zmm30,QWORD [rdx+0x400]                         }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x59, 0x72, 0x80                               }, { vpbroadcastq zmm30,QWORD [rdx-0x400]                         }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x59, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpbroadcastq zmm30,QWORD [rdx-0x408]                         }
-testcase	{ 0x62, 0x02, 0xfd, 0x4f, 0x59, 0xf5                                     }, { vpbroadcastq zmm30{k7},xmm29                                 }
-testcase	{ 0x62, 0x02, 0xfd, 0xcf, 0x59, 0xf5                                     }, { vpbroadcastq zmm30{k7}{z},xmm29                              }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x7c, 0xf0                                     }, { vpbroadcastq zmm30,rax                                       }
-testcase	{ 0x62, 0x62, 0xfd, 0x4f, 0x7c, 0xf0                                     }, { vpbroadcastq zmm30{k7},rax                                   }
-testcase	{ 0x62, 0x62, 0xfd, 0xcf, 0x7c, 0xf0                                     }, { vpbroadcastq zmm30{k7}{z},rax                                }
-testcase	{ 0x62, 0x42, 0xfd, 0x48, 0x7c, 0xf0                                     }, { vpbroadcastq zmm30,r8                                        }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1f, 0xed, 0xab                               }, { vpcmpd k5,zmm30,zmm29,0xab                                   }
-testcase	{ 0x62, 0x93, 0x0d, 0x47, 0x1f, 0xed, 0xab                               }, { vpcmpd k5{k7},zmm30,zmm29,0xab                               }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1f, 0xed, 0x7b                               }, { vpcmpd k5,zmm30,zmm29,0x7b                                   }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x29, 0x7b                               }, { vpcmpd k5,zmm30,ZWORD [rcx],0x7b                             }
-testcase	{ 0x62, 0xb3, 0x0d, 0x40, 0x1f, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpcmpd k5,zmm30,ZWORD [rax+r14*8+0x123],0x7b                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x29, 0x7b                               }, { vpcmpd k5,zmm30,DWORD [rcx]{1to16},0x7b                      }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x6a, 0x7f, 0x7b                         }, { vpcmpd k5,zmm30,ZWORD [rdx+0x1fc0],0x7b                      }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpcmpd k5,zmm30,ZWORD [rdx+0x2000],0x7b                      }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x6a, 0x80, 0x7b                         }, { vpcmpd k5,zmm30,ZWORD [rdx-0x2000],0x7b                      }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpcmpd k5,zmm30,ZWORD [rdx-0x2040],0x7b                      }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x6a, 0x7f, 0x7b                         }, { vpcmpd k5,zmm30,DWORD [rdx+0x1fc]{1to16},0x7b                }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vpcmpd k5,zmm30,DWORD [rdx+0x200]{1to16},0x7b                }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x6a, 0x80, 0x7b                         }, { vpcmpd k5,zmm30,DWORD [rdx-0x200]{1to16},0x7b                }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vpcmpd k5,zmm30,DWORD [rdx-0x204]{1to16},0x7b                }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1f, 0xed, 0x01                               }, { vpcmpltd k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x93, 0x0d, 0x47, 0x1f, 0xed, 0x01                               }, { vpcmpltd k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x29, 0x01                               }, { vpcmpltd k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb3, 0x0d, 0x40, 0x1f, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x01 }, { vpcmpltd k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x29, 0x01                               }, { vpcmpltd k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x6a, 0x7f, 0x01                         }, { vpcmpltd k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x01       }, { vpcmpltd k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x6a, 0x80, 0x01                         }, { vpcmpltd k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x01       }, { vpcmpltd k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x6a, 0x7f, 0x01                         }, { vpcmpltd k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x01       }, { vpcmpltd k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x6a, 0x80, 0x01                         }, { vpcmpltd k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x01       }, { vpcmpltd k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1f, 0xed, 0x02                               }, { vpcmpled k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x93, 0x0d, 0x47, 0x1f, 0xed, 0x02                               }, { vpcmpled k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x29, 0x02                               }, { vpcmpled k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb3, 0x0d, 0x40, 0x1f, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x02 }, { vpcmpled k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x29, 0x02                               }, { vpcmpled k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x6a, 0x7f, 0x02                         }, { vpcmpled k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x02       }, { vpcmpled k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x6a, 0x80, 0x02                         }, { vpcmpled k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x02       }, { vpcmpled k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x6a, 0x7f, 0x02                         }, { vpcmpled k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x02       }, { vpcmpled k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x6a, 0x80, 0x02                         }, { vpcmpled k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x02       }, { vpcmpled k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1f, 0xed, 0x04                               }, { vpcmpneqd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x93, 0x0d, 0x47, 0x1f, 0xed, 0x04                               }, { vpcmpneqd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x29, 0x04                               }, { vpcmpneqd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb3, 0x0d, 0x40, 0x1f, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x04 }, { vpcmpneqd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x29, 0x04                               }, { vpcmpneqd k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x6a, 0x7f, 0x04                         }, { vpcmpneqd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x04       }, { vpcmpneqd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x6a, 0x80, 0x04                         }, { vpcmpneqd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x04       }, { vpcmpneqd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x6a, 0x7f, 0x04                         }, { vpcmpneqd k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x04       }, { vpcmpneqd k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x6a, 0x80, 0x04                         }, { vpcmpneqd k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x04       }, { vpcmpneqd k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1f, 0xed, 0x05                               }, { vpcmpnltd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x93, 0x0d, 0x47, 0x1f, 0xed, 0x05                               }, { vpcmpnltd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x29, 0x05                               }, { vpcmpnltd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb3, 0x0d, 0x40, 0x1f, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x05 }, { vpcmpnltd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x29, 0x05                               }, { vpcmpnltd k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x6a, 0x7f, 0x05                         }, { vpcmpnltd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x05       }, { vpcmpnltd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x6a, 0x80, 0x05                         }, { vpcmpnltd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x05       }, { vpcmpnltd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x6a, 0x7f, 0x05                         }, { vpcmpnltd k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x05       }, { vpcmpnltd k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x6a, 0x80, 0x05                         }, { vpcmpnltd k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x05       }, { vpcmpnltd k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1f, 0xed, 0x06                               }, { vpcmpnled k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x93, 0x0d, 0x47, 0x1f, 0xed, 0x06                               }, { vpcmpnled k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x29, 0x06                               }, { vpcmpnled k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb3, 0x0d, 0x40, 0x1f, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x06 }, { vpcmpnled k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x29, 0x06                               }, { vpcmpnled k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x6a, 0x7f, 0x06                         }, { vpcmpnled k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x06       }, { vpcmpnled k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0x6a, 0x80, 0x06                         }, { vpcmpnled k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1f, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x06       }, { vpcmpnled k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x6a, 0x7f, 0x06                         }, { vpcmpnled k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x06       }, { vpcmpnled k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0x6a, 0x80, 0x06                         }, { vpcmpnled k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1f, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x06       }, { vpcmpnled k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x91, 0x0d, 0x40, 0x76, 0xed                                     }, { vpcmpeqd k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x0d, 0x47, 0x76, 0xed                                     }, { vpcmpeqd k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x76, 0x29                                     }, { vpcmpeqd k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x0d, 0x40, 0x76, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpcmpeqd k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x76, 0x29                                     }, { vpcmpeqd k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x76, 0x6a, 0x7f                               }, { vpcmpeqd k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x76, 0xaa, 0x00, 0x20, 0x00, 0x00             }, { vpcmpeqd k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x76, 0x6a, 0x80                               }, { vpcmpeqd k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x76, 0xaa, 0xc0, 0xdf, 0xff, 0xff             }, { vpcmpeqd k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x76, 0x6a, 0x7f                               }, { vpcmpeqd k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x76, 0xaa, 0x00, 0x02, 0x00, 0x00             }, { vpcmpeqd k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x76, 0x6a, 0x80                               }, { vpcmpeqd k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x76, 0xaa, 0xfc, 0xfd, 0xff, 0xff             }, { vpcmpeqd k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x92, 0x8d, 0x40, 0x29, 0xed                                     }, { vpcmpeqq k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x92, 0x8d, 0x47, 0x29, 0xed                                     }, { vpcmpeqq k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x29, 0x29                                     }, { vpcmpeqq k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb2, 0x8d, 0x40, 0x29, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpcmpeqq k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x29, 0x29                                     }, { vpcmpeqq k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x29, 0x6a, 0x7f                               }, { vpcmpeqq k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x29, 0xaa, 0x00, 0x20, 0x00, 0x00             }, { vpcmpeqq k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x29, 0x6a, 0x80                               }, { vpcmpeqq k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x29, 0xaa, 0xc0, 0xdf, 0xff, 0xff             }, { vpcmpeqq k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x29, 0x6a, 0x7f                               }, { vpcmpeqq k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x29, 0xaa, 0x00, 0x04, 0x00, 0x00             }, { vpcmpeqq k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x29, 0x6a, 0x80                               }, { vpcmpeqq k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x29, 0xaa, 0xf8, 0xfb, 0xff, 0xff             }, { vpcmpeqq k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x91, 0x0d, 0x40, 0x66, 0xed                                     }, { vpcmpgtd k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x91, 0x0d, 0x47, 0x66, 0xed                                     }, { vpcmpgtd k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x66, 0x29                                     }, { vpcmpgtd k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb1, 0x0d, 0x40, 0x66, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpcmpgtd k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x66, 0x29                                     }, { vpcmpgtd k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x66, 0x6a, 0x7f                               }, { vpcmpgtd k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x66, 0xaa, 0x00, 0x20, 0x00, 0x00             }, { vpcmpgtd k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x66, 0x6a, 0x80                               }, { vpcmpgtd k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x66, 0xaa, 0xc0, 0xdf, 0xff, 0xff             }, { vpcmpgtd k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x66, 0x6a, 0x7f                               }, { vpcmpgtd k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x66, 0xaa, 0x00, 0x02, 0x00, 0x00             }, { vpcmpgtd k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x66, 0x6a, 0x80                               }, { vpcmpgtd k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x66, 0xaa, 0xfc, 0xfd, 0xff, 0xff             }, { vpcmpgtd k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x92, 0x8d, 0x40, 0x37, 0xed                                     }, { vpcmpgtq k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x92, 0x8d, 0x47, 0x37, 0xed                                     }, { vpcmpgtq k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x37, 0x29                                     }, { vpcmpgtq k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb2, 0x8d, 0x40, 0x37, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpcmpgtq k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x37, 0x29                                     }, { vpcmpgtq k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x37, 0x6a, 0x7f                               }, { vpcmpgtq k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x37, 0xaa, 0x00, 0x20, 0x00, 0x00             }, { vpcmpgtq k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x37, 0x6a, 0x80                               }, { vpcmpgtq k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x37, 0xaa, 0xc0, 0xdf, 0xff, 0xff             }, { vpcmpgtq k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x37, 0x6a, 0x7f                               }, { vpcmpgtq k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x37, 0xaa, 0x00, 0x04, 0x00, 0x00             }, { vpcmpgtq k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x37, 0x6a, 0x80                               }, { vpcmpgtq k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x37, 0xaa, 0xf8, 0xfb, 0xff, 0xff             }, { vpcmpgtq k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1f, 0xed, 0xab                               }, { vpcmpq k5,zmm30,zmm29,0xab                                   }
-testcase	{ 0x62, 0x93, 0x8d, 0x47, 0x1f, 0xed, 0xab                               }, { vpcmpq k5{k7},zmm30,zmm29,0xab                               }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1f, 0xed, 0x7b                               }, { vpcmpq k5,zmm30,zmm29,0x7b                                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x29, 0x7b                               }, { vpcmpq k5,zmm30,ZWORD [rcx],0x7b                             }
-testcase	{ 0x62, 0xb3, 0x8d, 0x40, 0x1f, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpcmpq k5,zmm30,ZWORD [rax+r14*8+0x123],0x7b                 }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x29, 0x7b                               }, { vpcmpq k5,zmm30,QWORD [rcx]{1to8},0x7b                       }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x6a, 0x7f, 0x7b                         }, { vpcmpq k5,zmm30,ZWORD [rdx+0x1fc0],0x7b                      }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpcmpq k5,zmm30,ZWORD [rdx+0x2000],0x7b                      }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x6a, 0x80, 0x7b                         }, { vpcmpq k5,zmm30,ZWORD [rdx-0x2000],0x7b                      }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpcmpq k5,zmm30,ZWORD [rdx-0x2040],0x7b                      }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x6a, 0x7f, 0x7b                         }, { vpcmpq k5,zmm30,QWORD [rdx+0x3f8]{1to8},0x7b                 }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vpcmpq k5,zmm30,QWORD [rdx+0x400]{1to8},0x7b                 }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x6a, 0x80, 0x7b                         }, { vpcmpq k5,zmm30,QWORD [rdx-0x400]{1to8},0x7b                 }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vpcmpq k5,zmm30,QWORD [rdx-0x408]{1to8},0x7b                 }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1f, 0xed, 0x01                               }, { vpcmpltq k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x93, 0x8d, 0x47, 0x1f, 0xed, 0x01                               }, { vpcmpltq k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x29, 0x01                               }, { vpcmpltq k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb3, 0x8d, 0x40, 0x1f, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x01 }, { vpcmpltq k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x29, 0x01                               }, { vpcmpltq k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x6a, 0x7f, 0x01                         }, { vpcmpltq k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x01       }, { vpcmpltq k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x6a, 0x80, 0x01                         }, { vpcmpltq k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x01       }, { vpcmpltq k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x6a, 0x7f, 0x01                         }, { vpcmpltq k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x01       }, { vpcmpltq k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x6a, 0x80, 0x01                         }, { vpcmpltq k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x01       }, { vpcmpltq k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1f, 0xed, 0x02                               }, { vpcmpleq k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x93, 0x8d, 0x47, 0x1f, 0xed, 0x02                               }, { vpcmpleq k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x29, 0x02                               }, { vpcmpleq k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb3, 0x8d, 0x40, 0x1f, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x02 }, { vpcmpleq k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x29, 0x02                               }, { vpcmpleq k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x6a, 0x7f, 0x02                         }, { vpcmpleq k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x02       }, { vpcmpleq k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x6a, 0x80, 0x02                         }, { vpcmpleq k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x02       }, { vpcmpleq k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x6a, 0x7f, 0x02                         }, { vpcmpleq k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x02       }, { vpcmpleq k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x6a, 0x80, 0x02                         }, { vpcmpleq k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x02       }, { vpcmpleq k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1f, 0xed, 0x04                               }, { vpcmpneqq k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x93, 0x8d, 0x47, 0x1f, 0xed, 0x04                               }, { vpcmpneqq k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x29, 0x04                               }, { vpcmpneqq k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb3, 0x8d, 0x40, 0x1f, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x04 }, { vpcmpneqq k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x29, 0x04                               }, { vpcmpneqq k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x6a, 0x7f, 0x04                         }, { vpcmpneqq k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x04       }, { vpcmpneqq k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x6a, 0x80, 0x04                         }, { vpcmpneqq k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x04       }, { vpcmpneqq k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x6a, 0x7f, 0x04                         }, { vpcmpneqq k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x04       }, { vpcmpneqq k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x6a, 0x80, 0x04                         }, { vpcmpneqq k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x04       }, { vpcmpneqq k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1f, 0xed, 0x05                               }, { vpcmpnltq k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x93, 0x8d, 0x47, 0x1f, 0xed, 0x05                               }, { vpcmpnltq k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x29, 0x05                               }, { vpcmpnltq k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb3, 0x8d, 0x40, 0x1f, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x05 }, { vpcmpnltq k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x29, 0x05                               }, { vpcmpnltq k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x6a, 0x7f, 0x05                         }, { vpcmpnltq k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x05       }, { vpcmpnltq k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x6a, 0x80, 0x05                         }, { vpcmpnltq k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x05       }, { vpcmpnltq k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x6a, 0x7f, 0x05                         }, { vpcmpnltq k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x05       }, { vpcmpnltq k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x6a, 0x80, 0x05                         }, { vpcmpnltq k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x05       }, { vpcmpnltq k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1f, 0xed, 0x06                               }, { vpcmpnleq k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x93, 0x8d, 0x47, 0x1f, 0xed, 0x06                               }, { vpcmpnleq k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x29, 0x06                               }, { vpcmpnleq k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb3, 0x8d, 0x40, 0x1f, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x06 }, { vpcmpnleq k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x29, 0x06                               }, { vpcmpnleq k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x6a, 0x7f, 0x06                         }, { vpcmpnleq k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x06       }, { vpcmpnleq k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0x6a, 0x80, 0x06                         }, { vpcmpnleq k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1f, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x06       }, { vpcmpnleq k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x6a, 0x7f, 0x06                         }, { vpcmpnleq k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x06       }, { vpcmpnleq k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0x6a, 0x80, 0x06                         }, { vpcmpnleq k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1f, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x06       }, { vpcmpnleq k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1e, 0xed, 0xab                               }, { vpcmpud k5,zmm30,zmm29,0xab                                  }
-testcase	{ 0x62, 0x93, 0x0d, 0x47, 0x1e, 0xed, 0xab                               }, { vpcmpud k5{k7},zmm30,zmm29,0xab                              }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1e, 0xed, 0x7b                               }, { vpcmpud k5,zmm30,zmm29,0x7b                                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x29, 0x7b                               }, { vpcmpud k5,zmm30,ZWORD [rcx],0x7b                            }
-testcase	{ 0x62, 0xb3, 0x0d, 0x40, 0x1e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpcmpud k5,zmm30,ZWORD [rax+r14*8+0x123],0x7b                }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x29, 0x7b                               }, { vpcmpud k5,zmm30,DWORD [rcx]{1to16},0x7b                     }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x6a, 0x7f, 0x7b                         }, { vpcmpud k5,zmm30,ZWORD [rdx+0x1fc0],0x7b                     }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpcmpud k5,zmm30,ZWORD [rdx+0x2000],0x7b                     }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x6a, 0x80, 0x7b                         }, { vpcmpud k5,zmm30,ZWORD [rdx-0x2000],0x7b                     }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpcmpud k5,zmm30,ZWORD [rdx-0x2040],0x7b                     }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x6a, 0x7f, 0x7b                         }, { vpcmpud k5,zmm30,DWORD [rdx+0x1fc]{1to16},0x7b               }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vpcmpud k5,zmm30,DWORD [rdx+0x200]{1to16},0x7b               }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x6a, 0x80, 0x7b                         }, { vpcmpud k5,zmm30,DWORD [rdx-0x200]{1to16},0x7b               }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vpcmpud k5,zmm30,DWORD [rdx-0x204]{1to16},0x7b               }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1e, 0xed, 0x00                               }, { vpcmpequd k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x93, 0x0d, 0x47, 0x1e, 0xed, 0x00                               }, { vpcmpequd k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x29, 0x00                               }, { vpcmpequd k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb3, 0x0d, 0x40, 0x1e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x00 }, { vpcmpequd k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x29, 0x00                               }, { vpcmpequd k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x6a, 0x7f, 0x00                         }, { vpcmpequd k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x00       }, { vpcmpequd k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x6a, 0x80, 0x00                         }, { vpcmpequd k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x00       }, { vpcmpequd k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x6a, 0x7f, 0x00                         }, { vpcmpequd k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x00       }, { vpcmpequd k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x6a, 0x80, 0x00                         }, { vpcmpequd k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x00       }, { vpcmpequd k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1e, 0xed, 0x01                               }, { vpcmpltud k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x93, 0x0d, 0x47, 0x1e, 0xed, 0x01                               }, { vpcmpltud k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x29, 0x01                               }, { vpcmpltud k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb3, 0x0d, 0x40, 0x1e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x01 }, { vpcmpltud k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x29, 0x01                               }, { vpcmpltud k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x6a, 0x7f, 0x01                         }, { vpcmpltud k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x01       }, { vpcmpltud k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x6a, 0x80, 0x01                         }, { vpcmpltud k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x01       }, { vpcmpltud k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x6a, 0x7f, 0x01                         }, { vpcmpltud k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x01       }, { vpcmpltud k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x6a, 0x80, 0x01                         }, { vpcmpltud k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x01       }, { vpcmpltud k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1e, 0xed, 0x02                               }, { vpcmpleud k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x93, 0x0d, 0x47, 0x1e, 0xed, 0x02                               }, { vpcmpleud k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x29, 0x02                               }, { vpcmpleud k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb3, 0x0d, 0x40, 0x1e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x02 }, { vpcmpleud k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x29, 0x02                               }, { vpcmpleud k5,zmm30,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x6a, 0x7f, 0x02                         }, { vpcmpleud k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x02       }, { vpcmpleud k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x6a, 0x80, 0x02                         }, { vpcmpleud k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x02       }, { vpcmpleud k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x6a, 0x7f, 0x02                         }, { vpcmpleud k5,zmm30,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x02       }, { vpcmpleud k5,zmm30,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x6a, 0x80, 0x02                         }, { vpcmpleud k5,zmm30,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x02       }, { vpcmpleud k5,zmm30,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1e, 0xed, 0x04                               }, { vpcmpnequd k5,zmm30,zmm29                                    }
-testcase	{ 0x62, 0x93, 0x0d, 0x47, 0x1e, 0xed, 0x04                               }, { vpcmpnequd k5{k7},zmm30,zmm29                                }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x29, 0x04                               }, { vpcmpnequd k5,zmm30,ZWORD [rcx]                              }
-testcase	{ 0x62, 0xb3, 0x0d, 0x40, 0x1e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x04 }, { vpcmpnequd k5,zmm30,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x29, 0x04                               }, { vpcmpnequd k5,zmm30,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x6a, 0x7f, 0x04                         }, { vpcmpnequd k5,zmm30,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x04       }, { vpcmpnequd k5,zmm30,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x6a, 0x80, 0x04                         }, { vpcmpnequd k5,zmm30,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x04       }, { vpcmpnequd k5,zmm30,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x6a, 0x7f, 0x04                         }, { vpcmpnequd k5,zmm30,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x04       }, { vpcmpnequd k5,zmm30,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x6a, 0x80, 0x04                         }, { vpcmpnequd k5,zmm30,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x04       }, { vpcmpnequd k5,zmm30,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1e, 0xed, 0x05                               }, { vpcmpnltud k5,zmm30,zmm29                                    }
-testcase	{ 0x62, 0x93, 0x0d, 0x47, 0x1e, 0xed, 0x05                               }, { vpcmpnltud k5{k7},zmm30,zmm29                                }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x29, 0x05                               }, { vpcmpnltud k5,zmm30,ZWORD [rcx]                              }
-testcase	{ 0x62, 0xb3, 0x0d, 0x40, 0x1e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x05 }, { vpcmpnltud k5,zmm30,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x29, 0x05                               }, { vpcmpnltud k5,zmm30,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x6a, 0x7f, 0x05                         }, { vpcmpnltud k5,zmm30,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x05       }, { vpcmpnltud k5,zmm30,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x6a, 0x80, 0x05                         }, { vpcmpnltud k5,zmm30,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x05       }, { vpcmpnltud k5,zmm30,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x6a, 0x7f, 0x05                         }, { vpcmpnltud k5,zmm30,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x05       }, { vpcmpnltud k5,zmm30,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x6a, 0x80, 0x05                         }, { vpcmpnltud k5,zmm30,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x05       }, { vpcmpnltud k5,zmm30,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x93, 0x0d, 0x40, 0x1e, 0xed, 0x06                               }, { vpcmpnleud k5,zmm30,zmm29                                    }
-testcase	{ 0x62, 0x93, 0x0d, 0x47, 0x1e, 0xed, 0x06                               }, { vpcmpnleud k5{k7},zmm30,zmm29                                }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x29, 0x06                               }, { vpcmpnleud k5,zmm30,ZWORD [rcx]                              }
-testcase	{ 0x62, 0xb3, 0x0d, 0x40, 0x1e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x06 }, { vpcmpnleud k5,zmm30,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x29, 0x06                               }, { vpcmpnleud k5,zmm30,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x6a, 0x7f, 0x06                         }, { vpcmpnleud k5,zmm30,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x06       }, { vpcmpnleud k5,zmm30,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0x6a, 0x80, 0x06                         }, { vpcmpnleud k5,zmm30,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x40, 0x1e, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x06       }, { vpcmpnleud k5,zmm30,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x6a, 0x7f, 0x06                         }, { vpcmpnleud k5,zmm30,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0xaa, 0x00, 0x02, 0x00, 0x00, 0x06       }, { vpcmpnleud k5,zmm30,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0x6a, 0x80, 0x06                         }, { vpcmpnleud k5,zmm30,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0xf3, 0x0d, 0x50, 0x1e, 0xaa, 0xfc, 0xfd, 0xff, 0xff, 0x06       }, { vpcmpnleud k5,zmm30,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1e, 0xed, 0xab                               }, { vpcmpuq k5,zmm30,zmm29,0xab                                  }
-testcase	{ 0x62, 0x93, 0x8d, 0x47, 0x1e, 0xed, 0xab                               }, { vpcmpuq k5{k7},zmm30,zmm29,0xab                              }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1e, 0xed, 0x7b                               }, { vpcmpuq k5,zmm30,zmm29,0x7b                                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x29, 0x7b                               }, { vpcmpuq k5,zmm30,ZWORD [rcx],0x7b                            }
-testcase	{ 0x62, 0xb3, 0x8d, 0x40, 0x1e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpcmpuq k5,zmm30,ZWORD [rax+r14*8+0x123],0x7b                }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x29, 0x7b                               }, { vpcmpuq k5,zmm30,QWORD [rcx]{1to8},0x7b                      }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x6a, 0x7f, 0x7b                         }, { vpcmpuq k5,zmm30,ZWORD [rdx+0x1fc0],0x7b                     }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpcmpuq k5,zmm30,ZWORD [rdx+0x2000],0x7b                     }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x6a, 0x80, 0x7b                         }, { vpcmpuq k5,zmm30,ZWORD [rdx-0x2000],0x7b                     }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpcmpuq k5,zmm30,ZWORD [rdx-0x2040],0x7b                     }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x6a, 0x7f, 0x7b                         }, { vpcmpuq k5,zmm30,QWORD [rdx+0x3f8]{1to8},0x7b                }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vpcmpuq k5,zmm30,QWORD [rdx+0x400]{1to8},0x7b                }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x6a, 0x80, 0x7b                         }, { vpcmpuq k5,zmm30,QWORD [rdx-0x400]{1to8},0x7b                }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vpcmpuq k5,zmm30,QWORD [rdx-0x408]{1to8},0x7b                }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1e, 0xed, 0x00                               }, { vpcmpequq k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x93, 0x8d, 0x47, 0x1e, 0xed, 0x00                               }, { vpcmpequq k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x29, 0x00                               }, { vpcmpequq k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb3, 0x8d, 0x40, 0x1e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x00 }, { vpcmpequq k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x29, 0x00                               }, { vpcmpequq k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x6a, 0x7f, 0x00                         }, { vpcmpequq k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x00       }, { vpcmpequq k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x6a, 0x80, 0x00                         }, { vpcmpequq k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x00       }, { vpcmpequq k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x6a, 0x7f, 0x00                         }, { vpcmpequq k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x00       }, { vpcmpequq k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x6a, 0x80, 0x00                         }, { vpcmpequq k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x00       }, { vpcmpequq k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1e, 0xed, 0x01                               }, { vpcmpltuq k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x93, 0x8d, 0x47, 0x1e, 0xed, 0x01                               }, { vpcmpltuq k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x29, 0x01                               }, { vpcmpltuq k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb3, 0x8d, 0x40, 0x1e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x01 }, { vpcmpltuq k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x29, 0x01                               }, { vpcmpltuq k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x6a, 0x7f, 0x01                         }, { vpcmpltuq k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x01       }, { vpcmpltuq k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x6a, 0x80, 0x01                         }, { vpcmpltuq k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x01       }, { vpcmpltuq k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x6a, 0x7f, 0x01                         }, { vpcmpltuq k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x01       }, { vpcmpltuq k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x6a, 0x80, 0x01                         }, { vpcmpltuq k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x01       }, { vpcmpltuq k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1e, 0xed, 0x02                               }, { vpcmpleuq k5,zmm30,zmm29                                     }
-testcase	{ 0x62, 0x93, 0x8d, 0x47, 0x1e, 0xed, 0x02                               }, { vpcmpleuq k5{k7},zmm30,zmm29                                 }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x29, 0x02                               }, { vpcmpleuq k5,zmm30,ZWORD [rcx]                               }
-testcase	{ 0x62, 0xb3, 0x8d, 0x40, 0x1e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x02 }, { vpcmpleuq k5,zmm30,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x29, 0x02                               }, { vpcmpleuq k5,zmm30,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x6a, 0x7f, 0x02                         }, { vpcmpleuq k5,zmm30,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x02       }, { vpcmpleuq k5,zmm30,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x6a, 0x80, 0x02                         }, { vpcmpleuq k5,zmm30,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x02       }, { vpcmpleuq k5,zmm30,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x6a, 0x7f, 0x02                         }, { vpcmpleuq k5,zmm30,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x02       }, { vpcmpleuq k5,zmm30,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x6a, 0x80, 0x02                         }, { vpcmpleuq k5,zmm30,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x02       }, { vpcmpleuq k5,zmm30,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1e, 0xed, 0x04                               }, { vpcmpnequq k5,zmm30,zmm29                                    }
-testcase	{ 0x62, 0x93, 0x8d, 0x47, 0x1e, 0xed, 0x04                               }, { vpcmpnequq k5{k7},zmm30,zmm29                                }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x29, 0x04                               }, { vpcmpnequq k5,zmm30,ZWORD [rcx]                              }
-testcase	{ 0x62, 0xb3, 0x8d, 0x40, 0x1e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x04 }, { vpcmpnequq k5,zmm30,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x29, 0x04                               }, { vpcmpnequq k5,zmm30,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x6a, 0x7f, 0x04                         }, { vpcmpnequq k5,zmm30,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x04       }, { vpcmpnequq k5,zmm30,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x6a, 0x80, 0x04                         }, { vpcmpnequq k5,zmm30,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x04       }, { vpcmpnequq k5,zmm30,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x6a, 0x7f, 0x04                         }, { vpcmpnequq k5,zmm30,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x04       }, { vpcmpnequq k5,zmm30,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x6a, 0x80, 0x04                         }, { vpcmpnequq k5,zmm30,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x04       }, { vpcmpnequq k5,zmm30,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1e, 0xed, 0x05                               }, { vpcmpnltuq k5,zmm30,zmm29                                    }
-testcase	{ 0x62, 0x93, 0x8d, 0x47, 0x1e, 0xed, 0x05                               }, { vpcmpnltuq k5{k7},zmm30,zmm29                                }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x29, 0x05                               }, { vpcmpnltuq k5,zmm30,ZWORD [rcx]                              }
-testcase	{ 0x62, 0xb3, 0x8d, 0x40, 0x1e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x05 }, { vpcmpnltuq k5,zmm30,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x29, 0x05                               }, { vpcmpnltuq k5,zmm30,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x6a, 0x7f, 0x05                         }, { vpcmpnltuq k5,zmm30,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x05       }, { vpcmpnltuq k5,zmm30,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x6a, 0x80, 0x05                         }, { vpcmpnltuq k5,zmm30,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x05       }, { vpcmpnltuq k5,zmm30,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x6a, 0x7f, 0x05                         }, { vpcmpnltuq k5,zmm30,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x05       }, { vpcmpnltuq k5,zmm30,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x6a, 0x80, 0x05                         }, { vpcmpnltuq k5,zmm30,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x05       }, { vpcmpnltuq k5,zmm30,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x93, 0x8d, 0x40, 0x1e, 0xed, 0x06                               }, { vpcmpnleuq k5,zmm30,zmm29                                    }
-testcase	{ 0x62, 0x93, 0x8d, 0x47, 0x1e, 0xed, 0x06                               }, { vpcmpnleuq k5{k7},zmm30,zmm29                                }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x29, 0x06                               }, { vpcmpnleuq k5,zmm30,ZWORD [rcx]                              }
-testcase	{ 0x62, 0xb3, 0x8d, 0x40, 0x1e, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x06 }, { vpcmpnleuq k5,zmm30,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x29, 0x06                               }, { vpcmpnleuq k5,zmm30,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x6a, 0x7f, 0x06                         }, { vpcmpnleuq k5,zmm30,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0xaa, 0x00, 0x20, 0x00, 0x00, 0x06       }, { vpcmpnleuq k5,zmm30,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0x6a, 0x80, 0x06                         }, { vpcmpnleuq k5,zmm30,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0xf3, 0x8d, 0x40, 0x1e, 0xaa, 0xc0, 0xdf, 0xff, 0xff, 0x06       }, { vpcmpnleuq k5,zmm30,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x6a, 0x7f, 0x06                         }, { vpcmpnleuq k5,zmm30,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0xaa, 0x00, 0x04, 0x00, 0x00, 0x06       }, { vpcmpnleuq k5,zmm30,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0x6a, 0x80, 0x06                         }, { vpcmpnleuq k5,zmm30,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0xf3, 0x8d, 0x50, 0x1e, 0xaa, 0xf8, 0xfb, 0xff, 0xff, 0x06       }, { vpcmpnleuq k5,zmm30,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x64, 0xf4                                     }, { vpblendmq zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x64, 0xf4                                     }, { vpblendmq zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x64, 0xf4                                     }, { vpblendmq zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x64, 0x31                                     }, { vpblendmq zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x64, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpblendmq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x64, 0x31                                     }, { vpblendmq zmm30,zmm29,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x64, 0x72, 0x7f                               }, { vpblendmq zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x64, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpblendmq zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x64, 0x72, 0x80                               }, { vpblendmq zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x64, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpblendmq zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x64, 0x72, 0x7f                               }, { vpblendmq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x64, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpblendmq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x64, 0x72, 0x80                               }, { vpblendmq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x64, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpblendmq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x8b, 0x31                                     }, { vpcompressd ZWORD [rcx],zmm30                                }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x8b, 0x31                                     }, { vpcompressd ZWORD [rcx]{k7},zmm30                            }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0x8b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpcompressd ZWORD [rax+r14*8+0x123],zmm30                    }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x8b, 0x72, 0x7f                               }, { vpcompressd ZWORD [rdx+0x1fc],zmm30                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x8b, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpcompressd ZWORD [rdx+0x200],zmm30                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x8b, 0x72, 0x80                               }, { vpcompressd ZWORD [rdx-0x200],zmm30                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x8b, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpcompressd ZWORD [rdx-0x204],zmm30                          }
-testcase	{ 0x62, 0x02, 0x7d, 0x48, 0x8b, 0xee                                     }, { vpcompressd zmm30,zmm29                                      }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x8b, 0xee                                     }, { vpcompressd zmm30{k7},zmm29                                  }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x8b, 0xee                                     }, { vpcompressd zmm30{k7}{z},zmm29                               }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x36, 0xf4                                     }, { vpermd zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x36, 0xf4                                     }, { vpermd zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x36, 0xf4                                     }, { vpermd zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x36, 0x31                                     }, { vpermd zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x36, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpermd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x36, 0x31                                     }, { vpermd zmm30,zmm29,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x36, 0x72, 0x7f                               }, { vpermd zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x36, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpermd zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x36, 0x72, 0x80                               }, { vpermd zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x36, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpermd zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x36, 0x72, 0x7f                               }, { vpermd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x36, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpermd zmm30,zmm29,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x36, 0x72, 0x80                               }, { vpermd zmm30,zmm29,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x36, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpermd zmm30,zmm29,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x03, 0xfd, 0x48, 0x05, 0xf5, 0xab                               }, { vpermilpd zmm30,zmm29,0xab                                   }
-testcase	{ 0x62, 0x03, 0xfd, 0x4f, 0x05, 0xf5, 0xab                               }, { vpermilpd zmm30{k7},zmm29,0xab                               }
-testcase	{ 0x62, 0x03, 0xfd, 0xcf, 0x05, 0xf5, 0xab                               }, { vpermilpd zmm30{k7}{z},zmm29,0xab                            }
-testcase	{ 0x62, 0x03, 0xfd, 0x48, 0x05, 0xf5, 0x7b                               }, { vpermilpd zmm30,zmm29,0x7b                                   }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x05, 0x31, 0x7b                               }, { vpermilpd zmm30,ZWORD [rcx],0x7b                             }
-testcase	{ 0x62, 0x23, 0xfd, 0x48, 0x05, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpermilpd zmm30,ZWORD [rax+r14*8+0x123],0x7b                 }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x05, 0x31, 0x7b                               }, { vpermilpd zmm30,QWORD [rcx]{1to8},0x7b                       }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x05, 0x72, 0x7f, 0x7b                         }, { vpermilpd zmm30,ZWORD [rdx+0x1fc0],0x7b                      }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x05, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpermilpd zmm30,ZWORD [rdx+0x2000],0x7b                      }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x05, 0x72, 0x80, 0x7b                         }, { vpermilpd zmm30,ZWORD [rdx-0x2000],0x7b                      }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x05, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpermilpd zmm30,ZWORD [rdx-0x2040],0x7b                      }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x05, 0x72, 0x7f, 0x7b                         }, { vpermilpd zmm30,QWORD [rdx+0x3f8]{1to8},0x7b                 }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x05, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vpermilpd zmm30,QWORD [rdx+0x400]{1to8},0x7b                 }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x05, 0x72, 0x80, 0x7b                         }, { vpermilpd zmm30,QWORD [rdx-0x400]{1to8},0x7b                 }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x05, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vpermilpd zmm30,QWORD [rdx-0x408]{1to8},0x7b                 }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x0d, 0xf4                                     }, { vpermilpd zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x0d, 0xf4                                     }, { vpermilpd zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x0d, 0xf4                                     }, { vpermilpd zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x0d, 0x31                                     }, { vpermilpd zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x0d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpermilpd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x0d, 0x31                                     }, { vpermilpd zmm30,zmm29,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x0d, 0x72, 0x7f                               }, { vpermilpd zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x0d, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpermilpd zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x0d, 0x72, 0x80                               }, { vpermilpd zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x0d, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpermilpd zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x0d, 0x72, 0x7f                               }, { vpermilpd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x0d, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpermilpd zmm30,zmm29,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x0d, 0x72, 0x80                               }, { vpermilpd zmm30,zmm29,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x0d, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpermilpd zmm30,zmm29,QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x03, 0x7d, 0x48, 0x04, 0xf5, 0xab                               }, { vpermilps zmm30,zmm29,0xab                                   }
-testcase	{ 0x62, 0x03, 0x7d, 0x4f, 0x04, 0xf5, 0xab                               }, { vpermilps zmm30{k7},zmm29,0xab                               }
-testcase	{ 0x62, 0x03, 0x7d, 0xcf, 0x04, 0xf5, 0xab                               }, { vpermilps zmm30{k7}{z},zmm29,0xab                            }
-testcase	{ 0x62, 0x03, 0x7d, 0x48, 0x04, 0xf5, 0x7b                               }, { vpermilps zmm30,zmm29,0x7b                                   }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x04, 0x31, 0x7b                               }, { vpermilps zmm30,ZWORD [rcx],0x7b                             }
-testcase	{ 0x62, 0x23, 0x7d, 0x48, 0x04, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpermilps zmm30,ZWORD [rax+r14*8+0x123],0x7b                 }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x04, 0x31, 0x7b                               }, { vpermilps zmm30,DWORD [rcx]{1to16},0x7b                      }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x04, 0x72, 0x7f, 0x7b                         }, { vpermilps zmm30,ZWORD [rdx+0x1fc0],0x7b                      }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x04, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpermilps zmm30,ZWORD [rdx+0x2000],0x7b                      }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x04, 0x72, 0x80, 0x7b                         }, { vpermilps zmm30,ZWORD [rdx-0x2000],0x7b                      }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x04, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpermilps zmm30,ZWORD [rdx-0x2040],0x7b                      }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x04, 0x72, 0x7f, 0x7b                         }, { vpermilps zmm30,DWORD [rdx+0x1fc]{1to16},0x7b                }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x04, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vpermilps zmm30,DWORD [rdx+0x200]{1to16},0x7b                }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x04, 0x72, 0x80, 0x7b                         }, { vpermilps zmm30,DWORD [rdx-0x200]{1to16},0x7b                }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x04, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vpermilps zmm30,DWORD [rdx-0x204]{1to16},0x7b                }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x0c, 0xf4                                     }, { vpermilps zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x0c, 0xf4                                     }, { vpermilps zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x0c, 0xf4                                     }, { vpermilps zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x0c, 0x31                                     }, { vpermilps zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x0c, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpermilps zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x0c, 0x31                                     }, { vpermilps zmm30,zmm29,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x0c, 0x72, 0x7f                               }, { vpermilps zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x0c, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpermilps zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x0c, 0x72, 0x80                               }, { vpermilps zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x0c, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpermilps zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x0c, 0x72, 0x7f                               }, { vpermilps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x0c, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpermilps zmm30,zmm29,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x0c, 0x72, 0x80                               }, { vpermilps zmm30,zmm29,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x0c, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpermilps zmm30,zmm29,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x03, 0xfd, 0x48, 0x01, 0xf5, 0xab                               }, { vpermpd zmm30,zmm29,0xab                                     }
-testcase	{ 0x62, 0x03, 0xfd, 0x4f, 0x01, 0xf5, 0xab                               }, { vpermpd zmm30{k7},zmm29,0xab                                 }
-testcase	{ 0x62, 0x03, 0xfd, 0xcf, 0x01, 0xf5, 0xab                               }, { vpermpd zmm30{k7}{z},zmm29,0xab                              }
-testcase	{ 0x62, 0x03, 0xfd, 0x48, 0x01, 0xf5, 0x7b                               }, { vpermpd zmm30,zmm29,0x7b                                     }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x01, 0x31, 0x7b                               }, { vpermpd zmm30,ZWORD [rcx],0x7b                               }
-testcase	{ 0x62, 0x23, 0xfd, 0x48, 0x01, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpermpd zmm30,ZWORD [rax+r14*8+0x123],0x7b                   }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x01, 0x31, 0x7b                               }, { vpermpd zmm30,QWORD [rcx]{1to8},0x7b                         }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x01, 0x72, 0x7f, 0x7b                         }, { vpermpd zmm30,ZWORD [rdx+0x1fc0],0x7b                        }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x01, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpermpd zmm30,ZWORD [rdx+0x2000],0x7b                        }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x01, 0x72, 0x80, 0x7b                         }, { vpermpd zmm30,ZWORD [rdx-0x2000],0x7b                        }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x01, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpermpd zmm30,ZWORD [rdx-0x2040],0x7b                        }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x01, 0x72, 0x7f, 0x7b                         }, { vpermpd zmm30,QWORD [rdx+0x3f8]{1to8},0x7b                   }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x01, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vpermpd zmm30,QWORD [rdx+0x400]{1to8},0x7b                   }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x01, 0x72, 0x80, 0x7b                         }, { vpermpd zmm30,QWORD [rdx-0x400]{1to8},0x7b                   }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x01, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vpermpd zmm30,QWORD [rdx-0x408]{1to8},0x7b                   }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x16, 0xf4                                     }, { vpermps zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x16, 0xf4                                     }, { vpermps zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x16, 0xf4                                     }, { vpermps zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x16, 0x31                                     }, { vpermps zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x16, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpermps zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x16, 0x31                                     }, { vpermps zmm30,zmm29,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x16, 0x72, 0x7f                               }, { vpermps zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x16, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpermps zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x16, 0x72, 0x80                               }, { vpermps zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x16, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpermps zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x16, 0x72, 0x7f                               }, { vpermps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x16, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpermps zmm30,zmm29,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x16, 0x72, 0x80                               }, { vpermps zmm30,zmm29,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x16, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpermps zmm30,zmm29,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x03, 0xfd, 0x48, 0x00, 0xf5, 0xab                               }, { vpermq zmm30,zmm29,0xab                                      }
-testcase	{ 0x62, 0x03, 0xfd, 0x4f, 0x00, 0xf5, 0xab                               }, { vpermq zmm30{k7},zmm29,0xab                                  }
-testcase	{ 0x62, 0x03, 0xfd, 0xcf, 0x00, 0xf5, 0xab                               }, { vpermq zmm30{k7}{z},zmm29,0xab                               }
-testcase	{ 0x62, 0x03, 0xfd, 0x48, 0x00, 0xf5, 0x7b                               }, { vpermq zmm30,zmm29,0x7b                                      }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x00, 0x31, 0x7b                               }, { vpermq zmm30,ZWORD [rcx],0x7b                                }
-testcase	{ 0x62, 0x23, 0xfd, 0x48, 0x00, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpermq zmm30,ZWORD [rax+r14*8+0x123],0x7b                    }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x00, 0x31, 0x7b                               }, { vpermq zmm30,QWORD [rcx]{1to8},0x7b                          }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x00, 0x72, 0x7f, 0x7b                         }, { vpermq zmm30,ZWORD [rdx+0x1fc0],0x7b                         }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x00, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpermq zmm30,ZWORD [rdx+0x2000],0x7b                         }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x00, 0x72, 0x80, 0x7b                         }, { vpermq zmm30,ZWORD [rdx-0x2000],0x7b                         }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x00, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpermq zmm30,ZWORD [rdx-0x2040],0x7b                         }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x00, 0x72, 0x7f, 0x7b                         }, { vpermq zmm30,QWORD [rdx+0x3f8]{1to8},0x7b                    }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x00, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vpermq zmm30,QWORD [rdx+0x400]{1to8},0x7b                    }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x00, 0x72, 0x80, 0x7b                         }, { vpermq zmm30,QWORD [rdx-0x400]{1to8},0x7b                    }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x00, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vpermq zmm30,QWORD [rdx-0x408]{1to8},0x7b                    }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x89, 0x31                                     }, { vpexpandd zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x89, 0x31                                     }, { vpexpandd zmm30{k7},ZWORD [rcx]                              }
-testcase	{ 0x62, 0x62, 0x7d, 0xcf, 0x89, 0x31                                     }, { vpexpandd zmm30{k7}{z},ZWORD [rcx]                           }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0x89, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpexpandd zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x89, 0x72, 0x7f                               }, { vpexpandd zmm30,ZWORD [rdx+0x1fc]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x89, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpexpandd zmm30,ZWORD [rdx+0x200]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x89, 0x72, 0x80                               }, { vpexpandd zmm30,ZWORD [rdx-0x200]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x89, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpexpandd zmm30,ZWORD [rdx-0x204]                            }
-testcase	{ 0x62, 0x02, 0x7d, 0x48, 0x89, 0xf5                                     }, { vpexpandd zmm30,zmm29                                        }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x89, 0xf5                                     }, { vpexpandd zmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x89, 0xf5                                     }, { vpexpandd zmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x89, 0x31                                     }, { vpexpandq zmm30,ZWORD [rcx]                                  }
-testcase	{ 0x62, 0x62, 0xfd, 0x4f, 0x89, 0x31                                     }, { vpexpandq zmm30{k7},ZWORD [rcx]                              }
-testcase	{ 0x62, 0x62, 0xfd, 0xcf, 0x89, 0x31                                     }, { vpexpandq zmm30{k7}{z},ZWORD [rcx]                           }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0x89, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpexpandq zmm30,ZWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x89, 0x72, 0x7f                               }, { vpexpandq zmm30,ZWORD [rdx+0x3f8]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x89, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpexpandq zmm30,ZWORD [rdx+0x400]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x89, 0x72, 0x80                               }, { vpexpandq zmm30,ZWORD [rdx-0x400]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x89, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpexpandq zmm30,ZWORD [rdx-0x408]                            }
-testcase	{ 0x62, 0x02, 0xfd, 0x48, 0x89, 0xf5                                     }, { vpexpandq zmm30,zmm29                                        }
-testcase	{ 0x62, 0x02, 0xfd, 0x4f, 0x89, 0xf5                                     }, { vpexpandq zmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x02, 0xfd, 0xcf, 0x89, 0xf5                                     }, { vpexpandq zmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x02, 0x7d, 0x41, 0x90, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vpgatherdd zmm30{k1}, [r14+zmm31*8+0x7b]                     }
-testcase	{ 0x62, 0x02, 0x7d, 0x41, 0x90, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vpgatherdd zmm30{k1}, [r14+zmm31*8+0x7b]                     }
-testcase	{ 0x62, 0x02, 0x7d, 0x41, 0x90, 0x74, 0x39, 0x40                         }, { vpgatherdd zmm30{k1}, [r9+zmm31*1+0x100]                     }
-testcase	{ 0x62, 0x22, 0x7d, 0x41, 0x90, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vpgatherdd zmm30{k1}, [rcx+zmm31*4+0x400]                    }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0x90, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vpgatherdq zmm30{k1}, [r14+ymm31*8+0x7b]                     }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0x90, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vpgatherdq zmm30{k1}, [r14+ymm31*8+0x7b]                     }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0x90, 0x74, 0x39, 0x20                         }, { vpgatherdq zmm30{k1}, [r9+ymm31*1+0x100]                     }
-testcase	{ 0x62, 0x22, 0xfd, 0x41, 0x90, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vpgatherdq zmm30{k1}, [rcx+ymm31*4+0x400]                    }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0x91, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vpgatherqq zmm30{k1}, [r14+zmm31*8+0x7b]                     }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0x91, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vpgatherqq zmm30{k1}, [r14+zmm31*8+0x7b]                     }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0x91, 0x74, 0x39, 0x20                         }, { vpgatherqq zmm30{k1}, [r9+zmm31*1+0x100]                     }
-testcase	{ 0x62, 0x22, 0xfd, 0x41, 0x91, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vpgatherqq zmm30{k1}, [rcx+zmm31*4+0x400]                    }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x3d, 0xf4                                     }, { vpmaxsd zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x3d, 0xf4                                     }, { vpmaxsd zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x3d, 0xf4                                     }, { vpmaxsd zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3d, 0x31                                     }, { vpmaxsd zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x3d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmaxsd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3d, 0x31                                     }, { vpmaxsd zmm30,zmm29,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3d, 0x72, 0x7f                               }, { vpmaxsd zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3d, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpmaxsd zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3d, 0x72, 0x80                               }, { vpmaxsd zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3d, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpmaxsd zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3d, 0x72, 0x7f                               }, { vpmaxsd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3d, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpmaxsd zmm30,zmm29,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3d, 0x72, 0x80                               }, { vpmaxsd zmm30,zmm29,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3d, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpmaxsd zmm30,zmm29,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x3d, 0xf4                                     }, { vpmaxsq zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x3d, 0xf4                                     }, { vpmaxsq zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x3d, 0xf4                                     }, { vpmaxsq zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3d, 0x31                                     }, { vpmaxsq zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x3d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmaxsq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3d, 0x31                                     }, { vpmaxsq zmm30,zmm29,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3d, 0x72, 0x7f                               }, { vpmaxsq zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3d, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpmaxsq zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3d, 0x72, 0x80                               }, { vpmaxsq zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3d, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpmaxsq zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3d, 0x72, 0x7f                               }, { vpmaxsq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3d, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpmaxsq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3d, 0x72, 0x80                               }, { vpmaxsq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3d, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpmaxsq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x3f, 0xf4                                     }, { vpmaxud zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x3f, 0xf4                                     }, { vpmaxud zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x3f, 0xf4                                     }, { vpmaxud zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3f, 0x31                                     }, { vpmaxud zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x3f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmaxud zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3f, 0x31                                     }, { vpmaxud zmm30,zmm29,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3f, 0x72, 0x7f                               }, { vpmaxud zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpmaxud zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3f, 0x72, 0x80                               }, { vpmaxud zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpmaxud zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3f, 0x72, 0x7f                               }, { vpmaxud zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3f, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpmaxud zmm30,zmm29,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3f, 0x72, 0x80                               }, { vpmaxud zmm30,zmm29,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3f, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpmaxud zmm30,zmm29,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x3f, 0xf4                                     }, { vpmaxuq zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x3f, 0xf4                                     }, { vpmaxuq zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x3f, 0xf4                                     }, { vpmaxuq zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3f, 0x31                                     }, { vpmaxuq zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x3f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmaxuq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3f, 0x31                                     }, { vpmaxuq zmm30,zmm29,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3f, 0x72, 0x7f                               }, { vpmaxuq zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpmaxuq zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3f, 0x72, 0x80                               }, { vpmaxuq zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpmaxuq zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3f, 0x72, 0x7f                               }, { vpmaxuq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3f, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpmaxuq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3f, 0x72, 0x80                               }, { vpmaxuq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3f, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpmaxuq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x39, 0xf4                                     }, { vpminsd zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x39, 0xf4                                     }, { vpminsd zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x39, 0xf4                                     }, { vpminsd zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x39, 0x31                                     }, { vpminsd zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x39, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpminsd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x39, 0x31                                     }, { vpminsd zmm30,zmm29,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x39, 0x72, 0x7f                               }, { vpminsd zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x39, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpminsd zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x39, 0x72, 0x80                               }, { vpminsd zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x39, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpminsd zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x39, 0x72, 0x7f                               }, { vpminsd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x39, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpminsd zmm30,zmm29,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x39, 0x72, 0x80                               }, { vpminsd zmm30,zmm29,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x39, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpminsd zmm30,zmm29,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x39, 0xf4                                     }, { vpminsq zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x39, 0xf4                                     }, { vpminsq zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x39, 0xf4                                     }, { vpminsq zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x39, 0x31                                     }, { vpminsq zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x39, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpminsq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x39, 0x31                                     }, { vpminsq zmm30,zmm29,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x39, 0x72, 0x7f                               }, { vpminsq zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x39, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpminsq zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x39, 0x72, 0x80                               }, { vpminsq zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x39, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpminsq zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x39, 0x72, 0x7f                               }, { vpminsq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x39, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpminsq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x39, 0x72, 0x80                               }, { vpminsq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x39, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpminsq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x3b, 0xf4                                     }, { vpminud zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x3b, 0xf4                                     }, { vpminud zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x3b, 0xf4                                     }, { vpminud zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3b, 0x31                                     }, { vpminud zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x3b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpminud zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3b, 0x31                                     }, { vpminud zmm30,zmm29,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3b, 0x72, 0x7f                               }, { vpminud zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3b, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpminud zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3b, 0x72, 0x80                               }, { vpminud zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x3b, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpminud zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3b, 0x72, 0x7f                               }, { vpminud zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3b, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpminud zmm30,zmm29,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3b, 0x72, 0x80                               }, { vpminud zmm30,zmm29,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x3b, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpminud zmm30,zmm29,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x3b, 0xf4                                     }, { vpminuq zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x3b, 0xf4                                     }, { vpminuq zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x3b, 0xf4                                     }, { vpminuq zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3b, 0x31                                     }, { vpminuq zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x3b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpminuq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3b, 0x31                                     }, { vpminuq zmm30,zmm29,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3b, 0x72, 0x7f                               }, { vpminuq zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3b, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpminuq zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3b, 0x72, 0x80                               }, { vpminuq zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x3b, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpminuq zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3b, 0x72, 0x7f                               }, { vpminuq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3b, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpminuq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3b, 0x72, 0x80                               }, { vpminuq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x3b, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpminuq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x21, 0xf5                                     }, { vpmovsxbd zmm30{k7},xmm29                                    }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x21, 0xf5                                     }, { vpmovsxbd zmm30{k7}{z},xmm29                                 }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x21, 0x31                                     }, { vpmovsxbd zmm30{k7},OWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x7d, 0x4f, 0x21, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovsxbd zmm30{k7},OWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x21, 0x72, 0x7f                               }, { vpmovsxbd zmm30{k7},OWORD [rdx+0x7f0]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x21, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpmovsxbd zmm30{k7},OWORD [rdx+0x800]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x21, 0x72, 0x80                               }, { vpmovsxbd zmm30{k7},OWORD [rdx-0x800]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x21, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpmovsxbd zmm30{k7},OWORD [rdx-0x810]                        }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x22, 0xf5                                     }, { vpmovsxbq zmm30{k7},xmm29                                    }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x22, 0xf5                                     }, { vpmovsxbq zmm30{k7}{z},xmm29                                 }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x22, 0x31                                     }, { vpmovsxbq zmm30{k7},QWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x7d, 0x4f, 0x22, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovsxbq zmm30{k7},QWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x22, 0x72, 0x7f                               }, { vpmovsxbq zmm30{k7},QWORD [rdx+0x3f8]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x22, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpmovsxbq zmm30{k7},QWORD [rdx+0x400]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x22, 0x72, 0x80                               }, { vpmovsxbq zmm30{k7},QWORD [rdx-0x400]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x22, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpmovsxbq zmm30{k7},QWORD [rdx-0x408]                        }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x25, 0xf5                                     }, { vpmovsxdq zmm30{k7},ymm29                                    }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x25, 0xf5                                     }, { vpmovsxdq zmm30{k7}{z},ymm29                                 }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x25, 0x31                                     }, { vpmovsxdq zmm30{k7},YWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x7d, 0x4f, 0x25, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovsxdq zmm30{k7},YWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x25, 0x72, 0x7f                               }, { vpmovsxdq zmm30{k7},YWORD [rdx+0xfe0]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x25, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vpmovsxdq zmm30{k7},YWORD [rdx+0x1000]                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x25, 0x72, 0x80                               }, { vpmovsxdq zmm30{k7},YWORD [rdx-0x1000]                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x25, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vpmovsxdq zmm30{k7},YWORD [rdx-0x1020]                       }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x23, 0xf5                                     }, { vpmovsxwd zmm30{k7},ymm29                                    }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x23, 0xf5                                     }, { vpmovsxwd zmm30{k7}{z},ymm29                                 }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x23, 0x31                                     }, { vpmovsxwd zmm30{k7},YWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x7d, 0x4f, 0x23, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovsxwd zmm30{k7},YWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x23, 0x72, 0x7f                               }, { vpmovsxwd zmm30{k7},YWORD [rdx+0xfe0]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x23, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vpmovsxwd zmm30{k7},YWORD [rdx+0x1000]                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x23, 0x72, 0x80                               }, { vpmovsxwd zmm30{k7},YWORD [rdx-0x1000]                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x23, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vpmovsxwd zmm30{k7},YWORD [rdx-0x1020]                       }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x24, 0xf5                                     }, { vpmovsxwq zmm30{k7},xmm29                                    }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x24, 0xf5                                     }, { vpmovsxwq zmm30{k7}{z},xmm29                                 }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x24, 0x31                                     }, { vpmovsxwq zmm30{k7},OWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x7d, 0x4f, 0x24, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovsxwq zmm30{k7},OWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x24, 0x72, 0x7f                               }, { vpmovsxwq zmm30{k7},OWORD [rdx+0x7f0]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x24, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpmovsxwq zmm30{k7},OWORD [rdx+0x800]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x24, 0x72, 0x80                               }, { vpmovsxwq zmm30{k7},OWORD [rdx-0x800]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x24, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpmovsxwq zmm30{k7},OWORD [rdx-0x810]                        }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x31, 0xf5                                     }, { vpmovzxbd zmm30{k7},xmm29                                    }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x31, 0xf5                                     }, { vpmovzxbd zmm30{k7}{z},xmm29                                 }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x31, 0x31                                     }, { vpmovzxbd zmm30{k7},OWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x7d, 0x4f, 0x31, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovzxbd zmm30{k7},OWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x31, 0x72, 0x7f                               }, { vpmovzxbd zmm30{k7},OWORD [rdx+0x7f0]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x31, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpmovzxbd zmm30{k7},OWORD [rdx+0x800]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x31, 0x72, 0x80                               }, { vpmovzxbd zmm30{k7},OWORD [rdx-0x800]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x31, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpmovzxbd zmm30{k7},OWORD [rdx-0x810]                        }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x32, 0xf5                                     }, { vpmovzxbq zmm30{k7},xmm29                                    }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x32, 0xf5                                     }, { vpmovzxbq zmm30{k7}{z},xmm29                                 }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x32, 0x31                                     }, { vpmovzxbq zmm30{k7},QWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x7d, 0x4f, 0x32, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovzxbq zmm30{k7},QWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x32, 0x72, 0x7f                               }, { vpmovzxbq zmm30{k7},QWORD [rdx+0x3f8]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x32, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpmovzxbq zmm30{k7},QWORD [rdx+0x400]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x32, 0x72, 0x80                               }, { vpmovzxbq zmm30{k7},QWORD [rdx-0x400]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x32, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpmovzxbq zmm30{k7},QWORD [rdx-0x408]                        }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x35, 0xf5                                     }, { vpmovzxdq zmm30{k7},ymm29                                    }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x35, 0xf5                                     }, { vpmovzxdq zmm30{k7}{z},ymm29                                 }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x35, 0x31                                     }, { vpmovzxdq zmm30{k7},YWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x7d, 0x4f, 0x35, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovzxdq zmm30{k7},YWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x35, 0x72, 0x7f                               }, { vpmovzxdq zmm30{k7},YWORD [rdx+0xfe0]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x35, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vpmovzxdq zmm30{k7},YWORD [rdx+0x1000]                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x35, 0x72, 0x80                               }, { vpmovzxdq zmm30{k7},YWORD [rdx-0x1000]                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x35, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vpmovzxdq zmm30{k7},YWORD [rdx-0x1020]                       }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x33, 0xf5                                     }, { vpmovzxwd zmm30{k7},ymm29                                    }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x33, 0xf5                                     }, { vpmovzxwd zmm30{k7}{z},ymm29                                 }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x33, 0x31                                     }, { vpmovzxwd zmm30{k7},YWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x7d, 0x4f, 0x33, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovzxwd zmm30{k7},YWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x33, 0x72, 0x7f                               }, { vpmovzxwd zmm30{k7},YWORD [rdx+0xfe0]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x33, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vpmovzxwd zmm30{k7},YWORD [rdx+0x1000]                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x33, 0x72, 0x80                               }, { vpmovzxwd zmm30{k7},YWORD [rdx-0x1000]                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x33, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vpmovzxwd zmm30{k7},YWORD [rdx-0x1020]                       }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x34, 0xf5                                     }, { vpmovzxwq zmm30{k7},xmm29                                    }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x34, 0xf5                                     }, { vpmovzxwq zmm30{k7}{z},xmm29                                 }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x34, 0x31                                     }, { vpmovzxwq zmm30{k7},OWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x7d, 0x4f, 0x34, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovzxwq zmm30{k7},OWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x34, 0x72, 0x7f                               }, { vpmovzxwq zmm30{k7},OWORD [rdx+0x7f0]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x34, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpmovzxwq zmm30{k7},OWORD [rdx+0x800]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x34, 0x72, 0x80                               }, { vpmovzxwq zmm30{k7},OWORD [rdx-0x800]                        }
-testcase	{ 0x62, 0x62, 0x7d, 0x4f, 0x34, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpmovzxwq zmm30{k7},OWORD [rdx-0x810]                        }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x28, 0xf4                                     }, { vpmuldq zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x28, 0xf4                                     }, { vpmuldq zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x28, 0xf4                                     }, { vpmuldq zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x28, 0x31                                     }, { vpmuldq zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x28, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmuldq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x28, 0x31                                     }, { vpmuldq zmm30,zmm29,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x28, 0x72, 0x7f                               }, { vpmuldq zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x28, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpmuldq zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x28, 0x72, 0x80                               }, { vpmuldq zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x28, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpmuldq zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x28, 0x72, 0x7f                               }, { vpmuldq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x28, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpmuldq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x28, 0x72, 0x80                               }, { vpmuldq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x28, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpmuldq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x40, 0xf4                                     }, { vpmulld zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x40, 0xf4                                     }, { vpmulld zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x40, 0xf4                                     }, { vpmulld zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x40, 0x31                                     }, { vpmulld zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x40, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmulld zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x40, 0x31                                     }, { vpmulld zmm30,zmm29,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x40, 0x72, 0x7f                               }, { vpmulld zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x40, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpmulld zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x40, 0x72, 0x80                               }, { vpmulld zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x40, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpmulld zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x40, 0x72, 0x7f                               }, { vpmulld zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x40, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpmulld zmm30,zmm29,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x40, 0x72, 0x80                               }, { vpmulld zmm30,zmm29,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x40, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpmulld zmm30,zmm29,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0xf4, 0xf4                                     }, { vpmuludq zmm30,zmm29,zmm28                                   }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0xf4, 0xf4                                     }, { vpmuludq zmm30{k7},zmm29,zmm28                               }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0xf4, 0xf4                                     }, { vpmuludq zmm30{k7}{z},zmm29,zmm28                            }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xf4, 0x31                                     }, { vpmuludq zmm30,zmm29,ZWORD [rcx]                             }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0xf4, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmuludq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xf4, 0x31                                     }, { vpmuludq zmm30,zmm29,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xf4, 0x72, 0x7f                               }, { vpmuludq zmm30,zmm29,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xf4, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpmuludq zmm30,zmm29,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xf4, 0x72, 0x80                               }, { vpmuludq zmm30,zmm29,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xf4, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpmuludq zmm30,zmm29,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xf4, 0x72, 0x7f                               }, { vpmuludq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xf4, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpmuludq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xf4, 0x72, 0x80                               }, { vpmuludq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xf4, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpmuludq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x01, 0x15, 0x40, 0xeb, 0xf4                                     }, { vpord  zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x15, 0x47, 0xeb, 0xf4                                     }, { vpord  zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x15, 0xc7, 0xeb, 0xf4                                     }, { vpord  zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xeb, 0x31                                     }, { vpord  zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x15, 0x40, 0xeb, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpord  zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xeb, 0x31                                     }, { vpord  zmm30,zmm29,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xeb, 0x72, 0x7f                               }, { vpord  zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xeb, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpord  zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xeb, 0x72, 0x80                               }, { vpord  zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xeb, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpord  zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xeb, 0x72, 0x7f                               }, { vpord  zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xeb, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpord  zmm30,zmm29,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xeb, 0x72, 0x80                               }, { vpord  zmm30,zmm29,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xeb, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpord  zmm30,zmm29,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0xeb, 0xf4                                     }, { vporq  zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0xeb, 0xf4                                     }, { vporq  zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0xeb, 0xf4                                     }, { vporq  zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xeb, 0x31                                     }, { vporq  zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0xeb, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vporq  zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xeb, 0x31                                     }, { vporq  zmm30,zmm29,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xeb, 0x72, 0x7f                               }, { vporq  zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xeb, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vporq  zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xeb, 0x72, 0x80                               }, { vporq  zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xeb, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vporq  zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xeb, 0x72, 0x7f                               }, { vporq  zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xeb, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vporq  zmm30,zmm29,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xeb, 0x72, 0x80                               }, { vporq  zmm30,zmm29,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xeb, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vporq  zmm30,zmm29,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x02, 0x7d, 0x41, 0xa0, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vpscatterdd  [r14+zmm31*8+0x7b]{k1},zmm30                    }
-testcase	{ 0x62, 0x02, 0x7d, 0x41, 0xa0, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vpscatterdd  [r14+zmm31*8+0x7b]{k1},zmm30                    }
-testcase	{ 0x62, 0x02, 0x7d, 0x41, 0xa0, 0x74, 0x39, 0x40                         }, { vpscatterdd  [r9+zmm31*1+0x100]{k1},zmm30                    }
-testcase	{ 0x62, 0x22, 0x7d, 0x41, 0xa0, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vpscatterdd  [rcx+zmm31*4+0x400]{k1},zmm30                   }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0xa0, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vpscatterdq  [r14+ymm31*8+0x7b]{k1},zmm30                    }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0xa0, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vpscatterdq  [r14+ymm31*8+0x7b]{k1},zmm30                    }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0xa0, 0x74, 0x39, 0x20                         }, { vpscatterdq  [r9+ymm31*1+0x100]{k1},zmm30                    }
-testcase	{ 0x62, 0x22, 0xfd, 0x41, 0xa0, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vpscatterdq  [rcx+ymm31*4+0x400]{k1},zmm30                   }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0xa1, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vpscatterqq  [r14+zmm31*8+0x7b]{k1},zmm30                    }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0xa1, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vpscatterqq  [r14+zmm31*8+0x7b]{k1},zmm30                    }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0xa1, 0x74, 0x39, 0x20                         }, { vpscatterqq  [r9+zmm31*1+0x100]{k1},zmm30                    }
-testcase	{ 0x62, 0x22, 0xfd, 0x41, 0xa1, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vpscatterqq  [rcx+zmm31*4+0x400]{k1},zmm30                   }
-testcase	{ 0x62, 0x01, 0x7d, 0x48, 0x70, 0xf5, 0xab                               }, { vpshufd zmm30,zmm29,0xab                                     }
-testcase	{ 0x62, 0x01, 0x7d, 0x4f, 0x70, 0xf5, 0xab                               }, { vpshufd zmm30{k7},zmm29,0xab                                 }
-testcase	{ 0x62, 0x01, 0x7d, 0xcf, 0x70, 0xf5, 0xab                               }, { vpshufd zmm30{k7}{z},zmm29,0xab                              }
-testcase	{ 0x62, 0x01, 0x7d, 0x48, 0x70, 0xf5, 0x7b                               }, { vpshufd zmm30,zmm29,0x7b                                     }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x70, 0x31, 0x7b                               }, { vpshufd zmm30,ZWORD [rcx],0x7b                               }
-testcase	{ 0x62, 0x21, 0x7d, 0x48, 0x70, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpshufd zmm30,ZWORD [rax+r14*8+0x123],0x7b                   }
-testcase	{ 0x62, 0x61, 0x7d, 0x58, 0x70, 0x31, 0x7b                               }, { vpshufd zmm30,DWORD [rcx]{1to16},0x7b                        }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x70, 0x72, 0x7f, 0x7b                         }, { vpshufd zmm30,ZWORD [rdx+0x1fc0],0x7b                        }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x70, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpshufd zmm30,ZWORD [rdx+0x2000],0x7b                        }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x70, 0x72, 0x80, 0x7b                         }, { vpshufd zmm30,ZWORD [rdx-0x2000],0x7b                        }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x70, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpshufd zmm30,ZWORD [rdx-0x2040],0x7b                        }
-testcase	{ 0x62, 0x61, 0x7d, 0x58, 0x70, 0x72, 0x7f, 0x7b                         }, { vpshufd zmm30,DWORD [rdx+0x1fc]{1to16},0x7b                  }
-testcase	{ 0x62, 0x61, 0x7d, 0x58, 0x70, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vpshufd zmm30,DWORD [rdx+0x200]{1to16},0x7b                  }
-testcase	{ 0x62, 0x61, 0x7d, 0x58, 0x70, 0x72, 0x80, 0x7b                         }, { vpshufd zmm30,DWORD [rdx-0x200]{1to16},0x7b                  }
-testcase	{ 0x62, 0x61, 0x7d, 0x58, 0x70, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vpshufd zmm30,DWORD [rdx-0x204]{1to16},0x7b                  }
-testcase	{ 0x62, 0x01, 0x15, 0x47, 0xf2, 0xf4                                     }, { vpslld zmm30{k7},zmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x15, 0xc7, 0xf2, 0xf4                                     }, { vpslld zmm30{k7}{z},zmm29,xmm28                              }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xf2, 0x31                                     }, { vpslld zmm30{k7},zmm29,OWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x15, 0x47, 0xf2, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpslld zmm30{k7},zmm29,OWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xf2, 0x72, 0x7f                               }, { vpslld zmm30{k7},zmm29,OWORD [rdx+0x7f0]                     }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xf2, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpslld zmm30{k7},zmm29,OWORD [rdx+0x800]                     }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xf2, 0x72, 0x80                               }, { vpslld zmm30{k7},zmm29,OWORD [rdx-0x800]                     }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xf2, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpslld zmm30{k7},zmm29,OWORD [rdx-0x810]                     }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0xf3, 0xf4                                     }, { vpsllq zmm30{k7},zmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0xf3, 0xf4                                     }, { vpsllq zmm30{k7}{z},zmm29,xmm28                              }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xf3, 0x31                                     }, { vpsllq zmm30{k7},zmm29,OWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x95, 0x47, 0xf3, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpsllq zmm30{k7},zmm29,OWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xf3, 0x72, 0x7f                               }, { vpsllq zmm30{k7},zmm29,OWORD [rdx+0x7f0]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xf3, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpsllq zmm30{k7},zmm29,OWORD [rdx+0x800]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xf3, 0x72, 0x80                               }, { vpsllq zmm30{k7},zmm29,OWORD [rdx-0x800]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xf3, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpsllq zmm30{k7},zmm29,OWORD [rdx-0x810]                     }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x47, 0xf4                                     }, { vpsllvd zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x47, 0xf4                                     }, { vpsllvd zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x47, 0xf4                                     }, { vpsllvd zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x47, 0x31                                     }, { vpsllvd zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x47, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpsllvd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x47, 0x31                                     }, { vpsllvd zmm30,zmm29,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x47, 0x72, 0x7f                               }, { vpsllvd zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x47, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpsllvd zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x47, 0x72, 0x80                               }, { vpsllvd zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x47, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpsllvd zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x47, 0x72, 0x7f                               }, { vpsllvd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x47, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpsllvd zmm30,zmm29,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x47, 0x72, 0x80                               }, { vpsllvd zmm30,zmm29,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x47, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpsllvd zmm30,zmm29,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x47, 0xf4                                     }, { vpsllvq zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x47, 0xf4                                     }, { vpsllvq zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x47, 0xf4                                     }, { vpsllvq zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x47, 0x31                                     }, { vpsllvq zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x47, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpsllvq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x47, 0x31                                     }, { vpsllvq zmm30,zmm29,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x47, 0x72, 0x7f                               }, { vpsllvq zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x47, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpsllvq zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x47, 0x72, 0x80                               }, { vpsllvq zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x47, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpsllvq zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x47, 0x72, 0x7f                               }, { vpsllvq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x47, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpsllvq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x47, 0x72, 0x80                               }, { vpsllvq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x47, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpsllvq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x01, 0x15, 0x47, 0xe2, 0xf4                                     }, { vpsrad zmm30{k7},zmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x15, 0xc7, 0xe2, 0xf4                                     }, { vpsrad zmm30{k7}{z},zmm29,xmm28                              }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xe2, 0x31                                     }, { vpsrad zmm30{k7},zmm29,OWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x15, 0x47, 0xe2, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpsrad zmm30{k7},zmm29,OWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xe2, 0x72, 0x7f                               }, { vpsrad zmm30{k7},zmm29,OWORD [rdx+0x7f0]                     }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xe2, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpsrad zmm30{k7},zmm29,OWORD [rdx+0x800]                     }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xe2, 0x72, 0x80                               }, { vpsrad zmm30{k7},zmm29,OWORD [rdx-0x800]                     }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xe2, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpsrad zmm30{k7},zmm29,OWORD [rdx-0x810]                     }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0xe2, 0xf4                                     }, { vpsraq zmm30{k7},zmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0xe2, 0xf4                                     }, { vpsraq zmm30{k7}{z},zmm29,xmm28                              }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xe2, 0x31                                     }, { vpsraq zmm30{k7},zmm29,OWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x95, 0x47, 0xe2, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpsraq zmm30{k7},zmm29,OWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xe2, 0x72, 0x7f                               }, { vpsraq zmm30{k7},zmm29,OWORD [rdx+0x7f0]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xe2, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpsraq zmm30{k7},zmm29,OWORD [rdx+0x800]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xe2, 0x72, 0x80                               }, { vpsraq zmm30{k7},zmm29,OWORD [rdx-0x800]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xe2, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpsraq zmm30{k7},zmm29,OWORD [rdx-0x810]                     }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x46, 0xf4                                     }, { vpsravd zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x46, 0xf4                                     }, { vpsravd zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x46, 0xf4                                     }, { vpsravd zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x46, 0x31                                     }, { vpsravd zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x46, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpsravd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x46, 0x31                                     }, { vpsravd zmm30,zmm29,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x46, 0x72, 0x7f                               }, { vpsravd zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x46, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpsravd zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x46, 0x72, 0x80                               }, { vpsravd zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x46, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpsravd zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x46, 0x72, 0x7f                               }, { vpsravd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x46, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpsravd zmm30,zmm29,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x46, 0x72, 0x80                               }, { vpsravd zmm30,zmm29,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x46, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpsravd zmm30,zmm29,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x46, 0xf4                                     }, { vpsravq zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x46, 0xf4                                     }, { vpsravq zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x46, 0xf4                                     }, { vpsravq zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x46, 0x31                                     }, { vpsravq zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x46, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpsravq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x46, 0x31                                     }, { vpsravq zmm30,zmm29,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x46, 0x72, 0x7f                               }, { vpsravq zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x46, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpsravq zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x46, 0x72, 0x80                               }, { vpsravq zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x46, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpsravq zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x46, 0x72, 0x7f                               }, { vpsravq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x46, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpsravq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x46, 0x72, 0x80                               }, { vpsravq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x46, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpsravq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x01, 0x15, 0x47, 0xd2, 0xf4                                     }, { vpsrld zmm30{k7},zmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x15, 0xc7, 0xd2, 0xf4                                     }, { vpsrld zmm30{k7}{z},zmm29,xmm28                              }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xd2, 0x31                                     }, { vpsrld zmm30{k7},zmm29,OWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x15, 0x47, 0xd2, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpsrld zmm30{k7},zmm29,OWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xd2, 0x72, 0x7f                               }, { vpsrld zmm30{k7},zmm29,OWORD [rdx+0x7f0]                     }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xd2, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpsrld zmm30{k7},zmm29,OWORD [rdx+0x800]                     }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xd2, 0x72, 0x80                               }, { vpsrld zmm30{k7},zmm29,OWORD [rdx-0x800]                     }
-testcase	{ 0x62, 0x61, 0x15, 0x47, 0xd2, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpsrld zmm30{k7},zmm29,OWORD [rdx-0x810]                     }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0xd3, 0xf4                                     }, { vpsrlq zmm30{k7},zmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0xd3, 0xf4                                     }, { vpsrlq zmm30{k7}{z},zmm29,xmm28                              }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xd3, 0x31                                     }, { vpsrlq zmm30{k7},zmm29,OWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x95, 0x47, 0xd3, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpsrlq zmm30{k7},zmm29,OWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xd3, 0x72, 0x7f                               }, { vpsrlq zmm30{k7},zmm29,OWORD [rdx+0x7f0]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xd3, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpsrlq zmm30{k7},zmm29,OWORD [rdx+0x800]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xd3, 0x72, 0x80                               }, { vpsrlq zmm30{k7},zmm29,OWORD [rdx-0x800]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x47, 0xd3, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpsrlq zmm30{k7},zmm29,OWORD [rdx-0x810]                     }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x45, 0xf4                                     }, { vpsrlvd zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x45, 0xf4                                     }, { vpsrlvd zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x45, 0xf4                                     }, { vpsrlvd zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x45, 0x31                                     }, { vpsrlvd zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x45, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpsrlvd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x45, 0x31                                     }, { vpsrlvd zmm30,zmm29,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x45, 0x72, 0x7f                               }, { vpsrlvd zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x45, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpsrlvd zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x45, 0x72, 0x80                               }, { vpsrlvd zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x45, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpsrlvd zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x45, 0x72, 0x7f                               }, { vpsrlvd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x45, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpsrlvd zmm30,zmm29,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x45, 0x72, 0x80                               }, { vpsrlvd zmm30,zmm29,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x45, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpsrlvd zmm30,zmm29,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x45, 0xf4                                     }, { vpsrlvq zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x45, 0xf4                                     }, { vpsrlvq zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x45, 0xf4                                     }, { vpsrlvq zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x45, 0x31                                     }, { vpsrlvq zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x45, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpsrlvq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x45, 0x31                                     }, { vpsrlvq zmm30,zmm29,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x45, 0x72, 0x7f                               }, { vpsrlvq zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x45, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpsrlvq zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x45, 0x72, 0x80                               }, { vpsrlvq zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x45, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpsrlvq zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x45, 0x72, 0x7f                               }, { vpsrlvq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x45, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpsrlvq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x45, 0x72, 0x80                               }, { vpsrlvq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x45, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpsrlvq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x91, 0x0d, 0x40, 0x72, 0xd5, 0xab                               }, { vpsrld zmm30,zmm29,0xab                                      }
-testcase	{ 0x62, 0x91, 0x0d, 0x47, 0x72, 0xd5, 0xab                               }, { vpsrld zmm30{k7},zmm29,0xab                                  }
-testcase	{ 0x62, 0x91, 0x0d, 0xc7, 0x72, 0xd5, 0xab                               }, { vpsrld zmm30{k7}{z},zmm29,0xab                               }
-testcase	{ 0x62, 0x91, 0x0d, 0x40, 0x72, 0xd5, 0x7b                               }, { vpsrld zmm30,zmm29,0x7b                                      }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x11, 0x7b                               }, { vpsrld zmm30,ZWORD [rcx],0x7b                                }
-testcase	{ 0x62, 0xb1, 0x0d, 0x40, 0x72, 0x94, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpsrld zmm30,ZWORD [rax+r14*8+0x123],0x7b                    }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x11, 0x7b                               }, { vpsrld zmm30,DWORD [rcx]{1to16},0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x52, 0x7f, 0x7b                         }, { vpsrld zmm30,ZWORD [rdx+0x1fc0],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x92, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpsrld zmm30,ZWORD [rdx+0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x52, 0x80, 0x7b                         }, { vpsrld zmm30,ZWORD [rdx-0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x92, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpsrld zmm30,ZWORD [rdx-0x2040],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x52, 0x7f, 0x7b                         }, { vpsrld zmm30,DWORD [rdx+0x1fc]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x92, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vpsrld zmm30,DWORD [rdx+0x200]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x52, 0x80, 0x7b                         }, { vpsrld zmm30,DWORD [rdx-0x200]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x92, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vpsrld zmm30,DWORD [rdx-0x204]{1to16},0x7b                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0x73, 0xd5, 0xab                               }, { vpsrlq zmm30,zmm29,0xab                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0x73, 0xd5, 0xab                               }, { vpsrlq zmm30{k7},zmm29,0xab                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0xc7, 0x73, 0xd5, 0xab                               }, { vpsrlq zmm30{k7}{z},zmm29,0xab                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0x73, 0xd5, 0x7b                               }, { vpsrlq zmm30,zmm29,0x7b                                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x73, 0x11, 0x7b                               }, { vpsrlq zmm30,ZWORD [rcx],0x7b                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0x73, 0x94, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpsrlq zmm30,ZWORD [rax+r14*8+0x123],0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x73, 0x11, 0x7b                               }, { vpsrlq zmm30,QWORD [rcx]{1to8},0x7b                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x73, 0x52, 0x7f, 0x7b                         }, { vpsrlq zmm30,ZWORD [rdx+0x1fc0],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x73, 0x92, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpsrlq zmm30,ZWORD [rdx+0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x73, 0x52, 0x80, 0x7b                         }, { vpsrlq zmm30,ZWORD [rdx-0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x73, 0x92, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpsrlq zmm30,ZWORD [rdx-0x2040],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x73, 0x52, 0x7f, 0x7b                         }, { vpsrlq zmm30,QWORD [rdx+0x3f8]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x73, 0x92, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vpsrlq zmm30,QWORD [rdx+0x400]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x73, 0x52, 0x80, 0x7b                         }, { vpsrlq zmm30,QWORD [rdx-0x400]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x73, 0x92, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vpsrlq zmm30,QWORD [rdx-0x408]{1to8},0x7b                    }
-testcase	{ 0x62, 0x01, 0x15, 0x40, 0xfa, 0xf4                                     }, { vpsubd zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x15, 0x47, 0xfa, 0xf4                                     }, { vpsubd zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x15, 0xc7, 0xfa, 0xf4                                     }, { vpsubd zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xfa, 0x31                                     }, { vpsubd zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x15, 0x40, 0xfa, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpsubd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xfa, 0x31                                     }, { vpsubd zmm30,zmm29,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xfa, 0x72, 0x7f                               }, { vpsubd zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xfa, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpsubd zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xfa, 0x72, 0x80                               }, { vpsubd zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xfa, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpsubd zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xfa, 0x72, 0x7f                               }, { vpsubd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xfa, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpsubd zmm30,zmm29,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xfa, 0x72, 0x80                               }, { vpsubd zmm30,zmm29,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xfa, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpsubd zmm30,zmm29,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0xfb, 0xf4                                     }, { vpsubq zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0xfb, 0xf4                                     }, { vpsubq zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0xfb, 0xf4                                     }, { vpsubq zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xfb, 0x31                                     }, { vpsubq zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0xfb, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpsubq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xfb, 0x31                                     }, { vpsubq zmm30,zmm29,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xfb, 0x72, 0x7f                               }, { vpsubq zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xfb, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpsubq zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xfb, 0x72, 0x80                               }, { vpsubq zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xfb, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpsubq zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xfb, 0x72, 0x7f                               }, { vpsubq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xfb, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpsubq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xfb, 0x72, 0x80                               }, { vpsubq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xfb, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpsubq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x92, 0x0d, 0x40, 0x27, 0xed                                     }, { vptestmd k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x92, 0x0d, 0x47, 0x27, 0xed                                     }, { vptestmd k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0xf2, 0x0d, 0x40, 0x27, 0x29                                     }, { vptestmd k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb2, 0x0d, 0x40, 0x27, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vptestmd k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf2, 0x0d, 0x50, 0x27, 0x29                                     }, { vptestmd k5,zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0xf2, 0x0d, 0x40, 0x27, 0x6a, 0x7f                               }, { vptestmd k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf2, 0x0d, 0x40, 0x27, 0xaa, 0x00, 0x20, 0x00, 0x00             }, { vptestmd k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf2, 0x0d, 0x40, 0x27, 0x6a, 0x80                               }, { vptestmd k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf2, 0x0d, 0x40, 0x27, 0xaa, 0xc0, 0xdf, 0xff, 0xff             }, { vptestmd k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf2, 0x0d, 0x50, 0x27, 0x6a, 0x7f                               }, { vptestmd k5,zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0xf2, 0x0d, 0x50, 0x27, 0xaa, 0x00, 0x02, 0x00, 0x00             }, { vptestmd k5,zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0xf2, 0x0d, 0x50, 0x27, 0x6a, 0x80                               }, { vptestmd k5,zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0xf2, 0x0d, 0x50, 0x27, 0xaa, 0xfc, 0xfd, 0xff, 0xff             }, { vptestmd k5,zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x92, 0x8d, 0x40, 0x27, 0xed                                     }, { vptestmq k5,zmm30,zmm29                                      }
-testcase	{ 0x62, 0x92, 0x8d, 0x47, 0x27, 0xed                                     }, { vptestmq k5{k7},zmm30,zmm29                                  }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x27, 0x29                                     }, { vptestmq k5,zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0xb2, 0x8d, 0x40, 0x27, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vptestmq k5,zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x27, 0x29                                     }, { vptestmq k5,zmm30,QWORD [rcx]{1to8}                          }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x27, 0x6a, 0x7f                               }, { vptestmq k5,zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x27, 0xaa, 0x00, 0x20, 0x00, 0x00             }, { vptestmq k5,zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x27, 0x6a, 0x80                               }, { vptestmq k5,zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0xf2, 0x8d, 0x40, 0x27, 0xaa, 0xc0, 0xdf, 0xff, 0xff             }, { vptestmq k5,zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x27, 0x6a, 0x7f                               }, { vptestmq k5,zmm30,QWORD [rdx+0x3f8]{1to8}                    }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x27, 0xaa, 0x00, 0x04, 0x00, 0x00             }, { vptestmq k5,zmm30,QWORD [rdx+0x400]{1to8}                    }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x27, 0x6a, 0x80                               }, { vptestmq k5,zmm30,QWORD [rdx-0x400]{1to8}                    }
-testcase	{ 0x62, 0xf2, 0x8d, 0x50, 0x27, 0xaa, 0xf8, 0xfb, 0xff, 0xff             }, { vptestmq k5,zmm30,QWORD [rdx-0x408]{1to8}                    }
-testcase	{ 0x62, 0x01, 0x15, 0x40, 0x6a, 0xf4                                     }, { vpunpckhdq zmm30,zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x15, 0x47, 0x6a, 0xf4                                     }, { vpunpckhdq zmm30{k7},zmm29,zmm28                             }
-testcase	{ 0x62, 0x01, 0x15, 0xc7, 0x6a, 0xf4                                     }, { vpunpckhdq zmm30{k7}{z},zmm29,zmm28                          }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0x6a, 0x31                                     }, { vpunpckhdq zmm30,zmm29,ZWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x15, 0x40, 0x6a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpunpckhdq zmm30,zmm29,ZWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0x6a, 0x31                                     }, { vpunpckhdq zmm30,zmm29,DWORD [rcx]{1to16}                    }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0x6a, 0x72, 0x7f                               }, { vpunpckhdq zmm30,zmm29,ZWORD [rdx+0x1fc0]                    }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0x6a, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpunpckhdq zmm30,zmm29,ZWORD [rdx+0x2000]                    }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0x6a, 0x72, 0x80                               }, { vpunpckhdq zmm30,zmm29,ZWORD [rdx-0x2000]                    }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0x6a, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpunpckhdq zmm30,zmm29,ZWORD [rdx-0x2040]                    }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0x6a, 0x72, 0x7f                               }, { vpunpckhdq zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}              }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0x6a, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpunpckhdq zmm30,zmm29,DWORD [rdx+0x200]{1to16}              }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0x6a, 0x72, 0x80                               }, { vpunpckhdq zmm30,zmm29,DWORD [rdx-0x200]{1to16}              }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0x6a, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpunpckhdq zmm30,zmm29,DWORD [rdx-0x204]{1to16}              }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0x6d, 0xf4                                     }, { vpunpckhqdq zmm30,zmm29,zmm28                                }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0x6d, 0xf4                                     }, { vpunpckhqdq zmm30{k7},zmm29,zmm28                            }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0x6d, 0xf4                                     }, { vpunpckhqdq zmm30{k7}{z},zmm29,zmm28                         }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x6d, 0x31                                     }, { vpunpckhqdq zmm30,zmm29,ZWORD [rcx]                          }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0x6d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpunpckhqdq zmm30,zmm29,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x6d, 0x31                                     }, { vpunpckhqdq zmm30,zmm29,QWORD [rcx]{1to8}                    }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x6d, 0x72, 0x7f                               }, { vpunpckhqdq zmm30,zmm29,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x6d, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpunpckhqdq zmm30,zmm29,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x6d, 0x72, 0x80                               }, { vpunpckhqdq zmm30,zmm29,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x6d, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpunpckhqdq zmm30,zmm29,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x6d, 0x72, 0x7f                               }, { vpunpckhqdq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}              }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x6d, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpunpckhqdq zmm30,zmm29,QWORD [rdx+0x400]{1to8}              }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x6d, 0x72, 0x80                               }, { vpunpckhqdq zmm30,zmm29,QWORD [rdx-0x400]{1to8}              }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x6d, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpunpckhqdq zmm30,zmm29,QWORD [rdx-0x408]{1to8}              }
-testcase	{ 0x62, 0x01, 0x15, 0x40, 0x62, 0xf4                                     }, { vpunpckldq zmm30,zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x15, 0x47, 0x62, 0xf4                                     }, { vpunpckldq zmm30{k7},zmm29,zmm28                             }
-testcase	{ 0x62, 0x01, 0x15, 0xc7, 0x62, 0xf4                                     }, { vpunpckldq zmm30{k7}{z},zmm29,zmm28                          }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0x62, 0x31                                     }, { vpunpckldq zmm30,zmm29,ZWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x15, 0x40, 0x62, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpunpckldq zmm30,zmm29,ZWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0x62, 0x31                                     }, { vpunpckldq zmm30,zmm29,DWORD [rcx]{1to16}                    }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0x62, 0x72, 0x7f                               }, { vpunpckldq zmm30,zmm29,ZWORD [rdx+0x1fc0]                    }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0x62, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpunpckldq zmm30,zmm29,ZWORD [rdx+0x2000]                    }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0x62, 0x72, 0x80                               }, { vpunpckldq zmm30,zmm29,ZWORD [rdx-0x2000]                    }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0x62, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpunpckldq zmm30,zmm29,ZWORD [rdx-0x2040]                    }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0x62, 0x72, 0x7f                               }, { vpunpckldq zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}              }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0x62, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpunpckldq zmm30,zmm29,DWORD [rdx+0x200]{1to16}              }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0x62, 0x72, 0x80                               }, { vpunpckldq zmm30,zmm29,DWORD [rdx-0x200]{1to16}              }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0x62, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpunpckldq zmm30,zmm29,DWORD [rdx-0x204]{1to16}              }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0x6c, 0xf4                                     }, { vpunpcklqdq zmm30,zmm29,zmm28                                }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0x6c, 0xf4                                     }, { vpunpcklqdq zmm30{k7},zmm29,zmm28                            }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0x6c, 0xf4                                     }, { vpunpcklqdq zmm30{k7}{z},zmm29,zmm28                         }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x6c, 0x31                                     }, { vpunpcklqdq zmm30,zmm29,ZWORD [rcx]                          }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0x6c, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpunpcklqdq zmm30,zmm29,ZWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x6c, 0x31                                     }, { vpunpcklqdq zmm30,zmm29,QWORD [rcx]{1to8}                    }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x6c, 0x72, 0x7f                               }, { vpunpcklqdq zmm30,zmm29,ZWORD [rdx+0x1fc0]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x6c, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpunpcklqdq zmm30,zmm29,ZWORD [rdx+0x2000]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x6c, 0x72, 0x80                               }, { vpunpcklqdq zmm30,zmm29,ZWORD [rdx-0x2000]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x6c, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpunpcklqdq zmm30,zmm29,ZWORD [rdx-0x2040]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x6c, 0x72, 0x7f                               }, { vpunpcklqdq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}              }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x6c, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpunpcklqdq zmm30,zmm29,QWORD [rdx+0x400]{1to8}              }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x6c, 0x72, 0x80                               }, { vpunpcklqdq zmm30,zmm29,QWORD [rdx-0x400]{1to8}              }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x6c, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpunpcklqdq zmm30,zmm29,QWORD [rdx-0x408]{1to8}              }
-testcase	{ 0x62, 0x01, 0x15, 0x40, 0xef, 0xf4                                     }, { vpxord zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x15, 0x47, 0xef, 0xf4                                     }, { vpxord zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x15, 0xc7, 0xef, 0xf4                                     }, { vpxord zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xef, 0x31                                     }, { vpxord zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x15, 0x40, 0xef, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpxord zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xef, 0x31                                     }, { vpxord zmm30,zmm29,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xef, 0x72, 0x7f                               }, { vpxord zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xef, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpxord zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xef, 0x72, 0x80                               }, { vpxord zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x40, 0xef, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpxord zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xef, 0x72, 0x7f                               }, { vpxord zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xef, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpxord zmm30,zmm29,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xef, 0x72, 0x80                               }, { vpxord zmm30,zmm29,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x15, 0x50, 0xef, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpxord zmm30,zmm29,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0xef, 0xf4                                     }, { vpxorq zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0xef, 0xf4                                     }, { vpxorq zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0xef, 0xf4                                     }, { vpxorq zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xef, 0x31                                     }, { vpxorq zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0xef, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpxorq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xef, 0x31                                     }, { vpxorq zmm30,zmm29,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xef, 0x72, 0x7f                               }, { vpxorq zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xef, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpxorq zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xef, 0x72, 0x80                               }, { vpxorq zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xef, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpxorq zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xef, 0x72, 0x7f                               }, { vpxorq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xef, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpxorq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xef, 0x72, 0x80                               }, { vpxorq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xef, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpxorq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x02, 0xfd, 0x48, 0x4c, 0xf5                                     }, { vrcp14pd zmm30,zmm29                                         }
-testcase	{ 0x62, 0x02, 0xfd, 0x4f, 0x4c, 0xf5                                     }, { vrcp14pd zmm30{k7},zmm29                                     }
-testcase	{ 0x62, 0x02, 0xfd, 0xcf, 0x4c, 0xf5                                     }, { vrcp14pd zmm30{k7}{z},zmm29                                  }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x4c, 0x31                                     }, { vrcp14pd zmm30,ZWORD [rcx]                                   }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0x4c, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrcp14pd zmm30,ZWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x4c, 0x31                                     }, { vrcp14pd zmm30,QWORD [rcx]{1to8}                             }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x4c, 0x72, 0x7f                               }, { vrcp14pd zmm30,ZWORD [rdx+0x1fc0]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x4c, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vrcp14pd zmm30,ZWORD [rdx+0x2000]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x4c, 0x72, 0x80                               }, { vrcp14pd zmm30,ZWORD [rdx-0x2000]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x4c, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vrcp14pd zmm30,ZWORD [rdx-0x2040]                            }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x4c, 0x72, 0x7f                               }, { vrcp14pd zmm30,QWORD [rdx+0x3f8]{1to8}                       }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x4c, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vrcp14pd zmm30,QWORD [rdx+0x400]{1to8}                       }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x4c, 0x72, 0x80                               }, { vrcp14pd zmm30,QWORD [rdx-0x400]{1to8}                       }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x4c, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vrcp14pd zmm30,QWORD [rdx-0x408]{1to8}                       }
-testcase	{ 0x62, 0x02, 0x7d, 0x48, 0x4c, 0xf5                                     }, { vrcp14ps zmm30,zmm29                                         }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x4c, 0xf5                                     }, { vrcp14ps zmm30{k7},zmm29                                     }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x4c, 0xf5                                     }, { vrcp14ps zmm30{k7}{z},zmm29                                  }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x4c, 0x31                                     }, { vrcp14ps zmm30,ZWORD [rcx]                                   }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0x4c, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrcp14ps zmm30,ZWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x4c, 0x31                                     }, { vrcp14ps zmm30,DWORD [rcx]{1to16}                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x4c, 0x72, 0x7f                               }, { vrcp14ps zmm30,ZWORD [rdx+0x1fc0]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x4c, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vrcp14ps zmm30,ZWORD [rdx+0x2000]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x4c, 0x72, 0x80                               }, { vrcp14ps zmm30,ZWORD [rdx-0x2000]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x4c, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vrcp14ps zmm30,ZWORD [rdx-0x2040]                            }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x4c, 0x72, 0x7f                               }, { vrcp14ps zmm30,DWORD [rdx+0x1fc]{1to16}                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x4c, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vrcp14ps zmm30,DWORD [rdx+0x200]{1to16}                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x4c, 0x72, 0x80                               }, { vrcp14ps zmm30,DWORD [rdx-0x200]{1to16}                      }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x4c, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vrcp14ps zmm30,DWORD [rdx-0x204]{1to16}                      }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0x4d, 0xf4                                     }, { vrcp14sd xmm30{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0x4d, 0xf4                                     }, { vrcp14sd xmm30{k7}{z},xmm29,xmm28                            }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x4d, 0x31                                     }, { vrcp14sd xmm30{k7},xmm29,QWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0x4d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrcp14sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x4d, 0x72, 0x7f                               }, { vrcp14sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x4d, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vrcp14sd xmm30{k7},xmm29,QWORD [rdx+0x400]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x4d, 0x72, 0x80                               }, { vrcp14sd xmm30{k7},xmm29,QWORD [rdx-0x400]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x4d, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vrcp14sd xmm30{k7},xmm29,QWORD [rdx-0x408]                   }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0x4d, 0xf4                                     }, { vrcp14ss xmm30{k7},xmm29,xmm28                               }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0x4d, 0xf4                                     }, { vrcp14ss xmm30{k7}{z},xmm29,xmm28                            }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x4d, 0x31                                     }, { vrcp14ss xmm30{k7},xmm29,DWORD [rcx]                         }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0x4d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrcp14ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]             }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x4d, 0x72, 0x7f                               }, { vrcp14ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x4d, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vrcp14ss xmm30{k7},xmm29,DWORD [rdx+0x200]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x4d, 0x72, 0x80                               }, { vrcp14ss xmm30{k7},xmm29,DWORD [rdx-0x200]                   }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x4d, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vrcp14ss xmm30{k7},xmm29,DWORD [rdx-0x204]                   }
-testcase	{ 0x62, 0x02, 0xfd, 0x48, 0x4e, 0xf5                                     }, { vrsqrt14pd zmm30,zmm29                                       }
-testcase	{ 0x62, 0x02, 0xfd, 0x4f, 0x4e, 0xf5                                     }, { vrsqrt14pd zmm30{k7},zmm29                                   }
-testcase	{ 0x62, 0x02, 0xfd, 0xcf, 0x4e, 0xf5                                     }, { vrsqrt14pd zmm30{k7}{z},zmm29                                }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x4e, 0x31                                     }, { vrsqrt14pd zmm30,ZWORD [rcx]                                 }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0x4e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrsqrt14pd zmm30,ZWORD [rax+r14*8+0x123]                     }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x4e, 0x31                                     }, { vrsqrt14pd zmm30,QWORD [rcx]{1to8}                           }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x4e, 0x72, 0x7f                               }, { vrsqrt14pd zmm30,ZWORD [rdx+0x1fc0]                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x4e, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vrsqrt14pd zmm30,ZWORD [rdx+0x2000]                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x4e, 0x72, 0x80                               }, { vrsqrt14pd zmm30,ZWORD [rdx-0x2000]                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x4e, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vrsqrt14pd zmm30,ZWORD [rdx-0x2040]                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x4e, 0x72, 0x7f                               }, { vrsqrt14pd zmm30,QWORD [rdx+0x3f8]{1to8}                     }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x4e, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vrsqrt14pd zmm30,QWORD [rdx+0x400]{1to8}                     }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x4e, 0x72, 0x80                               }, { vrsqrt14pd zmm30,QWORD [rdx-0x400]{1to8}                     }
-testcase	{ 0x62, 0x62, 0xfd, 0x58, 0x4e, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vrsqrt14pd zmm30,QWORD [rdx-0x408]{1to8}                     }
-testcase	{ 0x62, 0x02, 0x7d, 0x48, 0x4e, 0xf5                                     }, { vrsqrt14ps zmm30,zmm29                                       }
-testcase	{ 0x62, 0x02, 0x7d, 0x4f, 0x4e, 0xf5                                     }, { vrsqrt14ps zmm30{k7},zmm29                                   }
-testcase	{ 0x62, 0x02, 0x7d, 0xcf, 0x4e, 0xf5                                     }, { vrsqrt14ps zmm30{k7}{z},zmm29                                }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x4e, 0x31                                     }, { vrsqrt14ps zmm30,ZWORD [rcx]                                 }
-testcase	{ 0x62, 0x22, 0x7d, 0x48, 0x4e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrsqrt14ps zmm30,ZWORD [rax+r14*8+0x123]                     }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x4e, 0x31                                     }, { vrsqrt14ps zmm30,DWORD [rcx]{1to16}                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x4e, 0x72, 0x7f                               }, { vrsqrt14ps zmm30,ZWORD [rdx+0x1fc0]                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x4e, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vrsqrt14ps zmm30,ZWORD [rdx+0x2000]                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x4e, 0x72, 0x80                               }, { vrsqrt14ps zmm30,ZWORD [rdx-0x2000]                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x48, 0x4e, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vrsqrt14ps zmm30,ZWORD [rdx-0x2040]                          }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x4e, 0x72, 0x7f                               }, { vrsqrt14ps zmm30,DWORD [rdx+0x1fc]{1to16}                    }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x4e, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vrsqrt14ps zmm30,DWORD [rdx+0x200]{1to16}                    }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x4e, 0x72, 0x80                               }, { vrsqrt14ps zmm30,DWORD [rdx-0x200]{1to16}                    }
-testcase	{ 0x62, 0x62, 0x7d, 0x58, 0x4e, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vrsqrt14ps zmm30,DWORD [rdx-0x204]{1to16}                    }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0x4f, 0xf4                                     }, { vrsqrt14sd xmm30{k7},xmm29,xmm28                             }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0x4f, 0xf4                                     }, { vrsqrt14sd xmm30{k7}{z},xmm29,xmm28                          }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x4f, 0x31                                     }, { vrsqrt14sd xmm30{k7},xmm29,QWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0x4f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrsqrt14sd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x4f, 0x72, 0x7f                               }, { vrsqrt14sd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                 }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x4f, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vrsqrt14sd xmm30{k7},xmm29,QWORD [rdx+0x400]                 }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x4f, 0x72, 0x80                               }, { vrsqrt14sd xmm30{k7},xmm29,QWORD [rdx-0x400]                 }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x4f, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vrsqrt14sd xmm30{k7},xmm29,QWORD [rdx-0x408]                 }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0x4f, 0xf4                                     }, { vrsqrt14ss xmm30{k7},xmm29,xmm28                             }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0x4f, 0xf4                                     }, { vrsqrt14ss xmm30{k7}{z},xmm29,xmm28                          }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x4f, 0x31                                     }, { vrsqrt14ss xmm30{k7},xmm29,DWORD [rcx]                       }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0x4f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vrsqrt14ss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]           }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x4f, 0x72, 0x7f                               }, { vrsqrt14ss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                 }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x4f, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vrsqrt14ss xmm30{k7},xmm29,DWORD [rdx+0x200]                 }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x4f, 0x72, 0x80                               }, { vrsqrt14ss xmm30{k7},xmm29,DWORD [rdx-0x200]                 }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x4f, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vrsqrt14ss xmm30{k7},xmm29,DWORD [rdx-0x204]                 }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0xa2, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterdpd  [r14+ymm31*8+0x7b]{k1},zmm30                    }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0xa2, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterdpd  [r14+ymm31*8+0x7b]{k1},zmm30                    }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0xa2, 0x74, 0x39, 0x20                         }, { vscatterdpd  [r9+ymm31*1+0x100]{k1},zmm30                    }
-testcase	{ 0x62, 0x22, 0xfd, 0x41, 0xa2, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vscatterdpd  [rcx+ymm31*4+0x400]{k1},zmm30                   }
-testcase	{ 0x62, 0x02, 0x7d, 0x41, 0xa2, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterdps  [r14+zmm31*8+0x7b]{k1},zmm30                    }
-testcase	{ 0x62, 0x02, 0x7d, 0x41, 0xa2, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterdps  [r14+zmm31*8+0x7b]{k1},zmm30                    }
-testcase	{ 0x62, 0x02, 0x7d, 0x41, 0xa2, 0x74, 0x39, 0x40                         }, { vscatterdps  [r9+zmm31*1+0x100]{k1},zmm30                    }
-testcase	{ 0x62, 0x22, 0x7d, 0x41, 0xa2, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vscatterdps  [rcx+zmm31*4+0x400]{k1},zmm30                   }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0xa3, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterqpd  [r14+zmm31*8+0x7b]{k1},zmm30                    }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0xa3, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterqpd  [r14+zmm31*8+0x7b]{k1},zmm30                    }
-testcase	{ 0x62, 0x02, 0xfd, 0x41, 0xa3, 0x74, 0x39, 0x20                         }, { vscatterqpd  [r9+zmm31*1+0x100]{k1},zmm30                    }
-testcase	{ 0x62, 0x22, 0xfd, 0x41, 0xa3, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vscatterqpd  [rcx+zmm31*4+0x400]{k1},zmm30                   }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0xc6, 0xf4, 0xab                               }, { vshufpd zmm30,zmm29,zmm28,0xab                               }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0xc6, 0xf4, 0xab                               }, { vshufpd zmm30{k7},zmm29,zmm28,0xab                           }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0xc6, 0xf4, 0xab                               }, { vshufpd zmm30{k7}{z},zmm29,zmm28,0xab                        }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0xc6, 0xf4, 0x7b                               }, { vshufpd zmm30,zmm29,zmm28,0x7b                               }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xc6, 0x31, 0x7b                               }, { vshufpd zmm30,zmm29,ZWORD [rcx],0x7b                         }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0xc6, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vshufpd zmm30,zmm29,ZWORD [rax+r14*8+0x123],0x7b             }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xc6, 0x31, 0x7b                               }, { vshufpd zmm30,zmm29,QWORD [rcx]{1to8},0x7b                   }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xc6, 0x72, 0x7f, 0x7b                         }, { vshufpd zmm30,zmm29,ZWORD [rdx+0x1fc0],0x7b                  }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xc6, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vshufpd zmm30,zmm29,ZWORD [rdx+0x2000],0x7b                  }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xc6, 0x72, 0x80, 0x7b                         }, { vshufpd zmm30,zmm29,ZWORD [rdx-0x2000],0x7b                  }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0xc6, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vshufpd zmm30,zmm29,ZWORD [rdx-0x2040],0x7b                  }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xc6, 0x72, 0x7f, 0x7b                         }, { vshufpd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8},0x7b             }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xc6, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vshufpd zmm30,zmm29,QWORD [rdx+0x400]{1to8},0x7b             }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xc6, 0x72, 0x80, 0x7b                         }, { vshufpd zmm30,zmm29,QWORD [rdx-0x400]{1to8},0x7b             }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0xc6, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vshufpd zmm30,zmm29,QWORD [rdx-0x408]{1to8},0x7b             }
-testcase	{ 0x62, 0x01, 0x14, 0x40, 0xc6, 0xf4, 0xab                               }, { vshufps zmm30,zmm29,zmm28,0xab                               }
-testcase	{ 0x62, 0x01, 0x14, 0x47, 0xc6, 0xf4, 0xab                               }, { vshufps zmm30{k7},zmm29,zmm28,0xab                           }
-testcase	{ 0x62, 0x01, 0x14, 0xc7, 0xc6, 0xf4, 0xab                               }, { vshufps zmm30{k7}{z},zmm29,zmm28,0xab                        }
-testcase	{ 0x62, 0x01, 0x14, 0x40, 0xc6, 0xf4, 0x7b                               }, { vshufps zmm30,zmm29,zmm28,0x7b                               }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0xc6, 0x31, 0x7b                               }, { vshufps zmm30,zmm29,ZWORD [rcx],0x7b                         }
-testcase	{ 0x62, 0x21, 0x14, 0x40, 0xc6, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vshufps zmm30,zmm29,ZWORD [rax+r14*8+0x123],0x7b             }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0xc6, 0x31, 0x7b                               }, { vshufps zmm30,zmm29,DWORD [rcx]{1to16},0x7b                  }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0xc6, 0x72, 0x7f, 0x7b                         }, { vshufps zmm30,zmm29,ZWORD [rdx+0x1fc0],0x7b                  }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0xc6, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vshufps zmm30,zmm29,ZWORD [rdx+0x2000],0x7b                  }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0xc6, 0x72, 0x80, 0x7b                         }, { vshufps zmm30,zmm29,ZWORD [rdx-0x2000],0x7b                  }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0xc6, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vshufps zmm30,zmm29,ZWORD [rdx-0x2040],0x7b                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0xc6, 0x72, 0x7f, 0x7b                         }, { vshufps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16},0x7b            }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0xc6, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vshufps zmm30,zmm29,DWORD [rdx+0x200]{1to16},0x7b            }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0xc6, 0x72, 0x80, 0x7b                         }, { vshufps zmm30,zmm29,DWORD [rdx-0x200]{1to16},0x7b            }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0xc6, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vshufps zmm30,zmm29,DWORD [rdx-0x204]{1to16},0x7b            }
-testcase	{ 0x62, 0x01, 0xfd, 0x48, 0x51, 0xf5                                     }, { vsqrtpd zmm30,zmm29                                          }
-testcase	{ 0x62, 0x01, 0xfd, 0x4f, 0x51, 0xf5                                     }, { vsqrtpd zmm30{k7},zmm29                                      }
-testcase	{ 0x62, 0x01, 0xfd, 0xcf, 0x51, 0xf5                                     }, { vsqrtpd zmm30{k7}{z},zmm29                                   }
-testcase	{ 0x62, 0x01, 0xfd, 0x18, 0x51, 0xf5                                     }, { vsqrtpd zmm30,zmm29,{rn-sae}                                 }
-testcase	{ 0x62, 0x01, 0xfd, 0x58, 0x51, 0xf5                                     }, { vsqrtpd zmm30,zmm29,{ru-sae}                                 }
-testcase	{ 0x62, 0x01, 0xfd, 0x38, 0x51, 0xf5                                     }, { vsqrtpd zmm30,zmm29,{rd-sae}                                 }
-testcase	{ 0x62, 0x01, 0xfd, 0x78, 0x51, 0xf5                                     }, { vsqrtpd zmm30,zmm29,{rz-sae}                                 }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x51, 0x31                                     }, { vsqrtpd zmm30,ZWORD [rcx]                                    }
-testcase	{ 0x62, 0x21, 0xfd, 0x48, 0x51, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vsqrtpd zmm30,ZWORD [rax+r14*8+0x123]                        }
-testcase	{ 0x62, 0x61, 0xfd, 0x58, 0x51, 0x31                                     }, { vsqrtpd zmm30,QWORD [rcx]{1to8}                              }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x51, 0x72, 0x7f                               }, { vsqrtpd zmm30,ZWORD [rdx+0x1fc0]                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x51, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vsqrtpd zmm30,ZWORD [rdx+0x2000]                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x51, 0x72, 0x80                               }, { vsqrtpd zmm30,ZWORD [rdx-0x2000]                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x51, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vsqrtpd zmm30,ZWORD [rdx-0x2040]                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x58, 0x51, 0x72, 0x7f                               }, { vsqrtpd zmm30,QWORD [rdx+0x3f8]{1to8}                        }
-testcase	{ 0x62, 0x61, 0xfd, 0x58, 0x51, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vsqrtpd zmm30,QWORD [rdx+0x400]{1to8}                        }
-testcase	{ 0x62, 0x61, 0xfd, 0x58, 0x51, 0x72, 0x80                               }, { vsqrtpd zmm30,QWORD [rdx-0x400]{1to8}                        }
-testcase	{ 0x62, 0x61, 0xfd, 0x58, 0x51, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vsqrtpd zmm30,QWORD [rdx-0x408]{1to8}                        }
-testcase	{ 0x62, 0x01, 0x7c, 0x48, 0x51, 0xf5                                     }, { vsqrtps zmm30,zmm29                                          }
-testcase	{ 0x62, 0x01, 0x7c, 0x4f, 0x51, 0xf5                                     }, { vsqrtps zmm30{k7},zmm29                                      }
-testcase	{ 0x62, 0x01, 0x7c, 0xcf, 0x51, 0xf5                                     }, { vsqrtps zmm30{k7}{z},zmm29                                   }
-testcase	{ 0x62, 0x01, 0x7c, 0x18, 0x51, 0xf5                                     }, { vsqrtps zmm30,zmm29,{rn-sae}                                 }
-testcase	{ 0x62, 0x01, 0x7c, 0x58, 0x51, 0xf5                                     }, { vsqrtps zmm30,zmm29,{ru-sae}                                 }
-testcase	{ 0x62, 0x01, 0x7c, 0x38, 0x51, 0xf5                                     }, { vsqrtps zmm30,zmm29,{rd-sae}                                 }
-testcase	{ 0x62, 0x01, 0x7c, 0x78, 0x51, 0xf5                                     }, { vsqrtps zmm30,zmm29,{rz-sae}                                 }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x51, 0x31                                     }, { vsqrtps zmm30,ZWORD [rcx]                                    }
-testcase	{ 0x62, 0x21, 0x7c, 0x48, 0x51, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vsqrtps zmm30,ZWORD [rax+r14*8+0x123]                        }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x51, 0x31                                     }, { vsqrtps zmm30,DWORD [rcx]{1to16}                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x51, 0x72, 0x7f                               }, { vsqrtps zmm30,ZWORD [rdx+0x1fc0]                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x51, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vsqrtps zmm30,ZWORD [rdx+0x2000]                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x51, 0x72, 0x80                               }, { vsqrtps zmm30,ZWORD [rdx-0x2000]                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x51, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vsqrtps zmm30,ZWORD [rdx-0x2040]                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x51, 0x72, 0x7f                               }, { vsqrtps zmm30,DWORD [rdx+0x1fc]{1to16}                       }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x51, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vsqrtps zmm30,DWORD [rdx+0x200]{1to16}                       }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x51, 0x72, 0x80                               }, { vsqrtps zmm30,DWORD [rdx-0x200]{1to16}                       }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x51, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vsqrtps zmm30,DWORD [rdx-0x204]{1to16}                       }
-testcase	{ 0x62, 0x01, 0x97, 0x07, 0x51, 0xf4                                     }, { vsqrtsd xmm30{k7},xmm29,xmm28                                }
-testcase	{ 0x62, 0x01, 0x97, 0x87, 0x51, 0xf4                                     }, { vsqrtsd xmm30{k7}{z},xmm29,xmm28                             }
-testcase	{ 0x62, 0x01, 0x97, 0x17, 0x51, 0xf4                                     }, { vsqrtsd xmm30{k7},xmm29,xmm28,{rn-sae}                       }
-testcase	{ 0x62, 0x01, 0x97, 0x57, 0x51, 0xf4                                     }, { vsqrtsd xmm30{k7},xmm29,xmm28,{ru-sae}                       }
-testcase	{ 0x62, 0x01, 0x97, 0x37, 0x51, 0xf4                                     }, { vsqrtsd xmm30{k7},xmm29,xmm28,{rd-sae}                       }
-testcase	{ 0x62, 0x01, 0x97, 0x77, 0x51, 0xf4                                     }, { vsqrtsd xmm30{k7},xmm29,xmm28,{rz-sae}                       }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x51, 0x31                                     }, { vsqrtsd xmm30{k7},xmm29,QWORD [rcx]                          }
-testcase	{ 0x62, 0x21, 0x97, 0x07, 0x51, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vsqrtsd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x51, 0x72, 0x7f                               }, { vsqrtsd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                    }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x51, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vsqrtsd xmm30{k7},xmm29,QWORD [rdx+0x400]                    }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x51, 0x72, 0x80                               }, { vsqrtsd xmm30{k7},xmm29,QWORD [rdx-0x400]                    }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x51, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vsqrtsd xmm30{k7},xmm29,QWORD [rdx-0x408]                    }
-testcase	{ 0x62, 0x01, 0x16, 0x07, 0x51, 0xf4                                     }, { vsqrtss xmm30{k7},xmm29,xmm28                                }
-testcase	{ 0x62, 0x01, 0x16, 0x87, 0x51, 0xf4                                     }, { vsqrtss xmm30{k7}{z},xmm29,xmm28                             }
-testcase	{ 0x62, 0x01, 0x16, 0x17, 0x51, 0xf4                                     }, { vsqrtss xmm30{k7},xmm29,xmm28,{rn-sae}                       }
-testcase	{ 0x62, 0x01, 0x16, 0x57, 0x51, 0xf4                                     }, { vsqrtss xmm30{k7},xmm29,xmm28,{ru-sae}                       }
-testcase	{ 0x62, 0x01, 0x16, 0x37, 0x51, 0xf4                                     }, { vsqrtss xmm30{k7},xmm29,xmm28,{rd-sae}                       }
-testcase	{ 0x62, 0x01, 0x16, 0x77, 0x51, 0xf4                                     }, { vsqrtss xmm30{k7},xmm29,xmm28,{rz-sae}                       }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x51, 0x31                                     }, { vsqrtss xmm30{k7},xmm29,DWORD [rcx]                          }
-testcase	{ 0x62, 0x21, 0x16, 0x07, 0x51, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vsqrtss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]              }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x51, 0x72, 0x7f                               }, { vsqrtss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                    }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x51, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vsqrtss xmm30{k7},xmm29,DWORD [rdx+0x200]                    }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x51, 0x72, 0x80                               }, { vsqrtss xmm30{k7},xmm29,DWORD [rdx-0x200]                    }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x51, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vsqrtss xmm30{k7},xmm29,DWORD [rdx-0x204]                    }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0x5c, 0xf4                                     }, { vsubpd zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0x5c, 0xf4                                     }, { vsubpd zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0x5c, 0xf4                                     }, { vsubpd zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x95, 0x10, 0x5c, 0xf4                                     }, { vsubpd zmm30,zmm29,zmm28,{rn-sae}                            }
-testcase	{ 0x62, 0x01, 0x95, 0x50, 0x5c, 0xf4                                     }, { vsubpd zmm30,zmm29,zmm28,{ru-sae}                            }
-testcase	{ 0x62, 0x01, 0x95, 0x30, 0x5c, 0xf4                                     }, { vsubpd zmm30,zmm29,zmm28,{rd-sae}                            }
-testcase	{ 0x62, 0x01, 0x95, 0x70, 0x5c, 0xf4                                     }, { vsubpd zmm30,zmm29,zmm28,{rz-sae}                            }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5c, 0x31                                     }, { vsubpd zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0x5c, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vsubpd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5c, 0x31                                     }, { vsubpd zmm30,zmm29,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5c, 0x72, 0x7f                               }, { vsubpd zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5c, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vsubpd zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5c, 0x72, 0x80                               }, { vsubpd zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x5c, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vsubpd zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5c, 0x72, 0x7f                               }, { vsubpd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5c, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vsubpd zmm30,zmm29,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5c, 0x72, 0x80                               }, { vsubpd zmm30,zmm29,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x5c, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vsubpd zmm30,zmm29,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x01, 0x14, 0x40, 0x5c, 0xf4                                     }, { vsubps zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x01, 0x14, 0x47, 0x5c, 0xf4                                     }, { vsubps zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x01, 0x14, 0xc7, 0x5c, 0xf4                                     }, { vsubps zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x14, 0x10, 0x5c, 0xf4                                     }, { vsubps zmm30,zmm29,zmm28,{rn-sae}                            }
-testcase	{ 0x62, 0x01, 0x14, 0x50, 0x5c, 0xf4                                     }, { vsubps zmm30,zmm29,zmm28,{ru-sae}                            }
-testcase	{ 0x62, 0x01, 0x14, 0x30, 0x5c, 0xf4                                     }, { vsubps zmm30,zmm29,zmm28,{rd-sae}                            }
-testcase	{ 0x62, 0x01, 0x14, 0x70, 0x5c, 0xf4                                     }, { vsubps zmm30,zmm29,zmm28,{rz-sae}                            }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5c, 0x31                                     }, { vsubps zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x21, 0x14, 0x40, 0x5c, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vsubps zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5c, 0x31                                     }, { vsubps zmm30,zmm29,DWORD [rcx]{1to16}                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5c, 0x72, 0x7f                               }, { vsubps zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5c, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vsubps zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5c, 0x72, 0x80                               }, { vsubps zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x5c, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vsubps zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5c, 0x72, 0x7f                               }, { vsubps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5c, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vsubps zmm30,zmm29,DWORD [rdx+0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5c, 0x72, 0x80                               }, { vsubps zmm30,zmm29,DWORD [rdx-0x200]{1to16}                  }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x5c, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vsubps zmm30,zmm29,DWORD [rdx-0x204]{1to16}                  }
-testcase	{ 0x62, 0x01, 0x97, 0x07, 0x5c, 0xf4                                     }, { vsubsd xmm30{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x97, 0x87, 0x5c, 0xf4                                     }, { vsubsd xmm30{k7}{z},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x97, 0x17, 0x5c, 0xf4                                     }, { vsubsd xmm30{k7},xmm29,xmm28,{rn-sae}                        }
-testcase	{ 0x62, 0x01, 0x97, 0x57, 0x5c, 0xf4                                     }, { vsubsd xmm30{k7},xmm29,xmm28,{ru-sae}                        }
-testcase	{ 0x62, 0x01, 0x97, 0x37, 0x5c, 0xf4                                     }, { vsubsd xmm30{k7},xmm29,xmm28,{rd-sae}                        }
-testcase	{ 0x62, 0x01, 0x97, 0x77, 0x5c, 0xf4                                     }, { vsubsd xmm30{k7},xmm29,xmm28,{rz-sae}                        }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5c, 0x31                                     }, { vsubsd xmm30{k7},xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x97, 0x07, 0x5c, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vsubsd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5c, 0x72, 0x7f                               }, { vsubsd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5c, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vsubsd xmm30{k7},xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5c, 0x72, 0x80                               }, { vsubsd xmm30{k7},xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x07, 0x5c, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vsubsd xmm30{k7},xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x01, 0x16, 0x07, 0x5c, 0xf4                                     }, { vsubss xmm30{k7},xmm29,xmm28                                 }
-testcase	{ 0x62, 0x01, 0x16, 0x87, 0x5c, 0xf4                                     }, { vsubss xmm30{k7}{z},xmm29,xmm28                              }
-testcase	{ 0x62, 0x01, 0x16, 0x17, 0x5c, 0xf4                                     }, { vsubss xmm30{k7},xmm29,xmm28,{rn-sae}                        }
-testcase	{ 0x62, 0x01, 0x16, 0x57, 0x5c, 0xf4                                     }, { vsubss xmm30{k7},xmm29,xmm28,{ru-sae}                        }
-testcase	{ 0x62, 0x01, 0x16, 0x37, 0x5c, 0xf4                                     }, { vsubss xmm30{k7},xmm29,xmm28,{rd-sae}                        }
-testcase	{ 0x62, 0x01, 0x16, 0x77, 0x5c, 0xf4                                     }, { vsubss xmm30{k7},xmm29,xmm28,{rz-sae}                        }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5c, 0x31                                     }, { vsubss xmm30{k7},xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x16, 0x07, 0x5c, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vsubss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5c, 0x72, 0x7f                               }, { vsubss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5c, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vsubss xmm30{k7},xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5c, 0x72, 0x80                               }, { vsubss xmm30{k7},xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x07, 0x5c, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vsubss xmm30{k7},xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x01, 0xfd, 0x08, 0x2e, 0xf5                                     }, { vucomisd xmm30,xmm29                                         }
-testcase	{ 0x62, 0x01, 0xfd, 0x18, 0x2e, 0xf5                                     }, { vucomisd xmm30,xmm29,{sae}                                   }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x2e, 0x31                                     }, { vucomisd xmm30,QWORD [rcx]                                   }
-testcase	{ 0x62, 0x21, 0xfd, 0x08, 0x2e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vucomisd xmm30,QWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x2e, 0x72, 0x7f                               }, { vucomisd xmm30,QWORD [rdx+0x3f8]                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x2e, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vucomisd xmm30,QWORD [rdx+0x400]                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x2e, 0x72, 0x80                               }, { vucomisd xmm30,QWORD [rdx-0x400]                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x08, 0x2e, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vucomisd xmm30,QWORD [rdx-0x408]                             }
-testcase	{ 0x62, 0x01, 0x7c, 0x08, 0x2e, 0xf5                                     }, { vucomiss xmm30,xmm29                                         }
-testcase	{ 0x62, 0x01, 0x7c, 0x18, 0x2e, 0xf5                                     }, { vucomiss xmm30,xmm29,{sae}                                   }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x2e, 0x31                                     }, { vucomiss xmm30,DWORD [rcx]                                   }
-testcase	{ 0x62, 0x21, 0x7c, 0x08, 0x2e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vucomiss xmm30,DWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x2e, 0x72, 0x7f                               }, { vucomiss xmm30,DWORD [rdx+0x1fc]                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x2e, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vucomiss xmm30,DWORD [rdx+0x200]                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x2e, 0x72, 0x80                               }, { vucomiss xmm30,DWORD [rdx-0x200]                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x08, 0x2e, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vucomiss xmm30,DWORD [rdx-0x204]                             }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0x15, 0xf4                                     }, { vunpckhpd zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0x15, 0xf4                                     }, { vunpckhpd zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0x15, 0xf4                                     }, { vunpckhpd zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x15, 0x31                                     }, { vunpckhpd zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0x15, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vunpckhpd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x15, 0x31                                     }, { vunpckhpd zmm30,zmm29,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x15, 0x72, 0x7f                               }, { vunpckhpd zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x15, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vunpckhpd zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x15, 0x72, 0x80                               }, { vunpckhpd zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x15, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vunpckhpd zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x15, 0x72, 0x7f                               }, { vunpckhpd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x15, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vunpckhpd zmm30,zmm29,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x15, 0x72, 0x80                               }, { vunpckhpd zmm30,zmm29,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x15, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vunpckhpd zmm30,zmm29,QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x01, 0x14, 0x40, 0x15, 0xf4                                     }, { vunpckhps zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x01, 0x14, 0x47, 0x15, 0xf4                                     }, { vunpckhps zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x14, 0xc7, 0x15, 0xf4                                     }, { vunpckhps zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x15, 0x31                                     }, { vunpckhps zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x21, 0x14, 0x40, 0x15, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vunpckhps zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x15, 0x31                                     }, { vunpckhps zmm30,zmm29,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x15, 0x72, 0x7f                               }, { vunpckhps zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x15, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vunpckhps zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x15, 0x72, 0x80                               }, { vunpckhps zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x15, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vunpckhps zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x15, 0x72, 0x7f                               }, { vunpckhps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x15, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vunpckhps zmm30,zmm29,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x15, 0x72, 0x80                               }, { vunpckhps zmm30,zmm29,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x15, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vunpckhps zmm30,zmm29,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x01, 0x95, 0x40, 0x14, 0xf4                                     }, { vunpcklpd zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x01, 0x95, 0x47, 0x14, 0xf4                                     }, { vunpcklpd zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x95, 0xc7, 0x14, 0xf4                                     }, { vunpcklpd zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x14, 0x31                                     }, { vunpcklpd zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x21, 0x95, 0x40, 0x14, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vunpcklpd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x14, 0x31                                     }, { vunpcklpd zmm30,zmm29,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x14, 0x72, 0x7f                               }, { vunpcklpd zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x14, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vunpcklpd zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x14, 0x72, 0x80                               }, { vunpcklpd zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x40, 0x14, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vunpcklpd zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x14, 0x72, 0x7f                               }, { vunpcklpd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x14, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vunpcklpd zmm30,zmm29,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x14, 0x72, 0x80                               }, { vunpcklpd zmm30,zmm29,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0x61, 0x95, 0x50, 0x14, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vunpcklpd zmm30,zmm29,QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x01, 0x14, 0x40, 0x14, 0xf4                                     }, { vunpcklps zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x01, 0x14, 0x47, 0x14, 0xf4                                     }, { vunpcklps zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x01, 0x14, 0xc7, 0x14, 0xf4                                     }, { vunpcklps zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x14, 0x31                                     }, { vunpcklps zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x21, 0x14, 0x40, 0x14, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vunpcklps zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x14, 0x31                                     }, { vunpcklps zmm30,zmm29,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x14, 0x72, 0x7f                               }, { vunpcklps zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x14, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vunpcklps zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x14, 0x72, 0x80                               }, { vunpcklps zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x61, 0x14, 0x40, 0x14, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vunpcklps zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x14, 0x72, 0x7f                               }, { vunpcklps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x14, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vunpcklps zmm30,zmm29,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x14, 0x72, 0x80                               }, { vunpcklps zmm30,zmm29,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0x61, 0x14, 0x50, 0x14, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vunpcklps zmm30,zmm29,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x03, 0x15, 0x40, 0x25, 0xf4, 0xab                               }, { vpternlogd zmm30,zmm29,zmm28,0xab                            }
-testcase	{ 0x62, 0x03, 0x15, 0x47, 0x25, 0xf4, 0xab                               }, { vpternlogd zmm30{k7},zmm29,zmm28,0xab                        }
-testcase	{ 0x62, 0x03, 0x15, 0xc7, 0x25, 0xf4, 0xab                               }, { vpternlogd zmm30{k7}{z},zmm29,zmm28,0xab                     }
-testcase	{ 0x62, 0x03, 0x15, 0x40, 0x25, 0xf4, 0x7b                               }, { vpternlogd zmm30,zmm29,zmm28,0x7b                            }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x25, 0x31, 0x7b                               }, { vpternlogd zmm30,zmm29,ZWORD [rcx],0x7b                      }
-testcase	{ 0x62, 0x23, 0x15, 0x40, 0x25, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpternlogd zmm30,zmm29,ZWORD [rax+r14*8+0x123],0x7b          }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x25, 0x31, 0x7b                               }, { vpternlogd zmm30,zmm29,DWORD [rcx]{1to16},0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x25, 0x72, 0x7f, 0x7b                         }, { vpternlogd zmm30,zmm29,ZWORD [rdx+0x1fc0],0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x25, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpternlogd zmm30,zmm29,ZWORD [rdx+0x2000],0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x25, 0x72, 0x80, 0x7b                         }, { vpternlogd zmm30,zmm29,ZWORD [rdx-0x2000],0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x25, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpternlogd zmm30,zmm29,ZWORD [rdx-0x2040],0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x25, 0x72, 0x7f, 0x7b                         }, { vpternlogd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16},0x7b         }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x25, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vpternlogd zmm30,zmm29,DWORD [rdx+0x200]{1to16},0x7b         }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x25, 0x72, 0x80, 0x7b                         }, { vpternlogd zmm30,zmm29,DWORD [rdx-0x200]{1to16},0x7b         }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x25, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vpternlogd zmm30,zmm29,DWORD [rdx-0x204]{1to16},0x7b         }
-testcase	{ 0x62, 0x03, 0x95, 0x40, 0x25, 0xf4, 0xab                               }, { vpternlogq zmm30,zmm29,zmm28,0xab                            }
-testcase	{ 0x62, 0x03, 0x95, 0x47, 0x25, 0xf4, 0xab                               }, { vpternlogq zmm30{k7},zmm29,zmm28,0xab                        }
-testcase	{ 0x62, 0x03, 0x95, 0xc7, 0x25, 0xf4, 0xab                               }, { vpternlogq zmm30{k7}{z},zmm29,zmm28,0xab                     }
-testcase	{ 0x62, 0x03, 0x95, 0x40, 0x25, 0xf4, 0x7b                               }, { vpternlogq zmm30,zmm29,zmm28,0x7b                            }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x25, 0x31, 0x7b                               }, { vpternlogq zmm30,zmm29,ZWORD [rcx],0x7b                      }
-testcase	{ 0x62, 0x23, 0x95, 0x40, 0x25, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpternlogq zmm30,zmm29,ZWORD [rax+r14*8+0x123],0x7b          }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x25, 0x31, 0x7b                               }, { vpternlogq zmm30,zmm29,QWORD [rcx]{1to8},0x7b                }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x25, 0x72, 0x7f, 0x7b                         }, { vpternlogq zmm30,zmm29,ZWORD [rdx+0x1fc0],0x7b               }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x25, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpternlogq zmm30,zmm29,ZWORD [rdx+0x2000],0x7b               }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x25, 0x72, 0x80, 0x7b                         }, { vpternlogq zmm30,zmm29,ZWORD [rdx-0x2000],0x7b               }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x25, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpternlogq zmm30,zmm29,ZWORD [rdx-0x2040],0x7b               }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x25, 0x72, 0x7f, 0x7b                         }, { vpternlogq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8},0x7b          }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x25, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vpternlogq zmm30,zmm29,QWORD [rdx+0x400]{1to8},0x7b          }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x25, 0x72, 0x80, 0x7b                         }, { vpternlogq zmm30,zmm29,QWORD [rdx-0x400]{1to8},0x7b          }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x25, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vpternlogq zmm30,zmm29,QWORD [rdx-0x408]{1to8},0x7b          }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x32, 0xee                                     }, { vpmovqb xmm30{k7},zmm29                                      }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x32, 0xee                                     }, { vpmovqb xmm30{k7}{z},zmm29                                   }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x22, 0xee                                     }, { vpmovsqb xmm30{k7},zmm29                                     }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x22, 0xee                                     }, { vpmovsqb xmm30{k7}{z},zmm29                                  }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x12, 0xee                                     }, { vpmovusqb xmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x12, 0xee                                     }, { vpmovusqb xmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x34, 0xee                                     }, { vpmovqw xmm30{k7},zmm29                                      }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x34, 0xee                                     }, { vpmovqw xmm30{k7}{z},zmm29                                   }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x24, 0xee                                     }, { vpmovsqw xmm30{k7},zmm29                                     }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x24, 0xee                                     }, { vpmovsqw xmm30{k7}{z},zmm29                                  }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x14, 0xee                                     }, { vpmovusqw xmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x14, 0xee                                     }, { vpmovusqw xmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x35, 0xee                                     }, { vpmovqd ymm30{k7},zmm29                                      }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x35, 0xee                                     }, { vpmovqd ymm30{k7}{z},zmm29                                   }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x25, 0xee                                     }, { vpmovsqd ymm30{k7},zmm29                                     }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x25, 0xee                                     }, { vpmovsqd ymm30{k7}{z},zmm29                                  }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x15, 0xee                                     }, { vpmovusqd ymm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x15, 0xee                                     }, { vpmovusqd ymm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x31, 0xee                                     }, { vpmovdb xmm30{k7},zmm29                                      }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x31, 0xee                                     }, { vpmovdb xmm30{k7}{z},zmm29                                   }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x21, 0xee                                     }, { vpmovsdb xmm30{k7},zmm29                                     }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x21, 0xee                                     }, { vpmovsdb xmm30{k7}{z},zmm29                                  }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x11, 0xee                                     }, { vpmovusdb xmm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x11, 0xee                                     }, { vpmovusdb xmm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x33, 0xee                                     }, { vpmovdw ymm30{k7},zmm29                                      }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x33, 0xee                                     }, { vpmovdw ymm30{k7}{z},zmm29                                   }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x23, 0xee                                     }, { vpmovsdw ymm30{k7},zmm29                                     }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x23, 0xee                                     }, { vpmovsdw ymm30{k7}{z},zmm29                                  }
-testcase	{ 0x62, 0x02, 0x7e, 0x4f, 0x13, 0xee                                     }, { vpmovusdw ymm30{k7},zmm29                                    }
-testcase	{ 0x62, 0x02, 0x7e, 0xcf, 0x13, 0xee                                     }, { vpmovusdw ymm30{k7}{z},zmm29                                 }
-testcase	{ 0x62, 0x03, 0x15, 0x40, 0x23, 0xf4, 0xab                               }, { vshuff32x4 zmm30,zmm29,zmm28,0xab                            }
-testcase	{ 0x62, 0x03, 0x15, 0x47, 0x23, 0xf4, 0xab                               }, { vshuff32x4 zmm30{k7},zmm29,zmm28,0xab                        }
-testcase	{ 0x62, 0x03, 0x15, 0xc7, 0x23, 0xf4, 0xab                               }, { vshuff32x4 zmm30{k7}{z},zmm29,zmm28,0xab                     }
-testcase	{ 0x62, 0x03, 0x15, 0x40, 0x23, 0xf4, 0x7b                               }, { vshuff32x4 zmm30,zmm29,zmm28,0x7b                            }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x23, 0x31, 0x7b                               }, { vshuff32x4 zmm30,zmm29,ZWORD [rcx],0x7b                      }
-testcase	{ 0x62, 0x23, 0x15, 0x40, 0x23, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vshuff32x4 zmm30,zmm29,ZWORD [rax+r14*8+0x123],0x7b          }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x23, 0x31, 0x7b                               }, { vshuff32x4 zmm30,zmm29,DWORD [rcx]{1to16},0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x23, 0x72, 0x7f, 0x7b                         }, { vshuff32x4 zmm30,zmm29,ZWORD [rdx+0x1fc0],0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x23, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vshuff32x4 zmm30,zmm29,ZWORD [rdx+0x2000],0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x23, 0x72, 0x80, 0x7b                         }, { vshuff32x4 zmm30,zmm29,ZWORD [rdx-0x2000],0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x23, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vshuff32x4 zmm30,zmm29,ZWORD [rdx-0x2040],0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x23, 0x72, 0x7f, 0x7b                         }, { vshuff32x4 zmm30,zmm29,DWORD [rdx+0x1fc]{1to16},0x7b         }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x23, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vshuff32x4 zmm30,zmm29,DWORD [rdx+0x200]{1to16},0x7b         }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x23, 0x72, 0x80, 0x7b                         }, { vshuff32x4 zmm30,zmm29,DWORD [rdx-0x200]{1to16},0x7b         }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x23, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vshuff32x4 zmm30,zmm29,DWORD [rdx-0x204]{1to16},0x7b         }
-testcase	{ 0x62, 0x03, 0x95, 0x40, 0x23, 0xf4, 0xab                               }, { vshuff64x2 zmm30,zmm29,zmm28,0xab                            }
-testcase	{ 0x62, 0x03, 0x95, 0x47, 0x23, 0xf4, 0xab                               }, { vshuff64x2 zmm30{k7},zmm29,zmm28,0xab                        }
-testcase	{ 0x62, 0x03, 0x95, 0xc7, 0x23, 0xf4, 0xab                               }, { vshuff64x2 zmm30{k7}{z},zmm29,zmm28,0xab                     }
-testcase	{ 0x62, 0x03, 0x95, 0x40, 0x23, 0xf4, 0x7b                               }, { vshuff64x2 zmm30,zmm29,zmm28,0x7b                            }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x23, 0x31, 0x7b                               }, { vshuff64x2 zmm30,zmm29,ZWORD [rcx],0x7b                      }
-testcase	{ 0x62, 0x23, 0x95, 0x40, 0x23, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vshuff64x2 zmm30,zmm29,ZWORD [rax+r14*8+0x123],0x7b          }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x23, 0x31, 0x7b                               }, { vshuff64x2 zmm30,zmm29,QWORD [rcx]{1to8},0x7b                }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x23, 0x72, 0x7f, 0x7b                         }, { vshuff64x2 zmm30,zmm29,ZWORD [rdx+0x1fc0],0x7b               }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x23, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vshuff64x2 zmm30,zmm29,ZWORD [rdx+0x2000],0x7b               }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x23, 0x72, 0x80, 0x7b                         }, { vshuff64x2 zmm30,zmm29,ZWORD [rdx-0x2000],0x7b               }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x23, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vshuff64x2 zmm30,zmm29,ZWORD [rdx-0x2040],0x7b               }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x23, 0x72, 0x7f, 0x7b                         }, { vshuff64x2 zmm30,zmm29,QWORD [rdx+0x3f8]{1to8},0x7b          }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x23, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vshuff64x2 zmm30,zmm29,QWORD [rdx+0x400]{1to8},0x7b          }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x23, 0x72, 0x80, 0x7b                         }, { vshuff64x2 zmm30,zmm29,QWORD [rdx-0x400]{1to8},0x7b          }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x23, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vshuff64x2 zmm30,zmm29,QWORD [rdx-0x408]{1to8},0x7b          }
-testcase	{ 0x62, 0x03, 0x15, 0x40, 0x43, 0xf4, 0xab                               }, { vshufi32x4 zmm30,zmm29,zmm28,0xab                            }
-testcase	{ 0x62, 0x03, 0x15, 0x47, 0x43, 0xf4, 0xab                               }, { vshufi32x4 zmm30{k7},zmm29,zmm28,0xab                        }
-testcase	{ 0x62, 0x03, 0x15, 0xc7, 0x43, 0xf4, 0xab                               }, { vshufi32x4 zmm30{k7}{z},zmm29,zmm28,0xab                     }
-testcase	{ 0x62, 0x03, 0x15, 0x40, 0x43, 0xf4, 0x7b                               }, { vshufi32x4 zmm30,zmm29,zmm28,0x7b                            }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x43, 0x31, 0x7b                               }, { vshufi32x4 zmm30,zmm29,ZWORD [rcx],0x7b                      }
-testcase	{ 0x62, 0x23, 0x15, 0x40, 0x43, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vshufi32x4 zmm30,zmm29,ZWORD [rax+r14*8+0x123],0x7b          }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x43, 0x31, 0x7b                               }, { vshufi32x4 zmm30,zmm29,DWORD [rcx]{1to16},0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x43, 0x72, 0x7f, 0x7b                         }, { vshufi32x4 zmm30,zmm29,ZWORD [rdx+0x1fc0],0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x43, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vshufi32x4 zmm30,zmm29,ZWORD [rdx+0x2000],0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x43, 0x72, 0x80, 0x7b                         }, { vshufi32x4 zmm30,zmm29,ZWORD [rdx-0x2000],0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x43, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vshufi32x4 zmm30,zmm29,ZWORD [rdx-0x2040],0x7b               }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x43, 0x72, 0x7f, 0x7b                         }, { vshufi32x4 zmm30,zmm29,DWORD [rdx+0x1fc]{1to16},0x7b         }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x43, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vshufi32x4 zmm30,zmm29,DWORD [rdx+0x200]{1to16},0x7b         }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x43, 0x72, 0x80, 0x7b                         }, { vshufi32x4 zmm30,zmm29,DWORD [rdx-0x200]{1to16},0x7b         }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x43, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vshufi32x4 zmm30,zmm29,DWORD [rdx-0x204]{1to16},0x7b         }
-testcase	{ 0x62, 0x03, 0x95, 0x40, 0x43, 0xf4, 0xab                               }, { vshufi64x2 zmm30,zmm29,zmm28,0xab                            }
-testcase	{ 0x62, 0x03, 0x95, 0x47, 0x43, 0xf4, 0xab                               }, { vshufi64x2 zmm30{k7},zmm29,zmm28,0xab                        }
-testcase	{ 0x62, 0x03, 0x95, 0xc7, 0x43, 0xf4, 0xab                               }, { vshufi64x2 zmm30{k7}{z},zmm29,zmm28,0xab                     }
-testcase	{ 0x62, 0x03, 0x95, 0x40, 0x43, 0xf4, 0x7b                               }, { vshufi64x2 zmm30,zmm29,zmm28,0x7b                            }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x43, 0x31, 0x7b                               }, { vshufi64x2 zmm30,zmm29,ZWORD [rcx],0x7b                      }
-testcase	{ 0x62, 0x23, 0x95, 0x40, 0x43, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vshufi64x2 zmm30,zmm29,ZWORD [rax+r14*8+0x123],0x7b          }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x43, 0x31, 0x7b                               }, { vshufi64x2 zmm30,zmm29,QWORD [rcx]{1to8},0x7b                }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x43, 0x72, 0x7f, 0x7b                         }, { vshufi64x2 zmm30,zmm29,ZWORD [rdx+0x1fc0],0x7b               }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x43, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vshufi64x2 zmm30,zmm29,ZWORD [rdx+0x2000],0x7b               }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x43, 0x72, 0x80, 0x7b                         }, { vshufi64x2 zmm30,zmm29,ZWORD [rdx-0x2000],0x7b               }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x43, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vshufi64x2 zmm30,zmm29,ZWORD [rdx-0x2040],0x7b               }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x43, 0x72, 0x7f, 0x7b                         }, { vshufi64x2 zmm30,zmm29,QWORD [rdx+0x3f8]{1to8},0x7b          }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x43, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vshufi64x2 zmm30,zmm29,QWORD [rdx+0x400]{1to8},0x7b          }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x43, 0x72, 0x80, 0x7b                         }, { vshufi64x2 zmm30,zmm29,QWORD [rdx-0x400]{1to8},0x7b          }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x43, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vshufi64x2 zmm30,zmm29,QWORD [rdx-0x408]{1to8},0x7b          }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x36, 0xf4                                     }, { vpermq zmm30,zmm29,zmm28                                     }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x36, 0xf4                                     }, { vpermq zmm30{k7},zmm29,zmm28                                 }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x36, 0xf4                                     }, { vpermq zmm30{k7}{z},zmm29,zmm28                              }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x36, 0x31                                     }, { vpermq zmm30,zmm29,ZWORD [rcx]                               }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x36, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpermq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                   }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x36, 0x31                                     }, { vpermq zmm30,zmm29,QWORD [rcx]{1to8}                         }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x36, 0x72, 0x7f                               }, { vpermq zmm30,zmm29,ZWORD [rdx+0x1fc0]                        }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x36, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpermq zmm30,zmm29,ZWORD [rdx+0x2000]                        }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x36, 0x72, 0x80                               }, { vpermq zmm30,zmm29,ZWORD [rdx-0x2000]                        }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x36, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpermq zmm30,zmm29,ZWORD [rdx-0x2040]                        }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x36, 0x72, 0x7f                               }, { vpermq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x36, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpermq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x36, 0x72, 0x80                               }, { vpermq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                   }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x36, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpermq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                   }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x16, 0xf4                                     }, { vpermpd zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x16, 0xf4                                     }, { vpermpd zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x16, 0xf4                                     }, { vpermpd zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x16, 0x31                                     }, { vpermpd zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x16, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpermpd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x16, 0x31                                     }, { vpermpd zmm30,zmm29,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x16, 0x72, 0x7f                               }, { vpermpd zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x16, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpermpd zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x16, 0x72, 0x80                               }, { vpermpd zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x16, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpermpd zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x16, 0x72, 0x7f                               }, { vpermpd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x16, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpermpd zmm30,zmm29,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x16, 0x72, 0x80                               }, { vpermpd zmm30,zmm29,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x16, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpermpd zmm30,zmm29,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x7e, 0xf4                                     }, { vpermt2d zmm30,zmm29,zmm28                                   }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x7e, 0xf4                                     }, { vpermt2d zmm30{k7},zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x7e, 0xf4                                     }, { vpermt2d zmm30{k7}{z},zmm29,zmm28                            }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x7e, 0x31                                     }, { vpermt2d zmm30,zmm29,ZWORD [rcx]                             }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x7e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpermt2d zmm30,zmm29,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x7e, 0x31                                     }, { vpermt2d zmm30,zmm29,DWORD [rcx]{1to16}                      }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x7e, 0x72, 0x7f                               }, { vpermt2d zmm30,zmm29,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x7e, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpermt2d zmm30,zmm29,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x7e, 0x72, 0x80                               }, { vpermt2d zmm30,zmm29,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x7e, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpermt2d zmm30,zmm29,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x7e, 0x72, 0x7f                               }, { vpermt2d zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x7e, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpermt2d zmm30,zmm29,DWORD [rdx+0x200]{1to16}                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x7e, 0x72, 0x80                               }, { vpermt2d zmm30,zmm29,DWORD [rdx-0x200]{1to16}                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x7e, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpermt2d zmm30,zmm29,DWORD [rdx-0x204]{1to16}                }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x7e, 0xf4                                     }, { vpermt2q zmm30,zmm29,zmm28                                   }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x7e, 0xf4                                     }, { vpermt2q zmm30{k7},zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x7e, 0xf4                                     }, { vpermt2q zmm30{k7}{z},zmm29,zmm28                            }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x7e, 0x31                                     }, { vpermt2q zmm30,zmm29,ZWORD [rcx]                             }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x7e, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpermt2q zmm30,zmm29,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x7e, 0x31                                     }, { vpermt2q zmm30,zmm29,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x7e, 0x72, 0x7f                               }, { vpermt2q zmm30,zmm29,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x7e, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpermt2q zmm30,zmm29,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x7e, 0x72, 0x80                               }, { vpermt2q zmm30,zmm29,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x7e, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpermt2q zmm30,zmm29,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x7e, 0x72, 0x7f                               }, { vpermt2q zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x7e, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpermt2q zmm30,zmm29,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x7e, 0x72, 0x80                               }, { vpermt2q zmm30,zmm29,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x7e, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpermt2q zmm30,zmm29,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x7f, 0xf4                                     }, { vpermt2ps zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x7f, 0xf4                                     }, { vpermt2ps zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x7f, 0xf4                                     }, { vpermt2ps zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x7f, 0x31                                     }, { vpermt2ps zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x7f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpermt2ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x7f, 0x31                                     }, { vpermt2ps zmm30,zmm29,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x7f, 0x72, 0x7f                               }, { vpermt2ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x7f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpermt2ps zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x7f, 0x72, 0x80                               }, { vpermt2ps zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x7f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpermt2ps zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x7f, 0x72, 0x7f                               }, { vpermt2ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x7f, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpermt2ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x7f, 0x72, 0x80                               }, { vpermt2ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x7f, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpermt2ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x7f, 0xf4                                     }, { vpermt2pd zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x7f, 0xf4                                     }, { vpermt2pd zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x7f, 0xf4                                     }, { vpermt2pd zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x7f, 0x31                                     }, { vpermt2pd zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x7f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpermt2pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x7f, 0x31                                     }, { vpermt2pd zmm30,zmm29,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x7f, 0x72, 0x7f                               }, { vpermt2pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x7f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpermt2pd zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x7f, 0x72, 0x80                               }, { vpermt2pd zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x7f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpermt2pd zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x7f, 0x72, 0x7f                               }, { vpermt2pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x7f, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpermt2pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x7f, 0x72, 0x80                               }, { vpermt2pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x7f, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpermt2pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x03, 0x95, 0x40, 0x03, 0xf4, 0xab                               }, { valignq zmm30,zmm29,zmm28,0xab                               }
-testcase	{ 0x62, 0x03, 0x95, 0x47, 0x03, 0xf4, 0xab                               }, { valignq zmm30{k7},zmm29,zmm28,0xab                           }
-testcase	{ 0x62, 0x03, 0x95, 0xc7, 0x03, 0xf4, 0xab                               }, { valignq zmm30{k7}{z},zmm29,zmm28,0xab                        }
-testcase	{ 0x62, 0x03, 0x95, 0x40, 0x03, 0xf4, 0x7b                               }, { valignq zmm30,zmm29,zmm28,0x7b                               }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x03, 0x31, 0x7b                               }, { valignq zmm30,zmm29,ZWORD [rcx],0x7b                         }
-testcase	{ 0x62, 0x23, 0x95, 0x40, 0x03, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { valignq zmm30,zmm29,ZWORD [rax+r14*8+0x123],0x7b             }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x03, 0x31, 0x7b                               }, { valignq zmm30,zmm29,QWORD [rcx]{1to8},0x7b                   }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x03, 0x72, 0x7f, 0x7b                         }, { valignq zmm30,zmm29,ZWORD [rdx+0x1fc0],0x7b                  }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x03, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { valignq zmm30,zmm29,ZWORD [rdx+0x2000],0x7b                  }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x03, 0x72, 0x80, 0x7b                         }, { valignq zmm30,zmm29,ZWORD [rdx-0x2000],0x7b                  }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x03, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { valignq zmm30,zmm29,ZWORD [rdx-0x2040],0x7b                  }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x03, 0x72, 0x7f, 0x7b                         }, { valignq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8},0x7b             }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x03, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { valignq zmm30,zmm29,QWORD [rdx+0x400]{1to8},0x7b             }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x03, 0x72, 0x80, 0x7b                         }, { valignq zmm30,zmm29,QWORD [rdx-0x400]{1to8},0x7b             }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x03, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { valignq zmm30,zmm29,QWORD [rdx-0x408]{1to8},0x7b             }
-testcase	{ 0x62, 0x91, 0x7f, 0x08, 0x79, 0xc6                                     }, { vcvtsd2usi eax,xmm30                                         }
-testcase	{ 0x62, 0x91, 0x7f, 0x18, 0x79, 0xc6                                     }, { vcvtsd2usi eax,xmm30,{rn-sae}                                }
-testcase	{ 0x62, 0x91, 0x7f, 0x58, 0x79, 0xc6                                     }, { vcvtsd2usi eax,xmm30,{ru-sae}                                }
-testcase	{ 0x62, 0x91, 0x7f, 0x38, 0x79, 0xc6                                     }, { vcvtsd2usi eax,xmm30,{rd-sae}                                }
-testcase	{ 0x62, 0x91, 0x7f, 0x78, 0x79, 0xc6                                     }, { vcvtsd2usi eax,xmm30,{rz-sae}                                }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x79, 0x01                                     }, { vcvtsd2usi eax,QWORD [rcx]                                   }
-testcase	{ 0x62, 0xb1, 0x7f, 0x08, 0x79, 0x84, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtsd2usi eax,QWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x79, 0x42, 0x7f                               }, { vcvtsd2usi eax,QWORD [rdx+0x3f8]                             }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x79, 0x82, 0x00, 0x04, 0x00, 0x00             }, { vcvtsd2usi eax,QWORD [rdx+0x400]                             }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x79, 0x42, 0x80                               }, { vcvtsd2usi eax,QWORD [rdx-0x400]                             }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x79, 0x82, 0xf8, 0xfb, 0xff, 0xff             }, { vcvtsd2usi eax,QWORD [rdx-0x408]                             }
-testcase	{ 0x62, 0x91, 0x7f, 0x08, 0x79, 0xee                                     }, { vcvtsd2usi ebp,xmm30                                         }
-testcase	{ 0x62, 0x91, 0x7f, 0x18, 0x79, 0xee                                     }, { vcvtsd2usi ebp,xmm30,{rn-sae}                                }
-testcase	{ 0x62, 0x91, 0x7f, 0x58, 0x79, 0xee                                     }, { vcvtsd2usi ebp,xmm30,{ru-sae}                                }
-testcase	{ 0x62, 0x91, 0x7f, 0x38, 0x79, 0xee                                     }, { vcvtsd2usi ebp,xmm30,{rd-sae}                                }
-testcase	{ 0x62, 0x91, 0x7f, 0x78, 0x79, 0xee                                     }, { vcvtsd2usi ebp,xmm30,{rz-sae}                                }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x79, 0x29                                     }, { vcvtsd2usi ebp,QWORD [rcx]                                   }
-testcase	{ 0x62, 0xb1, 0x7f, 0x08, 0x79, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtsd2usi ebp,QWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x79, 0x6a, 0x7f                               }, { vcvtsd2usi ebp,QWORD [rdx+0x3f8]                             }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x79, 0xaa, 0x00, 0x04, 0x00, 0x00             }, { vcvtsd2usi ebp,QWORD [rdx+0x400]                             }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x79, 0x6a, 0x80                               }, { vcvtsd2usi ebp,QWORD [rdx-0x400]                             }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x79, 0xaa, 0xf8, 0xfb, 0xff, 0xff             }, { vcvtsd2usi ebp,QWORD [rdx-0x408]                             }
-testcase	{ 0x62, 0x11, 0x7f, 0x08, 0x79, 0xee                                     }, { vcvtsd2usi r13d,xmm30                                        }
-testcase	{ 0x62, 0x11, 0x7f, 0x18, 0x79, 0xee                                     }, { vcvtsd2usi r13d,xmm30,{rn-sae}                               }
-testcase	{ 0x62, 0x11, 0x7f, 0x58, 0x79, 0xee                                     }, { vcvtsd2usi r13d,xmm30,{ru-sae}                               }
-testcase	{ 0x62, 0x11, 0x7f, 0x38, 0x79, 0xee                                     }, { vcvtsd2usi r13d,xmm30,{rd-sae}                               }
-testcase	{ 0x62, 0x11, 0x7f, 0x78, 0x79, 0xee                                     }, { vcvtsd2usi r13d,xmm30,{rz-sae}                               }
-testcase	{ 0x62, 0x71, 0x7f, 0x08, 0x79, 0x29                                     }, { vcvtsd2usi r13d,QWORD [rcx]                                  }
-testcase	{ 0x62, 0x31, 0x7f, 0x08, 0x79, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtsd2usi r13d,QWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x71, 0x7f, 0x08, 0x79, 0x6a, 0x7f                               }, { vcvtsd2usi r13d,QWORD [rdx+0x3f8]                            }
-testcase	{ 0x62, 0x71, 0x7f, 0x08, 0x79, 0xaa, 0x00, 0x04, 0x00, 0x00             }, { vcvtsd2usi r13d,QWORD [rdx+0x400]                            }
-testcase	{ 0x62, 0x71, 0x7f, 0x08, 0x79, 0x6a, 0x80                               }, { vcvtsd2usi r13d,QWORD [rdx-0x400]                            }
-testcase	{ 0x62, 0x71, 0x7f, 0x08, 0x79, 0xaa, 0xf8, 0xfb, 0xff, 0xff             }, { vcvtsd2usi r13d,QWORD [rdx-0x408]                            }
-testcase	{ 0x62, 0x91, 0xff, 0x08, 0x79, 0xc6                                     }, { vcvtsd2usi rax,xmm30                                         }
-testcase	{ 0x62, 0x91, 0xff, 0x18, 0x79, 0xc6                                     }, { vcvtsd2usi rax,xmm30,{rn-sae}                                }
-testcase	{ 0x62, 0x91, 0xff, 0x58, 0x79, 0xc6                                     }, { vcvtsd2usi rax,xmm30,{ru-sae}                                }
-testcase	{ 0x62, 0x91, 0xff, 0x38, 0x79, 0xc6                                     }, { vcvtsd2usi rax,xmm30,{rd-sae}                                }
-testcase	{ 0x62, 0x91, 0xff, 0x78, 0x79, 0xc6                                     }, { vcvtsd2usi rax,xmm30,{rz-sae}                                }
-testcase	{ 0x62, 0xf1, 0xff, 0x08, 0x79, 0x01                                     }, { vcvtsd2usi rax,QWORD [rcx]                                   }
-testcase	{ 0x62, 0xb1, 0xff, 0x08, 0x79, 0x84, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtsd2usi rax,QWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0xf1, 0xff, 0x08, 0x79, 0x42, 0x7f                               }, { vcvtsd2usi rax,QWORD [rdx+0x3f8]                             }
-testcase	{ 0x62, 0xf1, 0xff, 0x08, 0x79, 0x82, 0x00, 0x04, 0x00, 0x00             }, { vcvtsd2usi rax,QWORD [rdx+0x400]                             }
-testcase	{ 0x62, 0xf1, 0xff, 0x08, 0x79, 0x42, 0x80                               }, { vcvtsd2usi rax,QWORD [rdx-0x400]                             }
-testcase	{ 0x62, 0xf1, 0xff, 0x08, 0x79, 0x82, 0xf8, 0xfb, 0xff, 0xff             }, { vcvtsd2usi rax,QWORD [rdx-0x408]                             }
-testcase	{ 0x62, 0x11, 0xff, 0x08, 0x79, 0xc6                                     }, { vcvtsd2usi r8,xmm30                                          }
-testcase	{ 0x62, 0x11, 0xff, 0x18, 0x79, 0xc6                                     }, { vcvtsd2usi r8,xmm30,{rn-sae}                                 }
-testcase	{ 0x62, 0x11, 0xff, 0x58, 0x79, 0xc6                                     }, { vcvtsd2usi r8,xmm30,{ru-sae}                                 }
-testcase	{ 0x62, 0x11, 0xff, 0x38, 0x79, 0xc6                                     }, { vcvtsd2usi r8,xmm30,{rd-sae}                                 }
-testcase	{ 0x62, 0x11, 0xff, 0x78, 0x79, 0xc6                                     }, { vcvtsd2usi r8,xmm30,{rz-sae}                                 }
-testcase	{ 0x62, 0x71, 0xff, 0x08, 0x79, 0x01                                     }, { vcvtsd2usi r8,QWORD [rcx]                                    }
-testcase	{ 0x62, 0x31, 0xff, 0x08, 0x79, 0x84, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtsd2usi r8,QWORD [rax+r14*8+0x123]                        }
-testcase	{ 0x62, 0x71, 0xff, 0x08, 0x79, 0x42, 0x7f                               }, { vcvtsd2usi r8,QWORD [rdx+0x3f8]                              }
-testcase	{ 0x62, 0x71, 0xff, 0x08, 0x79, 0x82, 0x00, 0x04, 0x00, 0x00             }, { vcvtsd2usi r8,QWORD [rdx+0x400]                              }
-testcase	{ 0x62, 0x71, 0xff, 0x08, 0x79, 0x42, 0x80                               }, { vcvtsd2usi r8,QWORD [rdx-0x400]                              }
-testcase	{ 0x62, 0x71, 0xff, 0x08, 0x79, 0x82, 0xf8, 0xfb, 0xff, 0xff             }, { vcvtsd2usi r8,QWORD [rdx-0x408]                              }
-testcase	{ 0x62, 0x91, 0x7e, 0x08, 0x79, 0xc6                                     }, { vcvtss2usi eax,xmm30                                         }
-testcase	{ 0x62, 0x91, 0x7e, 0x18, 0x79, 0xc6                                     }, { vcvtss2usi eax,xmm30,{rn-sae}                                }
-testcase	{ 0x62, 0x91, 0x7e, 0x58, 0x79, 0xc6                                     }, { vcvtss2usi eax,xmm30,{ru-sae}                                }
-testcase	{ 0x62, 0x91, 0x7e, 0x38, 0x79, 0xc6                                     }, { vcvtss2usi eax,xmm30,{rd-sae}                                }
-testcase	{ 0x62, 0x91, 0x7e, 0x78, 0x79, 0xc6                                     }, { vcvtss2usi eax,xmm30,{rz-sae}                                }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x79, 0x01                                     }, { vcvtss2usi eax,DWORD [rcx]                                   }
-testcase	{ 0x62, 0xb1, 0x7e, 0x08, 0x79, 0x84, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtss2usi eax,DWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x79, 0x42, 0x7f                               }, { vcvtss2usi eax,DWORD [rdx+0x1fc]                             }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x79, 0x82, 0x00, 0x02, 0x00, 0x00             }, { vcvtss2usi eax,DWORD [rdx+0x200]                             }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x79, 0x42, 0x80                               }, { vcvtss2usi eax,DWORD [rdx-0x200]                             }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x79, 0x82, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtss2usi eax,DWORD [rdx-0x204]                             }
-testcase	{ 0x62, 0x91, 0x7e, 0x08, 0x79, 0xee                                     }, { vcvtss2usi ebp,xmm30                                         }
-testcase	{ 0x62, 0x91, 0x7e, 0x18, 0x79, 0xee                                     }, { vcvtss2usi ebp,xmm30,{rn-sae}                                }
-testcase	{ 0x62, 0x91, 0x7e, 0x58, 0x79, 0xee                                     }, { vcvtss2usi ebp,xmm30,{ru-sae}                                }
-testcase	{ 0x62, 0x91, 0x7e, 0x38, 0x79, 0xee                                     }, { vcvtss2usi ebp,xmm30,{rd-sae}                                }
-testcase	{ 0x62, 0x91, 0x7e, 0x78, 0x79, 0xee                                     }, { vcvtss2usi ebp,xmm30,{rz-sae}                                }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x79, 0x29                                     }, { vcvtss2usi ebp,DWORD [rcx]                                   }
-testcase	{ 0x62, 0xb1, 0x7e, 0x08, 0x79, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtss2usi ebp,DWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x79, 0x6a, 0x7f                               }, { vcvtss2usi ebp,DWORD [rdx+0x1fc]                             }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x79, 0xaa, 0x00, 0x02, 0x00, 0x00             }, { vcvtss2usi ebp,DWORD [rdx+0x200]                             }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x79, 0x6a, 0x80                               }, { vcvtss2usi ebp,DWORD [rdx-0x200]                             }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x79, 0xaa, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtss2usi ebp,DWORD [rdx-0x204]                             }
-testcase	{ 0x62, 0x11, 0x7e, 0x08, 0x79, 0xee                                     }, { vcvtss2usi r13d,xmm30                                        }
-testcase	{ 0x62, 0x11, 0x7e, 0x18, 0x79, 0xee                                     }, { vcvtss2usi r13d,xmm30,{rn-sae}                               }
-testcase	{ 0x62, 0x11, 0x7e, 0x58, 0x79, 0xee                                     }, { vcvtss2usi r13d,xmm30,{ru-sae}                               }
-testcase	{ 0x62, 0x11, 0x7e, 0x38, 0x79, 0xee                                     }, { vcvtss2usi r13d,xmm30,{rd-sae}                               }
-testcase	{ 0x62, 0x11, 0x7e, 0x78, 0x79, 0xee                                     }, { vcvtss2usi r13d,xmm30,{rz-sae}                               }
-testcase	{ 0x62, 0x71, 0x7e, 0x08, 0x79, 0x29                                     }, { vcvtss2usi r13d,DWORD [rcx]                                  }
-testcase	{ 0x62, 0x31, 0x7e, 0x08, 0x79, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtss2usi r13d,DWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0x71, 0x7e, 0x08, 0x79, 0x6a, 0x7f                               }, { vcvtss2usi r13d,DWORD [rdx+0x1fc]                            }
-testcase	{ 0x62, 0x71, 0x7e, 0x08, 0x79, 0xaa, 0x00, 0x02, 0x00, 0x00             }, { vcvtss2usi r13d,DWORD [rdx+0x200]                            }
-testcase	{ 0x62, 0x71, 0x7e, 0x08, 0x79, 0x6a, 0x80                               }, { vcvtss2usi r13d,DWORD [rdx-0x200]                            }
-testcase	{ 0x62, 0x71, 0x7e, 0x08, 0x79, 0xaa, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtss2usi r13d,DWORD [rdx-0x204]                            }
-testcase	{ 0x62, 0x91, 0xfe, 0x08, 0x79, 0xc6                                     }, { vcvtss2usi rax,xmm30                                         }
-testcase	{ 0x62, 0x91, 0xfe, 0x18, 0x79, 0xc6                                     }, { vcvtss2usi rax,xmm30,{rn-sae}                                }
-testcase	{ 0x62, 0x91, 0xfe, 0x58, 0x79, 0xc6                                     }, { vcvtss2usi rax,xmm30,{ru-sae}                                }
-testcase	{ 0x62, 0x91, 0xfe, 0x38, 0x79, 0xc6                                     }, { vcvtss2usi rax,xmm30,{rd-sae}                                }
-testcase	{ 0x62, 0x91, 0xfe, 0x78, 0x79, 0xc6                                     }, { vcvtss2usi rax,xmm30,{rz-sae}                                }
-testcase	{ 0x62, 0xf1, 0xfe, 0x08, 0x79, 0x01                                     }, { vcvtss2usi rax,DWORD [rcx]                                   }
-testcase	{ 0x62, 0xb1, 0xfe, 0x08, 0x79, 0x84, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtss2usi rax,DWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0xf1, 0xfe, 0x08, 0x79, 0x42, 0x7f                               }, { vcvtss2usi rax,DWORD [rdx+0x1fc]                             }
-testcase	{ 0x62, 0xf1, 0xfe, 0x08, 0x79, 0x82, 0x00, 0x02, 0x00, 0x00             }, { vcvtss2usi rax,DWORD [rdx+0x200]                             }
-testcase	{ 0x62, 0xf1, 0xfe, 0x08, 0x79, 0x42, 0x80                               }, { vcvtss2usi rax,DWORD [rdx-0x200]                             }
-testcase	{ 0x62, 0xf1, 0xfe, 0x08, 0x79, 0x82, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtss2usi rax,DWORD [rdx-0x204]                             }
-testcase	{ 0x62, 0x11, 0xfe, 0x08, 0x79, 0xc6                                     }, { vcvtss2usi r8,xmm30                                          }
-testcase	{ 0x62, 0x11, 0xfe, 0x18, 0x79, 0xc6                                     }, { vcvtss2usi r8,xmm30,{rn-sae}                                 }
-testcase	{ 0x62, 0x11, 0xfe, 0x58, 0x79, 0xc6                                     }, { vcvtss2usi r8,xmm30,{ru-sae}                                 }
-testcase	{ 0x62, 0x11, 0xfe, 0x38, 0x79, 0xc6                                     }, { vcvtss2usi r8,xmm30,{rd-sae}                                 }
-testcase	{ 0x62, 0x11, 0xfe, 0x78, 0x79, 0xc6                                     }, { vcvtss2usi r8,xmm30,{rz-sae}                                 }
-testcase	{ 0x62, 0x71, 0xfe, 0x08, 0x79, 0x01                                     }, { vcvtss2usi r8,DWORD [rcx]                                    }
-testcase	{ 0x62, 0x31, 0xfe, 0x08, 0x79, 0x84, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtss2usi r8,DWORD [rax+r14*8+0x123]                        }
-testcase	{ 0x62, 0x71, 0xfe, 0x08, 0x79, 0x42, 0x7f                               }, { vcvtss2usi r8,DWORD [rdx+0x1fc]                              }
-testcase	{ 0x62, 0x71, 0xfe, 0x08, 0x79, 0x82, 0x00, 0x02, 0x00, 0x00             }, { vcvtss2usi r8,DWORD [rdx+0x200]                              }
-testcase	{ 0x62, 0x71, 0xfe, 0x08, 0x79, 0x42, 0x80                               }, { vcvtss2usi r8,DWORD [rdx-0x200]                              }
-testcase	{ 0x62, 0x71, 0xfe, 0x08, 0x79, 0x82, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtss2usi r8,DWORD [rdx-0x204]                              }
-testcase	{ 0x62, 0x61, 0x17, 0x00, 0x7b, 0xf0                                     }, { vcvtusi2sd xmm30,xmm29,eax                                   }
-testcase	{ 0x62, 0x61, 0x17, 0x00, 0x7b, 0xf5                                     }, { vcvtusi2sd xmm30,xmm29,ebp                                   }
-testcase	{ 0x62, 0x41, 0x17, 0x00, 0x7b, 0xf5                                     }, { vcvtusi2sd xmm30,xmm29,r13d                                  }
-testcase	{ 0x62, 0x61, 0x17, 0x00, 0x7b, 0x31                                     }, { vcvtusi2sd xmm30,xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x17, 0x00, 0x7b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtusi2sd xmm30,xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x17, 0x00, 0x7b, 0x72, 0x7f                               }, { vcvtusi2sd xmm30,xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0x61, 0x17, 0x00, 0x7b, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcvtusi2sd xmm30,xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0x61, 0x17, 0x00, 0x7b, 0x72, 0x80                               }, { vcvtusi2sd xmm30,xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0x61, 0x17, 0x00, 0x7b, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtusi2sd xmm30,xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x00, 0x7b, 0xf0                                     }, { vcvtusi2sd xmm30,xmm29,rax                                   }
-testcase	{ 0x62, 0x61, 0x97, 0x10, 0x7b, 0xf0                                     }, { vcvtusi2sd xmm30,xmm29,{rn-sae},rax                          }
-testcase	{ 0x62, 0x61, 0x97, 0x50, 0x7b, 0xf0                                     }, { vcvtusi2sd xmm30,xmm29,{ru-sae},rax                          }
-testcase	{ 0x62, 0x61, 0x97, 0x30, 0x7b, 0xf0                                     }, { vcvtusi2sd xmm30,xmm29,{rd-sae},rax                          }
-testcase	{ 0x62, 0x61, 0x97, 0x70, 0x7b, 0xf0                                     }, { vcvtusi2sd xmm30,xmm29,{rz-sae},rax                          }
-testcase	{ 0x62, 0x41, 0x97, 0x00, 0x7b, 0xf0                                     }, { vcvtusi2sd xmm30,xmm29,r8                                    }
-testcase	{ 0x62, 0x41, 0x97, 0x10, 0x7b, 0xf0                                     }, { vcvtusi2sd xmm30,xmm29,{rn-sae},r8                           }
-testcase	{ 0x62, 0x41, 0x97, 0x50, 0x7b, 0xf0                                     }, { vcvtusi2sd xmm30,xmm29,{ru-sae},r8                           }
-testcase	{ 0x62, 0x41, 0x97, 0x30, 0x7b, 0xf0                                     }, { vcvtusi2sd xmm30,xmm29,{rd-sae},r8                           }
-testcase	{ 0x62, 0x41, 0x97, 0x70, 0x7b, 0xf0                                     }, { vcvtusi2sd xmm30,xmm29,{rz-sae},r8                           }
-testcase	{ 0x62, 0x61, 0x97, 0x00, 0x7b, 0x31                                     }, { vcvtusi2sd xmm30,xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x97, 0x00, 0x7b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtusi2sd xmm30,xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x97, 0x00, 0x7b, 0x72, 0x7f                               }, { vcvtusi2sd xmm30,xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x00, 0x7b, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vcvtusi2sd xmm30,xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x00, 0x7b, 0x72, 0x80                               }, { vcvtusi2sd xmm30,xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0x61, 0x97, 0x00, 0x7b, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vcvtusi2sd xmm30,xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x00, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,eax                                   }
-testcase	{ 0x62, 0x61, 0x16, 0x10, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,{rn-sae},eax                          }
-testcase	{ 0x62, 0x61, 0x16, 0x50, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,{ru-sae},eax                          }
-testcase	{ 0x62, 0x61, 0x16, 0x30, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,{rd-sae},eax                          }
-testcase	{ 0x62, 0x61, 0x16, 0x70, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,{rz-sae},eax                          }
-testcase	{ 0x62, 0x61, 0x16, 0x00, 0x7b, 0xf5                                     }, { vcvtusi2ss xmm30,xmm29,ebp                                   }
-testcase	{ 0x62, 0x61, 0x16, 0x10, 0x7b, 0xf5                                     }, { vcvtusi2ss xmm30,xmm29,{rn-sae},ebp                          }
-testcase	{ 0x62, 0x61, 0x16, 0x50, 0x7b, 0xf5                                     }, { vcvtusi2ss xmm30,xmm29,{ru-sae},ebp                          }
-testcase	{ 0x62, 0x61, 0x16, 0x30, 0x7b, 0xf5                                     }, { vcvtusi2ss xmm30,xmm29,{rd-sae},ebp                          }
-testcase	{ 0x62, 0x61, 0x16, 0x70, 0x7b, 0xf5                                     }, { vcvtusi2ss xmm30,xmm29,{rz-sae},ebp                          }
-testcase	{ 0x62, 0x41, 0x16, 0x00, 0x7b, 0xf5                                     }, { vcvtusi2ss xmm30,xmm29,r13d                                  }
-testcase	{ 0x62, 0x41, 0x16, 0x10, 0x7b, 0xf5                                     }, { vcvtusi2ss xmm30,xmm29,{rn-sae},r13d                         }
-testcase	{ 0x62, 0x41, 0x16, 0x50, 0x7b, 0xf5                                     }, { vcvtusi2ss xmm30,xmm29,{ru-sae},r13d                         }
-testcase	{ 0x62, 0x41, 0x16, 0x30, 0x7b, 0xf5                                     }, { vcvtusi2ss xmm30,xmm29,{rd-sae},r13d                         }
-testcase	{ 0x62, 0x41, 0x16, 0x70, 0x7b, 0xf5                                     }, { vcvtusi2ss xmm30,xmm29,{rz-sae},r13d                         }
-testcase	{ 0x62, 0x61, 0x16, 0x00, 0x7b, 0x31                                     }, { vcvtusi2ss xmm30,xmm29,DWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x16, 0x00, 0x7b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtusi2ss xmm30,xmm29,DWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x16, 0x00, 0x7b, 0x72, 0x7f                               }, { vcvtusi2ss xmm30,xmm29,DWORD [rdx+0x1fc]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x00, 0x7b, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcvtusi2ss xmm30,xmm29,DWORD [rdx+0x200]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x00, 0x7b, 0x72, 0x80                               }, { vcvtusi2ss xmm30,xmm29,DWORD [rdx-0x200]                     }
-testcase	{ 0x62, 0x61, 0x16, 0x00, 0x7b, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcvtusi2ss xmm30,xmm29,DWORD [rdx-0x204]                     }
-testcase	{ 0x62, 0x61, 0x96, 0x00, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,rax                                   }
-testcase	{ 0x62, 0x61, 0x96, 0x10, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,{rn-sae},rax                          }
-testcase	{ 0x62, 0x61, 0x96, 0x50, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,{ru-sae},rax                          }
-testcase	{ 0x62, 0x61, 0x96, 0x30, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,{rd-sae},rax                          }
-testcase	{ 0x62, 0x61, 0x96, 0x70, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,{rz-sae},rax                          }
-testcase	{ 0x62, 0x41, 0x96, 0x00, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,r8                                    }
-testcase	{ 0x62, 0x41, 0x96, 0x10, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,{rn-sae},r8                           }
-testcase	{ 0x62, 0x41, 0x96, 0x50, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,{ru-sae},r8                           }
-testcase	{ 0x62, 0x41, 0x96, 0x30, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,{rd-sae},r8                           }
-testcase	{ 0x62, 0x41, 0x96, 0x70, 0x7b, 0xf0                                     }, { vcvtusi2ss xmm30,xmm29,{rz-sae},r8                           }
-testcase	{ 0x62, 0x61, 0x96, 0x00, 0x7b, 0x31                                     }, { vcvtusi2ss xmm30,xmm29,QWORD [rcx]                           }
-testcase	{ 0x62, 0x21, 0x96, 0x00, 0x7b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvtusi2ss xmm30,xmm29,QWORD [rax+r14*8+0x123]               }
-testcase	{ 0x62, 0x61, 0x96, 0x00, 0x7b, 0x72, 0x7f                               }, { vcvtusi2ss xmm30,xmm29,QWORD [rdx+0x3f8]                     }
-testcase	{ 0x62, 0x61, 0x96, 0x00, 0x7b, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vcvtusi2ss xmm30,xmm29,QWORD [rdx+0x400]                     }
-testcase	{ 0x62, 0x61, 0x96, 0x00, 0x7b, 0x72, 0x80                               }, { vcvtusi2ss xmm30,xmm29,QWORD [rdx-0x400]                     }
-testcase	{ 0x62, 0x61, 0x96, 0x00, 0x7b, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vcvtusi2ss xmm30,xmm29,QWORD [rdx-0x408]                     }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x2c, 0xf4                                     }, { vscalefpd zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x2c, 0xf4                                     }, { vscalefpd zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x2c, 0xf4                                     }, { vscalefpd zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0x10, 0x2c, 0xf4                                     }, { vscalefpd zmm30,zmm29,zmm28,{rn-sae}                         }
-testcase	{ 0x62, 0x02, 0x95, 0x50, 0x2c, 0xf4                                     }, { vscalefpd zmm30,zmm29,zmm28,{ru-sae}                         }
-testcase	{ 0x62, 0x02, 0x95, 0x30, 0x2c, 0xf4                                     }, { vscalefpd zmm30,zmm29,zmm28,{rd-sae}                         }
-testcase	{ 0x62, 0x02, 0x95, 0x70, 0x2c, 0xf4                                     }, { vscalefpd zmm30,zmm29,zmm28,{rz-sae}                         }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x2c, 0x31                                     }, { vscalefpd zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x2c, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vscalefpd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x2c, 0x31                                     }, { vscalefpd zmm30,zmm29,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x2c, 0x72, 0x7f                               }, { vscalefpd zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x2c, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vscalefpd zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x2c, 0x72, 0x80                               }, { vscalefpd zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x2c, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vscalefpd zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x2c, 0x72, 0x7f                               }, { vscalefpd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x2c, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vscalefpd zmm30,zmm29,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x2c, 0x72, 0x80                               }, { vscalefpd zmm30,zmm29,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x2c, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vscalefpd zmm30,zmm29,QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x2c, 0xf4                                     }, { vscalefps zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x2c, 0xf4                                     }, { vscalefps zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x2c, 0xf4                                     }, { vscalefps zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0x10, 0x2c, 0xf4                                     }, { vscalefps zmm30,zmm29,zmm28,{rn-sae}                         }
-testcase	{ 0x62, 0x02, 0x15, 0x50, 0x2c, 0xf4                                     }, { vscalefps zmm30,zmm29,zmm28,{ru-sae}                         }
-testcase	{ 0x62, 0x02, 0x15, 0x30, 0x2c, 0xf4                                     }, { vscalefps zmm30,zmm29,zmm28,{rd-sae}                         }
-testcase	{ 0x62, 0x02, 0x15, 0x70, 0x2c, 0xf4                                     }, { vscalefps zmm30,zmm29,zmm28,{rz-sae}                         }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x2c, 0x31                                     }, { vscalefps zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x2c, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vscalefps zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x2c, 0x31                                     }, { vscalefps zmm30,zmm29,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x2c, 0x72, 0x7f                               }, { vscalefps zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x2c, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vscalefps zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x2c, 0x72, 0x80                               }, { vscalefps zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x2c, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vscalefps zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x2c, 0x72, 0x7f                               }, { vscalefps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x2c, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vscalefps zmm30,zmm29,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x2c, 0x72, 0x80                               }, { vscalefps zmm30,zmm29,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x2c, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vscalefps zmm30,zmm29,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x02, 0x95, 0x07, 0x2d, 0xf4                                     }, { vscalefsd xmm30{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x02, 0x95, 0x87, 0x2d, 0xf4                                     }, { vscalefsd xmm30{k7}{z},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x95, 0x17, 0x2d, 0xf4                                     }, { vscalefsd xmm30{k7},xmm29,xmm28,{rn-sae}                     }
-testcase	{ 0x62, 0x02, 0x95, 0x57, 0x2d, 0xf4                                     }, { vscalefsd xmm30{k7},xmm29,xmm28,{ru-sae}                     }
-testcase	{ 0x62, 0x02, 0x95, 0x37, 0x2d, 0xf4                                     }, { vscalefsd xmm30{k7},xmm29,xmm28,{rd-sae}                     }
-testcase	{ 0x62, 0x02, 0x95, 0x77, 0x2d, 0xf4                                     }, { vscalefsd xmm30{k7},xmm29,xmm28,{rz-sae}                     }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x2d, 0x31                                     }, { vscalefsd xmm30{k7},xmm29,QWORD [rcx]                        }
-testcase	{ 0x62, 0x22, 0x95, 0x07, 0x2d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vscalefsd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x2d, 0x72, 0x7f                               }, { vscalefsd xmm30{k7},xmm29,QWORD [rdx+0x3f8]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x2d, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vscalefsd xmm30{k7},xmm29,QWORD [rdx+0x400]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x2d, 0x72, 0x80                               }, { vscalefsd xmm30{k7},xmm29,QWORD [rdx-0x400]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x07, 0x2d, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vscalefsd xmm30{k7},xmm29,QWORD [rdx-0x408]                  }
-testcase	{ 0x62, 0x02, 0x15, 0x07, 0x2d, 0xf4                                     }, { vscalefss xmm30{k7},xmm29,xmm28                              }
-testcase	{ 0x62, 0x02, 0x15, 0x87, 0x2d, 0xf4                                     }, { vscalefss xmm30{k7}{z},xmm29,xmm28                           }
-testcase	{ 0x62, 0x02, 0x15, 0x17, 0x2d, 0xf4                                     }, { vscalefss xmm30{k7},xmm29,xmm28,{rn-sae}                     }
-testcase	{ 0x62, 0x02, 0x15, 0x57, 0x2d, 0xf4                                     }, { vscalefss xmm30{k7},xmm29,xmm28,{ru-sae}                     }
-testcase	{ 0x62, 0x02, 0x15, 0x37, 0x2d, 0xf4                                     }, { vscalefss xmm30{k7},xmm29,xmm28,{rd-sae}                     }
-testcase	{ 0x62, 0x02, 0x15, 0x77, 0x2d, 0xf4                                     }, { vscalefss xmm30{k7},xmm29,xmm28,{rz-sae}                     }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x2d, 0x31                                     }, { vscalefss xmm30{k7},xmm29,DWORD [rcx]                        }
-testcase	{ 0x62, 0x22, 0x15, 0x07, 0x2d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vscalefss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123]            }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x2d, 0x72, 0x7f                               }, { vscalefss xmm30{k7},xmm29,DWORD [rdx+0x1fc]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x2d, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vscalefss xmm30{k7},xmm29,DWORD [rdx+0x200]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x2d, 0x72, 0x80                               }, { vscalefss xmm30{k7},xmm29,DWORD [rdx-0x200]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x07, 0x2d, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vscalefss xmm30{k7},xmm29,DWORD [rdx-0x204]                  }
-testcase	{ 0x62, 0x03, 0x15, 0x40, 0x54, 0xf4, 0xab                               }, { vfixupimmps zmm30,zmm29,zmm28,0xab                           }
-testcase	{ 0x62, 0x03, 0x15, 0x47, 0x54, 0xf4, 0xab                               }, { vfixupimmps zmm30{k7},zmm29,zmm28,0xab                       }
-testcase	{ 0x62, 0x03, 0x15, 0xc7, 0x54, 0xf4, 0xab                               }, { vfixupimmps zmm30{k7}{z},zmm29,zmm28,0xab                    }
-testcase	{ 0x62, 0x03, 0x15, 0x10, 0x54, 0xf4, 0xab                               }, { vfixupimmps zmm30,zmm29,zmm28,{sae},0xab                     }
-testcase	{ 0x62, 0x03, 0x15, 0x40, 0x54, 0xf4, 0x7b                               }, { vfixupimmps zmm30,zmm29,zmm28,0x7b                           }
-testcase	{ 0x62, 0x03, 0x15, 0x10, 0x54, 0xf4, 0x7b                               }, { vfixupimmps zmm30,zmm29,zmm28,{sae},0x7b                     }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x54, 0x31, 0x7b                               }, { vfixupimmps zmm30,zmm29,ZWORD [rcx],0x7b                     }
-testcase	{ 0x62, 0x23, 0x15, 0x40, 0x54, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vfixupimmps zmm30,zmm29,ZWORD [rax+r14*8+0x123],0x7b         }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x54, 0x31, 0x7b                               }, { vfixupimmps zmm30,zmm29,DWORD [rcx]{1to16},0x7b              }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x54, 0x72, 0x7f, 0x7b                         }, { vfixupimmps zmm30,zmm29,ZWORD [rdx+0x1fc0],0x7b              }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x54, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vfixupimmps zmm30,zmm29,ZWORD [rdx+0x2000],0x7b              }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x54, 0x72, 0x80, 0x7b                         }, { vfixupimmps zmm30,zmm29,ZWORD [rdx-0x2000],0x7b              }
-testcase	{ 0x62, 0x63, 0x15, 0x40, 0x54, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vfixupimmps zmm30,zmm29,ZWORD [rdx-0x2040],0x7b              }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x54, 0x72, 0x7f, 0x7b                         }, { vfixupimmps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16},0x7b        }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x54, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vfixupimmps zmm30,zmm29,DWORD [rdx+0x200]{1to16},0x7b        }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x54, 0x72, 0x80, 0x7b                         }, { vfixupimmps zmm30,zmm29,DWORD [rdx-0x200]{1to16},0x7b        }
-testcase	{ 0x62, 0x63, 0x15, 0x50, 0x54, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vfixupimmps zmm30,zmm29,DWORD [rdx-0x204]{1to16},0x7b        }
-testcase	{ 0x62, 0x03, 0x95, 0x40, 0x54, 0xf4, 0xab                               }, { vfixupimmpd zmm30,zmm29,zmm28,0xab                           }
-testcase	{ 0x62, 0x03, 0x95, 0x47, 0x54, 0xf4, 0xab                               }, { vfixupimmpd zmm30{k7},zmm29,zmm28,0xab                       }
-testcase	{ 0x62, 0x03, 0x95, 0xc7, 0x54, 0xf4, 0xab                               }, { vfixupimmpd zmm30{k7}{z},zmm29,zmm28,0xab                    }
-testcase	{ 0x62, 0x03, 0x95, 0x10, 0x54, 0xf4, 0xab                               }, { vfixupimmpd zmm30,zmm29,zmm28,{sae},0xab                     }
-testcase	{ 0x62, 0x03, 0x95, 0x40, 0x54, 0xf4, 0x7b                               }, { vfixupimmpd zmm30,zmm29,zmm28,0x7b                           }
-testcase	{ 0x62, 0x03, 0x95, 0x10, 0x54, 0xf4, 0x7b                               }, { vfixupimmpd zmm30,zmm29,zmm28,{sae},0x7b                     }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x54, 0x31, 0x7b                               }, { vfixupimmpd zmm30,zmm29,ZWORD [rcx],0x7b                     }
-testcase	{ 0x62, 0x23, 0x95, 0x40, 0x54, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vfixupimmpd zmm30,zmm29,ZWORD [rax+r14*8+0x123],0x7b         }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x54, 0x31, 0x7b                               }, { vfixupimmpd zmm30,zmm29,QWORD [rcx]{1to8},0x7b               }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x54, 0x72, 0x7f, 0x7b                         }, { vfixupimmpd zmm30,zmm29,ZWORD [rdx+0x1fc0],0x7b              }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x54, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vfixupimmpd zmm30,zmm29,ZWORD [rdx+0x2000],0x7b              }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x54, 0x72, 0x80, 0x7b                         }, { vfixupimmpd zmm30,zmm29,ZWORD [rdx-0x2000],0x7b              }
-testcase	{ 0x62, 0x63, 0x95, 0x40, 0x54, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vfixupimmpd zmm30,zmm29,ZWORD [rdx-0x2040],0x7b              }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x54, 0x72, 0x7f, 0x7b                         }, { vfixupimmpd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8},0x7b         }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x54, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vfixupimmpd zmm30,zmm29,QWORD [rdx+0x400]{1to8},0x7b         }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x54, 0x72, 0x80, 0x7b                         }, { vfixupimmpd zmm30,zmm29,QWORD [rdx-0x400]{1to8},0x7b         }
-testcase	{ 0x62, 0x63, 0x95, 0x50, 0x54, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vfixupimmpd zmm30,zmm29,QWORD [rdx-0x408]{1to8},0x7b         }
-testcase	{ 0x62, 0x03, 0x15, 0x07, 0x55, 0xf4, 0xab                               }, { vfixupimmss xmm30{k7},xmm29,xmm28,0xab                       }
-testcase	{ 0x62, 0x03, 0x15, 0x87, 0x55, 0xf4, 0xab                               }, { vfixupimmss xmm30{k7}{z},xmm29,xmm28,0xab                    }
-testcase	{ 0x62, 0x03, 0x15, 0x17, 0x55, 0xf4, 0xab                               }, { vfixupimmss xmm30{k7},xmm29,xmm28,{sae},0xab                 }
-testcase	{ 0x62, 0x03, 0x15, 0x07, 0x55, 0xf4, 0x7b                               }, { vfixupimmss xmm30{k7},xmm29,xmm28,0x7b                       }
-testcase	{ 0x62, 0x03, 0x15, 0x17, 0x55, 0xf4, 0x7b                               }, { vfixupimmss xmm30{k7},xmm29,xmm28,{sae},0x7b                 }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x55, 0x31, 0x7b                               }, { vfixupimmss xmm30{k7},xmm29,DWORD [rcx],0x7b                 }
-testcase	{ 0x62, 0x23, 0x15, 0x07, 0x55, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vfixupimmss xmm30{k7},xmm29,DWORD [rax+r14*8+0x123],0x7b     }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x55, 0x72, 0x7f, 0x7b                         }, { vfixupimmss xmm30{k7},xmm29,DWORD [rdx+0x1fc],0x7b           }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x55, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vfixupimmss xmm30{k7},xmm29,DWORD [rdx+0x200],0x7b           }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x55, 0x72, 0x80, 0x7b                         }, { vfixupimmss xmm30{k7},xmm29,DWORD [rdx-0x200],0x7b           }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x55, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vfixupimmss xmm30{k7},xmm29,DWORD [rdx-0x204],0x7b           }
-testcase	{ 0x62, 0x03, 0x95, 0x07, 0x55, 0xf4, 0xab                               }, { vfixupimmsd xmm30{k7},xmm29,xmm28,0xab                       }
-testcase	{ 0x62, 0x03, 0x95, 0x87, 0x55, 0xf4, 0xab                               }, { vfixupimmsd xmm30{k7}{z},xmm29,xmm28,0xab                    }
-testcase	{ 0x62, 0x03, 0x95, 0x17, 0x55, 0xf4, 0xab                               }, { vfixupimmsd xmm30{k7},xmm29,xmm28,{sae},0xab                 }
-testcase	{ 0x62, 0x03, 0x95, 0x07, 0x55, 0xf4, 0x7b                               }, { vfixupimmsd xmm30{k7},xmm29,xmm28,0x7b                       }
-testcase	{ 0x62, 0x03, 0x95, 0x17, 0x55, 0xf4, 0x7b                               }, { vfixupimmsd xmm30{k7},xmm29,xmm28,{sae},0x7b                 }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x55, 0x31, 0x7b                               }, { vfixupimmsd xmm30{k7},xmm29,QWORD [rcx],0x7b                 }
-testcase	{ 0x62, 0x23, 0x95, 0x07, 0x55, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vfixupimmsd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123],0x7b     }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x55, 0x72, 0x7f, 0x7b                         }, { vfixupimmsd xmm30{k7},xmm29,QWORD [rdx+0x3f8],0x7b           }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x55, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vfixupimmsd xmm30{k7},xmm29,QWORD [rdx+0x400],0x7b           }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x55, 0x72, 0x80, 0x7b                         }, { vfixupimmsd xmm30{k7},xmm29,QWORD [rdx-0x400],0x7b           }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x55, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vfixupimmsd xmm30{k7},xmm29,QWORD [rdx-0x408],0x7b           }
-testcase	{ 0x62, 0x91, 0x0d, 0x40, 0x72, 0xf5, 0xab                               }, { vpslld zmm30,zmm29,0xab                                      }
-testcase	{ 0x62, 0x91, 0x0d, 0x47, 0x72, 0xf5, 0xab                               }, { vpslld zmm30{k7},zmm29,0xab                                  }
-testcase	{ 0x62, 0x91, 0x0d, 0xc7, 0x72, 0xf5, 0xab                               }, { vpslld zmm30{k7}{z},zmm29,0xab                               }
-testcase	{ 0x62, 0x91, 0x0d, 0x40, 0x72, 0xf5, 0x7b                               }, { vpslld zmm30,zmm29,0x7b                                      }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x31, 0x7b                               }, { vpslld zmm30,ZWORD [rcx],0x7b                                }
-testcase	{ 0x62, 0xb1, 0x0d, 0x40, 0x72, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpslld zmm30,ZWORD [rax+r14*8+0x123],0x7b                    }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x31, 0x7b                               }, { vpslld zmm30,DWORD [rcx]{1to16},0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x72, 0x7f, 0x7b                         }, { vpslld zmm30,ZWORD [rdx+0x1fc0],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpslld zmm30,ZWORD [rdx+0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x72, 0x80, 0x7b                         }, { vpslld zmm30,ZWORD [rdx-0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpslld zmm30,ZWORD [rdx-0x2040],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x72, 0x7f, 0x7b                         }, { vpslld zmm30,DWORD [rdx+0x1fc]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vpslld zmm30,DWORD [rdx+0x200]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x72, 0x80, 0x7b                         }, { vpslld zmm30,DWORD [rdx-0x200]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vpslld zmm30,DWORD [rdx-0x204]{1to16},0x7b                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0x73, 0xf5, 0xab                               }, { vpsllq zmm30,zmm29,0xab                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0x73, 0xf5, 0xab                               }, { vpsllq zmm30{k7},zmm29,0xab                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0xc7, 0x73, 0xf5, 0xab                               }, { vpsllq zmm30{k7}{z},zmm29,0xab                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0x73, 0xf5, 0x7b                               }, { vpsllq zmm30,zmm29,0x7b                                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x73, 0x31, 0x7b                               }, { vpsllq zmm30,ZWORD [rcx],0x7b                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0x73, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpsllq zmm30,ZWORD [rax+r14*8+0x123],0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x73, 0x31, 0x7b                               }, { vpsllq zmm30,QWORD [rcx]{1to8},0x7b                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x73, 0x72, 0x7f, 0x7b                         }, { vpsllq zmm30,ZWORD [rdx+0x1fc0],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x73, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpsllq zmm30,ZWORD [rdx+0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x73, 0x72, 0x80, 0x7b                         }, { vpsllq zmm30,ZWORD [rdx-0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x73, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpsllq zmm30,ZWORD [rdx-0x2040],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x73, 0x72, 0x7f, 0x7b                         }, { vpsllq zmm30,QWORD [rdx+0x3f8]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x73, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vpsllq zmm30,QWORD [rdx+0x400]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x73, 0x72, 0x80, 0x7b                         }, { vpsllq zmm30,QWORD [rdx-0x400]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x73, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vpsllq zmm30,QWORD [rdx-0x408]{1to8},0x7b                    }
-testcase	{ 0x62, 0x91, 0x0d, 0x40, 0x72, 0xe5, 0xab                               }, { vpsrad zmm30,zmm29,0xab                                      }
-testcase	{ 0x62, 0x91, 0x0d, 0x47, 0x72, 0xe5, 0xab                               }, { vpsrad zmm30{k7},zmm29,0xab                                  }
-testcase	{ 0x62, 0x91, 0x0d, 0xc7, 0x72, 0xe5, 0xab                               }, { vpsrad zmm30{k7}{z},zmm29,0xab                               }
-testcase	{ 0x62, 0x91, 0x0d, 0x40, 0x72, 0xe5, 0x7b                               }, { vpsrad zmm30,zmm29,0x7b                                      }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x21, 0x7b                               }, { vpsrad zmm30,ZWORD [rcx],0x7b                                }
-testcase	{ 0x62, 0xb1, 0x0d, 0x40, 0x72, 0xa4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpsrad zmm30,ZWORD [rax+r14*8+0x123],0x7b                    }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x21, 0x7b                               }, { vpsrad zmm30,DWORD [rcx]{1to16},0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x62, 0x7f, 0x7b                         }, { vpsrad zmm30,ZWORD [rdx+0x1fc0],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0xa2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpsrad zmm30,ZWORD [rdx+0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x62, 0x80, 0x7b                         }, { vpsrad zmm30,ZWORD [rdx-0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0xa2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpsrad zmm30,ZWORD [rdx-0x2040],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x62, 0x7f, 0x7b                         }, { vpsrad zmm30,DWORD [rdx+0x1fc]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0xa2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vpsrad zmm30,DWORD [rdx+0x200]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x62, 0x80, 0x7b                         }, { vpsrad zmm30,DWORD [rdx-0x200]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0xa2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vpsrad zmm30,DWORD [rdx-0x204]{1to16},0x7b                   }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0x72, 0xe5, 0xab                               }, { vpsraq zmm30,zmm29,0xab                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0x72, 0xe5, 0xab                               }, { vpsraq zmm30{k7},zmm29,0xab                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0xc7, 0x72, 0xe5, 0xab                               }, { vpsraq zmm30{k7}{z},zmm29,0xab                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0x72, 0xe5, 0x7b                               }, { vpsraq zmm30,zmm29,0x7b                                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0x21, 0x7b                               }, { vpsraq zmm30,ZWORD [rcx],0x7b                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0x72, 0xa4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vpsraq zmm30,ZWORD [rax+r14*8+0x123],0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0x21, 0x7b                               }, { vpsraq zmm30,QWORD [rcx]{1to8},0x7b                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0x62, 0x7f, 0x7b                         }, { vpsraq zmm30,ZWORD [rdx+0x1fc0],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0xa2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vpsraq zmm30,ZWORD [rdx+0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0x62, 0x80, 0x7b                         }, { vpsraq zmm30,ZWORD [rdx-0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0xa2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vpsraq zmm30,ZWORD [rdx-0x2040],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0x62, 0x7f, 0x7b                         }, { vpsraq zmm30,QWORD [rdx+0x3f8]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0xa2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vpsraq zmm30,QWORD [rdx+0x400]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0x62, 0x80, 0x7b                         }, { vpsraq zmm30,QWORD [rdx-0x400]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0xa2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vpsraq zmm30,QWORD [rdx-0x408]{1to8},0x7b                    }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x15, 0xf4                                     }, { vprolvd zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x15, 0xf4                                     }, { vprolvd zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x15, 0xf4                                     }, { vprolvd zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x15, 0x31                                     }, { vprolvd zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x15, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vprolvd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x15, 0x31                                     }, { vprolvd zmm30,zmm29,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x15, 0x72, 0x7f                               }, { vprolvd zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x15, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vprolvd zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x15, 0x72, 0x80                               }, { vprolvd zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x15, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vprolvd zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x15, 0x72, 0x7f                               }, { vprolvd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x15, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vprolvd zmm30,zmm29,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x15, 0x72, 0x80                               }, { vprolvd zmm30,zmm29,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x15, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vprolvd zmm30,zmm29,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x91, 0x0d, 0x40, 0x72, 0xcd, 0xab                               }, { vprold zmm30,zmm29,0xab                                      }
-testcase	{ 0x62, 0x91, 0x0d, 0x47, 0x72, 0xcd, 0xab                               }, { vprold zmm30{k7},zmm29,0xab                                  }
-testcase	{ 0x62, 0x91, 0x0d, 0xc7, 0x72, 0xcd, 0xab                               }, { vprold zmm30{k7}{z},zmm29,0xab                               }
-testcase	{ 0x62, 0x91, 0x0d, 0x40, 0x72, 0xcd, 0x7b                               }, { vprold zmm30,zmm29,0x7b                                      }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x09, 0x7b                               }, { vprold zmm30,ZWORD [rcx],0x7b                                }
-testcase	{ 0x62, 0xb1, 0x0d, 0x40, 0x72, 0x8c, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vprold zmm30,ZWORD [rax+r14*8+0x123],0x7b                    }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x09, 0x7b                               }, { vprold zmm30,DWORD [rcx]{1to16},0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x4a, 0x7f, 0x7b                         }, { vprold zmm30,ZWORD [rdx+0x1fc0],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x8a, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vprold zmm30,ZWORD [rdx+0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x4a, 0x80, 0x7b                         }, { vprold zmm30,ZWORD [rdx-0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x8a, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vprold zmm30,ZWORD [rdx-0x2040],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x4a, 0x7f, 0x7b                         }, { vprold zmm30,DWORD [rdx+0x1fc]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x8a, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vprold zmm30,DWORD [rdx+0x200]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x4a, 0x80, 0x7b                         }, { vprold zmm30,DWORD [rdx-0x200]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x8a, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vprold zmm30,DWORD [rdx-0x204]{1to16},0x7b                   }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x15, 0xf4                                     }, { vprolvq zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x15, 0xf4                                     }, { vprolvq zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x15, 0xf4                                     }, { vprolvq zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x15, 0x31                                     }, { vprolvq zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x15, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vprolvq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x15, 0x31                                     }, { vprolvq zmm30,zmm29,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x15, 0x72, 0x7f                               }, { vprolvq zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x15, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vprolvq zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x15, 0x72, 0x80                               }, { vprolvq zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x15, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vprolvq zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x15, 0x72, 0x7f                               }, { vprolvq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x15, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vprolvq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x15, 0x72, 0x80                               }, { vprolvq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x15, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vprolvq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0x72, 0xcd, 0xab                               }, { vprolq zmm30,zmm29,0xab                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0x72, 0xcd, 0xab                               }, { vprolq zmm30{k7},zmm29,0xab                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0xc7, 0x72, 0xcd, 0xab                               }, { vprolq zmm30{k7}{z},zmm29,0xab                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0x72, 0xcd, 0x7b                               }, { vprolq zmm30,zmm29,0x7b                                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0x09, 0x7b                               }, { vprolq zmm30,ZWORD [rcx],0x7b                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0x72, 0x8c, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vprolq zmm30,ZWORD [rax+r14*8+0x123],0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0x09, 0x7b                               }, { vprolq zmm30,QWORD [rcx]{1to8},0x7b                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0x4a, 0x7f, 0x7b                         }, { vprolq zmm30,ZWORD [rdx+0x1fc0],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0x8a, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vprolq zmm30,ZWORD [rdx+0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0x4a, 0x80, 0x7b                         }, { vprolq zmm30,ZWORD [rdx-0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0x8a, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vprolq zmm30,ZWORD [rdx-0x2040],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0x4a, 0x7f, 0x7b                         }, { vprolq zmm30,QWORD [rdx+0x3f8]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0x8a, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vprolq zmm30,QWORD [rdx+0x400]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0x4a, 0x80, 0x7b                         }, { vprolq zmm30,QWORD [rdx-0x400]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0x8a, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vprolq zmm30,QWORD [rdx-0x408]{1to8},0x7b                    }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x14, 0xf4                                     }, { vprorvd zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x14, 0xf4                                     }, { vprorvd zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x14, 0xf4                                     }, { vprorvd zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x14, 0x31                                     }, { vprorvd zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x14, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vprorvd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x14, 0x31                                     }, { vprorvd zmm30,zmm29,DWORD [rcx]{1to16}                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x14, 0x72, 0x7f                               }, { vprorvd zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x14, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vprorvd zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x14, 0x72, 0x80                               }, { vprorvd zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x14, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vprorvd zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x14, 0x72, 0x7f                               }, { vprorvd zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x14, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vprorvd zmm30,zmm29,DWORD [rdx+0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x14, 0x72, 0x80                               }, { vprorvd zmm30,zmm29,DWORD [rdx-0x200]{1to16}                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x14, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vprorvd zmm30,zmm29,DWORD [rdx-0x204]{1to16}                 }
-testcase	{ 0x62, 0x91, 0x0d, 0x40, 0x72, 0xc5, 0xab                               }, { vprord zmm30,zmm29,0xab                                      }
-testcase	{ 0x62, 0x91, 0x0d, 0x47, 0x72, 0xc5, 0xab                               }, { vprord zmm30{k7},zmm29,0xab                                  }
-testcase	{ 0x62, 0x91, 0x0d, 0xc7, 0x72, 0xc5, 0xab                               }, { vprord zmm30{k7}{z},zmm29,0xab                               }
-testcase	{ 0x62, 0x91, 0x0d, 0x40, 0x72, 0xc5, 0x7b                               }, { vprord zmm30,zmm29,0x7b                                      }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x01, 0x7b                               }, { vprord zmm30,ZWORD [rcx],0x7b                                }
-testcase	{ 0x62, 0xb1, 0x0d, 0x40, 0x72, 0x84, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vprord zmm30,ZWORD [rax+r14*8+0x123],0x7b                    }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x01, 0x7b                               }, { vprord zmm30,DWORD [rcx]{1to16},0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x42, 0x7f, 0x7b                         }, { vprord zmm30,ZWORD [rdx+0x1fc0],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x82, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vprord zmm30,ZWORD [rdx+0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x42, 0x80, 0x7b                         }, { vprord zmm30,ZWORD [rdx-0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x40, 0x72, 0x82, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vprord zmm30,ZWORD [rdx-0x2040],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x42, 0x7f, 0x7b                         }, { vprord zmm30,DWORD [rdx+0x1fc]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x82, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vprord zmm30,DWORD [rdx+0x200]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x42, 0x80, 0x7b                         }, { vprord zmm30,DWORD [rdx-0x200]{1to16},0x7b                   }
-testcase	{ 0x62, 0xf1, 0x0d, 0x50, 0x72, 0x82, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vprord zmm30,DWORD [rdx-0x204]{1to16},0x7b                   }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x14, 0xf4                                     }, { vprorvq zmm30,zmm29,zmm28                                    }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x14, 0xf4                                     }, { vprorvq zmm30{k7},zmm29,zmm28                                }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x14, 0xf4                                     }, { vprorvq zmm30{k7}{z},zmm29,zmm28                             }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x14, 0x31                                     }, { vprorvq zmm30,zmm29,ZWORD [rcx]                              }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x14, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vprorvq zmm30,zmm29,ZWORD [rax+r14*8+0x123]                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x14, 0x31                                     }, { vprorvq zmm30,zmm29,QWORD [rcx]{1to8}                        }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x14, 0x72, 0x7f                               }, { vprorvq zmm30,zmm29,ZWORD [rdx+0x1fc0]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x14, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vprorvq zmm30,zmm29,ZWORD [rdx+0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x14, 0x72, 0x80                               }, { vprorvq zmm30,zmm29,ZWORD [rdx-0x2000]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x14, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vprorvq zmm30,zmm29,ZWORD [rdx-0x2040]                       }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x14, 0x72, 0x7f                               }, { vprorvq zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x14, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vprorvq zmm30,zmm29,QWORD [rdx+0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x14, 0x72, 0x80                               }, { vprorvq zmm30,zmm29,QWORD [rdx-0x400]{1to8}                  }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x14, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vprorvq zmm30,zmm29,QWORD [rdx-0x408]{1to8}                  }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0x72, 0xc5, 0xab                               }, { vprorq zmm30,zmm29,0xab                                      }
-testcase	{ 0x62, 0x91, 0x8d, 0x47, 0x72, 0xc5, 0xab                               }, { vprorq zmm30{k7},zmm29,0xab                                  }
-testcase	{ 0x62, 0x91, 0x8d, 0xc7, 0x72, 0xc5, 0xab                               }, { vprorq zmm30{k7}{z},zmm29,0xab                               }
-testcase	{ 0x62, 0x91, 0x8d, 0x40, 0x72, 0xc5, 0x7b                               }, { vprorq zmm30,zmm29,0x7b                                      }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0x01, 0x7b                               }, { vprorq zmm30,ZWORD [rcx],0x7b                                }
-testcase	{ 0x62, 0xb1, 0x8d, 0x40, 0x72, 0x84, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vprorq zmm30,ZWORD [rax+r14*8+0x123],0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0x01, 0x7b                               }, { vprorq zmm30,QWORD [rcx]{1to8},0x7b                          }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0x42, 0x7f, 0x7b                         }, { vprorq zmm30,ZWORD [rdx+0x1fc0],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0x82, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vprorq zmm30,ZWORD [rdx+0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0x42, 0x80, 0x7b                         }, { vprorq zmm30,ZWORD [rdx-0x2000],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x40, 0x72, 0x82, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vprorq zmm30,ZWORD [rdx-0x2040],0x7b                         }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0x42, 0x7f, 0x7b                         }, { vprorq zmm30,QWORD [rdx+0x3f8]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0x82, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vprorq zmm30,QWORD [rdx+0x400]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0x42, 0x80, 0x7b                         }, { vprorq zmm30,QWORD [rdx-0x400]{1to8},0x7b                    }
-testcase	{ 0x62, 0xf1, 0x8d, 0x50, 0x72, 0x82, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vprorq zmm30,QWORD [rdx-0x408]{1to8},0x7b                    }
-testcase	{ 0x62, 0x03, 0xfd, 0x48, 0x09, 0xf5, 0xab                               }, { vrndscalepd zmm30,zmm29,0xab                                 }
-testcase	{ 0x62, 0x03, 0xfd, 0x4f, 0x09, 0xf5, 0xab                               }, { vrndscalepd zmm30{k7},zmm29,0xab                             }
-testcase	{ 0x62, 0x03, 0xfd, 0xcf, 0x09, 0xf5, 0xab                               }, { vrndscalepd zmm30{k7}{z},zmm29,0xab                          }
-testcase	{ 0x62, 0x03, 0xfd, 0x18, 0x09, 0xf5, 0xab                               }, { vrndscalepd zmm30,zmm29,{sae},0xab                           }
-testcase	{ 0x62, 0x03, 0xfd, 0x48, 0x09, 0xf5, 0x7b                               }, { vrndscalepd zmm30,zmm29,0x7b                                 }
-testcase	{ 0x62, 0x03, 0xfd, 0x18, 0x09, 0xf5, 0x7b                               }, { vrndscalepd zmm30,zmm29,{sae},0x7b                           }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x09, 0x31, 0x7b                               }, { vrndscalepd zmm30,ZWORD [rcx],0x7b                           }
-testcase	{ 0x62, 0x23, 0xfd, 0x48, 0x09, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vrndscalepd zmm30,ZWORD [rax+r14*8+0x123],0x7b               }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x09, 0x31, 0x7b                               }, { vrndscalepd zmm30,QWORD [rcx]{1to8},0x7b                     }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x09, 0x72, 0x7f, 0x7b                         }, { vrndscalepd zmm30,ZWORD [rdx+0x1fc0],0x7b                    }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x09, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vrndscalepd zmm30,ZWORD [rdx+0x2000],0x7b                    }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x09, 0x72, 0x80, 0x7b                         }, { vrndscalepd zmm30,ZWORD [rdx-0x2000],0x7b                    }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x09, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vrndscalepd zmm30,ZWORD [rdx-0x2040],0x7b                    }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x09, 0x72, 0x7f, 0x7b                         }, { vrndscalepd zmm30,QWORD [rdx+0x3f8]{1to8},0x7b               }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x09, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vrndscalepd zmm30,QWORD [rdx+0x400]{1to8},0x7b               }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x09, 0x72, 0x80, 0x7b                         }, { vrndscalepd zmm30,QWORD [rdx-0x400]{1to8},0x7b               }
-testcase	{ 0x62, 0x63, 0xfd, 0x58, 0x09, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vrndscalepd zmm30,QWORD [rdx-0x408]{1to8},0x7b               }
-testcase	{ 0x62, 0x03, 0x7d, 0x48, 0x08, 0xf5, 0xab                               }, { vrndscaleps zmm30,zmm29,0xab                                 }
-testcase	{ 0x62, 0x03, 0x7d, 0x4f, 0x08, 0xf5, 0xab                               }, { vrndscaleps zmm30{k7},zmm29,0xab                             }
-testcase	{ 0x62, 0x03, 0x7d, 0xcf, 0x08, 0xf5, 0xab                               }, { vrndscaleps zmm30{k7}{z},zmm29,0xab                          }
-testcase	{ 0x62, 0x03, 0x7d, 0x18, 0x08, 0xf5, 0xab                               }, { vrndscaleps zmm30,zmm29,{sae},0xab                           }
-testcase	{ 0x62, 0x03, 0x7d, 0x48, 0x08, 0xf5, 0x7b                               }, { vrndscaleps zmm30,zmm29,0x7b                                 }
-testcase	{ 0x62, 0x03, 0x7d, 0x18, 0x08, 0xf5, 0x7b                               }, { vrndscaleps zmm30,zmm29,{sae},0x7b                           }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x08, 0x31, 0x7b                               }, { vrndscaleps zmm30,ZWORD [rcx],0x7b                           }
-testcase	{ 0x62, 0x23, 0x7d, 0x48, 0x08, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vrndscaleps zmm30,ZWORD [rax+r14*8+0x123],0x7b               }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x08, 0x31, 0x7b                               }, { vrndscaleps zmm30,DWORD [rcx]{1to16},0x7b                    }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x08, 0x72, 0x7f, 0x7b                         }, { vrndscaleps zmm30,ZWORD [rdx+0x1fc0],0x7b                    }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x08, 0xb2, 0x00, 0x20, 0x00, 0x00, 0x7b       }, { vrndscaleps zmm30,ZWORD [rdx+0x2000],0x7b                    }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x08, 0x72, 0x80, 0x7b                         }, { vrndscaleps zmm30,ZWORD [rdx-0x2000],0x7b                    }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x08, 0xb2, 0xc0, 0xdf, 0xff, 0xff, 0x7b       }, { vrndscaleps zmm30,ZWORD [rdx-0x2040],0x7b                    }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x08, 0x72, 0x7f, 0x7b                         }, { vrndscaleps zmm30,DWORD [rdx+0x1fc]{1to16},0x7b              }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x08, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vrndscaleps zmm30,DWORD [rdx+0x200]{1to16},0x7b              }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x08, 0x72, 0x80, 0x7b                         }, { vrndscaleps zmm30,DWORD [rdx-0x200]{1to16},0x7b              }
-testcase	{ 0x62, 0x63, 0x7d, 0x58, 0x08, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vrndscaleps zmm30,DWORD [rdx-0x204]{1to16},0x7b              }
-testcase	{ 0x62, 0x03, 0x95, 0x07, 0x0b, 0xf4, 0xab                               }, { vrndscalesd xmm30{k7},xmm29,xmm28,0xab                       }
-testcase	{ 0x62, 0x03, 0x95, 0x87, 0x0b, 0xf4, 0xab                               }, { vrndscalesd xmm30{k7}{z},xmm29,xmm28,0xab                    }
-testcase	{ 0x62, 0x03, 0x95, 0x17, 0x0b, 0xf4, 0xab                               }, { vrndscalesd xmm30{k7},xmm29,xmm28,{sae},0xab                 }
-testcase	{ 0x62, 0x03, 0x95, 0x07, 0x0b, 0xf4, 0x7b                               }, { vrndscalesd xmm30{k7},xmm29,xmm28,0x7b                       }
-testcase	{ 0x62, 0x03, 0x95, 0x17, 0x0b, 0xf4, 0x7b                               }, { vrndscalesd xmm30{k7},xmm29,xmm28,{sae},0x7b                 }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x0b, 0x31, 0x7b                               }, { vrndscalesd xmm30{k7},xmm29,QWORD [rcx],0x7b                 }
-testcase	{ 0x62, 0x23, 0x95, 0x07, 0x0b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vrndscalesd xmm30{k7},xmm29,QWORD [rax+r14*8+0x123],0x7b     }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x0b, 0x72, 0x7f, 0x7b                         }, { vrndscalesd xmm30{k7},xmm29,QWORD [rdx+0x3f8],0x7b           }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x0b, 0xb2, 0x00, 0x04, 0x00, 0x00, 0x7b       }, { vrndscalesd xmm30{k7},xmm29,QWORD [rdx+0x400],0x7b           }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x0b, 0x72, 0x80, 0x7b                         }, { vrndscalesd xmm30{k7},xmm29,QWORD [rdx-0x400],0x7b           }
-testcase	{ 0x62, 0x63, 0x95, 0x07, 0x0b, 0xb2, 0xf8, 0xfb, 0xff, 0xff, 0x7b       }, { vrndscalesd xmm30{k7},xmm29,QWORD [rdx-0x408],0x7b           }
-testcase	{ 0x62, 0x03, 0x15, 0x07, 0x0a, 0xf4, 0xab                               }, { vrndscaless xmm30{k7},xmm29,xmm28,0xab                       }
-testcase	{ 0x62, 0x03, 0x15, 0x87, 0x0a, 0xf4, 0xab                               }, { vrndscaless xmm30{k7}{z},xmm29,xmm28,0xab                    }
-testcase	{ 0x62, 0x03, 0x15, 0x17, 0x0a, 0xf4, 0xab                               }, { vrndscaless xmm30{k7},xmm29,xmm28,{sae},0xab                 }
-testcase	{ 0x62, 0x03, 0x15, 0x07, 0x0a, 0xf4, 0x7b                               }, { vrndscaless xmm30{k7},xmm29,xmm28,0x7b                       }
-testcase	{ 0x62, 0x03, 0x15, 0x17, 0x0a, 0xf4, 0x7b                               }, { vrndscaless xmm30{k7},xmm29,xmm28,{sae},0x7b                 }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x0a, 0x31, 0x7b                               }, { vrndscaless xmm30{k7},xmm29,DWORD [rcx],0x7b                 }
-testcase	{ 0x62, 0x23, 0x15, 0x07, 0x0a, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vrndscaless xmm30{k7},xmm29,DWORD [rax+r14*8+0x123],0x7b     }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x0a, 0x72, 0x7f, 0x7b                         }, { vrndscaless xmm30{k7},xmm29,DWORD [rdx+0x1fc],0x7b           }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x0a, 0xb2, 0x00, 0x02, 0x00, 0x00, 0x7b       }, { vrndscaless xmm30{k7},xmm29,DWORD [rdx+0x200],0x7b           }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x0a, 0x72, 0x80, 0x7b                         }, { vrndscaless xmm30{k7},xmm29,DWORD [rdx-0x200],0x7b           }
-testcase	{ 0x62, 0x63, 0x15, 0x07, 0x0a, 0xb2, 0xfc, 0xfd, 0xff, 0xff, 0x7b       }, { vrndscaless xmm30{k7},xmm29,DWORD [rdx-0x204],0x7b           }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x8b, 0x31                                     }, { vpcompressq ZWORD [rcx],zmm30                                }
-testcase	{ 0x62, 0x62, 0xfd, 0x4f, 0x8b, 0x31                                     }, { vpcompressq ZWORD [rcx]{k7},zmm30                            }
-testcase	{ 0x62, 0x22, 0xfd, 0x48, 0x8b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpcompressq ZWORD [rax+r14*8+0x123],zmm30                    }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x8b, 0x72, 0x7f                               }, { vpcompressq ZWORD [rdx+0x3f8],zmm30                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x8b, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpcompressq ZWORD [rdx+0x400],zmm30                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x8b, 0x72, 0x80                               }, { vpcompressq ZWORD [rdx-0x400],zmm30                          }
-testcase	{ 0x62, 0x62, 0xfd, 0x48, 0x8b, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpcompressq ZWORD [rdx-0x408],zmm30                          }
-testcase	{ 0x62, 0x02, 0xfd, 0x48, 0x8b, 0xee                                     }, { vpcompressq zmm30,zmm29                                      }
-testcase	{ 0x62, 0x02, 0xfd, 0x4f, 0x8b, 0xee                                     }, { vpcompressq zmm30{k7},zmm29                                  }
-testcase	{ 0x62, 0x02, 0xfd, 0xcf, 0x8b, 0xee                                     }, { vpcompressq zmm30{k7}{z},zmm29                               }
-testcase	{ 0xc5, 0xcc, 0x41, 0xef                                                 }, { kandw  k5,k6,k7                                              }
-testcase	{ 0xc5, 0xcc, 0x42, 0xef                                                 }, { kandnw k5,k6,k7                                              }
-testcase	{ 0xc5, 0xcc, 0x45, 0xef                                                 }, { korw   k5,k6,k7                                              }
-testcase	{ 0xc5, 0xcc, 0x46, 0xef                                                 }, { kxnorw k5,k6,k7                                              }
-testcase	{ 0xc5, 0xcc, 0x47, 0xef                                                 }, { kxorw  k5,k6,k7                                              }
-testcase	{ 0xc5, 0xf8, 0x44, 0xee                                                 }, { knotw  k5,k6                                                 }
-testcase	{ 0xc5, 0xf8, 0x98, 0xee                                                 }, { kortestw k5,k6                                               }
-testcase	{ 0xc4, 0xe3, 0xf9, 0x30, 0xee, 0xab                                     }, { kshiftrw k5,k6,0xab                                          }
-testcase	{ 0xc4, 0xe3, 0xf9, 0x30, 0xee, 0x7b                                     }, { kshiftrw k5,k6,0x7b                                          }
-testcase	{ 0xc4, 0xe3, 0xf9, 0x32, 0xee, 0xab                                     }, { kshiftlw k5,k6,0xab                                          }
-testcase	{ 0xc4, 0xe3, 0xf9, 0x32, 0xee, 0x7b                                     }, { kshiftlw k5,k6,0x7b                                          }
-testcase	{ 0xc5, 0xf8, 0x90, 0xee                                                 }, { kmovw  k5,k6                                                 }
-testcase	{ 0xc5, 0xf8, 0x90, 0x29                                                 }, { kmovw  k5,WORD [rcx]                                         }
-testcase	{ 0xc4, 0xa1, 0x78, 0x90, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00             }, { kmovw  k5,WORD [rax+r14*8+0x123]                             }
-testcase	{ 0xc5, 0xf8, 0x91, 0x29                                                 }, { kmovw  WORD [rcx],k5                                         }
-testcase	{ 0xc4, 0xa1, 0x78, 0x91, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00             }, { kmovw  WORD [rax+r14*8+0x123],k5                             }
-testcase	{ 0xc5, 0xf8, 0x92, 0xe8                                                 }, { kmovw  k5,eax                                                }
-testcase	{ 0xc5, 0xf8, 0x92, 0xed                                                 }, { kmovw  k5,ebp                                                }
-testcase	{ 0xc4, 0xc1, 0x78, 0x92, 0xed                                           }, { kmovw  k5,r13d                                               }
-testcase	{ 0xc5, 0xf8, 0x93, 0xc5                                                 }, { kmovw  eax,k5                                                }
-testcase	{ 0xc5, 0xf8, 0x93, 0xed                                                 }, { kmovw  ebp,k5                                                }
-testcase	{ 0xc5, 0x78, 0x93, 0xed                                                 }, { kmovw  r13d,k5                                               }
-testcase	{ 0xc5, 0xcd, 0x4b, 0xef                                                 }, { kunpckbw k5,k6,k7                                            }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x1d, 0x31, 0xab                               }, { vcvtps2ph YWORD [rcx],zmm30,0xab                             }
-testcase	{ 0x62, 0x63, 0x7d, 0x4f, 0x1d, 0x31, 0xab                               }, { vcvtps2ph YWORD [rcx]{k7},zmm30,0xab                         }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x1d, 0x31, 0x7b                               }, { vcvtps2ph YWORD [rcx],zmm30,0x7b                             }
-testcase	{ 0x62, 0x23, 0x7d, 0x48, 0x1d, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vcvtps2ph YWORD [rax+r14*8+0x123],zmm30,0x7b                 }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x1d, 0x72, 0x7f, 0x7b                         }, { vcvtps2ph YWORD [rdx+0xfe0],zmm30,0x7b                       }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x1d, 0xb2, 0x00, 0x10, 0x00, 0x00, 0x7b       }, { vcvtps2ph YWORD [rdx+0x1000],zmm30,0x7b                      }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x1d, 0x72, 0x80, 0x7b                         }, { vcvtps2ph YWORD [rdx-0x1000],zmm30,0x7b                      }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x1d, 0xb2, 0xe0, 0xef, 0xff, 0xff, 0x7b       }, { vcvtps2ph YWORD [rdx-0x1020],zmm30,0x7b                      }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x19, 0x31, 0xab                               }, { vextractf32x4 OWORD [rcx],zmm30,0xab                         }
-testcase	{ 0x62, 0x63, 0x7d, 0x4f, 0x19, 0x31, 0xab                               }, { vextractf32x4 OWORD [rcx]{k7},zmm30,0xab                     }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x19, 0x31, 0x7b                               }, { vextractf32x4 OWORD [rcx],zmm30,0x7b                         }
-testcase	{ 0x62, 0x23, 0x7d, 0x48, 0x19, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vextractf32x4 OWORD [rax+r14*8+0x123],zmm30,0x7b             }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x19, 0x72, 0x7f, 0x7b                         }, { vextractf32x4 OWORD [rdx+0x7f0],zmm30,0x7b                   }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x19, 0xb2, 0x00, 0x08, 0x00, 0x00, 0x7b       }, { vextractf32x4 OWORD [rdx+0x800],zmm30,0x7b                   }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x19, 0x72, 0x80, 0x7b                         }, { vextractf32x4 OWORD [rdx-0x800],zmm30,0x7b                   }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x19, 0xb2, 0xf0, 0xf7, 0xff, 0xff, 0x7b       }, { vextractf32x4 OWORD [rdx-0x810],zmm30,0x7b                   }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x1b, 0x31, 0xab                               }, { vextractf64x4 YWORD [rcx],zmm30,0xab                         }
-testcase	{ 0x62, 0x63, 0xfd, 0x4f, 0x1b, 0x31, 0xab                               }, { vextractf64x4 YWORD [rcx]{k7},zmm30,0xab                     }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x1b, 0x31, 0x7b                               }, { vextractf64x4 YWORD [rcx],zmm30,0x7b                         }
-testcase	{ 0x62, 0x23, 0xfd, 0x48, 0x1b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vextractf64x4 YWORD [rax+r14*8+0x123],zmm30,0x7b             }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x1b, 0x72, 0x7f, 0x7b                         }, { vextractf64x4 YWORD [rdx+0xfe0],zmm30,0x7b                   }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x1b, 0xb2, 0x00, 0x10, 0x00, 0x00, 0x7b       }, { vextractf64x4 YWORD [rdx+0x1000],zmm30,0x7b                  }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x1b, 0x72, 0x80, 0x7b                         }, { vextractf64x4 YWORD [rdx-0x1000],zmm30,0x7b                  }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x1b, 0xb2, 0xe0, 0xef, 0xff, 0xff, 0x7b       }, { vextractf64x4 YWORD [rdx-0x1020],zmm30,0x7b                  }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x39, 0x31, 0xab                               }, { vextracti32x4 OWORD [rcx],zmm30,0xab                         }
-testcase	{ 0x62, 0x63, 0x7d, 0x4f, 0x39, 0x31, 0xab                               }, { vextracti32x4 OWORD [rcx]{k7},zmm30,0xab                     }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x39, 0x31, 0x7b                               }, { vextracti32x4 OWORD [rcx],zmm30,0x7b                         }
-testcase	{ 0x62, 0x23, 0x7d, 0x48, 0x39, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vextracti32x4 OWORD [rax+r14*8+0x123],zmm30,0x7b             }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x39, 0x72, 0x7f, 0x7b                         }, { vextracti32x4 OWORD [rdx+0x7f0],zmm30,0x7b                   }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x39, 0xb2, 0x00, 0x08, 0x00, 0x00, 0x7b       }, { vextracti32x4 OWORD [rdx+0x800],zmm30,0x7b                   }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x39, 0x72, 0x80, 0x7b                         }, { vextracti32x4 OWORD [rdx-0x800],zmm30,0x7b                   }
-testcase	{ 0x62, 0x63, 0x7d, 0x48, 0x39, 0xb2, 0xf0, 0xf7, 0xff, 0xff, 0x7b       }, { vextracti32x4 OWORD [rdx-0x810],zmm30,0x7b                   }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x3b, 0x31, 0xab                               }, { vextracti64x4 YWORD [rcx],zmm30,0xab                         }
-testcase	{ 0x62, 0x63, 0xfd, 0x4f, 0x3b, 0x31, 0xab                               }, { vextracti64x4 YWORD [rcx]{k7},zmm30,0xab                     }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x3b, 0x31, 0x7b                               }, { vextracti64x4 YWORD [rcx],zmm30,0x7b                         }
-testcase	{ 0x62, 0x23, 0xfd, 0x48, 0x3b, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00, 0x7b }, { vextracti64x4 YWORD [rax+r14*8+0x123],zmm30,0x7b             }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x3b, 0x72, 0x7f, 0x7b                         }, { vextracti64x4 YWORD [rdx+0xfe0],zmm30,0x7b                   }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x3b, 0xb2, 0x00, 0x10, 0x00, 0x00, 0x7b       }, { vextracti64x4 YWORD [rdx+0x1000],zmm30,0x7b                  }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x3b, 0x72, 0x80, 0x7b                         }, { vextracti64x4 YWORD [rdx-0x1000],zmm30,0x7b                  }
-testcase	{ 0x62, 0x63, 0xfd, 0x48, 0x3b, 0xb2, 0xe0, 0xef, 0xff, 0xff, 0x7b       }, { vextracti64x4 YWORD [rdx-0x1020],zmm30,0x7b                  }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x29, 0x31                                     }, { vmovapd ZWORD [rcx],zmm30                                    }
-testcase	{ 0x62, 0x61, 0xfd, 0x4f, 0x29, 0x31                                     }, { vmovapd ZWORD [rcx]{k7},zmm30                                }
-testcase	{ 0x62, 0x21, 0xfd, 0x48, 0x29, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovapd ZWORD [rax+r14*8+0x123],zmm30                        }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x29, 0x72, 0x7f                               }, { vmovapd ZWORD [rdx+0x1fc0],zmm30                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x29, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovapd ZWORD [rdx+0x2000],zmm30                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x29, 0x72, 0x80                               }, { vmovapd ZWORD [rdx-0x2000],zmm30                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x29, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovapd ZWORD [rdx-0x2040],zmm30                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x29, 0x31                                     }, { vmovaps ZWORD [rcx],zmm30                                    }
-testcase	{ 0x62, 0x61, 0x7c, 0x4f, 0x29, 0x31                                     }, { vmovaps ZWORD [rcx]{k7},zmm30                                }
-testcase	{ 0x62, 0x21, 0x7c, 0x48, 0x29, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovaps ZWORD [rax+r14*8+0x123],zmm30                        }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x29, 0x72, 0x7f                               }, { vmovaps ZWORD [rdx+0x1fc0],zmm30                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x29, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovaps ZWORD [rdx+0x2000],zmm30                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x29, 0x72, 0x80                               }, { vmovaps ZWORD [rdx-0x2000],zmm30                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x29, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovaps ZWORD [rdx-0x2040],zmm30                             }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x7f, 0x31                                     }, { vmovdqa32 ZWORD [rcx],zmm30                                  }
-testcase	{ 0x62, 0x61, 0x7d, 0x4f, 0x7f, 0x31                                     }, { vmovdqa32 ZWORD [rcx]{k7},zmm30                              }
-testcase	{ 0x62, 0x21, 0x7d, 0x48, 0x7f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovdqa32 ZWORD [rax+r14*8+0x123],zmm30                      }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x7f, 0x72, 0x7f                               }, { vmovdqa32 ZWORD [rdx+0x1fc0],zmm30                           }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x7f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovdqa32 ZWORD [rdx+0x2000],zmm30                           }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x7f, 0x72, 0x80                               }, { vmovdqa32 ZWORD [rdx-0x2000],zmm30                           }
-testcase	{ 0x62, 0x61, 0x7d, 0x48, 0x7f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovdqa32 ZWORD [rdx-0x2040],zmm30                           }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x7f, 0x31                                     }, { vmovdqa64 ZWORD [rcx],zmm30                                  }
-testcase	{ 0x62, 0x61, 0xfd, 0x4f, 0x7f, 0x31                                     }, { vmovdqa64 ZWORD [rcx]{k7},zmm30                              }
-testcase	{ 0x62, 0x21, 0xfd, 0x48, 0x7f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovdqa64 ZWORD [rax+r14*8+0x123],zmm30                      }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x7f, 0x72, 0x7f                               }, { vmovdqa64 ZWORD [rdx+0x1fc0],zmm30                           }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x7f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovdqa64 ZWORD [rdx+0x2000],zmm30                           }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x7f, 0x72, 0x80                               }, { vmovdqa64 ZWORD [rdx-0x2000],zmm30                           }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x7f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovdqa64 ZWORD [rdx-0x2040],zmm30                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x7f, 0x31                                     }, { vmovdqu32 ZWORD [rcx],zmm30                                  }
-testcase	{ 0x62, 0x61, 0x7e, 0x4f, 0x7f, 0x31                                     }, { vmovdqu32 ZWORD [rcx]{k7},zmm30                              }
-testcase	{ 0x62, 0x21, 0x7e, 0x48, 0x7f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovdqu32 ZWORD [rax+r14*8+0x123],zmm30                      }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x7f, 0x72, 0x7f                               }, { vmovdqu32 ZWORD [rdx+0x1fc0],zmm30                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x7f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovdqu32 ZWORD [rdx+0x2000],zmm30                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x7f, 0x72, 0x80                               }, { vmovdqu32 ZWORD [rdx-0x2000],zmm30                           }
-testcase	{ 0x62, 0x61, 0x7e, 0x48, 0x7f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovdqu32 ZWORD [rdx-0x2040],zmm30                           }
-testcase	{ 0x62, 0x61, 0xfe, 0x48, 0x7f, 0x31                                     }, { vmovdqu64 ZWORD [rcx],zmm30                                  }
-testcase	{ 0x62, 0x61, 0xfe, 0x4f, 0x7f, 0x31                                     }, { vmovdqu64 ZWORD [rcx]{k7},zmm30                              }
-testcase	{ 0x62, 0x21, 0xfe, 0x48, 0x7f, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovdqu64 ZWORD [rax+r14*8+0x123],zmm30                      }
-testcase	{ 0x62, 0x61, 0xfe, 0x48, 0x7f, 0x72, 0x7f                               }, { vmovdqu64 ZWORD [rdx+0x1fc0],zmm30                           }
-testcase	{ 0x62, 0x61, 0xfe, 0x48, 0x7f, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovdqu64 ZWORD [rdx+0x2000],zmm30                           }
-testcase	{ 0x62, 0x61, 0xfe, 0x48, 0x7f, 0x72, 0x80                               }, { vmovdqu64 ZWORD [rdx-0x2000],zmm30                           }
-testcase	{ 0x62, 0x61, 0xfe, 0x48, 0x7f, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovdqu64 ZWORD [rdx-0x2040],zmm30                           }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x11, 0x31                                     }, { vmovupd ZWORD [rcx],zmm30                                    }
-testcase	{ 0x62, 0x61, 0xfd, 0x4f, 0x11, 0x31                                     }, { vmovupd ZWORD [rcx]{k7},zmm30                                }
-testcase	{ 0x62, 0x21, 0xfd, 0x48, 0x11, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovupd ZWORD [rax+r14*8+0x123],zmm30                        }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x11, 0x72, 0x7f                               }, { vmovupd ZWORD [rdx+0x1fc0],zmm30                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x11, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovupd ZWORD [rdx+0x2000],zmm30                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x11, 0x72, 0x80                               }, { vmovupd ZWORD [rdx-0x2000],zmm30                             }
-testcase	{ 0x62, 0x61, 0xfd, 0x48, 0x11, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovupd ZWORD [rdx-0x2040],zmm30                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x11, 0x31                                     }, { vmovups ZWORD [rcx],zmm30                                    }
-testcase	{ 0x62, 0x61, 0x7c, 0x4f, 0x11, 0x31                                     }, { vmovups ZWORD [rcx]{k7},zmm30                                }
-testcase	{ 0x62, 0x21, 0x7c, 0x48, 0x11, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vmovups ZWORD [rax+r14*8+0x123],zmm30                        }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x11, 0x72, 0x7f                               }, { vmovups ZWORD [rdx+0x1fc0],zmm30                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x11, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vmovups ZWORD [rdx+0x2000],zmm30                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x11, 0x72, 0x80                               }, { vmovups ZWORD [rdx-0x2000],zmm30                             }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x11, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vmovups ZWORD [rdx-0x2040],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x32, 0x31                                     }, { vpmovqb QWORD [rcx],zmm30                                    }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x32, 0x31                                     }, { vpmovqb QWORD [rcx]{k7},zmm30                                }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x32, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovqb QWORD [rax+r14*8+0x123],zmm30                        }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x32, 0x72, 0x7f                               }, { vpmovqb QWORD [rdx+0x3f8],zmm30                              }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x32, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpmovqb QWORD [rdx+0x400],zmm30                              }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x32, 0x72, 0x80                               }, { vpmovqb QWORD [rdx-0x400],zmm30                              }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x32, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpmovqb QWORD [rdx-0x408],zmm30                              }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x22, 0x31                                     }, { vpmovsqb QWORD [rcx],zmm30                                   }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x22, 0x31                                     }, { vpmovsqb QWORD [rcx]{k7},zmm30                               }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x22, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovsqb QWORD [rax+r14*8+0x123],zmm30                       }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x22, 0x72, 0x7f                               }, { vpmovsqb QWORD [rdx+0x3f8],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x22, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpmovsqb QWORD [rdx+0x400],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x22, 0x72, 0x80                               }, { vpmovsqb QWORD [rdx-0x400],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x22, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpmovsqb QWORD [rdx-0x408],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x12, 0x31                                     }, { vpmovusqb QWORD [rcx],zmm30                                  }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x12, 0x31                                     }, { vpmovusqb QWORD [rcx]{k7},zmm30                              }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x12, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovusqb QWORD [rax+r14*8+0x123],zmm30                      }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x12, 0x72, 0x7f                               }, { vpmovusqb QWORD [rdx+0x3f8],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x12, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpmovusqb QWORD [rdx+0x400],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x12, 0x72, 0x80                               }, { vpmovusqb QWORD [rdx-0x400],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x12, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpmovusqb QWORD [rdx-0x408],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x34, 0x31                                     }, { vpmovqw OWORD [rcx],zmm30                                    }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x34, 0x31                                     }, { vpmovqw OWORD [rcx]{k7},zmm30                                }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x34, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovqw OWORD [rax+r14*8+0x123],zmm30                        }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x34, 0x72, 0x7f                               }, { vpmovqw OWORD [rdx+0x7f0],zmm30                              }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x34, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpmovqw OWORD [rdx+0x800],zmm30                              }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x34, 0x72, 0x80                               }, { vpmovqw OWORD [rdx-0x800],zmm30                              }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x34, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpmovqw OWORD [rdx-0x810],zmm30                              }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x24, 0x31                                     }, { vpmovsqw OWORD [rcx],zmm30                                   }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x24, 0x31                                     }, { vpmovsqw OWORD [rcx]{k7},zmm30                               }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x24, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovsqw OWORD [rax+r14*8+0x123],zmm30                       }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x24, 0x72, 0x7f                               }, { vpmovsqw OWORD [rdx+0x7f0],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x24, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpmovsqw OWORD [rdx+0x800],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x24, 0x72, 0x80                               }, { vpmovsqw OWORD [rdx-0x800],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x24, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpmovsqw OWORD [rdx-0x810],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x14, 0x31                                     }, { vpmovusqw OWORD [rcx],zmm30                                  }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x14, 0x31                                     }, { vpmovusqw OWORD [rcx]{k7},zmm30                              }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x14, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovusqw OWORD [rax+r14*8+0x123],zmm30                      }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x14, 0x72, 0x7f                               }, { vpmovusqw OWORD [rdx+0x7f0],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x14, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpmovusqw OWORD [rdx+0x800],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x14, 0x72, 0x80                               }, { vpmovusqw OWORD [rdx-0x800],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x14, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpmovusqw OWORD [rdx-0x810],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x35, 0x31                                     }, { vpmovqd YWORD [rcx],zmm30                                    }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x35, 0x31                                     }, { vpmovqd YWORD [rcx]{k7},zmm30                                }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x35, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovqd YWORD [rax+r14*8+0x123],zmm30                        }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x35, 0x72, 0x7f                               }, { vpmovqd YWORD [rdx+0xfe0],zmm30                              }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x35, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vpmovqd YWORD [rdx+0x1000],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x35, 0x72, 0x80                               }, { vpmovqd YWORD [rdx-0x1000],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x35, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vpmovqd YWORD [rdx-0x1020],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x25, 0x31                                     }, { vpmovsqd YWORD [rcx],zmm30                                   }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x25, 0x31                                     }, { vpmovsqd YWORD [rcx]{k7},zmm30                               }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x25, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovsqd YWORD [rax+r14*8+0x123],zmm30                       }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x25, 0x72, 0x7f                               }, { vpmovsqd YWORD [rdx+0xfe0],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x25, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vpmovsqd YWORD [rdx+0x1000],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x25, 0x72, 0x80                               }, { vpmovsqd YWORD [rdx-0x1000],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x25, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vpmovsqd YWORD [rdx-0x1020],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x15, 0x31                                     }, { vpmovusqd YWORD [rcx],zmm30                                  }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x15, 0x31                                     }, { vpmovusqd YWORD [rcx]{k7},zmm30                              }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x15, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovusqd YWORD [rax+r14*8+0x123],zmm30                      }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x15, 0x72, 0x7f                               }, { vpmovusqd YWORD [rdx+0xfe0],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x15, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vpmovusqd YWORD [rdx+0x1000],zmm30                           }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x15, 0x72, 0x80                               }, { vpmovusqd YWORD [rdx-0x1000],zmm30                           }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x15, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vpmovusqd YWORD [rdx-0x1020],zmm30                           }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x31, 0x31                                     }, { vpmovdb OWORD [rcx],zmm30                                    }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x31, 0x31                                     }, { vpmovdb OWORD [rcx]{k7},zmm30                                }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x31, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovdb OWORD [rax+r14*8+0x123],zmm30                        }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x31, 0x72, 0x7f                               }, { vpmovdb OWORD [rdx+0x7f0],zmm30                              }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x31, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpmovdb OWORD [rdx+0x800],zmm30                              }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x31, 0x72, 0x80                               }, { vpmovdb OWORD [rdx-0x800],zmm30                              }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x31, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpmovdb OWORD [rdx-0x810],zmm30                              }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x21, 0x31                                     }, { vpmovsdb OWORD [rcx],zmm30                                   }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x21, 0x31                                     }, { vpmovsdb OWORD [rcx]{k7},zmm30                               }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x21, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovsdb OWORD [rax+r14*8+0x123],zmm30                       }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x21, 0x72, 0x7f                               }, { vpmovsdb OWORD [rdx+0x7f0],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x21, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpmovsdb OWORD [rdx+0x800],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x21, 0x72, 0x80                               }, { vpmovsdb OWORD [rdx-0x800],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x21, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpmovsdb OWORD [rdx-0x810],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x11, 0x31                                     }, { vpmovusdb OWORD [rcx],zmm30                                  }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x11, 0x31                                     }, { vpmovusdb OWORD [rcx]{k7},zmm30                              }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x11, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovusdb OWORD [rax+r14*8+0x123],zmm30                      }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x11, 0x72, 0x7f                               }, { vpmovusdb OWORD [rdx+0x7f0],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x11, 0xb2, 0x00, 0x08, 0x00, 0x00             }, { vpmovusdb OWORD [rdx+0x800],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x11, 0x72, 0x80                               }, { vpmovusdb OWORD [rdx-0x800],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x11, 0xb2, 0xf0, 0xf7, 0xff, 0xff             }, { vpmovusdb OWORD [rdx-0x810],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x33, 0x31                                     }, { vpmovdw YWORD [rcx],zmm30                                    }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x33, 0x31                                     }, { vpmovdw YWORD [rcx]{k7},zmm30                                }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x33, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovdw YWORD [rax+r14*8+0x123],zmm30                        }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x33, 0x72, 0x7f                               }, { vpmovdw YWORD [rdx+0xfe0],zmm30                              }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x33, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vpmovdw YWORD [rdx+0x1000],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x33, 0x72, 0x80                               }, { vpmovdw YWORD [rdx-0x1000],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x33, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vpmovdw YWORD [rdx-0x1020],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x23, 0x31                                     }, { vpmovsdw YWORD [rcx],zmm30                                   }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x23, 0x31                                     }, { vpmovsdw YWORD [rcx]{k7},zmm30                               }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x23, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovsdw YWORD [rax+r14*8+0x123],zmm30                       }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x23, 0x72, 0x7f                               }, { vpmovsdw YWORD [rdx+0xfe0],zmm30                             }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x23, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vpmovsdw YWORD [rdx+0x1000],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x23, 0x72, 0x80                               }, { vpmovsdw YWORD [rdx-0x1000],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x23, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vpmovsdw YWORD [rdx-0x1020],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x13, 0x31                                     }, { vpmovusdw YWORD [rcx],zmm30                                  }
-testcase	{ 0x62, 0x62, 0x7e, 0x4f, 0x13, 0x31                                     }, { vpmovusdw YWORD [rcx]{k7},zmm30                              }
-testcase	{ 0x62, 0x22, 0x7e, 0x48, 0x13, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpmovusdw YWORD [rax+r14*8+0x123],zmm30                      }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x13, 0x72, 0x7f                               }, { vpmovusdw YWORD [rdx+0xfe0],zmm30                            }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x13, 0xb2, 0x00, 0x10, 0x00, 0x00             }, { vpmovusdw YWORD [rdx+0x1000],zmm30                           }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x13, 0x72, 0x80                               }, { vpmovusdw YWORD [rdx-0x1000],zmm30                           }
-testcase	{ 0x62, 0x62, 0x7e, 0x48, 0x13, 0xb2, 0xe0, 0xef, 0xff, 0xff             }, { vpmovusdw YWORD [rdx-0x1020],zmm30                           }
-testcase	{ 0x62, 0x01, 0xfc, 0x4f, 0x78, 0xf5                                     }, { vcvttpd2udq ymm30{k7},zmm29                                  }
-testcase	{ 0x62, 0x01, 0xfc, 0xcf, 0x78, 0xf5                                     }, { vcvttpd2udq ymm30{k7}{z},zmm29                               }
-testcase	{ 0x62, 0x01, 0xfc, 0x1f, 0x78, 0xf5                                     }, { vcvttpd2udq ymm30{k7},zmm29,{sae}                            }
-testcase	{ 0x62, 0x61, 0xfc, 0x4f, 0x78, 0x31                                     }, { vcvttpd2udq ymm30{k7},ZWORD [rcx]                            }
-testcase	{ 0x62, 0x21, 0xfc, 0x4f, 0x78, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvttpd2udq ymm30{k7},ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x61, 0xfc, 0x5f, 0x78, 0x31                                     }, { vcvttpd2udq ymm30{k7},QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0x61, 0xfc, 0x4f, 0x78, 0x72, 0x7f                               }, { vcvttpd2udq ymm30{k7},ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x61, 0xfc, 0x4f, 0x78, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vcvttpd2udq ymm30{k7},ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x61, 0xfc, 0x4f, 0x78, 0x72, 0x80                               }, { vcvttpd2udq ymm30{k7},ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x61, 0xfc, 0x4f, 0x78, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vcvttpd2udq ymm30{k7},ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x61, 0xfc, 0x5f, 0x78, 0x72, 0x7f                               }, { vcvttpd2udq ymm30{k7},QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0x61, 0xfc, 0x5f, 0x78, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vcvttpd2udq ymm30{k7},QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0x61, 0xfc, 0x5f, 0x78, 0x72, 0x80                               }, { vcvttpd2udq ymm30{k7},QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0x61, 0xfc, 0x5f, 0x78, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vcvttpd2udq ymm30{k7},QWORD [rdx-0x408]{1to8}                }
-testcase	{ 0x62, 0x01, 0x7c, 0x48, 0x78, 0xf5                                     }, { vcvttps2udq zmm30,zmm29                                      }
-testcase	{ 0x62, 0x01, 0x7c, 0x4f, 0x78, 0xf5                                     }, { vcvttps2udq zmm30{k7},zmm29                                  }
-testcase	{ 0x62, 0x01, 0x7c, 0xcf, 0x78, 0xf5                                     }, { vcvttps2udq zmm30{k7}{z},zmm29                               }
-testcase	{ 0x62, 0x01, 0x7c, 0x18, 0x78, 0xf5                                     }, { vcvttps2udq zmm30,zmm29,{sae}                                }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x78, 0x31                                     }, { vcvttps2udq zmm30,ZWORD [rcx]                                }
-testcase	{ 0x62, 0x21, 0x7c, 0x48, 0x78, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvttps2udq zmm30,ZWORD [rax+r14*8+0x123]                    }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x78, 0x31                                     }, { vcvttps2udq zmm30,DWORD [rcx]{1to16}                         }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x78, 0x72, 0x7f                               }, { vcvttps2udq zmm30,ZWORD [rdx+0x1fc0]                         }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x78, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vcvttps2udq zmm30,ZWORD [rdx+0x2000]                         }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x78, 0x72, 0x80                               }, { vcvttps2udq zmm30,ZWORD [rdx-0x2000]                         }
-testcase	{ 0x62, 0x61, 0x7c, 0x48, 0x78, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vcvttps2udq zmm30,ZWORD [rdx-0x2040]                         }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x78, 0x72, 0x7f                               }, { vcvttps2udq zmm30,DWORD [rdx+0x1fc]{1to16}                   }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x78, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vcvttps2udq zmm30,DWORD [rdx+0x200]{1to16}                   }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x78, 0x72, 0x80                               }, { vcvttps2udq zmm30,DWORD [rdx-0x200]{1to16}                   }
-testcase	{ 0x62, 0x61, 0x7c, 0x58, 0x78, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vcvttps2udq zmm30,DWORD [rdx-0x204]{1to16}                   }
-testcase	{ 0x62, 0x91, 0x7f, 0x08, 0x78, 0xc6                                     }, { vcvttsd2usi eax,xmm30                                        }
-testcase	{ 0x62, 0x91, 0x7f, 0x18, 0x78, 0xc6                                     }, { vcvttsd2usi eax,xmm30,{sae}                                  }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x78, 0x01                                     }, { vcvttsd2usi eax,QWORD [rcx]                                  }
-testcase	{ 0x62, 0xb1, 0x7f, 0x08, 0x78, 0x84, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvttsd2usi eax,QWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x78, 0x42, 0x7f                               }, { vcvttsd2usi eax,QWORD [rdx+0x3f8]                            }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x78, 0x82, 0x00, 0x04, 0x00, 0x00             }, { vcvttsd2usi eax,QWORD [rdx+0x400]                            }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x78, 0x42, 0x80                               }, { vcvttsd2usi eax,QWORD [rdx-0x400]                            }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x78, 0x82, 0xf8, 0xfb, 0xff, 0xff             }, { vcvttsd2usi eax,QWORD [rdx-0x408]                            }
-testcase	{ 0x62, 0x91, 0x7f, 0x08, 0x78, 0xee                                     }, { vcvttsd2usi ebp,xmm30                                        }
-testcase	{ 0x62, 0x91, 0x7f, 0x18, 0x78, 0xee                                     }, { vcvttsd2usi ebp,xmm30,{sae}                                  }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x78, 0x29                                     }, { vcvttsd2usi ebp,QWORD [rcx]                                  }
-testcase	{ 0x62, 0xb1, 0x7f, 0x08, 0x78, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvttsd2usi ebp,QWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x78, 0x6a, 0x7f                               }, { vcvttsd2usi ebp,QWORD [rdx+0x3f8]                            }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x78, 0xaa, 0x00, 0x04, 0x00, 0x00             }, { vcvttsd2usi ebp,QWORD [rdx+0x400]                            }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x78, 0x6a, 0x80                               }, { vcvttsd2usi ebp,QWORD [rdx-0x400]                            }
-testcase	{ 0x62, 0xf1, 0x7f, 0x08, 0x78, 0xaa, 0xf8, 0xfb, 0xff, 0xff             }, { vcvttsd2usi ebp,QWORD [rdx-0x408]                            }
-testcase	{ 0x62, 0x11, 0x7f, 0x08, 0x78, 0xee                                     }, { vcvttsd2usi r13d,xmm30                                       }
-testcase	{ 0x62, 0x11, 0x7f, 0x18, 0x78, 0xee                                     }, { vcvttsd2usi r13d,xmm30,{sae}                                 }
-testcase	{ 0x62, 0x71, 0x7f, 0x08, 0x78, 0x29                                     }, { vcvttsd2usi r13d,QWORD [rcx]                                 }
-testcase	{ 0x62, 0x31, 0x7f, 0x08, 0x78, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvttsd2usi r13d,QWORD [rax+r14*8+0x123]                     }
-testcase	{ 0x62, 0x71, 0x7f, 0x08, 0x78, 0x6a, 0x7f                               }, { vcvttsd2usi r13d,QWORD [rdx+0x3f8]                           }
-testcase	{ 0x62, 0x71, 0x7f, 0x08, 0x78, 0xaa, 0x00, 0x04, 0x00, 0x00             }, { vcvttsd2usi r13d,QWORD [rdx+0x400]                           }
-testcase	{ 0x62, 0x71, 0x7f, 0x08, 0x78, 0x6a, 0x80                               }, { vcvttsd2usi r13d,QWORD [rdx-0x400]                           }
-testcase	{ 0x62, 0x71, 0x7f, 0x08, 0x78, 0xaa, 0xf8, 0xfb, 0xff, 0xff             }, { vcvttsd2usi r13d,QWORD [rdx-0x408]                           }
-testcase	{ 0x62, 0x91, 0xff, 0x08, 0x78, 0xc6                                     }, { vcvttsd2usi rax,xmm30                                        }
-testcase	{ 0x62, 0x91, 0xff, 0x18, 0x78, 0xc6                                     }, { vcvttsd2usi rax,xmm30,{sae}                                  }
-testcase	{ 0x62, 0xf1, 0xff, 0x08, 0x78, 0x01                                     }, { vcvttsd2usi rax,QWORD [rcx]                                  }
-testcase	{ 0x62, 0xb1, 0xff, 0x08, 0x78, 0x84, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvttsd2usi rax,QWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0xf1, 0xff, 0x08, 0x78, 0x42, 0x7f                               }, { vcvttsd2usi rax,QWORD [rdx+0x3f8]                            }
-testcase	{ 0x62, 0xf1, 0xff, 0x08, 0x78, 0x82, 0x00, 0x04, 0x00, 0x00             }, { vcvttsd2usi rax,QWORD [rdx+0x400]                            }
-testcase	{ 0x62, 0xf1, 0xff, 0x08, 0x78, 0x42, 0x80                               }, { vcvttsd2usi rax,QWORD [rdx-0x400]                            }
-testcase	{ 0x62, 0xf1, 0xff, 0x08, 0x78, 0x82, 0xf8, 0xfb, 0xff, 0xff             }, { vcvttsd2usi rax,QWORD [rdx-0x408]                            }
-testcase	{ 0x62, 0x11, 0xff, 0x08, 0x78, 0xc6                                     }, { vcvttsd2usi r8,xmm30                                         }
-testcase	{ 0x62, 0x11, 0xff, 0x18, 0x78, 0xc6                                     }, { vcvttsd2usi r8,xmm30,{sae}                                   }
-testcase	{ 0x62, 0x71, 0xff, 0x08, 0x78, 0x01                                     }, { vcvttsd2usi r8,QWORD [rcx]                                   }
-testcase	{ 0x62, 0x31, 0xff, 0x08, 0x78, 0x84, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvttsd2usi r8,QWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0x71, 0xff, 0x08, 0x78, 0x42, 0x7f                               }, { vcvttsd2usi r8,QWORD [rdx+0x3f8]                             }
-testcase	{ 0x62, 0x71, 0xff, 0x08, 0x78, 0x82, 0x00, 0x04, 0x00, 0x00             }, { vcvttsd2usi r8,QWORD [rdx+0x400]                             }
-testcase	{ 0x62, 0x71, 0xff, 0x08, 0x78, 0x42, 0x80                               }, { vcvttsd2usi r8,QWORD [rdx-0x400]                             }
-testcase	{ 0x62, 0x71, 0xff, 0x08, 0x78, 0x82, 0xf8, 0xfb, 0xff, 0xff             }, { vcvttsd2usi r8,QWORD [rdx-0x408]                             }
-testcase	{ 0x62, 0x91, 0x7e, 0x08, 0x78, 0xc6                                     }, { vcvttss2usi eax,xmm30                                        }
-testcase	{ 0x62, 0x91, 0x7e, 0x18, 0x78, 0xc6                                     }, { vcvttss2usi eax,xmm30,{sae}                                  }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x78, 0x01                                     }, { vcvttss2usi eax,DWORD [rcx]                                  }
-testcase	{ 0x62, 0xb1, 0x7e, 0x08, 0x78, 0x84, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvttss2usi eax,DWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x78, 0x42, 0x7f                               }, { vcvttss2usi eax,DWORD [rdx+0x1fc]                            }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x78, 0x82, 0x00, 0x02, 0x00, 0x00             }, { vcvttss2usi eax,DWORD [rdx+0x200]                            }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x78, 0x42, 0x80                               }, { vcvttss2usi eax,DWORD [rdx-0x200]                            }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x78, 0x82, 0xfc, 0xfd, 0xff, 0xff             }, { vcvttss2usi eax,DWORD [rdx-0x204]                            }
-testcase	{ 0x62, 0x91, 0x7e, 0x08, 0x78, 0xee                                     }, { vcvttss2usi ebp,xmm30                                        }
-testcase	{ 0x62, 0x91, 0x7e, 0x18, 0x78, 0xee                                     }, { vcvttss2usi ebp,xmm30,{sae}                                  }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x78, 0x29                                     }, { vcvttss2usi ebp,DWORD [rcx]                                  }
-testcase	{ 0x62, 0xb1, 0x7e, 0x08, 0x78, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvttss2usi ebp,DWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x78, 0x6a, 0x7f                               }, { vcvttss2usi ebp,DWORD [rdx+0x1fc]                            }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x78, 0xaa, 0x00, 0x02, 0x00, 0x00             }, { vcvttss2usi ebp,DWORD [rdx+0x200]                            }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x78, 0x6a, 0x80                               }, { vcvttss2usi ebp,DWORD [rdx-0x200]                            }
-testcase	{ 0x62, 0xf1, 0x7e, 0x08, 0x78, 0xaa, 0xfc, 0xfd, 0xff, 0xff             }, { vcvttss2usi ebp,DWORD [rdx-0x204]                            }
-testcase	{ 0x62, 0x11, 0x7e, 0x08, 0x78, 0xee                                     }, { vcvttss2usi r13d,xmm30                                       }
-testcase	{ 0x62, 0x11, 0x7e, 0x18, 0x78, 0xee                                     }, { vcvttss2usi r13d,xmm30,{sae}                                 }
-testcase	{ 0x62, 0x71, 0x7e, 0x08, 0x78, 0x29                                     }, { vcvttss2usi r13d,DWORD [rcx]                                 }
-testcase	{ 0x62, 0x31, 0x7e, 0x08, 0x78, 0xac, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvttss2usi r13d,DWORD [rax+r14*8+0x123]                     }
-testcase	{ 0x62, 0x71, 0x7e, 0x08, 0x78, 0x6a, 0x7f                               }, { vcvttss2usi r13d,DWORD [rdx+0x1fc]                           }
-testcase	{ 0x62, 0x71, 0x7e, 0x08, 0x78, 0xaa, 0x00, 0x02, 0x00, 0x00             }, { vcvttss2usi r13d,DWORD [rdx+0x200]                           }
-testcase	{ 0x62, 0x71, 0x7e, 0x08, 0x78, 0x6a, 0x80                               }, { vcvttss2usi r13d,DWORD [rdx-0x200]                           }
-testcase	{ 0x62, 0x71, 0x7e, 0x08, 0x78, 0xaa, 0xfc, 0xfd, 0xff, 0xff             }, { vcvttss2usi r13d,DWORD [rdx-0x204]                           }
-testcase	{ 0x62, 0x91, 0xfe, 0x08, 0x78, 0xc6                                     }, { vcvttss2usi rax,xmm30                                        }
-testcase	{ 0x62, 0x91, 0xfe, 0x18, 0x78, 0xc6                                     }, { vcvttss2usi rax,xmm30,{sae}                                  }
-testcase	{ 0x62, 0xf1, 0xfe, 0x08, 0x78, 0x01                                     }, { vcvttss2usi rax,DWORD [rcx]                                  }
-testcase	{ 0x62, 0xb1, 0xfe, 0x08, 0x78, 0x84, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvttss2usi rax,DWORD [rax+r14*8+0x123]                      }
-testcase	{ 0x62, 0xf1, 0xfe, 0x08, 0x78, 0x42, 0x7f                               }, { vcvttss2usi rax,DWORD [rdx+0x1fc]                            }
-testcase	{ 0x62, 0xf1, 0xfe, 0x08, 0x78, 0x82, 0x00, 0x02, 0x00, 0x00             }, { vcvttss2usi rax,DWORD [rdx+0x200]                            }
-testcase	{ 0x62, 0xf1, 0xfe, 0x08, 0x78, 0x42, 0x80                               }, { vcvttss2usi rax,DWORD [rdx-0x200]                            }
-testcase	{ 0x62, 0xf1, 0xfe, 0x08, 0x78, 0x82, 0xfc, 0xfd, 0xff, 0xff             }, { vcvttss2usi rax,DWORD [rdx-0x204]                            }
-testcase	{ 0x62, 0x11, 0xfe, 0x08, 0x78, 0xc6                                     }, { vcvttss2usi r8,xmm30                                         }
-testcase	{ 0x62, 0x11, 0xfe, 0x18, 0x78, 0xc6                                     }, { vcvttss2usi r8,xmm30,{sae}                                   }
-testcase	{ 0x62, 0x71, 0xfe, 0x08, 0x78, 0x01                                     }, { vcvttss2usi r8,DWORD [rcx]                                   }
-testcase	{ 0x62, 0x31, 0xfe, 0x08, 0x78, 0x84, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vcvttss2usi r8,DWORD [rax+r14*8+0x123]                       }
-testcase	{ 0x62, 0x71, 0xfe, 0x08, 0x78, 0x42, 0x7f                               }, { vcvttss2usi r8,DWORD [rdx+0x1fc]                             }
-testcase	{ 0x62, 0x71, 0xfe, 0x08, 0x78, 0x82, 0x00, 0x02, 0x00, 0x00             }, { vcvttss2usi r8,DWORD [rdx+0x200]                             }
-testcase	{ 0x62, 0x71, 0xfe, 0x08, 0x78, 0x42, 0x80                               }, { vcvttss2usi r8,DWORD [rdx-0x200]                             }
-testcase	{ 0x62, 0x71, 0xfe, 0x08, 0x78, 0x82, 0xfc, 0xfd, 0xff, 0xff             }, { vcvttss2usi r8,DWORD [rdx-0x204]                             }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x76, 0xf4                                     }, { vpermi2d zmm30,zmm29,zmm28                                   }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x76, 0xf4                                     }, { vpermi2d zmm30{k7},zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x76, 0xf4                                     }, { vpermi2d zmm30{k7}{z},zmm29,zmm28                            }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x76, 0x31                                     }, { vpermi2d zmm30,zmm29,ZWORD [rcx]                             }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x76, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpermi2d zmm30,zmm29,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x76, 0x31                                     }, { vpermi2d zmm30,zmm29,DWORD [rcx]{1to16}                      }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x76, 0x72, 0x7f                               }, { vpermi2d zmm30,zmm29,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x76, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpermi2d zmm30,zmm29,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x76, 0x72, 0x80                               }, { vpermi2d zmm30,zmm29,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x76, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpermi2d zmm30,zmm29,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x76, 0x72, 0x7f                               }, { vpermi2d zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x76, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpermi2d zmm30,zmm29,DWORD [rdx+0x200]{1to16}                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x76, 0x72, 0x80                               }, { vpermi2d zmm30,zmm29,DWORD [rdx-0x200]{1to16}                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x76, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpermi2d zmm30,zmm29,DWORD [rdx-0x204]{1to16}                }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x76, 0xf4                                     }, { vpermi2q zmm30,zmm29,zmm28                                   }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x76, 0xf4                                     }, { vpermi2q zmm30{k7},zmm29,zmm28                               }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x76, 0xf4                                     }, { vpermi2q zmm30{k7}{z},zmm29,zmm28                            }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x76, 0x31                                     }, { vpermi2q zmm30,zmm29,ZWORD [rcx]                             }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x76, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpermi2q zmm30,zmm29,ZWORD [rax+r14*8+0x123]                 }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x76, 0x31                                     }, { vpermi2q zmm30,zmm29,QWORD [rcx]{1to8}                       }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x76, 0x72, 0x7f                               }, { vpermi2q zmm30,zmm29,ZWORD [rdx+0x1fc0]                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x76, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpermi2q zmm30,zmm29,ZWORD [rdx+0x2000]                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x76, 0x72, 0x80                               }, { vpermi2q zmm30,zmm29,ZWORD [rdx-0x2000]                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x76, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpermi2q zmm30,zmm29,ZWORD [rdx-0x2040]                      }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x76, 0x72, 0x7f                               }, { vpermi2q zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                 }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x76, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpermi2q zmm30,zmm29,QWORD [rdx+0x400]{1to8}                 }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x76, 0x72, 0x80                               }, { vpermi2q zmm30,zmm29,QWORD [rdx-0x400]{1to8}                 }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x76, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpermi2q zmm30,zmm29,QWORD [rdx-0x408]{1to8}                 }
-testcase	{ 0x62, 0x02, 0x15, 0x40, 0x77, 0xf4                                     }, { vpermi2ps zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x02, 0x15, 0x47, 0x77, 0xf4                                     }, { vpermi2ps zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x02, 0x15, 0xc7, 0x77, 0xf4                                     }, { vpermi2ps zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x77, 0x31                                     }, { vpermi2ps zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x22, 0x15, 0x40, 0x77, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpermi2ps zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x77, 0x31                                     }, { vpermi2ps zmm30,zmm29,DWORD [rcx]{1to16}                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x77, 0x72, 0x7f                               }, { vpermi2ps zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x77, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpermi2ps zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x77, 0x72, 0x80                               }, { vpermi2ps zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x40, 0x77, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpermi2ps zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x77, 0x72, 0x7f                               }, { vpermi2ps zmm30,zmm29,DWORD [rdx+0x1fc]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x77, 0xb2, 0x00, 0x02, 0x00, 0x00             }, { vpermi2ps zmm30,zmm29,DWORD [rdx+0x200]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x77, 0x72, 0x80                               }, { vpermi2ps zmm30,zmm29,DWORD [rdx-0x200]{1to16}               }
-testcase	{ 0x62, 0x62, 0x15, 0x50, 0x77, 0xb2, 0xfc, 0xfd, 0xff, 0xff             }, { vpermi2ps zmm30,zmm29,DWORD [rdx-0x204]{1to16}               }
-testcase	{ 0x62, 0x02, 0x95, 0x40, 0x77, 0xf4                                     }, { vpermi2pd zmm30,zmm29,zmm28                                  }
-testcase	{ 0x62, 0x02, 0x95, 0x47, 0x77, 0xf4                                     }, { vpermi2pd zmm30{k7},zmm29,zmm28                              }
-testcase	{ 0x62, 0x02, 0x95, 0xc7, 0x77, 0xf4                                     }, { vpermi2pd zmm30{k7}{z},zmm29,zmm28                           }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x77, 0x31                                     }, { vpermi2pd zmm30,zmm29,ZWORD [rcx]                            }
-testcase	{ 0x62, 0x22, 0x95, 0x40, 0x77, 0xb4, 0xf0, 0x23, 0x01, 0x00, 0x00       }, { vpermi2pd zmm30,zmm29,ZWORD [rax+r14*8+0x123]                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x77, 0x31                                     }, { vpermi2pd zmm30,zmm29,QWORD [rcx]{1to8}                      }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x77, 0x72, 0x7f                               }, { vpermi2pd zmm30,zmm29,ZWORD [rdx+0x1fc0]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x77, 0xb2, 0x00, 0x20, 0x00, 0x00             }, { vpermi2pd zmm30,zmm29,ZWORD [rdx+0x2000]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x77, 0x72, 0x80                               }, { vpermi2pd zmm30,zmm29,ZWORD [rdx-0x2000]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x40, 0x77, 0xb2, 0xc0, 0xdf, 0xff, 0xff             }, { vpermi2pd zmm30,zmm29,ZWORD [rdx-0x2040]                     }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x77, 0x72, 0x7f                               }, { vpermi2pd zmm30,zmm29,QWORD [rdx+0x3f8]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x77, 0xb2, 0x00, 0x04, 0x00, 0x00             }, { vpermi2pd zmm30,zmm29,QWORD [rdx+0x400]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x77, 0x72, 0x80                               }, { vpermi2pd zmm30,zmm29,QWORD [rdx-0x400]{1to8}                }
-testcase	{ 0x62, 0x62, 0x95, 0x50, 0x77, 0xb2, 0xf8, 0xfb, 0xff, 0xff             }, { vpermi2pd zmm30,zmm29,QWORD [rdx-0x408]{1to8}                }
--- a/nasmbuild/nasm-2.13rc9/test/avx512pf.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-;Testname=avx512pf; Arguments=-fbin -oavx512pf.bin -O0 -DSRC; Files=stdout stderr avx512pf.bin
-; AVX-512PF testcases from gas
-;------------------------
-;
-; This file is taken from there
-;     https://gnu.googlesource.com/binutils/+/master/gas/testsuite/gas/i386/x86-64-avx512pf-intel.d
-; So the original author is "H.J. Lu" <hongjiu dot lu at intel dot com>
-;
-; Jin Kyu Song converted it for the nasm testing suite using gas2nasm.py
-
-%macro testcase 2
- %ifdef BIN
-  db %1
- %endif
- %ifdef SRC
-  %2
- %endif
-%endmacro
-
-
-bits 64
-
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc6, 0x8c, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf0dpd  [r14+ymm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc6, 0x8c, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf0dpd  [r14+ymm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc6, 0x4c, 0x39, 0x20                         }, { vgatherpf0dpd  [r9+ymm31*1+0x100]{k1}                        }
-testcase	{ 0x62, 0xb2, 0xfd, 0x41, 0xc6, 0x8c, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vgatherpf0dpd  [rcx+ymm31*4+0x400]{k1}                       }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc6, 0x8c, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf0dps  [r14+zmm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc6, 0x8c, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf0dps  [r14+zmm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc6, 0x4c, 0x39, 0x40                         }, { vgatherpf0dps  [r9+zmm31*1+0x100]{k1}                        }
-testcase	{ 0x62, 0xb2, 0x7d, 0x41, 0xc6, 0x8c, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vgatherpf0dps  [rcx+zmm31*4+0x400]{k1}                       }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc7, 0x8c, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf0qpd  [r14+zmm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc7, 0x8c, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf0qpd  [r14+zmm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc7, 0x4c, 0x39, 0x20                         }, { vgatherpf0qpd  [r9+zmm31*1+0x100]{k1}                        }
-testcase	{ 0x62, 0xb2, 0xfd, 0x41, 0xc7, 0x8c, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vgatherpf0qpd  [rcx+zmm31*4+0x400]{k1}                       }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc7, 0x8c, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf0qps  [r14+zmm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc7, 0x8c, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf0qps  [r14+zmm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc7, 0x4c, 0x39, 0x40                         }, { vgatherpf0qps  [r9+zmm31*1+0x100]{k1}                        }
-testcase	{ 0x62, 0xb2, 0x7d, 0x41, 0xc7, 0x8c, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vgatherpf0qps  [rcx+zmm31*4+0x400]{k1}                       }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc6, 0x94, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf1dpd  [r14+ymm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc6, 0x94, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf1dpd  [r14+ymm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc6, 0x54, 0x39, 0x20                         }, { vgatherpf1dpd  [r9+ymm31*1+0x100]{k1}                        }
-testcase	{ 0x62, 0xb2, 0xfd, 0x41, 0xc6, 0x94, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vgatherpf1dpd  [rcx+ymm31*4+0x400]{k1}                       }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc6, 0x94, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf1dps  [r14+zmm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc6, 0x94, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf1dps  [r14+zmm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc6, 0x54, 0x39, 0x40                         }, { vgatherpf1dps  [r9+zmm31*1+0x100]{k1}                        }
-testcase	{ 0x62, 0xb2, 0x7d, 0x41, 0xc6, 0x94, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vgatherpf1dps  [rcx+zmm31*4+0x400]{k1}                       }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc7, 0x94, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf1qpd  [r14+zmm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc7, 0x94, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf1qpd  [r14+zmm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc7, 0x54, 0x39, 0x20                         }, { vgatherpf1qpd  [r9+zmm31*1+0x100]{k1}                        }
-testcase	{ 0x62, 0xb2, 0xfd, 0x41, 0xc7, 0x94, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vgatherpf1qpd  [rcx+zmm31*4+0x400]{k1}                       }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc7, 0x94, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf1qps  [r14+zmm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc7, 0x94, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vgatherpf1qps  [r14+zmm31*8+0x7b]{k1}                        }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc7, 0x54, 0x39, 0x40                         }, { vgatherpf1qps  [r9+zmm31*1+0x100]{k1}                        }
-testcase	{ 0x62, 0xb2, 0x7d, 0x41, 0xc7, 0x94, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vgatherpf1qps  [rcx+zmm31*4+0x400]{k1}                       }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc6, 0xac, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf0dpd  [r14+ymm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc6, 0xac, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf0dpd  [r14+ymm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc6, 0x6c, 0x39, 0x20                         }, { vscatterpf0dpd  [r9+ymm31*1+0x100]{k1}                       }
-testcase	{ 0x62, 0xb2, 0xfd, 0x41, 0xc6, 0xac, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vscatterpf0dpd  [rcx+ymm31*4+0x400]{k1}                      }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc6, 0xac, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf0dps  [r14+zmm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc6, 0xac, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf0dps  [r14+zmm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc6, 0x6c, 0x39, 0x40                         }, { vscatterpf0dps  [r9+zmm31*1+0x100]{k1}                       }
-testcase	{ 0x62, 0xb2, 0x7d, 0x41, 0xc6, 0xac, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vscatterpf0dps  [rcx+zmm31*4+0x400]{k1}                      }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc7, 0xac, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf0qpd  [r14+zmm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc7, 0xac, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf0qpd  [r14+zmm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc7, 0x6c, 0x39, 0x20                         }, { vscatterpf0qpd  [r9+zmm31*1+0x100]{k1}                       }
-testcase	{ 0x62, 0xb2, 0xfd, 0x41, 0xc7, 0xac, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vscatterpf0qpd  [rcx+zmm31*4+0x400]{k1}                      }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc7, 0xac, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf0qps  [r14+zmm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc7, 0xac, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf0qps  [r14+zmm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc7, 0x6c, 0x39, 0x40                         }, { vscatterpf0qps  [r9+zmm31*1+0x100]{k1}                       }
-testcase	{ 0x62, 0xb2, 0x7d, 0x41, 0xc7, 0xac, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vscatterpf0qps  [rcx+zmm31*4+0x400]{k1}                      }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc6, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf1dpd  [r14+ymm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc6, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf1dpd  [r14+ymm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc6, 0x74, 0x39, 0x20                         }, { vscatterpf1dpd  [r9+ymm31*1+0x100]{k1}                       }
-testcase	{ 0x62, 0xb2, 0xfd, 0x41, 0xc6, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vscatterpf1dpd  [rcx+ymm31*4+0x400]{k1}                      }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc6, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf1dps  [r14+zmm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc6, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf1dps  [r14+zmm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc6, 0x74, 0x39, 0x40                         }, { vscatterpf1dps  [r9+zmm31*1+0x100]{k1}                       }
-testcase	{ 0x62, 0xb2, 0x7d, 0x41, 0xc6, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vscatterpf1dps  [rcx+zmm31*4+0x400]{k1}                      }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc7, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf1qpd  [r14+zmm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc7, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf1qpd  [r14+zmm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0xfd, 0x41, 0xc7, 0x74, 0x39, 0x20                         }, { vscatterpf1qpd  [r9+zmm31*1+0x100]{k1}                       }
-testcase	{ 0x62, 0xb2, 0xfd, 0x41, 0xc7, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vscatterpf1qpd  [rcx+zmm31*4+0x400]{k1}                      }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc7, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf1qps  [r14+zmm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc7, 0xb4, 0xfe, 0x7b, 0x00, 0x00, 0x00       }, { vscatterpf1qps  [r14+zmm31*8+0x7b]{k1}                       }
-testcase	{ 0x62, 0x92, 0x7d, 0x41, 0xc7, 0x74, 0x39, 0x40                         }, { vscatterpf1qps  [r9+zmm31*1+0x100]{k1}                       }
-testcase	{ 0x62, 0xb2, 0x7d, 0x41, 0xc7, 0xb4, 0xb9, 0x00, 0x04, 0x00, 0x00       }, { vscatterpf1qps  [rcx+zmm31*4+0x400]{k1}                      }
-testcase	{ 0x0f, 0x0d, 0x11                                                       }, { prefetchwt1 BYTE [rcx]                                       }
-testcase	{ 0x42, 0x0f, 0x0d, 0x94, 0xf0, 0x23, 0x01, 0x00, 0x00                   }, { prefetchwt1 BYTE [rax+r14*8+0x123]                           }
--- a/nasmbuild/nasm-2.13rc9/test/bcd.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-;Testname=optimized; Arguments=-Ox -fbin -obcd.bin; Files=stdout stderr bcd.bin
-
-	dt 765432109876543210p
-	dt -765432109876543210p
-	dt +765432109876543210p
-	dt 123p
-	dt -456p
-	dt +789p
-	dt 98765432109876543210p
-	dt 123.0
-	dt 0x123p+44
-	dt 789p
-
-	dt 0p765432109876543210
-	dt -0p765432109876543210
-	dt +0p765432109876543210
-	dt 0p123
-	dt -0p456
-	dt +0p789
-	dt 0p98765432109876543210
-	dt 123.0
-	dt 0x123p+44
-	dt 0p789
--- a/nasmbuild/nasm-2.13rc9/test/binexe.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -obinexe.exe -i../misc/; Files=stdout stderr binexe.exe
-;Testname=optimized;   Arguments=-Ox -fbin -obinexe.exe -i../misc/; Files=stdout stderr binexe.exe
-
-; Demonstration of how to write an entire .EXE format program by using
-; the `exebin.mac' macro package.
-; To build:
-;    nasm -fbin binexe.asm -o binexe.exe -ipath
-; (where `path' is such as to allow the %include directive to find
-; exebin.mac)
-; To test:
-;    binexe
-; (should print `hello, world')
-
-%include "exebin.mac"
-
-	  EXE_begin
-	  EXE_stack 64		; demonstrates overriding the 0x800 default
-
-	  section .text
-
-	  mov ax,cs
-	  mov ds,ax
-
-	  mov dx,hello
-	  mov ah,9
-	  int 0x21
-
-	  mov ax,0x4c00
-	  int 0x21
-
-	  section .data
-
-hello:	  db 'hello, world', 13, 10, '$'
-
-	  EXE_end
--- a/nasmbuild/nasm-2.13rc9/test/bintest.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -obintest.bin; Files=stdout stderr bintest.bin
-;Testname=optimized;   Arguments=-Ox -fbin -obintest.bin; Files=stdout stderr bintest.bin
-
-; test source file for assembling to binary files
-; build with:
-;    nasm -f bin -o bintest.com bintest.asm
-
-; When run (as a DOS .COM file), this program should print
-;    hello, world
-; on two successive lines, then exit cleanly.
-
-; This file should test the following:
-; [1] Define a text-section symbol
-; [2] Define a data-section symbol
-; [3] Define a BSS-section symbol
-; [4] Define a NASM local label
-; [5] Reference a NASM local label
-; [6] Reference a text-section symbol in the text section
-; [7] Reference a data-section symbol in the text section
-; [8] Reference a BSS-section symbol in the text section
-; [9] Reference a text-section symbol in the data section
-; [10] Reference a data-section symbol in the data section
-; [11] Reference a BSS-section symbol in the data section
-
-	  BITS 16
-	  ORG 0x100
-
-	  SECTION .text
-
-	  jmp start		; [6]
-
-endX	  mov ax,0x4c00		; [1]
-	  int 0x21
-
-start	  mov byte [bss_sym],',' ; [1] [8]
-	  mov bx,[bssptr]	; [7]
-	  mov al,[bx]
-	  mov bx,[dataptr]	; [7]
-	  mov [bx],al
-	  mov cx,2
-.loop	  mov dx,datasym	; [1] [4] [7]
-	  mov ah,9
-	  push cx
-	  int 0x21
-	  pop cx
-	  loop .loop		; [5] [6]
-	  mov bx,[textptr]	; [7]
-	  jmp bx
-
-	  SECTION .data
-
-datasym	  db 'hello  world', 13, 10, '$' ; [2]
-bssptr	  dw bss_sym		; [2] [11]
-dataptr	  dw datasym+5		; [2] [10]
-textptr	  dw endX		; [2] [9]
-
-	  SECTION .bss
-
-bss_sym	  resb 1		; [3]
--- a/nasmbuild/nasm-2.13rc9/test/bisect.sh	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-#!/bin/sh
-
-# Usage:
-
-# Make a test and a golden file, read ./performtest.pl --help
-
-# cd nasm
-# cp -r test somewhere (copy test dir out of the tree)
-# git bisect start HEAD nasm-2.07 (where HEAD is bad and nasm-2.07 is good)
-# git bisect run somewhere/test/bisect.sh br2148476 (what you want to test)
-
-# Done
-
-
-# Slow but sure
-./autogen.sh
-./configure
-make
-
-NASMDIR=$(pwd)
-cd $(dirname "$0")
-./performtest.pl "--nasm=$NASMDIR/nasm" "$1.asm" --verbose
--- a/nasmbuild/nasm-2.13rc9/test/br1879590.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -obr1879590.bin; Files=stdout stderr br1879590.bin
-;Testname=optimized;   Arguments=-Ox -fbin -obr1879590.bin; Files=stdout stderr br1879590.bin
-
-	bits 32
-
-	pavgb mm0,[ebx]
-	pavgb mm0,qword [ebx]
-	pavgw mm0,[ebx]
-	pavgw mm0,qword [ebx]
-	pavgb xmm0,[ebx]
-	pavgb xmm0,oword [ebx]
-	pavgw xmm0,[ebx]
-	pavgw xmm0,oword [ebx]
-
-	bits 64
-
-	pavgb mm0,[rbx]
-	pavgb mm0,qword [rbx]
-	pavgw mm0,[rbx]
-	pavgw mm0,qword [rbx]
-	pavgb xmm0,[rbx]
-	pavgb xmm0,oword [rbx]
-	pavgw xmm0,[rbx]
-	pavgw xmm0,oword [rbx]
-
--- a/nasmbuild/nasm-2.13rc9/test/br2003451.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-;Testname=optimized; Arguments=-Ox -fbin -obr2003451.bin; Files=stdout stderr br2003451.bin
-
-	cpu 8086
-	org 0
-
-	; MOV r/m16,imm16
-	; (imm16 given as number)
-	mov word [bx], 10h
-
-	; MOV r/m16,imm16
-	; (imm16 given as label)
-	mov word [bx], label
-
-	align 10h
-
-	; This label is at address 10h
-label:
--- a/nasmbuild/nasm-2.13rc9/test/br2030823.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-;Testname=optimized; Arguments=-Ox -fbin -obr2030823.bin; Files=stdout stderr br2030823.bin
-
-bits 64
-	VFMADDPD xmm0, xmm1, [0], xmm3
-	VFMADDPD xmm0, xmm1, xmm2, [0]
-	VFMADDPD ymm0, ymm1, [0], ymm3
-	VFMADDPD ymm0, ymm1, ymm2, [0]
--- a/nasmbuild/nasm-2.13rc9/test/br2148476.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,221 +0,0 @@
-;Testname=test; Arguments=-fbin -obr2148476.bin; Files=stdout stderr br2148476.bin
-
-	bits 64
-
-	cvtdq2pd xmm0, xmm1
-	cvtdq2pd xmm0, [rdi]
-	cvtdq2pd xmm0, qword [rdi]
-
-	cvtdq2ps xmm0, xmm1
-	cvtdq2ps xmm0, [rdi]
-	cvtdq2ps xmm0, oword [rdi]
-
-	cvtpd2dq xmm0, xmm1
-	cvtpd2dq xmm0, [rdi]
-	cvtpd2dq xmm0, oword [rdi]
-
-	cvtpd2pi mm0, xmm1
-	cvtpd2pi mm0, [rdi]
-	cvtpd2pi mm0, oword [rdi]
-
-	cvtpd2ps xmm0, xmm1
-	cvtpd2ps xmm0, [rdi]
-	cvtpd2ps xmm0, oword [rdi]
-
-	cvtpi2pd xmm0, mm1
-	cvtpi2pd xmm0, [rdi]
-	cvtpi2pd xmm0, qword [rdi]
-
-	cvtpi2ps xmm0, mm1
-	cvtpi2ps xmm0, [rdi]
-	cvtpi2ps xmm0, qword [rdi]
-
-	cvtps2dq xmm0, xmm1
-	cvtps2dq xmm0, [rdi]
-	cvtps2dq xmm0, oword [rdi]
-
-	cvtps2pd xmm0, xmm1
-	cvtps2pd xmm0, [rdi]
-	cvtps2pd xmm0, qword [rdi]
-
-	cvtps2pi mm0, xmm1
-	cvtps2pi mm0, [rdi]
-	cvtps2pi mm0, qword [rdi]
-
-	cvtsd2si eax, xmm1
-	cvtsd2si eax, [rdi]
-	cvtsd2si eax, qword [rdi]
-	cvtsd2si rax, xmm1
-	cvtsd2si rax, [rdi]
-	cvtsd2si rax, qword [rdi]
-
-	cvtsd2ss xmm0, xmm1
-	cvtsd2ss xmm0, [rdi]
-	cvtsd2ss xmm0, qword [rdi]
-
-	cvtsi2sd xmm0, eax
-	cvtsi2sd xmm0, [rdi]	; Compatibility
-	cvtsi2sd xmm0, dword [rdi]
-	cvtsi2sd xmm0, rax
-	cvtsi2sd xmm0, qword [rdi]
-
-	cvtsi2ss xmm0, eax
-	cvtsi2ss xmm0, [rdi]	; Compatibility
-	cvtsi2ss xmm0, dword [rdi]
-	cvtsi2ss xmm0, rax
-	cvtsi2ss xmm0, qword [rdi]
-
-	cvtss2sd xmm0, xmm1
-	cvtss2sd xmm0, [rdi]
-	cvtss2sd xmm0, dword [rdi]
-
-	cvtss2si eax, xmm1
-	cvtss2si eax, [rdi]
-	cvtss2si eax, dword [rdi]
-	cvtss2si rax, xmm1
-	cvtss2si rax, [rdi]
-	cvtss2si rax, dword [rdi]
-
-	cvttpd2dq xmm0, xmm1
-	cvttpd2dq xmm0, [rdi]
-	cvttpd2dq xmm0, oword [rdi]
-
-	cvttpd2pi mm0, xmm1
-	cvttpd2pi mm0, [rdi]
-	cvttpd2pi mm0, oword [rdi]
-
-	cvttps2dq xmm0, xmm1
-	cvttps2dq xmm0, [rdi]
-	cvttps2dq xmm0, oword [rdi]
-
-	cvttps2pi mm0, xmm1
-	cvttps2pi mm0, [rdi]
-	cvttps2pi mm0, qword [rdi]
-
-	cvttsd2si eax, xmm1
-	cvttsd2si eax, [rdi]	; Compatibility
-	cvttsd2si eax, qword [rdi]
-	cvttsd2si rax, xmm1
-	cvttsd2si rax, [rdi]
-	cvttsd2si rax, qword [rdi]
-
-	cvttss2si eax, xmm1
-	cvttss2si eax, [rdi] 	; Compatibility
-	cvttss2si eax, dword [rdi]
-	cvttss2si rax, xmm1
-	cvttss2si rax, [rdi]
-	cvttss2si rax, dword [rdi]
-
-	vcvtdq2pd xmm0, xmm1
-	vcvtdq2pd xmm0, [rdi]
-	vcvtdq2pd xmm0, qword [rdi]
-	vcvtdq2pd ymm0, xmm1
-	vcvtdq2pd ymm0, [rdi]
-	vcvtdq2pd ymm0, oword [rdi]
-
-	vcvtdq2ps xmm0, xmm1
-	vcvtdq2ps xmm0, [rdi]
-	vcvtdq2ps xmm0, oword [rdi]
-	vcvtdq2ps ymm0, ymm1
-	vcvtdq2ps ymm0, [rdi]
-	vcvtdq2ps ymm0, yword [rdi]
-
-	vcvtpd2dq xmm0, xmm1
-	vcvtpd2dq xmm0, oword [rdi]
-	vcvtpd2dq xmm0, ymm1
-	vcvtpd2dq xmm0, yword [rdi]
-
-	vcvtpd2ps xmm0, xmm1
-	vcvtpd2ps xmm0, oword [rdi]
-	vcvtpd2ps xmm0, ymm1
-	vcvtpd2ps xmm0, yword [rdi]
-
-	vcvtps2dq xmm0, xmm1
-	vcvtps2dq xmm0, [rdi]
-	vcvtps2dq xmm0, oword [rdi]
-	vcvtps2dq ymm0, ymm1
-	vcvtps2dq ymm0, [rdi]
-	vcvtps2dq ymm0, yword [rdi]
-
-	vcvtps2pd xmm0, xmm1
-	vcvtps2pd xmm0, [rdi]
-	vcvtps2pd xmm0, qword [rdi]
-	vcvtps2pd ymm0, xmm1
-	vcvtps2pd ymm0, [rdi]
-	vcvtps2pd ymm0, oword [rdi]
-
-	vcvtsd2si eax, xmm1
-	vcvtsd2si eax, [rdi]
-	vcvtsd2si eax, qword [rdi]
-	vcvtsd2si rax, xmm1
-	vcvtsd2si rax, [rdi]
-	vcvtsd2si rax, qword [rdi]
-
-	vcvtsd2ss xmm0, xmm1
-	vcvtsd2ss xmm0, [rdi]
-	vcvtsd2ss xmm0, qword [rdi]
-	vcvtsd2ss xmm0, xmm1, xmm2
-	vcvtsd2ss xmm0, xmm1, [rdi]
-	vcvtsd2ss xmm0, xmm1, qword [rdi]
-
-	vcvtsi2sd xmm0, eax
-	vcvtsi2sd xmm0, [rdi]	; Compatibility
-	vcvtsi2sd xmm0, dword [rdi]
-	vcvtsi2sd xmm0, rax
-	vcvtsi2sd xmm0, qword [rdi]
-	vcvtsi2sd xmm0, xmm1, eax
-	vcvtsi2sd xmm0, xmm1, [rdi]	; Compatibility
-	vcvtsi2sd xmm0, xmm1, dword [rdi]
-	vcvtsi2sd xmm0, xmm1, rax
-	vcvtsi2sd xmm0, xmm1, qword [rdi]
-
-	vcvtsi2ss xmm0, eax
-	vcvtsi2ss xmm0, [rdi]	; Compatibility
-	vcvtsi2ss xmm0, dword [rdi]
-	vcvtsi2ss xmm0, rax
-	vcvtsi2ss xmm0, qword [rdi]
-	vcvtsi2ss xmm0, xmm1, eax
-	vcvtsi2ss xmm0, xmm1, [rdi]	; Compatibility
-	vcvtsi2ss xmm0, xmm1, dword [rdi]
-	vcvtsi2ss xmm0, xmm1, rax
-	vcvtsi2ss xmm0, xmm1, qword [rdi]
-
-	vcvtss2sd xmm0, xmm1
-	vcvtss2sd xmm0, [rdi]
-	vcvtss2sd xmm0, dword [rdi]
-	vcvtss2sd xmm0, xmm1, xmm2
-	vcvtss2sd xmm0, xmm1, [rdi]
-	vcvtss2sd xmm0, xmm1, dword [rdi]
-
-	vcvtss2si eax, xmm1
-	vcvtss2si eax, [rdi]
-	vcvtss2si eax, dword [rdi]
-	vcvtss2si rax, xmm1
-	vcvtss2si rax, [rdi]
-	vcvtss2si rax, dword [rdi]
-
-	vcvttpd2dq xmm0, xmm1
-	vcvttpd2dq xmm0, oword [rdi]
-	vcvttpd2dq xmm0, ymm1
-	vcvttpd2dq xmm0, yword [rdi]
-
-	vcvttps2dq xmm0, xmm1
-	vcvttps2dq xmm0, [rdi]
-	vcvttps2dq xmm0, oword [rdi]
-	vcvttps2dq ymm0, ymm1
-	vcvttps2dq ymm0, [rdi]
-	vcvttps2dq ymm0, yword [rdi]
-
-	vcvttsd2si eax, xmm1
-	vcvttsd2si eax, [rdi]	; Compatibility
-	vcvttsd2si eax, qword [rdi]
-	vcvttsd2si rax, xmm1
-	vcvttsd2si rax, [rdi]
-	vcvttsd2si rax, qword [rdi]
-
-	vcvttss2si eax, xmm1
-	vcvttss2si eax, [rdi] 	; Compatibility
-	vcvttss2si eax, dword [rdi]
-	vcvttss2si rax, xmm1
-	vcvttss2si rax, [rdi]
-	vcvttss2si rax, dword [rdi]
--- a/nasmbuild/nasm-2.13rc9/test/br2222615.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-;Testname=noerror; Arguments=-fbin -obr2222615.bin; Files=stdout stderr br2222615.bin
-;Testname=error; Arguments=-DERROR -fbin -obr2222615.bin; Files=stdout stderr br2222615.bin
-
-%macro bluttan 0
-	nop
-%endmacro
-
-%ifnmacro bluttan
- %error "bluttan is a macro"
-%endif
-
-%ifmacro blej
- %error "blej is not a macro"
-%endif
-
-%ifdef ERROR
- %ifnmacro
- %endif
-%endif
--- a/nasmbuild/nasm-2.13rc9/test/br2496848.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -o br2496848.bin; Files=stdout stderr br2496848.bin
-;Testname=optimized;   Arguments=-Ox -fbin -o br2496848.bin; Files=stdout stderr br2496848.bin
-
-bits 64
-
-foo:
-
-default abs
-
-mov al, [qword 0xffffffffffffffff]
-mov al, [qword 0x1ffffffffffffffff]
-
-mov cl, [byte 0x12345678]
-
-default rel
-
-mov cl, [foo]
-mov cl, [foo + 0x10000000]
-mov cl, [foo + 0x100000000]
-
-mov cl, [0x100]
-mov cl, [$$ + 0x100]
-
-mov cl, [rax - 1]
-mov cl, [rax + 0xffffffff]
-mov cl, [rax + 0x1ffffffff]
-
-bits 32
-mov cl, [eax - 1]
-mov cl, [eax + 0xffffffff]
-mov cl, [eax + 0x1ffffffff]
-mov cl, [byte eax + 0xffffffff]
-mov cl, [byte eax + 0x1ffffffff]
-mov cl, [byte eax + 0x1000ffff]
-
-bits 16
-mov cl, [di - 1]
-mov cl, [di + 0xffff]
-mov cl, [di + 0x1ffff]
-mov cl, [byte di + 0xffff]
-mov cl, [byte di + 0x1ffff]
-mov cl, [byte di + 0x10ff]
--- a/nasmbuild/nasm-2.13rc9/test/br3005117.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-;Testname=br3005117; Arguments=-Ox -felf -obr3005117.o; Files=stdout stderr br3005117.o
-
-%macro B_STRUC 1-*
-%push foo
-%define %$strucname %1
-%%top_%$strucname:
-%rep %0 - 1
-%rotate 1
-resb %{$strucname}%1 - ($ - %%top_%$strucname)
-%1:
-%endrep
-resb %{$strucname}_size - ($ - %%top_%$strucname)
-%pop
-%endmacro
-
-struc timeval
-.tv_sec		resd	1
-.tv_usec	resd	1
-endstruc
-
-mov	[timeval_struct.tv_sec], eax
-
-section .bss
-
-timeval_struct B_STRUC timeval, .tv_sec, .tv_usec
-	timeval_struct_len	equ	$ - timeval_struct
--- a/nasmbuild/nasm-2.13rc9/test/br3026808.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-;Testname=br3026808; Arguments=-Ox -fbin -obr3026808.o; Files=stdout stderr br3026808.o
-
-%imacro proc 1
-	%push proc
-	%assign %$arg 1
-%endmacro
-
-%imacro arg 0-1 1
-	%assign %$arg %1+%$arg
-%endmacro
-
-%imacro endproc 0
-	%pop
-%endmacro
-
-;----------------------------
-
-proc Test
-	%$ARG	arg
-endproc
--- a/nasmbuild/nasm-2.13rc9/test/br3028880.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-;Testname=br3028880; Arguments=-Ox -fbin -obr3028880.o; Files=stdout stderr br3028880.o
-
-%macro import 1
-	%define %%incfile %!PROJECTBASEDIR/%{1}.inc
-%endmacro
-
-import foo
-
--- a/nasmbuild/nasm-2.13rc9/test/br3041451.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-;Testname=br3041451; Arguments=-Ox -fbin -obr3041451.bin; Files=stdout stderr br3041451.bin
-
-	[bits 64]
-
-	;
-	; HIT: Maximum possible value
-	%assign i 0
-	%rep ((1<<62)-1)
-		mov rax, i
-		%assign i i+1
-		%if i == 2
-			%exitrep
-		%endif
-	%endrep
-
-	;
-	; MISS: It's negative
-	%assign i 0
-	%rep 0xffffFFFFffffFFFE
-		mov rax, 0xffffFFFFffffFFFE
-		%assign i i+1
-		%if i == 2
-			%exitrep
-		%endif
-	%endrep
-
-	;
-	; MISS: It's negative
-	%assign i 0
-	%rep 0xffffFFFFffffFFFF
-		db i
-		%assign i i+1
-		%if i == 2
-			%exitrep
-		%endif
-	%endrep 
-
-	;
-	; MISS: It's negative
-	%assign i 0
-	%rep -2
-		db i
-		%assign i i+1
-		%if i == 2
-			%exitrep
-		%endif
-	%endrep
-
-	;
-	; MISS: It's negative
-	%assign i 0
-	%rep -1
-		db i
-		%assign i i+1
-		%if i == 2
-			%exitrep
-		%endif
-	%endrep
-
--- a/nasmbuild/nasm-2.13rc9/test/br3058845.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -obr3058845.bin; Files=stdout stderr br3058845.bin
-;Testname=optimized;   Arguments=-Ox -fbin -obr3058845.bin; Files=stdout stderr br3058845.bin
-
-BITS 16
-cmp ax, 0xFFFF
-cmp eax, 0xFFFF_FFFF
-
-BITS 32
-cmp ax, 0xFFFF
-cmp eax, 0xFFFF_FFFF
-
-BITS 64
-cmp ax, 0xFFFF
-cmp eax, 0xFFFF_FFFF
--- a/nasmbuild/nasm-2.13rc9/test/br3066383.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-;Testname=br3066383; Arguments=-Ox -fbin -obr3066383.bin; Files=stdout stderr br3066383.bin
-
-;
-; this is a for BR3005117
-; http://sourceforge.net/tracker/?func=detail&aid=3005117&group_id=6208&atid=106208
-;
-%macro b_struc 1-*
-    %push foo
-        %define %$strucname %1
-%%top_%$strucname:
-        %rep %0 - 1
-            %rotate 1
-            resb %{$strucname}%1 - ($ - %%top_%$strucname)
-%1:
-        %endrep
-        resb %{$strucname}_size - ($ - %%top_%$strucname)
-    %pop
-%endmacro
-
-struc timeval
-    .tv_sec     resd    1
-    .tv_usec    resd    1
-endstruc
-
-section .text
-    mov [timeval_struct.tv_sec], eax
-
-section .bss
-    timeval_struct b_struc timeval, .tv_sec, .tv_usec
-        timeval_struct_len equ $ - timeval_struct
-
-section .text
-
-;
-; this is a test for BR3026808
-; http://sourceforge.net/tracker/?func=detail&aid=3026808&group_id=6208&atid=106208
-;
-%imacro proc 1
-    %push proc
-    %assign %$arg 1
-%endmacro
-
-%imacro arg 0-1 1
-    %assign %$arg %1+%$arg
-%endmacro
-
-%imacro endproc 0
-    %pop
-%endmacro
-
-proc Test
-    %$ARG arg
-endproc
-
-;
-; this is a test for BR3066383
-; http://sourceforge.net/tracker/?func=detail&aid=3066383&group_id=6208&atid=106208
-;
-%macro pp_local 1
-    %push
-        %assign %$_uses 0
-        %rep 4
-            %assign %$_ur%$_uses %$_uses
-            mov ecx, %$_ur%$_uses
-            %assign %$_uses %$_uses+1
-        %endrep
-    %pop
-%endmacro
-
-pp_local 1
--- a/nasmbuild/nasm-2.13rc9/test/br3074517.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-;%define UNDEFINED
-%macro macro 0
-    %ifndef UNDEFINED
-        %rep 1
-            %fatal This should display "fatal: (m:3)"
-        %endrep
-    %endif
-    %fatal This should display "fatal: (m:6)" if 'UNDEFINED' defined
-%endmacro
-
-macro
-
--- a/nasmbuild/nasm-2.13rc9/test/br3092924.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-%define RNUM	0x10000  ; max of relocations in a section is 0xffff
-
-section	.data1
-	r1 dd RNUM
-
-section	.data2
-	r2 dd RNUM
-
-%macro x1 1
-	mov eax, [r1 + %1]
-%endmacro
-
-%macro x2 1
-	mov eax, [r2 + %1]
-%endmacro
-
-section	.text1
-
-	%assign	i 0
-	%rep RNUM
-		x1 i
-		x2 i
-		%assign i i+1
-	%endrep
-
--- a/nasmbuild/nasm-2.13rc9/test/br3104312.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-%if 1 < 8000_0002h
- %warning No bug with 8000_0002h
-%else
- %warning Bug with 8000_0002h
-%endif
-
-%if 1 < 8000_0001h
- %warning No bug with 8000_0001h
-%else
- %warning Bug with 8000_0001h
-%endif
--- a/nasmbuild/nasm-2.13rc9/test/br3109604.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -obr3109604.bin; Files=stdout stderr br3109604.bin
-;Testname=optimized;   Arguments=-Ox -fbin -obr3109604.bin; Files=stdout stderr br3109604.bin
-
-	bits 64
-b0:	vmovd xmm2, [rdx+r9]
-e0:	
-	
-	section .data
-len:	dd e0 - b0		; Should be 6
--- a/nasmbuild/nasm-2.13rc9/test/br3174983.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -obr3174983.bin; Files=stdout stderr br3174983.bin
-;Testname=optimized;   Arguments=-Ox -fbin -obr3174983.bin; Files=stdout stderr br3174983.bin
-
-	bits 32
-	vpextrw ecx,xmm0,8	; c5 f9 c5 c8 08
-	vpextrw ecx,xmm2,3	; c5 f9 c5 ca 03
-
-	bits 64
-	vpextrw rcx,xmm0,8	; c5 f9 c5 c8 08
--- a/nasmbuild/nasm-2.13rc9/test/br3187743.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -obr3187743.bin; Files=stdout stderr br3187743.bin
-;Testname=optimized;   Arguments=-Ox -fbin -obr3187743.bin; Files=stdout stderr br3187743.bin
-
-	bits 64
-
-	vlddqu	xmm0,[edi]
-	vlddqu	ymm0,[edi]
--- a/nasmbuild/nasm-2.13rc9/test/br3189064.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -obr3189064.bin; Files=stdout stderr br3189064.bin
-;Testname=optimized;   Arguments=-Ox -fbin -obr3189064.bin; Files=stdout stderr br3189064.bin
-
-[bits 64]
-	VMASKMOVPS	[edi],ymm0,ymm1
-	VEXTRACTF128	xmm0,ymm1,1
-	VEXTRACTF128	[edi],ymm1,1
--- a/nasmbuild/nasm-2.13rc9/test/br3200749.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -obr3200749.bin; Files=stdout stderr br3200749.bin
-;Testname=optimized;   Arguments=-Ox -fbin -obr3200749.bin; Files=stdout stderr br3200749.bin
-%define IFNDEF %ifndef
-%define ENDIF %endif
-
-IFNDEF foo
-    ; bar
-ENDIF
-
--- a/nasmbuild/nasm-2.13rc9/test/br3385573.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -obr3385573.bin; Files=stdout stderr br3385573.bin
-;Testname=optimized;   Arguments=-Ox -fbin -obr3385573.bin; Files=stdout stderr br3385573.bin
-[bits 64]
-
-	vpmovsxbw	ymm1, xmm2
-	vpsllw		ymm1, ymm2, 3
-	vpslld		ymm1, ymm2, 3
-	vpsllq		ymm1, ymm2, 3
-	vpsrld		ymm1, ymm2, 3
-	vpsrad		ymm1, ymm2, 3
-	vpermq		ymm1, [rsi], 9
--- a/nasmbuild/nasm-2.13rc9/test/br3392252.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-;Testname=br3392252; Arguments=-Ox -fbin -obrbr3392252.o; Files=stdout stderr br3392252.o
-
-[BITS 64]
-
-	bextr rax, rsi, 1
-	bextr eax, esi, 1
-	bextr eax, esi, eax
-
-	blcfill edx, ebx
-	blcfill edx, [ebx]
-	blcfill rax, rbx
-
-	blci edx, ebx
-	blci edx, [ebx]
-	blci rax, rbx
-
-	blcic edx, ebx
-	blcic edx, [ebx]
-	blcic rax, rbx
-
-	blcmsk edx, ebx
-	blcmsk edx, [ebx]
-	blcmsk rax, rbx
-
-	blcs edx, ebx
-	blcs edx, [ebx]
-	blcs rax, rbx
-
-	blsfill edx, ebx
-	blsfill edx, [ebx]
-	blsfill rax, rbx
-
-	blsic edx, ebx
-	blsic edx, [ebx]
-	blsic rax, rbx
-
-	t1mskc edx, ebx
-	t1mskc edx, [ebx]
-	t1mskc rax, rbx
-
-	tzmsk edx, ebx
-	tzmsk edx, [ebx]
-	tzmsk rax, rbx
--- a/nasmbuild/nasm-2.13rc9/test/br3392259.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-;Testname=br3392259; Arguments=-Ox -felf64 -obr3392259.o; Files=stdout stderr br3392259.o
-[BITS 64]
-
-	VMOVNTDQA	ymm1, yword [rsi]	; fails: "error: invalid combination of opcode and operands"
-	VMOVNTDQA	ymm1, [rsi]		; works
-	VMOVNTDQA	xmm1, oword [rsi]	; works
-	MOVNTDQA	xmm1, oword [rsi]	; fails, see bug 978756: "error: mismatch in operand sizes"
-	MOVNTDQA	xmm1, [rsi]		; works
--- a/nasmbuild/nasm-2.13rc9/test/br560575.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-;Testname=aout;  Arguments=-faout  -obr560575.o; Files=stderr stdout br560575.o
-;Testname=aoutb; Arguments=-faoutb -obr560575.o; Files=stderr stdout br560575.o
-;Testname=coff;  Arguments=-fcoff  -obr560575.o; Files=stderr stdout br560575.o
-;Testname=elf32; Arguments=-felf32 -obr560575.o; Files=stderr stdout br560575.o
-;Testname=elf64; Arguments=-felf64 -obr560575.o; Files=stderr stdout br560575.o
-;Testname=as86;  Arguments=-fas86  -obr560575.o; Files=stderr stdout br560575.o
-;Testname=win32; Arguments=-fwin32 -obr560575.o; Files=stderr stdout br560575.o
-;Testname=win64; Arguments=-fwin64 -obr560575.o; Files=stderr stdout br560575.o
-;Testname=rdf;   Arguments=-frdf   -obr560575.o; Files=stderr stdout br560575.o
-;Testname=ieee;  Arguments=-fieee  -obr560575.o; Files=stderr stdout br560575.o
-;Testname=macho; Arguments=-fmacho -obr560575.o; Files=stderr stdout br560575.o
-
-;Test for bug report 560575 - Using SEG with non-relocatable values doesn't work
-;
-	dw seg ~1
-	dw seg "a"
-	dw seg 'a'
--- a/nasmbuild/nasm-2.13rc9/test/br560873.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,27 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -frdf -obr560873.rdf; Files=stdout stderr br560873.rdf
-;Testname=optimized;   Arguments=-Ox -frdf -obr560873.rdf; Files=stdout stderr br560873.rdf
-
-label:
-	bits 16
-	call far dword label
-	mov [label],ax
-	mov [label],eax
-	mov [word label],ax
-	mov [word label],eax
-	mov [dword label],ax
-	mov [dword label],eax
-	push 3700
-	push word 3700
-	push dword 3700
-	
-	bits 32
-	call far word label
-	mov [label],ax
-	mov [label],eax
-	mov [word label],ax
-	mov [word label],eax
-	mov [dword label],ax
-	mov [dword label],eax
-	push 3700
-	push word 3700
-	push dword 3700
--- a/nasmbuild/nasm-2.13rc9/test/br890790.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-;Testname=test; Arguments=-fbin -obr890790.bin; Files=stdout stderr br890790.bin
-%rep 5
-  db 0
-  %include "br890790_i.asm"
-%endrep
-
-db 1
--- a/nasmbuild/nasm-2.13rc9/test/br890790_i.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-db 2
--- a/nasmbuild/nasm-2.13rc9/test/br978756.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-;Testname=br978756; Arguments=-Ox -felf64 -obr978756.o; Files=stdout stderr br978756.o
-[bits 64]
-	MOVNTDQA	xmm1, oword [rsi]
-	MOVLPD		xmm2, qword [rdi]
-	MOVLPD		xmm2, [rdi]
-	MOVLPD		qword [rdi], xmm2
-	MOVLPD		[rdi], xmm2
--- a/nasmbuild/nasm-2.13rc9/test/changed.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,383 +0,0 @@
-;This file demonstrates many of the differences between NASM version X and NASM
-;version 0.97
-;
-; changed.asm is copyright (C) 1998 John S. Fine
-;
-;  It may be redistributed under the same conditions as NASM as described in
-;  LICENSE file in the NASM archive
-;_________________________________
-;
-;  nasm changed.asm -l changed.lst
-;
-; When assembled without any -d switches, it includes examples which:
-;       Work correctly in version X
-;  and  Work incorrectly and/or display warnings in version 0.97
-;  and  Do not prevent the generation of output in version 0.97
-;
-; Not all the differences can be seen in the .lst file.  I suggest that you use
-; "ndisasm changes"  to examine the code actually generated.
-;_________________________________
-;
-;  nasm changed.asm -l changed.lst -doldmsg
-;
-; When assembled with -doldmsg, it adds examples which:
-;       Work correctly in version X
-;  and  Generate error messages in version 0.97 and do not generate output
-;_________________________________
-;
-;  nasm changed.asm -l changed.lst -doldcrash
-;
-; When assembled with -doldcrash, it adds examples which:
-;       Work correctly in version X
-;  and  Cause NASM to crash in version 0.97
-;_________________________________
-;
-;  nasm changed.asm -l changed.lst -dnewmsg
-;
-; When assembled with -dnewmsg, it adds examples which:
-;       Generate error messages in version X
-;  and  Generate wrong output without warning or error message in version 0.97
-;-----------------------------------------------------------------------------
-
-; Please note that I have reported the name of the person who made the
-; correction based on very limited information.  In several cases, I am sure I
-; will identify the wrong author.  Please send me any corrections;  I don't
-; intend to insult or exclude anyone.
-
-;-----------------------------------------------------------------------------
-; Bug fixed by Simon in assemble()
-;
-; The following generated "call next" / "call next-1" instead of
-; two copies of "call next"
-;
-	times 2 a16 call next
-next:
-
-;-----------------------------------------------------------------------------
-; Bug fixed by John in parse_line()  (and other routines)
-;
-; This used to jmp to prior.1, when it should be here.1
-;
-prior:
-.1:
-here:	jmp	.1
-.1:
-
-;-----------------------------------------------------------------------------
-; Bug fixed by John in assemble()
-;
-; Strings used in dq and dt were not zero filled correctly
-;
-	dq	'b'
-
-
-;-----------------------------------------------------------------------------
-; Bug fixed by Simon in isn_names[]
-;
-; Was not recognised as an instruction
-;
-	int01			; Instead of INT1
-
-;-----------------------------------------------------------------------------
-; Bug fixed by Jim Hague in ???
-;
-; Forward references were instruction level rather than per operand
-;
-	shr word [forwardref],1
-forwardref:
-
-;-----------------------------------------------------------------------------
-; Bug fixed by John in preproc.c
-;
-; It used to silently discard id characters appended to a multi-line
-; macro parameter (such as the x in %1x below).
-;
-%macro xxx 1
-%1: nop
-%{1}x: jmp %1x
-%endmacro
-xxx yyy
-
-;-----------------------------------------------------------------------------
-; Bug added by John in preproc.c 0.98-J4, removed by John in 0.98-J5
-;
-; Tested here to make sure it stays removed
-;
-%macro TestElse 1
-%if %1=0
-%elif %1=1
-nop
-%endif
-%endmacro
-TestElse 1
-
-%ifdef oldmsg
-;***************************************************************
-;
-; The following examples will generate error messages in 0.97 and will generate
-; correct output in the new version.
-
-;-----------------------------------------------------------------------------
-; Bug fixed by Simon in isns.dat
-;
-; The optional "near" was not permitted on JMP and CALL
-;
-	jmp near here
-
-;-----------------------------------------------------------------------------
-; Feature added by Simon in stdscan()
-;
-; You can now use the numeric value of strings in %assign
-;
-%assign xxx 'ABCD'
-	dd xxx
-
-;-----------------------------------------------------------------------------
-; Feature added by John in add_vectors()
-;
-; Stranger address expressions are now supported as long as they resolve to
-; something valid.
-;
-	mov ax, [eax + ebx + ecx - eax]
-
-;-----------------------------------------------------------------------------
-; Bug fixed by Simon in ???
-;
-; The EQU directive affected local labels in a way that was inconsistent
-; between passes
-;
-.local:
-neither equ $
-	jmp .local
-
-;-----------------------------------------------------------------------------
-; Feature added by Jules in parse_line
-;
-; You can override a size specifier
-;
-%define arg1 dword [bp+4]
-	cmp word arg1, 2
-
-;-----------------------------------------------------------------------------
-; Bug fixed by John in preproc.c
-;
-; You could not use a label on the same line with a macro invocation, if the
-; macro definition began with a preprocessor directive.
-;
-	struc mytype
-.long	resd	1
-	endstruc
-
-lbl	istruc mytype
-	at mytype.long, dd 'ABCD'
-	iend
-
-;-----------------------------------------------------------------------------
-; Warning removed by John in preproc.c
-;
-; In order to allow macros that extend the definition of instructions, I
-; disabled the warning on a multi-line macro referencing itself.
-;
-%endif			;NASM 0.97 doesn't handle %0 etc. inside false %if
-%macro push 1-*		;
-%rep %0			;
-push %1			;
-%rotate 1		;
-%endrep			;
-%endmacro		;
-%ifdef oldmsg		;
-
-	push ax,bx
-
-;-----------------------------------------------------------------------------
-; Warning removed by John in preproc.c
-;
-; To support other types of macros that extend the definition of instructions,
-; I disabled the warning on a multi-line macro called with the wrong number of
-; parameters.  PUSH and POP can be extended equally well by either method, but
-; other intruction extensions may need one method or the other, so I made both
-; work.
-;
-; Note that neither of these warnings was really needed, because a later stage
-; of NASM would almost always give an adequate error message if the macro use
-; really was wrong.
-;
-%endif
-%macro pop 2-*
-%rep %0
-pop %1
-%rotate 1
-%endrep
-%endmacro
-%ifdef oldmsg
-
-	pop ax,bx
-%endif
-
-
-%ifdef newmsg  ;***************************************************************
-
-;-----------------------------------------------------------------------------
-; Bug fixed by John in parse_line()  (and other routines)
-;
-; This invalid code used to assemble without errors
-;
-myself equ myself+1
-	jmp myself
-
-;-----------------------------------------------------------------------------
-; Change made by John in preproc.c
-;
-; In 0.97, an id that appears as a label on a macro invocation was always
-; prepended to the first line of the macro expansion.  That caused several
-; bugs, but also could be used in tricks like the arg macro in c16.mac and
-; c32.mac.
-;
-; In version X, an id that appears as a label on a macro invocation will
-; normally be defined as a label for the address at which the macro is
-; invoked, regardless of whether the first line of the macro expansion is
-; something that can take a label.  The new token %00 may be used for any
-; of the situations in which the old prepend behavior was doing something
-; tricky but useful.  %00 can also be used more than once and in places
-; other than the start of the expansion.
-;
-%endif
-%assign arg_off 0
-
-%imacro arg 0-1 2		;arg defined the old way
-	  equ arg_off
-%assign arg_off %1+arg_off
-%endmacro
-
-%ifdef newmsg
-arg_example arg
-%endif
-
-%imacro arg2 0-1 2		;arg defined the new way
-%00	  equ arg_off
-%assign arg_off %1+arg_off
-%endmacro
-
-%ifdef oldmsg
-arg_example2 arg2
-
-;-----------------------------------------------------------------------------
-; Change made by Jules and John in INSNS.DAT
-;
-; Various instruction in which the size of an immediate is built-in to the
-; instruction set, now allow you to redundantly specify that size as long
-; as you specify it correctly
-;
-	AAD	byte 5
-	AAM	byte 5
-	BT	bx, byte 3
-	BTC	cx, byte 4
-	BTR	dx, byte 5
-	BTS	si, byte 6
-	IN	eax, byte 0x40
-	INT	byte 21h
-	OUT	byte 70h, ax
-	RET	word 2
-	RETN	word 2
-	RETF	word 4
-
-; note "ENTER" has not been changed yet.
-
-;-----------------------------------------------------------------------------
-; Enhancement by hpa in insns.dat et al
-;
-; Simplified adding new instructions, and added some missing instructions
-;
-	int03			; Instead of INT3
-	ud1			; No documented mnemonic for this one
-	ud2
-	sysenter
-	sysexit
-	syscall
-	sysret
-	fxsave [ebx]
-	fxrstor [es:ebx+esi*4+0x3000]
-
-;-----------------------------------------------------------------------------
-; Enhancement by hpa in insns.dat et al
-;
-; Actually make SSE work, and use the -p option to ndisasm to select
-; one of several aliased opcodes
-;
-	sqrtps xmm0,[ebx+10]	; SSE opcode
-	paddsiw mm0,[ebx+10]	; Cyrix opcode with the same byte seq.
-	
-;-----------------------------------------------------------------------------
-; Enhancement by hpa in preproc.c
-;
-; Support %undef to remoce a single-line macro
-;
-%define	TEST_ME 42
-%ifndef TEST_ME
-%error	"TEST_ME not defined after %define"
-%endif
-			
-%undef  TEST_ME
-%ifdef  TEST_ME
-%error	"TEST_ME defined after %undef"
-%endif
-
-;-----------------------------------------------------------------------------
-; Bug fix by hpa in insns.dat
-;
-; PSHUFW and PINSRW weren't handling the implicit sizes correctly; all of
-; the entries below are (or should be) legal
-;
-	pshufw mm2, mm1, 3
-	pshufw mm3,[ebx],2
-	pshufw mm7,[0+edi*8],1
-	
-	pshufw mm2, mm1, byte 3
-	pshufw mm3,[ebx],byte 2
-	pshufw mm7,[0+edi*8],byte 1
-
-	pshufw mm2, mm1, 3
-	pshufw mm3, qword [ebx], 2
-	pshufw mm7, qword [0+edi*8], 1
-
-	pshufw mm2, mm1, byte 3
-	pshufw mm3, qword [ebx], byte 2
-	pshufw mm7, qword [0+edi*8], byte 1
-
-	pinsrw mm1, [esi], 1
-	pinsrw mm1, word [esi], 1
-	pinsrw mm1, [esi], byte 1
-	pinsrw mm1, word [esi], byte 1
-
-	
-%endif				; oldmsg
-	
-%ifdef oldcrash  ;*************************************************************
-
-This_label_is_256_characters_long__There_used_to_be_a_bug_in_stdscan_which_made_it_crash_when_it_did_a_keyword_search_on_any_label_longer_than_255_characters__Now_anything_longer_than_MAX_KEYWORD_is_always_a_symbol__It_will_not_even_try_a_keyword_search___
-
-;-----------------------------------------------------------------------------
-; Bug fixed by John in preproc.c
-;
-; Builds of NASM that prohibit dereferencing a NULL pointer used to crash if a
-; macro that started with a blank line was invoked with a label
-;
-%macro empty_macro 0
-
-%endm
-
-emlabel empty_macro
-	jmp	emlabel
-
-;-----------------------------------------------------------------------------
-; Enhancement by Conan Brink in preproc.c
-;
-; Allow %rep to be nested
-;
-%rep 4
-%rep 5
-	nop
-%endrep
-%endrep
-
-%endif
--- a/nasmbuild/nasm-2.13rc9/test/cofftest.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-;Cannot be automatically tested because it differs every time,
-;I guess because of a date/time field.
-
-; test source file for assembling to COFF
-; build with (under DJGPP, for example):
-;    nasm -f coff cofftest.asm
-;    gcc -o cofftest cofftest.c cofftest.o
-
-; This file should test the following:
-; [1] Define and export a global text-section symbol
-; [2] Define and export a global data-section symbol
-; [3] Define and export a global BSS-section symbol
-; [4] Define a non-global text-section symbol
-; [5] Define a non-global data-section symbol
-; [6] Define a non-global BSS-section symbol
-; [7] Define a COMMON symbol
-; [8] Define a NASM local label
-; [9] Reference a NASM local label
-; [10] Import an external symbol
-; [11] Make a PC-relative call to an external symbol
-; [12] Reference a text-section symbol in the text section
-; [13] Reference a data-section symbol in the text section
-; [14] Reference a BSS-section symbol in the text section
-; [15] Reference a text-section symbol in the data section
-; [16] Reference a data-section symbol in the data section
-; [17] Reference a BSS-section symbol in the data section
-
-	  BITS 32
-	  GLOBAL _lrotate	; [1]
-	  GLOBAL _greet		; [1]
-	  GLOBAL _asmstr	; [2]
-	  GLOBAL _textptr	; [2]
-	  GLOBAL _selfptr	; [2]
-	  GLOBAL _integer	; [3]
-	  EXTERN _printf	; [10]
-	  COMMON _commvar 4	; [7]
-
-	  SECTION .text
-
-; prototype: long lrotate(long x, int num);
-_lrotate:			; [1]
-	  push ebp
-	  mov ebp,esp
-	  mov eax,[ebp+8]
-	  mov ecx,[ebp+12]
-.label	  rol eax,1		; [4] [8]
-	  loop .label		; [9] [12]
-	  mov esp,ebp
-	  pop ebp
-	  ret
-
-; prototype: void greet(void);
-_greet	  mov eax,[_integer]	; [14]
-	  inc eax
-	  mov [localint],eax	; [14]
-	  push dword [_commvar]
-	  mov eax,[localptr]	; [13]
-	  push dword [eax]
-	  push dword [_integer]	; [1] [14]
-	  push dword _printfstr	; [13]
-	  call _printf		; [11]
-	  add esp,16
-	  ret
-
-	  SECTION .data
-
-; a string
-_asmstr	  db 'hello, world', 0	; [2]
-
-; a string for Printf
-_printfstr db "integer==%d, localint==%d, commvar=%d"
-	  db 10, 0
-
-; some pointers
-localptr  dd localint		; [5] [17]
-_textptr  dd _greet		; [15]
-_selfptr  dd _selfptr		; [16]
-
-	  SECTION .bss
-
-; an integer
-_integer  resd 1		; [3]
-
-; a local integer
-localint  resd 1		; [6]
--- a/nasmbuild/nasm-2.13rc9/test/cofftest.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/*
- * test source file for assembling to COFF
- * build with (under DJGPP, for example):
- *    nasm -f coff cofftest.asm
- *    gcc -o cofftest cofftest.c cofftest.o
- */
-
-#include <stdio.h>
-#include <inttypes.h>
-
-extern int lrotate(int32_t, int);
-extern void greet(void);
-extern int8_t asmstr[];
-extern void *selfptr;
-extern void *textptr;
-extern int integer, commvar;
-
-int main(void)
-{
-
-    printf("Testing lrotate: should get 0x00400000, 0x00000001\n");
-    printf("lrotate(0x00040000, 4) = 0x%08lx\n", lrotate(0x40000, 4));
-    printf("lrotate(0x00040000, 14) = 0x%08lx\n", lrotate(0x40000, 14));
-
-    printf("This string should read `hello, world': `%s'\n", asmstr);
-
-    printf("The integers here should be 1234, 1235 and 4321:\n");
-    integer = 1234;
-    commvar = 4321;
-    greet();
-
-    printf("These pointers should be equal: %p and %p\n", &greet, textptr);
-
-    printf("So should these: %p and %p\n", selfptr, &selfptr);
-}
--- a/nasmbuild/nasm-2.13rc9/test/crc32.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-;Testname=test; Arguments=-fbin -ocrc32.bin; Files=stdout stderr crc32.bin
-
-	bits 16
-
-	crc32 eax,cl
-	crc32 eax,byte [di]
-	crc32 eax,cx
-	crc32 eax,word [di]
-	crc32 eax,ecx
-	crc32 eax,dword [di]
-
-	bits 32
-	align 16
-
-	crc32 eax,cl
-	crc32 eax,byte [edi]
-	crc32 eax,cx
-	crc32 eax,word [edi]
-	crc32 eax,ecx
-	crc32 eax,dword [edi]
-
-	bits 64
-	align 16
-
-	crc32 eax,cl
-	crc32 eax,byte [rdi]
-	crc32 eax,r9b
-	crc32 eax,cx
-	crc32 eax,word [rdi]
-	crc32 eax,ecx
-	crc32 eax,dword [rdi]
-	crc32 rax,cl
-	crc32 rax,byte [rdi]
-	crc32 rax,r9b
-	crc32 rax,rcx
-	crc32 rax,qword [rdi]
-	crc32 rax,r9
--- a/nasmbuild/nasm-2.13rc9/test/cv8struc.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-struc A_STRUC
-  ._a: resw 1
-endstruc
-
-a_struc:
-  istruc A_STRUC
-  at A_STRUC._a, dw 1
-  iend
-
-	section .data
-foo:
-	dd 0x11111111
-.bar:
-	dd 0x22222222
--- a/nasmbuild/nasm-2.13rc9/test/dtbcd.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,72 +0,0 @@
-;
-; This is a macro to generate packed BCD constants.
-; It is obsoleted by "dt" with a packed BCD value with a "p"
-; suffix, but it is included here as a rest of nested %rep.
-;
-%macro dtbcd 1-*.nolist
-  %push dtbcd
-  %rep %0
-    %defstr %$abc %1
-    %substr %$sign %$abc 1
-    %if %$sign == '-'
-      %substr %$abc %$abc 2,-1
-      %xdefine %$sign 0x80
-    %elif %$sign == '+'
-      %substr %$abc %$abc 2,-1
-      %xdefine %$sign 0x00
-    %else
-      %xdefine %$sign 0x00
-    %endif
-    %strlen %$abclen %$abc
-    %defstr %$abclen_str %$abclen
-    %assign %$pos %$abclen
-    %assign %$bc 0
-    %assign %$ld -1
-    %rep %$abclen
-      %substr %$chr %$abc %$pos
-      %assign %$pos %$pos-1
-      %if %$chr >= '0' && %$chr <= '9'
-        %if %$ld < 0
-          %assign %$ld %$chr-'0'
-          %assign %$bc %$bc+1
-          %if %$bc > 9
-            %warning "too many digits in BCD constant"
-	    %exitrep
-          %endif
-        %else
-          db %$ld+((%$chr-'0') << 4)
-	  %assign %$ld -1
-        %endif
-      %elif %$chr == '_'
-        ; Do nothing...
-      %else
-        %error "invalid character in BCD constant"
-	%exitrep
-      %endif
-    %endrep
-    %if %$ld >= 0
-      db %$ld
-    %endif
-    %rep 9-%$bc
-      db 0
-    %endrep
-    db %$sign
-    %rotate 1
-  %endrep
-  %pop
-%endmacro
-
-	dtbcd 123, -456, +789
-	dt 123p, -456p, +789p
-	dtbcd 765432109876543210
-	dt 765432109876543210p
-	dtbcd -765432109876543210
-	dt -765432109876543210p
-	dtbcd +765_432_109_876_543_210
-	dt +765_432_109_876_543_210p
-	dtbcd -765_432_109_876_543_210
-	dt -765_432_109_876_543_210p
-
-	;; Both of these should warn...
-	dtbcd 8_765_432_109_876_543_210
-	dt 8_765_432_109_876_543_210p
--- a/nasmbuild/nasm-2.13rc9/test/elf64so.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-; test source file for assembling to ELF64 shared library
-; build with:
-;    nasm -f elf64 elf64so.asm
-;    ld -shared -o elf64so.so elf64so.o
-; test with:
-;    gcc -o elf64so elftest64.c ./elf64so.so
-;    ./elf64so
-
-; This file should test the following:
-; [1] Define and export a global text-section symbol
-; [2] Define and export a global data-section symbol
-; [3] Define and export a global BSS-section symbol
-; [4] Define a non-global text-section symbol
-; [5] Define a non-global data-section symbol
-; [6] Define a non-global BSS-section symbol
-; [7] Define a COMMON symbol
-; [8] Define a NASM local label
-; [9] Reference a NASM local label
-; [10] Import an external symbol
-; [11] Make a PC-relative call to an external symbol
-; [12] Reference a text-section symbol in the text section
-; [13] Reference a data-section symbol in the text section
-; [14] Reference a BSS-section symbol in the text section
-; [15] Reference a text-section symbol in the data section
-; [16] Reference a data-section symbol in the data section
-; [17] Reference a BSS-section symbol in the data section
-
-	  BITS 64
-	  GLOBAL lrotate:function ; [1]
-	  GLOBAL greet_s:function ; [1]
-	  GLOBAL greet_m:function ; [1]
-	  GLOBAL asmstr:data asmstr.end-asmstr ; [2]
-	  GLOBAL textptr:data 8	; [2]
-	  GLOBAL selfptr:data 8	; [2]
-	  GLOBAL useless:data 8	; [3]
-	  GLOBAL integer:data 8	; [3]
-	  EXTERN printf		; [10]
-	  COMMON commvar 8:8	; [7]
-	  EXTERN _GLOBAL_OFFSET_TABLE_
-
-	  SECTION .text
-
-; prototype: long lrotate(long x, int num);
-lrotate:			; [1]
-	  push rbp
-	  mov rbp,rsp
-	  mov rax,rdi
-	  mov rcx,rsi
-.label	  rol rax,1		; [4] [8]
-	  loop .label		; [9] [12]
-	  mov rsp,rbp
-	  pop rbp
-	  ret
-
-;; prototype: void greet_*(void);
-;; 
-;;  Arguments are:	rdi - rsi - rdx - rcx - r8 - r9
-;;  Registers:		rbx, rbp, r12-r15 are saved
-;; greet_s() is Small PIC model, greet_m() is Medium PIC model
-;; (Large model cannot be linked with other code)
-;;
-greet_s:
-	  ;;  This instruction is useless, this is only a test...
-	  cmp qword [rel integer wrt ..got],0
-	  mov rax,[rel commvar wrt ..got] ; &commvar
-	  mov rcx,[rax]			  ; commvar
-	  mov rax,[rel integer wrt ..got] ; &integer
-	  mov rsi,[rax]
-	  lea rdx,[rsi+1]
-	  mov [rel localint],rdx ; localint = integer+1
-	  mov rax,[rel localptr] ; localptr
-	  mov rdx,[rax]		 ; *localptr = localint
-	  lea rdi,[rel printfstr]
-	  xor eax,eax		; No fp arguments
-	  jmp printf wrt ..plt	; [10]
-
-greet_m:
-	  push r15		; Used by convention...
-	  lea r15,[rel _GLOBAL_OFFSET_TABLE_]
-	  mov rax,[rel commvar wrt ..got] ; &commvar
-	  mov rcx,[rax]			  ; commvar
-	  mov rax,[rel integer wrt ..got] ; &integer
-	  mov rsi,[rax]
-	  lea rdx,[rsi+1]
-	  mov rax,localint wrt ..gotoff	 ; &localint - r15
-	  mov [rax+r15],rdx	 ; localint = integer+1
-	  mov rax,localptr wrt ..gotoff ; &localptr - r15
-	  mov rax,[rax+r15]	 ; localptr
-	  mov rdx,[rax]		 ; *localptr = localint
-	  mov rdi,printfstr wrt ..gotoff ; &printfstr - r15
-	  add rdi,r15		; &printfstr 
-	  xor eax,eax		; No fp arguments
-	  pop r15
-	  jmp printf wrt ..plt	; [10]
-
-	  SECTION .data
-
-; a string
-asmstr	  db 'hello, world', 0	; [2]
-.end:
-
-; a string for Printf
-printfstr db "integer=%ld, localint=%ld, commvar=%ld", 10, 0
-
-; some pointers
-localptr  dq localint		; [5] [17]
-textptr	  dq greet_s wrt ..sym	; [15]
-selfptr	  dq selfptr wrt ..sym	; [16]
-
-	  SECTION .bss
-; a useless symbol
-useless	  resq 1
-	
-; an integer
-integer	  resq 1		; [3]
-
-; a local integer
-localint  resq 1		; [6]
--- a/nasmbuild/nasm-2.13rc9/test/elfso.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,100 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -felf -oelfso.o; Files=stdout stderr elfso.o
-;Testname=optimized;   Arguments=-Ox -felf -oelfso.o; Files=stdout stderr elfso.o
-
-; test source file for assembling to ELF shared library
-; build with:
-;    nasm -f elf elfso.asm
-;    ld -shared -o elfso.so elfso.o
-; test with:
-;    gcc -o elfso elftest.c ./elfso.so
-;    ./elfso
-; (assuming your gcc is ELF, and you're running bash)
-
-; This file should test the following:
-; [1] Define and export a global text-section symbol
-; [2] Define and export a global data-section symbol
-; [3] Define and export a global BSS-section symbol
-; [4] Define a non-global text-section symbol
-; [5] Define a non-global data-section symbol
-; [6] Define a non-global BSS-section symbol
-; [7] Define a COMMON symbol
-; [8] Define a NASM local label
-; [9] Reference a NASM local label
-; [10] Import an external symbol
-; [11] Make a PC-relative call to an external symbol
-; [12] Reference a text-section symbol in the text section
-; [13] Reference a data-section symbol in the text section
-; [14] Reference a BSS-section symbol in the text section
-; [15] Reference a text-section symbol in the data section
-; [16] Reference a data-section symbol in the data section
-; [17] Reference a BSS-section symbol in the data section
-
-	  BITS 32
-	  GLOBAL lrotate:function ; [1]
-	  GLOBAL greet:function	; [1]
-	  GLOBAL asmstr:data asmstr.end-asmstr ; [2]
-	  GLOBAL textptr:data 4	; [2]
-	  GLOBAL selfptr:data 4	; [2]
-	  GLOBAL integer:data 4	; [3]
-	  EXTERN printf		; [10]
-	  COMMON commvar 4:4	; [7]
-	  EXTERN _GLOBAL_OFFSET_TABLE_
-
-	  SECTION .text
-
-; prototype: long lrotate(long x, int num);
-lrotate:			; [1]
-	  push ebp
-	  mov ebp,esp
-	  mov eax,[ebp+8]
-	  mov ecx,[ebp+12]
-.label	  rol eax,1		; [4] [8]
-	  loop .label		; [9] [12]
-	  mov esp,ebp
-	  pop ebp
-	  ret
-
-; prototype: void greet(void);
-greet	  push ebx		; we'll use EBX for GOT, so save it
-	  call .getgot
-.getgot:  pop ebx
-	  add ebx,_GLOBAL_OFFSET_TABLE_ + $$ - .getgot wrt ..gotpc
-	  mov eax,[ebx+integer wrt ..got] ; [14]
-	  mov eax,[eax]
-	  inc eax
-	  mov [ebx+localint wrt ..gotoff],eax ; [14]
-	  mov eax,[ebx+commvar wrt ..got]
-	  push dword [eax]
-	  mov eax,[ebx+localptr wrt ..gotoff] ; [13]
-	  push dword [eax]
-	  mov eax,[ebx+integer wrt ..got] ; [1] [14]
-	  push dword [eax]
-	  lea eax,[ebx+printfstr wrt ..gotoff]
-	  push eax		; [13]
-	  call printf wrt ..plt	; [11]
-	  add esp,16
-	  pop ebx
-	  ret
-
-	  SECTION .data
-
-; a string
-asmstr	  db 'hello, world', 0	; [2]
-.end
-
-; a string for Printf
-printfstr db "integer==%d, localint==%d, commvar=%d"
-	  db 10, 0
-
-; some pointers
-localptr  dd localint		; [5] [17]
-textptr	  dd greet wrt ..sym	; [15]
-selfptr	  dd selfptr wrt ..sym	; [16]
-
-	  SECTION .bss
-
-; an integer
-integer	  resd 1		; [3]
-
-; a local integer
-localint  resd 1		; [6]
--- a/nasmbuild/nasm-2.13rc9/test/elftest.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,87 +0,0 @@
-; test source file for assembling to ELF
-; build with:
-;    nasm -f elf elftest.asm
-;    gcc -o elftest elftest.c elftest.o
-; (assuming your gcc is ELF)
-
-; This file should test the following:
-; [1] Define and export a global text-section symbol
-; [2] Define and export a global data-section symbol
-; [3] Define and export a global BSS-section symbol
-; [4] Define a non-global text-section symbol
-; [5] Define a non-global data-section symbol
-; [6] Define a non-global BSS-section symbol
-; [7] Define a COMMON symbol
-; [8] Define a NASM local label
-; [9] Reference a NASM local label
-; [10] Import an external symbol
-; [11] Make a PC-relative call to an external symbol
-; [12] Reference a text-section symbol in the text section
-; [13] Reference a data-section symbol in the text section
-; [14] Reference a BSS-section symbol in the text section
-; [15] Reference a text-section symbol in the data section
-; [16] Reference a data-section symbol in the data section
-; [17] Reference a BSS-section symbol in the data section
-; [18] Define a non-global rodata-section symbol
-
-	  BITS 32
-	  GLOBAL lrotate	; [1]
-	  GLOBAL greet		; [1]
-	  GLOBAL asmstr		; [2]
-	  GLOBAL textptr	; [2]
-	  GLOBAL selfptr	; [2]
-	  GLOBAL integer	; [3]
-	  EXTERN printf		; [10]
-	  COMMON commvar 4	; [7]
-
-	  SECTION .text
-
-; prototype: long lrotate(long x, int num);
-lrotate:			; [1]
-	  push ebp
-	  mov ebp,esp
-	  mov eax,[ebp+8]
-	  mov ecx,[ebp+12]
-.label	  rol eax,1		; [4] [8]
-	  loop .label		; [9] [12]
-	  mov esp,ebp
-	  pop ebp
-	  ret
-
-; prototype: void greet(void);
-greet	  mov eax,[integer]	; [14]
-	  inc eax
-	  mov [localint],eax	; [14]
-	  push dword [commvar]
-	  mov eax,[localptr]	; [13]
-	  push dword [eax]
-	  push dword [integer]	; [1] [14]
-	  push dword printfstr	; [13]
-	  call printf		; [11]
-	  add esp,16
-	  ret
-
-	  SECTION .data
-
-; a string
-asmstr	  db 'hello, world', 0	; [2]
-
-; a string for Printf
-printfstr db "integer==%d, localint==%d, commvar=%d"
-	  db 10, 0
-
-; some pointers
-localptr  dd localint		; [5] [17]
-textptr	  dd greet		; [15]
-selfptr	  dd selfptr		; [16]
-
-	  SECTION .bss
-
-; an integer
-integer	  resd 1		; [3]
-
-; a local integer
-localint  resd 1		; [6]
-
-	  SECTION .rodata
-readonly  dd readonly		; [18]
--- a/nasmbuild/nasm-2.13rc9/test/elftest.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/*
- * test source file for assembling to ELF
- * build with:
- *    nasm -f elf elftest.asm
- *    gcc -o elftest elftest.c elftest.o
- * (assuming your gcc is ELF)
- */
-
-#include <stdio.h>
-#include <inttypes.h>
-
-extern int lrotate(int32_t, int);
-extern void greet(void);
-extern int8_t asmstr[];
-extern void *selfptr;
-extern void *textptr;
-extern int integer, commvar;
-
-int main(void)
-{
-
-    printf("Testing lrotate: should get 0x00400000, 0x00000001\n");
-    printf("lrotate(0x00040000, 4) = 0x%08lx\n", lrotate(0x40000, 4));
-    printf("lrotate(0x00040000, 14) = 0x%08lx\n", lrotate(0x40000, 14));
-
-    printf("This string should read `hello, world': `%s'\n", asmstr);
-
-    printf("The integers here should be 1234, 1235 and 4321:\n");
-    integer = 1234;
-    commvar = 4321;
-    greet();
-
-    printf("These pointers should be equal: %p and %p\n", &greet, textptr);
-
-    printf("So should these: %p and %p\n", selfptr, &selfptr);
-
-    return 0;
-}
--- a/nasmbuild/nasm-2.13rc9/test/elftest64.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- *  build with:
- *	nasm -f elf64 elf64so.asm
- *	ld -shared -o elf64so.so elf64so.o
- * test with:
- *	gcc -o elf64so elftest64.c ./elf64so.so
- *	./elf64so
- */
-
-#include <stdio.h>
-#include <inttypes.h>
-
-extern long lrotate(long, int);
-extern void greet_s(void);
-extern void greet_m(void);
-extern int8_t asmstr[];
-extern void *selfptr;
-extern void *textptr;
-extern long integer;
-long commvar;
-
-int main(void)
-{
-
-    printf("Testing lrotate: should get 0x00400000, 0x00000001\n");
-    printf("lrotate(0x00040000, 4) = 0x%08lx\n", lrotate(0x40000, 4));
-    printf("lrotate(0x00040000, 46) = 0x%08lx\n", lrotate(0x40000, 46));
-
-    printf("This string should read `hello, world': `%s'\n", asmstr);
-
-    printf("&integer = %p, &commvar = %p\n", &integer, &commvar);
-    printf("The integers here should be 1234, 1235 and 4321:\n");
-    integer = 1234;
-    commvar = 4321;
-    greet_s();
-    greet_m();
-
-    printf("These pointers should be equal: %p and %p\n", &greet_s, textptr);
-
-    printf("So should these: %p and %p\n", selfptr, &selfptr);
-
-    return 0;
-}
--- a/nasmbuild/nasm-2.13rc9/test/elif.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fobj -oelif.obj; Files=stdout stderr elif.obj
-;Testname=optimized;   Arguments=-Ox -fobj -oelif.obj; Files=stdout stderr elif.obj
-
-%macro DosPrintMsg 1+
-%ifnid %1
-section .data
-%%str_to_print:db %1
-section .text
- mov dx,%%str_to_print
- mov ah,9
- int 0x21
-%else
- mov dx,(%1)
- mov ah,9
- int 0x21
-%endif
-%endmacro
-
-%macro DosExit 1
-%if (%1) == 0
-;use short-form return 0 exit
- int 0x20
-%elif ((%1) < 256) && ((%1) > 0)
- mov ax,0x4C00 | (%1)
- int 0x21
-%else
-%error Invalid return value
-%endif
-%endmacro
-
-org 0x100
- DosPrintMsg predefined_str
- DosPrintMsg "Using string with macro-defined label",10,0
- DosExit 0
- DosExit 1
- DosExit 256
-
-section .data
-predefined_str:db "Using string with predefined label",10,0
--- a/nasmbuild/nasm-2.13rc9/test/expimp.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,90 +0,0 @@
-;Testname=O0; Arguments=-O0 -fbin -oexpimp.bin; Files=stdout stderr expimp.bin
-;Testname=O1; Arguments=-O1 -fbin -oexpimp.bin; Files=stdout stderr expimp.bin
-;Testname=Ox; Arguments=-Ox -fbin -oexpimp.bin; Files=stdout stderr expimp.bin
-;Testname=error-O0; Arguments=-O0 -fbin -oexpimp.bin -DERROR; Files=stdout stderr expimp.bin
-;Testname=error-Ox; Arguments=-Ox -fbin -oexpimp.bin -DERROR; Files=stdout stderr expimp.bin
-
-;
-; Test of explicitly and implicitly sized operands
-;
-	BITS 32
-
-	add esi,2			; Implicit
-	add esi,123456h			; Implicit
-	add esi,byte 2			; Explicit
-	add esi,dword 2			; Explicit
-	add esi,dword 123456h		; Explicit
-	add esi,byte 123456h		; Explicit Truncation
-
-	add esi,strict 2		; Implicit Strict
-	add esi,strict 123456h		; Implicit Strict
-	add esi,strict byte 2		; Explicit Strict
-	add esi,strict dword 2		; Explicit Strict
-	add esi,strict dword 123456h	; Explicit Strict
-	add esi,strict byte 123456h	; Explicit Strict Truncation
-
-	add eax,2			; Implicit
-	add eax,123456h			; Implicit
-	add eax,byte 2			; Explicit
-	add eax,dword 2			; Explicit
-	add eax,dword 123456h		; Explicit
-	add eax,byte 123456h		; Explicit Truncation
-
-	add eax,strict 2		; Implicit Strict
-	add eax,strict 123456h		; Implicit Strict
-	add eax,strict byte 2		; Explicit Strict
-	add eax,strict dword 2		; Explicit Strict
-	add eax,strict dword 123456h	; Explicit Strict
-	add eax,strict byte 123456h	; Explicit Strict Truncation
-
-	imul dx,3			; Implicit
-	imul dx,byte 3			; Explicit
-	imul dx,word 3			; Explicit
-	imul dx,strict byte 3		; Explicit Strict
-	imul dx,strict word 3		; Explicit Strict
-
-;
-; Same thing with branches
-;
-start:
-	jmp short start			; Explicit
-	jmp near start			; Explicit
-	jmp word start			; Explicit
-	jmp dword start			; Explicit
-	jmp short forward		; Explicit
-	jmp near forward		; Explicit
-	jmp word forward		; Explicit
-	jmp dword forward		; Explicit
-%ifdef ERROR
-	jmp short faraway		; Explicit (ERROR)
-%endif
-	jmp near faraway		; Explicit
-	jmp word faraway		; Explicit
-	jmp dword faraway		; Explicit
-	jmp start			; Implicit
-	jmp forward			; Implicit
-	jmp faraway			; Implicit
-
-	jmp strict short start		; Explicit Strict
-	jmp strict near start		; Explicit Strict
-	jmp strict word start		; Explicit Strict
-	jmp strict dword start		; Explicit Strict
-	jmp strict short forward	; Explicit Strict
-	jmp strict near forward		; Explicit Strict
-	jmp strict word forward		; Explicit Strict
-	jmp strict dword forward	; Explicit Strict
-%ifdef ERROR
-	jmp strict short faraway	; Explicit (ERROR)
-%endif
-	jmp strict near faraway		; Explicit Strict
-	jmp strict word faraway		; Explicit Strict
-	jmp strict dword faraway	; Explicit Strict
-	jmp strict start		; Implicit Strict
-	jmp strict forward		; Implicit Strict
-	jmp strict faraway		; Implicit Strict
-forward:
-
-	times 256 nop
-faraway:
-
-
--- a/nasmbuild/nasm-2.13rc9/test/far64.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-;Testname=test; Arguments=-fbin -ofar64.bin; Files=stdout stderr far64.bin
-; BR 2039212
-	bits 64
-
-	call qword far [rax]
-	jmp qword far [rax]
-	call dword far [rax]
-	jmp dword far [rax]
-	call far [rax]
-	jmp far [rax]
--- a/nasmbuild/nasm-2.13rc9/test/float.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -ofloat.bin; Files=stdout stderr float.bin
-;Testname=optimized;   Arguments=-Ox -fbin -ofloat.bin; Files=stdout stderr float.bin
-
-;
-; Test of floating-point formats
-;
-
-; 8-bit
-	db 1.0
-	db +1.0
-	db -1.0
-	db 1.5
-	db +1.5
-	db -1.5
-	db 0.0
-	db +0.0
-	db -0.0
-	db 1.83203125
-	db +1.83203125
-	db -1.83203125
-	db 1.83203125e1
-	db +1.83203125e1
-	db -1.83203125e1
-	db 1.83203125e-1
-	db +1.83203125e-1
-	db -1.83203125e-1
-	db 1.13203125e-2		; Denormal!
-	db +1.13203125e-2		; Denormal!
-	db -1.13203125e-2		; Denormal!
-	db __Infinity__
-	db +__Infinity__
-	db -__Infinity__
-	db __NaN__
-	db __QNaN__
-	db __SNaN__
-	db 3.1415926535_8979323846_2643383279_5028841971_6939937510_5
-
-; 16-bit
-	dw 1.0
-	dw +1.0
-	dw -1.0
-	dw 1.5
-	dw +1.5
-	dw -1.5
-	dw 0.0
-	dw +0.0
-	dw -0.0
-	dw 1.83203125
-	dw +1.83203125
-	dw -1.83203125
-	dw 1.83203125e3
-	dw +1.83203125e3
-	dw -1.83203125e3
-	dw 1.83203125e-3
-	dw +1.83203125e-3
-	dw -1.83203125e-3
-	dw 1.83203125e-6		; Denormal!
-	dw +1.83203125e-6		; Denormal!
-	dw -1.83203125e-6		; Denormal!
-	dw __Infinity__
-	dw +__Infinity__
-	dw -__Infinity__
-	dw __NaN__
-	dw __QNaN__
-	dw __SNaN__
-	dw 3.1415926535_8979323846_2643383279_5028841971_6939937510_5
-
-; 32-bit
-	dd 1.0
-	dd +1.0
-	dd -1.0
-	dd 1.5
-	dd +1.5
-	dd -1.5
-	dd 0.0
-	dd +0.0
-	dd -0.0
-	dd 1.83203125
-	dd +1.83203125
-	dd -1.83203125
-	dd 1.83203125e15
-	dd +1.83203125e15
-	dd -1.83203125e15
-	dd 1.83203125e-15
-	dd +1.83203125e-15
-	dd -1.83203125e-15
-	dd 1.83203125e-40		; Denormal!
-	dd +1.83203125e-40		; Denormal!
-	dd -1.83203125e-40		; Denormal!
-	dd __Infinity__
-	dd +__Infinity__
-	dd -__Infinity__
-	dd __NaN__
-	dd __QNaN__
-	dd __SNaN__
-	dd 3.1415926535_8979323846_2643383279_5028841971_6939937510_5
-
-; 64-bit
-	dq 1.0
-	dq +1.0
-	dq -1.0
-	dq 1.5
-	dq +1.5
-	dq -1.5
-	dq 0.0
-	dq +0.0
-	dq -0.0
-	dq 1.83203125
-	dq +1.83203125
-	dq -1.83203125
-	dq 1.83203125e300
-	dq +1.83203125e300
-	dq -1.83203125e300
-	dq 1.83203125e-300
-	dq +1.83203125e-300
-	dq -1.83203125e-300
-	dq 1.83203125e-320		; Denormal!
-	dq +1.83203125e-320		; Denormal!
-	dq -1.83203125e-320		; Denormal!
-	dq __Infinity__
-	dq +__Infinity__
-	dq -__Infinity__
-	dq __NaN__
-	dq __QNaN__
-	dq __SNaN__
-	dq 3.1415926535_8979323846_2643383279_5028841971_6939937510_5
-	
-; 80-bit
-	dt 1.0
-	dt +1.0
-	dt -1.0
-	dt 1.5
-	dt +1.5
-	dt -1.5
-	dt 0.0
-	dt +0.0
-	dt -0.0
-	dt 1.83203125
-	dt +1.83203125
-	dt -1.83203125
-	dt 1.83203125e+4000
-	dt +1.83203125e+4000
-	dt -1.83203125e+4000
-	dt 1.83203125e-4000
-	dt +1.83203125e-4000
-	dt -1.83203125e-4000
-	dt 1.83203125e-4940		; Denormal!
-	dt +1.83203125e-4940		; Denormal!
-	dt -1.83203125e-4940		; Denormal!
-	dt __Infinity__
-	dt +__Infinity__
-	dt -__Infinity__
-	dt __NaN__
-	dt __QNaN__
-	dt __SNaN__
-	dt 3.1415926535_8979323846_2643383279_5028841971_6939937510_5
-
-; 128-bit
-	do 1.0
-	do +1.0
-	do -1.0
-	do 1.5
-	do +1.5
-	do -1.5
-	do 0.0
-	do +0.0
-	do -0.0
-	do 1.83203125
-	do +1.83203125
-	do -1.83203125
-	do 1.83203125e+4000
-	do +1.83203125e+4000
-	do -1.83203125e+4000
-	do 1.83203125e-4000
-	do +1.83203125e-4000
-	do -1.83203125e-4000
-	do 1.83203125e-4940		; Denormal!
-	do +1.83203125e-4940		; Denormal!
-	do -1.83203125e-4940		; Denormal!
-	do __Infinity__
-	do +__Infinity__
-	do -__Infinity__
-	do __NaN__
-	do __QNaN__
-	do __SNaN__
-	do 3.1415926535_8979323846_2643383279_5028841971_6939937510_5
--- a/nasmbuild/nasm-2.13rc9/test/float8.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -ofloat8.bin; Files=stdout stderr float8.bin
-;Testname=optimized;   Arguments=-Ox -fbin -ofloat8.bin; Files=stdout stderr float8.bin
-
-; Test of 8-bit floating-point constants
-
-	; Zero
-	db 0.0			; 00h
-
-	; Denorms
-	db 0.001953125		; 01h
-	db 0.00390625		; 02h
-	db 0.005859375		; 03h
-	db 0.0078125		; 04h
-	db 0.009765625		; 05h
-	db 0.01171875		; 06h
-	db 0.013671875		; 07h
-
-	; Normals
-	db 0.015625		; 08h
-	db 0.017578125		; 09h
-	db 0.01953125		; 0Ah
-	db 0.021484375		; 0Bh
-	db 0.0234375		; 0Ch
-	db 0.025390625		; 0Dh
-	db 0.02734375		; 0Eh
-	db 0.029296875		; 0Fh
-	db 0.03125		; 10h
-	db 0.03515625		; 11h
-	db 0.0390625		; 12h
-	db 0.04296875		; 13h
-	db 0.046875		; 14h
-	db 0.05078125		; 15h
-	db 0.0546875		; 16h
-	db 0.05859375		; 17h
-	db 0.0625		; 18h
-	db 0.0703125		; 19h
-	db 0.078125		; 1Ah
-	db 0.0859375		; 1Bh
-	db 0.09375		; 1Ch
-	db 0.1015625		; 1Dh
-	db 0.109375		; 1Eh
-	db 0.1171875		; 1Fh
-	db 0.125		; 20h
-	db 0.140625		; 21h
-	db 0.15625		; 22h
-	db 0.171875		; 23h
-	db 0.1875		; 24h
-	db 0.203125		; 25h
-	db 0.21875		; 26h
-	db 0.234375		; 27h
-	db 0.25			; 28h
-	db 0.28125		; 29h
-	db 0.3125		; 2Ah
-	db 0.34375		; 2Bh
-	db 0.375		; 2Ch
-	db 0.40625		; 2Dh
-	db 0.4375		; 2Eh
-	db 0.46875		; 2Fh
-	db 0.5			; 30h
-	db 0.5625		; 31h
-	db 0.625		; 32h
-	db 0.6875		; 33h
-	db 0.75			; 34h
-	db 0.8125		; 35h
-	db 0.875		; 36h
-	db 0.9375		; 37h
-	db 1.0			; 38h
-	db 1.125		; 39h
-	db 1.25			; 3Ah
-	db 1.375		; 3Bh
-	db 1.5			; 3Ch
-	db 1.625		; 3Dh
-	db 1.75			; 3Eh
-	db 1.875		; 3Fh
-	db 2.0			; 40h
-	db 2.25			; 41h
-	db 2.5			; 42h
-	db 2.75			; 43h
-	db 3.0			; 44h
-	db 3.25			; 45h
-	db 3.5			; 46h
-	db 3.75			; 47h
-	db 4.0			; 48h
-	db 4.5			; 49h
-	db 5.0			; 4Ah
-	db 5.5			; 4Bh
-	db 6.0			; 4Ch
-	db 6.5			; 4Dh
-	db 7.0			; 4Eh
-	db 7.5			; 4Fh
-	db 8.0			; 50h
-	db 9.0			; 51h
-	db 10.0			; 52h
-	db 11.0			; 53h
-	db 12.0			; 54h
-	db 13.0			; 55h
-	db 14.0			; 56h
-	db 15.0			; 57h
-	db 16.0			; 58h
-	db 18.0			; 59h
-	db 20.0			; 5Ah
-	db 22.0			; 5Bh
-	db 24.0			; 5Ch
-	db 26.0			; 5Dh
-	db 28.0			; 5Eh
-	db 30.0			; 5Fh
-	db 32.0			; 60h
-	db 36.0			; 61h
-	db 40.0			; 62h
-	db 44.0			; 63h
-	db 48.0			; 64h
-	db 52.0			; 65h
-	db 56.0			; 66h
-	db 60.0			; 67h
-	db 64.0			; 68h
-	db 72.0			; 69h
-	db 80.0			; 6Ah
-	db 88.0			; 6Bh
-	db 96.0			; 6Ch
-	db 104.0		; 6Dh
-	db 112.0		; 6Eh
-	db 120.0		; 6Fh
-	db 128.0		; 70h
-	db 144.0		; 71h
-	db 160.0		; 72h
-	db 176.0		; 73h
-	db 192.0		; 74h
-	db 208.0		; 75h
-	db 224.0		; 76h
-	db 240.0		; 77h
-
-	; Exceptionals
-	db __Infinity__		; 78h
-	db __SNaN__		; 79h
-	db __QNaN__		; 7Ch
--- a/nasmbuild/nasm-2.13rc9/test/floatb.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -ofloatb.bin; Files=stdout stderr floatb.bin
-;Testname=optimized;   Arguments=-Ox -fbin -ofloatb.bin; Files=stdout stderr floatb.bin
-
-	;; Known problematic floating-point numbers and their proper
-	;; encoding...
-
-	bits 64
-	
-	dd 1.1e10
-	dd 0x5023e9ac	; Should be...
-	
-	dd 50.40e9
-	dd 0x513bc130	; Should be...
-
-	dq 1.4e23
-	dq 0x44bda56a4b0835c0
-
-	dq 50.48e21
-	dq 0x44a5610d7502feae
-
-	dt 1.2e28
-	dq 0x9b18ab5df7180b6c
-	dw 0x405c
-	
-	dt 50.46e25
-	dq 0xd0b29a67e95dcb60
-	dw 0x4057
-
-	;; Way too big numbers, should overflow to +Inf
-	dd 1.0E646456955
-	dd 1.0E646456956
-	dd 1.0E2147483646
-	dd 1.0E2147483647
-	dd 1.0E2147483648
-	dd 1.0E2147483649
--- a/nasmbuild/nasm-2.13rc9/test/floatexp.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,382 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -ofloatexp.bin; Files=stdout stderr floatexp.bin
-;Testname=optimized;   Arguments=-Ox -fbin -ofloatexp.bin; Files=stdout stderr floatexp.bin
-
-	bits 64
-;
-; Test of floating-point formats
-;
-
-; 8-bit
-	mov al,__float8__(1.0)
-	mov al,__float8__(+1.0)
-	mov al,__float8__(-1.0)
-	mov al,__float8__(0.0)
-	mov al,__float8__(+0.0)
-	mov al,__float8__(-0.0)
-	mov al,__float8__(1.83203125)
-	mov al,__float8__(+1.83203125)
-	mov al,__float8__(-1.83203125)
-	mov al,__float8__(1.83203125e1)
-	mov al,__float8__(+1.83203125e1)
-	mov al,__float8__(-1.83203125e1)
-	mov al,__float8__(1.83203125e-1)
-	mov al,__float8__(+1.83203125e-1)
-	mov al,__float8__(-1.83203125e-1)
-	mov al,__float8__(1.13203125e-2)		; Denormal!
-	mov al,__float8__(+1.13203125e-2)		; Denormal!
-	mov al,__float8__(-1.13203125e-2)		; Denormal!
-	mov al,__float8__(__Infinity__)
-	mov al,__float8__(+__Infinity__)
-	mov al,__float8__(-__Infinity__)
-	mov al,__float8__(__NaN__)
-	mov al,__float8__(__QNaN__)
-	mov al,__float8__(__SNaN__)
-
-; 16-bit
-	mov ax,__float16__(1.0)
-	mov ax,__float16__(+1.0)
-	mov ax,__float16__(-1.0)
-	mov ax,__float16__(0.0)
-	mov ax,__float16__(+0.0)
-	mov ax,__float16__(-0.0)
-	mov ax,__float16__(1.83203125)
-	mov ax,__float16__(+1.83203125)
-	mov ax,__float16__(-1.83203125)
-	mov ax,__float16__(1.83203125e3)
-	mov ax,__float16__(+1.83203125e3)
-	mov ax,__float16__(-1.83203125e3)
-	mov ax,__float16__(1.83203125e-3)
-	mov ax,__float16__(+1.83203125e-3)
-	mov ax,__float16__(-1.83203125e-3)
-	mov ax,__float16__(1.83203125e-6)		; Denormal!
-	mov ax,__float16__(+1.83203125e-6)		; Denormal!
-	mov ax,__float16__(-1.83203125e-6)		; Denormal!
-	mov ax,__float16__(__Infinity__)
-	mov ax,__float16__(+__Infinity__)
-	mov ax,__float16__(-__Infinity__)
-	mov ax,__float16__(__NaN__)
-	mov ax,__float16__(__QNaN__)
-	mov ax,__float16__(__SNaN__)
-
-; 32-bit
-	mov eax,__float32__(1.0)
-	mov eax,__float32__(+1.0)
-	mov eax,__float32__(-1.0)
-	mov eax,__float32__(0.0)
-	mov eax,__float32__(+0.0)
-	mov eax,__float32__(-0.0)
-	mov eax,__float32__(1.83203125)
-	mov eax,__float32__(+1.83203125)
-	mov eax,__float32__(-1.83203125)
-	mov eax,__float32__(1.83203125e15)
-	mov eax,__float32__(+1.83203125e15)
-	mov eax,__float32__(-1.83203125e15)
-	mov eax,__float32__(1.83203125e-15)
-	mov eax,__float32__(+1.83203125e-15)
-	mov eax,__float32__(-1.83203125e-15)
-	mov eax,__float32__(1.83203125e-40)		; Denormal!
-	mov eax,__float32__(+1.83203125e-40)		; Denormal!
-	mov eax,__float32__(-1.83203125e-40)		; Denormal!
-	mov eax,__float32__(__Infinity__)
-	mov eax,__float32__(+__Infinity__)
-	mov eax,__float32__(-__Infinity__)
-	mov eax,__float32__(__NaN__)
-	mov eax,__float32__(__QNaN__)
-	mov eax,__float32__(__SNaN__)
-
-; 64-bit
-	mov rax,__float64__(1.0)
-	mov rax,__float64__(+1.0)
-	mov rax,__float64__(-1.0)
-	mov rax,__float64__(0.0)
-	mov rax,__float64__(+0.0)
-	mov rax,__float64__(-0.0)
-	mov rax,__float64__(1.83203125)
-	mov rax,__float64__(+1.83203125)
-	mov rax,__float64__(-1.83203125)
-	mov rax,__float64__(1.83203125e300)
-	mov rax,__float64__(+1.83203125e300)
-	mov rax,__float64__(-1.83203125e300)
-	mov rax,__float64__(1.83203125e-300)
-	mov rax,__float64__(+1.83203125e-300)
-	mov rax,__float64__(-1.83203125e-300)
-	mov rax,__float64__(1.83203125e-320)		; Denormal!
-	mov rax,__float64__(+1.83203125e-320)		; Denormal!
-	mov rax,__float64__(-1.83203125e-320)		; Denormal!
-	mov rax,__float64__(__Infinity__)
-	mov rax,__float64__(+__Infinity__)
-	mov rax,__float64__(-__Infinity__)
-	mov rax,__float64__(__NaN__)
-	mov rax,__float64__(__QNaN__)
-	mov rax,__float64__(__SNaN__)
-
-; 80-bit
-	mov rax,__float80m__(1.0)
-	mov ax,__float80e__(1.0)
-	mov rax,__float80m__(+1.0)
-	mov ax,__float80e__(+1.0)
-	mov rax,__float80m__(-1.0)
-	mov ax,__float80e__(-1.0)
-	mov rax,__float80m__(0.0)
-	mov ax,__float80e__(0.0)
-	mov rax,__float80m__(+0.0)
-	mov ax,__float80e__(+0.0)
-	mov rax,__float80m__(-0.0)
-	mov ax,__float80e__(-0.0)
-	mov rax,__float80m__(1.83203125)
-	mov ax,__float80e__(1.83203125)
-	mov rax,__float80m__(+1.83203125)
-	mov ax,__float80e__(+1.83203125)
-	mov rax,__float80m__(-1.83203125)
-	mov ax,__float80e__(-1.83203125)
-	mov rax,__float80m__(1.83203125e+4000)
-	mov ax,__float80e__(1.83203125e+4000)
-	mov rax,__float80m__(+1.83203125e+4000)
-	mov ax,__float80e__(+1.83203125e+4000)
-	mov rax,__float80m__(-1.83203125e+4000)
-	mov ax,__float80e__(-1.83203125e+4000)
-	mov rax,__float80m__(1.83203125e-4000)
-	mov ax,__float80e__(1.83203125e-4000)
-	mov rax,__float80m__(+1.83203125e-4000)
-	mov ax,__float80e__(+1.83203125e-4000)
-	mov rax,__float80m__(-1.83203125e-4000)
-	mov ax,__float80e__(-1.83203125e-4000)
-	mov rax,__float80m__(1.83203125e-4940)		; Denormal!
-	mov ax,__float80e__(1.83203125e-4940)		; Denormal!
-	mov rax,__float80m__(+1.83203125e-4940)		; Denormal!
-	mov ax,__float80e__(+1.83203125e-4940)		; Denormal!
-	mov rax,__float80m__(-1.83203125e-4940)		; Denormal!
-	mov ax,__float80e__(-1.83203125e-4940)		; Denormal!
-	mov rax,__float80m__(__Infinity__)
-	mov ax,__float80e__(__Infinity__)
-	mov rax,__float80m__(+__Infinity__)
-	mov ax,__float80e__(+__Infinity__)
-	mov rax,__float80m__(-__Infinity__)
-	mov ax,__float80e__(-__Infinity__)
-	mov rax,__float80m__(__NaN__)
-	mov ax,__float80e__(__NaN__)
-	mov rax,__float80m__(__QNaN__)
-	mov ax,__float80e__(__QNaN__)
-	mov rax,__float80m__(__SNaN__)
-	mov ax,__float80e__(__SNaN__)
-
-; 128-bit
-	mov rax,__float128l__(1.0)
-	mov rax,__float128h__(1.0)
-	mov rax,__float128l__(+1.0)
-	mov rax,__float128h__(+1.0)
-	mov rax,__float128l__(-1.0)
-	mov rax,__float128h__(-1.0)
-	mov rax,__float128l__(0.0)
-	mov rax,__float128h__(0.0)
-	mov rax,__float128l__(+0.0)
-	mov rax,__float128h__(+0.0)
-	mov rax,__float128l__(-0.0)
-	mov rax,__float128h__(-0.0)
-	mov rax,__float128l__(1.83203125)
-	mov rax,__float128h__(1.83203125)
-	mov rax,__float128l__(+1.83203125)
-	mov rax,__float128h__(+1.83203125)
-	mov rax,__float128l__(-1.83203125)
-	mov rax,__float128h__(-1.83203125)
-	mov rax,__float128l__(1.83203125e+4000)
-	mov rax,__float128h__(1.83203125e+4000)
-	mov rax,__float128l__(+1.83203125e+4000)
-	mov rax,__float128h__(+1.83203125e+4000)
-	mov rax,__float128l__(-1.83203125e+4000)
-	mov rax,__float128h__(-1.83203125e+4000)
-	mov rax,__float128l__(1.83203125e-4000)
-	mov rax,__float128h__(1.83203125e-4000)
-	mov rax,__float128l__(+1.83203125e-4000)
-	mov rax,__float128h__(+1.83203125e-4000)
-	mov rax,__float128l__(-1.83203125e-4000)
-	mov rax,__float128h__(-1.83203125e-4000)
-	mov rax,__float128l__(1.83203125e-4940)		; Denormal!
-	mov rax,__float128h__(1.83203125e-4940)		; Denormal!
-	mov rax,__float128l__(+1.83203125e-4940)		; Denormal!
-	mov rax,__float128h__(+1.83203125e-4940)		; Denormal!
-	mov rax,__float128l__(-1.83203125e-4940)		; Denormal!
-	mov rax,__float128h__(-1.83203125e-4940)		; Denormal!
-	mov rax,__float128l__(__Infinity__)
-	mov rax,__float128h__(__Infinity__)
-	mov rax,__float128l__(+__Infinity__)
-	mov rax,__float128h__(+__Infinity__)
-	mov rax,__float128l__(-__Infinity__)
-	mov rax,__float128h__(-__Infinity__)
-	mov rax,__float128l__(__NaN__)
-	mov rax,__float128h__(__NaN__)
-	mov rax,__float128l__(__QNaN__)
-	mov rax,__float128h__(__QNaN__)
-	mov rax,__float128l__(__SNaN__)
-	mov rax,__float128h__(__SNaN__)
-
-;
-; Test hexadecimal floating-point numbers
-;
- 
-; 16-bit
-	mov ax,__float16__(1.0)
-	mov ax,__float16__(0x1.0)
-	mov ax,__float16__(2.0)
-	mov ax,__float16__(0x2.0)
-	mov ax,__float16__(0x1.0p+1)
-	mov ax,__float16__(0x1.0p-1)
-	mov ax,__float16__(0x0.0)
-	mov ax,__float16__(0x1.23456789)
-	mov ax,__float16__(0x0.123456789)
-	mov ax,__float16__(0x0.0000123456789)
-	mov ax,__float16__(0x1.23456789p10)
-	mov ax,__float16__(0x1.23456789p+10)
-	mov ax,__float16__(0x1.23456789p-10)
-	mov ax,__float16__(0x0.123456789p10)
-	mov ax,__float16__(0x0.123456789p+10)
-	mov ax,__float16__(0x0.123456789abcdef0123456789abcdef012345p-10)
-	mov ax,__float16__(0x0.0000123456789)
-	mov ax,__float16__(0x0.0000123456789p+10)
-	mov ax,__float16__(0x0.0000123456789p-10)
-
-; 32-bit
-	mov eax,__float32__(1.0)
-	mov eax,__float32__(0x1.0)
-	mov eax,__float32__(2.0)
-	mov eax,__float32__(0x2.0)
-	mov eax,__float32__(0x1.0p+1)
-	mov eax,__float32__(0x1.0p-1)
-	mov eax,__float32__(0x0.0)
-	mov eax,__float32__(0x1.23456789)
-	mov eax,__float32__(0x0.123456789)
-	mov eax,__float32__(0x0.0000123456789)
-	mov eax,__float32__(0x1.23456789p10)
-	mov eax,__float32__(0x1.23456789p+10)
-	mov eax,__float32__(0x1.23456789p-10)
-	mov eax,__float32__(0x0.123456789p10)
-	mov eax,__float32__(0x0.123456789p+10)
-	mov eax,__float32__(0x0.123456789abcdef0123456789abcdef012345p-10)
-	mov eax,__float32__(0x0.0000123456789)
-	mov eax,__float32__(0x0.0000123456789p+10)
-	mov eax,__float32__(0x0.0000123456789p-10)
-	mov eax,__float32__(0x123456789.0)
-	mov eax,__float32__(0x0000123456789.0)
-	mov eax,__float32__(0x123456789.0p+0)
-	mov eax,__float32__(0x123456789.0p+64)
-
-; 64-bit
-	mov rax,__float64__(1.0)
-	mov rax,__float64__(0x1.0)
-	mov rax,__float64__(2.0)
-	mov rax,__float64__(0x2.0)
-	mov rax,__float64__(0x1.0p+1)
-	mov rax,__float64__(0x1.0p-1)
-	mov rax,__float64__(0x0.0)
-	mov rax,__float64__(0x1.23456789)
-	mov rax,__float64__(0x0.123456789)
-	mov rax,__float64__(0x0.0000123456789)
-	mov rax,__float64__(0x1.23456789p10)
-	mov rax,__float64__(0x1.23456789p+10)
-	mov rax,__float64__(0x1.23456789p-10)
-	mov rax,__float64__(0x0.123456789p10)
-	mov rax,__float64__(0x0.123456789p+10)
-	mov rax,__float64__(0x0.123456789abcdef0123456789abcdef012345p-10)
-	mov rax,__float64__(0x0.0000123456789)
-	mov rax,__float64__(0x0.0000123456789p+10)
-	mov rax,__float64__(0x0.0000123456789p-10)
-	mov rax,__float64__(0x123456789.0)
-	mov rax,__float64__(0x0000123456789.0)
-	mov rax,__float64__(0x123456789.0p+0)
-	mov rax,__float64__(0x123456789.0p+300)
-	
-; 80-bit
-	mov rax,__float80m__(1.0)
-	mov ax,__float80e__(1.0)
-	mov rax,__float80m__(0x1.0)
-	mov ax,__float80e__(0x1.0)
-	mov rax,__float80m__(2.0)
-	mov ax,__float80e__(2.0)
-	mov rax,__float80m__(0x2.0)
-	mov ax,__float80e__(0x2.0)
-	mov rax,__float80m__(0x1.0p+1)
-	mov ax,__float80e__(0x1.0p+1)
-	mov rax,__float80m__(0x1.0p-1)
-	mov ax,__float80e__(0x1.0p-1)
-	mov rax,__float80m__(0x0.0)
-	mov ax,__float80e__(0x0.0)
-	mov rax,__float80m__(0x1.23456789)
-	mov ax,__float80e__(0x1.23456789)
-	mov rax,__float80m__(0x0.123456789)
-	mov ax,__float80e__(0x0.123456789)
-	mov rax,__float80m__(0x0.0000123456789)
-	mov ax,__float80e__(0x0.0000123456789)
-	mov rax,__float80m__(0x1.23456789p10)
-	mov ax,__float80e__(0x1.23456789p10)
-	mov rax,__float80m__(0x1.23456789p+10)
-	mov ax,__float80e__(0x1.23456789p+10)
-	mov rax,__float80m__(0x1.23456789p-10)
-	mov ax,__float80e__(0x1.23456789p-10)
-	mov rax,__float80m__(0x0.123456789p10)
-	mov ax,__float80e__(0x0.123456789p10)
-	mov rax,__float80m__(0x0.123456789p+10)
-	mov ax,__float80e__(0x0.123456789p+10)
-	mov rax,__float80m__(0x0.123456789abcdef0123456789abcdef012345p-10)
-	mov ax,__float80e__(0x0.123456789abcdef0123456789abcdef012345p-10)
-	mov rax,__float80m__(0x0.0000123456789)
-	mov ax,__float80e__(0x0.0000123456789)
-	mov rax,__float80m__(0x0.0000123456789p+10)
-	mov ax,__float80e__(0x0.0000123456789p+10)
-	mov rax,__float80m__(0x0.0000123456789p-10)
-	mov ax,__float80e__(0x0.0000123456789p-10)
-	mov rax,__float80m__(0x123456789.0)
-	mov ax,__float80e__(0x123456789.0)
-	mov rax,__float80m__(0x0000123456789.0)
-	mov ax,__float80e__(0x0000123456789.0)
-	mov rax,__float80m__(0x123456789.0p+0)
-	mov ax,__float80e__(0x123456789.0p+0)
-	mov rax,__float80m__(0x123456789.0p+1024)
-	mov ax,__float80e__(0x123456789.0p+1024)
-
-; 128-bit
-	mov rax,__float128l__(1.0)
-	mov rax,__float128h__(1.0)
-	mov rax,__float128l__(0x1.0)
-	mov rax,__float128h__(0x1.0)
-	mov rax,__float128l__(2.0)
-	mov rax,__float128h__(2.0)
-	mov rax,__float128l__(0x2.0)
-	mov rax,__float128h__(0x2.0)
-	mov rax,__float128l__(0x1.0p+1)
-	mov rax,__float128h__(0x1.0p+1)
-	mov rax,__float128l__(0x1.0p-1)
-	mov rax,__float128h__(0x1.0p-1)
-	mov rax,__float128l__(0x0.0)
-	mov rax,__float128h__(0x0.0)
-	mov rax,__float128l__(0x1.23456789)
-	mov rax,__float128h__(0x1.23456789)
-	mov rax,__float128l__(0x0.123456789)
-	mov rax,__float128h__(0x0.123456789)
-	mov rax,__float128l__(0x0.0000123456789)
-	mov rax,__float128h__(0x0.0000123456789)
-	mov rax,__float128l__(0x1.23456789p10)
-	mov rax,__float128h__(0x1.23456789p10)
-	mov rax,__float128l__(0x1.23456789p+10)
-	mov rax,__float128h__(0x1.23456789p+10)
-	mov rax,__float128l__(0x1.23456789p-10)
-	mov rax,__float128h__(0x1.23456789p-10)
-	mov rax,__float128l__(0x0.123456789p10)
-	mov rax,__float128h__(0x0.123456789p10)
-	mov rax,__float128l__(0x0.123456789p+10)
-	mov rax,__float128h__(0x0.123456789p+10)
-	mov rax,__float128l__(0x0.123456789abcdef0123456789abcdef012345p-10)
-	mov rax,__float128h__(0x0.123456789abcdef0123456789abcdef012345p-10)
-	mov rax,__float128l__(0x0.0000123456789)
-	mov rax,__float128h__(0x0.0000123456789)
-	mov rax,__float128l__(0x0.0000123456789p+10)
-	mov rax,__float128h__(0x0.0000123456789p+10)
-	mov rax,__float128l__(0x0.0000123456789p-10)
-	mov rax,__float128h__(0x0.0000123456789p-10)
-	mov rax,__float128l__(0x123456789.0)
-	mov rax,__float128h__(0x123456789.0)
-	mov rax,__float128l__(0x0000123456789.0)
-	mov rax,__float128h__(0x0000123456789.0)
-	mov rax,__float128l__(0x123456789.0p+0)
-	mov rax,__float128h__(0x123456789.0p+0)
-	mov rax,__float128l__(0x123456789.0p+1024)
-	mov rax,__float128h__(0x123456789.0p+1024)
--- a/nasmbuild/nasm-2.13rc9/test/floatize.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fbin -ofloatize.bin; Files=stdout stderr floatize.bin
-;Testname=optimized;   Arguments=-Ox -fbin -ofloatize.bin; Files=stdout stderr floatize.bin
-
-%assign	x13	13+26
-%assign f16   __float16__(1.6e-7)
-%assign f32   __float32__(1.6e-7)
-%assign f64   __float64__(1.6e-7)
-%assign f80m  __float80m__(1.6e-7)
-%assign f80e  __float80e__(1.6e-7)
-%assign f128l __float128l__(1.6e-7)
-%assign f128h __float128h__(1.6e-7)
-
-	dw f16
-	dd f32
-	dq f64
-	dq f80m
-	dw f80e
-	dq f128l
-	dq f128h
--- a/nasmbuild/nasm-2.13rc9/test/floattest.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-;Testname=optimized; Arguments=-Ox -felf -ofloattest.o; Files=stdout stderr floattest.o
-
-; nasm -O99 -f elf32 floattest.asm
-; ld -m elf_i386 -o floattest floattest.o -I/lib/ld-linux.so.2 -lc
-
-	global _start
-	extern printf
-
-	section .text
-_start:
-
-	fld qword [num1]
-	fadd qword [num2]
-	sub esp, 8
-	fstp qword [esp]
-	push fmt
-	call printf
-	add esp, 4*3
-
-	mov eax, 1
-	xor ebx, ebx
-	int 80h
-
-	section .data
-num1	dq 41.5
-num2	dq 0.5
-
-fmt	db "%f", 10, 0
--- a/nasmbuild/nasm-2.13rc9/test/floatx.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,525 +0,0 @@
-;
-; floatx.asm
-;
-; Test hexadecimal floating-point numbers
-
-%define Inf __Infinity__
-%define NaN __QNaN__
-
-; 16-bit
-	dw 1.0
-	dw 0x1.0
-	dw 2.0
-	dw 0x2.0
-	dw 0x1.0p+1
-	dw 0x1.0p-1
-	dw 0x0.0
-	dw 0x1.23456789
-	dw 0x0.123456789
-	dw 0x0.0000123456789
-	dw 0x1.23456789p10
-	dw 0x1.23456789p+10
-	dw 0x1.23456789p-10
-	dw 0x0.123456789p10
-	dw 0x0.123456789p+10
-	dw 0x0.123456789abcdef0123456789abcdef012345p-10
-	dw 0x0.0000123456789
-	dw 0x0.0000123456789p+10
-	dw 0x0.0000123456789p-10
-	dw 0x1.0p-25		; Underflow
-	dw 0x1.01p-25		; Rounds to denorm
-	dw 0x1.0p-24		; Smallest denorm
-	dw 0x1.ffffffffffffffffffffffffffffp-16	; Rounds to denorm
-	dw 0x1.0p-15		; Denorm
-	dw 0x1.ffffffffffffffffffffffffffffp-15	; Rounds to normal
-	dw 0x1.0p-14		; Smallest non-denorm
-	dw 0x1.0p+15		; Biggest possible exponent
-	dw 0x1.ffffffffffffffffffffffffffffp+15	; Rounds to infinity
-	dw Inf			; Infinity
-	dw NaN
-
-; 32-bit
-	dd 1.0
-	dd 0x1.0
-	dd 2.0
-	dd 0x2.0
-	dd 0x1.0p+1
-	dd 0x1.0p-1
-	dd 0x0.0
-	dd 0x1.23456789
-	dd 0x0.123456789
-	dd 0x0.0000123456789
-	dd 0x1.23456789p10
-	dd 0x1.23456789p+10
-	dd 0x1.23456789p-10
-	dd 0x0.123456789p10
-	dd 0x0.123456789p+10
-	dd 0x0.123456789abcdef0123456789abcdef012345p-10
-	dd 0x0.0000123456789
-	dd 0x0.0000123456789p+10
-	dd 0x0.0000123456789p-10
-	dd 0x123456789.0
-	dd 0x0000123456789.0
-	dd 0x123456789.0p+0
-	dd 0x123456789.0p+64
-	dd 0x1.0p-150		; Underflow
-	dd 0x1.01p-150		; Rounds to denorm
-	dd 0x1.0p-149		; Smallest denorm
-	dd 0x1.ffffffffffffffffffffffffffffp-128	; Rounds to denorm
-	dd 0x1.0p-127		; Denorm
-	dd 0x1.ffffffffffffffffffffffffffffp-127	; Rounds to normal
-	dd 0x1.0p-126		; Smallest non-denorm
-	dd 0x1.0p+127		; Biggest possible exponent
-	dd 0x1.ffffffffffffffffffffffffffffp+127	; Rounds to infinity
-	dd Inf			; Infinity
-	dd NaN
-
-; 64-bit
-	dq 1.0
-	dq 0x1.0
-	dq 2.0
-	dq 0x2.0
-	dq 0x1.0p+1
-	dq 0x1.0p-1
-	dq 0x0.0
-	dq 0x1.23456789
-	dq 0x0.123456789
-	dq 0x0.0000123456789
-	dq 0x1.23456789p10
-	dq 0x1.23456789p+10
-	dq 0x1.23456789p-10
-	dq 0x0.123456789p10
-	dq 0x0.123456789p+10
-	dq 0x0.123456789abcdef0123456789abcdef012345p-10
-	dq 0x0.0000123456789
-	dq 0x0.0000123456789p+10
-	dq 0x0.0000123456789p-10
-	dq 0x123456789.0
-	dq 0x0000123456789.0
-	dq 0x123456789.0p+0
-	dq 0x123456789.0p+300
-	dq 0x1.0p-1075		; Underflow
-	dq 0x1.01p-1075		; Rounds to denorm
-	dq 0x1.0p-1074		; Smallest denorm
-	dq 0x1.ffffffffffffffffffffffffffffp-1024	; Rounds to denorm
-	dq 0x1.0p-1023		; Denorm
-	dq 0x1.ffffffffffffffffffffffffffffp-1023	; Rounds to normal
-	dq 0x1.0p-1022		; Smallest non-denorm
-	dq 0x1.0p+1023		; Biggest possible exponent
-	dq 0x1.ffffffffffffffffffffffffffffp+1023	; Rounds to infinity
-	dq Inf			; Infinity
-	dq NaN
-
-; 80-bit
-	dt 1.0
-	dt 0x1.0
-	dt 2.0
-	dt 0x2.0
-	dt 0x1.0p+1
-	dt 0x1.0p-1
-	dt 0x0.0
-	dt 0x1.23456789
-	dt 0x0.123456789
-	dt 0x0.0000123456789
-	dt 0x1.23456789p10
-	dt 0x1.23456789p+10
-	dt 0x1.23456789p-10
-	dt 0x0.123456789p10
-	dt 0x0.123456789p+10
-	dt 0x0.123456789abcdef0123456789abcdef012345p-10
-	dt 0x0.0000123456789
-	dt 0x0.0000123456789p+10
-	dt 0x0.0000123456789p-10
-	dt 0x123456789.0
-	dt 0x0000123456789.0
-	dt 0x123456789.0p+0
-	dt 0x123456789.0p+1024
-	dt 0x1.0p-16446		; Underflow
-	dt 0x1.01p-16446	; Rounds to denorm
-	dt 0x1.0p-16445		; Smallest denorm
-	dt 0x1.ffffffffffffffffffffffffffffp-16384	; Rounds to denorm
-	dt 0x1.0p-16383		; Denorm
-	dt 0x1.ffffffffffffffffffffffffffffp-16383	; Rounds to normal
-	dt 0x1.0p-16382		; Smallest non-denorm
-	dt 0x1.0p+16383		; Biggest possible exponent
-	dt 0x1.ffffffffffffffffffffffffffffp+16383	; Rounds to infinity
-	dt Inf			; Infinity
-	dt NaN
-
-; 128-bit
-	do 1.0
-	do 0x1.0
-	do 2.0
-	do 0x2.0
-	do 0x1.0p+1
-	do 0x1.0p-1
-	do 0x0.0
-	do 0x1.23456789
-	do 0x0.123456789
-	do 0x0.0000123456789
-	do 0x1.23456789p10
-	do 0x1.23456789p+10
-	do 0x1.23456789p-10
-	do 0x0.123456789p10
-	do 0x0.123456789p+10
-	do 0x0.123456789abcdef0123456789abcdef012345p-10
-	do 0x0.0000123456789
-	do 0x0.0000123456789p+10
-	do 0x0.0000123456789p-10
-	do 0x123456789.0
-	do 0x0000123456789.0
-	do 0x123456789.0p+0
-	do 0x123456789.0p+1024
-	do 0x1.0p-16495		; Underflow
-	do 0x1.01p-16495	; Rounds to denorm
-	do 0x1.0p-16494		; Smallest denorm
-	do 0x1.ffffffffffffffffffffffffffffffffp-16384	; Rounds to denorm
-	do 0x1.0p-16383		; Denorm
-	do 0x1.ffffffffffffffffffffffffffffffffp-16383	; Rounds to normal
-	do 0x1.0p-16382		; Smallest non-denorm
-	do 0x1.0p+16383		; Biggest possible exponent
-	do 0x1.ffffffffffffffffffffffffffffffffp+16383	; Rounds to infinity
-	do Inf			; Infinity
-	do NaN
-
-; 16-bit
-	dw 1.0
-	dw 0h1.0
-	dw 2.0
-	dw 0h2.0
-	dw 0h1.0p+1
-	dw 0h1.0p-1
-	dw 0h0.0
-	dw 0h1.23456789
-	dw 0h0.123456789
-	dw 0h0.0000123456789
-	dw 0h1.23456789p10
-	dw 0h1.23456789p+10
-	dw 0h1.23456789p-10
-	dw 0h0.123456789p10
-	dw 0h0.123456789p+10
-	dw 0h0.123456789abcdef0123456789abcdef012345p-10
-	dw 0h0.0000123456789
-	dw 0h0.0000123456789p+10
-	dw 0h0.0000123456789p-10
-	dw 0h1.0p-25		; Underflow
-	dw 0h1.0p-24		; Smallest denorm
-	dw 0h1.ffffffffffffffffffffffffffffp-16	; Rounds to denorm
-	dw 0h1.0p-15		; Denorm
-	dw 0h1.ffffffffffffffffffffffffffffp-15	; Rounds to normal
-	dw 0h1.0p-14		; Smallest non-denorm
-	dw 0h1.0p+15		; Biggest possible exponent
-	dw 0h1.ffffffffffffffffffffffffffffp+15	; Rounds to infinity
-	dw Inf			; Infinity
-	dw NaN
-
-; 32-bit
-	dd 1.0
-	dd 0h1.0
-	dd 2.0
-	dd 0h2.0
-	dd 0h1.0p+1
-	dd 0h1.0p-1
-	dd 0h0.0
-	dd 0h1.23456789
-	dd 0h0.123456789
-	dd 0h0.0000123456789
-	dd 0h1.23456789p10
-	dd 0h1.23456789p+10
-	dd 0h1.23456789p-10
-	dd 0h0.123456789p10
-	dd 0h0.123456789p+10
-	dd 0h0.123456789abcdef0123456789abcdef012345p-10
-	dd 0h0.0000123456789
-	dd 0h0.0000123456789p+10
-	dd 0h0.0000123456789p-10
-	dd 0h123456789.0
-	dd 0h0000123456789.0
-	dd 0h123456789.0p+0
-	dd 0h123456789.0p+64
-	dd 0h1.0p-150		; Underflow
-	dd 0h1.0p-149		; Smallest denorm
-	dd 0h1.ffffffffffffffffffffffffffffp-128	; Rounds to denorm
-	dd 0h1.0p-127		; Denorm
-	dd 0h1.ffffffffffffffffffffffffffffp-127	; Rounds to normal
-	dd 0h1.0p-126		; Smallest non-denorm
-	dd 0h1.0p+127		; Biggest possible exponent
-	dd 0h1.ffffffffffffffffffffffffffffp+127	; Rounds to infinity
-	dd Inf			; Infinity
-	dd NaN
-
-; 64-bit
-	dq 1.0
-	dq 0h1.0
-	dq 2.0
-	dq 0h2.0
-	dq 0h1.0p+1
-	dq 0h1.0p-1
-	dq 0h0.0
-	dq 0h1.23456789
-	dq 0h0.123456789
-	dq 0h0.0000123456789
-	dq 0h1.23456789p10
-	dq 0h1.23456789p+10
-	dq 0h1.23456789p-10
-	dq 0h0.123456789p10
-	dq 0h0.123456789p+10
-	dq 0h0.123456789abcdef0123456789abcdef012345p-10
-	dq 0h0.0000123456789
-	dq 0h0.0000123456789p+10
-	dq 0h0.0000123456789p-10
-	dq 0h123456789.0
-	dq 0h0000123456789.0
-	dq 0h123456789.0p+0
-	dq 0h123456789.0p+300
-	dq 0h1.0p-1075		; Underflow
-	dq 0h1.0p-1074		; Smallest denorm
-	dq 0h1.ffffffffffffffffffffffffffffp-1024	; Rounds to denorm
-	dq 0h1.0p-1023		; Denorm
-	dq 0h1.ffffffffffffffffffffffffffffp-1023	; Rounds to normal
-	dq 0h1.0p-1022		; Smallest non-denorm
-	dq 0h1.0p+1023		; Biggest possible exponent
-	dq 0h1.ffffffffffffffffffffffffffffp+1023	; Rounds to infinity
-	dq Inf			; Infinity
-	dq NaN
-
-; 80-bit
-	dt 1.0
-	dt 0h1.0
-	dt 2.0
-	dt 0h2.0
-	dt 0h1.0p+1
-	dt 0h1.0p-1
-	dt 0h0.0
-	dt 0h1.23456789
-	dt 0h0.123456789
-	dt 0h0.0000123456789
-	dt 0h1.23456789p10
-	dt 0h1.23456789p+10
-	dt 0h1.23456789p-10
-	dt 0h0.123456789p10
-	dt 0h0.123456789p+10
-	dt 0h0.123456789abcdef0123456789abcdef012345p-10
-	dt 0h0.0000123456789
-	dt 0h0.0000123456789p+10
-	dt 0h0.0000123456789p-10
-	dt 0h123456789.0
-	dt 0h0000123456789.0
-	dt 0h123456789.0p+0
-	dt 0h123456789.0p+1024
-	dt 0h1.0p-16446		; Underflow
-	dt 0h1.0p-16445		; Smallest denorm
-	dt 0h1.ffffffffffffffffffffffffffffp-16384	; Rounds to denorm
-	dt 0h1.0p-16383		; Denorm
-	dt 0h1.ffffffffffffffffffffffffffffp-16383	; Rounds to normal
-	dt 0h1.0p-16382		; Smallest non-denorm
-	dt 0h1.0p+16383		; Biggest possible exponent
-	dt 0h1.ffffffffffffffffffffffffffffp+16383	; Rounds to infinity
-	dt Inf			; Infinity
-	dt NaN
-
-; 128-bit
-	do 1.0
-	do 0h1.0
-	do 2.0
-	do 0h2.0
-	do 0h1.0p+1
-	do 0h1.0p-1
-	do 0h0.0
-	do 0h1.23456789
-	do 0h0.123456789
-	do 0h0.0000123456789
-	do 0h1.23456789p10
-	do 0h1.23456789p+10
-	do 0h1.23456789p-10
-	do 0h0.123456789p10
-	do 0h0.123456789p+10
-	do 0h0.123456789abcdef0123456789abcdef012345p-10
-	do 0h0.0000123456789
-	do 0h0.0000123456789p+10
-	do 0h0.0000123456789p-10
-	do 0h123456789.0
-	do 0h0000123456789.0
-	do 0h123456789.0p+0
-	do 0h123456789.0p+1024
-	do 0h1.0p-16495		; Underflow
-	do 0h1.0p-16494		; Smallest denorm
-	do 0h1.ffffffffffffffffffffffffffffffffp-16384	; Rounds to denorm
-	do 0h1.0p-16383		; Denorm
-	do 0h1.ffffffffffffffffffffffffffffffffp-16383	; Rounds to normal
-	do 0h1.0p-16382		; Smallest non-denorm
-	do 0h1.0p+16383		; Biggest possible exponent
-	do 0h1.ffffffffffffffffffffffffffffffffp+16383	; Rounds to infinity
-	do Inf			; Infinity
-	do NaN
-
-; 16-bit
-	dw 1.0
-	dw $1.0
-	dw 2.0
-	dw $2.0
-	dw $1.0p+1
-	dw $1.0p-1
-	dw $0.0
-	dw $1.23456789
-	dw $0.123456789
-	dw $0.0000123456789
-	dw $1.23456789p10
-	dw $1.23456789p+10
-	dw $1.23456789p-10
-	dw $0.123456789p10
-	dw $0.123456789p+10
-	dw $0.123456789abcdef0123456789abcdef012345p-10
-	dw $0.0000123456789
-	dw $0.0000123456789p+10
-	dw $0.0000123456789p-10
-	dw $1.0p-25		; Underflow
-	dw $1.0p-24		; Smallest denorm
-	dw $1.ffffffffffffffffffffffffffffp-16	; Rounds to denorm
-	dw $1.0p-15		; Denorm
-	dw $1.ffffffffffffffffffffffffffffp-15	; Rounds to normal
-	dw $1.0p-14		; Smallest non-denorm
-	dw $1.0p+15		; Biggest possible exponent
-	dw $1.ffffffffffffffffffffffffffffp+15	; Rounds to infinity
-	dw Inf			; Infinity
-	dw NaN
-
-; 32-bit
-	dd 1.0
-	dd $1.0
-	dd 2.0
-	dd $2.0
-	dd $1.0p+1
-	dd $1.0p-1
-	dd $0.0
-	dd $1.23456789
-	dd $0.123456789
-	dd $0.0000123456789
-	dd $1.23456789p10
-	dd $1.23456789p+10
-	dd $1.23456789p-10
-	dd $0.123456789p10
-	dd $0.123456789p+10
-	dd $0.123456789abcdef0123456789abcdef012345p-10
-	dd $0.0000123456789
-	dd $0.0000123456789p+10
-	dd $0.0000123456789p-10
-	dd $123456789.0
-	dd $0000123456789.0
-	dd $123456789.0p+0
-	dd $123456789.0p+64
-	dd $1.0p-150		; Underflow
-	dd $1.0p-149		; Smallest denorm
-	dd $1.ffffffffffffffffffffffffffffp-128	; Rounds to denorm
-	dd $1.0p-127		; Denorm
-	dd $1.ffffffffffffffffffffffffffffp-127	; Rounds to normal
-	dd $1.0p-126		; Smallest non-denorm
-	dd $1.0p+127		; Biggest possible exponent
-	dd $1.ffffffffffffffffffffffffffffp+127	; Rounds to infinity
-	dd Inf			; Infinity
-	dd NaN
-
-; 64-bit
-	dq 1.0
-	dq $1.0
-	dq 2.0
-	dq $2.0
-	dq $1.0p+1
-	dq $1.0p-1
-	dq $0.0
-	dq $1.23456789
-	dq $0.123456789
-	dq $0.0000123456789
-	dq $1.23456789p10
-	dq $1.23456789p+10
-	dq $1.23456789p-10
-	dq $0.123456789p10
-	dq $0.123456789p+10
-	dq $0.123456789abcdef0123456789abcdef012345p-10
-	dq $0.0000123456789
-	dq $0.0000123456789p+10
-	dq $0.0000123456789p-10
-	dq $123456789.0
-	dq $0000123456789.0
-	dq $123456789.0p+0
-	dq $123456789.0p+300
-	dq $1.0p-1075		; Underflow
-	dq $1.0p-1074		; Smallest denorm
-	dq $1.ffffffffffffffffffffffffffffp-1024	; Rounds to denorm
-	dq $1.0p-1023		; Denorm
-	dq $1.ffffffffffffffffffffffffffffp-1023	; Rounds to normal
-	dq $1.0p-1022		; Smallest non-denorm
-	dq $1.0p+1023		; Biggest possible exponent
-	dq $1.ffffffffffffffffffffffffffffp+1023	; Rounds to infinity
-	dq Inf			; Infinity
-	dq NaN
-
-; 80-bit
-	dt 1.0
-	dt $1.0
-	dt 2.0
-	dt $2.0
-	dt $1.0p+1
-	dt $1.0p-1
-	dt $0.0
-	dt $1.23456789
-	dt $0.123456789
-	dt $0.0000123456789
-	dt $1.23456789p10
-	dt $1.23456789p+10
-	dt $1.23456789p-10
-	dt $0.123456789p10
-	dt $0.123456789p+10
-	dt $0.123456789abcdef0123456789abcdef012345p-10
-	dt $0.0000123456789
-	dt $0.0000123456789p+10
-	dt $0.0000123456789p-10
-	dt $123456789.0
-	dt $0000123456789.0
-	dt $123456789.0p+0
-	dt $123456789.0p+1024
-	dt $1.0p-16446		; Underflow
-	dt $1.0p-16445		; Smallest denorm
-	dt $1.ffffffffffffffffffffffffffffp-16384	; Rounds to denorm
-	dt $1.0p-16383		; Denorm
-	dt $1.ffffffffffffffffffffffffffffp-16383	; Rounds to normal
-	dt $1.0p-16382		; Smallest non-denorm
-	dt $1.0p+16383		; Biggest possible exponent
-	dt $1.ffffffffffffffffffffffffffffp+16383	; Rounds to infinity
-	dt Inf			; Infinity
-	dt NaN
-
-; 128-bit
-	do 1.0
-	do $1.0
-	do 2.0
-	do $2.0
-	do $1.0p+1
-	do $1.0p-1
-	do $0.0
-	do $1.23456789
-	do $0.123456789
-	do $0.0000123456789
-	do $1.23456789p10
-	do $1.23456789p+10
-	do $1.23456789p-10
-	do $0.123456789p10
-	do $0.123456789p+10
-	do $0.123456789abcdef0123456789abcdef012345p-10
-	do $0.0000123456789
-	do $0.0000123456789p+10
-	do $0.0000123456789p-10
-	do $123456789.0
-	do $0000123456789.0
-	do $123456789.0p+0
-	do $123456789.0p+1024
-	do $1.0p-16495		; Underflow
-	do $1.0p-16494		; Smallest denorm
-	do $1.ffffffffffffffffffffffffffffffffp-16384	; Rounds to denorm
-	do $1.0p-16383		; Denorm
-	do $1.ffffffffffffffffffffffffffffffffp-16383	; Rounds to normal
-	do $1.0p-16382		; Smallest non-denorm
-	do $1.0p+16383		; Biggest possible exponent
-	do $1.ffffffffffffffffffffffffffffffffp+16383	; Rounds to infinity
-	do Inf			; Infinity
-	do NaN
--- a/nasmbuild/nasm-2.13rc9/test/fpu.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-;Testname=test; Arguments=-fbin -ofpu.bin; Files=stdout stderr fpu.bin
-
-; relaxed encodings for FPU instructions, which NASM should support
-; -----------------------------------------------------------------
-
-%define void
-%define reg_fpu0 st0
-%define reg_fpu st1
-
-; no operands instead of one operand:
-
-  ; F(U)COM(P), FCOM2, FCOMP3, FCOMP5
-
-    FCOM            void
-    FCOMP           void
-    FUCOM           void
-    FUCOMP          void
-;    FCOM2           void
-;    FCOMP3          void
-;    FCOMP5          void
-
-  ; FLD, FST, FSTP, FSTP1, FSTP8, FSTP9
-
-    FLD             void
-    FST             void
-    FSTP            void
-;    FSTP1           void
-;    FSTP8           void
-;    FSTP9           void
-
-  ; FXCH, FXCH4, FXCH7, FFREE, FFREEP
-
-    FXCH            void
-;    FXCH4           void
-;    FXCH7           void
-    FFREE           void
-    FFREEP          void
-
-; no operands instead of two operands:
-
-  ; FADD(P), FMUL(P), FSUBR(P), FSUB(P), FDIVR(P), FDIV(P)
-
-    FADD            void
-    FADDP           void
-    FMUL            void
-    FMULP           void
-    FSUBR           void
-    FSUBRP          void
-    FSUB            void
-    FSUBP           void
-    FDIVR           void
-    FDIVRP          void
-    FDIV            void
-    FDIVP           void
-
-; one operand instead of two operands:
-
-  ; FADD, FMUL, FSUB, FSUBR, FDIV, FDIVR
-
-    FADD            reg_fpu
-    FMUL            reg_fpu
-    FSUB            reg_fpu
-    FSUBR           reg_fpu
-    FDIV            reg_fpu
-    FDIVR           reg_fpu
-
-  ; FADD, FMUL, FSUBR, FSUB, FDIVR, FDIV (with TO qualifier)
-
-    FADD            to reg_fpu
-    FMUL            to reg_fpu
-    FSUBR           to reg_fpu
-    FSUB            to reg_fpu
-    FDIVR           to reg_fpu
-    FDIV            to reg_fpu
-
-  ; FADDP, FMULP, FSUBRP, FSUBP, FDIVRP, FDIVP
-
-    FADDP           reg_fpu
-    FMULP           reg_fpu
-    FSUBRP          reg_fpu
-    FSUBP           reg_fpu
-    FDIVRP          reg_fpu
-    FDIVP           reg_fpu
-
-  ; FCMOV(N)B, FCMOV(N)E, FCMOV(N)BE, FCMOV(N)U, and F(U)COMI(P)
-
-    FCMOVB          reg_fpu
-    FCMOVNB         reg_fpu
-    FCMOVE          reg_fpu
-    FCMOVNE         reg_fpu
-    FCMOVBE         reg_fpu
-    FCMOVNBE        reg_fpu
-    FCMOVU          reg_fpu
-    FCMOVNU         reg_fpu
-    FCOMI           reg_fpu
-    FCOMIP          reg_fpu
-    FUCOMI          reg_fpu
-    FUCOMIP         reg_fpu
-
-; two operands instead of one operand:
-
-  ; these don't really exist, and thus are _NOT_ supported:
-
-;   FCOM            reg_fpu,reg_fpu0
-;   FCOM            reg_fpu0,reg_fpu
-;   FUCOM           reg_fpu,reg_fpu0
-;   FUCOM           reg_fpu0,reg_fpu
-;   FCOMP           reg_fpu,reg_fpu0
-;   FCOMP           reg_fpu0,reg_fpu
-;   FUCOMP          reg_fpu,reg_fpu0
-;   FUCOMP          reg_fpu0,reg_fpu
-
-;   FCOM2           reg_fpu,reg_fpu0
-;   FCOM2           reg_fpu0,reg_fpu
-;   FCOMP3          reg_fpu,reg_fpu0
-;   FCOMP3          reg_fpu0,reg_fpu
-;   FCOMP5          reg_fpu,reg_fpu0
-;   FCOMP5          reg_fpu0,reg_fpu
-
-;   FXCH            reg_fpu,reg_fpu0
-;   FXCH            reg_fpu0,reg_fpu
-;   FXCH4           reg_fpu,reg_fpu0
-;   FXCH4           reg_fpu0,reg_fpu
-;   FXCH7           reg_fpu,reg_fpu0
-;   FXCH7           reg_fpu0,reg_fpu
-
-; EOF
--- a/nasmbuild/nasm-2.13rc9/test/fwdopt.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-;Testname=test; Arguments=-fbin -ofwdopt.bin; Files=stdout stderr fwdopt.bin
-n0:	jmp n1
-n1:	jmp n2
-n2:	jmp n3
-n3:	jmp n4
-n4:	jmp n5
-n5:	jmp n6
-n6:	jmp n7
-n7:	jmp n8
-n8:	jmp n9
-n9:	jmp n10
-n10:	jmp n11
-n11:	jmp n12
-n12:	jmp n13
-n13:	jmp n14
-n14:	jmp n15
-n15:	jmp n16
-n16:	jmp n17
-n17:	jmp n18
-n18:	jmp n19
-n19:	jmp n20
-n20:	jmp n21
-n21:	jmp n22
-n22:	jmp n23
-n23:	jmp n24
-n24:	jmp n25
-n25:	jmp n26
-n26:	jmp n27
-n27:	jmp n28
-n28:	jmp n29
-n29:	jmp n30
-n30:	jmp n31
-n31:	jmp n32
-n32:	jmp n33
-n33:	jmp n34
-n34:	jmp n35
-n35:	jmp n36
-n36:	jmp n37
-n37:	jmp n38
-n38:	jmp n39
-n39:	jmp n40
-n40:	jmp n41
-n41:	jmp n42
-n42:	jmp n43
-n43:	jmp n44
-n44:	jmp n45
-n45:	jmp n46
-n46:	jmp n47
-n47:	jmp n48
-n48:	jmp n49
-n49:	jmp n50
-n50:	jmp n51
-n51:	jmp n52
-n52:	jmp n53
-n53:	jmp n54
-n54:	jmp n55
-n55:	jmp n56
-n56:	jmp n57
-n57:	jmp n58
-n58:	jmp n59
-n59:	jmp n60
-n60:	jmp n61
-n61:	jmp n62
-n62:	jmp n63
-n63:	jmp n64
-n64:	jmp n65
-n65:	jmp n66
-n66:	jmp n67
-n67:	jmp n68
-n68:	jmp n69
-n69:	jmp n70
-n70:	jmp n71
-n71:	jmp n72
-n72:	jmp n73
-n73:	jmp n74
-n74:	jmp n75
-n75:	jmp n76
-n76:	jmp n77
-n77:	jmp n78
-n78:	jmp n79
-n79:	jmp n80
-n80:	jmp n81
-n81:	jmp n82
-n82:	jmp n83
-n83:	jmp n84
-n84:	jmp n85
-n85:	jmp n86
-n86:	jmp n87
-n87:	jmp n88
-n88:	jmp n89
-n89:	jmp n90
-n90:	jmp n91
-n91:	jmp n92
-n92:	jmp n93
-n93:	jmp n94
-n94:	jmp n95
-n95:	jmp n96
-n96:	jmp n97
-n97:	jmp n98
-n98:	jmp n99
-n99:	jmp n100
-n100:	jmp n101
-n101:	jmp n102
-n102:	jmp n103
-n103:	jmp n104
-n104:	jmp n105
-n105:	jmp n106
-n106:	jmp n107
-n107:	jmp n108
-n108:	jmp n109
-n109:	jmp n110
-n110:	jmp n111
-n111:	jmp n112
-n112:	jmp n113
-n113:	jmp n114
-n114:	jmp n115
-n115:	jmp n116
-n116:	jmp n117
-n117:	jmp n118
-n118:	jmp n119
-n119:	jmp n120
-n120:	jmp n121
-n121:	jmp n122
-n122:	jmp n123
-n123:	jmp n124
-n124:	jmp n125
-n125:	jmp n126
-n126:	jmp n127
-n127:	jmp n0
-
-	;;  This should emit exactly 3 NOP bytes
-	times 260-($-$$) nop
-	hlt
--- a/nasmbuild/nasm-2.13rc9/test/fwdoptpp.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,150 +0,0 @@
-;Testname=error; Arguments=-fbin -DERROR -ofwdoptpp.bin; Files=stdout stderr fwdoptpp.bin
-;Testname=fatal; Arguments=-fbin -DFATAL -ofwdoptpp.bin; Files=stdout stderr fwdoptpp.bin
-;Testname=warning; Arguments=-fbin -DWARNING -ofwdoptpp.bin; Files=stdout stderr fwdoptpp.bin
-
-%ifndef ERROR
-  %ifndef FATAL
-    %ifndef WARNING
-      %define ERROR 1
-    %endif
-  %endif
-%endif
-	
-n0:	jmp n1
-n1:	jmp n2
-n2:	jmp n3
-n3:	jmp n4
-n4:	jmp n5
-n5:	jmp n6
-n6:	jmp n7
-n7:	jmp n8
-n8:	jmp n9
-n9:	jmp n10
-n10:	jmp n11
-n11:	jmp n12
-n12:	jmp n13
-n13:	jmp n14
-n14:	jmp n15
-n15:	jmp n16
-n16:	jmp n17
-n17:	jmp n18
-n18:	jmp n19
-n19:	jmp n20
-n20:	jmp n21
-n21:	jmp n22
-n22:	jmp n23
-n23:	jmp n24
-n24:	jmp n25
-n25:	jmp n26
-n26:	jmp n27
-n27:	jmp n28
-n28:	jmp n29
-n29:	jmp n30
-n30:	jmp n31
-n31:	jmp n32
-n32:	jmp n33
-n33:	jmp n34
-n34:	jmp n35
-n35:	jmp n36
-n36:	jmp n37
-n37:	jmp n38
-n38:	jmp n39
-n39:	jmp n40
-n40:	jmp n41
-n41:	jmp n42
-n42:	jmp n43
-n43:	jmp n44
-n44:	jmp n45
-n45:	jmp n46
-n46:	jmp n47
-n47:	jmp n48
-n48:	jmp n49
-n49:	jmp n50
-n50:	jmp n51
-n51:	jmp n52
-n52:	jmp n53
-n53:	jmp n54
-n54:	jmp n55
-n55:	jmp n56
-n56:	jmp n57
-n57:	jmp n58
-n58:	jmp n59
-n59:	jmp n60
-n60:	jmp n61
-n61:	jmp n62
-n62:	jmp n63
-n63:	jmp n64
-n64:	jmp n65
-n65:	jmp n66
-n66:	jmp n67
-n67:	jmp n68
-n68:	jmp n69
-n69:	jmp n70
-n70:	jmp n71
-n71:	jmp n72
-n72:	jmp n73
-n73:	jmp n74
-n74:	jmp n75
-n75:	jmp n76
-n76:	jmp n77
-n77:	jmp n78
-n78:	jmp n79
-n79:	jmp n80
-n80:	jmp n81
-n81:	jmp n82
-n82:	jmp n83
-n83:	jmp n84
-n84:	jmp n85
-n85:	jmp n86
-n86:	jmp n87
-n87:	jmp n88
-n88:	jmp n89
-n89:	jmp n90
-n90:	jmp n91
-n91:	jmp n92
-n92:	jmp n93
-n93:	jmp n94
-n94:	jmp n95
-n95:	jmp n96
-n96:	jmp n97
-n97:	jmp n98
-n98:	jmp n99
-n99:	jmp n100
-n100:	jmp n101
-n101:	jmp n102
-n102:	jmp n103
-n103:	jmp n104
-n104:	jmp n105
-n105:	jmp n106
-n106:	jmp n107
-n107:	jmp n108
-n108:	jmp n109
-n109:	jmp n110
-n110:	jmp n111
-n111:	jmp n112
-n112:	jmp n113
-n113:	jmp n114
-n114:	jmp n115
-n115:	jmp n116
-n116:	jmp n117
-n117:	jmp n118
-n118:	jmp n119
-n119:	jmp n120
-n120:	jmp n121
-n121:	jmp n122
-n122:	jmp n123
-n123:	jmp n124
-n124:	jmp n125
-n125:	jmp n126
-n126:	jmp n127
-n127:	jmp n0
-	
-%if ($-$$) > 257
-  %ifdef FATAL
-    %fatal "Out of space!"
-  %elifdef ERROR
-    %error "Out of space!"
-  %elifdef WARNING
-    %warning "Out of space!"
-  %endif
-%endif
--- a/nasmbuild/nasm-2.13rc9/test/gas2nasm.py	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-#!/usr/bin/env python -tt
-# -*- python -*-
-# Convert gas testsuite file to NASM test asm file
-# usage >
-# python gas2nasm.py -i input_gas_file -o output_nasm_file -b bits
-# e.g. python gas2nasm.py -i x86-64-avx512f-intel.d -o avx512f.asm -b 64
-
-import sys
-import os
-import optparse
-import re
-
-def setup():
-    parser = optparse.OptionParser()
-    parser.add_option('-i', dest='input', action='store',
-            default="",
-            help='Name for input gas testsuite file.')
-    parser.add_option('-o', dest='output', action='store',
-            default="",
-            help='Name for output NASM test asm file.')
-    parser.add_option('-b', dest='bits', action='store',
-            default="",
-            help='Bits for output ASM file.')
-    parser.add_option('-r', dest='raw_output', action='store',
-            default="",
-            help='Name for raw output bytes in text')
-    (options, args) =  parser.parse_args()
-    return options
-
-def read(options):
-    with open(options.input, 'rb') as f:
-        recs = []
-        for line in f:
-            if line[0] == '[':
-                d = []
-                strr = line[16:].partition('   ')
-                if strr[1] == '':
-                    strr = line[16:].partition('\t')
-                l = strr[0].strip()
-                r = strr[2].strip()
-                d.append(l)
-                d.append(r)
-                recs.append(d)
-    return recs
-
-def commas(recs):
-    replace_tbl = {' PTR':'', '\\':'', 'MM':'', 'XWORD':'OWORD'}
-    reccommas = []
-    for insn in recs:
-        new = []
-        byte = '0x' + insn[0].replace(' ', ', 0x')
-        for rep in replace_tbl.keys():
-            insn[1] = insn[1].replace(rep, replace_tbl[rep])
-        mnemonic = insn[1]
-
-        # gas size specifier for gather and scatter insturctions seems wrong. just remove them.
-        if 'gather' in insn[1] or 'scatter' in insn[1]:
-            mnemonic = mnemonic.replace('ZWORD', '')
-
-        new.append(byte)
-        new.append(mnemonic)
-        reccommas.append(new)
-    return reccommas
-
-# The spaces reserved here can be adjusted according to the output string length.
-# maxlen printed out at the end of the process will give a hint for it.
-outstrfmt = "testcase\t{ %-70s }, { %-60s }\n"
-
-macro = "%macro testcase 2\n %ifdef BIN\n  db %1\n %endif\n %ifdef SRC\n  %2\n %endif\n%endmacro\n\n\n"
-
-def write(data, options):
-    if options.output:
-        with open(options.output, 'wb') as out:
-            out.write(macro)
-            if options.bits:
-                out.write('bits ' + options.bits + '\n\n')
-            for insn in data:
-                outstr = outstrfmt % tuple(insn)
-                out.write(outstr)
-
-def write_rawbytes(data, options):
-    if options.raw_output:
-        with open(options.raw_output, 'wb') as out:
-            for insn in data:
-                out.write(insn[0] + '\n')
-
-if __name__ == "__main__":
-    options = setup()
-    recs = read(options)
-
-    write_rawbytes(recs, options)
-
-    recs = commas(recs)
-
-    write(recs, options)
-
-    maxlen = [0,0,0,0,0,0,0,0]
-    for insn in recs:
-#print insn[0] + '\t<-\t' + insn[1]
-        print outstrfmt[:-1] % tuple(insn)
-        for i, strstr in enumerate(insn):
-            if maxlen[i] < len(strstr): maxlen[i] = len(strstr)
-
-    print maxlen
--- a/nasmbuild/nasm-2.13rc9/test/gather.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-	bits 64
-
-	VGATHERQPS xmm1, [xmm0 + rsi], xmm2   ; OK
-	VGATHERQPS xmm1, [ymm0 + rsi], xmm2 ; fail: error: invalid effective address
-	VGATHERDPD ymm1, [xmm0 + rsi], ymm2   ; OK
-	VGATHERDPD xmm1, [xmm0 + rsi], xmm2   ; OK
-	VGATHERQPD xmm1, [xmm0 + rsi], xmm2   ; OK
-	VGATHERQPD ymm1, [ymm0 + rsi], ymm2   ; OK
-	VPGATHERQD xmm1, [xmm0 + rsi], xmm2   ; OK
-	VPGATHERQD xmm1, [ymm0 + rsi], xmm2   ; fail: error: invalid effective address
-	VPGATHERDQ ymm1, [xmm0 + rsi], ymm2   ; OK
--- a/nasmbuild/nasm-2.13rc9/test/gotoff64.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-;Testname=noerr; Arguments=-felf64 -ogotoff64.o; Files=stdout stderr gotoff64.o
-;Testname=err; Arguments=-DERROR -felf64 -ogotoff64.o; Files=stdout stderr gotoff64.o
-
-	bits 64
-	default rel
-
-	extern foo
-
-	mov r15,[foo wrt ..got]
-	lea r12,[foo wrt ..got]
-%ifdef ERROR
-	lea rax,[foo wrt ..gotoff]
-	mov rax,[foo wrt ..gotoff]
-%endif
-
-	default abs
-
-	mov r15,[foo wrt ..got]
-	lea r12,[foo wrt ..got]
-	mov rax,[qword foo wrt ..got]
-%ifdef ERROR
-	lea rax,[foo wrt ..gotoff]
-	mov rax,[foo wrt ..gotoff]
-%endif
-	mov rax,[qword foo wrt ..gotoff]
--- a/nasmbuild/nasm-2.13rc9/test/hle.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-	bits 32
-
-	xacquire lock add [esi],eax
-	xacquire xchg [eax],ebx
-	xrelease lock mov [eax],ecx
-	xrelease mov [eax],ecx
-	xacquire add ecx,[eax]
-	xrelease mov [eax],ecx
-
-	; Different opcodes!
-	mov [sym],eax
-	xrelease mov [sym],eax
-	xacquire mov [sym],eax
-
-	mov [sym],al
-	xrelease mov [sym],al
-	xacquire mov [sym],al
-
-sym	dd 0
--- a/nasmbuild/nasm-2.13rc9/test/ifelse.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-;Testname=ifelse; Arguments=-fbin -oifelse.bin; Files=stdout stderr ifelse.bin
-
-;No problems -> db 3
-%if 0
- db 0
-%elif 0 > 0
- db 1
-%elif 1 < 1
- db 2
-%else
- db 3
-%endif
-
-;Garbage after else, elif after else -> db 5
-%if 0
-  db 4
-%else trailing garbage
-  db 5
-%elif 1
-  db 6
-%endif
-
-;Garbage after endif ->
-%if 0
-  db 7
-%endif trailing garbage
-
-;else after else -> db 9
-%if 0
-  db 8
-%else
-  db 9
-%else
-  db 10
-%endif
-
-;Problem preprocessed out, no warning ->
-%if 0
-  %if 1
-    db 11
-  %else
-    db 12
-  %else
-    db 13
-  %endif
-%endif
--- a/nasmbuild/nasm-2.13rc9/test/ifenv.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-%macro import 1
-	%defstr %%incfile %!PROJECTBASEDIR/%{1}.inc
-	%defstr %%decfile %!'PROJECTBASEDIR'/%{1}.dec
-	db %%incfile, `\n`
-	db %%decfile, `\n`
-%endmacro
-
-%ifenv PROJECTBASEDIR
-import foo
-%else
-%warning No PROJECTBASEDIR defined
-%endif
-
-%ifenv %!PROJECTBASEDIR
-import foo
-%else
-%warning No PROJECTBASEDIR defined
-%endif
-
-%ifenv 'PROJECTBASEDIR'
-import foo
-%else
-%warning No PROJECTBASEDIR defined
-%endif
-
-%ifenv %!'PROJECTBASEDIR'
-import foo
-%else
-%warning No PROJECTBASEDIR defined
-%endif
-
--- a/nasmbuild/nasm-2.13rc9/test/ifmacro.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,413 +0,0 @@
-;Testname=test; Arguments=-fbin -oifmacro.txt; Files=stdout stderr ifmacro.txt
-
-;
-; ifmacro.asm
-;
-; Test of the new ifmacro directive
-;
-; This file produces a human-readable text file when compiled
-; with -f bin
-;
-
-%define LF 10
-
-%macro dummy 2
-	db 'This is a dummy macro, '
-	db 'arg1 = ', %1, ', '
-	db 'arg2 = ', %2, LF
-%endmacro
-
-	dummy 'this', 'that'
-
-%ifdef CR
-	db '%ifdef CR', LF
-%endif
-
-%ifdef LF
-	db '%ifdef LF', LF
-%endif
-
-%ifmacro dummy 1
-	db '%ifmacro dummy 1', LF
-%endif
-
-%ifmacro dummy 2
-	db '%ifmacro dummy 2', LF
-%endif
-
-%ifmacro dummy 3
-	db '%ifmacro dummy 3', LF
-%endif
-
-%ifmacro dummy 1+
-	db '%ifmacro dummy 1+', LF
-%endif
-
-%ifmacro dummy 2+
-	db '%ifmacro dummy 2+', LF
-%endif
-
-%ifmacro dummy 3+
-	db '%ifmacro dummy 3+', LF
-%endif
-
-%ifmacro dummy
-	db '%ifmacro dummy', LF
-%endif
-
-%ifmacro dummy 0-1
-	db '%ifmacro dummy 0-1', LF
-%endif
-
-%ifmacro dummy 1-2
-	db '%ifmacro dummy 1-2', LF
-%endif
-
-%ifmacro dummy 2-3
-	db '%ifmacro dummy 2-3', LF
-%endif
-
-%ifmacro dummy 3-4
-	db '%ifmacro dummy 3-4', LF
-%endif
-
-%ifmacro LF
-	db '%ifmacro LF', LF
-%endif
-
-%ifndef CR
-	db '%ifndef CR', LF
-%endif
-
-%ifndef LF
-	db '%ifndef LF', LF
-%endif
-
-%ifnmacro dummy 1
-	db '%ifnmacro dummy 1', LF
-%endif
-
-%ifnmacro dummy 2
-	db '%ifnmacro dummy 2', LF
-%endif
-
-%ifnmacro dummy 3
-	db '%ifnmacro dummy 3', LF
-%endif
-
-%ifnmacro dummy 1+
-	db '%ifnmacro dummy 1+', LF
-%endif
-
-%ifnmacro dummy 2+
-	db '%ifnmacro dummy 2+', LF
-%endif
-
-%ifnmacro dummy 3+
-	db '%ifnmacro dummy 3+', LF
-%endif
-
-%ifnmacro dummy
-	db '%ifnmacro dummy', LF
-%endif
-
-%ifnmacro dummy 0-1
-	db '%ifnmacro dummy 0-1', LF
-%endif
-
-%ifnmacro dummy 1-2
-	db '%ifnmacro dummy 1-2', LF
-%endif
-
-%ifnmacro dummy 2-3
-	db '%ifnmacro dummy 2-3', LF
-%endif
-
-%ifnmacro dummy 3-4
-	db '%ifnmacro dummy 3-4', LF
-%endif
-
-%ifnmacro LF
-	db '%ifnmacro LF', LF
-%endif
-
-%if 0
-%elifdef CR
-	db '%elifdef CR', CR
-%endif
-
-%if 0
-%elifdef LF
-	db '%elifdef LF', LF
-%endif
-
-%if 0
-%elifmacro dummy 1
-	db '%elifmacro dummy 1', LF
-%endif
-
-%if 0
-%elifmacro dummy 2
-	db '%elifmacro dummy 2', LF
-%endif
-
-%if 0
-%elifmacro dummy 3
-	db '%elifmacro dummy 3', LF
-%endif
-
-%if 0
-%elifmacro dummy 1+
-	db '%elifmacro dummy 1+', LF
-%endif
-
-%if 0
-%elifmacro dummy 2+
-	db '%elifmacro dummy 2+', LF
-%endif
-
-%if 0
-%elifmacro dummy 3+
-	db '%elifmacro dummy 3+', LF
-%endif
-
-%if 0
-%elifmacro dummy
-	db '%elifmacro dummy', LF
-%endif
-
-%if 0
-%elifmacro dummy 0-1
-	db '%elifmacro dummy 0-1', LF
-%endif
-
-%if 0
-%elifmacro dummy 1-2
-	db '%elifmacro dummy 1-2', LF
-%endif
-
-%if 0
-%elifmacro dummy 2-3
-	db '%elifmacro dummy 2-3', LF
-%endif
-
-%if 0
-%elifmacro dummy 3-4
-	db '%elifmacro dummy 3-4', LF
-%endif
-
-%if 0
-%elifmacro LF
-	db '%elifmacro LF', LF
-%endif
-
-%if 0
-%elifndef CR
-	db '%elifndef CR', LF
-%endif
-
-%if 0
-%elifndef LF
-	db '%elifndef LF', LF
-%endif
-
-%if 0
-%elifnmacro dummy 1
-	db '%elifnmacro dummy 1', LF
-%endif
-
-%if 0
-%elifnmacro dummy 2
-	db '%elifnmacro dummy 2', LF
-%endif
-
-%if 0
-%elifnmacro dummy 3
-	db '%elifnmacro dummy 3', LF
-%endif
-
-%if 0
-%elifnmacro dummy 1+
-	db '%elifnmacro dummy 1+', LF
-%endif
-
-%if 0
-%elifnmacro dummy 2+
-	db '%elifnmacro dummy 2+', LF
-%endif
-
-%if 0
-%elifnmacro dummy 3+
-	db '%elifnmacro dummy 3+', LF
-%endif
-
-%if 0
-%elifnmacro dummy
-	db '%elifnmacro dummy', LF
-%endif
-
-%if 0
-%elifnmacro dummy 0-1
-	db '%elifnmacro dummy 0-1', LF
-%endif
-
-%if 0
-%elifnmacro dummy 1-2
-	db '%elifnmacro dummy 1-2', LF
-%endif
-
-%if 0
-%elifnmacro dummy 2-3
-	db '%elifnmacro dummy 2-3', LF
-%endif
-
-%if 0
-%elifnmacro dummy 3-4
-	db '%elifnmacro dummy 3-4', LF
-%endif
-
-%if 0
-%elifnmacro LF
-	db '%elifnmacro LF', LF
-%endif
-
-%if 1
-%elifdef CR
-	db 'bad %elifdef CR', LF
-%endif
-
-%if 1
-%elifdef LF
-	db 'bad %elifdef LF', LF
-%endif
-
-%if 1
-%elifmacro dummy 1
-	db 'bad %elifmacro dummy 1', LF
-%endif
-
-%if 1
-%elifmacro dummy 2
-	db 'bad %elifmacro dummy 2', LF
-%endif
-
-%if 1
-%elifmacro dummy 3
-	db 'bad %elifmacro dummy 3', LF
-%endif
-
-%if 1
-%elifmacro dummy 1+
-	db 'bad %elifmacro dummy 1+', LF
-%endif
-
-%if 1
-%elifmacro dummy 2+
-	db 'bad %elifmacro dummy 2+', LF
-%endif
-
-%if 1
-%elifmacro dummy 3+
-	db 'bad %elifmacro dummy 3+', LF
-%endif
-
-%if 1
-%elifmacro dummy
-	db 'bad %elifmacro dummy', LF
-%endif
-
-%if 1
-%elifmacro dummy 0-1
-	db 'bad %elifmacro dummy 0-1', LF
-%endif
-
-%if 1
-%elifmacro dummy 1-2
-	db 'bad %elifmacro dummy 1-2', LF
-%endif
-
-%if 1
-%elifmacro dummy 2-3
-	db 'bad %elifmacro dummy 2-3', LF
-%endif
-
-%if 1
-%elifmacro dummy 3-4
-	db 'bad %elifmacro dummy 3-4', LF
-%endif
-
-%if 1
-%elifmacro LF
-	db 'bad %elifmacro LF', LF
-%endif
-
-%if 1
-%elifndef CR
-	db 'bad %elifndef CR', LF
-%endif
-
-%if 1
-%elifndef LF
-	db 'bad %elifndef LF', LF
-%endif
-
-%if 1
-%elifnmacro dummy 1
-	db 'bad %elifnmacro dummy 1', LF
-%endif
-
-%if 1
-%elifnmacro dummy 2
-	db 'bad %elifnmacro dummy 2', LF
-%endif
-
-%if 1
-%elifnmacro dummy 3
-	db 'bad %elifnmacro dummy 3', LF
-%endif
-
-%if 1
-%elifnmacro dummy 1+
-	db 'bad %elifnmacro dummy 1+', LF
-%endif
-
-%if 1
-%elifnmacro dummy 2+
-	db 'bad %elifnmacro dummy 2+', LF
-%endif
-
-%if 1
-%elifnmacro dummy 3+
-	db 'bad %elifnmacro dummy 3+', LF
-%endif
-
-%if 1
-%elifnmacro dummy
-	db 'bad %elifnmacro dummy', LF
-%endif
-
-%if 1
-%elifnmacro dummy 0-1
-	db 'bad %elifnmacro dummy 0-1', LF
-%endif
-
-%if 1
-%elifnmacro dummy 1-2
-	db 'bad %elifnmacro dummy 1-2', LF
-%endif
-
-%if 1
-%elifnmacro dummy 2-3
-	db 'bad %elifnmacro dummy 2-3', LF
-%endif
-
-%if 1
-%elifnmacro dummy 3-4
-	db 'bad %elifnmacro dummy 3-4', LF
-%endif
-
-%if 1
-%elifnmacro LF
-	db 'bad %elifnmacro LF', LF
-%endif
-
--- a/nasmbuild/nasm-2.13rc9/test/iftoken.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,317 +0,0 @@
-;Testname=test; Arguments=-fbin -oiftoken.txt; Files=stdout stderr iftoken.txt
-
-%define ZMACRO
-%define NMACRO 1
-%define TMACRO 1 2
-	db 'N "":'
-%iftoken 
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty 
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'C "":'
-%iftoken  ; With a comment!
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty  ; With a comment!
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'N "ZMACRO":'
-%iftoken ZMACRO
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty ZMACRO
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'C "ZMACRO":'
-%iftoken ZMACRO ; With a comment!
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty ZMACRO ; With a comment!
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'N "NMACRO":'
-%iftoken NMACRO
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty NMACRO
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'C "NMACRO":'
-%iftoken NMACRO ; With a comment!
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty NMACRO ; With a comment!
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'N "TMACRO":'
-%iftoken TMACRO
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty TMACRO
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'C "TMACRO":'
-%iftoken TMACRO ; With a comment!
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty TMACRO ; With a comment!
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'N "1":'
-%iftoken 1
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty 1
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'C "1":'
-%iftoken 1 ; With a comment!
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty 1 ; With a comment!
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'N "+1":'
-%iftoken +1
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty +1
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'C "+1":'
-%iftoken +1 ; With a comment!
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty +1 ; With a comment!
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'N "1 2":'
-%iftoken 1 2
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty 1 2
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'C "1 2":'
-%iftoken 1 2 ; With a comment!
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty 1 2 ; With a comment!
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'N "1,2":'
-%iftoken 1,2
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty 1,2
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'C "1,2":'
-%iftoken 1,2 ; With a comment!
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty 1,2 ; With a comment!
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'N "foo":'
-%iftoken foo
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty foo
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'C "foo":'
-%iftoken foo ; With a comment!
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty foo ; With a comment!
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'N "foo bar":'
-%iftoken foo bar
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty foo bar
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'C "foo bar":'
-%iftoken foo bar ; With a comment!
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty foo bar ; With a comment!
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'N "%":'
-%iftoken %
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty %
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'C "%":'
-%iftoken % ; With a comment!
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty % ; With a comment!
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'N "+foo":'
-%iftoken +foo
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty +foo
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'C "+foo":'
-%iftoken +foo ; With a comment!
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty +foo ; With a comment!
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'N "<<":'
-%iftoken <<
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty <<
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
-	db 'C "<<":'
-%iftoken << ; With a comment!
-	db ' token'
-%else
-	db ' ntoken'
-%endif
-%ifempty << ; With a comment!
-	db ' empty'
-%else
-	db ' nempty'
-%endif
-	db 10
--- a/nasmbuild/nasm-2.13rc9/test/iftoken.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-#!/usr/bin/perl
-
-@list = ('', 'ZMACRO', 'NMACRO', 'TMACRO', '1', '+1', '1 2', '1,2',
-	 'foo', 'foo bar', '%', '+foo', '<<');
-@tests = ('token', 'empty');
-
-print ";Testname=test; Arguments=-fbin -oiftoken.txt; Files=stdout stderr iftoken.txt"
-print "%define ZMACRO\n";
-print "%define NMACRO 1\n";
-print "%define TMACRO 1 2\n";
-
-foreach $x (@list) {
-    print "\tdb 'N \"$x\":'\n";
-    foreach $t (@tests) {
-	print "%if$t $x\n";
-	print "\tdb ' $t'\n";
-	print "%else\n";
-	print "\tdb ' n$t'\n";
-	print "%endif\n";
-    }
-    print "\tdb 10\n";
-
-    print "\tdb 'C \"$x\":'\n";
-    foreach $t (@tests) {
-	print "%if$t $x ; With a comment!\n";
-	print "\tdb ' $t'\n";
-	print "%else\n";
-	print "\tdb ' n$t'\n";
-	print "%endif\n";
-    }
-    print "\tdb 10\n";
-}
--- a/nasmbuild/nasm-2.13rc9/test/ilog2.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,271 +0,0 @@
-%use ifunc
-
-	db ilog2(0x1)
-	db ilog2(0x2)
-	db ilog2(0x4)
-	db ilog2(0x8)
-	db ilog2(0x10)
-	db ilog2(0x20)
-	db ilog2(0x40)
-	db ilog2(0x80)
-	db ilog2(0x100)
-	db ilog2(0x200)
-	db ilog2(0x400)
-	db ilog2(0x800)
-	db ilog2(0x1000)
-	db ilog2(0x2000)
-	db ilog2(0x4000)
-	db ilog2(0x8000)
-	db ilog2(0x10000)
-	db ilog2(0x20000)
-	db ilog2(0x40000)
-	db ilog2(0x80000)
-	db ilog2(0x100000)
-	db ilog2(0x200000)
-	db ilog2(0x400000)
-	db ilog2(0x800000)
-	db ilog2(0x1000000)
-	db ilog2(0x2000000)
-	db ilog2(0x4000000)
-	db ilog2(0x8000000)
-	db ilog2(0x10000000)
-	db ilog2(0x20000000)
-	db ilog2(0x40000000)
-	db ilog2(0x80000000)
-
-	db ilog2w(0x1)
-	db ilog2w(0x2)
-	db ilog2w(0x4)
-	db ilog2w(0x8)
-	db ilog2w(0x10)
-	db ilog2w(0x20)
-	db ilog2w(0x40)
-	db ilog2w(0x80)
-	db ilog2w(0x100)
-	db ilog2w(0x200)
-	db ilog2w(0x400)
-	db ilog2w(0x800)
-	db ilog2w(0x1000)
-	db ilog2w(0x2000)
-	db ilog2w(0x4000)
-	db ilog2w(0x8000)
-	db ilog2w(0x10000)
-	db ilog2w(0x20000)
-	db ilog2w(0x40000)
-	db ilog2w(0x80000)
-	db ilog2w(0x100000)
-	db ilog2w(0x200000)
-	db ilog2w(0x400000)
-	db ilog2w(0x800000)
-	db ilog2w(0x1000000)
-	db ilog2w(0x2000000)
-	db ilog2w(0x4000000)
-	db ilog2w(0x8000000)
-	db ilog2w(0x10000000)
-	db ilog2w(0x20000000)
-	db ilog2w(0x40000000)
-	db ilog2w(0x80000000)
-
-	db ilog2f(0x1)
-	db ilog2f(0x2)
-	db ilog2f(0x4)
-	db ilog2f(0x8)
-	db ilog2f(0x10)
-	db ilog2f(0x20)
-	db ilog2f(0x40)
-	db ilog2f(0x80)
-	db ilog2f(0x100)
-	db ilog2f(0x200)
-	db ilog2f(0x400)
-	db ilog2f(0x800)
-	db ilog2f(0x1000)
-	db ilog2f(0x2000)
-	db ilog2f(0x4000)
-	db ilog2f(0x8000)
-	db ilog2f(0x10000)
-	db ilog2f(0x20000)
-	db ilog2f(0x40000)
-	db ilog2f(0x80000)
-	db ilog2f(0x100000)
-	db ilog2f(0x200000)
-	db ilog2f(0x400000)
-	db ilog2f(0x800000)
-	db ilog2f(0x1000000)
-	db ilog2f(0x2000000)
-	db ilog2f(0x4000000)
-	db ilog2f(0x8000000)
-	db ilog2f(0x10000000)
-	db ilog2f(0x20000000)
-	db ilog2f(0x40000000)
-	db ilog2f(0x80000000)
-
-	db ilog2c(0x1)
-	db ilog2c(0x2)
-	db ilog2c(0x4)
-	db ilog2c(0x8)
-	db ilog2c(0x10)
-	db ilog2c(0x20)
-	db ilog2c(0x40)
-	db ilog2c(0x80)
-	db ilog2c(0x100)
-	db ilog2c(0x200)
-	db ilog2c(0x400)
-	db ilog2c(0x800)
-	db ilog2c(0x1000)
-	db ilog2c(0x2000)
-	db ilog2c(0x4000)
-	db ilog2c(0x8000)
-	db ilog2c(0x10000)
-	db ilog2c(0x20000)
-	db ilog2c(0x40000)
-	db ilog2c(0x80000)
-	db ilog2c(0x100000)
-	db ilog2c(0x200000)
-	db ilog2c(0x400000)
-	db ilog2c(0x800000)
-	db ilog2c(0x1000000)
-	db ilog2c(0x2000000)
-	db ilog2c(0x4000000)
-	db ilog2c(0x8000000)
-	db ilog2c(0x10000000)
-	db ilog2c(0x20000000)
-	db ilog2c(0x40000000)
-	db ilog2c(0x80000000)
-
-%ifdef ERROR
-	db ilog2(0x0)
-	db ilog2(0x3)
-	db ilog2(0x5)
-	db ilog2(0x9)
-	db ilog2(0x10)
-	db ilog2(0x30)
-	db ilog2(0x50)
-	db ilog2(0x90)
-	db ilog2(0x100)
-	db ilog2(0x300)
-	db ilog2(0x500)
-	db ilog2(0x900)
-	db ilog2(0x1000)
-	db ilog2(0x3000)
-	db ilog2(0x5000)
-	db ilog2(0x9000)
-	db ilog2(0x10000)
-	db ilog2(0x30000)
-	db ilog2(0x50000)
-	db ilog2(0x90000)
-	db ilog2(0x100000)
-	db ilog2(0x300000)
-	db ilog2(0x500000)
-	db ilog2(0x900000)
-	db ilog2(0x1000000)
-	db ilog2(0x3000000)
-	db ilog2(0x5000000)
-	db ilog2(0x9000000)
-	db ilog2(0x10000000)
-	db ilog2(0x30000000)
-	db ilog2(0x50000000)
-	db ilog2(0x90000000)
-%endif
-
-%ifdef WARNING
-	db ilog2w(0x0)
-	db ilog2w(0x3)
-	db ilog2w(0x5)
-	db ilog2w(0x9)
-	db ilog2w(0x10)
-	db ilog2w(0x30)
-	db ilog2w(0x50)
-	db ilog2w(0x90)
-	db ilog2w(0x100)
-	db ilog2w(0x300)
-	db ilog2w(0x500)
-	db ilog2w(0x900)
-	db ilog2w(0x1000)
-	db ilog2w(0x3000)
-	db ilog2w(0x5000)
-	db ilog2w(0x9000)
-	db ilog2w(0x10000)
-	db ilog2w(0x30000)
-	db ilog2w(0x50000)
-	db ilog2w(0x90000)
-	db ilog2w(0x100000)
-	db ilog2w(0x300000)
-	db ilog2w(0x500000)
-	db ilog2w(0x900000)
-	db ilog2w(0x1000000)
-	db ilog2w(0x3000000)
-	db ilog2w(0x5000000)
-	db ilog2w(0x9000000)
-	db ilog2w(0x10000000)
-	db ilog2w(0x30000000)
-	db ilog2w(0x50000000)
-	db ilog2w(0x90000000)
-%endif
-
-	db ilog2f(0x0)
-	db ilog2f(0x1)
-	db ilog2f(0x3)
-	db ilog2f(0x5)
-	db ilog2f(0x9)
-	db ilog2f(0x10)
-	db ilog2f(0x30)
-	db ilog2f(0x50)
-	db ilog2f(0x90)
-	db ilog2f(0x100)
-	db ilog2f(0x300)
-	db ilog2f(0x500)
-	db ilog2f(0x900)
-	db ilog2f(0x1000)
-	db ilog2f(0x3000)
-	db ilog2f(0x5000)
-	db ilog2f(0x9000)
-	db ilog2f(0x10000)
-	db ilog2f(0x30000)
-	db ilog2f(0x50000)
-	db ilog2f(0x90000)
-	db ilog2f(0x100000)
-	db ilog2f(0x300000)
-	db ilog2f(0x500000)
-	db ilog2f(0x900000)
-	db ilog2f(0x1000000)
-	db ilog2f(0x3000000)
-	db ilog2f(0x5000000)
-	db ilog2f(0x9000000)
-	db ilog2f(0x10000000)
-	db ilog2f(0x30000000)
-	db ilog2f(0x50000000)
-	db ilog2f(0x90000000)
-
-	db ilog2c(0x0)
-	db ilog2c(0x1)
-	db ilog2c(0x3)
-	db ilog2c(0x5)
-	db ilog2c(0x9)
-	db ilog2c(0x10)
-	db ilog2c(0x30)
-	db ilog2c(0x50)
-	db ilog2c(0x90)
-	db ilog2c(0x100)
-	db ilog2c(0x300)
-	db ilog2c(0x500)
-	db ilog2c(0x900)
-	db ilog2c(0x1000)
-	db ilog2c(0x3000)
-	db ilog2c(0x5000)
-	db ilog2c(0x9000)
-	db ilog2c(0x10000)
-	db ilog2c(0x30000)
-	db ilog2c(0x50000)
-	db ilog2c(0x90000)
-	db ilog2c(0x100000)
-	db ilog2c(0x300000)
-	db ilog2c(0x500000)
-	db ilog2c(0x900000)
-	db ilog2c(0x1000000)
-	db ilog2c(0x3000000)
-	db ilog2c(0x5000000)
-	db ilog2c(0x9000000)
-	db ilog2c(0x10000000)
-	db ilog2c(0x30000000)
-	db ilog2c(0x50000000)
-	db ilog2c(0x90000000)
--- a/nasmbuild/nasm-2.13rc9/test/imacro.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-;Testname=test; Arguments=-fbin -oimacro.bin; Files=stdout stderr imacro.bin
-
-%imacro Zero 1
-	xor %1,%1
-%endmacro
-
-	Zero eax
-	zero eax
--- a/nasmbuild/nasm-2.13rc9/test/imm.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-	bits 64
-
-	mov eax,1
-	mov eax,-1
-	mov eax,0x11111111
-	mov ecx,2
-	add ecx,-6
-	add ecx,strict dword -6
-	add ecx,4
-	add ecx,strict dword 4
-	add ecx,10000
-	xor ecx,0xffffffff
-	xor ecx,dword 0xffffffff
-	xor ecx,strict dword 0xffffffff
-	xor ecx,-1
-	xor ecx,dword -1
-	xor ecx,strict dword -1
-	add edx,byte ($-$$)
-%ifnidn __OUTPUT_FORMAT__,bin
-	extern foo, bar
-	add eax,byte foo
-	add edx,byte (bar-$$)
-%endif
--- a/nasmbuild/nasm-2.13rc9/test/imm64.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-;Testname=imm64-O0; Arguments=-O0 -fbin -oimm64.bin; Files=stdout stderr imm64.bin
-;Testname=imm64-O1; Arguments=-O1 -fbin -oimm64.bin; Files=stdout stderr imm64.bin
-;Testname=imm64-Ox; Arguments=-Ox -fbin -oimm64.bin; Files=stdout stderr imm64.bin
-
-	bits 64
-	mov rax,11223344h
-	mov rax,dword 11223344h
-	mov eax,11223344h
-	mov [rax],dword 11223344h		; 32-bit operation
-	mov qword [rax],11223344h
-	mov qword [rax],dword 11223344h
-
-	mov rax,0_ffffffff_8899aabbh
-	mov rax,dword 0_ffffffff_8899aabbh
-	mov eax,0_ffffffff_8899aabbh
-	mov [rax],dword 0_ffffffff_8899aabbh	; 32-bit operation
-	mov qword [rax],0_ffffffff_8899aabbh
-	mov qword [rax],dword 0_ffffffff_8899aabbh
-
-	mov rax,7fffffffh
-	mov rax,80000000h
-	mov rax,0_ffffffffh
-	mov rax,1_00000000h
-	mov rax,0_ffffffff_7fffffffh
-	mov rax,0_ffffffff_80000000h
-
-	mov rax,0_11223344_8899aabbh
-	mov rax,dword 0_11223344_8899aabbh
-	mov eax,0_11223344_8899aabbh
-	mov [rax],dword 0_11223344_8899aabbh	; 32-bit operation
-	mov qword [rax],0_11223344_8899aabbh
-	mov qword [rax],dword 0_11223344_8899aabbh
-	
-	mov rax,strict 11223344h
-	mov rax,strict dword 11223344h
-	mov eax,strict 11223344h
-	mov [rax],strict dword 11223344h		; 32-bit operation
-	mov qword [rax],strict 11223344h
-	mov qword [rax],strict dword 11223344h
-
-	mov rax,strict 0_ffffffff_8899aabbh
-	mov rax,strict dword 0_ffffffff_8899aabbh
-	mov eax,strict 0_ffffffff_8899aabbh
-	mov [rax],strict dword 0_ffffffff_8899aabbh	; 32-bit operation
-	mov qword [rax],strict 0_ffffffff_8899aabbh
-	mov qword [rax],strict dword 0_ffffffff_8899aabbh
-
-	mov rax,strict 7fffffffh
-	mov rax,strict 80000000h
-	mov rax,strict 0_ffffffffh
-	mov rax,strict 1_00000000h
-	mov rax,strict 0_ffffffff_7fffffffh
-	mov rax,strict 0_ffffffff_80000000h
-
-	mov rax,strict 0_11223344_8899aabbh
-	mov rax,strict dword 0_11223344_8899aabbh
-	mov eax,strict 0_11223344_8899aabbh
-	mov [rax],strict dword 0_11223344_8899aabbh	; 32-bit operation
-	mov qword [rax],strict 0_11223344_8899aabbh
-	mov qword [rax],strict dword 0_11223344_8899aabbh
-	
--- a/nasmbuild/nasm-2.13rc9/test/immwarn.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,91 +0,0 @@
-;Testname=onowarn; Arguments=-Ox -DOPT=1 -DWARN=0 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin
-;Testname=owarn; Arguments=-Ox -DOPT=1 -DWARN=1 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin
-;Testname=nowarn; Arguments=-O0 -DOPT=0 -DWARN=0 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin
-;Testname=warn; Arguments=-O0 -DOPT=1 -DWARN=1 -fbin -oimmwarn.bin; Files=stdout stderr immwarn.bin
-
-%ifndef WARN
-  %define WARN 1
-%endif
-
-	bits 16
-	push 1
-%if WARN
-	push 0ffffffffh
-%endif
-	push -1
-	push 0ffffh
-	push byte 0FFFFh
-
-	add ax,0FFFFh
-%if WARN
-	add ax,0FFFFFFFFh
-%endif
-	add ax,-1
-	add ax,byte 0FFFFh
-%if WARN
-	add ax,byte 0FFFFFFFFh
-%endif
-	add ax,-1
-
-	add cx,0FFFFh
-%if WARN
-	add cx,0FFFFFFFFh
-%endif
-	add cx,-1
-	add cx,byte 0FFFFh
-%if WARN
-	add cx,byte 0FFFFFFFFh
-%endif
-	add cx,-1
-
-	bits 32
-	push 1
-	push 0ffffffffh
-	push -1
-	push 0ffffh
-
-	push byte 1
-%if WARN
-	push byte 0ffffh
-%endif
-	push byte -1
-
-	push word 1
-	push word 0ffffh
-	push word -1
-
-	push dword 1
-	push dword 0ffffffffh
-	push dword -1
-
-	add eax,0FFFFh
-	add eax,0FFFFFFFFh
-	add eax,-1
-
-	add ecx,0FFFFh
-	add ecx,0FFFFFFFFh
-	add ecx,-1
-
-	bits 64
-	mov eax,7fffffffh
-	mov eax,80000000h
-	mov rax,7fffffffh
-	mov rax,80000000h
-%if WARN
-	mov rax,dword 80000000h
-%endif
-	add rcx,0FFFFh
-%if WARN
-	add rcx,0FFFFFFFFh
-%endif
-	add rcx,-1
-
-	add ecx,0FFFFh
-	add ecx,0FFFFFFFFh
-	add ecx,-1
-
-	push byte 1
-%if WARN
-	push byte 0ffffffffh
-%endif
-	push byte -1
--- a/nasmbuild/nasm-2.13rc9/test/imul.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,117 +0,0 @@
-;Testname=nowarn; Arguments=-fbin -oimul.bin; Files=stdout stderr imul.bin
-;Testname=warn; Arguments=-DWARN -fbin -oimul.bin; Files=stdout stderr imul.bin
-
-%macro test 1-3 5 -2
-	bits %1
-
-%undef MEM
-%if %1 == 16
-  %define MEM [di]
-%elif %1 == 32
-  %define MEM [edi]
-%elif %1 == 64
-  %define MEM [rdi]
-%endif
-
-	imul al
-	imul byte MEM
-	imul ax
-	imul word MEM
-	imul eax
-	imul dword MEM
-%if %1 == 64
-	imul rdx
-	imul qword MEM
-%endif
-	
-	imul ax,cx
-	imul ax,MEM
-	imul ax,word MEM
-	imul eax,ecx
-	imul eax,MEM
-	imul eax,dword MEM
-%if %1 == 64
-	imul rax,rcx
-	imul rax,MEM
-	imul rax,qword MEM
-%endif
-
-	imul ax,cx,%2
-	imul ax,cx,byte %2
-	imul ax,MEM,%2
-	imul ax,word MEM,%2
-	imul eax,ecx,%2
-	imul eax,ecx,byte %2
-	imul eax,MEM,%2
-	imul eax,dword MEM,%2
-%if %1 == 64
-	imul rax,rcx,%2
-	imul rax,rcx,byte %2
-	imul rax,MEM,%2
-	imul rax,qword MEM,%2
-%endif
-
-	imul ax,%2
-	imul ax,byte %2
-	imul eax,%2
-	imul eax,byte %2
-%if %1 == 64
-	imul rax,%2
-	imul rax,byte %2
-%endif
-
-	imul ax,cx,0x1234
-	imul ax,MEM,0x1234
-	imul ax,word MEM,0x1234
-	imul eax,ecx,0x12345678
-	imul eax,MEM,0x12345678
-	imul eax,dword MEM,0x12345678
-%if %1 == 64
-	imul rax,rcx,0x12345678
-	imul rax,MEM,0x12345678
-	imul rax,qword MEM,0x12345678
-%endif
-
-	imul ax,0x1234
-	imul eax,0x12345678
-%if %1 == 64
-	imul rax,0x12345678
-%endif
-
-	imul ax,cx,0xfffe
-	imul ax,MEM,0xfffe
-	imul ax,word MEM,0xfffe
-	imul ax,cx,0xfe
-	imul ax,MEM,0xfe
-	imul ax,word MEM,0xfe
-	imul eax,ecx,0xfffffffe
-	imul eax,MEM,0xfffffffe
-	imul eax,dword MEM,0xfffffffe
-	imul eax,ecx,0xfffe
-	imul eax,MEM,0xfffe
-	imul eax,dword MEM,0xfffe
-%if %1 == 64
-	imul rax,rcx,%3
-	imul rax,MEM,%3
-	imul rax,qword MEM,%3
-	imul rax,rcx,0xfffe
-	imul rax,MEM,0xfffe
-	imul rax,qword MEM,0xfffe
-%endif
-
-	imul ax,0xfffe
-	imul eax,0xfffffffe
-%if %1 == 64
-	imul rax,%3
-%endif
-%endmacro
-
-	test 16
-	test 32
-	test 64
-
-%ifdef WARN
-	test 16,0x999
-	test 32,0x999999
-	test 64,0x999999999,0xfffffffe
-%endif
--- a/nasmbuild/nasm-2.13rc9/test/inc1.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-; This file is part of the include test.
-; See inctest.asm for build instructions.
-
-message:  db 'hello, world',13,10,'$'
-
-%include "inc2.asm"
--- a/nasmbuild/nasm-2.13rc9/test/inc2.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-; This file is part of the include test.
-; See inctest.asm for build instructions.
-
-_main:	  mov dx,message
-	  mov ah,9
-	  int 21h
-	  mov ax,4c00h
-	  int 21h
--- a/nasmbuild/nasm-2.13rc9/test/incbin.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,6 +0,0 @@
-	db '*** ONCE ***', 0Ah
-	incbin "incbin.data",32
-
-	section more start=0x1000000
-	db '*** TWELVE ***', 0Ah
-	times 12 incbin "incbin.data",32
--- a/nasmbuild/nasm-2.13rc9/test/incbin.data	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2 +0,0 @@
-This is the wrong line of text.
-This is the right line of text.
--- a/nasmbuild/nasm-2.13rc9/test/inctest.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-;Testname=test; Arguments=-fbin -oinctest.com; Files=stdout stderr inctest.com
-
-; This file, plus inc1.asm and inc2.asm, test NASM's file inclusion
-; mechanism.
-;
-; This produces a DOS .COM file: to assemble, use
-;    nasm -f bin inctest.asm -o inctest.com
-; and when run, it should print `hello, world'.
-
-	  BITS 16
-	  ORG 0x100
-
-	  jmp _main
-
-%include "inc1.asm"
--- a/nasmbuild/nasm-2.13rc9/test/insnlbl.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-;Testname=test; Arguments=-fbin -oinsnlbl.bin; Files=stdout stderr insnlbl.bin
-
-;
-; Test "instruction as label" -- make opcodes legal as labels if
-; they are followed by a colon.
-;
-
-do:	jmp dq+2
-	dw do, add, sub, dq
-add:	jmp add-2
-sub:	jmp do+2
-dq:	dw $-sub
--- a/nasmbuild/nasm-2.13rc9/test/invlpga.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-;Testname=unoptimized; Arguments=-fbin -oinvlpga.bin;     Files=stdout stderr invlpga.bin
-;Testname=optimized;   Arguments=-fbin -oinvlpga.bin -Ox; Files=stdout stderr invlpga.bin
-
-	bits 32
-	invlpga
-	invlpga ax,ecx
-	invlpga eax,ecx
-	bits 64
-	invlpga
-	invlpga eax,ecx
-	invlpga rax,ecx
--- a/nasmbuild/nasm-2.13rc9/test/jmp64.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-;Testname=test; Arguments=-fbin -ojmp64.bin; Files=stdout stderr jmp64.bin
-
-	bits 64
-	jmp rcx
-	jmp [rax]
-	jmp qword [rax]
-	jmp near [rax]
-	jmp near qword [rax]
-	jmp far [rax]
-	jmp far dword [rax]
-	jmp far qword [rax]
-	call rcx
-	call [rax]
-	call qword [rax]
-	call near [rax]
-	call near qword [rax]
-	call far [rax]
-	call far dword [rax]
-	call far qword [rax]
--- a/nasmbuild/nasm-2.13rc9/test/lar_lsl.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-;Testname=test; Arguments=-fbin -olar_lsl.bin; Files=stdout stderr lar_lsl.bin
-
-; LAR/LSL
-;---------
-
-; 1x ; = invalid due to lack of REX
-; 3x ; = invalid due to Mw
-
-%macro m 1
-
-  bits 16
-
-	%1  ax, ax
-	%1  ax,eax
-;	%1  ax,rax
-
-	%1 eax, ax
-	%1 eax,eax
-;	%1 eax,rax
-
-;	%1 rax, ax
-;	%1 rax,eax
-;	%1 rax,rax
-
-	%1  ax,      [0]
-	%1  ax, word [0]
-;;;	%1  ax,dword [0]
-;	%1  ax,qword [0]
-
-	%1 eax,      [0]
-	%1 eax, word [0]
-;;;	%1 eax,dword [0]
-;	%1 eax,qword [0]
-
-;	%1 rax,      [0]
-;	%1 rax, word [0]
-;	%1 rax,dword [0]
-;	%1 rax,qword [0]
-
-  bits 32
-
-	%1  ax, ax
-	%1  ax,eax
-;	%1  ax,rax
-
-	%1 eax, ax
-	%1 eax,eax
-;	%1 eax,rax
-
-;	%1 rax, ax
-;	%1 rax,eax
-;	%1 rax,rax
-
-	%1  ax,      [0]
-	%1  ax, word [0]
-;;;	%1  ax,dword [0]
-;	%1  ax,qword [0]
-
-	%1 eax,      [0]
-	%1 eax, word [0]
-;;;	%1 eax,dword [0]
-;	%1 eax,qword [0]
-
-;	%1 rax,      [0]
-;	%1 rax, word [0]
-;	%1 rax,dword [0]
-;	%1 rax,qword [0]
-
-  bits 64
-
-	%1  ax, ax
-	%1  ax,eax
-	%1  ax,rax	; $TODO: shouldn't emit REX.W $
-
-	%1 eax, ax
-	%1 eax,eax
-	%1 eax,rax	; $TODO: shouldn't emit REX.W $
-
-	%1 rax, ax
-	%1 rax,eax
-	%1 rax,rax
-
-	%1  ax,      [0]
-	%1  ax, word [0]
-;;;	%1  ax,dword [0]
-;;;	%1  ax,qword [0]
-
-	%1 eax,      [0]
-	%1 eax, word [0]
-;;;	%1 eax,dword [0]
-;;;	%1 eax,qword [0]
-
-	%1 rax,      [0]
-	%1 rax, word [0]
-;;;	%1 rax,dword [0]
-;;;	%1 rax,qword [0]
-
-%endmacro
-
-m lar
-
-m lsl
-
-bits 16
-lar ax,[ si]
-lar ax,[esi]
-bits 32
-lar ax,[ si]
-lar ax,[esi]
-bits 64
-lar ax,[esi]
-lar ax,[rsi]
-
-bits 16
-lsl ax,[ si]
-lsl ax,[esi]
-bits 32
-lsl ax,[ si]
-lsl ax,[esi]
-bits 64
-lar ax,[esi]
-lsl ax,[rsi]
-
-; EOF
--- a/nasmbuild/nasm-2.13rc9/test/larlsl.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-;Testname=test; Arguments=-fbin -olarlsl.bin; Files=stdout stderr larlsl.bin
-
-	bits 64
-
-	lar ax,bx
-	lar ax,[rsi]
-	lar ax,word [rsi]
-	lar eax,bx
-	lar eax,[rsi]
-	lar eax,word [rsi]
-	lar rax,bx
-	lar rax,[rsi]
-	lar rax,word [rsi]
-
-	lsl ax,bx
-	lsl ax,[rsi]
-	lsl ax,word [rsi]
-	lsl eax,bx
-	lsl eax,[rsi]
-	lsl eax,word [rsi]
-	lsl rax,bx
-	lsl rax,[rsi]
-	lsl rax,word [rsi]
--- a/nasmbuild/nasm-2.13rc9/test/lnxhello.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-;Testname=aout;  Arguments=-faout  -olnxhello.o -Ox; Files=stdout stderr lnxhello.o
-;Testname=aoutb; Arguments=-faoutb -olnxhello.o -Ox; Files=stdout stderr lnxhello.o
-;Testname=as86;  Arguments=-fas86  -olnxhello.o -Ox; Files=stdout stderr lnxhello.o
-;Testname=elf32; Arguments=-felf32 -olnxhello.o -Ox; Files=stdout stderr lnxhello.o
-
-;
-; Assembly "Hello, World!" for Linux
-;
-
-
-; Properly defined in <sys/syscall.h>
-%define SYS_exit	1
-%define SYS_write	4
-
-	section .text
-
-	global _start
-_start:
-	; gdb doesn't like to stop at the entry point address, so
-	; we put a nop here for pure convenience
-	nop				
-
-
-write_hello:
-	mov edx, hello_len
-	mov ecx, hello
-	
-.loop:
-	mov eax, SYS_write
-	mov ebx, 1			; stdout
-	int 80h
-
-	cmp eax, -4096
-	ja error
-
-	add ecx, eax
-	sub edx, eax
-	jnz .loop
-
-ok:	
-	mov eax, SYS_exit
-	xor ebx, ebx
-	int 80h
-	hlt
-
-error:
-	mov eax, SYS_exit
-	mov ebx, 1		; Error
-	int 80h
-	hlt
-	
-	section .rodata
-hello:	db "Hello, World!", 10
-hello_len equ $-hello
--- a/nasmbuild/nasm-2.13rc9/test/local.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,19 +0,0 @@
-;Testname=test; Arguments=-fbin -olocal.bin; Files=stdout stderr local.bin
-	bits 32
-
-%push bluttan
-
-%define %$localsize 0
-
-%stacksize flat
-%local l1:qword, l2:dword, l3:dword, l4:qword
-%arg a1:qword, a2:dword, a3:dword, a4:qword
-
-	mov eax,[a1]
-	mov ebx,[a2]
-	mov ecx,[a3]
-	mov edx,[a4]
-	mov [l1],eax
-	mov [l2],ebx
-	mov [l3],ecx
-	mov [l4],edx
--- a/nasmbuild/nasm-2.13rc9/test/loopoffs.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-;Testname=unoptimized; Arguments=-fbin -oloopoffs.bin -O0; Files=stdout stderr loopoffs.bin
-;Testname=optimized;   Arguments=-fbin -oloopoffs.bin -Ox; Files=stdout stderr loopoffs.bin
-	bits 16
-delay:	loop delay
-	loop $
-delay2:	a32 loop delay2
-	a32 loop $
-delay3:	loop delay3,ecx
-	loop $,ecx
-delay4:	a32 loop delay4,ecx
-	a32 loop $,ecx
-	
\ No newline at end of file
--- a/nasmbuild/nasm-2.13rc9/test/lwp.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,213 +0,0 @@
-; LWP testcases from 2010/03/22 binutils change: no more 16-bit variants
-;------------------------------------------------------------------------
-
-%define testcase3(x) x
-%define testcase3(x,y) y,x
-%define testcase3(x,y,z) z,y,x
-
-%macro testcase 3.nolist	; uncomment one of the two, and compare the -f bin and -l output between them
-;    db %1
-;    %2 testcase3(%3)
-%endmacro
-
-bits 32
-
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc0									  }, { llwpcb }, { eax }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc1									  }, { llwpcb }, { ecx }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc2									  }, { llwpcb }, { edx }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc3									  }, { llwpcb }, { ebx }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc4									  }, { llwpcb }, { esp }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc5									  }, { llwpcb }, { ebp }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc6									  }, { llwpcb }, { esi }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc7									  }, { llwpcb }, { edi }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xcf									  }, { slwpcb }, { edi }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xce									  }, { slwpcb }, { esi }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xcd									  }, { slwpcb }, { ebp }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xcc									  }, { slwpcb }, { esp }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xcb									  }, { slwpcb }, { ebx }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xca									  }, { slwpcb }, { edx }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc9									  }, { slwpcb }, { ecx }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc8									  }, { slwpcb }, { eax }
-testcase { 0x8f, 0xea, 0x78, 0x12, 0xc7, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,edi,eax }
-testcase { 0x8f, 0xea, 0x70, 0x12, 0xc6, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,esi,ecx }
-testcase { 0x8f, 0xea, 0x68, 0x12, 0xc5, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,ebp,edx }
-testcase { 0x8f, 0xea, 0x60, 0x12, 0xc4, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,esp,ebx }
-testcase { 0x8f, 0xea, 0x58, 0x12, 0xc3, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,ebx,esp }
-testcase { 0x8f, 0xea, 0x50, 0x12, 0xc2, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,edx,ebp }
-testcase { 0x8f, 0xea, 0x48, 0x12, 0xc1, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,ecx,esi }
-testcase { 0x8f, 0xea, 0x40, 0x12, 0xc0, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,eax,edi }
-testcase { 0x8f, 0xea, 0x78, 0x12, 0xcf, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,edi,eax }
-testcase { 0x8f, 0xea, 0x70, 0x12, 0xce, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,esi,ecx }
-testcase { 0x8f, 0xea, 0x68, 0x12, 0xcd, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,ebp,edx }
-testcase { 0x8f, 0xea, 0x60, 0x12, 0xcc, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,esp,ebx }
-testcase { 0x8f, 0xea, 0x58, 0x12, 0xcb, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,ebx,esp }
-testcase { 0x8f, 0xea, 0x50, 0x12, 0xca, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,edx,ebp }
-testcase { 0x8f, 0xea, 0x48, 0x12, 0xc9, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,ecx,esi }
-testcase { 0x8f, 0xea, 0x40, 0x12, 0xc8, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,eax,edi }
-testcase { 0x8f, 0xea, 0x78, 0x12, 0x07, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,[edi],eax }
-testcase { 0x8f, 0xea, 0x70, 0x12, 0x06, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,[esi],ecx }
-testcase { 0x8f, 0xea, 0x68, 0x12, 0x45, 0x00, 0x78, 0x56, 0x34, 0x12					  }, { lwpins }, { 0x12345678,[ebp],edx }
-testcase { 0x8f, 0xea, 0x60, 0x12, 0x04, 0x24, 0x78, 0x56, 0x34, 0x12					  }, { lwpins }, { 0x12345678,[esp],ebx }
-testcase { 0x8f, 0xea, 0x58, 0x12, 0x03, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,[ebx],esp }
-testcase { 0x8f, 0xea, 0x50, 0x12, 0x02, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,[edx],ebp }
-testcase { 0x8f, 0xea, 0x48, 0x12, 0x01, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,[ecx],esi }
-testcase { 0x8f, 0xea, 0x40, 0x12, 0x00, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,[eax],edi }
-testcase { 0x8f, 0xea, 0x78, 0x12, 0x0f, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,[edi],eax }
-testcase { 0x8f, 0xea, 0x70, 0x12, 0x0e, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,[esi],ecx }
-testcase { 0x8f, 0xea, 0x68, 0x12, 0x4d, 0x00, 0x78, 0x56, 0x34, 0x12					  }, { lwpval }, { 0x12345678,[ebp],edx }
-testcase { 0x8f, 0xea, 0x60, 0x12, 0x0c, 0x24, 0x78, 0x56, 0x34, 0x12					  }, { lwpval }, { 0x12345678,[esp],ebx }
-testcase { 0x8f, 0xea, 0x58, 0x12, 0x0b, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,[ebx],esp }
-testcase { 0x8f, 0xea, 0x50, 0x12, 0x0a, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,[edx],ebp }
-testcase { 0x8f, 0xea, 0x48, 0x12, 0x09, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,[ecx],esi }
-testcase { 0x8f, 0xea, 0x40, 0x12, 0x08, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,[eax],edi }
-testcase { 0x8f, 0xea, 0x78, 0x12, 0x87, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12			  }, { lwpins }, { 0x12345678,[0xcafe+edi],eax }
-testcase { 0x8f, 0xea, 0x70, 0x12, 0x86, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12			  }, { lwpins }, { 0x12345678,[0xcafe+esi],ecx }
-testcase { 0x8f, 0xea, 0x68, 0x12, 0x85, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12			  }, { lwpins }, { 0x12345678,[0xcafe+ebp],edx }
-testcase { 0x8f, 0xea, 0x60, 0x12, 0x84, 0x24, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+esp],ebx }
-testcase { 0x8f, 0xea, 0x58, 0x12, 0x83, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12			  }, { lwpins }, { 0x12345678,[0xcafe+ebx],esp }
-testcase { 0x8f, 0xea, 0x50, 0x12, 0x82, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12			  }, { lwpins }, { 0x12345678,[0xcafe+edx],ebp }
-testcase { 0x8f, 0xea, 0x48, 0x12, 0x81, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12			  }, { lwpins }, { 0x12345678,[0xcafe+ecx],esi }
-testcase { 0x8f, 0xea, 0x40, 0x12, 0x80, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12			  }, { lwpins }, { 0x12345678,[0xcafe+eax],edi }
-testcase { 0x8f, 0xea, 0x78, 0x12, 0x8f, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12			  }, { lwpval }, { 0x12345678,[0xcafe+edi],eax }
-testcase { 0x8f, 0xea, 0x70, 0x12, 0x8e, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12			  }, { lwpval }, { 0x12345678,[0xcafe+esi],ecx }
-testcase { 0x8f, 0xea, 0x68, 0x12, 0x8d, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12			  }, { lwpval }, { 0x12345678,[0xcafe+ebp],edx }
-testcase { 0x8f, 0xea, 0x60, 0x12, 0x8c, 0x24, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+esp],ebx }
-testcase { 0x8f, 0xea, 0x58, 0x12, 0x8b, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12			  }, { lwpval }, { 0x12345678,[0xcafe+ebx],esp }
-testcase { 0x8f, 0xea, 0x50, 0x12, 0x8a, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12			  }, { lwpval }, { 0x12345678,[0xcafe+edx],ebp }
-testcase { 0x8f, 0xea, 0x48, 0x12, 0x89, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12			  }, { lwpval }, { 0x12345678,[0xcafe+ecx],esi }
-testcase { 0x8f, 0xea, 0x40, 0x12, 0x88, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12			  }, { lwpval }, { 0x12345678,[0xcafe+eax],edi }
-
-bits 64
-
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc0									  }, { llwpcb }, { eax }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc1									  }, { llwpcb }, { ecx }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc2									  }, { llwpcb }, { edx }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc3									  }, { llwpcb }, { ebx }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc4									  }, { llwpcb }, { esp }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc5									  }, { llwpcb }, { ebp }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc6									  }, { llwpcb }, { esi }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc7									  }, { llwpcb }, { edi }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xc0									  }, { llwpcb }, { r8d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xc1									  }, { llwpcb }, { r9d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xc2									  }, { llwpcb }, { r10d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xc3									  }, { llwpcb }, { r11d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xc4									  }, { llwpcb }, { r12d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xc5									  }, { llwpcb }, { r13d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xc6									  }, { llwpcb }, { r14d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xc7									  }, { llwpcb }, { r15d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xcf									  }, { slwpcb }, { r15d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xce									  }, { slwpcb }, { r14d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xcd									  }, { slwpcb }, { r13d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xcc									  }, { slwpcb }, { r12d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xcb									  }, { slwpcb }, { r11d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xca									  }, { slwpcb }, { r10d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xc9									  }, { slwpcb }, { r9d }
-testcase { 0x8f, 0xc9, 0x78, 0x12, 0xc8									  }, { slwpcb }, { r8d }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xcf									  }, { slwpcb }, { edi }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xce									  }, { slwpcb }, { esi }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xcd									  }, { slwpcb }, { ebp }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xcc									  }, { slwpcb }, { esp }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xcb									  }, { slwpcb }, { ebx }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xca									  }, { slwpcb }, { edx }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc9									  }, { slwpcb }, { ecx }
-testcase { 0x8f, 0xe9, 0x78, 0x12, 0xc8									  }, { slwpcb }, { eax }
-testcase { 0x8f, 0xca, 0x78, 0x12, 0xc7, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,r15d,eax }
-testcase { 0x8f, 0xca, 0x70, 0x12, 0xc6, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,r14d,ecx }
-testcase { 0x8f, 0xca, 0x68, 0x12, 0xc5, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,r13d,edx }
-testcase { 0x8f, 0xca, 0x60, 0x12, 0xc4, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,r12d,ebx }
-testcase { 0x8f, 0xca, 0x58, 0x12, 0xc3, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,r11d,esp }
-testcase { 0x8f, 0xca, 0x50, 0x12, 0xc2, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,r10d,ebp }
-testcase { 0x8f, 0xca, 0x48, 0x12, 0xc1, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,r9d,esi }
-testcase { 0x8f, 0xca, 0x40, 0x12, 0xc0, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,r8d,edi }
-testcase { 0x8f, 0xea, 0x38, 0x12, 0xc7, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,edi,r8d }
-testcase { 0x8f, 0xea, 0x30, 0x12, 0xc6, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,esi,r9d }
-testcase { 0x8f, 0xea, 0x28, 0x12, 0xc5, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,ebp,r10d }
-testcase { 0x8f, 0xea, 0x20, 0x12, 0xc4, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,esp,r11d }
-testcase { 0x8f, 0xea, 0x18, 0x12, 0xc3, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,ebx,r12d }
-testcase { 0x8f, 0xea, 0x10, 0x12, 0xc2, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,edx,r13d }
-testcase { 0x8f, 0xea, 0x08, 0x12, 0xc1, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,ecx,r14d }
-testcase { 0x8f, 0xea, 0x00, 0x12, 0xc0, 0x78, 0x56, 0x34, 0x12						  }, { lwpins }, { 0x12345678,eax,r15d }
-testcase { 0x8f, 0xca, 0x78, 0x12, 0xcf, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,r15d,eax }
-testcase { 0x8f, 0xca, 0x70, 0x12, 0xce, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,r14d,ecx }
-testcase { 0x8f, 0xca, 0x68, 0x12, 0xcd, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,r13d,edx }
-testcase { 0x8f, 0xca, 0x60, 0x12, 0xcc, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,r12d,ebx }
-testcase { 0x8f, 0xca, 0x58, 0x12, 0xcb, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,r11d,esp }
-testcase { 0x8f, 0xca, 0x50, 0x12, 0xca, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,r10d,ebp }
-testcase { 0x8f, 0xca, 0x48, 0x12, 0xc9, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,r9d,esi }
-testcase { 0x8f, 0xca, 0x40, 0x12, 0xc8, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,r8d,edi }
-testcase { 0x8f, 0xea, 0x38, 0x12, 0xcf, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,edi,r8d }
-testcase { 0x8f, 0xea, 0x30, 0x12, 0xce, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,esi,r9d }
-testcase { 0x8f, 0xea, 0x28, 0x12, 0xcd, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,ebp,r10d }
-testcase { 0x8f, 0xea, 0x20, 0x12, 0xcc, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,esp,r11d }
-testcase { 0x8f, 0xea, 0x18, 0x12, 0xcb, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,ebx,r12d }
-testcase { 0x8f, 0xea, 0x10, 0x12, 0xca, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,edx,r13d }
-testcase { 0x8f, 0xea, 0x08, 0x12, 0xc9, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,ecx,r14d }
-testcase { 0x8f, 0xea, 0x00, 0x12, 0xc8, 0x78, 0x56, 0x34, 0x12						  }, { lwpval }, { 0x12345678,eax,r15d }
-testcase { 0x67, 0x8f, 0xca, 0x78, 0x12, 0x07, 0x78, 0x56, 0x34, 0x12					  }, { lwpins }, { 0x12345678,[r15d],eax }
-testcase { 0x67, 0x8f, 0xca, 0x70, 0x12, 0x06, 0x78, 0x56, 0x34, 0x12					  }, { lwpins }, { 0x12345678,[r14d],ecx }
-testcase { 0x67, 0x8f, 0xca, 0x68, 0x12, 0x45, 0x00, 0x78, 0x56, 0x34, 0x12				  }, { lwpins }, { 0x12345678,[r13d],edx }
-testcase { 0x67, 0x8f, 0xca, 0x60, 0x12, 0x04, 0x24, 0x78, 0x56, 0x34, 0x12				  }, { lwpins }, { 0x12345678,[r12d],ebx }
-testcase { 0x67, 0x8f, 0xca, 0x58, 0x12, 0x03, 0x78, 0x56, 0x34, 0x12					  }, { lwpins }, { 0x12345678,[r11d],esp }
-testcase { 0x67, 0x8f, 0xca, 0x50, 0x12, 0x02, 0x78, 0x56, 0x34, 0x12					  }, { lwpins }, { 0x12345678,[r10d],ebp }
-testcase { 0x67, 0x8f, 0xca, 0x48, 0x12, 0x01, 0x78, 0x56, 0x34, 0x12					  }, { lwpins }, { 0x12345678,[r9d],esi }
-testcase { 0x67, 0x8f, 0xca, 0x40, 0x12, 0x00, 0x78, 0x56, 0x34, 0x12					  }, { lwpins }, { 0x12345678,[r8d],edi }
-testcase { 0x67, 0x8f, 0xea, 0x38, 0x12, 0x07, 0x78, 0x56, 0x34, 0x12					  }, { lwpins }, { 0x12345678,[edi],r8d }
-testcase { 0x67, 0x8f, 0xea, 0x30, 0x12, 0x06, 0x78, 0x56, 0x34, 0x12					  }, { lwpins }, { 0x12345678,[esi],r9d }
-testcase { 0x67, 0x8f, 0xea, 0x28, 0x12, 0x45, 0x00, 0x78, 0x56, 0x34, 0x12				  }, { lwpins }, { 0x12345678,[ebp],r10d }
-testcase { 0x67, 0x8f, 0xea, 0x20, 0x12, 0x04, 0x24, 0x78, 0x56, 0x34, 0x12				  }, { lwpins }, { 0x12345678,[esp],r11d }
-testcase { 0x67, 0x8f, 0xea, 0x18, 0x12, 0x03, 0x78, 0x56, 0x34, 0x12					  }, { lwpins }, { 0x12345678,[ebx],r12d }
-testcase { 0x67, 0x8f, 0xea, 0x10, 0x12, 0x02, 0x78, 0x56, 0x34, 0x12					  }, { lwpins }, { 0x12345678,[edx],r13d }
-testcase { 0x67, 0x8f, 0xea, 0x08, 0x12, 0x01, 0x78, 0x56, 0x34, 0x12					  }, { lwpins }, { 0x12345678,[ecx],r14d }
-testcase { 0x67, 0x8f, 0xea, 0x00, 0x12, 0x00, 0x78, 0x56, 0x34, 0x12					  }, { lwpins }, { 0x12345678,[eax],r15d }
-testcase { 0x67, 0x8f, 0xca, 0x78, 0x12, 0x0f, 0x78, 0x56, 0x34, 0x12					  }, { lwpval }, { 0x12345678,[r15d],eax }
-testcase { 0x67, 0x8f, 0xca, 0x70, 0x12, 0x0e, 0x78, 0x56, 0x34, 0x12					  }, { lwpval }, { 0x12345678,[r14d],ecx }
-testcase { 0x67, 0x8f, 0xca, 0x68, 0x12, 0x4d, 0x00, 0x78, 0x56, 0x34, 0x12				  }, { lwpval }, { 0x12345678,[r13d],edx }
-testcase { 0x67, 0x8f, 0xca, 0x60, 0x12, 0x0c, 0x24, 0x78, 0x56, 0x34, 0x12				  }, { lwpval }, { 0x12345678,[r12d],ebx }
-testcase { 0x67, 0x8f, 0xca, 0x58, 0x12, 0x0b, 0x78, 0x56, 0x34, 0x12					  }, { lwpval }, { 0x12345678,[r11d],esp }
-testcase { 0x67, 0x8f, 0xca, 0x50, 0x12, 0x0a, 0x78, 0x56, 0x34, 0x12					  }, { lwpval }, { 0x12345678,[r10d],ebp }
-testcase { 0x67, 0x8f, 0xca, 0x48, 0x12, 0x09, 0x78, 0x56, 0x34, 0x12					  }, { lwpval }, { 0x12345678,[r9d],esi }
-testcase { 0x67, 0x8f, 0xca, 0x40, 0x12, 0x08, 0x78, 0x56, 0x34, 0x12					  }, { lwpval }, { 0x12345678,[r8d],edi }
-testcase { 0x67, 0x8f, 0xea, 0x38, 0x12, 0x0f, 0x78, 0x56, 0x34, 0x12					  }, { lwpval }, { 0x12345678,[edi],r8d }
-testcase { 0x67, 0x8f, 0xea, 0x30, 0x12, 0x0e, 0x78, 0x56, 0x34, 0x12					  }, { lwpval }, { 0x12345678,[esi],r9d }
-testcase { 0x67, 0x8f, 0xea, 0x28, 0x12, 0x4d, 0x00, 0x78, 0x56, 0x34, 0x12				  }, { lwpval }, { 0x12345678,[ebp],r10d }
-testcase { 0x67, 0x8f, 0xea, 0x20, 0x12, 0x0c, 0x24, 0x78, 0x56, 0x34, 0x12				  }, { lwpval }, { 0x12345678,[esp],r11d }
-testcase { 0x67, 0x8f, 0xea, 0x18, 0x12, 0x0b, 0x78, 0x56, 0x34, 0x12					  }, { lwpval }, { 0x12345678,[ebx],r12d }
-testcase { 0x67, 0x8f, 0xea, 0x10, 0x12, 0x0a, 0x78, 0x56, 0x34, 0x12					  }, { lwpval }, { 0x12345678,[edx],r13d }
-testcase { 0x67, 0x8f, 0xea, 0x08, 0x12, 0x09, 0x78, 0x56, 0x34, 0x12					  }, { lwpval }, { 0x12345678,[ecx],r14d }
-testcase { 0x67, 0x8f, 0xea, 0x00, 0x12, 0x08, 0x78, 0x56, 0x34, 0x12					  }, { lwpval }, { 0x12345678,[eax],r15d }
-testcase { 0x67, 0x8f, 0xca, 0x78, 0x12, 0x87, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+r15d],eax }
-testcase { 0x67, 0x8f, 0xca, 0x70, 0x12, 0x86, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+r14d],ecx }
-testcase { 0x67, 0x8f, 0xca, 0x68, 0x12, 0x85, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+r13d],edx }
-testcase { 0x67, 0x8f, 0xca, 0x60, 0x12, 0x84, 0x24, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12	  }, { lwpins }, { 0x12345678,[0xcafe+r12d],ebx }
-testcase { 0x67, 0x8f, 0xca, 0x58, 0x12, 0x83, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+r11d],esp }
-testcase { 0x67, 0x8f, 0xca, 0x50, 0x12, 0x82, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+r10d],ebp }
-testcase { 0x67, 0x8f, 0xca, 0x48, 0x12, 0x81, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+r9d],esi }
-testcase { 0x67, 0x8f, 0xca, 0x40, 0x12, 0x80, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+r8d],edi }
-testcase { 0x67, 0x8f, 0xea, 0x38, 0x12, 0x87, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+edi],r8d }
-testcase { 0x67, 0x8f, 0xea, 0x30, 0x12, 0x86, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+esi],r9d }
-testcase { 0x67, 0x8f, 0xea, 0x28, 0x12, 0x85, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+ebp],r10d }
-testcase { 0x67, 0x8f, 0xea, 0x20, 0x12, 0x84, 0x24, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12	  }, { lwpins }, { 0x12345678,[0xcafe+esp],r11d }
-testcase { 0x67, 0x8f, 0xea, 0x18, 0x12, 0x83, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+ebx],r12d }
-testcase { 0x67, 0x8f, 0xea, 0x10, 0x12, 0x82, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+edx],r13d }
-testcase { 0x67, 0x8f, 0xea, 0x08, 0x12, 0x81, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+ecx],r14d }
-testcase { 0x67, 0x8f, 0xea, 0x00, 0x12, 0x80, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpins }, { 0x12345678,[0xcafe+eax],r15d }
-testcase { 0x67, 0x8f, 0xca, 0x78, 0x12, 0x8f, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+r15d],eax }
-testcase { 0x67, 0x8f, 0xca, 0x70, 0x12, 0x8e, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+r14d],ecx }
-testcase { 0x67, 0x8f, 0xca, 0x68, 0x12, 0x8d, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+r13d],edx }
-testcase { 0x67, 0x8f, 0xca, 0x60, 0x12, 0x8c, 0x24, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12	  }, { lwpval }, { 0x12345678,[0xcafe+r12d],ebx }
-testcase { 0x67, 0x8f, 0xca, 0x58, 0x12, 0x8b, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+r11d],esp }
-testcase { 0x67, 0x8f, 0xca, 0x50, 0x12, 0x8a, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+r10d],ebp }
-testcase { 0x67, 0x8f, 0xca, 0x48, 0x12, 0x89, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+r9d],esi }
-testcase { 0x67, 0x8f, 0xca, 0x40, 0x12, 0x88, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+r8d],edi }
-testcase { 0x67, 0x8f, 0xea, 0x38, 0x12, 0x8f, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+edi],r8d }
-testcase { 0x67, 0x8f, 0xea, 0x30, 0x12, 0x8e, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+esi],r9d }
-testcase { 0x67, 0x8f, 0xea, 0x28, 0x12, 0x8d, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+ebp],r10d }
-testcase { 0x67, 0x8f, 0xea, 0x20, 0x12, 0x8c, 0x24, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12	  }, { lwpval }, { 0x12345678,[0xcafe+esp],r11d }
-testcase { 0x67, 0x8f, 0xea, 0x18, 0x12, 0x8b, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+ebx],r12d }
-testcase { 0x67, 0x8f, 0xea, 0x10, 0x12, 0x8a, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+edx],r13d }
-testcase { 0x67, 0x8f, 0xea, 0x08, 0x12, 0x89, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+ecx],r14d }
-testcase { 0x67, 0x8f, 0xea, 0x00, 0x12, 0x88, 0xfe, 0xca, 0x00, 0x00, 0x78, 0x56, 0x34, 0x12		  }, { lwpval }, { 0x12345678,[0xcafe+eax],r15d }
-
-; EOF
-
- 	  	 
--- a/nasmbuild/nasm-2.13rc9/test/macro-defaults.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-;Testname=warning;    Arguments=-fbin -omacdef.bin -w+macro-defaults; Files=stdout stderr macdef.bin
-;Testname=nonwarning; Arguments=-fbin -omacdef.bin -w-macro-defaults; Files=stdout stderr macdef.bin
-
-%MACRO mmac_fix 1 a
- ; While defined to take one parameter, any invocation will
- ; see two, due to the default parameter.
- %warning %0 %1 %2 %3 %4 %5
-%ENDMACRO
-mmac_fix one
-
-%MACRO mmac_var 1-2 a,b
- ; While defined to take one or two parameters, invocations
- ; will see three, due to the default parameters.
- %warning %0 %1 %2 %3 %4 %5
-%ENDMACRO
-mmac_var one
-mmac_var one,two
-
-%MACRO mmac_plus 1-2+ a,b
- ; This does not warn. Although this looks like two default
- ; parameters, it ends up being only one: the "+" limits it
- ; to two parameters; if invoked without a second parameter
- ; the second parameter will be "a,b".
- %warning %0 %1 %2 %3 %4 %5
- ;Check rotating behaviour
-%ENDMACRO
-mmac_plus one
-mmac_plus one,two
-mmac_plus one,two,three
-
-%MACRO mmac_star 1-* a,b
- ; This does not warn. Because the "*" extends the range of
- ; parameters to infinity, the "a,b" default parameters can
- ; not exceed that range.
- %warning %0 %1 %2 %3 %4 %5
-%ENDMACRO
-mmac_star one
-mmac_star one,two
-mmac_star one,two,three
-
-%MACRO mmac_rotate 0-* a,b
- %warning %0 %1 %2 %3 %4 %5
- ;%rotate should rotate all parameters
- %rotate 1
- %warning %0 %1 %2 %3 %4 %5
-%ENDMACRO
-mmac_rotate
-mmac_rotate one
-mmac_rotate one,two
-mmac_rotate one,two,three
-
-;Scope / evaluation time test
-%define  I 0
-%assign  J 0
-%xdefine K 0
-
-%MACRO mmac_scope 0 I J K
- %warning %1 %2 %3
-%ENDMACRO
-
-%define  I 1
-%assign  J 1
-%xdefine K 1
-mmac_scope
--- a/nasmbuild/nasm-2.13rc9/test/macroerr.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-%include "macroerr.inc"
-
-%macro bluttan 1
-	mov eax,%1
-	blej %1
-%endmacro
-
-	bluttan ptr
-	blej ptr
-	dd ptr, ptr
-	
-ptr:
--- a/nasmbuild/nasm-2.13rc9/test/macroerr.inc	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3 +0,0 @@
-%macro blej 1
-	mov eax,%1
-%endmacro
--- a/nasmbuild/nasm-2.13rc9/test/mmxsize.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-;Testname=unoptimized; Arguments=-fbin -ommxsize.bin -O0; Files=stdout stderr mmxsize.bin
-;Testname=optimized;   Arguments=-fbin -ommxsize.bin -Ox; Files=stdout stderr mmxsize.bin
-	bits 32
-	movd mm0,eax
-	movd mm0,[foo]
-	movq mm0,[foo]
-	movd mm0,dword [foo]
-	movq mm0,qword [foo]
-	movmskps eax,xmm1
-	movmskpd eax,xmm1
-	nop
-	movd xmm0,eax
-	movd xmm0,[foo]
-	movq xmm0,[foo]
-	movd xmm0,dword [foo]
-	movq xmm0,qword [foo]
-	nop
-
-	bits 64
-	movd mm0,eax
-	movq mm0,[foo]
-	movd mm0,dword [foo]
-	movq mm0,qword [foo]
-	movq mm0,rax
-	movmskps eax,xmm1
-	movmskpd eax,xmm1
-	nop
-	movd xmm0,eax
-	movq xmm0,[foo]
-	movd xmm0,dword [foo]
-	movq xmm0,qword [foo]
-	movq xmm0,rax
-	movmskps rax,xmm1
-	movmskpd rax,xmm1
-	nop
-	
-	section .bss
-foo	resq 1
--- a/nasmbuild/nasm-2.13rc9/test/movd.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-;Testname=optimized; Arguments=-Ox -fbin -omovd.bin; Files=stdout stderr movd.bin
-[BITS 32]
-	movd	mm0,eax
-	movd	mm0,[eax]
-	movd	[eax],mm0
-	movd	eax,mm0
-
-	movd	xmm0,eax
-	movd	xmm0,[eax]
-
-	movd	[eax],xmm0
-	movd	eax,xmm0
--- a/nasmbuild/nasm-2.13rc9/test/movd64.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-	bits 64
-
-	movd r8d, mm1
-	movd r8, mm1
-	movq r8, mm1
-
-	movd [rax], mm1
-	movq [rax], mm1
-	movd dword [rax], mm1
-;	movq dword [rax], mm1
-	movd qword [rax], mm1
-	movq qword [rax], mm1
-	
-;	movd mm2, mm1
-	movq mm2, mm1
--- a/nasmbuild/nasm-2.13rc9/test/movimm.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-;Testname=unoptimized; Arguments=-fbin -omovimm.bin -O0; Files=stdout stderr movimm.bin
-;Testname=optimized;   Arguments=-fbin -omovimm.bin -Ox; Files=stdout stderr movimm.bin
-	bits 64
-
-	mov rax,1234567890abcdefh
-	mov eax,1234567890abcdefh
-	mov rax,dword 1234567890abcdefh
-	mov rax,qword 1234567890abcdefh
-	mov dword [rsi],1234567890abcdefh
-	mov qword [rsi],1234567890abcdefh
-	mov dword [rsi],dword 1234567890abcdefh
-	mov qword [rsi],dword 1234567890abcdefh
-;	mov qword [rsi],qword 1234567890abcdefh		; Error
-;	mov [rsi],qword 1234567890abcdefh		; Error
-	mov [rsi],dword 1234567890abcdefh
-
-	; The optimizer probably should compact these forms, doesn't yet?
-	mov rax,12345678h
-	mov eax,12345678h
-	mov rax,dword 12345678h
-	mov rax,qword 12345678h
-	mov dword [rsi],12345678h
-	mov qword [rsi],12345678h
-	mov dword [rsi],dword 12345678h
-	mov qword [rsi],dword 12345678h
-;	mov qword [rsi],qword 12345678h			; Error
-;	mov [rsi],qword 12345678h			; Error
-	mov [rsi],dword 12345678h
--- a/nasmbuild/nasm-2.13rc9/test/movnti.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-;Testname=test; Arguments=-fbin -omovnti.bin; Files=stdout stderr movnti.bin
-; BR 2028995
-
-	bits 16
-	movnti [si],eax
-	bits 32
-	movnti [esi],eax
-	bits 64
-	movnti [rsi],eax
-	movnti [rsi],rax
--- a/nasmbuild/nasm-2.13rc9/test/mpx-64.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,120 +0,0 @@
-;Testname=mpx-64; Arguments=-felf64 -ompx-64.o -O0; Files=stdout stderr mpx-64.o
-BITS 64
-
-	bndmk bnd1, [r11]
-	bndmk bnd1, [rax]
-	bndmk bnd1, [0x399]
-	bndmk bnd1, [r9+0x3]
-	bndmk bnd1, [rax+0x3]
-	bndmk bnd1, [3,1*r12]
-	bndmk bnd1, [rax+rcx]
-	bndmk bnd1, [r11+1*rax+0x3]
-	bndmk bnd1, [rbx+1*r9+0x3]
-
-	; bndmov
-	bndmov bnd1, [r11]
-	bndmov bnd1, [rax]
-	bndmov bnd1, [0x399]
-	bndmov bnd2, [r9+0x3]
-	bndmov bnd2, [rax+0x3]
-	bndmov bnd0, [1*r12+0x3]
-	bndmov bnd2, [rax+rdx]
-	bndmov bnd1, [r11+1*rax+0x3]
-	bndmov bnd1, [rbx+1*r9+0x3]
-	bndmov bnd0, bnd2
-
-	bndmov [r11], bnd1
-	bndmov [rax], bnd1
-	bndmov [0x399], bnd1
-	bndmov [r9+0x3], bnd2
-	bndmov [rax+0x3], bnd2
-	bndmov [1*r12+0x3], bnd0
-	bndmov [rax+rdx], bnd2
-	bndmov [r11+1*rax+0x3], bnd1
-	bndmov [rbx+1*r9+0x3], bnd1
-	bndmov bnd2, bnd0
-
-	; bndcl
-	bndcl bnd1, [r11]
-	bndcl bnd1, [rax]
-	bndcl bnd1, r11
-	bndcl bnd1, rcx
-	bndcl bnd1, [0x399]
-	bndcl bnd1, [r9+0x3]
-	bndcl bnd1, [rax+0x3]
-	bndcl bnd1, [1*r12+0x3]
-	bndcl bnd1, [rax+rcx]
-	bndcl bnd1, [r11+1*rax+0x3]
-	bndcl bnd1, [rbx+1*r9+0x3]
-
-	; bndcu
-	bndcu bnd1, [r11]
-	bndcu bnd1, [rax]
-	bndcu bnd1, r11
-	bndcu bnd1, rcx
-	bndcu bnd1, [0x399]
-	bndcu bnd1, [r9+0x3]
-	bndcu bnd1, [rax+0x3]
-	bndcu bnd1, [1*r12+0x3]
-	bndcu bnd1, [rax+rcx]
-	bndcu bnd1, [r11+1*rax+0x3]
-	bndcu bnd1, [rbx+1*r9+0x3]
-
-	; bndcn
-	bndcn bnd1, [r11]
-	bndcn bnd1, [rax]
-	bndcn bnd1, r11
-	bndcn bnd1, rcx
-	bndcn bnd1, [0x399]
-	bndcn bnd1, [r9+0x3]
-	bndcn bnd1, [rax+0x3]
-	bndcn bnd1, [1*r9+0x3]
-	bndcn bnd1, [rax+rcx]
-	bndcn bnd1, [r11+1*rax+0x3]
-	bndcn bnd1, [rbx+1*r9+0x3]
-
-	; bndstx
-	; next 5 lines should be parsed same
-	bndstx [rax+0x3,rbx], bnd0	; NASM - split EA
-	bndstx [rax+rbx*1+0x3], bnd0	; GAS
-	bndstx [rax+rbx+3], bnd0	; GAS
-	bndstx [rax+0x3], bnd0, rbx	; ICC-1
-	bndstx [rax+0x3], rbx, bnd0	; ICC-2
-
-	; next 5 lines should be parsed same
-	bndstx [,rcx*1], bnd2		; NASM
-	bndstx [0,rcx*1], bnd2		; NASM
-	bndstx [0], bnd2, rcx		; ICC-1
-	bndstx [0], rcx, bnd2		; ICC-2
-	bndstx [rcx*1], bnd2		; GAS - rcx is encoded as index only when it is mib
-
-	; next 3 lines should be parsed same
-	bndstx [3,1*r12], bnd2		; NASM
-	bndstx [1*r12+3], bnd2		; GAS
-	bndstx [3], r12, bnd2		; ICC
-
-	bndstx [r12+0x399], bnd3
-	bndstx [r11+0x1234], bnd1
-	bndstx [rbx+0x1234], bnd2
-	bndstx [rdx], bnd1
-
-	; bndldx
-	bndldx bnd0, [rax+rbx*1+0x3]
-	bndldx bnd2, [rbx+rdx+3]
-	bndldx bnd3, [r12+0x399]
-	bndldx bnd1, [r11+0x1234]
-	bndldx bnd2, [rbx+0x1234]
-	bndldx bnd2, [1*rbx+3]
-	bndldx bnd2, [1*r12+3]
-	bndldx bnd1, [rdx]
-
-	; bnd
-	bnd ret
-	bnd call      foo
-	bnd jmp       foo	; when it becomes a Jb form - short jmp (eb),
-				; bnd prefix is silently dropped
-	bnd jmp       near 0	; near jmp (opcode e9)
-;	bnd jmp       short 0	; explicit short jmp (opcode eb) : error
-	bnd jno       foo
-
-foo:	bnd ret
--- a/nasmbuild/nasm-2.13rc9/test/mpx.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,89 +0,0 @@
-;Testname=mpx; Arguments=-felf -ompx.o -O0; Files=stdout stderr mpx.o
-BITS 32
-
-	bndmk bnd1, [eax]
-	bndmk bnd1, [0x399]
-	bndmk bnd1, [ecx+0x3]
-	bndmk bnd1, [eax+ecx]
-	bndmk bnd1, [ecx*1]
-	bndmk bnd1, [edx+1*eax+0x3]
-
-	; bndmov
-	bndmov bnd1, [eax]
-	bndmov bnd1, [0x399]
-	bndmov bnd1, [ecx+0x3]
-	bndmov bnd1, [eax+ecx]
-	bndmov bnd1, [ecx*1]
-	bndmov bnd1, [edx+1*eax+0x3]
-	bndmov bnd0, bnd1
-
-	bndmov [eax], bnd1
-	bndmov [0x399], bnd1
-	bndmov [ecx+0x3], bnd1
-	bndmov [eax+ecx], bnd1
-	bndmov [ecx*1], bnd1
-	bndmov [edx+1*eax+0x3], bnd1
-	bndmov bnd1, bnd0
-
-	; bndcl
-	bndcl bnd1, [eax]
-	bndcl bnd1, ecx
-	bndcl bnd1, [0x399]
-	bndcl bnd1, [ecx+0x3]
-	bndcl bnd1, [eax+ecx]
-	bndcl bnd1, [ecx*1]
-	bndcl bnd1, [edx+1*eax+0x3]
-
-	; bndcu
-	bndcu bnd1, [eax]
-	bndcu bnd1, ecx
-	bndcu bnd1, [0x399]
-	bndcu bnd1, [ecx+0x3]
-	bndcu bnd1, [eax+ecx]
-	bndcu bnd1, [ecx*1]
-	bndcu bnd1, [edx+1*eax+0x3]
-
-	; bndcn
-	bndcn bnd1, [eax]
-	bndcn bnd1, ecx
-	bndcn bnd1, [0x399]
-	bndcn bnd1, [ecx+0x3]
-	bndcn bnd1, [eax+ecx]
-	bndcn bnd1, [ecx*1]
-	bndcn bnd1, [edx+1*eax+0x3]
-
-	; bndstx
-	bndstx [eax+ebx*1+0x3], bnd0
-	bndstx [eax+0x3,ebx], bnd0
-	bndstx [eax+0x3], bnd0, ebx
-	bndstx [eax+0x3], ebx, bnd0
-	bndstx [ecx*1], bnd2
-	bndstx [,ecx*1], bnd2
-	bndstx [0,ecx*1], bnd2
-	bndstx [0], bnd2, ecx
-	bndstx [0], ecx, bnd2
-	bndstx [edx+0x399], bnd3
-	bndstx [1*ebx+3], bnd2
-	bndstx [3,1*ebx], bnd2
-	bndstx [3], ebx, bnd2
-	bndstx [edx], bnd1
-
-	; bndldx
-	bndldx bnd0, [eax+ebx*1+0x3]
-	bndldx bnd2, [ebx+edx+3]
-	bndldx bnd2, [ecx*1]
-	bndldx bnd3, [edx+0x399]
-	bndldx bnd2, [1*ebx+3]
-	bndldx bnd2, [3], ebx
-	bndldx bnd1, [edx]
-
-	; bnd
-	bnd ret
-	bnd call      foo
-	bnd jmp       foo	; when it becomes a Jb form - short jmp (eb),
-				; bnd prefix is silently dropped
-	bnd jmp       near 0	; near jmp (opcode e9)
-;	bnd jmp       short 0	; explicit short jmp (opcode eb) : error
-	bnd jno       foo
-
-foo:	bnd ret
--- a/nasmbuild/nasm-2.13rc9/test/multisection.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-;Testname=aout;  Arguments=-faout  -olnxhello.o -Ox; Files=stdout stderr lnxhello.o
-;Testname=aoutb; Arguments=-faoutb -olnxhello.o -Ox; Files=stdout stderr lnxhello.o
-;Testname=as86;  Arguments=-fas86  -olnxhello.o -Ox; Files=stdout stderr lnxhello.o
-;Testname=elf32; Arguments=-felf32 -olnxhello.o -Ox; Files=stdout stderr lnxhello.o
-;Testname=elf64; Arguments=-felf64 -olnxhello.o -Ox; Files=stdout stderr lnxhello.o
-;Testname=obj;   Arguments=-fobj   -olnxhello.o -Ox; Files=stdout stderr lnxhello.o
-;Testname=rdf;   Arguments=-frdf   -olnxhello.o -Ox; Files=stdout stderr lnxhello.o
-;Testname=win32; Arguments=-fwin32 -olnxhello.o -Ox; Files=stdout stderr lnxhello.o
-;Testname=win64; Arguments=-fwin64 -olnxhello.o -Ox; Files=stdout stderr lnxhello.o
-
-; To test where code that is placed before any explicit SECTION
-; gets placed, and what happens if a .text section has an ORG
-;statement, uncomment the following lines.
-;
-;	times	10h	nop
-;
-;section .text
-;org 0x300
-;	times	20h	inc ax
-
-; let's see which of these sections can be placed in the specified order.
-
-section .appspecific
-section .data
-section .stringdata
-section .mytext
-section .code
-section .extra_code
-
-
-section .stringdata
-mystr1: db "Hello, this is string 1", 13, 10, '$'
-
-section .extra_code
-org 0x200
-bits 16
-more:
-   mov si, asciz1
-   mov ah, 0x0E
-   xor bx, bx
-.print:
-   lodsb
-   test al, al
-   jz .end
-   int  0x10
-   jmp short .print
-.end:
-
-   xor ax, ax
-   int 0x16
-
-   mov ax, 0x4c00
-   int 0x21
-
-section .appspecific
-asciz1: db "This is string 2", 0
-
-section .code
-org 0x100
-bits 16
-
-start:
-   mov dx, mystr1
-   mov ah, 9
-   int 0x21
-
-   xor ax, ax
-   int 0x16
-
-   jmp more
-
-section .text
-	xor	eax,eax
-	times	50h nop
-
-section .mytext
-
-	xor	ebx,ebx
-
-section .data
-	db	95h,95h,95h,95h,95h,95h,95h,95h
-
-section .hmm
-	resd	2
-
-section .bss
-	resd	8
-
-section .final1
-	inc	ax
-
-section .final2
-	inc	bx
-
-section .final3
-	inc	cx
--- a/nasmbuild/nasm-2.13rc9/test/nasmformat.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-;Testname=obj; Arguments=-fobj -onasmfomat.o; Files=stdout stderr nasmfomat.o
-;Testname=bin; Arguments=-fbin -onasmfomat.o; Files=stdout stderr nasmfomat.o
-;Testname=rdf; Arguments=-frdf -onasmfomat.o; Files=stdout stderr nasmfomat.o
-
-%if __OUTPUT_FORMAT__ == 'bin'
-
-db 'This is binary format file'
-
-%elif __OUTPUT_FORMAT__ == 'obj'
-
-db 'This is object format file'
-
-%else
-
-db 'This is some other format file'
-
-%endif
--- a/nasmbuild/nasm-2.13rc9/test/new	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-#!/bin/sh
-for f; do
-  if [ -e "$f".asm ]; then
-    # For safety...
-    echo "$0: $f already exists" 1>&2
-    exit 1
-  fi
-  echo ";Testname=test; Arguments=-fbin -o$f.bin; Files=stdout stderr $f.bin" > "$f".asm
-done
--- a/nasmbuild/nasm-2.13rc9/test/newrdwr.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-;Testname=test; Arguments=-fbin -onewrdwr.bin; Files=stdout stderr newrdwr.bin
-
-	bits 64
-
-	rdfsbase eax
-	rdfsbase rax
-	rdgsbase eax
-	rdgsbase rax
-	rdrand ax
-	rdrand eax
-	rdrand rax
-	wrfsbase eax
-	wrfsbase rax
-	wrgsbase eax
-	wrgsbase rax
-
-	osp rdfsbase eax
-	osp rdfsbase rax
-	osp rdgsbase eax
-	osp rdgsbase rax
-	osp wrfsbase eax
-	osp wrfsbase rax
-	osp wrgsbase eax
-	osp wrgsbase rax
--- a/nasmbuild/nasm-2.13rc9/test/nop.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-;Testname=unoptimized; Arguments=-fbin -onop.bin;     Files=stdout stderr nop.bin
-;Testname=optimized;   Arguments=-fbin -onop.bin -Ox; Files=stdout stderr nop.bin
-
-	bits 64
-
-	nop
-	o64 nop
-	pause
-	o64 pause
-
-	xchg ax,ax
-	xchg eax,eax
-	xchg rax,rax
-	
-	rep xchg ax,ax
-	rep xchg eax,eax
-	rep xchg rax,rax
--- a/nasmbuild/nasm-2.13rc9/test/nullfile.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-;Testname=test; Arguments=-fbin -onull.bin; Files=stdout stderr null.bin
-;
-; A file that produces no output has been known to occationally crash NASM.
-;
--- a/nasmbuild/nasm-2.13rc9/test/objexe.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-; Demonstration of how to write an entire .EXE format program as a .OBJ
-; file to be linked. Tested with the VAL free linker.
-; To build:
-;    nasm -fobj objexe.asm
-;    val objexe.obj,objexe.exe;
-; To test:
-;    objexe
-; (should print `hello, world')
-	  
-	  segment code
-
-..start:  mov ax,data
-	  mov ds,ax
-	  mov ax,stack
-	  mov ss,ax
-	  mov sp,stacktop
-
-	  mov dx,hello
-	  mov ah,9
-	  int 0x21
-
-	  mov ax,0x4c00
-	  int 0x21
-
-	  segment data
-hello:	  db 'hello, world', 13, 10, '$'
-
-	  segment stack stack
-	  resb 64
-stacktop:
--- a/nasmbuild/nasm-2.13rc9/test/objlink.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/*
- * test source file for assembling to Microsoft 16-bit .OBJ
- * build with (16-bit Microsoft C):
- *    nasm -f obj objtest.asm
- *    cl /AL objtest.obj objlink.c
- * other compilers should work too, provided they handle large
- * model in the same way as MS C
- */
-
-#include <stdio.h>
-#include <inttypes.h>
-
-int8_t text[] = "hello, world\n";
-
-extern void function(int8_t *);
-extern int bsssym, commvar;
-extern void *selfptr;
-extern void *selfptr2;
-
-int main(void)
-{
-    printf("these should be identical: %p, %p\n",
-           (int32_t)selfptr, (int32_t)&selfptr);
-    printf("these should be equivalent but different: %p, %p\n",
-           (int32_t)selfptr2, (int32_t)&selfptr2);
-    printf("you should see \"hello, world\" twice:\n");
-    bsssym = 0xF00D;
-    commvar = 0xD00F;
-    function(text);
-    printf("this should be 0xF00E: 0x%X\n", bsssym);
-    printf("this should be 0xD00E: 0x%X\n", commvar);
-    return 0;
-}
--- a/nasmbuild/nasm-2.13rc9/test/objtest.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-;Testname=unoptimized; Arguments=-O0 -fobj -oobj.o; Files=stdout stderr obj.o
-;Testname=optimized;   Arguments=-Ox -fobj -oobj.o; Files=stdout stderr obj.o
-
-; test source file for assembling to Microsoft 16-bit .OBJ
-; build with (16-bit Microsoft C):
-;    nasm -f obj objtest.asm
-;    cl /AL objtest.obj objlink.c
-; other compilers should work too, provided they handle large
-; model in the same way as MS C
-
-; This file should test the following:
-; [1] Define and export a global symbol
-; [2] Define a non-global symbol
-; [3] Define a common symbol
-; [4] Define a NASM local label
-; [5] Reference a NASM local label
-; [6] Import an external symbol
-; [7] Make a PC-relative relocated reference
-; [8] Reference a symbol in the same section as itself
-; [9] Reference a symbol in a different segment from itself
-; [10] Define a segment group
-; [11] Take the offset of a symbol in a grouped segment w.r.t. its segment
-; [12] Reserve uninitialised data space in a segment
-; [13] Directly take the segment address of a segment
-; [14] Directly take the segment address of a group
-; [15] Use SEG on a non-external
-; [16] Use SEG on an external
-
-	  bits 16
-
-	  global _bsssym	; [1]
-	  global _function	; [1]
-	  global _selfptr	; [1]
-	  global _selfptr2	; [1]
-	  common _commvar 2	; [3]
-	  extern _printf	; [6]
-
-	  group mygroup mybss mydata ; [10]
-	  group mygroup2 mycode mycode2	; [10]
-
-	  segment mycode private
-
-_function push bp
-	  mov bp,sp
-	  push ds
-	  mov ax,mygroup	; [14]
-	  mov ds,ax
-	  inc word [_bsssym]	; [9]
-	  mov ax,seg _commvar
-	  mov ds,ax
-	  dec word [_commvar]
-	  pop ds
-	  mov ax,[bp+6]
-	  mov dx,[bp+8]
-	  push dx
-	  push ax
-	  push dx
-	  push ax
-	  call far [cs:.printf]	; [5] [8]
-	  pop ax
-	  pop ax
-	  call trampoline	; [7]
-	  pop ax
-	  pop ax
-	  mov sp,bp
-	  pop bp
-	  retf
-
-.printf	  dw _printf, seg _printf ; [2] [4] [16]
-
-	  segment mycode2 private
-
-trampoline: pop ax
-	  push cs
-	  push ax
-	  jmp far _printf
-
-	  segment mybss private
-
-_bsssym	  resw 64		; [12]
-
-	  segment mydata private
-
-_selfptr  dw _selfptr, seg _selfptr ; [8] [15]
-_selfptr2 dw _selfptr2 wrt mydata, mydata ; [11] [13]
--- a/nasmbuild/nasm-2.13rc9/test/optimization.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-;Testname=O0; Arguments=-O0 -fbin -ooptimization.bin; Files=stdout stderr optimization.bin
-;Testname=O1; Arguments=-O1 -fbin -ooptimization.bin; Files=stdout stderr optimization.bin
-;Testname=Ox; Arguments=-Ox -fbin -ooptimization.bin; Files=stdout stderr optimization.bin
-
-BITS 32
-
-; Simple
-jmp foo
-times 124 nop
-foo:
-
-; Must start short to converge optimally
-jmp car
-times 127 nop
-car:
-
-; Always near
-jmp cdr
-times 128 nop
-cdr:
-
-
-; Simple
-add eax, quux2 - quux1
-quux1:
-times 127 nop
-quux2:
-
-; Must start short
-corge1:
-add eax, corge2 - corge1
-times 127 - 3 nop
-corge2:
-
-
-; Simple
-lea eax, [bolug2-bolug1]
-bolug1:
-times 127 nop
-bolug2:
-
-; Must start short
-calog1:
-lea eax, [calog2-calog1]
-times 127 - 3 nop
-calog2:
-
-
-; Simple
-lea eax, [eax+dolug2-dolug1]
-dolug1:
-times 127 nop
-dolug2:
-
-; Must start short
-ealog1:
-lea eax, [eax+ealog2-ealog1]
-times 127 - 3 nop
-ealog2:
-
-; Must stay long!
-lea eax, [eax+folug2-folug1]
-folug1:
-times 128 nop
-folug2:
-
-; Must stay long!
-galog1:
-lea eax, [eax+galog2-galog1]
-times 128 - 3 nop
-galog2:
-
-; Sbyte tests...
-onetwentysix	equ 126
-onetwentynine	equ 129
-	
-add eax,onetwentyseven		; sbyte (forward)
-add eax,onetwentyeight		; not sbyte (forward)
-add eax,onetwentyseven		; sbyte (forward)
-add eax,onetwentysix		; sbyte (backward)
-add eax,onetwentynine		; not sbyte (backward)
-add ecx,onetwentyseven		; sbyte (forward)
-add ecx,onetwentyeight		; not sbyte (forward)
-add ecx,onetwentyseven		; sbyte (forward)
-add ecx,onetwentysix		; sbyte (backward)
-add ecx,onetwentynine		; not sbyte (backward)
-	
-onetwentyseven	equ 127
-onetwentyeight	equ 128
-
-; Simple
-add eax, holug2-holug1
-holug1:
-times 127 nop
-holug2:
-
-; Must start short
-ialog1:
-add eax, ialog2-ialog1
-times 127 - 3 nop
-ialog2:
-	
-; Do not confuse forward references and segmentless addresses!
-jmp 12345
--- a/nasmbuild/nasm-2.13rc9/test/org.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-;Testname=elf64; Arguments=-Ox -felf64 -oorg.o; Files=stdout stderr org.o
-;Testname=win64; Arguments=-Ox -fwin64 -oorg.o; Files=stdout stderr org.o
-
-;
-; Simple test of a 64-bit org directive
-; 
-		bits 64
-		org 0xffffffffffff0000
-
-hello:		jmp there
-		nop
-		nop
-there:
-		add rax,[rsp+rbx]
-		inc eax
-
-		section .data
-there_ptr	dq there
--- a/nasmbuild/nasm-2.13rc9/test/paste.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-%macro bug 1-*
-	%push foo
-		%define %$v %1
-		%define vv %$v_ %+ %1
-		%%top_{%$v}%1:
-		mov eax, eax
-		mov eax, %%top_{%$v}%1
-		mov eax, vv
-	%pop
-%endmacro
-
-bug a
--- a/nasmbuild/nasm-2.13rc9/test/pcrel.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-	bits 32
-foo:				; Backwards reference
-	mov eax,[foo - $]
-	mov ebx,[ebx + foo - $]
-	mov ecx,foo - $
-	mov edx,foo - bar
-
-	mov eax,[bar - $]
-	mov ebx,[ebx + bar - $]
-	mov ecx,bar - $
-	mov edx,bar - foo
-
-	mov eax,[baz - $]
-	mov ebx,[ebx + baz - $]
-	mov esi,[baz - bar]
-	mov ecx,baz - $
-	mov edx,baz - bar
-
-	bits 64
-	default rel
-
-	times 16 nop
-
-	mov eax,[foo]
-	mov eax,[foo - $]
-	mov eax,[abs foo - $]
-	mov ebx,[rbx + foo - $]
-	mov ecx,foo - $
-	mov edx,foo - bar
-
-	mov eax,[bar]
-	mov eax,[bar - $]
-	mov eax,[abs bar - $]
-	mov ebx,[rbx + bar - $]
-	mov ecx,bar - $
-	mov edx,bar - foo
-
-	mov eax,[baz]
-	mov eax,[baz - $]
-	mov eax,[abs baz - $]
-	mov ebx,[rbx + baz - $]
-	mov esi,[baz - bar]
-	mov esi,[abs baz - bar]
-	mov ecx,baz - $
-	mov edx,baz - bar
-
-bar:				; Forwards reference
-	hlt
-
-	section ".data"
-baz:				; Other-segment reference
-	dd 0
--- a/nasmbuild/nasm-2.13rc9/test/perf/label.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-#!/usr/bin/perl
-#
-# Generate a test case for label lookup performance
-#
-
-($len) = @ARGV;
-$len = 100000 unless ($len);
-
-print "\tbits 32\n";
-print "\tsection .data\n";
-print "\n";
-
-for ($i = 0; $i < $len; $i++) {
-    print "l$i:\n";
-    for ($j = 0; $j < 8; $j++) {
-	print "\tdd l", int(rand($i+1)), "\n";
-    }
-}
--- a/nasmbuild/nasm-2.13rc9/test/perf/macro.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-#!/usr/bin/perl
-#
-# Generate a test case for macro lookup performance
-#
-
-($len) = @ARGV;
-$len = 100000 unless ($len);
-
-print "\tbits 32\n";
-print "\tsection .data\n";
-print "\n";
-
-for ($i = 0; $i < $len; $i++) {
-    print "%define m$i $i\n";
-    for ($j = 0; $j < 8; $j++) {
-	print "\tdd m", int(rand($i+1)), "\n";
-    }
-}
--- a/nasmbuild/nasm-2.13rc9/test/perf/token.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-#!/usr/bin/perl
-#
-# Generate a test case for token lookup performance
-#
-
-@insns = qw(add sub adc sbb and or xor mov);
-@regs  = qw(eax ebx ecx edx esp ebp esi edi);
-
-srand(0);
-sub pickone(@) {
-    return $_[int(rand(scalar @_))];
-}
-
-($len) = @ARGV;
-$len = 1000000 unless ($len);
-
-print "\tbits 32\n";
-print "\n";
-
-for ($i = 0; $i < $len; $i++) {
-    print "\t", pickone(@insns), " ",
-        pickone(@regs), ",", pickone(@regs), "\n";
-}
--- a/nasmbuild/nasm-2.13rc9/test/performtest.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,192 +0,0 @@
-#!/usr/bin/perl
-#Perform tests on nasm
-
-use strict;
-use warnings;
-
-use Getopt::Long qw(GetOptions);
-use Pod::Usage qw(pod2usage);
-
-use File::Basename qw(fileparse);
-use File::Compare qw(compare compare_text);
-use File::Copy qw(move);
-use File::Path qw(mkpath rmtree);
-
-#sub debugprint { print (pop() . "\n"); }
- sub debugprint { }
-
-my $globalresult = 0;
-
-#Process one testfile
-sub perform {
-    my ($clean, $diff, $golden, $nasm, $quiet, $testpath) = @_;
-    my ($stdoutfile, $stderrfile) = ("stdout", "stderr");
-
-    my ($testname, $ignoredpath, $ignoredsuffix) = fileparse($testpath, ".asm");
-    debugprint $testname;
-
-    my $outputdir = $golden ? "golden" : "testresults";
-
-    mkdir "$outputdir" unless -d "$outputdir";
-
-    if ($clean) {
-        rmtree "$outputdir/$testname";
-        return;
-    }
-
-    if(-d "$outputdir/$testname") {
-        rmtree "$outputdir/$testname";
-    }
-
-    open(TESTFILE, '<', $testpath) or (warn "Can't open $testpath\n", return);
-    TEST:
-    while(<TESTFILE>) {
-        #See if there is a test case
-        last unless /Testname=(.*);\s*Arguments=(.*);\s*Files=(.*)/;
-        my ($subname, $arguments, $files) = ($1, $2, $3);
-        debugprint("$subname | $arguments | $files");
-
-        #Call nasm with this test case
-        system("$nasm $arguments $testpath > $stdoutfile 2> $stderrfile");
-        debugprint("$nasm $arguments $testpath > $stdoutfile 2> $stderrfile ----> $?");
-
-        #Move the output to the test dir
-        mkpath("$outputdir/$testname/$subname");
-        foreach(split / /,$files) {
-            if (-f $_) {
-                move($_, "$outputdir/$testname/$subname/$_") or die $!
-            }
-        }
-        unlink ("$stdoutfile", "$stderrfile"); #Just to be sure
-
-        if($golden) {
-            print "Test $testname/$subname created.\n" unless $quiet;
-        } else {
-            #Compare them with the golden files
-            my $result = 0;
-            my @failedfiles = ();
-            foreach(split / /, $files) {
-                if(-f "$outputdir/$testname/$subname/$_") {
-                    my $temp;
-                    if($_ eq $stdoutfile or $_ eq $stderrfile) {
-                        #Compare stdout and stderr in text mode so line ending changes won't matter
-                        $temp = compare_text("$outputdir/$testname/$subname/$_", "golden/$testname/$subname/$_",
-                                             sub { my ($a, $b) = @_;
-                                                   $a =~ s/\r//g;
-                                                   $b =~ s/\r//g;
-                                                   $a ne $b; } );
-                    } else {
-                        $temp = compare("$outputdir/$testname/$subname/$_", "golden/$testname/$subname/$_");
-                    }
-
-                    if($temp == 1) {
-                        #different
-                        $result = 1;
-                        $globalresult = 1;
-                        push @failedfiles, $_;
-                    } elsif($temp == -1) {
-                        #error
-                        print "Can't compare at $testname/$subname file $_\n";
-                        next TEST;
-                    }
-                } elsif (-f "golden/$testname/$subname/$_") {
-                    #File exists in golden but not in output
-                    $result = 1;
-                    $globalresult = 1;
-                    push @failedfiles, $_;
-                }
-            }
-
-            if($result == 0) {
-                print "Test $testname/$subname succeeded.\n" unless $quiet;
-            } elsif ($result == 1) {
-                print "Test $testname/$subname failed on @failedfiles.\n";
-                if($diff) {
-                    for(@failedfiles) {
-                        if($_ eq $stdoutfile or $_ eq $stderrfile) {
-                            system "diff -u golden/$testname/$subname/$_ $outputdir/$testname/$subname/$_";
-                            print "\n";
-                        }
-                    }
-                }
-            } else {
-                die "Impossible result";
-            }
-        }
-    }
-    close(TESTFILE);
-}
-
-my $nasm;
-my $clean = 0;
-my $diff = 0;
-my $golden = 0;
-my $help = 0;
-my $verbose = 0;
-
-GetOptions('clean' => \$clean,
-           'diff'=> \$diff,
-           'golden' => \$golden,
-           'help' => \$help,
-           'verbose' => \$verbose,
-           'nasm=s' => \$nasm
-          ) or pod2usage();
-
-pod2usage() if $help;
-die "Please specify either --nasm or --clean. Use --help for help.\n"
-unless $nasm or $clean;
-die "Please specify the test files, e.g. *.asm\n" unless @ARGV;
-
-unless (!defined $nasm or -x $nasm) {
-  warn "Warning: $nasm may not be executable. Expect problems.\n\n";
-  sleep 5;
-}
-
-perform($clean, $diff, $golden, $nasm, ! $verbose, $_) foreach @ARGV;
-exit $globalresult;
-
-__END__
-
-=head1 NAME
-
-performtest.pl - NASM regression tester based on golden files
-
-=head1 SYNOPSIS
-
-performtest.pl [options] [testfile.asm ...]
-
-Runs NASM on the specified test files and compare the results
-with "golden" output files.
-
- Options:
-     --clean     Clean up test results (or golden files with --golden)
-     --diff      Execute diff when stdout or stderr don't match
-     --golden    Create golden files
-     --help      Get this help
-     --nasm=file Specify the file name for the NASM executable, e.g. ../nasm
-     --verbose   Get more output
-
-     If --clean is not specified, --nasm is required.
-
- testfile.asm ...:
-    One or more files that NASM should be tested with,
-    often *.asm in the test directory.
-    It should contain one or more option lines at the start,
-    in the following format:
-
-;Testname=<testname>; Arguments=<arguments to nasm>; Files=<output files>
-
-    If no such lines are found at the start, the file is skipped.
-    testname should ideally describe the arguments, eg. unoptimized for -O0.
-    arguments can be an optimization level (-O), an output format (-f),
-    an output file specifier (-o) etc.
-    The output files should be a space seperated list of files that will
-    be checked for regressions. This should often be the output file
-    and the special files stdout and stderr.
-
-Any mismatch could be a regression,
-but it doesn't have to be. COFF files have a timestamp which
-makes this method useless. ELF files have a comment section
-with the current version of NASM, so they will change each version number.
-
-=cut
--- a/nasmbuild/nasm-2.13rc9/test/pinsr16.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-;Testname=test; Arguments=-O0 -fbin -opinsr16.bin; Files=stdout stderr pinsr16.bin
-	bits 16
-
-	pinsrw mm0,eax,0
-	pinsrw mm1,si,0
-	pinsrw mm2,[bx],0
-	pinsrw mm3,word [bx],0
-
-	pinsrb xmm0,eax,0
-	pinsrb xmm1,sil,0
-;	pinsrb xmm1,bh,0
-	pinsrb xmm2,[bx],0
-	pinsrb xmm3,byte [bx],0
-
-	pinsrw xmm0,eax,0
-	pinsrw xmm1,si,0
-	pinsrw xmm2,[bx],0
-	pinsrw xmm3,word [bx],0
-
-	pinsrd xmm0,eax,0
-	pinsrd xmm1,esi,0
-	pinsrd xmm2,[bx],0
-	pinsrd xmm3,dword [bx],0
-
-	vpinsrb xmm0,eax,0
-	vpinsrb xmm1,bl,0
-	vpinsrb xmm2,[bx],0
-	vpinsrb xmm3,byte [bx],0
-
-	vpinsrw xmm0,eax,0
-	vpinsrw xmm1,si,0
-	vpinsrw xmm2,[bx],0
-	vpinsrw xmm3,word [bx],0
-
-	vpinsrd xmm0,eax,0
-	vpinsrd xmm1,esi,0
-	vpinsrd xmm2,[bx],0
-	vpinsrd xmm3,dword [bx],0
-
-	vpinsrb xmm4,xmm0,eax,0
-	vpinsrb xmm5,xmm1,bl,0
-	vpinsrb xmm6,xmm2,[bx],0
-	vpinsrb xmm7,xmm3,byte [bx],0
-
-	vpinsrw xmm4,xmm0,eax,0
-	vpinsrw xmm5,xmm1,si,0
-	vpinsrw xmm6,xmm2,[bx],0
-	vpinsrw xmm7,xmm3,word [bx],0
-
-	vpinsrd xmm4,xmm0,eax,0
-	vpinsrd xmm5,xmm1,esi,0
-	vpinsrd xmm6,xmm2,[bx],0
-	vpinsrd xmm7,xmm3,dword [bx],0
--- a/nasmbuild/nasm-2.13rc9/test/pinsr32.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-;Testname=test; Arguments=-O0 -fbin -opinsr32.bin; Files=stdout stderr pinsr32.bin
-	bits 32
-
-	pinsrw mm0,eax,0
-	pinsrw mm1,si,0
-	pinsrw mm2,[ecx],0
-	pinsrw mm3,word [ecx],0
-
-	pinsrb xmm0,eax,0
-	pinsrb xmm1,sil,0
-;	pinsrb xmm1,bh,0
-	pinsrb xmm2,[ecx],0
-	pinsrb xmm3,byte [ecx],0
-
-	pinsrw xmm0,eax,0
-	pinsrw xmm1,si,0
-	pinsrw xmm2,[ecx],0
-	pinsrw xmm3,word [ecx],0
-
-	pinsrd xmm0,eax,0
-	pinsrd xmm1,esi,0
-	pinsrd xmm2,[ecx],0
-	pinsrd xmm3,dword [ecx],0
-
-	vpinsrb xmm0,eax,0
-	vpinsrb xmm1,bl,0
-	vpinsrb xmm2,[ecx],0
-	vpinsrb xmm3,byte [ecx],0
-
-	vpinsrw xmm0,eax,0
-	vpinsrw xmm1,si,0
-	vpinsrw xmm2,[ecx],0
-	vpinsrw xmm3,word [ecx],0
-
-	vpinsrd xmm0,eax,0
-	vpinsrd xmm1,esi,0
-	vpinsrd xmm2,[ecx],0
-	vpinsrd xmm3,dword [ecx],0
-
-	vpinsrb xmm4,xmm0,eax,0
-	vpinsrb xmm5,xmm1,bl,0
-	vpinsrb xmm6,xmm2,[ecx],0
-	vpinsrb xmm7,xmm3,byte [ecx],0
-
-	vpinsrw xmm4,xmm0,eax,0
-	vpinsrw xmm5,xmm1,si,0
-	vpinsrw xmm6,xmm2,[ecx],0
-	vpinsrw xmm7,xmm3,word [ecx],0
-
-	vpinsrd xmm4,xmm0,eax,0
-	vpinsrd xmm5,xmm1,esi,0
-	vpinsrd xmm6,xmm2,[ecx],0
-	vpinsrd xmm7,xmm3,dword [ecx],0
--- a/nasmbuild/nasm-2.13rc9/test/pinsr64.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-;Testname=test; Arguments=-O0 -fbin -opinsr64.bin; Files=stdout stderr pinsr64.bin
-	bits 64
-
-	pinsrw mm0,eax,0
-	pinsrw mm1,si,0
-	pinsrw mm2,[rcx],0
-	pinsrw mm3,word [rcx],0
-
-	pinsrb xmm0,eax,0
-	pinsrb xmm1,sil,0
-;	pinsrb xmm1,bh,0
-	pinsrb xmm2,[rcx],0
-	pinsrb xmm3,byte [rcx],0
-
-	pinsrw xmm0,eax,0
-	pinsrw xmm1,si,0
-	pinsrw xmm2,[rcx],0
-	pinsrw xmm3,word [rcx],0
-
-	pinsrd xmm0,eax,0
-	pinsrd xmm1,esi,0
-	pinsrd xmm2,[rcx],0
-	pinsrd xmm3,dword [rcx],0
-
-	pinsrq xmm0,rax,0
-	pinsrq xmm1,rsi,0
-	pinsrq xmm2,[rcx],0
-	pinsrq xmm3,qword [rcx],0
-
-	vpinsrb xmm0,eax,0
-	vpinsrb xmm1,sil,0
-	vpinsrb xmm2,[rcx],0
-	vpinsrb xmm3,byte [rcx],0
-
-	vpinsrw xmm0,eax,0
-	vpinsrw xmm1,si,0
-	vpinsrw xmm2,[rcx],0
-	vpinsrw xmm3,word [rcx],0
-
-	vpinsrd xmm0,eax,0
-	vpinsrd xmm1,esi,0
-	vpinsrd xmm2,[rcx],0
-	vpinsrd xmm3,dword [rcx],0
-
-	vpinsrq xmm0,rax,0
-	vpinsrq xmm1,rsi,0
-	vpinsrq xmm2,[rcx],0
-	vpinsrq xmm3,qword [rcx],0
-
-	vpinsrb xmm4,xmm0,eax,0
-	vpinsrb xmm5,xmm1,sil,0
-	vpinsrb xmm6,xmm2,[rcx],0
-	vpinsrb xmm7,xmm3,byte [rcx],0
-
-	vpinsrw xmm4,xmm0,eax,0
-	vpinsrw xmm5,xmm1,si,0
-	vpinsrw xmm6,xmm2,[rcx],0
-	vpinsrw xmm7,xmm3,word [rcx],0
-
-	vpinsrd xmm4,xmm0,eax,0
-	vpinsrd xmm5,xmm1,esi,0
-	vpinsrd xmm6,xmm2,[rcx],0
-	vpinsrd xmm7,xmm3,dword [rcx],0
-
-	vpinsrq xmm4,xmm0,rax,0
-	vpinsrq xmm5,xmm1,rsi,0
-	vpinsrq xmm6,xmm2,[rcx],0
-	vpinsrq xmm7,xmm3,qword [rdx],0
--- a/nasmbuild/nasm-2.13rc9/test/popcnt.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-;Testname=test; Arguments=-fbin -opopcnt.bin; Files=stdout stderr popcnt.bin
-
-	bits 16
-
-	popcnt ax,cx
-	popcnt ax,[si]
-	popcnt ax,word [si]
-	popcnt eax,ecx
-	popcnt eax,[si]
-	popcnt eax,dword [si]
-
-	bits 32
-
-	popcnt ax,cx
-	popcnt ax,[esi]
-	popcnt ax,word [esi]
-	popcnt eax,ecx
-	popcnt eax,[esi]
-	popcnt eax,dword [esi]
-
-	bits 64
-
-	popcnt ax,cx
-	popcnt ax,[rsi]
-	popcnt ax,word [rsi]
-	popcnt eax,ecx
-	popcnt eax,[rsi]
-	popcnt eax,dword [rsi]
-	popcnt rax,rcx
-	popcnt rax,[rsi]
-	popcnt rax,qword [rsi]
-	
\ No newline at end of file
--- a/nasmbuild/nasm-2.13rc9/test/ppindirect.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-;Testname=test; Arguments=-E -o ppindirect.out; Files=ppindirect.out
-
-; Fun tests of the preprocessor indirection mode...
-
-%assign foo1		11
-%assign foo11		1111
-%assign foo2		22
-%assign foo22		2222
-%assign foo3		33
-%assign foo33		3333
-%assign n		2
-foo%[foo%[n]]*100
-foo%[n]*100
-%assign foo%[foo%[n]]	foo%[foo%[n]]*100
-;%assign foo%[n]		foo%[n]*100
-
-	foo1
-	foo2
-	foo3
-	foo11
-	foo22
-	foo33
-
-%define foo33bar	999999
-	%[foo%[foo3]bar]
-	
-%assign bctr 0
-%macro bluttan 0
-%assign bctr bctr+1
-%assign bluttan%[bctr]	bctr
-%defstr bstr bluttan%[bctr]
-	bluttan%[bctr]
-	bstr
-%endmacro
-
-%rep 20
-	bluttan
-%endrep
-%rep 20
-	bluttan%[bctr]
-%assign bctr bctr-1
-%endrep
--- a/nasmbuild/nasm-2.13rc9/test/pragma.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-%pragma
-%pragma bluttan
-%pragma bluttan blej
-%pragma "Hej tomtegubbar"
-%define PR asm foobar
-%pragma PR
-%pragma preproc
-%pragma preproc tjo fidelittan
-	
-	
--- a/nasmbuild/nasm-2.13rc9/test/prefix66.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-;Testname=test; Arguments=-fbin -oprefix66.bin; Files=stdout stderr prefix66.bin
-
-BITS 16
-cmp ax, 1
-o16 cmp ax, 1
-o32 cmp ax, 1
-
-cmp eax, 1
-o16 cmp eax, 1
-o32 cmp eax, 1
-
-BITS 32
-cmp ax, 1
-o16 cmp ax, 1
-o32 cmp ax, 1
-
-cmp eax, 1
-o16 cmp eax, 1
-o32 cmp eax, 1
-
-BITS 64
-cmp ax, 1
-o16 cmp ax, 1
-o32 cmp ax, 1
-
-cmp eax, 1
-o16 cmp eax, 1
-o32 cmp eax, 1
--- a/nasmbuild/nasm-2.13rc9/test/ptr.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-	;;  This should warn but still assemble, as the code is correct
-
-	mov eax,dword ptr
-ptr:
--- a/nasmbuild/nasm-2.13rc9/test/pushseg.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-;Testname=test; Arguments=-fbin -opushseg.bin; Files=stdout stderr pushseg.bin
-
-	bits 16
-
-	push cs
-	push ds
-	push es
-	push ss
-	push fs
-	push gs
-
-	pop gs
-	pop fs
-	pop ss
-	pop es
-	pop ds
-	pop cs		; 8086 only, does not disassemble
--- a/nasmbuild/nasm-2.13rc9/test/r13.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-;Testname=test; Arguments=-fbin -or13.bin; Files=stdout stderr r13.bin
-
-	bits 64
-	mov rax,[rbx]
-	mov rax,[rbx*4]
-	mov rax,[rbx+rbx*2]
-	mov rax,[r13+rbx*2]
-	mov rax,[rbp]
-	mov rax,[rbp*4]
-	mov rax,[rbp+rbp*2]
-	mov rax,[rbp+r13*2]
-	mov rax,[r13]
-	mov rax,[r13*4]
-	mov rax,[r13+rbp*2]
-	mov rax,[r13+r13*2]
--- a/nasmbuild/nasm-2.13rc9/test/radix.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-;Testname=test; Arguments=-fbin -oradix.bin; Files=stdout stderr radix.bin
-
-	;;  Integer constants...
-
-	dd 1010_0101		; Decimal
-	dd 01010_0101		; Decimal (*not* octal!)
-	dd 0d1010_0101		; Decimal
-	dd 0t1010_0101		; Decimal
-	dd 1010_0101d		; Decimal
-	dd 1010_0101t		; Decimal
-
-	dd 0b1010_0101		; Binary
-	dd 0y1010_0101		; Binary
-	dd 1010_0101b		; Binary
-	dd 1010_0101y		; Binary
-
-	dd 0o1010_0101		; Octal
-	dd 0q1010_0101		; Octal
-	dd 1010_0101o		; Octal
-	dd 1010_0101q		; Octal
-
-	dd 0h1010_0101		; Hex
-	dd 0x1010_0101		; Hex
-	dd 1010_0101h		; Hex
-	dd 1010_0101x		; Hex
-	dd $1010_0101		; Hex
-
-	db 0h			; Zero!
-	db 0x			; Zero!
-	db 0b			; Zero!
-	db 0dh			; Hex
-	db 0bh			; Hex
-	db 0dx			; Hex
-	db 0bx			; Hex
-	db 0hd			; Hex
-	db 0hb			; Hex
-	db 0xd			; Hex
-	db 0xb			; Hex
-	
-	;; Floating-point constants
-	;; All of these should output B4A21147
-	dd 3.7282705e+4		; Decimal
-	dd 00003.7282705e+4	; Decimal
-	dd 0d3.7282705e+4	; Decimal
-	dd 0t3.7282705e+4	; Decimal
-
-	dd 0x1.23456789p+15	; Hex
-	dd 0h1.23456789p+15	; Hex
-	
-	dd 0o1.10642547422p+15	; Octal
-	dd 0q1.10642547422p+15	; Octal
-
-	dd 0b1.0010_0011_0100_0101_0110_0111_1000_1001p+15 ; Binary
-	dd 0y1.0010_0011_0100_0101_0110_0111_1000_1001p+15 ; Binary
--- a/nasmbuild/nasm-2.13rc9/test/rdpid.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-%ifdef ERROR
-  %define ERR(x) x
-%else
-  %define ERR(x)
-%endif
-
-	bits 16
-
-	rdpid eax
-	ERR(rdpid ax)
-
-	bits 32
-
-	rdpid ebx
-	ERR(rdpid bx)
-
-	bits 64
-
-	rdpid rcx
-	rdpid ecx
-	ERR(rdpid cx)
--- a/nasmbuild/nasm-2.13rc9/test/reldef.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-	bits 64
-
-	extern bar
-
-	section .data
-foo:	dd bar
-	dd foo - $
-;	dd foo*2
-	dd bar - $
--- a/nasmbuild/nasm-2.13rc9/test/relocs.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-	bits 64
-	extern foo
-
-	mov eax,[foo]
-	mov rax,[foo]
-	mov rax,[qword foo]
-
-	mov eax,[a32 foo]
-	mov rax,[a32 foo]
-	mov rax,[a32 qword foo]
-
-	mov eax,foo
-	mov rax,dword foo
-	mov rax,qword foo
-	mov eax,foo
-	mov rax,dword foo
-	mov rax,qword foo
-
-	dd foo
-	dq foo
--- a/nasmbuild/nasm-2.13rc9/test/riprel.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5357 +0,0 @@
-;Testname=unoptimized; Arguments=-fbin -oriprel.bin -O0; Files=stdout stderr riprel.bin
-;Testname=optimized;   Arguments=-fbin -oriprel.bin -Ox; Files=stdout stderr riprel.bin
-	bits 64
-
-	default abs
-
-	mov al,[foo]
-	mov bl,[foo]
-	mov ax,[foo]
-	mov bx,[foo]
-	mov eax,[foo]
-	mov ebx,[foo]
-	mov rax,[foo]
-	mov rbx,[foo]
-	mov al,[0xaaaaaaaaaaaaaaaa]
-	mov bl,[0xaaaaaaaaaaaaaaaa]
-	mov ax,[0xaaaaaaaaaaaaaaaa]
-	mov bx,[0xaaaaaaaaaaaaaaaa]
-	mov eax,[0xaaaaaaaaaaaaaaaa]
-	mov ebx,[0xaaaaaaaaaaaaaaaa]
-	mov rax,[0xaaaaaaaaaaaaaaaa]
-	mov rbx,[0xaaaaaaaaaaaaaaaa]
-	mov al,[0xbbbbbbbb]
-	mov bl,[0xbbbbbbbb]
-	mov ax,[0xbbbbbbbb]
-	mov bx,[0xbbbbbbbb]
-	mov eax,[0xbbbbbbbb]
-	mov ebx,[0xbbbbbbbb]
-	mov rax,[0xbbbbbbbb]
-	mov rbx,[0xbbbbbbbb]
-	mov al,[0xffffffffcccccccc]
-	mov bl,[0xffffffffcccccccc]
-	mov ax,[0xffffffffcccccccc]
-	mov bx,[0xffffffffcccccccc]
-	mov eax,[0xffffffffcccccccc]
-	mov ebx,[0xffffffffcccccccc]
-	mov rax,[0xffffffffcccccccc]
-	mov rbx,[0xffffffffcccccccc]
-
-	mov al,[dword foo]
-	mov bl,[dword foo]
-	mov ax,[dword foo]
-	mov bx,[dword foo]
-	mov eax,[dword foo]
-	mov ebx,[dword foo]
-	mov rax,[dword foo]
-	mov rbx,[dword foo]
-	mov al,[dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[dword 0xbbbbbbbb]
-	mov bl,[dword 0xbbbbbbbb]
-	mov ax,[dword 0xbbbbbbbb]
-	mov bx,[dword 0xbbbbbbbb]
-	mov eax,[dword 0xbbbbbbbb]
-	mov ebx,[dword 0xbbbbbbbb]
-	mov rax,[dword 0xbbbbbbbb]
-	mov rbx,[dword 0xbbbbbbbb]
-	mov al,[dword 0xffffffffcccccccc]
-	mov bl,[dword 0xffffffffcccccccc]
-	mov ax,[dword 0xffffffffcccccccc]
-	mov bx,[dword 0xffffffffcccccccc]
-	mov eax,[dword 0xffffffffcccccccc]
-	mov ebx,[dword 0xffffffffcccccccc]
-	mov rax,[dword 0xffffffffcccccccc]
-	mov rbx,[dword 0xffffffffcccccccc]
-
-	mov al,[qword foo]
-	mov bl,[qword foo]
-	mov ax,[qword foo]
-	mov bx,[qword foo]
-	mov eax,[qword foo]
-	mov ebx,[qword foo]
-	mov rax,[qword foo]
-	mov rbx,[qword foo]
-	mov al,[qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[qword 0xbbbbbbbb]
-	mov bl,[qword 0xbbbbbbbb]
-	mov ax,[qword 0xbbbbbbbb]
-	mov bx,[qword 0xbbbbbbbb]
-	mov eax,[qword 0xbbbbbbbb]
-	mov ebx,[qword 0xbbbbbbbb]
-	mov rax,[qword 0xbbbbbbbb]
-	mov rbx,[qword 0xbbbbbbbb]
-	mov al,[qword 0xffffffffcccccccc]
-	mov bl,[qword 0xffffffffcccccccc]
-	mov ax,[qword 0xffffffffcccccccc]
-	mov bx,[qword 0xffffffffcccccccc]
-	mov eax,[qword 0xffffffffcccccccc]
-	mov ebx,[qword 0xffffffffcccccccc]
-	mov rax,[qword 0xffffffffcccccccc]
-	mov rbx,[qword 0xffffffffcccccccc]
-
-	mov al,[a64 foo]
-	mov bl,[a64 foo]
-	mov ax,[a64 foo]
-	mov bx,[a64 foo]
-	mov eax,[a64 foo]
-	mov ebx,[a64 foo]
-	mov rax,[a64 foo]
-	mov rbx,[a64 foo]
-	mov al,[a64 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 0xbbbbbbbb]
-	mov bl,[a64 0xbbbbbbbb]
-	mov ax,[a64 0xbbbbbbbb]
-	mov bx,[a64 0xbbbbbbbb]
-	mov eax,[a64 0xbbbbbbbb]
-	mov ebx,[a64 0xbbbbbbbb]
-	mov rax,[a64 0xbbbbbbbb]
-	mov rbx,[a64 0xbbbbbbbb]
-	mov al,[a64 0xffffffffcccccccc]
-	mov bl,[a64 0xffffffffcccccccc]
-	mov ax,[a64 0xffffffffcccccccc]
-	mov bx,[a64 0xffffffffcccccccc]
-	mov eax,[a64 0xffffffffcccccccc]
-	mov ebx,[a64 0xffffffffcccccccc]
-	mov rax,[a64 0xffffffffcccccccc]
-	mov rbx,[a64 0xffffffffcccccccc]
-
-	mov al,[a64 dword foo]
-	mov bl,[a64 dword foo]
-	mov ax,[a64 dword foo]
-	mov bx,[a64 dword foo]
-	mov eax,[a64 dword foo]
-	mov ebx,[a64 dword foo]
-	mov rax,[a64 dword foo]
-	mov rbx,[a64 dword foo]
-	mov al,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 dword 0xbbbbbbbb]
-	mov bl,[a64 dword 0xbbbbbbbb]
-	mov ax,[a64 dword 0xbbbbbbbb]
-	mov bx,[a64 dword 0xbbbbbbbb]
-	mov eax,[a64 dword 0xbbbbbbbb]
-	mov ebx,[a64 dword 0xbbbbbbbb]
-	mov rax,[a64 dword 0xbbbbbbbb]
-	mov rbx,[a64 dword 0xbbbbbbbb]
-	mov al,[a64 dword 0xffffffffcccccccc]
-	mov bl,[a64 dword 0xffffffffcccccccc]
-	mov ax,[a64 dword 0xffffffffcccccccc]
-	mov bx,[a64 dword 0xffffffffcccccccc]
-	mov eax,[a64 dword 0xffffffffcccccccc]
-	mov ebx,[a64 dword 0xffffffffcccccccc]
-	mov rax,[a64 dword 0xffffffffcccccccc]
-	mov rbx,[a64 dword 0xffffffffcccccccc]
-
-	mov al,[a64 qword foo]
-	mov bl,[a64 qword foo]
-	mov ax,[a64 qword foo]
-	mov bx,[a64 qword foo]
-	mov eax,[a64 qword foo]
-	mov ebx,[a64 qword foo]
-	mov rax,[a64 qword foo]
-	mov rbx,[a64 qword foo]
-	mov al,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 qword 0xbbbbbbbb]
-	mov bl,[a64 qword 0xbbbbbbbb]
-	mov ax,[a64 qword 0xbbbbbbbb]
-	mov bx,[a64 qword 0xbbbbbbbb]
-	mov eax,[a64 qword 0xbbbbbbbb]
-	mov ebx,[a64 qword 0xbbbbbbbb]
-	mov rax,[a64 qword 0xbbbbbbbb]
-	mov rbx,[a64 qword 0xbbbbbbbb]
-	mov al,[a64 qword 0xffffffffcccccccc]
-	mov bl,[a64 qword 0xffffffffcccccccc]
-	mov ax,[a64 qword 0xffffffffcccccccc]
-	mov bx,[a64 qword 0xffffffffcccccccc]
-	mov eax,[a64 qword 0xffffffffcccccccc]
-	mov ebx,[a64 qword 0xffffffffcccccccc]
-	mov rax,[a64 qword 0xffffffffcccccccc]
-	mov rbx,[a64 qword 0xffffffffcccccccc]
-
-	mov al,[a32 foo]
-	mov bl,[a32 foo]
-	mov ax,[a32 foo]
-	mov bx,[a32 foo]
-	mov eax,[a32 foo]
-	mov ebx,[a32 foo]
-	mov rax,[a32 foo]
-	mov rbx,[a32 foo]
-	mov al,[a32 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 0xbbbbbbbb]
-	mov bl,[a32 0xbbbbbbbb]
-	mov ax,[a32 0xbbbbbbbb]
-	mov bx,[a32 0xbbbbbbbb]
-	mov eax,[a32 0xbbbbbbbb]
-	mov ebx,[a32 0xbbbbbbbb]
-	mov rax,[a32 0xbbbbbbbb]
-	mov rbx,[a32 0xbbbbbbbb]
-	mov al,[a32 0xffffffffcccccccc]
-	mov bl,[a32 0xffffffffcccccccc]
-	mov ax,[a32 0xffffffffcccccccc]
-	mov bx,[a32 0xffffffffcccccccc]
-	mov eax,[a32 0xffffffffcccccccc]
-	mov ebx,[a32 0xffffffffcccccccc]
-	mov rax,[a32 0xffffffffcccccccc]
-	mov rbx,[a32 0xffffffffcccccccc]
-
-	mov al,[a32 dword foo]
-	mov bl,[a32 dword foo]
-	mov ax,[a32 dword foo]
-	mov bx,[a32 dword foo]
-	mov eax,[a32 dword foo]
-	mov ebx,[a32 dword foo]
-	mov rax,[a32 dword foo]
-	mov rbx,[a32 dword foo]
-	mov al,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 dword 0xbbbbbbbb]
-	mov bl,[a32 dword 0xbbbbbbbb]
-	mov ax,[a32 dword 0xbbbbbbbb]
-	mov bx,[a32 dword 0xbbbbbbbb]
-	mov eax,[a32 dword 0xbbbbbbbb]
-	mov ebx,[a32 dword 0xbbbbbbbb]
-	mov rax,[a32 dword 0xbbbbbbbb]
-	mov rbx,[a32 dword 0xbbbbbbbb]
-	mov al,[a32 dword 0xffffffffcccccccc]
-	mov bl,[a32 dword 0xffffffffcccccccc]
-	mov ax,[a32 dword 0xffffffffcccccccc]
-	mov bx,[a32 dword 0xffffffffcccccccc]
-	mov eax,[a32 dword 0xffffffffcccccccc]
-	mov ebx,[a32 dword 0xffffffffcccccccc]
-	mov rax,[a32 dword 0xffffffffcccccccc]
-	mov rbx,[a32 dword 0xffffffffcccccccc]
-
-	mov al,[a32 qword foo]
-	mov bl,[a32 qword foo]
-	mov ax,[a32 qword foo]
-	mov bx,[a32 qword foo]
-	mov eax,[a32 qword foo]
-	mov ebx,[a32 qword foo]
-	mov rax,[a32 qword foo]
-	mov rbx,[a32 qword foo]
-	mov al,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 qword 0xbbbbbbbb]
-	mov bl,[a32 qword 0xbbbbbbbb]
-	mov ax,[a32 qword 0xbbbbbbbb]
-	mov bx,[a32 qword 0xbbbbbbbb]
-	mov eax,[a32 qword 0xbbbbbbbb]
-	mov ebx,[a32 qword 0xbbbbbbbb]
-	mov rax,[a32 qword 0xbbbbbbbb]
-	mov rbx,[a32 qword 0xbbbbbbbb]
-	mov al,[a32 qword 0xffffffffcccccccc]
-	mov bl,[a32 qword 0xffffffffcccccccc]
-	mov ax,[a32 qword 0xffffffffcccccccc]
-	mov bx,[a32 qword 0xffffffffcccccccc]
-	mov eax,[a32 qword 0xffffffffcccccccc]
-	mov ebx,[a32 qword 0xffffffffcccccccc]
-	mov rax,[a32 qword 0xffffffffcccccccc]
-	mov rbx,[a32 qword 0xffffffffcccccccc]
-
-	mov al,[abs foo]
-	mov bl,[abs foo]
-	mov ax,[abs foo]
-	mov bx,[abs foo]
-	mov eax,[abs foo]
-	mov ebx,[abs foo]
-	mov rax,[abs foo]
-	mov rbx,[abs foo]
-	mov al,[abs 0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs 0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs 0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs 0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs 0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs 0xaaaaaaaaaaaaaaaa]
-	mov al,[abs 0xbbbbbbbb]
-	mov bl,[abs 0xbbbbbbbb]
-	mov ax,[abs 0xbbbbbbbb]
-	mov bx,[abs 0xbbbbbbbb]
-	mov eax,[abs 0xbbbbbbbb]
-	mov ebx,[abs 0xbbbbbbbb]
-	mov rax,[abs 0xbbbbbbbb]
-	mov rbx,[abs 0xbbbbbbbb]
-	mov al,[abs 0xffffffffcccccccc]
-	mov bl,[abs 0xffffffffcccccccc]
-	mov ax,[abs 0xffffffffcccccccc]
-	mov bx,[abs 0xffffffffcccccccc]
-	mov eax,[abs 0xffffffffcccccccc]
-	mov ebx,[abs 0xffffffffcccccccc]
-	mov rax,[abs 0xffffffffcccccccc]
-	mov rbx,[abs 0xffffffffcccccccc]
-
-	mov al,[abs dword foo]
-	mov bl,[abs dword foo]
-	mov ax,[abs dword foo]
-	mov bx,[abs dword foo]
-	mov eax,[abs dword foo]
-	mov ebx,[abs dword foo]
-	mov rax,[abs dword foo]
-	mov rbx,[abs dword foo]
-	mov al,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[abs dword 0xbbbbbbbb]
-	mov bl,[abs dword 0xbbbbbbbb]
-	mov ax,[abs dword 0xbbbbbbbb]
-	mov bx,[abs dword 0xbbbbbbbb]
-	mov eax,[abs dword 0xbbbbbbbb]
-	mov ebx,[abs dword 0xbbbbbbbb]
-	mov rax,[abs dword 0xbbbbbbbb]
-	mov rbx,[abs dword 0xbbbbbbbb]
-	mov al,[abs dword 0xffffffffcccccccc]
-	mov bl,[abs dword 0xffffffffcccccccc]
-	mov ax,[abs dword 0xffffffffcccccccc]
-	mov bx,[abs dword 0xffffffffcccccccc]
-	mov eax,[abs dword 0xffffffffcccccccc]
-	mov ebx,[abs dword 0xffffffffcccccccc]
-	mov rax,[abs dword 0xffffffffcccccccc]
-	mov rbx,[abs dword 0xffffffffcccccccc]
-
-	mov al,[abs qword foo]
-	mov bl,[abs qword foo]
-	mov ax,[abs qword foo]
-	mov bx,[abs qword foo]
-	mov eax,[abs qword foo]
-	mov ebx,[abs qword foo]
-	mov rax,[abs qword foo]
-	mov rbx,[abs qword foo]
-	mov al,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[abs qword 0xbbbbbbbb]
-	mov bl,[abs qword 0xbbbbbbbb]
-	mov ax,[abs qword 0xbbbbbbbb]
-	mov bx,[abs qword 0xbbbbbbbb]
-	mov eax,[abs qword 0xbbbbbbbb]
-	mov ebx,[abs qword 0xbbbbbbbb]
-	mov rax,[abs qword 0xbbbbbbbb]
-	mov rbx,[abs qword 0xbbbbbbbb]
-	mov al,[abs qword 0xffffffffcccccccc]
-	mov bl,[abs qword 0xffffffffcccccccc]
-	mov ax,[abs qword 0xffffffffcccccccc]
-	mov bx,[abs qword 0xffffffffcccccccc]
-	mov eax,[abs qword 0xffffffffcccccccc]
-	mov ebx,[abs qword 0xffffffffcccccccc]
-	mov rax,[abs qword 0xffffffffcccccccc]
-	mov rbx,[abs qword 0xffffffffcccccccc]
-
-	mov al,[a64 abs foo]
-	mov bl,[a64 abs foo]
-	mov ax,[a64 abs foo]
-	mov bx,[a64 abs foo]
-	mov eax,[a64 abs foo]
-	mov ebx,[a64 abs foo]
-	mov rax,[a64 abs foo]
-	mov rbx,[a64 abs foo]
-	mov al,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs 0xbbbbbbbb]
-	mov bl,[a64 abs 0xbbbbbbbb]
-	mov ax,[a64 abs 0xbbbbbbbb]
-	mov bx,[a64 abs 0xbbbbbbbb]
-	mov eax,[a64 abs 0xbbbbbbbb]
-	mov ebx,[a64 abs 0xbbbbbbbb]
-	mov rax,[a64 abs 0xbbbbbbbb]
-	mov rbx,[a64 abs 0xbbbbbbbb]
-	mov al,[a64 abs 0xffffffffcccccccc]
-	mov bl,[a64 abs 0xffffffffcccccccc]
-	mov ax,[a64 abs 0xffffffffcccccccc]
-	mov bx,[a64 abs 0xffffffffcccccccc]
-	mov eax,[a64 abs 0xffffffffcccccccc]
-	mov ebx,[a64 abs 0xffffffffcccccccc]
-	mov rax,[a64 abs 0xffffffffcccccccc]
-	mov rbx,[a64 abs 0xffffffffcccccccc]
-
-	mov al,[a64 abs dword foo]
-	mov bl,[a64 abs dword foo]
-	mov ax,[a64 abs dword foo]
-	mov bx,[a64 abs dword foo]
-	mov eax,[a64 abs dword foo]
-	mov ebx,[a64 abs dword foo]
-	mov rax,[a64 abs dword foo]
-	mov rbx,[a64 abs dword foo]
-	mov al,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs dword 0xbbbbbbbb]
-	mov bl,[a64 abs dword 0xbbbbbbbb]
-	mov ax,[a64 abs dword 0xbbbbbbbb]
-	mov bx,[a64 abs dword 0xbbbbbbbb]
-	mov eax,[a64 abs dword 0xbbbbbbbb]
-	mov ebx,[a64 abs dword 0xbbbbbbbb]
-	mov rax,[a64 abs dword 0xbbbbbbbb]
-	mov rbx,[a64 abs dword 0xbbbbbbbb]
-	mov al,[a64 abs dword 0xffffffffcccccccc]
-	mov bl,[a64 abs dword 0xffffffffcccccccc]
-	mov ax,[a64 abs dword 0xffffffffcccccccc]
-	mov bx,[a64 abs dword 0xffffffffcccccccc]
-	mov eax,[a64 abs dword 0xffffffffcccccccc]
-	mov ebx,[a64 abs dword 0xffffffffcccccccc]
-	mov rax,[a64 abs dword 0xffffffffcccccccc]
-	mov rbx,[a64 abs dword 0xffffffffcccccccc]
-
-	mov al,[a64 abs qword foo]
-	mov bl,[a64 abs qword foo]
-	mov ax,[a64 abs qword foo]
-	mov bx,[a64 abs qword foo]
-	mov eax,[a64 abs qword foo]
-	mov ebx,[a64 abs qword foo]
-	mov rax,[a64 abs qword foo]
-	mov rbx,[a64 abs qword foo]
-	mov al,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs qword 0xbbbbbbbb]
-	mov bl,[a64 abs qword 0xbbbbbbbb]
-	mov ax,[a64 abs qword 0xbbbbbbbb]
-	mov bx,[a64 abs qword 0xbbbbbbbb]
-	mov eax,[a64 abs qword 0xbbbbbbbb]
-	mov ebx,[a64 abs qword 0xbbbbbbbb]
-	mov rax,[a64 abs qword 0xbbbbbbbb]
-	mov rbx,[a64 abs qword 0xbbbbbbbb]
-	mov al,[a64 abs qword 0xffffffffcccccccc]
-	mov bl,[a64 abs qword 0xffffffffcccccccc]
-	mov ax,[a64 abs qword 0xffffffffcccccccc]
-	mov bx,[a64 abs qword 0xffffffffcccccccc]
-	mov eax,[a64 abs qword 0xffffffffcccccccc]
-	mov ebx,[a64 abs qword 0xffffffffcccccccc]
-	mov rax,[a64 abs qword 0xffffffffcccccccc]
-	mov rbx,[a64 abs qword 0xffffffffcccccccc]
-
-	mov al,[a32 abs foo]
-	mov bl,[a32 abs foo]
-	mov ax,[a32 abs foo]
-	mov bx,[a32 abs foo]
-	mov eax,[a32 abs foo]
-	mov ebx,[a32 abs foo]
-	mov rax,[a32 abs foo]
-	mov rbx,[a32 abs foo]
-	mov al,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs 0xbbbbbbbb]
-	mov bl,[a32 abs 0xbbbbbbbb]
-	mov ax,[a32 abs 0xbbbbbbbb]
-	mov bx,[a32 abs 0xbbbbbbbb]
-	mov eax,[a32 abs 0xbbbbbbbb]
-	mov ebx,[a32 abs 0xbbbbbbbb]
-	mov rax,[a32 abs 0xbbbbbbbb]
-	mov rbx,[a32 abs 0xbbbbbbbb]
-	mov al,[a32 abs 0xffffffffcccccccc]
-	mov bl,[a32 abs 0xffffffffcccccccc]
-	mov ax,[a32 abs 0xffffffffcccccccc]
-	mov bx,[a32 abs 0xffffffffcccccccc]
-	mov eax,[a32 abs 0xffffffffcccccccc]
-	mov ebx,[a32 abs 0xffffffffcccccccc]
-	mov rax,[a32 abs 0xffffffffcccccccc]
-	mov rbx,[a32 abs 0xffffffffcccccccc]
-
-	mov al,[a32 abs dword foo]
-	mov bl,[a32 abs dword foo]
-	mov ax,[a32 abs dword foo]
-	mov bx,[a32 abs dword foo]
-	mov eax,[a32 abs dword foo]
-	mov ebx,[a32 abs dword foo]
-	mov rax,[a32 abs dword foo]
-	mov rbx,[a32 abs dword foo]
-	mov al,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs dword 0xbbbbbbbb]
-	mov bl,[a32 abs dword 0xbbbbbbbb]
-	mov ax,[a32 abs dword 0xbbbbbbbb]
-	mov bx,[a32 abs dword 0xbbbbbbbb]
-	mov eax,[a32 abs dword 0xbbbbbbbb]
-	mov ebx,[a32 abs dword 0xbbbbbbbb]
-	mov rax,[a32 abs dword 0xbbbbbbbb]
-	mov rbx,[a32 abs dword 0xbbbbbbbb]
-	mov al,[a32 abs dword 0xffffffffcccccccc]
-	mov bl,[a32 abs dword 0xffffffffcccccccc]
-	mov ax,[a32 abs dword 0xffffffffcccccccc]
-	mov bx,[a32 abs dword 0xffffffffcccccccc]
-	mov eax,[a32 abs dword 0xffffffffcccccccc]
-	mov ebx,[a32 abs dword 0xffffffffcccccccc]
-	mov rax,[a32 abs dword 0xffffffffcccccccc]
-	mov rbx,[a32 abs dword 0xffffffffcccccccc]
-
-	mov al,[a32 abs qword foo]
-	mov bl,[a32 abs qword foo]
-	mov ax,[a32 abs qword foo]
-	mov bx,[a32 abs qword foo]
-	mov eax,[a32 abs qword foo]
-	mov ebx,[a32 abs qword foo]
-	mov rax,[a32 abs qword foo]
-	mov rbx,[a32 abs qword foo]
-	mov al,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs qword 0xbbbbbbbb]
-	mov bl,[a32 abs qword 0xbbbbbbbb]
-	mov ax,[a32 abs qword 0xbbbbbbbb]
-	mov bx,[a32 abs qword 0xbbbbbbbb]
-	mov eax,[a32 abs qword 0xbbbbbbbb]
-	mov ebx,[a32 abs qword 0xbbbbbbbb]
-	mov rax,[a32 abs qword 0xbbbbbbbb]
-	mov rbx,[a32 abs qword 0xbbbbbbbb]
-	mov al,[a32 abs qword 0xffffffffcccccccc]
-	mov bl,[a32 abs qword 0xffffffffcccccccc]
-	mov ax,[a32 abs qword 0xffffffffcccccccc]
-	mov bx,[a32 abs qword 0xffffffffcccccccc]
-	mov eax,[a32 abs qword 0xffffffffcccccccc]
-	mov ebx,[a32 abs qword 0xffffffffcccccccc]
-	mov rax,[a32 abs qword 0xffffffffcccccccc]
-	mov rbx,[a32 abs qword 0xffffffffcccccccc]
-
-	mov al,[rel foo]
-	mov bl,[rel foo]
-	mov ax,[rel foo]
-	mov bx,[rel foo]
-	mov eax,[rel foo]
-	mov ebx,[rel foo]
-	mov rax,[rel foo]
-	mov rbx,[rel foo]
-	mov al,[rel 0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel 0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel 0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel 0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel 0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel 0xaaaaaaaaaaaaaaaa]
-	mov al,[rel 0xbbbbbbbb]
-	mov bl,[rel 0xbbbbbbbb]
-	mov ax,[rel 0xbbbbbbbb]
-	mov bx,[rel 0xbbbbbbbb]
-	mov eax,[rel 0xbbbbbbbb]
-	mov ebx,[rel 0xbbbbbbbb]
-	mov rax,[rel 0xbbbbbbbb]
-	mov rbx,[rel 0xbbbbbbbb]
-	mov al,[rel 0xffffffffcccccccc]
-	mov bl,[rel 0xffffffffcccccccc]
-	mov ax,[rel 0xffffffffcccccccc]
-	mov bx,[rel 0xffffffffcccccccc]
-	mov eax,[rel 0xffffffffcccccccc]
-	mov ebx,[rel 0xffffffffcccccccc]
-	mov rax,[rel 0xffffffffcccccccc]
-	mov rbx,[rel 0xffffffffcccccccc]
-
-	mov al,[rel dword foo]
-	mov bl,[rel dword foo]
-	mov ax,[rel dword foo]
-	mov bx,[rel dword foo]
-	mov eax,[rel dword foo]
-	mov ebx,[rel dword foo]
-	mov rax,[rel dword foo]
-	mov rbx,[rel dword foo]
-	mov al,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[rel dword 0xbbbbbbbb]
-	mov bl,[rel dword 0xbbbbbbbb]
-	mov ax,[rel dword 0xbbbbbbbb]
-	mov bx,[rel dword 0xbbbbbbbb]
-	mov eax,[rel dword 0xbbbbbbbb]
-	mov ebx,[rel dword 0xbbbbbbbb]
-	mov rax,[rel dword 0xbbbbbbbb]
-	mov rbx,[rel dword 0xbbbbbbbb]
-	mov al,[rel dword 0xffffffffcccccccc]
-	mov bl,[rel dword 0xffffffffcccccccc]
-	mov ax,[rel dword 0xffffffffcccccccc]
-	mov bx,[rel dword 0xffffffffcccccccc]
-	mov eax,[rel dword 0xffffffffcccccccc]
-	mov ebx,[rel dword 0xffffffffcccccccc]
-	mov rax,[rel dword 0xffffffffcccccccc]
-	mov rbx,[rel dword 0xffffffffcccccccc]
-
-	mov al,[rel qword foo]
-	mov bl,[rel qword foo]
-	mov ax,[rel qword foo]
-	mov bx,[rel qword foo]
-	mov eax,[rel qword foo]
-	mov ebx,[rel qword foo]
-	mov rax,[rel qword foo]
-	mov rbx,[rel qword foo]
-	mov al,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[rel qword 0xbbbbbbbb]
-	mov bl,[rel qword 0xbbbbbbbb]
-	mov ax,[rel qword 0xbbbbbbbb]
-	mov bx,[rel qword 0xbbbbbbbb]
-	mov eax,[rel qword 0xbbbbbbbb]
-	mov ebx,[rel qword 0xbbbbbbbb]
-	mov rax,[rel qword 0xbbbbbbbb]
-	mov rbx,[rel qword 0xbbbbbbbb]
-	mov al,[rel qword 0xffffffffcccccccc]
-	mov bl,[rel qword 0xffffffffcccccccc]
-	mov ax,[rel qword 0xffffffffcccccccc]
-	mov bx,[rel qword 0xffffffffcccccccc]
-	mov eax,[rel qword 0xffffffffcccccccc]
-	mov ebx,[rel qword 0xffffffffcccccccc]
-	mov rax,[rel qword 0xffffffffcccccccc]
-	mov rbx,[rel qword 0xffffffffcccccccc]
-
-	mov al,[a64 rel foo]
-	mov bl,[a64 rel foo]
-	mov ax,[a64 rel foo]
-	mov bx,[a64 rel foo]
-	mov eax,[a64 rel foo]
-	mov ebx,[a64 rel foo]
-	mov rax,[a64 rel foo]
-	mov rbx,[a64 rel foo]
-	mov al,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel 0xbbbbbbbb]
-	mov bl,[a64 rel 0xbbbbbbbb]
-	mov ax,[a64 rel 0xbbbbbbbb]
-	mov bx,[a64 rel 0xbbbbbbbb]
-	mov eax,[a64 rel 0xbbbbbbbb]
-	mov ebx,[a64 rel 0xbbbbbbbb]
-	mov rax,[a64 rel 0xbbbbbbbb]
-	mov rbx,[a64 rel 0xbbbbbbbb]
-	mov al,[a64 rel 0xffffffffcccccccc]
-	mov bl,[a64 rel 0xffffffffcccccccc]
-	mov ax,[a64 rel 0xffffffffcccccccc]
-	mov bx,[a64 rel 0xffffffffcccccccc]
-	mov eax,[a64 rel 0xffffffffcccccccc]
-	mov ebx,[a64 rel 0xffffffffcccccccc]
-	mov rax,[a64 rel 0xffffffffcccccccc]
-	mov rbx,[a64 rel 0xffffffffcccccccc]
-
-	mov al,[a64 rel dword foo]
-	mov bl,[a64 rel dword foo]
-	mov ax,[a64 rel dword foo]
-	mov bx,[a64 rel dword foo]
-	mov eax,[a64 rel dword foo]
-	mov ebx,[a64 rel dword foo]
-	mov rax,[a64 rel dword foo]
-	mov rbx,[a64 rel dword foo]
-	mov al,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel dword 0xbbbbbbbb]
-	mov bl,[a64 rel dword 0xbbbbbbbb]
-	mov ax,[a64 rel dword 0xbbbbbbbb]
-	mov bx,[a64 rel dword 0xbbbbbbbb]
-	mov eax,[a64 rel dword 0xbbbbbbbb]
-	mov ebx,[a64 rel dword 0xbbbbbbbb]
-	mov rax,[a64 rel dword 0xbbbbbbbb]
-	mov rbx,[a64 rel dword 0xbbbbbbbb]
-	mov al,[a64 rel dword 0xffffffffcccccccc]
-	mov bl,[a64 rel dword 0xffffffffcccccccc]
-	mov ax,[a64 rel dword 0xffffffffcccccccc]
-	mov bx,[a64 rel dword 0xffffffffcccccccc]
-	mov eax,[a64 rel dword 0xffffffffcccccccc]
-	mov ebx,[a64 rel dword 0xffffffffcccccccc]
-	mov rax,[a64 rel dword 0xffffffffcccccccc]
-	mov rbx,[a64 rel dword 0xffffffffcccccccc]
-
-	mov al,[a64 rel qword foo]
-	mov bl,[a64 rel qword foo]
-	mov ax,[a64 rel qword foo]
-	mov bx,[a64 rel qword foo]
-	mov eax,[a64 rel qword foo]
-	mov ebx,[a64 rel qword foo]
-	mov rax,[a64 rel qword foo]
-	mov rbx,[a64 rel qword foo]
-	mov al,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel qword 0xbbbbbbbb]
-	mov bl,[a64 rel qword 0xbbbbbbbb]
-	mov ax,[a64 rel qword 0xbbbbbbbb]
-	mov bx,[a64 rel qword 0xbbbbbbbb]
-	mov eax,[a64 rel qword 0xbbbbbbbb]
-	mov ebx,[a64 rel qword 0xbbbbbbbb]
-	mov rax,[a64 rel qword 0xbbbbbbbb]
-	mov rbx,[a64 rel qword 0xbbbbbbbb]
-	mov al,[a64 rel qword 0xffffffffcccccccc]
-	mov bl,[a64 rel qword 0xffffffffcccccccc]
-	mov ax,[a64 rel qword 0xffffffffcccccccc]
-	mov bx,[a64 rel qword 0xffffffffcccccccc]
-	mov eax,[a64 rel qword 0xffffffffcccccccc]
-	mov ebx,[a64 rel qword 0xffffffffcccccccc]
-	mov rax,[a64 rel qword 0xffffffffcccccccc]
-	mov rbx,[a64 rel qword 0xffffffffcccccccc]
-
-	mov al,[a32 rel foo]
-	mov bl,[a32 rel foo]
-	mov ax,[a32 rel foo]
-	mov bx,[a32 rel foo]
-	mov eax,[a32 rel foo]
-	mov ebx,[a32 rel foo]
-	mov rax,[a32 rel foo]
-	mov rbx,[a32 rel foo]
-	mov al,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel 0xbbbbbbbb]
-	mov bl,[a32 rel 0xbbbbbbbb]
-	mov ax,[a32 rel 0xbbbbbbbb]
-	mov bx,[a32 rel 0xbbbbbbbb]
-	mov eax,[a32 rel 0xbbbbbbbb]
-	mov ebx,[a32 rel 0xbbbbbbbb]
-	mov rax,[a32 rel 0xbbbbbbbb]
-	mov rbx,[a32 rel 0xbbbbbbbb]
-	mov al,[a32 rel 0xffffffffcccccccc]
-	mov bl,[a32 rel 0xffffffffcccccccc]
-	mov ax,[a32 rel 0xffffffffcccccccc]
-	mov bx,[a32 rel 0xffffffffcccccccc]
-	mov eax,[a32 rel 0xffffffffcccccccc]
-	mov ebx,[a32 rel 0xffffffffcccccccc]
-	mov rax,[a32 rel 0xffffffffcccccccc]
-	mov rbx,[a32 rel 0xffffffffcccccccc]
-
-	mov al,[a32 rel dword foo]
-	mov bl,[a32 rel dword foo]
-	mov ax,[a32 rel dword foo]
-	mov bx,[a32 rel dword foo]
-	mov eax,[a32 rel dword foo]
-	mov ebx,[a32 rel dword foo]
-	mov rax,[a32 rel dword foo]
-	mov rbx,[a32 rel dword foo]
-	mov al,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel dword 0xbbbbbbbb]
-	mov bl,[a32 rel dword 0xbbbbbbbb]
-	mov ax,[a32 rel dword 0xbbbbbbbb]
-	mov bx,[a32 rel dword 0xbbbbbbbb]
-	mov eax,[a32 rel dword 0xbbbbbbbb]
-	mov ebx,[a32 rel dword 0xbbbbbbbb]
-	mov rax,[a32 rel dword 0xbbbbbbbb]
-	mov rbx,[a32 rel dword 0xbbbbbbbb]
-	mov al,[a32 rel dword 0xffffffffcccccccc]
-	mov bl,[a32 rel dword 0xffffffffcccccccc]
-	mov ax,[a32 rel dword 0xffffffffcccccccc]
-	mov bx,[a32 rel dword 0xffffffffcccccccc]
-	mov eax,[a32 rel dword 0xffffffffcccccccc]
-	mov ebx,[a32 rel dword 0xffffffffcccccccc]
-	mov rax,[a32 rel dword 0xffffffffcccccccc]
-	mov rbx,[a32 rel dword 0xffffffffcccccccc]
-
-	mov al,[a32 rel qword foo]
-	mov bl,[a32 rel qword foo]
-	mov ax,[a32 rel qword foo]
-	mov bx,[a32 rel qword foo]
-	mov eax,[a32 rel qword foo]
-	mov ebx,[a32 rel qword foo]
-	mov rax,[a32 rel qword foo]
-	mov rbx,[a32 rel qword foo]
-	mov al,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel qword 0xbbbbbbbb]
-	mov bl,[a32 rel qword 0xbbbbbbbb]
-	mov ax,[a32 rel qword 0xbbbbbbbb]
-	mov bx,[a32 rel qword 0xbbbbbbbb]
-	mov eax,[a32 rel qword 0xbbbbbbbb]
-	mov ebx,[a32 rel qword 0xbbbbbbbb]
-	mov rax,[a32 rel qword 0xbbbbbbbb]
-	mov rbx,[a32 rel qword 0xbbbbbbbb]
-	mov al,[a32 rel qword 0xffffffffcccccccc]
-	mov bl,[a32 rel qword 0xffffffffcccccccc]
-	mov ax,[a32 rel qword 0xffffffffcccccccc]
-	mov bx,[a32 rel qword 0xffffffffcccccccc]
-	mov eax,[a32 rel qword 0xffffffffcccccccc]
-	mov ebx,[a32 rel qword 0xffffffffcccccccc]
-	mov rax,[a32 rel qword 0xffffffffcccccccc]
-	mov rbx,[a32 rel qword 0xffffffffcccccccc]
-
-	mov al,[fs:foo]
-	mov bl,[fs:foo]
-	mov ax,[fs:foo]
-	mov bx,[fs:foo]
-	mov eax,[fs:foo]
-	mov ebx,[fs:foo]
-	mov rax,[fs:foo]
-	mov rbx,[fs:foo]
-	mov al,[fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[fs:0xbbbbbbbb]
-	mov bl,[fs:0xbbbbbbbb]
-	mov ax,[fs:0xbbbbbbbb]
-	mov bx,[fs:0xbbbbbbbb]
-	mov eax,[fs:0xbbbbbbbb]
-	mov ebx,[fs:0xbbbbbbbb]
-	mov rax,[fs:0xbbbbbbbb]
-	mov rbx,[fs:0xbbbbbbbb]
-	mov al,[fs:0xffffffffcccccccc]
-	mov bl,[fs:0xffffffffcccccccc]
-	mov ax,[fs:0xffffffffcccccccc]
-	mov bx,[fs:0xffffffffcccccccc]
-	mov eax,[fs:0xffffffffcccccccc]
-	mov ebx,[fs:0xffffffffcccccccc]
-	mov rax,[fs:0xffffffffcccccccc]
-	mov rbx,[fs:0xffffffffcccccccc]
-
-	mov al,[dword fs:foo]
-	mov bl,[dword fs:foo]
-	mov ax,[dword fs:foo]
-	mov bx,[dword fs:foo]
-	mov eax,[dword fs:foo]
-	mov ebx,[dword fs:foo]
-	mov rax,[dword fs:foo]
-	mov rbx,[dword fs:foo]
-	mov al,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[dword fs:0xbbbbbbbb]
-	mov bl,[dword fs:0xbbbbbbbb]
-	mov ax,[dword fs:0xbbbbbbbb]
-	mov bx,[dword fs:0xbbbbbbbb]
-	mov eax,[dword fs:0xbbbbbbbb]
-	mov ebx,[dword fs:0xbbbbbbbb]
-	mov rax,[dword fs:0xbbbbbbbb]
-	mov rbx,[dword fs:0xbbbbbbbb]
-	mov al,[dword fs:0xffffffffcccccccc]
-	mov bl,[dword fs:0xffffffffcccccccc]
-	mov ax,[dword fs:0xffffffffcccccccc]
-	mov bx,[dword fs:0xffffffffcccccccc]
-	mov eax,[dword fs:0xffffffffcccccccc]
-	mov ebx,[dword fs:0xffffffffcccccccc]
-	mov rax,[dword fs:0xffffffffcccccccc]
-	mov rbx,[dword fs:0xffffffffcccccccc]
-
-	mov al,[qword fs:foo]
-	mov bl,[qword fs:foo]
-	mov ax,[qword fs:foo]
-	mov bx,[qword fs:foo]
-	mov eax,[qword fs:foo]
-	mov ebx,[qword fs:foo]
-	mov rax,[qword fs:foo]
-	mov rbx,[qword fs:foo]
-	mov al,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[qword fs:0xbbbbbbbb]
-	mov bl,[qword fs:0xbbbbbbbb]
-	mov ax,[qword fs:0xbbbbbbbb]
-	mov bx,[qword fs:0xbbbbbbbb]
-	mov eax,[qword fs:0xbbbbbbbb]
-	mov ebx,[qword fs:0xbbbbbbbb]
-	mov rax,[qword fs:0xbbbbbbbb]
-	mov rbx,[qword fs:0xbbbbbbbb]
-	mov al,[qword fs:0xffffffffcccccccc]
-	mov bl,[qword fs:0xffffffffcccccccc]
-	mov ax,[qword fs:0xffffffffcccccccc]
-	mov bx,[qword fs:0xffffffffcccccccc]
-	mov eax,[qword fs:0xffffffffcccccccc]
-	mov ebx,[qword fs:0xffffffffcccccccc]
-	mov rax,[qword fs:0xffffffffcccccccc]
-	mov rbx,[qword fs:0xffffffffcccccccc]
-
-	mov al,[a64 fs:foo]
-	mov bl,[a64 fs:foo]
-	mov ax,[a64 fs:foo]
-	mov bx,[a64 fs:foo]
-	mov eax,[a64 fs:foo]
-	mov ebx,[a64 fs:foo]
-	mov rax,[a64 fs:foo]
-	mov rbx,[a64 fs:foo]
-	mov al,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 fs:0xbbbbbbbb]
-	mov bl,[a64 fs:0xbbbbbbbb]
-	mov ax,[a64 fs:0xbbbbbbbb]
-	mov bx,[a64 fs:0xbbbbbbbb]
-	mov eax,[a64 fs:0xbbbbbbbb]
-	mov ebx,[a64 fs:0xbbbbbbbb]
-	mov rax,[a64 fs:0xbbbbbbbb]
-	mov rbx,[a64 fs:0xbbbbbbbb]
-	mov al,[a64 fs:0xffffffffcccccccc]
-	mov bl,[a64 fs:0xffffffffcccccccc]
-	mov ax,[a64 fs:0xffffffffcccccccc]
-	mov bx,[a64 fs:0xffffffffcccccccc]
-	mov eax,[a64 fs:0xffffffffcccccccc]
-	mov ebx,[a64 fs:0xffffffffcccccccc]
-	mov rax,[a64 fs:0xffffffffcccccccc]
-	mov rbx,[a64 fs:0xffffffffcccccccc]
-
-	mov al,[a64 dword fs:foo]
-	mov bl,[a64 dword fs:foo]
-	mov ax,[a64 dword fs:foo]
-	mov bx,[a64 dword fs:foo]
-	mov eax,[a64 dword fs:foo]
-	mov ebx,[a64 dword fs:foo]
-	mov rax,[a64 dword fs:foo]
-	mov rbx,[a64 dword fs:foo]
-	mov al,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 dword fs:0xbbbbbbbb]
-	mov bl,[a64 dword fs:0xbbbbbbbb]
-	mov ax,[a64 dword fs:0xbbbbbbbb]
-	mov bx,[a64 dword fs:0xbbbbbbbb]
-	mov eax,[a64 dword fs:0xbbbbbbbb]
-	mov ebx,[a64 dword fs:0xbbbbbbbb]
-	mov rax,[a64 dword fs:0xbbbbbbbb]
-	mov rbx,[a64 dword fs:0xbbbbbbbb]
-	mov al,[a64 dword fs:0xffffffffcccccccc]
-	mov bl,[a64 dword fs:0xffffffffcccccccc]
-	mov ax,[a64 dword fs:0xffffffffcccccccc]
-	mov bx,[a64 dword fs:0xffffffffcccccccc]
-	mov eax,[a64 dword fs:0xffffffffcccccccc]
-	mov ebx,[a64 dword fs:0xffffffffcccccccc]
-	mov rax,[a64 dword fs:0xffffffffcccccccc]
-	mov rbx,[a64 dword fs:0xffffffffcccccccc]
-
-	mov al,[a64 qword fs:foo]
-	mov bl,[a64 qword fs:foo]
-	mov ax,[a64 qword fs:foo]
-	mov bx,[a64 qword fs:foo]
-	mov eax,[a64 qword fs:foo]
-	mov ebx,[a64 qword fs:foo]
-	mov rax,[a64 qword fs:foo]
-	mov rbx,[a64 qword fs:foo]
-	mov al,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 qword fs:0xbbbbbbbb]
-	mov bl,[a64 qword fs:0xbbbbbbbb]
-	mov ax,[a64 qword fs:0xbbbbbbbb]
-	mov bx,[a64 qword fs:0xbbbbbbbb]
-	mov eax,[a64 qword fs:0xbbbbbbbb]
-	mov ebx,[a64 qword fs:0xbbbbbbbb]
-	mov rax,[a64 qword fs:0xbbbbbbbb]
-	mov rbx,[a64 qword fs:0xbbbbbbbb]
-	mov al,[a64 qword fs:0xffffffffcccccccc]
-	mov bl,[a64 qword fs:0xffffffffcccccccc]
-	mov ax,[a64 qword fs:0xffffffffcccccccc]
-	mov bx,[a64 qword fs:0xffffffffcccccccc]
-	mov eax,[a64 qword fs:0xffffffffcccccccc]
-	mov ebx,[a64 qword fs:0xffffffffcccccccc]
-	mov rax,[a64 qword fs:0xffffffffcccccccc]
-	mov rbx,[a64 qword fs:0xffffffffcccccccc]
-
-	mov al,[a32 fs:foo]
-	mov bl,[a32 fs:foo]
-	mov ax,[a32 fs:foo]
-	mov bx,[a32 fs:foo]
-	mov eax,[a32 fs:foo]
-	mov ebx,[a32 fs:foo]
-	mov rax,[a32 fs:foo]
-	mov rbx,[a32 fs:foo]
-	mov al,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 fs:0xbbbbbbbb]
-	mov bl,[a32 fs:0xbbbbbbbb]
-	mov ax,[a32 fs:0xbbbbbbbb]
-	mov bx,[a32 fs:0xbbbbbbbb]
-	mov eax,[a32 fs:0xbbbbbbbb]
-	mov ebx,[a32 fs:0xbbbbbbbb]
-	mov rax,[a32 fs:0xbbbbbbbb]
-	mov rbx,[a32 fs:0xbbbbbbbb]
-	mov al,[a32 fs:0xffffffffcccccccc]
-	mov bl,[a32 fs:0xffffffffcccccccc]
-	mov ax,[a32 fs:0xffffffffcccccccc]
-	mov bx,[a32 fs:0xffffffffcccccccc]
-	mov eax,[a32 fs:0xffffffffcccccccc]
-	mov ebx,[a32 fs:0xffffffffcccccccc]
-	mov rax,[a32 fs:0xffffffffcccccccc]
-	mov rbx,[a32 fs:0xffffffffcccccccc]
-
-	mov al,[a32 dword fs:foo]
-	mov bl,[a32 dword fs:foo]
-	mov ax,[a32 dword fs:foo]
-	mov bx,[a32 dword fs:foo]
-	mov eax,[a32 dword fs:foo]
-	mov ebx,[a32 dword fs:foo]
-	mov rax,[a32 dword fs:foo]
-	mov rbx,[a32 dword fs:foo]
-	mov al,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 dword fs:0xbbbbbbbb]
-	mov bl,[a32 dword fs:0xbbbbbbbb]
-	mov ax,[a32 dword fs:0xbbbbbbbb]
-	mov bx,[a32 dword fs:0xbbbbbbbb]
-	mov eax,[a32 dword fs:0xbbbbbbbb]
-	mov ebx,[a32 dword fs:0xbbbbbbbb]
-	mov rax,[a32 dword fs:0xbbbbbbbb]
-	mov rbx,[a32 dword fs:0xbbbbbbbb]
-	mov al,[a32 dword fs:0xffffffffcccccccc]
-	mov bl,[a32 dword fs:0xffffffffcccccccc]
-	mov ax,[a32 dword fs:0xffffffffcccccccc]
-	mov bx,[a32 dword fs:0xffffffffcccccccc]
-	mov eax,[a32 dword fs:0xffffffffcccccccc]
-	mov ebx,[a32 dword fs:0xffffffffcccccccc]
-	mov rax,[a32 dword fs:0xffffffffcccccccc]
-	mov rbx,[a32 dword fs:0xffffffffcccccccc]
-
-	mov al,[a32 qword fs:foo]
-	mov bl,[a32 qword fs:foo]
-	mov ax,[a32 qword fs:foo]
-	mov bx,[a32 qword fs:foo]
-	mov eax,[a32 qword fs:foo]
-	mov ebx,[a32 qword fs:foo]
-	mov rax,[a32 qword fs:foo]
-	mov rbx,[a32 qword fs:foo]
-	mov al,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 qword fs:0xbbbbbbbb]
-	mov bl,[a32 qword fs:0xbbbbbbbb]
-	mov ax,[a32 qword fs:0xbbbbbbbb]
-	mov bx,[a32 qword fs:0xbbbbbbbb]
-	mov eax,[a32 qword fs:0xbbbbbbbb]
-	mov ebx,[a32 qword fs:0xbbbbbbbb]
-	mov rax,[a32 qword fs:0xbbbbbbbb]
-	mov rbx,[a32 qword fs:0xbbbbbbbb]
-	mov al,[a32 qword fs:0xffffffffcccccccc]
-	mov bl,[a32 qword fs:0xffffffffcccccccc]
-	mov ax,[a32 qword fs:0xffffffffcccccccc]
-	mov bx,[a32 qword fs:0xffffffffcccccccc]
-	mov eax,[a32 qword fs:0xffffffffcccccccc]
-	mov ebx,[a32 qword fs:0xffffffffcccccccc]
-	mov rax,[a32 qword fs:0xffffffffcccccccc]
-	mov rbx,[a32 qword fs:0xffffffffcccccccc]
-
-	mov al,[abs fs:foo]
-	mov bl,[abs fs:foo]
-	mov ax,[abs fs:foo]
-	mov bx,[abs fs:foo]
-	mov eax,[abs fs:foo]
-	mov ebx,[abs fs:foo]
-	mov rax,[abs fs:foo]
-	mov rbx,[abs fs:foo]
-	mov al,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[abs fs:0xbbbbbbbb]
-	mov bl,[abs fs:0xbbbbbbbb]
-	mov ax,[abs fs:0xbbbbbbbb]
-	mov bx,[abs fs:0xbbbbbbbb]
-	mov eax,[abs fs:0xbbbbbbbb]
-	mov ebx,[abs fs:0xbbbbbbbb]
-	mov rax,[abs fs:0xbbbbbbbb]
-	mov rbx,[abs fs:0xbbbbbbbb]
-	mov al,[abs fs:0xffffffffcccccccc]
-	mov bl,[abs fs:0xffffffffcccccccc]
-	mov ax,[abs fs:0xffffffffcccccccc]
-	mov bx,[abs fs:0xffffffffcccccccc]
-	mov eax,[abs fs:0xffffffffcccccccc]
-	mov ebx,[abs fs:0xffffffffcccccccc]
-	mov rax,[abs fs:0xffffffffcccccccc]
-	mov rbx,[abs fs:0xffffffffcccccccc]
-
-	mov al,[abs dword fs:foo]
-	mov bl,[abs dword fs:foo]
-	mov ax,[abs dword fs:foo]
-	mov bx,[abs dword fs:foo]
-	mov eax,[abs dword fs:foo]
-	mov ebx,[abs dword fs:foo]
-	mov rax,[abs dword fs:foo]
-	mov rbx,[abs dword fs:foo]
-	mov al,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[abs dword fs:0xbbbbbbbb]
-	mov bl,[abs dword fs:0xbbbbbbbb]
-	mov ax,[abs dword fs:0xbbbbbbbb]
-	mov bx,[abs dword fs:0xbbbbbbbb]
-	mov eax,[abs dword fs:0xbbbbbbbb]
-	mov ebx,[abs dword fs:0xbbbbbbbb]
-	mov rax,[abs dword fs:0xbbbbbbbb]
-	mov rbx,[abs dword fs:0xbbbbbbbb]
-	mov al,[abs dword fs:0xffffffffcccccccc]
-	mov bl,[abs dword fs:0xffffffffcccccccc]
-	mov ax,[abs dword fs:0xffffffffcccccccc]
-	mov bx,[abs dword fs:0xffffffffcccccccc]
-	mov eax,[abs dword fs:0xffffffffcccccccc]
-	mov ebx,[abs dword fs:0xffffffffcccccccc]
-	mov rax,[abs dword fs:0xffffffffcccccccc]
-	mov rbx,[abs dword fs:0xffffffffcccccccc]
-
-	mov al,[abs qword fs:foo]
-	mov bl,[abs qword fs:foo]
-	mov ax,[abs qword fs:foo]
-	mov bx,[abs qword fs:foo]
-	mov eax,[abs qword fs:foo]
-	mov ebx,[abs qword fs:foo]
-	mov rax,[abs qword fs:foo]
-	mov rbx,[abs qword fs:foo]
-	mov al,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[abs qword fs:0xbbbbbbbb]
-	mov bl,[abs qword fs:0xbbbbbbbb]
-	mov ax,[abs qword fs:0xbbbbbbbb]
-	mov bx,[abs qword fs:0xbbbbbbbb]
-	mov eax,[abs qword fs:0xbbbbbbbb]
-	mov ebx,[abs qword fs:0xbbbbbbbb]
-	mov rax,[abs qword fs:0xbbbbbbbb]
-	mov rbx,[abs qword fs:0xbbbbbbbb]
-	mov al,[abs qword fs:0xffffffffcccccccc]
-	mov bl,[abs qword fs:0xffffffffcccccccc]
-	mov ax,[abs qword fs:0xffffffffcccccccc]
-	mov bx,[abs qword fs:0xffffffffcccccccc]
-	mov eax,[abs qword fs:0xffffffffcccccccc]
-	mov ebx,[abs qword fs:0xffffffffcccccccc]
-	mov rax,[abs qword fs:0xffffffffcccccccc]
-	mov rbx,[abs qword fs:0xffffffffcccccccc]
-
-	mov al,[a64 abs fs:foo]
-	mov bl,[a64 abs fs:foo]
-	mov ax,[a64 abs fs:foo]
-	mov bx,[a64 abs fs:foo]
-	mov eax,[a64 abs fs:foo]
-	mov ebx,[a64 abs fs:foo]
-	mov rax,[a64 abs fs:foo]
-	mov rbx,[a64 abs fs:foo]
-	mov al,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs fs:0xbbbbbbbb]
-	mov bl,[a64 abs fs:0xbbbbbbbb]
-	mov ax,[a64 abs fs:0xbbbbbbbb]
-	mov bx,[a64 abs fs:0xbbbbbbbb]
-	mov eax,[a64 abs fs:0xbbbbbbbb]
-	mov ebx,[a64 abs fs:0xbbbbbbbb]
-	mov rax,[a64 abs fs:0xbbbbbbbb]
-	mov rbx,[a64 abs fs:0xbbbbbbbb]
-	mov al,[a64 abs fs:0xffffffffcccccccc]
-	mov bl,[a64 abs fs:0xffffffffcccccccc]
-	mov ax,[a64 abs fs:0xffffffffcccccccc]
-	mov bx,[a64 abs fs:0xffffffffcccccccc]
-	mov eax,[a64 abs fs:0xffffffffcccccccc]
-	mov ebx,[a64 abs fs:0xffffffffcccccccc]
-	mov rax,[a64 abs fs:0xffffffffcccccccc]
-	mov rbx,[a64 abs fs:0xffffffffcccccccc]
-
-	mov al,[a64 abs dword fs:foo]
-	mov bl,[a64 abs dword fs:foo]
-	mov ax,[a64 abs dword fs:foo]
-	mov bx,[a64 abs dword fs:foo]
-	mov eax,[a64 abs dword fs:foo]
-	mov ebx,[a64 abs dword fs:foo]
-	mov rax,[a64 abs dword fs:foo]
-	mov rbx,[a64 abs dword fs:foo]
-	mov al,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs dword fs:0xbbbbbbbb]
-	mov bl,[a64 abs dword fs:0xbbbbbbbb]
-	mov ax,[a64 abs dword fs:0xbbbbbbbb]
-	mov bx,[a64 abs dword fs:0xbbbbbbbb]
-	mov eax,[a64 abs dword fs:0xbbbbbbbb]
-	mov ebx,[a64 abs dword fs:0xbbbbbbbb]
-	mov rax,[a64 abs dword fs:0xbbbbbbbb]
-	mov rbx,[a64 abs dword fs:0xbbbbbbbb]
-	mov al,[a64 abs dword fs:0xffffffffcccccccc]
-	mov bl,[a64 abs dword fs:0xffffffffcccccccc]
-	mov ax,[a64 abs dword fs:0xffffffffcccccccc]
-	mov bx,[a64 abs dword fs:0xffffffffcccccccc]
-	mov eax,[a64 abs dword fs:0xffffffffcccccccc]
-	mov ebx,[a64 abs dword fs:0xffffffffcccccccc]
-	mov rax,[a64 abs dword fs:0xffffffffcccccccc]
-	mov rbx,[a64 abs dword fs:0xffffffffcccccccc]
-
-	mov al,[a64 abs qword fs:foo]
-	mov bl,[a64 abs qword fs:foo]
-	mov ax,[a64 abs qword fs:foo]
-	mov bx,[a64 abs qword fs:foo]
-	mov eax,[a64 abs qword fs:foo]
-	mov ebx,[a64 abs qword fs:foo]
-	mov rax,[a64 abs qword fs:foo]
-	mov rbx,[a64 abs qword fs:foo]
-	mov al,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs qword fs:0xbbbbbbbb]
-	mov bl,[a64 abs qword fs:0xbbbbbbbb]
-	mov ax,[a64 abs qword fs:0xbbbbbbbb]
-	mov bx,[a64 abs qword fs:0xbbbbbbbb]
-	mov eax,[a64 abs qword fs:0xbbbbbbbb]
-	mov ebx,[a64 abs qword fs:0xbbbbbbbb]
-	mov rax,[a64 abs qword fs:0xbbbbbbbb]
-	mov rbx,[a64 abs qword fs:0xbbbbbbbb]
-	mov al,[a64 abs qword fs:0xffffffffcccccccc]
-	mov bl,[a64 abs qword fs:0xffffffffcccccccc]
-	mov ax,[a64 abs qword fs:0xffffffffcccccccc]
-	mov bx,[a64 abs qword fs:0xffffffffcccccccc]
-	mov eax,[a64 abs qword fs:0xffffffffcccccccc]
-	mov ebx,[a64 abs qword fs:0xffffffffcccccccc]
-	mov rax,[a64 abs qword fs:0xffffffffcccccccc]
-	mov rbx,[a64 abs qword fs:0xffffffffcccccccc]
-
-	mov al,[a32 abs fs:foo]
-	mov bl,[a32 abs fs:foo]
-	mov ax,[a32 abs fs:foo]
-	mov bx,[a32 abs fs:foo]
-	mov eax,[a32 abs fs:foo]
-	mov ebx,[a32 abs fs:foo]
-	mov rax,[a32 abs fs:foo]
-	mov rbx,[a32 abs fs:foo]
-	mov al,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs fs:0xbbbbbbbb]
-	mov bl,[a32 abs fs:0xbbbbbbbb]
-	mov ax,[a32 abs fs:0xbbbbbbbb]
-	mov bx,[a32 abs fs:0xbbbbbbbb]
-	mov eax,[a32 abs fs:0xbbbbbbbb]
-	mov ebx,[a32 abs fs:0xbbbbbbbb]
-	mov rax,[a32 abs fs:0xbbbbbbbb]
-	mov rbx,[a32 abs fs:0xbbbbbbbb]
-	mov al,[a32 abs fs:0xffffffffcccccccc]
-	mov bl,[a32 abs fs:0xffffffffcccccccc]
-	mov ax,[a32 abs fs:0xffffffffcccccccc]
-	mov bx,[a32 abs fs:0xffffffffcccccccc]
-	mov eax,[a32 abs fs:0xffffffffcccccccc]
-	mov ebx,[a32 abs fs:0xffffffffcccccccc]
-	mov rax,[a32 abs fs:0xffffffffcccccccc]
-	mov rbx,[a32 abs fs:0xffffffffcccccccc]
-
-	mov al,[a32 abs dword fs:foo]
-	mov bl,[a32 abs dword fs:foo]
-	mov ax,[a32 abs dword fs:foo]
-	mov bx,[a32 abs dword fs:foo]
-	mov eax,[a32 abs dword fs:foo]
-	mov ebx,[a32 abs dword fs:foo]
-	mov rax,[a32 abs dword fs:foo]
-	mov rbx,[a32 abs dword fs:foo]
-	mov al,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs dword fs:0xbbbbbbbb]
-	mov bl,[a32 abs dword fs:0xbbbbbbbb]
-	mov ax,[a32 abs dword fs:0xbbbbbbbb]
-	mov bx,[a32 abs dword fs:0xbbbbbbbb]
-	mov eax,[a32 abs dword fs:0xbbbbbbbb]
-	mov ebx,[a32 abs dword fs:0xbbbbbbbb]
-	mov rax,[a32 abs dword fs:0xbbbbbbbb]
-	mov rbx,[a32 abs dword fs:0xbbbbbbbb]
-	mov al,[a32 abs dword fs:0xffffffffcccccccc]
-	mov bl,[a32 abs dword fs:0xffffffffcccccccc]
-	mov ax,[a32 abs dword fs:0xffffffffcccccccc]
-	mov bx,[a32 abs dword fs:0xffffffffcccccccc]
-	mov eax,[a32 abs dword fs:0xffffffffcccccccc]
-	mov ebx,[a32 abs dword fs:0xffffffffcccccccc]
-	mov rax,[a32 abs dword fs:0xffffffffcccccccc]
-	mov rbx,[a32 abs dword fs:0xffffffffcccccccc]
-
-	mov al,[a32 abs qword fs:foo]
-	mov bl,[a32 abs qword fs:foo]
-	mov ax,[a32 abs qword fs:foo]
-	mov bx,[a32 abs qword fs:foo]
-	mov eax,[a32 abs qword fs:foo]
-	mov ebx,[a32 abs qword fs:foo]
-	mov rax,[a32 abs qword fs:foo]
-	mov rbx,[a32 abs qword fs:foo]
-	mov al,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs qword fs:0xbbbbbbbb]
-	mov bl,[a32 abs qword fs:0xbbbbbbbb]
-	mov ax,[a32 abs qword fs:0xbbbbbbbb]
-	mov bx,[a32 abs qword fs:0xbbbbbbbb]
-	mov eax,[a32 abs qword fs:0xbbbbbbbb]
-	mov ebx,[a32 abs qword fs:0xbbbbbbbb]
-	mov rax,[a32 abs qword fs:0xbbbbbbbb]
-	mov rbx,[a32 abs qword fs:0xbbbbbbbb]
-	mov al,[a32 abs qword fs:0xffffffffcccccccc]
-	mov bl,[a32 abs qword fs:0xffffffffcccccccc]
-	mov ax,[a32 abs qword fs:0xffffffffcccccccc]
-	mov bx,[a32 abs qword fs:0xffffffffcccccccc]
-	mov eax,[a32 abs qword fs:0xffffffffcccccccc]
-	mov ebx,[a32 abs qword fs:0xffffffffcccccccc]
-	mov rax,[a32 abs qword fs:0xffffffffcccccccc]
-	mov rbx,[a32 abs qword fs:0xffffffffcccccccc]
-
-	mov al,[rel fs:foo]
-	mov bl,[rel fs:foo]
-	mov ax,[rel fs:foo]
-	mov bx,[rel fs:foo]
-	mov eax,[rel fs:foo]
-	mov ebx,[rel fs:foo]
-	mov rax,[rel fs:foo]
-	mov rbx,[rel fs:foo]
-	mov al,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[rel fs:0xbbbbbbbb]
-	mov bl,[rel fs:0xbbbbbbbb]
-	mov ax,[rel fs:0xbbbbbbbb]
-	mov bx,[rel fs:0xbbbbbbbb]
-	mov eax,[rel fs:0xbbbbbbbb]
-	mov ebx,[rel fs:0xbbbbbbbb]
-	mov rax,[rel fs:0xbbbbbbbb]
-	mov rbx,[rel fs:0xbbbbbbbb]
-	mov al,[rel fs:0xffffffffcccccccc]
-	mov bl,[rel fs:0xffffffffcccccccc]
-	mov ax,[rel fs:0xffffffffcccccccc]
-	mov bx,[rel fs:0xffffffffcccccccc]
-	mov eax,[rel fs:0xffffffffcccccccc]
-	mov ebx,[rel fs:0xffffffffcccccccc]
-	mov rax,[rel fs:0xffffffffcccccccc]
-	mov rbx,[rel fs:0xffffffffcccccccc]
-
-	mov al,[rel dword fs:foo]
-	mov bl,[rel dword fs:foo]
-	mov ax,[rel dword fs:foo]
-	mov bx,[rel dword fs:foo]
-	mov eax,[rel dword fs:foo]
-	mov ebx,[rel dword fs:foo]
-	mov rax,[rel dword fs:foo]
-	mov rbx,[rel dword fs:foo]
-	mov al,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[rel dword fs:0xbbbbbbbb]
-	mov bl,[rel dword fs:0xbbbbbbbb]
-	mov ax,[rel dword fs:0xbbbbbbbb]
-	mov bx,[rel dword fs:0xbbbbbbbb]
-	mov eax,[rel dword fs:0xbbbbbbbb]
-	mov ebx,[rel dword fs:0xbbbbbbbb]
-	mov rax,[rel dword fs:0xbbbbbbbb]
-	mov rbx,[rel dword fs:0xbbbbbbbb]
-	mov al,[rel dword fs:0xffffffffcccccccc]
-	mov bl,[rel dword fs:0xffffffffcccccccc]
-	mov ax,[rel dword fs:0xffffffffcccccccc]
-	mov bx,[rel dword fs:0xffffffffcccccccc]
-	mov eax,[rel dword fs:0xffffffffcccccccc]
-	mov ebx,[rel dword fs:0xffffffffcccccccc]
-	mov rax,[rel dword fs:0xffffffffcccccccc]
-	mov rbx,[rel dword fs:0xffffffffcccccccc]
-
-	mov al,[rel qword fs:foo]
-	mov bl,[rel qword fs:foo]
-	mov ax,[rel qword fs:foo]
-	mov bx,[rel qword fs:foo]
-	mov eax,[rel qword fs:foo]
-	mov ebx,[rel qword fs:foo]
-	mov rax,[rel qword fs:foo]
-	mov rbx,[rel qword fs:foo]
-	mov al,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[rel qword fs:0xbbbbbbbb]
-	mov bl,[rel qword fs:0xbbbbbbbb]
-	mov ax,[rel qword fs:0xbbbbbbbb]
-	mov bx,[rel qword fs:0xbbbbbbbb]
-	mov eax,[rel qword fs:0xbbbbbbbb]
-	mov ebx,[rel qword fs:0xbbbbbbbb]
-	mov rax,[rel qword fs:0xbbbbbbbb]
-	mov rbx,[rel qword fs:0xbbbbbbbb]
-	mov al,[rel qword fs:0xffffffffcccccccc]
-	mov bl,[rel qword fs:0xffffffffcccccccc]
-	mov ax,[rel qword fs:0xffffffffcccccccc]
-	mov bx,[rel qword fs:0xffffffffcccccccc]
-	mov eax,[rel qword fs:0xffffffffcccccccc]
-	mov ebx,[rel qword fs:0xffffffffcccccccc]
-	mov rax,[rel qword fs:0xffffffffcccccccc]
-	mov rbx,[rel qword fs:0xffffffffcccccccc]
-
-	mov al,[a64 rel fs:foo]
-	mov bl,[a64 rel fs:foo]
-	mov ax,[a64 rel fs:foo]
-	mov bx,[a64 rel fs:foo]
-	mov eax,[a64 rel fs:foo]
-	mov ebx,[a64 rel fs:foo]
-	mov rax,[a64 rel fs:foo]
-	mov rbx,[a64 rel fs:foo]
-	mov al,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel fs:0xbbbbbbbb]
-	mov bl,[a64 rel fs:0xbbbbbbbb]
-	mov ax,[a64 rel fs:0xbbbbbbbb]
-	mov bx,[a64 rel fs:0xbbbbbbbb]
-	mov eax,[a64 rel fs:0xbbbbbbbb]
-	mov ebx,[a64 rel fs:0xbbbbbbbb]
-	mov rax,[a64 rel fs:0xbbbbbbbb]
-	mov rbx,[a64 rel fs:0xbbbbbbbb]
-	mov al,[a64 rel fs:0xffffffffcccccccc]
-	mov bl,[a64 rel fs:0xffffffffcccccccc]
-	mov ax,[a64 rel fs:0xffffffffcccccccc]
-	mov bx,[a64 rel fs:0xffffffffcccccccc]
-	mov eax,[a64 rel fs:0xffffffffcccccccc]
-	mov ebx,[a64 rel fs:0xffffffffcccccccc]
-	mov rax,[a64 rel fs:0xffffffffcccccccc]
-	mov rbx,[a64 rel fs:0xffffffffcccccccc]
-
-	mov al,[a64 rel dword fs:foo]
-	mov bl,[a64 rel dword fs:foo]
-	mov ax,[a64 rel dword fs:foo]
-	mov bx,[a64 rel dword fs:foo]
-	mov eax,[a64 rel dword fs:foo]
-	mov ebx,[a64 rel dword fs:foo]
-	mov rax,[a64 rel dword fs:foo]
-	mov rbx,[a64 rel dword fs:foo]
-	mov al,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel dword fs:0xbbbbbbbb]
-	mov bl,[a64 rel dword fs:0xbbbbbbbb]
-	mov ax,[a64 rel dword fs:0xbbbbbbbb]
-	mov bx,[a64 rel dword fs:0xbbbbbbbb]
-	mov eax,[a64 rel dword fs:0xbbbbbbbb]
-	mov ebx,[a64 rel dword fs:0xbbbbbbbb]
-	mov rax,[a64 rel dword fs:0xbbbbbbbb]
-	mov rbx,[a64 rel dword fs:0xbbbbbbbb]
-	mov al,[a64 rel dword fs:0xffffffffcccccccc]
-	mov bl,[a64 rel dword fs:0xffffffffcccccccc]
-	mov ax,[a64 rel dword fs:0xffffffffcccccccc]
-	mov bx,[a64 rel dword fs:0xffffffffcccccccc]
-	mov eax,[a64 rel dword fs:0xffffffffcccccccc]
-	mov ebx,[a64 rel dword fs:0xffffffffcccccccc]
-	mov rax,[a64 rel dword fs:0xffffffffcccccccc]
-	mov rbx,[a64 rel dword fs:0xffffffffcccccccc]
-
-	mov al,[a64 rel qword fs:foo]
-	mov bl,[a64 rel qword fs:foo]
-	mov ax,[a64 rel qword fs:foo]
-	mov bx,[a64 rel qword fs:foo]
-	mov eax,[a64 rel qword fs:foo]
-	mov ebx,[a64 rel qword fs:foo]
-	mov rax,[a64 rel qword fs:foo]
-	mov rbx,[a64 rel qword fs:foo]
-	mov al,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel qword fs:0xbbbbbbbb]
-	mov bl,[a64 rel qword fs:0xbbbbbbbb]
-	mov ax,[a64 rel qword fs:0xbbbbbbbb]
-	mov bx,[a64 rel qword fs:0xbbbbbbbb]
-	mov eax,[a64 rel qword fs:0xbbbbbbbb]
-	mov ebx,[a64 rel qword fs:0xbbbbbbbb]
-	mov rax,[a64 rel qword fs:0xbbbbbbbb]
-	mov rbx,[a64 rel qword fs:0xbbbbbbbb]
-	mov al,[a64 rel qword fs:0xffffffffcccccccc]
-	mov bl,[a64 rel qword fs:0xffffffffcccccccc]
-	mov ax,[a64 rel qword fs:0xffffffffcccccccc]
-	mov bx,[a64 rel qword fs:0xffffffffcccccccc]
-	mov eax,[a64 rel qword fs:0xffffffffcccccccc]
-	mov ebx,[a64 rel qword fs:0xffffffffcccccccc]
-	mov rax,[a64 rel qword fs:0xffffffffcccccccc]
-	mov rbx,[a64 rel qword fs:0xffffffffcccccccc]
-
-	mov al,[a32 rel fs:foo]
-	mov bl,[a32 rel fs:foo]
-	mov ax,[a32 rel fs:foo]
-	mov bx,[a32 rel fs:foo]
-	mov eax,[a32 rel fs:foo]
-	mov ebx,[a32 rel fs:foo]
-	mov rax,[a32 rel fs:foo]
-	mov rbx,[a32 rel fs:foo]
-	mov al,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel fs:0xbbbbbbbb]
-	mov bl,[a32 rel fs:0xbbbbbbbb]
-	mov ax,[a32 rel fs:0xbbbbbbbb]
-	mov bx,[a32 rel fs:0xbbbbbbbb]
-	mov eax,[a32 rel fs:0xbbbbbbbb]
-	mov ebx,[a32 rel fs:0xbbbbbbbb]
-	mov rax,[a32 rel fs:0xbbbbbbbb]
-	mov rbx,[a32 rel fs:0xbbbbbbbb]
-	mov al,[a32 rel fs:0xffffffffcccccccc]
-	mov bl,[a32 rel fs:0xffffffffcccccccc]
-	mov ax,[a32 rel fs:0xffffffffcccccccc]
-	mov bx,[a32 rel fs:0xffffffffcccccccc]
-	mov eax,[a32 rel fs:0xffffffffcccccccc]
-	mov ebx,[a32 rel fs:0xffffffffcccccccc]
-	mov rax,[a32 rel fs:0xffffffffcccccccc]
-	mov rbx,[a32 rel fs:0xffffffffcccccccc]
-
-	mov al,[a32 rel dword fs:foo]
-	mov bl,[a32 rel dword fs:foo]
-	mov ax,[a32 rel dword fs:foo]
-	mov bx,[a32 rel dword fs:foo]
-	mov eax,[a32 rel dword fs:foo]
-	mov ebx,[a32 rel dword fs:foo]
-	mov rax,[a32 rel dword fs:foo]
-	mov rbx,[a32 rel dword fs:foo]
-	mov al,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel dword fs:0xbbbbbbbb]
-	mov bl,[a32 rel dword fs:0xbbbbbbbb]
-	mov ax,[a32 rel dword fs:0xbbbbbbbb]
-	mov bx,[a32 rel dword fs:0xbbbbbbbb]
-	mov eax,[a32 rel dword fs:0xbbbbbbbb]
-	mov ebx,[a32 rel dword fs:0xbbbbbbbb]
-	mov rax,[a32 rel dword fs:0xbbbbbbbb]
-	mov rbx,[a32 rel dword fs:0xbbbbbbbb]
-	mov al,[a32 rel dword fs:0xffffffffcccccccc]
-	mov bl,[a32 rel dword fs:0xffffffffcccccccc]
-	mov ax,[a32 rel dword fs:0xffffffffcccccccc]
-	mov bx,[a32 rel dword fs:0xffffffffcccccccc]
-	mov eax,[a32 rel dword fs:0xffffffffcccccccc]
-	mov ebx,[a32 rel dword fs:0xffffffffcccccccc]
-	mov rax,[a32 rel dword fs:0xffffffffcccccccc]
-	mov rbx,[a32 rel dword fs:0xffffffffcccccccc]
-
-	mov al,[a32 rel qword fs:foo]
-	mov bl,[a32 rel qword fs:foo]
-	mov ax,[a32 rel qword fs:foo]
-	mov bx,[a32 rel qword fs:foo]
-	mov eax,[a32 rel qword fs:foo]
-	mov ebx,[a32 rel qword fs:foo]
-	mov rax,[a32 rel qword fs:foo]
-	mov rbx,[a32 rel qword fs:foo]
-	mov al,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel qword fs:0xbbbbbbbb]
-	mov bl,[a32 rel qword fs:0xbbbbbbbb]
-	mov ax,[a32 rel qword fs:0xbbbbbbbb]
-	mov bx,[a32 rel qword fs:0xbbbbbbbb]
-	mov eax,[a32 rel qword fs:0xbbbbbbbb]
-	mov ebx,[a32 rel qword fs:0xbbbbbbbb]
-	mov rax,[a32 rel qword fs:0xbbbbbbbb]
-	mov rbx,[a32 rel qword fs:0xbbbbbbbb]
-	mov al,[a32 rel qword fs:0xffffffffcccccccc]
-	mov bl,[a32 rel qword fs:0xffffffffcccccccc]
-	mov ax,[a32 rel qword fs:0xffffffffcccccccc]
-	mov bx,[a32 rel qword fs:0xffffffffcccccccc]
-	mov eax,[a32 rel qword fs:0xffffffffcccccccc]
-	mov ebx,[a32 rel qword fs:0xffffffffcccccccc]
-	mov rax,[a32 rel qword fs:0xffffffffcccccccc]
-	mov rbx,[a32 rel qword fs:0xffffffffcccccccc]
-
-	mov al,[es:foo]
-	mov bl,[es:foo]
-	mov ax,[es:foo]
-	mov bx,[es:foo]
-	mov eax,[es:foo]
-	mov ebx,[es:foo]
-	mov rax,[es:foo]
-	mov rbx,[es:foo]
-	mov al,[es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[es:0xaaaaaaaaaaaaaaaa]
-	mov al,[es:0xbbbbbbbb]
-	mov bl,[es:0xbbbbbbbb]
-	mov ax,[es:0xbbbbbbbb]
-	mov bx,[es:0xbbbbbbbb]
-	mov eax,[es:0xbbbbbbbb]
-	mov ebx,[es:0xbbbbbbbb]
-	mov rax,[es:0xbbbbbbbb]
-	mov rbx,[es:0xbbbbbbbb]
-	mov al,[es:0xffffffffcccccccc]
-	mov bl,[es:0xffffffffcccccccc]
-	mov ax,[es:0xffffffffcccccccc]
-	mov bx,[es:0xffffffffcccccccc]
-	mov eax,[es:0xffffffffcccccccc]
-	mov ebx,[es:0xffffffffcccccccc]
-	mov rax,[es:0xffffffffcccccccc]
-	mov rbx,[es:0xffffffffcccccccc]
-
-	mov al,[dword es:foo]
-	mov bl,[dword es:foo]
-	mov ax,[dword es:foo]
-	mov bx,[dword es:foo]
-	mov eax,[dword es:foo]
-	mov ebx,[dword es:foo]
-	mov rax,[dword es:foo]
-	mov rbx,[dword es:foo]
-	mov al,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[dword es:0xbbbbbbbb]
-	mov bl,[dword es:0xbbbbbbbb]
-	mov ax,[dword es:0xbbbbbbbb]
-	mov bx,[dword es:0xbbbbbbbb]
-	mov eax,[dword es:0xbbbbbbbb]
-	mov ebx,[dword es:0xbbbbbbbb]
-	mov rax,[dword es:0xbbbbbbbb]
-	mov rbx,[dword es:0xbbbbbbbb]
-	mov al,[dword es:0xffffffffcccccccc]
-	mov bl,[dword es:0xffffffffcccccccc]
-	mov ax,[dword es:0xffffffffcccccccc]
-	mov bx,[dword es:0xffffffffcccccccc]
-	mov eax,[dword es:0xffffffffcccccccc]
-	mov ebx,[dword es:0xffffffffcccccccc]
-	mov rax,[dword es:0xffffffffcccccccc]
-	mov rbx,[dword es:0xffffffffcccccccc]
-
-	mov al,[qword es:foo]
-	mov bl,[qword es:foo]
-	mov ax,[qword es:foo]
-	mov bx,[qword es:foo]
-	mov eax,[qword es:foo]
-	mov ebx,[qword es:foo]
-	mov rax,[qword es:foo]
-	mov rbx,[qword es:foo]
-	mov al,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[qword es:0xbbbbbbbb]
-	mov bl,[qword es:0xbbbbbbbb]
-	mov ax,[qword es:0xbbbbbbbb]
-	mov bx,[qword es:0xbbbbbbbb]
-	mov eax,[qword es:0xbbbbbbbb]
-	mov ebx,[qword es:0xbbbbbbbb]
-	mov rax,[qword es:0xbbbbbbbb]
-	mov rbx,[qword es:0xbbbbbbbb]
-	mov al,[qword es:0xffffffffcccccccc]
-	mov bl,[qword es:0xffffffffcccccccc]
-	mov ax,[qword es:0xffffffffcccccccc]
-	mov bx,[qword es:0xffffffffcccccccc]
-	mov eax,[qword es:0xffffffffcccccccc]
-	mov ebx,[qword es:0xffffffffcccccccc]
-	mov rax,[qword es:0xffffffffcccccccc]
-	mov rbx,[qword es:0xffffffffcccccccc]
-
-	mov al,[a64 es:foo]
-	mov bl,[a64 es:foo]
-	mov ax,[a64 es:foo]
-	mov bx,[a64 es:foo]
-	mov eax,[a64 es:foo]
-	mov ebx,[a64 es:foo]
-	mov rax,[a64 es:foo]
-	mov rbx,[a64 es:foo]
-	mov al,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 es:0xbbbbbbbb]
-	mov bl,[a64 es:0xbbbbbbbb]
-	mov ax,[a64 es:0xbbbbbbbb]
-	mov bx,[a64 es:0xbbbbbbbb]
-	mov eax,[a64 es:0xbbbbbbbb]
-	mov ebx,[a64 es:0xbbbbbbbb]
-	mov rax,[a64 es:0xbbbbbbbb]
-	mov rbx,[a64 es:0xbbbbbbbb]
-	mov al,[a64 es:0xffffffffcccccccc]
-	mov bl,[a64 es:0xffffffffcccccccc]
-	mov ax,[a64 es:0xffffffffcccccccc]
-	mov bx,[a64 es:0xffffffffcccccccc]
-	mov eax,[a64 es:0xffffffffcccccccc]
-	mov ebx,[a64 es:0xffffffffcccccccc]
-	mov rax,[a64 es:0xffffffffcccccccc]
-	mov rbx,[a64 es:0xffffffffcccccccc]
-
-	mov al,[a64 dword es:foo]
-	mov bl,[a64 dword es:foo]
-	mov ax,[a64 dword es:foo]
-	mov bx,[a64 dword es:foo]
-	mov eax,[a64 dword es:foo]
-	mov ebx,[a64 dword es:foo]
-	mov rax,[a64 dword es:foo]
-	mov rbx,[a64 dword es:foo]
-	mov al,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 dword es:0xbbbbbbbb]
-	mov bl,[a64 dword es:0xbbbbbbbb]
-	mov ax,[a64 dword es:0xbbbbbbbb]
-	mov bx,[a64 dword es:0xbbbbbbbb]
-	mov eax,[a64 dword es:0xbbbbbbbb]
-	mov ebx,[a64 dword es:0xbbbbbbbb]
-	mov rax,[a64 dword es:0xbbbbbbbb]
-	mov rbx,[a64 dword es:0xbbbbbbbb]
-	mov al,[a64 dword es:0xffffffffcccccccc]
-	mov bl,[a64 dword es:0xffffffffcccccccc]
-	mov ax,[a64 dword es:0xffffffffcccccccc]
-	mov bx,[a64 dword es:0xffffffffcccccccc]
-	mov eax,[a64 dword es:0xffffffffcccccccc]
-	mov ebx,[a64 dword es:0xffffffffcccccccc]
-	mov rax,[a64 dword es:0xffffffffcccccccc]
-	mov rbx,[a64 dword es:0xffffffffcccccccc]
-
-	mov al,[a64 qword es:foo]
-	mov bl,[a64 qword es:foo]
-	mov ax,[a64 qword es:foo]
-	mov bx,[a64 qword es:foo]
-	mov eax,[a64 qword es:foo]
-	mov ebx,[a64 qword es:foo]
-	mov rax,[a64 qword es:foo]
-	mov rbx,[a64 qword es:foo]
-	mov al,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 qword es:0xbbbbbbbb]
-	mov bl,[a64 qword es:0xbbbbbbbb]
-	mov ax,[a64 qword es:0xbbbbbbbb]
-	mov bx,[a64 qword es:0xbbbbbbbb]
-	mov eax,[a64 qword es:0xbbbbbbbb]
-	mov ebx,[a64 qword es:0xbbbbbbbb]
-	mov rax,[a64 qword es:0xbbbbbbbb]
-	mov rbx,[a64 qword es:0xbbbbbbbb]
-	mov al,[a64 qword es:0xffffffffcccccccc]
-	mov bl,[a64 qword es:0xffffffffcccccccc]
-	mov ax,[a64 qword es:0xffffffffcccccccc]
-	mov bx,[a64 qword es:0xffffffffcccccccc]
-	mov eax,[a64 qword es:0xffffffffcccccccc]
-	mov ebx,[a64 qword es:0xffffffffcccccccc]
-	mov rax,[a64 qword es:0xffffffffcccccccc]
-	mov rbx,[a64 qword es:0xffffffffcccccccc]
-
-	mov al,[a32 es:foo]
-	mov bl,[a32 es:foo]
-	mov ax,[a32 es:foo]
-	mov bx,[a32 es:foo]
-	mov eax,[a32 es:foo]
-	mov ebx,[a32 es:foo]
-	mov rax,[a32 es:foo]
-	mov rbx,[a32 es:foo]
-	mov al,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 es:0xbbbbbbbb]
-	mov bl,[a32 es:0xbbbbbbbb]
-	mov ax,[a32 es:0xbbbbbbbb]
-	mov bx,[a32 es:0xbbbbbbbb]
-	mov eax,[a32 es:0xbbbbbbbb]
-	mov ebx,[a32 es:0xbbbbbbbb]
-	mov rax,[a32 es:0xbbbbbbbb]
-	mov rbx,[a32 es:0xbbbbbbbb]
-	mov al,[a32 es:0xffffffffcccccccc]
-	mov bl,[a32 es:0xffffffffcccccccc]
-	mov ax,[a32 es:0xffffffffcccccccc]
-	mov bx,[a32 es:0xffffffffcccccccc]
-	mov eax,[a32 es:0xffffffffcccccccc]
-	mov ebx,[a32 es:0xffffffffcccccccc]
-	mov rax,[a32 es:0xffffffffcccccccc]
-	mov rbx,[a32 es:0xffffffffcccccccc]
-
-	mov al,[a32 dword es:foo]
-	mov bl,[a32 dword es:foo]
-	mov ax,[a32 dword es:foo]
-	mov bx,[a32 dword es:foo]
-	mov eax,[a32 dword es:foo]
-	mov ebx,[a32 dword es:foo]
-	mov rax,[a32 dword es:foo]
-	mov rbx,[a32 dword es:foo]
-	mov al,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 dword es:0xbbbbbbbb]
-	mov bl,[a32 dword es:0xbbbbbbbb]
-	mov ax,[a32 dword es:0xbbbbbbbb]
-	mov bx,[a32 dword es:0xbbbbbbbb]
-	mov eax,[a32 dword es:0xbbbbbbbb]
-	mov ebx,[a32 dword es:0xbbbbbbbb]
-	mov rax,[a32 dword es:0xbbbbbbbb]
-	mov rbx,[a32 dword es:0xbbbbbbbb]
-	mov al,[a32 dword es:0xffffffffcccccccc]
-	mov bl,[a32 dword es:0xffffffffcccccccc]
-	mov ax,[a32 dword es:0xffffffffcccccccc]
-	mov bx,[a32 dword es:0xffffffffcccccccc]
-	mov eax,[a32 dword es:0xffffffffcccccccc]
-	mov ebx,[a32 dword es:0xffffffffcccccccc]
-	mov rax,[a32 dword es:0xffffffffcccccccc]
-	mov rbx,[a32 dword es:0xffffffffcccccccc]
-
-	mov al,[a32 qword es:foo]
-	mov bl,[a32 qword es:foo]
-	mov ax,[a32 qword es:foo]
-	mov bx,[a32 qword es:foo]
-	mov eax,[a32 qword es:foo]
-	mov ebx,[a32 qword es:foo]
-	mov rax,[a32 qword es:foo]
-	mov rbx,[a32 qword es:foo]
-	mov al,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 qword es:0xbbbbbbbb]
-	mov bl,[a32 qword es:0xbbbbbbbb]
-	mov ax,[a32 qword es:0xbbbbbbbb]
-	mov bx,[a32 qword es:0xbbbbbbbb]
-	mov eax,[a32 qword es:0xbbbbbbbb]
-	mov ebx,[a32 qword es:0xbbbbbbbb]
-	mov rax,[a32 qword es:0xbbbbbbbb]
-	mov rbx,[a32 qword es:0xbbbbbbbb]
-	mov al,[a32 qword es:0xffffffffcccccccc]
-	mov bl,[a32 qword es:0xffffffffcccccccc]
-	mov ax,[a32 qword es:0xffffffffcccccccc]
-	mov bx,[a32 qword es:0xffffffffcccccccc]
-	mov eax,[a32 qword es:0xffffffffcccccccc]
-	mov ebx,[a32 qword es:0xffffffffcccccccc]
-	mov rax,[a32 qword es:0xffffffffcccccccc]
-	mov rbx,[a32 qword es:0xffffffffcccccccc]
-
-	mov al,[abs es:foo]
-	mov bl,[abs es:foo]
-	mov ax,[abs es:foo]
-	mov bx,[abs es:foo]
-	mov eax,[abs es:foo]
-	mov ebx,[abs es:foo]
-	mov rax,[abs es:foo]
-	mov rbx,[abs es:foo]
-	mov al,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov al,[abs es:0xbbbbbbbb]
-	mov bl,[abs es:0xbbbbbbbb]
-	mov ax,[abs es:0xbbbbbbbb]
-	mov bx,[abs es:0xbbbbbbbb]
-	mov eax,[abs es:0xbbbbbbbb]
-	mov ebx,[abs es:0xbbbbbbbb]
-	mov rax,[abs es:0xbbbbbbbb]
-	mov rbx,[abs es:0xbbbbbbbb]
-	mov al,[abs es:0xffffffffcccccccc]
-	mov bl,[abs es:0xffffffffcccccccc]
-	mov ax,[abs es:0xffffffffcccccccc]
-	mov bx,[abs es:0xffffffffcccccccc]
-	mov eax,[abs es:0xffffffffcccccccc]
-	mov ebx,[abs es:0xffffffffcccccccc]
-	mov rax,[abs es:0xffffffffcccccccc]
-	mov rbx,[abs es:0xffffffffcccccccc]
-
-	mov al,[abs dword es:foo]
-	mov bl,[abs dword es:foo]
-	mov ax,[abs dword es:foo]
-	mov bx,[abs dword es:foo]
-	mov eax,[abs dword es:foo]
-	mov ebx,[abs dword es:foo]
-	mov rax,[abs dword es:foo]
-	mov rbx,[abs dword es:foo]
-	mov al,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[abs dword es:0xbbbbbbbb]
-	mov bl,[abs dword es:0xbbbbbbbb]
-	mov ax,[abs dword es:0xbbbbbbbb]
-	mov bx,[abs dword es:0xbbbbbbbb]
-	mov eax,[abs dword es:0xbbbbbbbb]
-	mov ebx,[abs dword es:0xbbbbbbbb]
-	mov rax,[abs dword es:0xbbbbbbbb]
-	mov rbx,[abs dword es:0xbbbbbbbb]
-	mov al,[abs dword es:0xffffffffcccccccc]
-	mov bl,[abs dword es:0xffffffffcccccccc]
-	mov ax,[abs dword es:0xffffffffcccccccc]
-	mov bx,[abs dword es:0xffffffffcccccccc]
-	mov eax,[abs dword es:0xffffffffcccccccc]
-	mov ebx,[abs dword es:0xffffffffcccccccc]
-	mov rax,[abs dword es:0xffffffffcccccccc]
-	mov rbx,[abs dword es:0xffffffffcccccccc]
-
-	mov al,[abs qword es:foo]
-	mov bl,[abs qword es:foo]
-	mov ax,[abs qword es:foo]
-	mov bx,[abs qword es:foo]
-	mov eax,[abs qword es:foo]
-	mov ebx,[abs qword es:foo]
-	mov rax,[abs qword es:foo]
-	mov rbx,[abs qword es:foo]
-	mov al,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[abs qword es:0xbbbbbbbb]
-	mov bl,[abs qword es:0xbbbbbbbb]
-	mov ax,[abs qword es:0xbbbbbbbb]
-	mov bx,[abs qword es:0xbbbbbbbb]
-	mov eax,[abs qword es:0xbbbbbbbb]
-	mov ebx,[abs qword es:0xbbbbbbbb]
-	mov rax,[abs qword es:0xbbbbbbbb]
-	mov rbx,[abs qword es:0xbbbbbbbb]
-	mov al,[abs qword es:0xffffffffcccccccc]
-	mov bl,[abs qword es:0xffffffffcccccccc]
-	mov ax,[abs qword es:0xffffffffcccccccc]
-	mov bx,[abs qword es:0xffffffffcccccccc]
-	mov eax,[abs qword es:0xffffffffcccccccc]
-	mov ebx,[abs qword es:0xffffffffcccccccc]
-	mov rax,[abs qword es:0xffffffffcccccccc]
-	mov rbx,[abs qword es:0xffffffffcccccccc]
-
-	mov al,[a64 abs es:foo]
-	mov bl,[a64 abs es:foo]
-	mov ax,[a64 abs es:foo]
-	mov bx,[a64 abs es:foo]
-	mov eax,[a64 abs es:foo]
-	mov ebx,[a64 abs es:foo]
-	mov rax,[a64 abs es:foo]
-	mov rbx,[a64 abs es:foo]
-	mov al,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs es:0xbbbbbbbb]
-	mov bl,[a64 abs es:0xbbbbbbbb]
-	mov ax,[a64 abs es:0xbbbbbbbb]
-	mov bx,[a64 abs es:0xbbbbbbbb]
-	mov eax,[a64 abs es:0xbbbbbbbb]
-	mov ebx,[a64 abs es:0xbbbbbbbb]
-	mov rax,[a64 abs es:0xbbbbbbbb]
-	mov rbx,[a64 abs es:0xbbbbbbbb]
-	mov al,[a64 abs es:0xffffffffcccccccc]
-	mov bl,[a64 abs es:0xffffffffcccccccc]
-	mov ax,[a64 abs es:0xffffffffcccccccc]
-	mov bx,[a64 abs es:0xffffffffcccccccc]
-	mov eax,[a64 abs es:0xffffffffcccccccc]
-	mov ebx,[a64 abs es:0xffffffffcccccccc]
-	mov rax,[a64 abs es:0xffffffffcccccccc]
-	mov rbx,[a64 abs es:0xffffffffcccccccc]
-
-	mov al,[a64 abs dword es:foo]
-	mov bl,[a64 abs dword es:foo]
-	mov ax,[a64 abs dword es:foo]
-	mov bx,[a64 abs dword es:foo]
-	mov eax,[a64 abs dword es:foo]
-	mov ebx,[a64 abs dword es:foo]
-	mov rax,[a64 abs dword es:foo]
-	mov rbx,[a64 abs dword es:foo]
-	mov al,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs dword es:0xbbbbbbbb]
-	mov bl,[a64 abs dword es:0xbbbbbbbb]
-	mov ax,[a64 abs dword es:0xbbbbbbbb]
-	mov bx,[a64 abs dword es:0xbbbbbbbb]
-	mov eax,[a64 abs dword es:0xbbbbbbbb]
-	mov ebx,[a64 abs dword es:0xbbbbbbbb]
-	mov rax,[a64 abs dword es:0xbbbbbbbb]
-	mov rbx,[a64 abs dword es:0xbbbbbbbb]
-	mov al,[a64 abs dword es:0xffffffffcccccccc]
-	mov bl,[a64 abs dword es:0xffffffffcccccccc]
-	mov ax,[a64 abs dword es:0xffffffffcccccccc]
-	mov bx,[a64 abs dword es:0xffffffffcccccccc]
-	mov eax,[a64 abs dword es:0xffffffffcccccccc]
-	mov ebx,[a64 abs dword es:0xffffffffcccccccc]
-	mov rax,[a64 abs dword es:0xffffffffcccccccc]
-	mov rbx,[a64 abs dword es:0xffffffffcccccccc]
-
-	mov al,[a64 abs qword es:foo]
-	mov bl,[a64 abs qword es:foo]
-	mov ax,[a64 abs qword es:foo]
-	mov bx,[a64 abs qword es:foo]
-	mov eax,[a64 abs qword es:foo]
-	mov ebx,[a64 abs qword es:foo]
-	mov rax,[a64 abs qword es:foo]
-	mov rbx,[a64 abs qword es:foo]
-	mov al,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs qword es:0xbbbbbbbb]
-	mov bl,[a64 abs qword es:0xbbbbbbbb]
-	mov ax,[a64 abs qword es:0xbbbbbbbb]
-	mov bx,[a64 abs qword es:0xbbbbbbbb]
-	mov eax,[a64 abs qword es:0xbbbbbbbb]
-	mov ebx,[a64 abs qword es:0xbbbbbbbb]
-	mov rax,[a64 abs qword es:0xbbbbbbbb]
-	mov rbx,[a64 abs qword es:0xbbbbbbbb]
-	mov al,[a64 abs qword es:0xffffffffcccccccc]
-	mov bl,[a64 abs qword es:0xffffffffcccccccc]
-	mov ax,[a64 abs qword es:0xffffffffcccccccc]
-	mov bx,[a64 abs qword es:0xffffffffcccccccc]
-	mov eax,[a64 abs qword es:0xffffffffcccccccc]
-	mov ebx,[a64 abs qword es:0xffffffffcccccccc]
-	mov rax,[a64 abs qword es:0xffffffffcccccccc]
-	mov rbx,[a64 abs qword es:0xffffffffcccccccc]
-
-	mov al,[a32 abs es:foo]
-	mov bl,[a32 abs es:foo]
-	mov ax,[a32 abs es:foo]
-	mov bx,[a32 abs es:foo]
-	mov eax,[a32 abs es:foo]
-	mov ebx,[a32 abs es:foo]
-	mov rax,[a32 abs es:foo]
-	mov rbx,[a32 abs es:foo]
-	mov al,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs es:0xbbbbbbbb]
-	mov bl,[a32 abs es:0xbbbbbbbb]
-	mov ax,[a32 abs es:0xbbbbbbbb]
-	mov bx,[a32 abs es:0xbbbbbbbb]
-	mov eax,[a32 abs es:0xbbbbbbbb]
-	mov ebx,[a32 abs es:0xbbbbbbbb]
-	mov rax,[a32 abs es:0xbbbbbbbb]
-	mov rbx,[a32 abs es:0xbbbbbbbb]
-	mov al,[a32 abs es:0xffffffffcccccccc]
-	mov bl,[a32 abs es:0xffffffffcccccccc]
-	mov ax,[a32 abs es:0xffffffffcccccccc]
-	mov bx,[a32 abs es:0xffffffffcccccccc]
-	mov eax,[a32 abs es:0xffffffffcccccccc]
-	mov ebx,[a32 abs es:0xffffffffcccccccc]
-	mov rax,[a32 abs es:0xffffffffcccccccc]
-	mov rbx,[a32 abs es:0xffffffffcccccccc]
-
-	mov al,[a32 abs dword es:foo]
-	mov bl,[a32 abs dword es:foo]
-	mov ax,[a32 abs dword es:foo]
-	mov bx,[a32 abs dword es:foo]
-	mov eax,[a32 abs dword es:foo]
-	mov ebx,[a32 abs dword es:foo]
-	mov rax,[a32 abs dword es:foo]
-	mov rbx,[a32 abs dword es:foo]
-	mov al,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs dword es:0xbbbbbbbb]
-	mov bl,[a32 abs dword es:0xbbbbbbbb]
-	mov ax,[a32 abs dword es:0xbbbbbbbb]
-	mov bx,[a32 abs dword es:0xbbbbbbbb]
-	mov eax,[a32 abs dword es:0xbbbbbbbb]
-	mov ebx,[a32 abs dword es:0xbbbbbbbb]
-	mov rax,[a32 abs dword es:0xbbbbbbbb]
-	mov rbx,[a32 abs dword es:0xbbbbbbbb]
-	mov al,[a32 abs dword es:0xffffffffcccccccc]
-	mov bl,[a32 abs dword es:0xffffffffcccccccc]
-	mov ax,[a32 abs dword es:0xffffffffcccccccc]
-	mov bx,[a32 abs dword es:0xffffffffcccccccc]
-	mov eax,[a32 abs dword es:0xffffffffcccccccc]
-	mov ebx,[a32 abs dword es:0xffffffffcccccccc]
-	mov rax,[a32 abs dword es:0xffffffffcccccccc]
-	mov rbx,[a32 abs dword es:0xffffffffcccccccc]
-
-	mov al,[a32 abs qword es:foo]
-	mov bl,[a32 abs qword es:foo]
-	mov ax,[a32 abs qword es:foo]
-	mov bx,[a32 abs qword es:foo]
-	mov eax,[a32 abs qword es:foo]
-	mov ebx,[a32 abs qword es:foo]
-	mov rax,[a32 abs qword es:foo]
-	mov rbx,[a32 abs qword es:foo]
-	mov al,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs qword es:0xbbbbbbbb]
-	mov bl,[a32 abs qword es:0xbbbbbbbb]
-	mov ax,[a32 abs qword es:0xbbbbbbbb]
-	mov bx,[a32 abs qword es:0xbbbbbbbb]
-	mov eax,[a32 abs qword es:0xbbbbbbbb]
-	mov ebx,[a32 abs qword es:0xbbbbbbbb]
-	mov rax,[a32 abs qword es:0xbbbbbbbb]
-	mov rbx,[a32 abs qword es:0xbbbbbbbb]
-	mov al,[a32 abs qword es:0xffffffffcccccccc]
-	mov bl,[a32 abs qword es:0xffffffffcccccccc]
-	mov ax,[a32 abs qword es:0xffffffffcccccccc]
-	mov bx,[a32 abs qword es:0xffffffffcccccccc]
-	mov eax,[a32 abs qword es:0xffffffffcccccccc]
-	mov ebx,[a32 abs qword es:0xffffffffcccccccc]
-	mov rax,[a32 abs qword es:0xffffffffcccccccc]
-	mov rbx,[a32 abs qword es:0xffffffffcccccccc]
-
-	mov al,[rel es:foo]
-	mov bl,[rel es:foo]
-	mov ax,[rel es:foo]
-	mov bx,[rel es:foo]
-	mov eax,[rel es:foo]
-	mov ebx,[rel es:foo]
-	mov rax,[rel es:foo]
-	mov rbx,[rel es:foo]
-	mov al,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov al,[rel es:0xbbbbbbbb]
-	mov bl,[rel es:0xbbbbbbbb]
-	mov ax,[rel es:0xbbbbbbbb]
-	mov bx,[rel es:0xbbbbbbbb]
-	mov eax,[rel es:0xbbbbbbbb]
-	mov ebx,[rel es:0xbbbbbbbb]
-	mov rax,[rel es:0xbbbbbbbb]
-	mov rbx,[rel es:0xbbbbbbbb]
-	mov al,[rel es:0xffffffffcccccccc]
-	mov bl,[rel es:0xffffffffcccccccc]
-	mov ax,[rel es:0xffffffffcccccccc]
-	mov bx,[rel es:0xffffffffcccccccc]
-	mov eax,[rel es:0xffffffffcccccccc]
-	mov ebx,[rel es:0xffffffffcccccccc]
-	mov rax,[rel es:0xffffffffcccccccc]
-	mov rbx,[rel es:0xffffffffcccccccc]
-
-	mov al,[rel dword es:foo]
-	mov bl,[rel dword es:foo]
-	mov ax,[rel dword es:foo]
-	mov bx,[rel dword es:foo]
-	mov eax,[rel dword es:foo]
-	mov ebx,[rel dword es:foo]
-	mov rax,[rel dword es:foo]
-	mov rbx,[rel dword es:foo]
-	mov al,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[rel dword es:0xbbbbbbbb]
-	mov bl,[rel dword es:0xbbbbbbbb]
-	mov ax,[rel dword es:0xbbbbbbbb]
-	mov bx,[rel dword es:0xbbbbbbbb]
-	mov eax,[rel dword es:0xbbbbbbbb]
-	mov ebx,[rel dword es:0xbbbbbbbb]
-	mov rax,[rel dword es:0xbbbbbbbb]
-	mov rbx,[rel dword es:0xbbbbbbbb]
-	mov al,[rel dword es:0xffffffffcccccccc]
-	mov bl,[rel dword es:0xffffffffcccccccc]
-	mov ax,[rel dword es:0xffffffffcccccccc]
-	mov bx,[rel dword es:0xffffffffcccccccc]
-	mov eax,[rel dword es:0xffffffffcccccccc]
-	mov ebx,[rel dword es:0xffffffffcccccccc]
-	mov rax,[rel dword es:0xffffffffcccccccc]
-	mov rbx,[rel dword es:0xffffffffcccccccc]
-
-	mov al,[rel qword es:foo]
-	mov bl,[rel qword es:foo]
-	mov ax,[rel qword es:foo]
-	mov bx,[rel qword es:foo]
-	mov eax,[rel qword es:foo]
-	mov ebx,[rel qword es:foo]
-	mov rax,[rel qword es:foo]
-	mov rbx,[rel qword es:foo]
-	mov al,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[rel qword es:0xbbbbbbbb]
-	mov bl,[rel qword es:0xbbbbbbbb]
-	mov ax,[rel qword es:0xbbbbbbbb]
-	mov bx,[rel qword es:0xbbbbbbbb]
-	mov eax,[rel qword es:0xbbbbbbbb]
-	mov ebx,[rel qword es:0xbbbbbbbb]
-	mov rax,[rel qword es:0xbbbbbbbb]
-	mov rbx,[rel qword es:0xbbbbbbbb]
-	mov al,[rel qword es:0xffffffffcccccccc]
-	mov bl,[rel qword es:0xffffffffcccccccc]
-	mov ax,[rel qword es:0xffffffffcccccccc]
-	mov bx,[rel qword es:0xffffffffcccccccc]
-	mov eax,[rel qword es:0xffffffffcccccccc]
-	mov ebx,[rel qword es:0xffffffffcccccccc]
-	mov rax,[rel qword es:0xffffffffcccccccc]
-	mov rbx,[rel qword es:0xffffffffcccccccc]
-
-	mov al,[a64 rel es:foo]
-	mov bl,[a64 rel es:foo]
-	mov ax,[a64 rel es:foo]
-	mov bx,[a64 rel es:foo]
-	mov eax,[a64 rel es:foo]
-	mov ebx,[a64 rel es:foo]
-	mov rax,[a64 rel es:foo]
-	mov rbx,[a64 rel es:foo]
-	mov al,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel es:0xbbbbbbbb]
-	mov bl,[a64 rel es:0xbbbbbbbb]
-	mov ax,[a64 rel es:0xbbbbbbbb]
-	mov bx,[a64 rel es:0xbbbbbbbb]
-	mov eax,[a64 rel es:0xbbbbbbbb]
-	mov ebx,[a64 rel es:0xbbbbbbbb]
-	mov rax,[a64 rel es:0xbbbbbbbb]
-	mov rbx,[a64 rel es:0xbbbbbbbb]
-	mov al,[a64 rel es:0xffffffffcccccccc]
-	mov bl,[a64 rel es:0xffffffffcccccccc]
-	mov ax,[a64 rel es:0xffffffffcccccccc]
-	mov bx,[a64 rel es:0xffffffffcccccccc]
-	mov eax,[a64 rel es:0xffffffffcccccccc]
-	mov ebx,[a64 rel es:0xffffffffcccccccc]
-	mov rax,[a64 rel es:0xffffffffcccccccc]
-	mov rbx,[a64 rel es:0xffffffffcccccccc]
-
-	mov al,[a64 rel dword es:foo]
-	mov bl,[a64 rel dword es:foo]
-	mov ax,[a64 rel dword es:foo]
-	mov bx,[a64 rel dword es:foo]
-	mov eax,[a64 rel dword es:foo]
-	mov ebx,[a64 rel dword es:foo]
-	mov rax,[a64 rel dword es:foo]
-	mov rbx,[a64 rel dword es:foo]
-	mov al,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel dword es:0xbbbbbbbb]
-	mov bl,[a64 rel dword es:0xbbbbbbbb]
-	mov ax,[a64 rel dword es:0xbbbbbbbb]
-	mov bx,[a64 rel dword es:0xbbbbbbbb]
-	mov eax,[a64 rel dword es:0xbbbbbbbb]
-	mov ebx,[a64 rel dword es:0xbbbbbbbb]
-	mov rax,[a64 rel dword es:0xbbbbbbbb]
-	mov rbx,[a64 rel dword es:0xbbbbbbbb]
-	mov al,[a64 rel dword es:0xffffffffcccccccc]
-	mov bl,[a64 rel dword es:0xffffffffcccccccc]
-	mov ax,[a64 rel dword es:0xffffffffcccccccc]
-	mov bx,[a64 rel dword es:0xffffffffcccccccc]
-	mov eax,[a64 rel dword es:0xffffffffcccccccc]
-	mov ebx,[a64 rel dword es:0xffffffffcccccccc]
-	mov rax,[a64 rel dword es:0xffffffffcccccccc]
-	mov rbx,[a64 rel dword es:0xffffffffcccccccc]
-
-	mov al,[a64 rel qword es:foo]
-	mov bl,[a64 rel qword es:foo]
-	mov ax,[a64 rel qword es:foo]
-	mov bx,[a64 rel qword es:foo]
-	mov eax,[a64 rel qword es:foo]
-	mov ebx,[a64 rel qword es:foo]
-	mov rax,[a64 rel qword es:foo]
-	mov rbx,[a64 rel qword es:foo]
-	mov al,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel qword es:0xbbbbbbbb]
-	mov bl,[a64 rel qword es:0xbbbbbbbb]
-	mov ax,[a64 rel qword es:0xbbbbbbbb]
-	mov bx,[a64 rel qword es:0xbbbbbbbb]
-	mov eax,[a64 rel qword es:0xbbbbbbbb]
-	mov ebx,[a64 rel qword es:0xbbbbbbbb]
-	mov rax,[a64 rel qword es:0xbbbbbbbb]
-	mov rbx,[a64 rel qword es:0xbbbbbbbb]
-	mov al,[a64 rel qword es:0xffffffffcccccccc]
-	mov bl,[a64 rel qword es:0xffffffffcccccccc]
-	mov ax,[a64 rel qword es:0xffffffffcccccccc]
-	mov bx,[a64 rel qword es:0xffffffffcccccccc]
-	mov eax,[a64 rel qword es:0xffffffffcccccccc]
-	mov ebx,[a64 rel qword es:0xffffffffcccccccc]
-	mov rax,[a64 rel qword es:0xffffffffcccccccc]
-	mov rbx,[a64 rel qword es:0xffffffffcccccccc]
-
-	mov al,[a32 rel es:foo]
-	mov bl,[a32 rel es:foo]
-	mov ax,[a32 rel es:foo]
-	mov bx,[a32 rel es:foo]
-	mov eax,[a32 rel es:foo]
-	mov ebx,[a32 rel es:foo]
-	mov rax,[a32 rel es:foo]
-	mov rbx,[a32 rel es:foo]
-	mov al,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel es:0xbbbbbbbb]
-	mov bl,[a32 rel es:0xbbbbbbbb]
-	mov ax,[a32 rel es:0xbbbbbbbb]
-	mov bx,[a32 rel es:0xbbbbbbbb]
-	mov eax,[a32 rel es:0xbbbbbbbb]
-	mov ebx,[a32 rel es:0xbbbbbbbb]
-	mov rax,[a32 rel es:0xbbbbbbbb]
-	mov rbx,[a32 rel es:0xbbbbbbbb]
-	mov al,[a32 rel es:0xffffffffcccccccc]
-	mov bl,[a32 rel es:0xffffffffcccccccc]
-	mov ax,[a32 rel es:0xffffffffcccccccc]
-	mov bx,[a32 rel es:0xffffffffcccccccc]
-	mov eax,[a32 rel es:0xffffffffcccccccc]
-	mov ebx,[a32 rel es:0xffffffffcccccccc]
-	mov rax,[a32 rel es:0xffffffffcccccccc]
-	mov rbx,[a32 rel es:0xffffffffcccccccc]
-
-	mov al,[a32 rel dword es:foo]
-	mov bl,[a32 rel dword es:foo]
-	mov ax,[a32 rel dword es:foo]
-	mov bx,[a32 rel dword es:foo]
-	mov eax,[a32 rel dword es:foo]
-	mov ebx,[a32 rel dword es:foo]
-	mov rax,[a32 rel dword es:foo]
-	mov rbx,[a32 rel dword es:foo]
-	mov al,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel dword es:0xbbbbbbbb]
-	mov bl,[a32 rel dword es:0xbbbbbbbb]
-	mov ax,[a32 rel dword es:0xbbbbbbbb]
-	mov bx,[a32 rel dword es:0xbbbbbbbb]
-	mov eax,[a32 rel dword es:0xbbbbbbbb]
-	mov ebx,[a32 rel dword es:0xbbbbbbbb]
-	mov rax,[a32 rel dword es:0xbbbbbbbb]
-	mov rbx,[a32 rel dword es:0xbbbbbbbb]
-	mov al,[a32 rel dword es:0xffffffffcccccccc]
-	mov bl,[a32 rel dword es:0xffffffffcccccccc]
-	mov ax,[a32 rel dword es:0xffffffffcccccccc]
-	mov bx,[a32 rel dword es:0xffffffffcccccccc]
-	mov eax,[a32 rel dword es:0xffffffffcccccccc]
-	mov ebx,[a32 rel dword es:0xffffffffcccccccc]
-	mov rax,[a32 rel dword es:0xffffffffcccccccc]
-	mov rbx,[a32 rel dword es:0xffffffffcccccccc]
-
-	mov al,[a32 rel qword es:foo]
-	mov bl,[a32 rel qword es:foo]
-	mov ax,[a32 rel qword es:foo]
-	mov bx,[a32 rel qword es:foo]
-	mov eax,[a32 rel qword es:foo]
-	mov ebx,[a32 rel qword es:foo]
-	mov rax,[a32 rel qword es:foo]
-	mov rbx,[a32 rel qword es:foo]
-	mov al,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel qword es:0xbbbbbbbb]
-	mov bl,[a32 rel qword es:0xbbbbbbbb]
-	mov ax,[a32 rel qword es:0xbbbbbbbb]
-	mov bx,[a32 rel qword es:0xbbbbbbbb]
-	mov eax,[a32 rel qword es:0xbbbbbbbb]
-	mov ebx,[a32 rel qword es:0xbbbbbbbb]
-	mov rax,[a32 rel qword es:0xbbbbbbbb]
-	mov rbx,[a32 rel qword es:0xbbbbbbbb]
-	mov al,[a32 rel qword es:0xffffffffcccccccc]
-	mov bl,[a32 rel qword es:0xffffffffcccccccc]
-	mov ax,[a32 rel qword es:0xffffffffcccccccc]
-	mov bx,[a32 rel qword es:0xffffffffcccccccc]
-	mov eax,[a32 rel qword es:0xffffffffcccccccc]
-	mov ebx,[a32 rel qword es:0xffffffffcccccccc]
-	mov rax,[a32 rel qword es:0xffffffffcccccccc]
-	mov rbx,[a32 rel qword es:0xffffffffcccccccc]
-
-
-	default rel
-
-	mov al,[foo]
-	mov bl,[foo]
-	mov ax,[foo]
-	mov bx,[foo]
-	mov eax,[foo]
-	mov ebx,[foo]
-	mov rax,[foo]
-	mov rbx,[foo]
-	mov al,[0xaaaaaaaaaaaaaaaa]
-	mov bl,[0xaaaaaaaaaaaaaaaa]
-	mov ax,[0xaaaaaaaaaaaaaaaa]
-	mov bx,[0xaaaaaaaaaaaaaaaa]
-	mov eax,[0xaaaaaaaaaaaaaaaa]
-	mov ebx,[0xaaaaaaaaaaaaaaaa]
-	mov rax,[0xaaaaaaaaaaaaaaaa]
-	mov rbx,[0xaaaaaaaaaaaaaaaa]
-	mov al,[0xbbbbbbbb]
-	mov bl,[0xbbbbbbbb]
-	mov ax,[0xbbbbbbbb]
-	mov bx,[0xbbbbbbbb]
-	mov eax,[0xbbbbbbbb]
-	mov ebx,[0xbbbbbbbb]
-	mov rax,[0xbbbbbbbb]
-	mov rbx,[0xbbbbbbbb]
-	mov al,[0xffffffffcccccccc]
-	mov bl,[0xffffffffcccccccc]
-	mov ax,[0xffffffffcccccccc]
-	mov bx,[0xffffffffcccccccc]
-	mov eax,[0xffffffffcccccccc]
-	mov ebx,[0xffffffffcccccccc]
-	mov rax,[0xffffffffcccccccc]
-	mov rbx,[0xffffffffcccccccc]
-
-	mov al,[dword foo]
-	mov bl,[dword foo]
-	mov ax,[dword foo]
-	mov bx,[dword foo]
-	mov eax,[dword foo]
-	mov ebx,[dword foo]
-	mov rax,[dword foo]
-	mov rbx,[dword foo]
-	mov al,[dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[dword 0xbbbbbbbb]
-	mov bl,[dword 0xbbbbbbbb]
-	mov ax,[dword 0xbbbbbbbb]
-	mov bx,[dword 0xbbbbbbbb]
-	mov eax,[dword 0xbbbbbbbb]
-	mov ebx,[dword 0xbbbbbbbb]
-	mov rax,[dword 0xbbbbbbbb]
-	mov rbx,[dword 0xbbbbbbbb]
-	mov al,[dword 0xffffffffcccccccc]
-	mov bl,[dword 0xffffffffcccccccc]
-	mov ax,[dword 0xffffffffcccccccc]
-	mov bx,[dword 0xffffffffcccccccc]
-	mov eax,[dword 0xffffffffcccccccc]
-	mov ebx,[dword 0xffffffffcccccccc]
-	mov rax,[dword 0xffffffffcccccccc]
-	mov rbx,[dword 0xffffffffcccccccc]
-
-	mov al,[qword foo]
-	mov bl,[qword foo]
-	mov ax,[qword foo]
-	mov bx,[qword foo]
-	mov eax,[qword foo]
-	mov ebx,[qword foo]
-	mov rax,[qword foo]
-	mov rbx,[qword foo]
-	mov al,[qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[qword 0xbbbbbbbb]
-	mov bl,[qword 0xbbbbbbbb]
-	mov ax,[qword 0xbbbbbbbb]
-	mov bx,[qword 0xbbbbbbbb]
-	mov eax,[qword 0xbbbbbbbb]
-	mov ebx,[qword 0xbbbbbbbb]
-	mov rax,[qword 0xbbbbbbbb]
-	mov rbx,[qword 0xbbbbbbbb]
-	mov al,[qword 0xffffffffcccccccc]
-	mov bl,[qword 0xffffffffcccccccc]
-	mov ax,[qword 0xffffffffcccccccc]
-	mov bx,[qword 0xffffffffcccccccc]
-	mov eax,[qword 0xffffffffcccccccc]
-	mov ebx,[qword 0xffffffffcccccccc]
-	mov rax,[qword 0xffffffffcccccccc]
-	mov rbx,[qword 0xffffffffcccccccc]
-
-	mov al,[a64 foo]
-	mov bl,[a64 foo]
-	mov ax,[a64 foo]
-	mov bx,[a64 foo]
-	mov eax,[a64 foo]
-	mov ebx,[a64 foo]
-	mov rax,[a64 foo]
-	mov rbx,[a64 foo]
-	mov al,[a64 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 0xbbbbbbbb]
-	mov bl,[a64 0xbbbbbbbb]
-	mov ax,[a64 0xbbbbbbbb]
-	mov bx,[a64 0xbbbbbbbb]
-	mov eax,[a64 0xbbbbbbbb]
-	mov ebx,[a64 0xbbbbbbbb]
-	mov rax,[a64 0xbbbbbbbb]
-	mov rbx,[a64 0xbbbbbbbb]
-	mov al,[a64 0xffffffffcccccccc]
-	mov bl,[a64 0xffffffffcccccccc]
-	mov ax,[a64 0xffffffffcccccccc]
-	mov bx,[a64 0xffffffffcccccccc]
-	mov eax,[a64 0xffffffffcccccccc]
-	mov ebx,[a64 0xffffffffcccccccc]
-	mov rax,[a64 0xffffffffcccccccc]
-	mov rbx,[a64 0xffffffffcccccccc]
-
-	mov al,[a64 dword foo]
-	mov bl,[a64 dword foo]
-	mov ax,[a64 dword foo]
-	mov bx,[a64 dword foo]
-	mov eax,[a64 dword foo]
-	mov ebx,[a64 dword foo]
-	mov rax,[a64 dword foo]
-	mov rbx,[a64 dword foo]
-	mov al,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 dword 0xbbbbbbbb]
-	mov bl,[a64 dword 0xbbbbbbbb]
-	mov ax,[a64 dword 0xbbbbbbbb]
-	mov bx,[a64 dword 0xbbbbbbbb]
-	mov eax,[a64 dword 0xbbbbbbbb]
-	mov ebx,[a64 dword 0xbbbbbbbb]
-	mov rax,[a64 dword 0xbbbbbbbb]
-	mov rbx,[a64 dword 0xbbbbbbbb]
-	mov al,[a64 dword 0xffffffffcccccccc]
-	mov bl,[a64 dword 0xffffffffcccccccc]
-	mov ax,[a64 dword 0xffffffffcccccccc]
-	mov bx,[a64 dword 0xffffffffcccccccc]
-	mov eax,[a64 dword 0xffffffffcccccccc]
-	mov ebx,[a64 dword 0xffffffffcccccccc]
-	mov rax,[a64 dword 0xffffffffcccccccc]
-	mov rbx,[a64 dword 0xffffffffcccccccc]
-
-	mov al,[a64 qword foo]
-	mov bl,[a64 qword foo]
-	mov ax,[a64 qword foo]
-	mov bx,[a64 qword foo]
-	mov eax,[a64 qword foo]
-	mov ebx,[a64 qword foo]
-	mov rax,[a64 qword foo]
-	mov rbx,[a64 qword foo]
-	mov al,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 qword 0xbbbbbbbb]
-	mov bl,[a64 qword 0xbbbbbbbb]
-	mov ax,[a64 qword 0xbbbbbbbb]
-	mov bx,[a64 qword 0xbbbbbbbb]
-	mov eax,[a64 qword 0xbbbbbbbb]
-	mov ebx,[a64 qword 0xbbbbbbbb]
-	mov rax,[a64 qword 0xbbbbbbbb]
-	mov rbx,[a64 qword 0xbbbbbbbb]
-	mov al,[a64 qword 0xffffffffcccccccc]
-	mov bl,[a64 qword 0xffffffffcccccccc]
-	mov ax,[a64 qword 0xffffffffcccccccc]
-	mov bx,[a64 qword 0xffffffffcccccccc]
-	mov eax,[a64 qword 0xffffffffcccccccc]
-	mov ebx,[a64 qword 0xffffffffcccccccc]
-	mov rax,[a64 qword 0xffffffffcccccccc]
-	mov rbx,[a64 qword 0xffffffffcccccccc]
-
-	mov al,[a32 foo]
-	mov bl,[a32 foo]
-	mov ax,[a32 foo]
-	mov bx,[a32 foo]
-	mov eax,[a32 foo]
-	mov ebx,[a32 foo]
-	mov rax,[a32 foo]
-	mov rbx,[a32 foo]
-	mov al,[a32 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 0xbbbbbbbb]
-	mov bl,[a32 0xbbbbbbbb]
-	mov ax,[a32 0xbbbbbbbb]
-	mov bx,[a32 0xbbbbbbbb]
-	mov eax,[a32 0xbbbbbbbb]
-	mov ebx,[a32 0xbbbbbbbb]
-	mov rax,[a32 0xbbbbbbbb]
-	mov rbx,[a32 0xbbbbbbbb]
-	mov al,[a32 0xffffffffcccccccc]
-	mov bl,[a32 0xffffffffcccccccc]
-	mov ax,[a32 0xffffffffcccccccc]
-	mov bx,[a32 0xffffffffcccccccc]
-	mov eax,[a32 0xffffffffcccccccc]
-	mov ebx,[a32 0xffffffffcccccccc]
-	mov rax,[a32 0xffffffffcccccccc]
-	mov rbx,[a32 0xffffffffcccccccc]
-
-	mov al,[a32 dword foo]
-	mov bl,[a32 dword foo]
-	mov ax,[a32 dword foo]
-	mov bx,[a32 dword foo]
-	mov eax,[a32 dword foo]
-	mov ebx,[a32 dword foo]
-	mov rax,[a32 dword foo]
-	mov rbx,[a32 dword foo]
-	mov al,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 dword 0xbbbbbbbb]
-	mov bl,[a32 dword 0xbbbbbbbb]
-	mov ax,[a32 dword 0xbbbbbbbb]
-	mov bx,[a32 dword 0xbbbbbbbb]
-	mov eax,[a32 dword 0xbbbbbbbb]
-	mov ebx,[a32 dword 0xbbbbbbbb]
-	mov rax,[a32 dword 0xbbbbbbbb]
-	mov rbx,[a32 dword 0xbbbbbbbb]
-	mov al,[a32 dword 0xffffffffcccccccc]
-	mov bl,[a32 dword 0xffffffffcccccccc]
-	mov ax,[a32 dword 0xffffffffcccccccc]
-	mov bx,[a32 dword 0xffffffffcccccccc]
-	mov eax,[a32 dword 0xffffffffcccccccc]
-	mov ebx,[a32 dword 0xffffffffcccccccc]
-	mov rax,[a32 dword 0xffffffffcccccccc]
-	mov rbx,[a32 dword 0xffffffffcccccccc]
-
-	mov al,[a32 qword foo]
-	mov bl,[a32 qword foo]
-	mov ax,[a32 qword foo]
-	mov bx,[a32 qword foo]
-	mov eax,[a32 qword foo]
-	mov ebx,[a32 qword foo]
-	mov rax,[a32 qword foo]
-	mov rbx,[a32 qword foo]
-	mov al,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 qword 0xbbbbbbbb]
-	mov bl,[a32 qword 0xbbbbbbbb]
-	mov ax,[a32 qword 0xbbbbbbbb]
-	mov bx,[a32 qword 0xbbbbbbbb]
-	mov eax,[a32 qword 0xbbbbbbbb]
-	mov ebx,[a32 qword 0xbbbbbbbb]
-	mov rax,[a32 qword 0xbbbbbbbb]
-	mov rbx,[a32 qword 0xbbbbbbbb]
-	mov al,[a32 qword 0xffffffffcccccccc]
-	mov bl,[a32 qword 0xffffffffcccccccc]
-	mov ax,[a32 qword 0xffffffffcccccccc]
-	mov bx,[a32 qword 0xffffffffcccccccc]
-	mov eax,[a32 qword 0xffffffffcccccccc]
-	mov ebx,[a32 qword 0xffffffffcccccccc]
-	mov rax,[a32 qword 0xffffffffcccccccc]
-	mov rbx,[a32 qword 0xffffffffcccccccc]
-
-	mov al,[abs foo]
-	mov bl,[abs foo]
-	mov ax,[abs foo]
-	mov bx,[abs foo]
-	mov eax,[abs foo]
-	mov ebx,[abs foo]
-	mov rax,[abs foo]
-	mov rbx,[abs foo]
-	mov al,[abs 0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs 0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs 0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs 0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs 0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs 0xaaaaaaaaaaaaaaaa]
-	mov al,[abs 0xbbbbbbbb]
-	mov bl,[abs 0xbbbbbbbb]
-	mov ax,[abs 0xbbbbbbbb]
-	mov bx,[abs 0xbbbbbbbb]
-	mov eax,[abs 0xbbbbbbbb]
-	mov ebx,[abs 0xbbbbbbbb]
-	mov rax,[abs 0xbbbbbbbb]
-	mov rbx,[abs 0xbbbbbbbb]
-	mov al,[abs 0xffffffffcccccccc]
-	mov bl,[abs 0xffffffffcccccccc]
-	mov ax,[abs 0xffffffffcccccccc]
-	mov bx,[abs 0xffffffffcccccccc]
-	mov eax,[abs 0xffffffffcccccccc]
-	mov ebx,[abs 0xffffffffcccccccc]
-	mov rax,[abs 0xffffffffcccccccc]
-	mov rbx,[abs 0xffffffffcccccccc]
-
-	mov al,[abs dword foo]
-	mov bl,[abs dword foo]
-	mov ax,[abs dword foo]
-	mov bx,[abs dword foo]
-	mov eax,[abs dword foo]
-	mov ebx,[abs dword foo]
-	mov rax,[abs dword foo]
-	mov rbx,[abs dword foo]
-	mov al,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[abs dword 0xbbbbbbbb]
-	mov bl,[abs dword 0xbbbbbbbb]
-	mov ax,[abs dword 0xbbbbbbbb]
-	mov bx,[abs dword 0xbbbbbbbb]
-	mov eax,[abs dword 0xbbbbbbbb]
-	mov ebx,[abs dword 0xbbbbbbbb]
-	mov rax,[abs dword 0xbbbbbbbb]
-	mov rbx,[abs dword 0xbbbbbbbb]
-	mov al,[abs dword 0xffffffffcccccccc]
-	mov bl,[abs dword 0xffffffffcccccccc]
-	mov ax,[abs dword 0xffffffffcccccccc]
-	mov bx,[abs dword 0xffffffffcccccccc]
-	mov eax,[abs dword 0xffffffffcccccccc]
-	mov ebx,[abs dword 0xffffffffcccccccc]
-	mov rax,[abs dword 0xffffffffcccccccc]
-	mov rbx,[abs dword 0xffffffffcccccccc]
-
-	mov al,[abs qword foo]
-	mov bl,[abs qword foo]
-	mov ax,[abs qword foo]
-	mov bx,[abs qword foo]
-	mov eax,[abs qword foo]
-	mov ebx,[abs qword foo]
-	mov rax,[abs qword foo]
-	mov rbx,[abs qword foo]
-	mov al,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[abs qword 0xbbbbbbbb]
-	mov bl,[abs qword 0xbbbbbbbb]
-	mov ax,[abs qword 0xbbbbbbbb]
-	mov bx,[abs qword 0xbbbbbbbb]
-	mov eax,[abs qword 0xbbbbbbbb]
-	mov ebx,[abs qword 0xbbbbbbbb]
-	mov rax,[abs qword 0xbbbbbbbb]
-	mov rbx,[abs qword 0xbbbbbbbb]
-	mov al,[abs qword 0xffffffffcccccccc]
-	mov bl,[abs qword 0xffffffffcccccccc]
-	mov ax,[abs qword 0xffffffffcccccccc]
-	mov bx,[abs qword 0xffffffffcccccccc]
-	mov eax,[abs qword 0xffffffffcccccccc]
-	mov ebx,[abs qword 0xffffffffcccccccc]
-	mov rax,[abs qword 0xffffffffcccccccc]
-	mov rbx,[abs qword 0xffffffffcccccccc]
-
-	mov al,[a64 abs foo]
-	mov bl,[a64 abs foo]
-	mov ax,[a64 abs foo]
-	mov bx,[a64 abs foo]
-	mov eax,[a64 abs foo]
-	mov ebx,[a64 abs foo]
-	mov rax,[a64 abs foo]
-	mov rbx,[a64 abs foo]
-	mov al,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs 0xbbbbbbbb]
-	mov bl,[a64 abs 0xbbbbbbbb]
-	mov ax,[a64 abs 0xbbbbbbbb]
-	mov bx,[a64 abs 0xbbbbbbbb]
-	mov eax,[a64 abs 0xbbbbbbbb]
-	mov ebx,[a64 abs 0xbbbbbbbb]
-	mov rax,[a64 abs 0xbbbbbbbb]
-	mov rbx,[a64 abs 0xbbbbbbbb]
-	mov al,[a64 abs 0xffffffffcccccccc]
-	mov bl,[a64 abs 0xffffffffcccccccc]
-	mov ax,[a64 abs 0xffffffffcccccccc]
-	mov bx,[a64 abs 0xffffffffcccccccc]
-	mov eax,[a64 abs 0xffffffffcccccccc]
-	mov ebx,[a64 abs 0xffffffffcccccccc]
-	mov rax,[a64 abs 0xffffffffcccccccc]
-	mov rbx,[a64 abs 0xffffffffcccccccc]
-
-	mov al,[a64 abs dword foo]
-	mov bl,[a64 abs dword foo]
-	mov ax,[a64 abs dword foo]
-	mov bx,[a64 abs dword foo]
-	mov eax,[a64 abs dword foo]
-	mov ebx,[a64 abs dword foo]
-	mov rax,[a64 abs dword foo]
-	mov rbx,[a64 abs dword foo]
-	mov al,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs dword 0xbbbbbbbb]
-	mov bl,[a64 abs dword 0xbbbbbbbb]
-	mov ax,[a64 abs dword 0xbbbbbbbb]
-	mov bx,[a64 abs dword 0xbbbbbbbb]
-	mov eax,[a64 abs dword 0xbbbbbbbb]
-	mov ebx,[a64 abs dword 0xbbbbbbbb]
-	mov rax,[a64 abs dword 0xbbbbbbbb]
-	mov rbx,[a64 abs dword 0xbbbbbbbb]
-	mov al,[a64 abs dword 0xffffffffcccccccc]
-	mov bl,[a64 abs dword 0xffffffffcccccccc]
-	mov ax,[a64 abs dword 0xffffffffcccccccc]
-	mov bx,[a64 abs dword 0xffffffffcccccccc]
-	mov eax,[a64 abs dword 0xffffffffcccccccc]
-	mov ebx,[a64 abs dword 0xffffffffcccccccc]
-	mov rax,[a64 abs dword 0xffffffffcccccccc]
-	mov rbx,[a64 abs dword 0xffffffffcccccccc]
-
-	mov al,[a64 abs qword foo]
-	mov bl,[a64 abs qword foo]
-	mov ax,[a64 abs qword foo]
-	mov bx,[a64 abs qword foo]
-	mov eax,[a64 abs qword foo]
-	mov ebx,[a64 abs qword foo]
-	mov rax,[a64 abs qword foo]
-	mov rbx,[a64 abs qword foo]
-	mov al,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs qword 0xbbbbbbbb]
-	mov bl,[a64 abs qword 0xbbbbbbbb]
-	mov ax,[a64 abs qword 0xbbbbbbbb]
-	mov bx,[a64 abs qword 0xbbbbbbbb]
-	mov eax,[a64 abs qword 0xbbbbbbbb]
-	mov ebx,[a64 abs qword 0xbbbbbbbb]
-	mov rax,[a64 abs qword 0xbbbbbbbb]
-	mov rbx,[a64 abs qword 0xbbbbbbbb]
-	mov al,[a64 abs qword 0xffffffffcccccccc]
-	mov bl,[a64 abs qword 0xffffffffcccccccc]
-	mov ax,[a64 abs qword 0xffffffffcccccccc]
-	mov bx,[a64 abs qword 0xffffffffcccccccc]
-	mov eax,[a64 abs qword 0xffffffffcccccccc]
-	mov ebx,[a64 abs qword 0xffffffffcccccccc]
-	mov rax,[a64 abs qword 0xffffffffcccccccc]
-	mov rbx,[a64 abs qword 0xffffffffcccccccc]
-
-	mov al,[a32 abs foo]
-	mov bl,[a32 abs foo]
-	mov ax,[a32 abs foo]
-	mov bx,[a32 abs foo]
-	mov eax,[a32 abs foo]
-	mov ebx,[a32 abs foo]
-	mov rax,[a32 abs foo]
-	mov rbx,[a32 abs foo]
-	mov al,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs 0xbbbbbbbb]
-	mov bl,[a32 abs 0xbbbbbbbb]
-	mov ax,[a32 abs 0xbbbbbbbb]
-	mov bx,[a32 abs 0xbbbbbbbb]
-	mov eax,[a32 abs 0xbbbbbbbb]
-	mov ebx,[a32 abs 0xbbbbbbbb]
-	mov rax,[a32 abs 0xbbbbbbbb]
-	mov rbx,[a32 abs 0xbbbbbbbb]
-	mov al,[a32 abs 0xffffffffcccccccc]
-	mov bl,[a32 abs 0xffffffffcccccccc]
-	mov ax,[a32 abs 0xffffffffcccccccc]
-	mov bx,[a32 abs 0xffffffffcccccccc]
-	mov eax,[a32 abs 0xffffffffcccccccc]
-	mov ebx,[a32 abs 0xffffffffcccccccc]
-	mov rax,[a32 abs 0xffffffffcccccccc]
-	mov rbx,[a32 abs 0xffffffffcccccccc]
-
-	mov al,[a32 abs dword foo]
-	mov bl,[a32 abs dword foo]
-	mov ax,[a32 abs dword foo]
-	mov bx,[a32 abs dword foo]
-	mov eax,[a32 abs dword foo]
-	mov ebx,[a32 abs dword foo]
-	mov rax,[a32 abs dword foo]
-	mov rbx,[a32 abs dword foo]
-	mov al,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs dword 0xbbbbbbbb]
-	mov bl,[a32 abs dword 0xbbbbbbbb]
-	mov ax,[a32 abs dword 0xbbbbbbbb]
-	mov bx,[a32 abs dword 0xbbbbbbbb]
-	mov eax,[a32 abs dword 0xbbbbbbbb]
-	mov ebx,[a32 abs dword 0xbbbbbbbb]
-	mov rax,[a32 abs dword 0xbbbbbbbb]
-	mov rbx,[a32 abs dword 0xbbbbbbbb]
-	mov al,[a32 abs dword 0xffffffffcccccccc]
-	mov bl,[a32 abs dword 0xffffffffcccccccc]
-	mov ax,[a32 abs dword 0xffffffffcccccccc]
-	mov bx,[a32 abs dword 0xffffffffcccccccc]
-	mov eax,[a32 abs dword 0xffffffffcccccccc]
-	mov ebx,[a32 abs dword 0xffffffffcccccccc]
-	mov rax,[a32 abs dword 0xffffffffcccccccc]
-	mov rbx,[a32 abs dword 0xffffffffcccccccc]
-
-	mov al,[a32 abs qword foo]
-	mov bl,[a32 abs qword foo]
-	mov ax,[a32 abs qword foo]
-	mov bx,[a32 abs qword foo]
-	mov eax,[a32 abs qword foo]
-	mov ebx,[a32 abs qword foo]
-	mov rax,[a32 abs qword foo]
-	mov rbx,[a32 abs qword foo]
-	mov al,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs qword 0xbbbbbbbb]
-	mov bl,[a32 abs qword 0xbbbbbbbb]
-	mov ax,[a32 abs qword 0xbbbbbbbb]
-	mov bx,[a32 abs qword 0xbbbbbbbb]
-	mov eax,[a32 abs qword 0xbbbbbbbb]
-	mov ebx,[a32 abs qword 0xbbbbbbbb]
-	mov rax,[a32 abs qword 0xbbbbbbbb]
-	mov rbx,[a32 abs qword 0xbbbbbbbb]
-	mov al,[a32 abs qword 0xffffffffcccccccc]
-	mov bl,[a32 abs qword 0xffffffffcccccccc]
-	mov ax,[a32 abs qword 0xffffffffcccccccc]
-	mov bx,[a32 abs qword 0xffffffffcccccccc]
-	mov eax,[a32 abs qword 0xffffffffcccccccc]
-	mov ebx,[a32 abs qword 0xffffffffcccccccc]
-	mov rax,[a32 abs qword 0xffffffffcccccccc]
-	mov rbx,[a32 abs qword 0xffffffffcccccccc]
-
-	mov al,[rel foo]
-	mov bl,[rel foo]
-	mov ax,[rel foo]
-	mov bx,[rel foo]
-	mov eax,[rel foo]
-	mov ebx,[rel foo]
-	mov rax,[rel foo]
-	mov rbx,[rel foo]
-	mov al,[rel 0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel 0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel 0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel 0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel 0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel 0xaaaaaaaaaaaaaaaa]
-	mov al,[rel 0xbbbbbbbb]
-	mov bl,[rel 0xbbbbbbbb]
-	mov ax,[rel 0xbbbbbbbb]
-	mov bx,[rel 0xbbbbbbbb]
-	mov eax,[rel 0xbbbbbbbb]
-	mov ebx,[rel 0xbbbbbbbb]
-	mov rax,[rel 0xbbbbbbbb]
-	mov rbx,[rel 0xbbbbbbbb]
-	mov al,[rel 0xffffffffcccccccc]
-	mov bl,[rel 0xffffffffcccccccc]
-	mov ax,[rel 0xffffffffcccccccc]
-	mov bx,[rel 0xffffffffcccccccc]
-	mov eax,[rel 0xffffffffcccccccc]
-	mov ebx,[rel 0xffffffffcccccccc]
-	mov rax,[rel 0xffffffffcccccccc]
-	mov rbx,[rel 0xffffffffcccccccc]
-
-	mov al,[rel dword foo]
-	mov bl,[rel dword foo]
-	mov ax,[rel dword foo]
-	mov bx,[rel dword foo]
-	mov eax,[rel dword foo]
-	mov ebx,[rel dword foo]
-	mov rax,[rel dword foo]
-	mov rbx,[rel dword foo]
-	mov al,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[rel dword 0xbbbbbbbb]
-	mov bl,[rel dword 0xbbbbbbbb]
-	mov ax,[rel dword 0xbbbbbbbb]
-	mov bx,[rel dword 0xbbbbbbbb]
-	mov eax,[rel dword 0xbbbbbbbb]
-	mov ebx,[rel dword 0xbbbbbbbb]
-	mov rax,[rel dword 0xbbbbbbbb]
-	mov rbx,[rel dword 0xbbbbbbbb]
-	mov al,[rel dword 0xffffffffcccccccc]
-	mov bl,[rel dword 0xffffffffcccccccc]
-	mov ax,[rel dword 0xffffffffcccccccc]
-	mov bx,[rel dword 0xffffffffcccccccc]
-	mov eax,[rel dword 0xffffffffcccccccc]
-	mov ebx,[rel dword 0xffffffffcccccccc]
-	mov rax,[rel dword 0xffffffffcccccccc]
-	mov rbx,[rel dword 0xffffffffcccccccc]
-
-	mov al,[rel qword foo]
-	mov bl,[rel qword foo]
-	mov ax,[rel qword foo]
-	mov bx,[rel qword foo]
-	mov eax,[rel qword foo]
-	mov ebx,[rel qword foo]
-	mov rax,[rel qword foo]
-	mov rbx,[rel qword foo]
-	mov al,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[rel qword 0xbbbbbbbb]
-	mov bl,[rel qword 0xbbbbbbbb]
-	mov ax,[rel qword 0xbbbbbbbb]
-	mov bx,[rel qword 0xbbbbbbbb]
-	mov eax,[rel qword 0xbbbbbbbb]
-	mov ebx,[rel qword 0xbbbbbbbb]
-	mov rax,[rel qword 0xbbbbbbbb]
-	mov rbx,[rel qword 0xbbbbbbbb]
-	mov al,[rel qword 0xffffffffcccccccc]
-	mov bl,[rel qword 0xffffffffcccccccc]
-	mov ax,[rel qword 0xffffffffcccccccc]
-	mov bx,[rel qword 0xffffffffcccccccc]
-	mov eax,[rel qword 0xffffffffcccccccc]
-	mov ebx,[rel qword 0xffffffffcccccccc]
-	mov rax,[rel qword 0xffffffffcccccccc]
-	mov rbx,[rel qword 0xffffffffcccccccc]
-
-	mov al,[a64 rel foo]
-	mov bl,[a64 rel foo]
-	mov ax,[a64 rel foo]
-	mov bx,[a64 rel foo]
-	mov eax,[a64 rel foo]
-	mov ebx,[a64 rel foo]
-	mov rax,[a64 rel foo]
-	mov rbx,[a64 rel foo]
-	mov al,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel 0xbbbbbbbb]
-	mov bl,[a64 rel 0xbbbbbbbb]
-	mov ax,[a64 rel 0xbbbbbbbb]
-	mov bx,[a64 rel 0xbbbbbbbb]
-	mov eax,[a64 rel 0xbbbbbbbb]
-	mov ebx,[a64 rel 0xbbbbbbbb]
-	mov rax,[a64 rel 0xbbbbbbbb]
-	mov rbx,[a64 rel 0xbbbbbbbb]
-	mov al,[a64 rel 0xffffffffcccccccc]
-	mov bl,[a64 rel 0xffffffffcccccccc]
-	mov ax,[a64 rel 0xffffffffcccccccc]
-	mov bx,[a64 rel 0xffffffffcccccccc]
-	mov eax,[a64 rel 0xffffffffcccccccc]
-	mov ebx,[a64 rel 0xffffffffcccccccc]
-	mov rax,[a64 rel 0xffffffffcccccccc]
-	mov rbx,[a64 rel 0xffffffffcccccccc]
-
-	mov al,[a64 rel dword foo]
-	mov bl,[a64 rel dword foo]
-	mov ax,[a64 rel dword foo]
-	mov bx,[a64 rel dword foo]
-	mov eax,[a64 rel dword foo]
-	mov ebx,[a64 rel dword foo]
-	mov rax,[a64 rel dword foo]
-	mov rbx,[a64 rel dword foo]
-	mov al,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel dword 0xbbbbbbbb]
-	mov bl,[a64 rel dword 0xbbbbbbbb]
-	mov ax,[a64 rel dword 0xbbbbbbbb]
-	mov bx,[a64 rel dword 0xbbbbbbbb]
-	mov eax,[a64 rel dword 0xbbbbbbbb]
-	mov ebx,[a64 rel dword 0xbbbbbbbb]
-	mov rax,[a64 rel dword 0xbbbbbbbb]
-	mov rbx,[a64 rel dword 0xbbbbbbbb]
-	mov al,[a64 rel dword 0xffffffffcccccccc]
-	mov bl,[a64 rel dword 0xffffffffcccccccc]
-	mov ax,[a64 rel dword 0xffffffffcccccccc]
-	mov bx,[a64 rel dword 0xffffffffcccccccc]
-	mov eax,[a64 rel dword 0xffffffffcccccccc]
-	mov ebx,[a64 rel dword 0xffffffffcccccccc]
-	mov rax,[a64 rel dword 0xffffffffcccccccc]
-	mov rbx,[a64 rel dword 0xffffffffcccccccc]
-
-	mov al,[a64 rel qword foo]
-	mov bl,[a64 rel qword foo]
-	mov ax,[a64 rel qword foo]
-	mov bx,[a64 rel qword foo]
-	mov eax,[a64 rel qword foo]
-	mov ebx,[a64 rel qword foo]
-	mov rax,[a64 rel qword foo]
-	mov rbx,[a64 rel qword foo]
-	mov al,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel qword 0xbbbbbbbb]
-	mov bl,[a64 rel qword 0xbbbbbbbb]
-	mov ax,[a64 rel qword 0xbbbbbbbb]
-	mov bx,[a64 rel qword 0xbbbbbbbb]
-	mov eax,[a64 rel qword 0xbbbbbbbb]
-	mov ebx,[a64 rel qword 0xbbbbbbbb]
-	mov rax,[a64 rel qword 0xbbbbbbbb]
-	mov rbx,[a64 rel qword 0xbbbbbbbb]
-	mov al,[a64 rel qword 0xffffffffcccccccc]
-	mov bl,[a64 rel qword 0xffffffffcccccccc]
-	mov ax,[a64 rel qword 0xffffffffcccccccc]
-	mov bx,[a64 rel qword 0xffffffffcccccccc]
-	mov eax,[a64 rel qword 0xffffffffcccccccc]
-	mov ebx,[a64 rel qword 0xffffffffcccccccc]
-	mov rax,[a64 rel qword 0xffffffffcccccccc]
-	mov rbx,[a64 rel qword 0xffffffffcccccccc]
-
-	mov al,[a32 rel foo]
-	mov bl,[a32 rel foo]
-	mov ax,[a32 rel foo]
-	mov bx,[a32 rel foo]
-	mov eax,[a32 rel foo]
-	mov ebx,[a32 rel foo]
-	mov rax,[a32 rel foo]
-	mov rbx,[a32 rel foo]
-	mov al,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel 0xbbbbbbbb]
-	mov bl,[a32 rel 0xbbbbbbbb]
-	mov ax,[a32 rel 0xbbbbbbbb]
-	mov bx,[a32 rel 0xbbbbbbbb]
-	mov eax,[a32 rel 0xbbbbbbbb]
-	mov ebx,[a32 rel 0xbbbbbbbb]
-	mov rax,[a32 rel 0xbbbbbbbb]
-	mov rbx,[a32 rel 0xbbbbbbbb]
-	mov al,[a32 rel 0xffffffffcccccccc]
-	mov bl,[a32 rel 0xffffffffcccccccc]
-	mov ax,[a32 rel 0xffffffffcccccccc]
-	mov bx,[a32 rel 0xffffffffcccccccc]
-	mov eax,[a32 rel 0xffffffffcccccccc]
-	mov ebx,[a32 rel 0xffffffffcccccccc]
-	mov rax,[a32 rel 0xffffffffcccccccc]
-	mov rbx,[a32 rel 0xffffffffcccccccc]
-
-	mov al,[a32 rel dword foo]
-	mov bl,[a32 rel dword foo]
-	mov ax,[a32 rel dword foo]
-	mov bx,[a32 rel dword foo]
-	mov eax,[a32 rel dword foo]
-	mov ebx,[a32 rel dword foo]
-	mov rax,[a32 rel dword foo]
-	mov rbx,[a32 rel dword foo]
-	mov al,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel dword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel dword 0xbbbbbbbb]
-	mov bl,[a32 rel dword 0xbbbbbbbb]
-	mov ax,[a32 rel dword 0xbbbbbbbb]
-	mov bx,[a32 rel dword 0xbbbbbbbb]
-	mov eax,[a32 rel dword 0xbbbbbbbb]
-	mov ebx,[a32 rel dword 0xbbbbbbbb]
-	mov rax,[a32 rel dword 0xbbbbbbbb]
-	mov rbx,[a32 rel dword 0xbbbbbbbb]
-	mov al,[a32 rel dword 0xffffffffcccccccc]
-	mov bl,[a32 rel dword 0xffffffffcccccccc]
-	mov ax,[a32 rel dword 0xffffffffcccccccc]
-	mov bx,[a32 rel dword 0xffffffffcccccccc]
-	mov eax,[a32 rel dword 0xffffffffcccccccc]
-	mov ebx,[a32 rel dword 0xffffffffcccccccc]
-	mov rax,[a32 rel dword 0xffffffffcccccccc]
-	mov rbx,[a32 rel dword 0xffffffffcccccccc]
-
-	mov al,[a32 rel qword foo]
-	mov bl,[a32 rel qword foo]
-	mov ax,[a32 rel qword foo]
-	mov bx,[a32 rel qword foo]
-	mov eax,[a32 rel qword foo]
-	mov ebx,[a32 rel qword foo]
-	mov rax,[a32 rel qword foo]
-	mov rbx,[a32 rel qword foo]
-	mov al,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel qword 0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel qword 0xbbbbbbbb]
-	mov bl,[a32 rel qword 0xbbbbbbbb]
-	mov ax,[a32 rel qword 0xbbbbbbbb]
-	mov bx,[a32 rel qword 0xbbbbbbbb]
-	mov eax,[a32 rel qword 0xbbbbbbbb]
-	mov ebx,[a32 rel qword 0xbbbbbbbb]
-	mov rax,[a32 rel qword 0xbbbbbbbb]
-	mov rbx,[a32 rel qword 0xbbbbbbbb]
-	mov al,[a32 rel qword 0xffffffffcccccccc]
-	mov bl,[a32 rel qword 0xffffffffcccccccc]
-	mov ax,[a32 rel qword 0xffffffffcccccccc]
-	mov bx,[a32 rel qword 0xffffffffcccccccc]
-	mov eax,[a32 rel qword 0xffffffffcccccccc]
-	mov ebx,[a32 rel qword 0xffffffffcccccccc]
-	mov rax,[a32 rel qword 0xffffffffcccccccc]
-	mov rbx,[a32 rel qword 0xffffffffcccccccc]
-
-	mov al,[fs:foo]
-	mov bl,[fs:foo]
-	mov ax,[fs:foo]
-	mov bx,[fs:foo]
-	mov eax,[fs:foo]
-	mov ebx,[fs:foo]
-	mov rax,[fs:foo]
-	mov rbx,[fs:foo]
-	mov al,[fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[fs:0xbbbbbbbb]
-	mov bl,[fs:0xbbbbbbbb]
-	mov ax,[fs:0xbbbbbbbb]
-	mov bx,[fs:0xbbbbbbbb]
-	mov eax,[fs:0xbbbbbbbb]
-	mov ebx,[fs:0xbbbbbbbb]
-	mov rax,[fs:0xbbbbbbbb]
-	mov rbx,[fs:0xbbbbbbbb]
-	mov al,[fs:0xffffffffcccccccc]
-	mov bl,[fs:0xffffffffcccccccc]
-	mov ax,[fs:0xffffffffcccccccc]
-	mov bx,[fs:0xffffffffcccccccc]
-	mov eax,[fs:0xffffffffcccccccc]
-	mov ebx,[fs:0xffffffffcccccccc]
-	mov rax,[fs:0xffffffffcccccccc]
-	mov rbx,[fs:0xffffffffcccccccc]
-
-	mov al,[dword fs:foo]
-	mov bl,[dword fs:foo]
-	mov ax,[dword fs:foo]
-	mov bx,[dword fs:foo]
-	mov eax,[dword fs:foo]
-	mov ebx,[dword fs:foo]
-	mov rax,[dword fs:foo]
-	mov rbx,[dword fs:foo]
-	mov al,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[dword fs:0xbbbbbbbb]
-	mov bl,[dword fs:0xbbbbbbbb]
-	mov ax,[dword fs:0xbbbbbbbb]
-	mov bx,[dword fs:0xbbbbbbbb]
-	mov eax,[dword fs:0xbbbbbbbb]
-	mov ebx,[dword fs:0xbbbbbbbb]
-	mov rax,[dword fs:0xbbbbbbbb]
-	mov rbx,[dword fs:0xbbbbbbbb]
-	mov al,[dword fs:0xffffffffcccccccc]
-	mov bl,[dword fs:0xffffffffcccccccc]
-	mov ax,[dword fs:0xffffffffcccccccc]
-	mov bx,[dword fs:0xffffffffcccccccc]
-	mov eax,[dword fs:0xffffffffcccccccc]
-	mov ebx,[dword fs:0xffffffffcccccccc]
-	mov rax,[dword fs:0xffffffffcccccccc]
-	mov rbx,[dword fs:0xffffffffcccccccc]
-
-	mov al,[qword fs:foo]
-	mov bl,[qword fs:foo]
-	mov ax,[qword fs:foo]
-	mov bx,[qword fs:foo]
-	mov eax,[qword fs:foo]
-	mov ebx,[qword fs:foo]
-	mov rax,[qword fs:foo]
-	mov rbx,[qword fs:foo]
-	mov al,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[qword fs:0xbbbbbbbb]
-	mov bl,[qword fs:0xbbbbbbbb]
-	mov ax,[qword fs:0xbbbbbbbb]
-	mov bx,[qword fs:0xbbbbbbbb]
-	mov eax,[qword fs:0xbbbbbbbb]
-	mov ebx,[qword fs:0xbbbbbbbb]
-	mov rax,[qword fs:0xbbbbbbbb]
-	mov rbx,[qword fs:0xbbbbbbbb]
-	mov al,[qword fs:0xffffffffcccccccc]
-	mov bl,[qword fs:0xffffffffcccccccc]
-	mov ax,[qword fs:0xffffffffcccccccc]
-	mov bx,[qword fs:0xffffffffcccccccc]
-	mov eax,[qword fs:0xffffffffcccccccc]
-	mov ebx,[qword fs:0xffffffffcccccccc]
-	mov rax,[qword fs:0xffffffffcccccccc]
-	mov rbx,[qword fs:0xffffffffcccccccc]
-
-	mov al,[a64 fs:foo]
-	mov bl,[a64 fs:foo]
-	mov ax,[a64 fs:foo]
-	mov bx,[a64 fs:foo]
-	mov eax,[a64 fs:foo]
-	mov ebx,[a64 fs:foo]
-	mov rax,[a64 fs:foo]
-	mov rbx,[a64 fs:foo]
-	mov al,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 fs:0xbbbbbbbb]
-	mov bl,[a64 fs:0xbbbbbbbb]
-	mov ax,[a64 fs:0xbbbbbbbb]
-	mov bx,[a64 fs:0xbbbbbbbb]
-	mov eax,[a64 fs:0xbbbbbbbb]
-	mov ebx,[a64 fs:0xbbbbbbbb]
-	mov rax,[a64 fs:0xbbbbbbbb]
-	mov rbx,[a64 fs:0xbbbbbbbb]
-	mov al,[a64 fs:0xffffffffcccccccc]
-	mov bl,[a64 fs:0xffffffffcccccccc]
-	mov ax,[a64 fs:0xffffffffcccccccc]
-	mov bx,[a64 fs:0xffffffffcccccccc]
-	mov eax,[a64 fs:0xffffffffcccccccc]
-	mov ebx,[a64 fs:0xffffffffcccccccc]
-	mov rax,[a64 fs:0xffffffffcccccccc]
-	mov rbx,[a64 fs:0xffffffffcccccccc]
-
-	mov al,[a64 dword fs:foo]
-	mov bl,[a64 dword fs:foo]
-	mov ax,[a64 dword fs:foo]
-	mov bx,[a64 dword fs:foo]
-	mov eax,[a64 dword fs:foo]
-	mov ebx,[a64 dword fs:foo]
-	mov rax,[a64 dword fs:foo]
-	mov rbx,[a64 dword fs:foo]
-	mov al,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 dword fs:0xbbbbbbbb]
-	mov bl,[a64 dword fs:0xbbbbbbbb]
-	mov ax,[a64 dword fs:0xbbbbbbbb]
-	mov bx,[a64 dword fs:0xbbbbbbbb]
-	mov eax,[a64 dword fs:0xbbbbbbbb]
-	mov ebx,[a64 dword fs:0xbbbbbbbb]
-	mov rax,[a64 dword fs:0xbbbbbbbb]
-	mov rbx,[a64 dword fs:0xbbbbbbbb]
-	mov al,[a64 dword fs:0xffffffffcccccccc]
-	mov bl,[a64 dword fs:0xffffffffcccccccc]
-	mov ax,[a64 dword fs:0xffffffffcccccccc]
-	mov bx,[a64 dword fs:0xffffffffcccccccc]
-	mov eax,[a64 dword fs:0xffffffffcccccccc]
-	mov ebx,[a64 dword fs:0xffffffffcccccccc]
-	mov rax,[a64 dword fs:0xffffffffcccccccc]
-	mov rbx,[a64 dword fs:0xffffffffcccccccc]
-
-	mov al,[a64 qword fs:foo]
-	mov bl,[a64 qword fs:foo]
-	mov ax,[a64 qword fs:foo]
-	mov bx,[a64 qword fs:foo]
-	mov eax,[a64 qword fs:foo]
-	mov ebx,[a64 qword fs:foo]
-	mov rax,[a64 qword fs:foo]
-	mov rbx,[a64 qword fs:foo]
-	mov al,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 qword fs:0xbbbbbbbb]
-	mov bl,[a64 qword fs:0xbbbbbbbb]
-	mov ax,[a64 qword fs:0xbbbbbbbb]
-	mov bx,[a64 qword fs:0xbbbbbbbb]
-	mov eax,[a64 qword fs:0xbbbbbbbb]
-	mov ebx,[a64 qword fs:0xbbbbbbbb]
-	mov rax,[a64 qword fs:0xbbbbbbbb]
-	mov rbx,[a64 qword fs:0xbbbbbbbb]
-	mov al,[a64 qword fs:0xffffffffcccccccc]
-	mov bl,[a64 qword fs:0xffffffffcccccccc]
-	mov ax,[a64 qword fs:0xffffffffcccccccc]
-	mov bx,[a64 qword fs:0xffffffffcccccccc]
-	mov eax,[a64 qword fs:0xffffffffcccccccc]
-	mov ebx,[a64 qword fs:0xffffffffcccccccc]
-	mov rax,[a64 qword fs:0xffffffffcccccccc]
-	mov rbx,[a64 qword fs:0xffffffffcccccccc]
-
-	mov al,[a32 fs:foo]
-	mov bl,[a32 fs:foo]
-	mov ax,[a32 fs:foo]
-	mov bx,[a32 fs:foo]
-	mov eax,[a32 fs:foo]
-	mov ebx,[a32 fs:foo]
-	mov rax,[a32 fs:foo]
-	mov rbx,[a32 fs:foo]
-	mov al,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 fs:0xbbbbbbbb]
-	mov bl,[a32 fs:0xbbbbbbbb]
-	mov ax,[a32 fs:0xbbbbbbbb]
-	mov bx,[a32 fs:0xbbbbbbbb]
-	mov eax,[a32 fs:0xbbbbbbbb]
-	mov ebx,[a32 fs:0xbbbbbbbb]
-	mov rax,[a32 fs:0xbbbbbbbb]
-	mov rbx,[a32 fs:0xbbbbbbbb]
-	mov al,[a32 fs:0xffffffffcccccccc]
-	mov bl,[a32 fs:0xffffffffcccccccc]
-	mov ax,[a32 fs:0xffffffffcccccccc]
-	mov bx,[a32 fs:0xffffffffcccccccc]
-	mov eax,[a32 fs:0xffffffffcccccccc]
-	mov ebx,[a32 fs:0xffffffffcccccccc]
-	mov rax,[a32 fs:0xffffffffcccccccc]
-	mov rbx,[a32 fs:0xffffffffcccccccc]
-
-	mov al,[a32 dword fs:foo]
-	mov bl,[a32 dword fs:foo]
-	mov ax,[a32 dword fs:foo]
-	mov bx,[a32 dword fs:foo]
-	mov eax,[a32 dword fs:foo]
-	mov ebx,[a32 dword fs:foo]
-	mov rax,[a32 dword fs:foo]
-	mov rbx,[a32 dword fs:foo]
-	mov al,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 dword fs:0xbbbbbbbb]
-	mov bl,[a32 dword fs:0xbbbbbbbb]
-	mov ax,[a32 dword fs:0xbbbbbbbb]
-	mov bx,[a32 dword fs:0xbbbbbbbb]
-	mov eax,[a32 dword fs:0xbbbbbbbb]
-	mov ebx,[a32 dword fs:0xbbbbbbbb]
-	mov rax,[a32 dword fs:0xbbbbbbbb]
-	mov rbx,[a32 dword fs:0xbbbbbbbb]
-	mov al,[a32 dword fs:0xffffffffcccccccc]
-	mov bl,[a32 dword fs:0xffffffffcccccccc]
-	mov ax,[a32 dword fs:0xffffffffcccccccc]
-	mov bx,[a32 dword fs:0xffffffffcccccccc]
-	mov eax,[a32 dword fs:0xffffffffcccccccc]
-	mov ebx,[a32 dword fs:0xffffffffcccccccc]
-	mov rax,[a32 dword fs:0xffffffffcccccccc]
-	mov rbx,[a32 dword fs:0xffffffffcccccccc]
-
-	mov al,[a32 qword fs:foo]
-	mov bl,[a32 qword fs:foo]
-	mov ax,[a32 qword fs:foo]
-	mov bx,[a32 qword fs:foo]
-	mov eax,[a32 qword fs:foo]
-	mov ebx,[a32 qword fs:foo]
-	mov rax,[a32 qword fs:foo]
-	mov rbx,[a32 qword fs:foo]
-	mov al,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 qword fs:0xbbbbbbbb]
-	mov bl,[a32 qword fs:0xbbbbbbbb]
-	mov ax,[a32 qword fs:0xbbbbbbbb]
-	mov bx,[a32 qword fs:0xbbbbbbbb]
-	mov eax,[a32 qword fs:0xbbbbbbbb]
-	mov ebx,[a32 qword fs:0xbbbbbbbb]
-	mov rax,[a32 qword fs:0xbbbbbbbb]
-	mov rbx,[a32 qword fs:0xbbbbbbbb]
-	mov al,[a32 qword fs:0xffffffffcccccccc]
-	mov bl,[a32 qword fs:0xffffffffcccccccc]
-	mov ax,[a32 qword fs:0xffffffffcccccccc]
-	mov bx,[a32 qword fs:0xffffffffcccccccc]
-	mov eax,[a32 qword fs:0xffffffffcccccccc]
-	mov ebx,[a32 qword fs:0xffffffffcccccccc]
-	mov rax,[a32 qword fs:0xffffffffcccccccc]
-	mov rbx,[a32 qword fs:0xffffffffcccccccc]
-
-	mov al,[abs fs:foo]
-	mov bl,[abs fs:foo]
-	mov ax,[abs fs:foo]
-	mov bx,[abs fs:foo]
-	mov eax,[abs fs:foo]
-	mov ebx,[abs fs:foo]
-	mov rax,[abs fs:foo]
-	mov rbx,[abs fs:foo]
-	mov al,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[abs fs:0xbbbbbbbb]
-	mov bl,[abs fs:0xbbbbbbbb]
-	mov ax,[abs fs:0xbbbbbbbb]
-	mov bx,[abs fs:0xbbbbbbbb]
-	mov eax,[abs fs:0xbbbbbbbb]
-	mov ebx,[abs fs:0xbbbbbbbb]
-	mov rax,[abs fs:0xbbbbbbbb]
-	mov rbx,[abs fs:0xbbbbbbbb]
-	mov al,[abs fs:0xffffffffcccccccc]
-	mov bl,[abs fs:0xffffffffcccccccc]
-	mov ax,[abs fs:0xffffffffcccccccc]
-	mov bx,[abs fs:0xffffffffcccccccc]
-	mov eax,[abs fs:0xffffffffcccccccc]
-	mov ebx,[abs fs:0xffffffffcccccccc]
-	mov rax,[abs fs:0xffffffffcccccccc]
-	mov rbx,[abs fs:0xffffffffcccccccc]
-
-	mov al,[abs dword fs:foo]
-	mov bl,[abs dword fs:foo]
-	mov ax,[abs dword fs:foo]
-	mov bx,[abs dword fs:foo]
-	mov eax,[abs dword fs:foo]
-	mov ebx,[abs dword fs:foo]
-	mov rax,[abs dword fs:foo]
-	mov rbx,[abs dword fs:foo]
-	mov al,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[abs dword fs:0xbbbbbbbb]
-	mov bl,[abs dword fs:0xbbbbbbbb]
-	mov ax,[abs dword fs:0xbbbbbbbb]
-	mov bx,[abs dword fs:0xbbbbbbbb]
-	mov eax,[abs dword fs:0xbbbbbbbb]
-	mov ebx,[abs dword fs:0xbbbbbbbb]
-	mov rax,[abs dword fs:0xbbbbbbbb]
-	mov rbx,[abs dword fs:0xbbbbbbbb]
-	mov al,[abs dword fs:0xffffffffcccccccc]
-	mov bl,[abs dword fs:0xffffffffcccccccc]
-	mov ax,[abs dword fs:0xffffffffcccccccc]
-	mov bx,[abs dword fs:0xffffffffcccccccc]
-	mov eax,[abs dword fs:0xffffffffcccccccc]
-	mov ebx,[abs dword fs:0xffffffffcccccccc]
-	mov rax,[abs dword fs:0xffffffffcccccccc]
-	mov rbx,[abs dword fs:0xffffffffcccccccc]
-
-	mov al,[abs qword fs:foo]
-	mov bl,[abs qword fs:foo]
-	mov ax,[abs qword fs:foo]
-	mov bx,[abs qword fs:foo]
-	mov eax,[abs qword fs:foo]
-	mov ebx,[abs qword fs:foo]
-	mov rax,[abs qword fs:foo]
-	mov rbx,[abs qword fs:foo]
-	mov al,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[abs qword fs:0xbbbbbbbb]
-	mov bl,[abs qword fs:0xbbbbbbbb]
-	mov ax,[abs qword fs:0xbbbbbbbb]
-	mov bx,[abs qword fs:0xbbbbbbbb]
-	mov eax,[abs qword fs:0xbbbbbbbb]
-	mov ebx,[abs qword fs:0xbbbbbbbb]
-	mov rax,[abs qword fs:0xbbbbbbbb]
-	mov rbx,[abs qword fs:0xbbbbbbbb]
-	mov al,[abs qword fs:0xffffffffcccccccc]
-	mov bl,[abs qword fs:0xffffffffcccccccc]
-	mov ax,[abs qword fs:0xffffffffcccccccc]
-	mov bx,[abs qword fs:0xffffffffcccccccc]
-	mov eax,[abs qword fs:0xffffffffcccccccc]
-	mov ebx,[abs qword fs:0xffffffffcccccccc]
-	mov rax,[abs qword fs:0xffffffffcccccccc]
-	mov rbx,[abs qword fs:0xffffffffcccccccc]
-
-	mov al,[a64 abs fs:foo]
-	mov bl,[a64 abs fs:foo]
-	mov ax,[a64 abs fs:foo]
-	mov bx,[a64 abs fs:foo]
-	mov eax,[a64 abs fs:foo]
-	mov ebx,[a64 abs fs:foo]
-	mov rax,[a64 abs fs:foo]
-	mov rbx,[a64 abs fs:foo]
-	mov al,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs fs:0xbbbbbbbb]
-	mov bl,[a64 abs fs:0xbbbbbbbb]
-	mov ax,[a64 abs fs:0xbbbbbbbb]
-	mov bx,[a64 abs fs:0xbbbbbbbb]
-	mov eax,[a64 abs fs:0xbbbbbbbb]
-	mov ebx,[a64 abs fs:0xbbbbbbbb]
-	mov rax,[a64 abs fs:0xbbbbbbbb]
-	mov rbx,[a64 abs fs:0xbbbbbbbb]
-	mov al,[a64 abs fs:0xffffffffcccccccc]
-	mov bl,[a64 abs fs:0xffffffffcccccccc]
-	mov ax,[a64 abs fs:0xffffffffcccccccc]
-	mov bx,[a64 abs fs:0xffffffffcccccccc]
-	mov eax,[a64 abs fs:0xffffffffcccccccc]
-	mov ebx,[a64 abs fs:0xffffffffcccccccc]
-	mov rax,[a64 abs fs:0xffffffffcccccccc]
-	mov rbx,[a64 abs fs:0xffffffffcccccccc]
-
-	mov al,[a64 abs dword fs:foo]
-	mov bl,[a64 abs dword fs:foo]
-	mov ax,[a64 abs dword fs:foo]
-	mov bx,[a64 abs dword fs:foo]
-	mov eax,[a64 abs dword fs:foo]
-	mov ebx,[a64 abs dword fs:foo]
-	mov rax,[a64 abs dword fs:foo]
-	mov rbx,[a64 abs dword fs:foo]
-	mov al,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs dword fs:0xbbbbbbbb]
-	mov bl,[a64 abs dword fs:0xbbbbbbbb]
-	mov ax,[a64 abs dword fs:0xbbbbbbbb]
-	mov bx,[a64 abs dword fs:0xbbbbbbbb]
-	mov eax,[a64 abs dword fs:0xbbbbbbbb]
-	mov ebx,[a64 abs dword fs:0xbbbbbbbb]
-	mov rax,[a64 abs dword fs:0xbbbbbbbb]
-	mov rbx,[a64 abs dword fs:0xbbbbbbbb]
-	mov al,[a64 abs dword fs:0xffffffffcccccccc]
-	mov bl,[a64 abs dword fs:0xffffffffcccccccc]
-	mov ax,[a64 abs dword fs:0xffffffffcccccccc]
-	mov bx,[a64 abs dword fs:0xffffffffcccccccc]
-	mov eax,[a64 abs dword fs:0xffffffffcccccccc]
-	mov ebx,[a64 abs dword fs:0xffffffffcccccccc]
-	mov rax,[a64 abs dword fs:0xffffffffcccccccc]
-	mov rbx,[a64 abs dword fs:0xffffffffcccccccc]
-
-	mov al,[a64 abs qword fs:foo]
-	mov bl,[a64 abs qword fs:foo]
-	mov ax,[a64 abs qword fs:foo]
-	mov bx,[a64 abs qword fs:foo]
-	mov eax,[a64 abs qword fs:foo]
-	mov ebx,[a64 abs qword fs:foo]
-	mov rax,[a64 abs qword fs:foo]
-	mov rbx,[a64 abs qword fs:foo]
-	mov al,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs qword fs:0xbbbbbbbb]
-	mov bl,[a64 abs qword fs:0xbbbbbbbb]
-	mov ax,[a64 abs qword fs:0xbbbbbbbb]
-	mov bx,[a64 abs qword fs:0xbbbbbbbb]
-	mov eax,[a64 abs qword fs:0xbbbbbbbb]
-	mov ebx,[a64 abs qword fs:0xbbbbbbbb]
-	mov rax,[a64 abs qword fs:0xbbbbbbbb]
-	mov rbx,[a64 abs qword fs:0xbbbbbbbb]
-	mov al,[a64 abs qword fs:0xffffffffcccccccc]
-	mov bl,[a64 abs qword fs:0xffffffffcccccccc]
-	mov ax,[a64 abs qword fs:0xffffffffcccccccc]
-	mov bx,[a64 abs qword fs:0xffffffffcccccccc]
-	mov eax,[a64 abs qword fs:0xffffffffcccccccc]
-	mov ebx,[a64 abs qword fs:0xffffffffcccccccc]
-	mov rax,[a64 abs qword fs:0xffffffffcccccccc]
-	mov rbx,[a64 abs qword fs:0xffffffffcccccccc]
-
-	mov al,[a32 abs fs:foo]
-	mov bl,[a32 abs fs:foo]
-	mov ax,[a32 abs fs:foo]
-	mov bx,[a32 abs fs:foo]
-	mov eax,[a32 abs fs:foo]
-	mov ebx,[a32 abs fs:foo]
-	mov rax,[a32 abs fs:foo]
-	mov rbx,[a32 abs fs:foo]
-	mov al,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs fs:0xbbbbbbbb]
-	mov bl,[a32 abs fs:0xbbbbbbbb]
-	mov ax,[a32 abs fs:0xbbbbbbbb]
-	mov bx,[a32 abs fs:0xbbbbbbbb]
-	mov eax,[a32 abs fs:0xbbbbbbbb]
-	mov ebx,[a32 abs fs:0xbbbbbbbb]
-	mov rax,[a32 abs fs:0xbbbbbbbb]
-	mov rbx,[a32 abs fs:0xbbbbbbbb]
-	mov al,[a32 abs fs:0xffffffffcccccccc]
-	mov bl,[a32 abs fs:0xffffffffcccccccc]
-	mov ax,[a32 abs fs:0xffffffffcccccccc]
-	mov bx,[a32 abs fs:0xffffffffcccccccc]
-	mov eax,[a32 abs fs:0xffffffffcccccccc]
-	mov ebx,[a32 abs fs:0xffffffffcccccccc]
-	mov rax,[a32 abs fs:0xffffffffcccccccc]
-	mov rbx,[a32 abs fs:0xffffffffcccccccc]
-
-	mov al,[a32 abs dword fs:foo]
-	mov bl,[a32 abs dword fs:foo]
-	mov ax,[a32 abs dword fs:foo]
-	mov bx,[a32 abs dword fs:foo]
-	mov eax,[a32 abs dword fs:foo]
-	mov ebx,[a32 abs dword fs:foo]
-	mov rax,[a32 abs dword fs:foo]
-	mov rbx,[a32 abs dword fs:foo]
-	mov al,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs dword fs:0xbbbbbbbb]
-	mov bl,[a32 abs dword fs:0xbbbbbbbb]
-	mov ax,[a32 abs dword fs:0xbbbbbbbb]
-	mov bx,[a32 abs dword fs:0xbbbbbbbb]
-	mov eax,[a32 abs dword fs:0xbbbbbbbb]
-	mov ebx,[a32 abs dword fs:0xbbbbbbbb]
-	mov rax,[a32 abs dword fs:0xbbbbbbbb]
-	mov rbx,[a32 abs dword fs:0xbbbbbbbb]
-	mov al,[a32 abs dword fs:0xffffffffcccccccc]
-	mov bl,[a32 abs dword fs:0xffffffffcccccccc]
-	mov ax,[a32 abs dword fs:0xffffffffcccccccc]
-	mov bx,[a32 abs dword fs:0xffffffffcccccccc]
-	mov eax,[a32 abs dword fs:0xffffffffcccccccc]
-	mov ebx,[a32 abs dword fs:0xffffffffcccccccc]
-	mov rax,[a32 abs dword fs:0xffffffffcccccccc]
-	mov rbx,[a32 abs dword fs:0xffffffffcccccccc]
-
-	mov al,[a32 abs qword fs:foo]
-	mov bl,[a32 abs qword fs:foo]
-	mov ax,[a32 abs qword fs:foo]
-	mov bx,[a32 abs qword fs:foo]
-	mov eax,[a32 abs qword fs:foo]
-	mov ebx,[a32 abs qword fs:foo]
-	mov rax,[a32 abs qword fs:foo]
-	mov rbx,[a32 abs qword fs:foo]
-	mov al,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs qword fs:0xbbbbbbbb]
-	mov bl,[a32 abs qword fs:0xbbbbbbbb]
-	mov ax,[a32 abs qword fs:0xbbbbbbbb]
-	mov bx,[a32 abs qword fs:0xbbbbbbbb]
-	mov eax,[a32 abs qword fs:0xbbbbbbbb]
-	mov ebx,[a32 abs qword fs:0xbbbbbbbb]
-	mov rax,[a32 abs qword fs:0xbbbbbbbb]
-	mov rbx,[a32 abs qword fs:0xbbbbbbbb]
-	mov al,[a32 abs qword fs:0xffffffffcccccccc]
-	mov bl,[a32 abs qword fs:0xffffffffcccccccc]
-	mov ax,[a32 abs qword fs:0xffffffffcccccccc]
-	mov bx,[a32 abs qword fs:0xffffffffcccccccc]
-	mov eax,[a32 abs qword fs:0xffffffffcccccccc]
-	mov ebx,[a32 abs qword fs:0xffffffffcccccccc]
-	mov rax,[a32 abs qword fs:0xffffffffcccccccc]
-	mov rbx,[a32 abs qword fs:0xffffffffcccccccc]
-
-	mov al,[rel fs:foo]
-	mov bl,[rel fs:foo]
-	mov ax,[rel fs:foo]
-	mov bx,[rel fs:foo]
-	mov eax,[rel fs:foo]
-	mov ebx,[rel fs:foo]
-	mov rax,[rel fs:foo]
-	mov rbx,[rel fs:foo]
-	mov al,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[rel fs:0xbbbbbbbb]
-	mov bl,[rel fs:0xbbbbbbbb]
-	mov ax,[rel fs:0xbbbbbbbb]
-	mov bx,[rel fs:0xbbbbbbbb]
-	mov eax,[rel fs:0xbbbbbbbb]
-	mov ebx,[rel fs:0xbbbbbbbb]
-	mov rax,[rel fs:0xbbbbbbbb]
-	mov rbx,[rel fs:0xbbbbbbbb]
-	mov al,[rel fs:0xffffffffcccccccc]
-	mov bl,[rel fs:0xffffffffcccccccc]
-	mov ax,[rel fs:0xffffffffcccccccc]
-	mov bx,[rel fs:0xffffffffcccccccc]
-	mov eax,[rel fs:0xffffffffcccccccc]
-	mov ebx,[rel fs:0xffffffffcccccccc]
-	mov rax,[rel fs:0xffffffffcccccccc]
-	mov rbx,[rel fs:0xffffffffcccccccc]
-
-	mov al,[rel dword fs:foo]
-	mov bl,[rel dword fs:foo]
-	mov ax,[rel dword fs:foo]
-	mov bx,[rel dword fs:foo]
-	mov eax,[rel dword fs:foo]
-	mov ebx,[rel dword fs:foo]
-	mov rax,[rel dword fs:foo]
-	mov rbx,[rel dword fs:foo]
-	mov al,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[rel dword fs:0xbbbbbbbb]
-	mov bl,[rel dword fs:0xbbbbbbbb]
-	mov ax,[rel dword fs:0xbbbbbbbb]
-	mov bx,[rel dword fs:0xbbbbbbbb]
-	mov eax,[rel dword fs:0xbbbbbbbb]
-	mov ebx,[rel dword fs:0xbbbbbbbb]
-	mov rax,[rel dword fs:0xbbbbbbbb]
-	mov rbx,[rel dword fs:0xbbbbbbbb]
-	mov al,[rel dword fs:0xffffffffcccccccc]
-	mov bl,[rel dword fs:0xffffffffcccccccc]
-	mov ax,[rel dword fs:0xffffffffcccccccc]
-	mov bx,[rel dword fs:0xffffffffcccccccc]
-	mov eax,[rel dword fs:0xffffffffcccccccc]
-	mov ebx,[rel dword fs:0xffffffffcccccccc]
-	mov rax,[rel dword fs:0xffffffffcccccccc]
-	mov rbx,[rel dword fs:0xffffffffcccccccc]
-
-	mov al,[rel qword fs:foo]
-	mov bl,[rel qword fs:foo]
-	mov ax,[rel qword fs:foo]
-	mov bx,[rel qword fs:foo]
-	mov eax,[rel qword fs:foo]
-	mov ebx,[rel qword fs:foo]
-	mov rax,[rel qword fs:foo]
-	mov rbx,[rel qword fs:foo]
-	mov al,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[rel qword fs:0xbbbbbbbb]
-	mov bl,[rel qword fs:0xbbbbbbbb]
-	mov ax,[rel qword fs:0xbbbbbbbb]
-	mov bx,[rel qword fs:0xbbbbbbbb]
-	mov eax,[rel qword fs:0xbbbbbbbb]
-	mov ebx,[rel qword fs:0xbbbbbbbb]
-	mov rax,[rel qword fs:0xbbbbbbbb]
-	mov rbx,[rel qword fs:0xbbbbbbbb]
-	mov al,[rel qword fs:0xffffffffcccccccc]
-	mov bl,[rel qword fs:0xffffffffcccccccc]
-	mov ax,[rel qword fs:0xffffffffcccccccc]
-	mov bx,[rel qword fs:0xffffffffcccccccc]
-	mov eax,[rel qword fs:0xffffffffcccccccc]
-	mov ebx,[rel qword fs:0xffffffffcccccccc]
-	mov rax,[rel qword fs:0xffffffffcccccccc]
-	mov rbx,[rel qword fs:0xffffffffcccccccc]
-
-	mov al,[a64 rel fs:foo]
-	mov bl,[a64 rel fs:foo]
-	mov ax,[a64 rel fs:foo]
-	mov bx,[a64 rel fs:foo]
-	mov eax,[a64 rel fs:foo]
-	mov ebx,[a64 rel fs:foo]
-	mov rax,[a64 rel fs:foo]
-	mov rbx,[a64 rel fs:foo]
-	mov al,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel fs:0xbbbbbbbb]
-	mov bl,[a64 rel fs:0xbbbbbbbb]
-	mov ax,[a64 rel fs:0xbbbbbbbb]
-	mov bx,[a64 rel fs:0xbbbbbbbb]
-	mov eax,[a64 rel fs:0xbbbbbbbb]
-	mov ebx,[a64 rel fs:0xbbbbbbbb]
-	mov rax,[a64 rel fs:0xbbbbbbbb]
-	mov rbx,[a64 rel fs:0xbbbbbbbb]
-	mov al,[a64 rel fs:0xffffffffcccccccc]
-	mov bl,[a64 rel fs:0xffffffffcccccccc]
-	mov ax,[a64 rel fs:0xffffffffcccccccc]
-	mov bx,[a64 rel fs:0xffffffffcccccccc]
-	mov eax,[a64 rel fs:0xffffffffcccccccc]
-	mov ebx,[a64 rel fs:0xffffffffcccccccc]
-	mov rax,[a64 rel fs:0xffffffffcccccccc]
-	mov rbx,[a64 rel fs:0xffffffffcccccccc]
-
-	mov al,[a64 rel dword fs:foo]
-	mov bl,[a64 rel dword fs:foo]
-	mov ax,[a64 rel dword fs:foo]
-	mov bx,[a64 rel dword fs:foo]
-	mov eax,[a64 rel dword fs:foo]
-	mov ebx,[a64 rel dword fs:foo]
-	mov rax,[a64 rel dword fs:foo]
-	mov rbx,[a64 rel dword fs:foo]
-	mov al,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel dword fs:0xbbbbbbbb]
-	mov bl,[a64 rel dword fs:0xbbbbbbbb]
-	mov ax,[a64 rel dword fs:0xbbbbbbbb]
-	mov bx,[a64 rel dword fs:0xbbbbbbbb]
-	mov eax,[a64 rel dword fs:0xbbbbbbbb]
-	mov ebx,[a64 rel dword fs:0xbbbbbbbb]
-	mov rax,[a64 rel dword fs:0xbbbbbbbb]
-	mov rbx,[a64 rel dword fs:0xbbbbbbbb]
-	mov al,[a64 rel dword fs:0xffffffffcccccccc]
-	mov bl,[a64 rel dword fs:0xffffffffcccccccc]
-	mov ax,[a64 rel dword fs:0xffffffffcccccccc]
-	mov bx,[a64 rel dword fs:0xffffffffcccccccc]
-	mov eax,[a64 rel dword fs:0xffffffffcccccccc]
-	mov ebx,[a64 rel dword fs:0xffffffffcccccccc]
-	mov rax,[a64 rel dword fs:0xffffffffcccccccc]
-	mov rbx,[a64 rel dword fs:0xffffffffcccccccc]
-
-	mov al,[a64 rel qword fs:foo]
-	mov bl,[a64 rel qword fs:foo]
-	mov ax,[a64 rel qword fs:foo]
-	mov bx,[a64 rel qword fs:foo]
-	mov eax,[a64 rel qword fs:foo]
-	mov ebx,[a64 rel qword fs:foo]
-	mov rax,[a64 rel qword fs:foo]
-	mov rbx,[a64 rel qword fs:foo]
-	mov al,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel qword fs:0xbbbbbbbb]
-	mov bl,[a64 rel qword fs:0xbbbbbbbb]
-	mov ax,[a64 rel qword fs:0xbbbbbbbb]
-	mov bx,[a64 rel qword fs:0xbbbbbbbb]
-	mov eax,[a64 rel qword fs:0xbbbbbbbb]
-	mov ebx,[a64 rel qword fs:0xbbbbbbbb]
-	mov rax,[a64 rel qword fs:0xbbbbbbbb]
-	mov rbx,[a64 rel qword fs:0xbbbbbbbb]
-	mov al,[a64 rel qword fs:0xffffffffcccccccc]
-	mov bl,[a64 rel qword fs:0xffffffffcccccccc]
-	mov ax,[a64 rel qword fs:0xffffffffcccccccc]
-	mov bx,[a64 rel qword fs:0xffffffffcccccccc]
-	mov eax,[a64 rel qword fs:0xffffffffcccccccc]
-	mov ebx,[a64 rel qword fs:0xffffffffcccccccc]
-	mov rax,[a64 rel qword fs:0xffffffffcccccccc]
-	mov rbx,[a64 rel qword fs:0xffffffffcccccccc]
-
-	mov al,[a32 rel fs:foo]
-	mov bl,[a32 rel fs:foo]
-	mov ax,[a32 rel fs:foo]
-	mov bx,[a32 rel fs:foo]
-	mov eax,[a32 rel fs:foo]
-	mov ebx,[a32 rel fs:foo]
-	mov rax,[a32 rel fs:foo]
-	mov rbx,[a32 rel fs:foo]
-	mov al,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel fs:0xbbbbbbbb]
-	mov bl,[a32 rel fs:0xbbbbbbbb]
-	mov ax,[a32 rel fs:0xbbbbbbbb]
-	mov bx,[a32 rel fs:0xbbbbbbbb]
-	mov eax,[a32 rel fs:0xbbbbbbbb]
-	mov ebx,[a32 rel fs:0xbbbbbbbb]
-	mov rax,[a32 rel fs:0xbbbbbbbb]
-	mov rbx,[a32 rel fs:0xbbbbbbbb]
-	mov al,[a32 rel fs:0xffffffffcccccccc]
-	mov bl,[a32 rel fs:0xffffffffcccccccc]
-	mov ax,[a32 rel fs:0xffffffffcccccccc]
-	mov bx,[a32 rel fs:0xffffffffcccccccc]
-	mov eax,[a32 rel fs:0xffffffffcccccccc]
-	mov ebx,[a32 rel fs:0xffffffffcccccccc]
-	mov rax,[a32 rel fs:0xffffffffcccccccc]
-	mov rbx,[a32 rel fs:0xffffffffcccccccc]
-
-	mov al,[a32 rel dword fs:foo]
-	mov bl,[a32 rel dword fs:foo]
-	mov ax,[a32 rel dword fs:foo]
-	mov bx,[a32 rel dword fs:foo]
-	mov eax,[a32 rel dword fs:foo]
-	mov ebx,[a32 rel dword fs:foo]
-	mov rax,[a32 rel dword fs:foo]
-	mov rbx,[a32 rel dword fs:foo]
-	mov al,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel dword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel dword fs:0xbbbbbbbb]
-	mov bl,[a32 rel dword fs:0xbbbbbbbb]
-	mov ax,[a32 rel dword fs:0xbbbbbbbb]
-	mov bx,[a32 rel dword fs:0xbbbbbbbb]
-	mov eax,[a32 rel dword fs:0xbbbbbbbb]
-	mov ebx,[a32 rel dword fs:0xbbbbbbbb]
-	mov rax,[a32 rel dword fs:0xbbbbbbbb]
-	mov rbx,[a32 rel dword fs:0xbbbbbbbb]
-	mov al,[a32 rel dword fs:0xffffffffcccccccc]
-	mov bl,[a32 rel dword fs:0xffffffffcccccccc]
-	mov ax,[a32 rel dword fs:0xffffffffcccccccc]
-	mov bx,[a32 rel dword fs:0xffffffffcccccccc]
-	mov eax,[a32 rel dword fs:0xffffffffcccccccc]
-	mov ebx,[a32 rel dword fs:0xffffffffcccccccc]
-	mov rax,[a32 rel dword fs:0xffffffffcccccccc]
-	mov rbx,[a32 rel dword fs:0xffffffffcccccccc]
-
-	mov al,[a32 rel qword fs:foo]
-	mov bl,[a32 rel qword fs:foo]
-	mov ax,[a32 rel qword fs:foo]
-	mov bx,[a32 rel qword fs:foo]
-	mov eax,[a32 rel qword fs:foo]
-	mov ebx,[a32 rel qword fs:foo]
-	mov rax,[a32 rel qword fs:foo]
-	mov rbx,[a32 rel qword fs:foo]
-	mov al,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel qword fs:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel qword fs:0xbbbbbbbb]
-	mov bl,[a32 rel qword fs:0xbbbbbbbb]
-	mov ax,[a32 rel qword fs:0xbbbbbbbb]
-	mov bx,[a32 rel qword fs:0xbbbbbbbb]
-	mov eax,[a32 rel qword fs:0xbbbbbbbb]
-	mov ebx,[a32 rel qword fs:0xbbbbbbbb]
-	mov rax,[a32 rel qword fs:0xbbbbbbbb]
-	mov rbx,[a32 rel qword fs:0xbbbbbbbb]
-	mov al,[a32 rel qword fs:0xffffffffcccccccc]
-	mov bl,[a32 rel qword fs:0xffffffffcccccccc]
-	mov ax,[a32 rel qword fs:0xffffffffcccccccc]
-	mov bx,[a32 rel qword fs:0xffffffffcccccccc]
-	mov eax,[a32 rel qword fs:0xffffffffcccccccc]
-	mov ebx,[a32 rel qword fs:0xffffffffcccccccc]
-	mov rax,[a32 rel qword fs:0xffffffffcccccccc]
-	mov rbx,[a32 rel qword fs:0xffffffffcccccccc]
-
-	mov al,[es:foo]
-	mov bl,[es:foo]
-	mov ax,[es:foo]
-	mov bx,[es:foo]
-	mov eax,[es:foo]
-	mov ebx,[es:foo]
-	mov rax,[es:foo]
-	mov rbx,[es:foo]
-	mov al,[es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[es:0xaaaaaaaaaaaaaaaa]
-	mov al,[es:0xbbbbbbbb]
-	mov bl,[es:0xbbbbbbbb]
-	mov ax,[es:0xbbbbbbbb]
-	mov bx,[es:0xbbbbbbbb]
-	mov eax,[es:0xbbbbbbbb]
-	mov ebx,[es:0xbbbbbbbb]
-	mov rax,[es:0xbbbbbbbb]
-	mov rbx,[es:0xbbbbbbbb]
-	mov al,[es:0xffffffffcccccccc]
-	mov bl,[es:0xffffffffcccccccc]
-	mov ax,[es:0xffffffffcccccccc]
-	mov bx,[es:0xffffffffcccccccc]
-	mov eax,[es:0xffffffffcccccccc]
-	mov ebx,[es:0xffffffffcccccccc]
-	mov rax,[es:0xffffffffcccccccc]
-	mov rbx,[es:0xffffffffcccccccc]
-
-	mov al,[dword es:foo]
-	mov bl,[dword es:foo]
-	mov ax,[dword es:foo]
-	mov bx,[dword es:foo]
-	mov eax,[dword es:foo]
-	mov ebx,[dword es:foo]
-	mov rax,[dword es:foo]
-	mov rbx,[dword es:foo]
-	mov al,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[dword es:0xbbbbbbbb]
-	mov bl,[dword es:0xbbbbbbbb]
-	mov ax,[dword es:0xbbbbbbbb]
-	mov bx,[dword es:0xbbbbbbbb]
-	mov eax,[dword es:0xbbbbbbbb]
-	mov ebx,[dword es:0xbbbbbbbb]
-	mov rax,[dword es:0xbbbbbbbb]
-	mov rbx,[dword es:0xbbbbbbbb]
-	mov al,[dword es:0xffffffffcccccccc]
-	mov bl,[dword es:0xffffffffcccccccc]
-	mov ax,[dword es:0xffffffffcccccccc]
-	mov bx,[dword es:0xffffffffcccccccc]
-	mov eax,[dword es:0xffffffffcccccccc]
-	mov ebx,[dword es:0xffffffffcccccccc]
-	mov rax,[dword es:0xffffffffcccccccc]
-	mov rbx,[dword es:0xffffffffcccccccc]
-
-	mov al,[qword es:foo]
-	mov bl,[qword es:foo]
-	mov ax,[qword es:foo]
-	mov bx,[qword es:foo]
-	mov eax,[qword es:foo]
-	mov ebx,[qword es:foo]
-	mov rax,[qword es:foo]
-	mov rbx,[qword es:foo]
-	mov al,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[qword es:0xbbbbbbbb]
-	mov bl,[qword es:0xbbbbbbbb]
-	mov ax,[qword es:0xbbbbbbbb]
-	mov bx,[qword es:0xbbbbbbbb]
-	mov eax,[qword es:0xbbbbbbbb]
-	mov ebx,[qword es:0xbbbbbbbb]
-	mov rax,[qword es:0xbbbbbbbb]
-	mov rbx,[qword es:0xbbbbbbbb]
-	mov al,[qword es:0xffffffffcccccccc]
-	mov bl,[qword es:0xffffffffcccccccc]
-	mov ax,[qword es:0xffffffffcccccccc]
-	mov bx,[qword es:0xffffffffcccccccc]
-	mov eax,[qword es:0xffffffffcccccccc]
-	mov ebx,[qword es:0xffffffffcccccccc]
-	mov rax,[qword es:0xffffffffcccccccc]
-	mov rbx,[qword es:0xffffffffcccccccc]
-
-	mov al,[a64 es:foo]
-	mov bl,[a64 es:foo]
-	mov ax,[a64 es:foo]
-	mov bx,[a64 es:foo]
-	mov eax,[a64 es:foo]
-	mov ebx,[a64 es:foo]
-	mov rax,[a64 es:foo]
-	mov rbx,[a64 es:foo]
-	mov al,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 es:0xbbbbbbbb]
-	mov bl,[a64 es:0xbbbbbbbb]
-	mov ax,[a64 es:0xbbbbbbbb]
-	mov bx,[a64 es:0xbbbbbbbb]
-	mov eax,[a64 es:0xbbbbbbbb]
-	mov ebx,[a64 es:0xbbbbbbbb]
-	mov rax,[a64 es:0xbbbbbbbb]
-	mov rbx,[a64 es:0xbbbbbbbb]
-	mov al,[a64 es:0xffffffffcccccccc]
-	mov bl,[a64 es:0xffffffffcccccccc]
-	mov ax,[a64 es:0xffffffffcccccccc]
-	mov bx,[a64 es:0xffffffffcccccccc]
-	mov eax,[a64 es:0xffffffffcccccccc]
-	mov ebx,[a64 es:0xffffffffcccccccc]
-	mov rax,[a64 es:0xffffffffcccccccc]
-	mov rbx,[a64 es:0xffffffffcccccccc]
-
-	mov al,[a64 dword es:foo]
-	mov bl,[a64 dword es:foo]
-	mov ax,[a64 dword es:foo]
-	mov bx,[a64 dword es:foo]
-	mov eax,[a64 dword es:foo]
-	mov ebx,[a64 dword es:foo]
-	mov rax,[a64 dword es:foo]
-	mov rbx,[a64 dword es:foo]
-	mov al,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 dword es:0xbbbbbbbb]
-	mov bl,[a64 dword es:0xbbbbbbbb]
-	mov ax,[a64 dword es:0xbbbbbbbb]
-	mov bx,[a64 dword es:0xbbbbbbbb]
-	mov eax,[a64 dword es:0xbbbbbbbb]
-	mov ebx,[a64 dword es:0xbbbbbbbb]
-	mov rax,[a64 dword es:0xbbbbbbbb]
-	mov rbx,[a64 dword es:0xbbbbbbbb]
-	mov al,[a64 dword es:0xffffffffcccccccc]
-	mov bl,[a64 dword es:0xffffffffcccccccc]
-	mov ax,[a64 dword es:0xffffffffcccccccc]
-	mov bx,[a64 dword es:0xffffffffcccccccc]
-	mov eax,[a64 dword es:0xffffffffcccccccc]
-	mov ebx,[a64 dword es:0xffffffffcccccccc]
-	mov rax,[a64 dword es:0xffffffffcccccccc]
-	mov rbx,[a64 dword es:0xffffffffcccccccc]
-
-	mov al,[a64 qword es:foo]
-	mov bl,[a64 qword es:foo]
-	mov ax,[a64 qword es:foo]
-	mov bx,[a64 qword es:foo]
-	mov eax,[a64 qword es:foo]
-	mov ebx,[a64 qword es:foo]
-	mov rax,[a64 qword es:foo]
-	mov rbx,[a64 qword es:foo]
-	mov al,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 qword es:0xbbbbbbbb]
-	mov bl,[a64 qword es:0xbbbbbbbb]
-	mov ax,[a64 qword es:0xbbbbbbbb]
-	mov bx,[a64 qword es:0xbbbbbbbb]
-	mov eax,[a64 qword es:0xbbbbbbbb]
-	mov ebx,[a64 qword es:0xbbbbbbbb]
-	mov rax,[a64 qword es:0xbbbbbbbb]
-	mov rbx,[a64 qword es:0xbbbbbbbb]
-	mov al,[a64 qword es:0xffffffffcccccccc]
-	mov bl,[a64 qword es:0xffffffffcccccccc]
-	mov ax,[a64 qword es:0xffffffffcccccccc]
-	mov bx,[a64 qword es:0xffffffffcccccccc]
-	mov eax,[a64 qword es:0xffffffffcccccccc]
-	mov ebx,[a64 qword es:0xffffffffcccccccc]
-	mov rax,[a64 qword es:0xffffffffcccccccc]
-	mov rbx,[a64 qword es:0xffffffffcccccccc]
-
-	mov al,[a32 es:foo]
-	mov bl,[a32 es:foo]
-	mov ax,[a32 es:foo]
-	mov bx,[a32 es:foo]
-	mov eax,[a32 es:foo]
-	mov ebx,[a32 es:foo]
-	mov rax,[a32 es:foo]
-	mov rbx,[a32 es:foo]
-	mov al,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 es:0xbbbbbbbb]
-	mov bl,[a32 es:0xbbbbbbbb]
-	mov ax,[a32 es:0xbbbbbbbb]
-	mov bx,[a32 es:0xbbbbbbbb]
-	mov eax,[a32 es:0xbbbbbbbb]
-	mov ebx,[a32 es:0xbbbbbbbb]
-	mov rax,[a32 es:0xbbbbbbbb]
-	mov rbx,[a32 es:0xbbbbbbbb]
-	mov al,[a32 es:0xffffffffcccccccc]
-	mov bl,[a32 es:0xffffffffcccccccc]
-	mov ax,[a32 es:0xffffffffcccccccc]
-	mov bx,[a32 es:0xffffffffcccccccc]
-	mov eax,[a32 es:0xffffffffcccccccc]
-	mov ebx,[a32 es:0xffffffffcccccccc]
-	mov rax,[a32 es:0xffffffffcccccccc]
-	mov rbx,[a32 es:0xffffffffcccccccc]
-
-	mov al,[a32 dword es:foo]
-	mov bl,[a32 dword es:foo]
-	mov ax,[a32 dword es:foo]
-	mov bx,[a32 dword es:foo]
-	mov eax,[a32 dword es:foo]
-	mov ebx,[a32 dword es:foo]
-	mov rax,[a32 dword es:foo]
-	mov rbx,[a32 dword es:foo]
-	mov al,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 dword es:0xbbbbbbbb]
-	mov bl,[a32 dword es:0xbbbbbbbb]
-	mov ax,[a32 dword es:0xbbbbbbbb]
-	mov bx,[a32 dword es:0xbbbbbbbb]
-	mov eax,[a32 dword es:0xbbbbbbbb]
-	mov ebx,[a32 dword es:0xbbbbbbbb]
-	mov rax,[a32 dword es:0xbbbbbbbb]
-	mov rbx,[a32 dword es:0xbbbbbbbb]
-	mov al,[a32 dword es:0xffffffffcccccccc]
-	mov bl,[a32 dword es:0xffffffffcccccccc]
-	mov ax,[a32 dword es:0xffffffffcccccccc]
-	mov bx,[a32 dword es:0xffffffffcccccccc]
-	mov eax,[a32 dword es:0xffffffffcccccccc]
-	mov ebx,[a32 dword es:0xffffffffcccccccc]
-	mov rax,[a32 dword es:0xffffffffcccccccc]
-	mov rbx,[a32 dword es:0xffffffffcccccccc]
-
-	mov al,[a32 qword es:foo]
-	mov bl,[a32 qword es:foo]
-	mov ax,[a32 qword es:foo]
-	mov bx,[a32 qword es:foo]
-	mov eax,[a32 qword es:foo]
-	mov ebx,[a32 qword es:foo]
-	mov rax,[a32 qword es:foo]
-	mov rbx,[a32 qword es:foo]
-	mov al,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 qword es:0xbbbbbbbb]
-	mov bl,[a32 qword es:0xbbbbbbbb]
-	mov ax,[a32 qword es:0xbbbbbbbb]
-	mov bx,[a32 qword es:0xbbbbbbbb]
-	mov eax,[a32 qword es:0xbbbbbbbb]
-	mov ebx,[a32 qword es:0xbbbbbbbb]
-	mov rax,[a32 qword es:0xbbbbbbbb]
-	mov rbx,[a32 qword es:0xbbbbbbbb]
-	mov al,[a32 qword es:0xffffffffcccccccc]
-	mov bl,[a32 qword es:0xffffffffcccccccc]
-	mov ax,[a32 qword es:0xffffffffcccccccc]
-	mov bx,[a32 qword es:0xffffffffcccccccc]
-	mov eax,[a32 qword es:0xffffffffcccccccc]
-	mov ebx,[a32 qword es:0xffffffffcccccccc]
-	mov rax,[a32 qword es:0xffffffffcccccccc]
-	mov rbx,[a32 qword es:0xffffffffcccccccc]
-
-	mov al,[abs es:foo]
-	mov bl,[abs es:foo]
-	mov ax,[abs es:foo]
-	mov bx,[abs es:foo]
-	mov eax,[abs es:foo]
-	mov ebx,[abs es:foo]
-	mov rax,[abs es:foo]
-	mov rbx,[abs es:foo]
-	mov al,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs es:0xaaaaaaaaaaaaaaaa]
-	mov al,[abs es:0xbbbbbbbb]
-	mov bl,[abs es:0xbbbbbbbb]
-	mov ax,[abs es:0xbbbbbbbb]
-	mov bx,[abs es:0xbbbbbbbb]
-	mov eax,[abs es:0xbbbbbbbb]
-	mov ebx,[abs es:0xbbbbbbbb]
-	mov rax,[abs es:0xbbbbbbbb]
-	mov rbx,[abs es:0xbbbbbbbb]
-	mov al,[abs es:0xffffffffcccccccc]
-	mov bl,[abs es:0xffffffffcccccccc]
-	mov ax,[abs es:0xffffffffcccccccc]
-	mov bx,[abs es:0xffffffffcccccccc]
-	mov eax,[abs es:0xffffffffcccccccc]
-	mov ebx,[abs es:0xffffffffcccccccc]
-	mov rax,[abs es:0xffffffffcccccccc]
-	mov rbx,[abs es:0xffffffffcccccccc]
-
-	mov al,[abs dword es:foo]
-	mov bl,[abs dword es:foo]
-	mov ax,[abs dword es:foo]
-	mov bx,[abs dword es:foo]
-	mov eax,[abs dword es:foo]
-	mov ebx,[abs dword es:foo]
-	mov rax,[abs dword es:foo]
-	mov rbx,[abs dword es:foo]
-	mov al,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[abs dword es:0xbbbbbbbb]
-	mov bl,[abs dword es:0xbbbbbbbb]
-	mov ax,[abs dword es:0xbbbbbbbb]
-	mov bx,[abs dword es:0xbbbbbbbb]
-	mov eax,[abs dword es:0xbbbbbbbb]
-	mov ebx,[abs dword es:0xbbbbbbbb]
-	mov rax,[abs dword es:0xbbbbbbbb]
-	mov rbx,[abs dword es:0xbbbbbbbb]
-	mov al,[abs dword es:0xffffffffcccccccc]
-	mov bl,[abs dword es:0xffffffffcccccccc]
-	mov ax,[abs dword es:0xffffffffcccccccc]
-	mov bx,[abs dword es:0xffffffffcccccccc]
-	mov eax,[abs dword es:0xffffffffcccccccc]
-	mov ebx,[abs dword es:0xffffffffcccccccc]
-	mov rax,[abs dword es:0xffffffffcccccccc]
-	mov rbx,[abs dword es:0xffffffffcccccccc]
-
-	mov al,[abs qword es:foo]
-	mov bl,[abs qword es:foo]
-	mov ax,[abs qword es:foo]
-	mov bx,[abs qword es:foo]
-	mov eax,[abs qword es:foo]
-	mov ebx,[abs qword es:foo]
-	mov rax,[abs qword es:foo]
-	mov rbx,[abs qword es:foo]
-	mov al,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[abs qword es:0xbbbbbbbb]
-	mov bl,[abs qword es:0xbbbbbbbb]
-	mov ax,[abs qword es:0xbbbbbbbb]
-	mov bx,[abs qword es:0xbbbbbbbb]
-	mov eax,[abs qword es:0xbbbbbbbb]
-	mov ebx,[abs qword es:0xbbbbbbbb]
-	mov rax,[abs qword es:0xbbbbbbbb]
-	mov rbx,[abs qword es:0xbbbbbbbb]
-	mov al,[abs qword es:0xffffffffcccccccc]
-	mov bl,[abs qword es:0xffffffffcccccccc]
-	mov ax,[abs qword es:0xffffffffcccccccc]
-	mov bx,[abs qword es:0xffffffffcccccccc]
-	mov eax,[abs qword es:0xffffffffcccccccc]
-	mov ebx,[abs qword es:0xffffffffcccccccc]
-	mov rax,[abs qword es:0xffffffffcccccccc]
-	mov rbx,[abs qword es:0xffffffffcccccccc]
-
-	mov al,[a64 abs es:foo]
-	mov bl,[a64 abs es:foo]
-	mov ax,[a64 abs es:foo]
-	mov bx,[a64 abs es:foo]
-	mov eax,[a64 abs es:foo]
-	mov ebx,[a64 abs es:foo]
-	mov rax,[a64 abs es:foo]
-	mov rbx,[a64 abs es:foo]
-	mov al,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs es:0xbbbbbbbb]
-	mov bl,[a64 abs es:0xbbbbbbbb]
-	mov ax,[a64 abs es:0xbbbbbbbb]
-	mov bx,[a64 abs es:0xbbbbbbbb]
-	mov eax,[a64 abs es:0xbbbbbbbb]
-	mov ebx,[a64 abs es:0xbbbbbbbb]
-	mov rax,[a64 abs es:0xbbbbbbbb]
-	mov rbx,[a64 abs es:0xbbbbbbbb]
-	mov al,[a64 abs es:0xffffffffcccccccc]
-	mov bl,[a64 abs es:0xffffffffcccccccc]
-	mov ax,[a64 abs es:0xffffffffcccccccc]
-	mov bx,[a64 abs es:0xffffffffcccccccc]
-	mov eax,[a64 abs es:0xffffffffcccccccc]
-	mov ebx,[a64 abs es:0xffffffffcccccccc]
-	mov rax,[a64 abs es:0xffffffffcccccccc]
-	mov rbx,[a64 abs es:0xffffffffcccccccc]
-
-	mov al,[a64 abs dword es:foo]
-	mov bl,[a64 abs dword es:foo]
-	mov ax,[a64 abs dword es:foo]
-	mov bx,[a64 abs dword es:foo]
-	mov eax,[a64 abs dword es:foo]
-	mov ebx,[a64 abs dword es:foo]
-	mov rax,[a64 abs dword es:foo]
-	mov rbx,[a64 abs dword es:foo]
-	mov al,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs dword es:0xbbbbbbbb]
-	mov bl,[a64 abs dword es:0xbbbbbbbb]
-	mov ax,[a64 abs dword es:0xbbbbbbbb]
-	mov bx,[a64 abs dword es:0xbbbbbbbb]
-	mov eax,[a64 abs dword es:0xbbbbbbbb]
-	mov ebx,[a64 abs dword es:0xbbbbbbbb]
-	mov rax,[a64 abs dword es:0xbbbbbbbb]
-	mov rbx,[a64 abs dword es:0xbbbbbbbb]
-	mov al,[a64 abs dword es:0xffffffffcccccccc]
-	mov bl,[a64 abs dword es:0xffffffffcccccccc]
-	mov ax,[a64 abs dword es:0xffffffffcccccccc]
-	mov bx,[a64 abs dword es:0xffffffffcccccccc]
-	mov eax,[a64 abs dword es:0xffffffffcccccccc]
-	mov ebx,[a64 abs dword es:0xffffffffcccccccc]
-	mov rax,[a64 abs dword es:0xffffffffcccccccc]
-	mov rbx,[a64 abs dword es:0xffffffffcccccccc]
-
-	mov al,[a64 abs qword es:foo]
-	mov bl,[a64 abs qword es:foo]
-	mov ax,[a64 abs qword es:foo]
-	mov bx,[a64 abs qword es:foo]
-	mov eax,[a64 abs qword es:foo]
-	mov ebx,[a64 abs qword es:foo]
-	mov rax,[a64 abs qword es:foo]
-	mov rbx,[a64 abs qword es:foo]
-	mov al,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 abs qword es:0xbbbbbbbb]
-	mov bl,[a64 abs qword es:0xbbbbbbbb]
-	mov ax,[a64 abs qword es:0xbbbbbbbb]
-	mov bx,[a64 abs qword es:0xbbbbbbbb]
-	mov eax,[a64 abs qword es:0xbbbbbbbb]
-	mov ebx,[a64 abs qword es:0xbbbbbbbb]
-	mov rax,[a64 abs qword es:0xbbbbbbbb]
-	mov rbx,[a64 abs qword es:0xbbbbbbbb]
-	mov al,[a64 abs qword es:0xffffffffcccccccc]
-	mov bl,[a64 abs qword es:0xffffffffcccccccc]
-	mov ax,[a64 abs qword es:0xffffffffcccccccc]
-	mov bx,[a64 abs qword es:0xffffffffcccccccc]
-	mov eax,[a64 abs qword es:0xffffffffcccccccc]
-	mov ebx,[a64 abs qword es:0xffffffffcccccccc]
-	mov rax,[a64 abs qword es:0xffffffffcccccccc]
-	mov rbx,[a64 abs qword es:0xffffffffcccccccc]
-
-	mov al,[a32 abs es:foo]
-	mov bl,[a32 abs es:foo]
-	mov ax,[a32 abs es:foo]
-	mov bx,[a32 abs es:foo]
-	mov eax,[a32 abs es:foo]
-	mov ebx,[a32 abs es:foo]
-	mov rax,[a32 abs es:foo]
-	mov rbx,[a32 abs es:foo]
-	mov al,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs es:0xbbbbbbbb]
-	mov bl,[a32 abs es:0xbbbbbbbb]
-	mov ax,[a32 abs es:0xbbbbbbbb]
-	mov bx,[a32 abs es:0xbbbbbbbb]
-	mov eax,[a32 abs es:0xbbbbbbbb]
-	mov ebx,[a32 abs es:0xbbbbbbbb]
-	mov rax,[a32 abs es:0xbbbbbbbb]
-	mov rbx,[a32 abs es:0xbbbbbbbb]
-	mov al,[a32 abs es:0xffffffffcccccccc]
-	mov bl,[a32 abs es:0xffffffffcccccccc]
-	mov ax,[a32 abs es:0xffffffffcccccccc]
-	mov bx,[a32 abs es:0xffffffffcccccccc]
-	mov eax,[a32 abs es:0xffffffffcccccccc]
-	mov ebx,[a32 abs es:0xffffffffcccccccc]
-	mov rax,[a32 abs es:0xffffffffcccccccc]
-	mov rbx,[a32 abs es:0xffffffffcccccccc]
-
-	mov al,[a32 abs dword es:foo]
-	mov bl,[a32 abs dword es:foo]
-	mov ax,[a32 abs dword es:foo]
-	mov bx,[a32 abs dword es:foo]
-	mov eax,[a32 abs dword es:foo]
-	mov ebx,[a32 abs dword es:foo]
-	mov rax,[a32 abs dword es:foo]
-	mov rbx,[a32 abs dword es:foo]
-	mov al,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs dword es:0xbbbbbbbb]
-	mov bl,[a32 abs dword es:0xbbbbbbbb]
-	mov ax,[a32 abs dword es:0xbbbbbbbb]
-	mov bx,[a32 abs dword es:0xbbbbbbbb]
-	mov eax,[a32 abs dword es:0xbbbbbbbb]
-	mov ebx,[a32 abs dword es:0xbbbbbbbb]
-	mov rax,[a32 abs dword es:0xbbbbbbbb]
-	mov rbx,[a32 abs dword es:0xbbbbbbbb]
-	mov al,[a32 abs dword es:0xffffffffcccccccc]
-	mov bl,[a32 abs dword es:0xffffffffcccccccc]
-	mov ax,[a32 abs dword es:0xffffffffcccccccc]
-	mov bx,[a32 abs dword es:0xffffffffcccccccc]
-	mov eax,[a32 abs dword es:0xffffffffcccccccc]
-	mov ebx,[a32 abs dword es:0xffffffffcccccccc]
-	mov rax,[a32 abs dword es:0xffffffffcccccccc]
-	mov rbx,[a32 abs dword es:0xffffffffcccccccc]
-
-	mov al,[a32 abs qword es:foo]
-	mov bl,[a32 abs qword es:foo]
-	mov ax,[a32 abs qword es:foo]
-	mov bx,[a32 abs qword es:foo]
-	mov eax,[a32 abs qword es:foo]
-	mov ebx,[a32 abs qword es:foo]
-	mov rax,[a32 abs qword es:foo]
-	mov rbx,[a32 abs qword es:foo]
-	mov al,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 abs qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 abs qword es:0xbbbbbbbb]
-	mov bl,[a32 abs qword es:0xbbbbbbbb]
-	mov ax,[a32 abs qword es:0xbbbbbbbb]
-	mov bx,[a32 abs qword es:0xbbbbbbbb]
-	mov eax,[a32 abs qword es:0xbbbbbbbb]
-	mov ebx,[a32 abs qword es:0xbbbbbbbb]
-	mov rax,[a32 abs qword es:0xbbbbbbbb]
-	mov rbx,[a32 abs qword es:0xbbbbbbbb]
-	mov al,[a32 abs qword es:0xffffffffcccccccc]
-	mov bl,[a32 abs qword es:0xffffffffcccccccc]
-	mov ax,[a32 abs qword es:0xffffffffcccccccc]
-	mov bx,[a32 abs qword es:0xffffffffcccccccc]
-	mov eax,[a32 abs qword es:0xffffffffcccccccc]
-	mov ebx,[a32 abs qword es:0xffffffffcccccccc]
-	mov rax,[a32 abs qword es:0xffffffffcccccccc]
-	mov rbx,[a32 abs qword es:0xffffffffcccccccc]
-
-	mov al,[rel es:foo]
-	mov bl,[rel es:foo]
-	mov ax,[rel es:foo]
-	mov bx,[rel es:foo]
-	mov eax,[rel es:foo]
-	mov ebx,[rel es:foo]
-	mov rax,[rel es:foo]
-	mov rbx,[rel es:foo]
-	mov al,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel es:0xaaaaaaaaaaaaaaaa]
-	mov al,[rel es:0xbbbbbbbb]
-	mov bl,[rel es:0xbbbbbbbb]
-	mov ax,[rel es:0xbbbbbbbb]
-	mov bx,[rel es:0xbbbbbbbb]
-	mov eax,[rel es:0xbbbbbbbb]
-	mov ebx,[rel es:0xbbbbbbbb]
-	mov rax,[rel es:0xbbbbbbbb]
-	mov rbx,[rel es:0xbbbbbbbb]
-	mov al,[rel es:0xffffffffcccccccc]
-	mov bl,[rel es:0xffffffffcccccccc]
-	mov ax,[rel es:0xffffffffcccccccc]
-	mov bx,[rel es:0xffffffffcccccccc]
-	mov eax,[rel es:0xffffffffcccccccc]
-	mov ebx,[rel es:0xffffffffcccccccc]
-	mov rax,[rel es:0xffffffffcccccccc]
-	mov rbx,[rel es:0xffffffffcccccccc]
-
-	mov al,[rel dword es:foo]
-	mov bl,[rel dword es:foo]
-	mov ax,[rel dword es:foo]
-	mov bx,[rel dword es:foo]
-	mov eax,[rel dword es:foo]
-	mov ebx,[rel dword es:foo]
-	mov rax,[rel dword es:foo]
-	mov rbx,[rel dword es:foo]
-	mov al,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[rel dword es:0xbbbbbbbb]
-	mov bl,[rel dword es:0xbbbbbbbb]
-	mov ax,[rel dword es:0xbbbbbbbb]
-	mov bx,[rel dword es:0xbbbbbbbb]
-	mov eax,[rel dword es:0xbbbbbbbb]
-	mov ebx,[rel dword es:0xbbbbbbbb]
-	mov rax,[rel dword es:0xbbbbbbbb]
-	mov rbx,[rel dword es:0xbbbbbbbb]
-	mov al,[rel dword es:0xffffffffcccccccc]
-	mov bl,[rel dword es:0xffffffffcccccccc]
-	mov ax,[rel dword es:0xffffffffcccccccc]
-	mov bx,[rel dword es:0xffffffffcccccccc]
-	mov eax,[rel dword es:0xffffffffcccccccc]
-	mov ebx,[rel dword es:0xffffffffcccccccc]
-	mov rax,[rel dword es:0xffffffffcccccccc]
-	mov rbx,[rel dword es:0xffffffffcccccccc]
-
-	mov al,[rel qword es:foo]
-	mov bl,[rel qword es:foo]
-	mov ax,[rel qword es:foo]
-	mov bx,[rel qword es:foo]
-	mov eax,[rel qword es:foo]
-	mov ebx,[rel qword es:foo]
-	mov rax,[rel qword es:foo]
-	mov rbx,[rel qword es:foo]
-	mov al,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[rel qword es:0xbbbbbbbb]
-	mov bl,[rel qword es:0xbbbbbbbb]
-	mov ax,[rel qword es:0xbbbbbbbb]
-	mov bx,[rel qword es:0xbbbbbbbb]
-	mov eax,[rel qword es:0xbbbbbbbb]
-	mov ebx,[rel qword es:0xbbbbbbbb]
-	mov rax,[rel qword es:0xbbbbbbbb]
-	mov rbx,[rel qword es:0xbbbbbbbb]
-	mov al,[rel qword es:0xffffffffcccccccc]
-	mov bl,[rel qword es:0xffffffffcccccccc]
-	mov ax,[rel qword es:0xffffffffcccccccc]
-	mov bx,[rel qword es:0xffffffffcccccccc]
-	mov eax,[rel qword es:0xffffffffcccccccc]
-	mov ebx,[rel qword es:0xffffffffcccccccc]
-	mov rax,[rel qword es:0xffffffffcccccccc]
-	mov rbx,[rel qword es:0xffffffffcccccccc]
-
-	mov al,[a64 rel es:foo]
-	mov bl,[a64 rel es:foo]
-	mov ax,[a64 rel es:foo]
-	mov bx,[a64 rel es:foo]
-	mov eax,[a64 rel es:foo]
-	mov ebx,[a64 rel es:foo]
-	mov rax,[a64 rel es:foo]
-	mov rbx,[a64 rel es:foo]
-	mov al,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel es:0xbbbbbbbb]
-	mov bl,[a64 rel es:0xbbbbbbbb]
-	mov ax,[a64 rel es:0xbbbbbbbb]
-	mov bx,[a64 rel es:0xbbbbbbbb]
-	mov eax,[a64 rel es:0xbbbbbbbb]
-	mov ebx,[a64 rel es:0xbbbbbbbb]
-	mov rax,[a64 rel es:0xbbbbbbbb]
-	mov rbx,[a64 rel es:0xbbbbbbbb]
-	mov al,[a64 rel es:0xffffffffcccccccc]
-	mov bl,[a64 rel es:0xffffffffcccccccc]
-	mov ax,[a64 rel es:0xffffffffcccccccc]
-	mov bx,[a64 rel es:0xffffffffcccccccc]
-	mov eax,[a64 rel es:0xffffffffcccccccc]
-	mov ebx,[a64 rel es:0xffffffffcccccccc]
-	mov rax,[a64 rel es:0xffffffffcccccccc]
-	mov rbx,[a64 rel es:0xffffffffcccccccc]
-
-	mov al,[a64 rel dword es:foo]
-	mov bl,[a64 rel dword es:foo]
-	mov ax,[a64 rel dword es:foo]
-	mov bx,[a64 rel dword es:foo]
-	mov eax,[a64 rel dword es:foo]
-	mov ebx,[a64 rel dword es:foo]
-	mov rax,[a64 rel dword es:foo]
-	mov rbx,[a64 rel dword es:foo]
-	mov al,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel dword es:0xbbbbbbbb]
-	mov bl,[a64 rel dword es:0xbbbbbbbb]
-	mov ax,[a64 rel dword es:0xbbbbbbbb]
-	mov bx,[a64 rel dword es:0xbbbbbbbb]
-	mov eax,[a64 rel dword es:0xbbbbbbbb]
-	mov ebx,[a64 rel dword es:0xbbbbbbbb]
-	mov rax,[a64 rel dword es:0xbbbbbbbb]
-	mov rbx,[a64 rel dword es:0xbbbbbbbb]
-	mov al,[a64 rel dword es:0xffffffffcccccccc]
-	mov bl,[a64 rel dword es:0xffffffffcccccccc]
-	mov ax,[a64 rel dword es:0xffffffffcccccccc]
-	mov bx,[a64 rel dword es:0xffffffffcccccccc]
-	mov eax,[a64 rel dword es:0xffffffffcccccccc]
-	mov ebx,[a64 rel dword es:0xffffffffcccccccc]
-	mov rax,[a64 rel dword es:0xffffffffcccccccc]
-	mov rbx,[a64 rel dword es:0xffffffffcccccccc]
-
-	mov al,[a64 rel qword es:foo]
-	mov bl,[a64 rel qword es:foo]
-	mov ax,[a64 rel qword es:foo]
-	mov bx,[a64 rel qword es:foo]
-	mov eax,[a64 rel qword es:foo]
-	mov ebx,[a64 rel qword es:foo]
-	mov rax,[a64 rel qword es:foo]
-	mov rbx,[a64 rel qword es:foo]
-	mov al,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a64 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a64 rel qword es:0xbbbbbbbb]
-	mov bl,[a64 rel qword es:0xbbbbbbbb]
-	mov ax,[a64 rel qword es:0xbbbbbbbb]
-	mov bx,[a64 rel qword es:0xbbbbbbbb]
-	mov eax,[a64 rel qword es:0xbbbbbbbb]
-	mov ebx,[a64 rel qword es:0xbbbbbbbb]
-	mov rax,[a64 rel qword es:0xbbbbbbbb]
-	mov rbx,[a64 rel qword es:0xbbbbbbbb]
-	mov al,[a64 rel qword es:0xffffffffcccccccc]
-	mov bl,[a64 rel qword es:0xffffffffcccccccc]
-	mov ax,[a64 rel qword es:0xffffffffcccccccc]
-	mov bx,[a64 rel qword es:0xffffffffcccccccc]
-	mov eax,[a64 rel qword es:0xffffffffcccccccc]
-	mov ebx,[a64 rel qword es:0xffffffffcccccccc]
-	mov rax,[a64 rel qword es:0xffffffffcccccccc]
-	mov rbx,[a64 rel qword es:0xffffffffcccccccc]
-
-	mov al,[a32 rel es:foo]
-	mov bl,[a32 rel es:foo]
-	mov ax,[a32 rel es:foo]
-	mov bx,[a32 rel es:foo]
-	mov eax,[a32 rel es:foo]
-	mov ebx,[a32 rel es:foo]
-	mov rax,[a32 rel es:foo]
-	mov rbx,[a32 rel es:foo]
-	mov al,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel es:0xbbbbbbbb]
-	mov bl,[a32 rel es:0xbbbbbbbb]
-	mov ax,[a32 rel es:0xbbbbbbbb]
-	mov bx,[a32 rel es:0xbbbbbbbb]
-	mov eax,[a32 rel es:0xbbbbbbbb]
-	mov ebx,[a32 rel es:0xbbbbbbbb]
-	mov rax,[a32 rel es:0xbbbbbbbb]
-	mov rbx,[a32 rel es:0xbbbbbbbb]
-	mov al,[a32 rel es:0xffffffffcccccccc]
-	mov bl,[a32 rel es:0xffffffffcccccccc]
-	mov ax,[a32 rel es:0xffffffffcccccccc]
-	mov bx,[a32 rel es:0xffffffffcccccccc]
-	mov eax,[a32 rel es:0xffffffffcccccccc]
-	mov ebx,[a32 rel es:0xffffffffcccccccc]
-	mov rax,[a32 rel es:0xffffffffcccccccc]
-	mov rbx,[a32 rel es:0xffffffffcccccccc]
-
-	mov al,[a32 rel dword es:foo]
-	mov bl,[a32 rel dword es:foo]
-	mov ax,[a32 rel dword es:foo]
-	mov bx,[a32 rel dword es:foo]
-	mov eax,[a32 rel dword es:foo]
-	mov ebx,[a32 rel dword es:foo]
-	mov rax,[a32 rel dword es:foo]
-	mov rbx,[a32 rel dword es:foo]
-	mov al,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel dword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel dword es:0xbbbbbbbb]
-	mov bl,[a32 rel dword es:0xbbbbbbbb]
-	mov ax,[a32 rel dword es:0xbbbbbbbb]
-	mov bx,[a32 rel dword es:0xbbbbbbbb]
-	mov eax,[a32 rel dword es:0xbbbbbbbb]
-	mov ebx,[a32 rel dword es:0xbbbbbbbb]
-	mov rax,[a32 rel dword es:0xbbbbbbbb]
-	mov rbx,[a32 rel dword es:0xbbbbbbbb]
-	mov al,[a32 rel dword es:0xffffffffcccccccc]
-	mov bl,[a32 rel dword es:0xffffffffcccccccc]
-	mov ax,[a32 rel dword es:0xffffffffcccccccc]
-	mov bx,[a32 rel dword es:0xffffffffcccccccc]
-	mov eax,[a32 rel dword es:0xffffffffcccccccc]
-	mov ebx,[a32 rel dword es:0xffffffffcccccccc]
-	mov rax,[a32 rel dword es:0xffffffffcccccccc]
-	mov rbx,[a32 rel dword es:0xffffffffcccccccc]
-
-	mov al,[a32 rel qword es:foo]
-	mov bl,[a32 rel qword es:foo]
-	mov ax,[a32 rel qword es:foo]
-	mov bx,[a32 rel qword es:foo]
-	mov eax,[a32 rel qword es:foo]
-	mov ebx,[a32 rel qword es:foo]
-	mov rax,[a32 rel qword es:foo]
-	mov rbx,[a32 rel qword es:foo]
-	mov al,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov bl,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov ax,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov bx,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov eax,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov ebx,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov rax,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov rbx,[a32 rel qword es:0xaaaaaaaaaaaaaaaa]
-	mov al,[a32 rel qword es:0xbbbbbbbb]
-	mov bl,[a32 rel qword es:0xbbbbbbbb]
-	mov ax,[a32 rel qword es:0xbbbbbbbb]
-	mov bx,[a32 rel qword es:0xbbbbbbbb]
-	mov eax,[a32 rel qword es:0xbbbbbbbb]
-	mov ebx,[a32 rel qword es:0xbbbbbbbb]
-	mov rax,[a32 rel qword es:0xbbbbbbbb]
-	mov rbx,[a32 rel qword es:0xbbbbbbbb]
-	mov al,[a32 rel qword es:0xffffffffcccccccc]
-	mov bl,[a32 rel qword es:0xffffffffcccccccc]
-	mov ax,[a32 rel qword es:0xffffffffcccccccc]
-	mov bx,[a32 rel qword es:0xffffffffcccccccc]
-	mov eax,[a32 rel qword es:0xffffffffcccccccc]
-	mov ebx,[a32 rel qword es:0xffffffffcccccccc]
-	mov rax,[a32 rel qword es:0xffffffffcccccccc]
-	mov rbx,[a32 rel qword es:0xffffffffcccccccc]
-
-
-foo:
--- a/nasmbuild/nasm-2.13rc9/test/riprel.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-#!/usr/bin/perl
-
-print ";Testname=unoptimized; Arguments=-fbin -oriprel.bin -O0; Files=stdout stderr riprel.bin\n";
-print ";Testname=optimized;   Arguments=-fbin -oriprel.bin -Ox; Files=stdout stderr riprel.bin\n";
-
-
-print "\tbits 64\n";
-
-foreach $mode ('abs', 'rel') {
-    print "\n\tdefault $mode\n\n";
-
-    foreach $so ('', 'fs:', 'es:') {
-	foreach $rq ('', 'abs ', 'rel ') {
-	    foreach $ao ('', 'a64 ', 'a32 ') {
-		foreach $sq ('', 'dword ', 'qword ') {
-		    foreach $v ('foo', '0xaaaaaaaaaaaaaaaa', '0xbbbbbbbb',
-				'0xffffffffcccccccc') {
-			foreach $r (	'al', 'bl', 'ax', 'bx', 'eax', 'ebx', 'rax', 'rbx') {
-			    print "\tmov $r,[$ao$rq$sq$so$v]\n";
-			}
-		    }
-		    print "\n";
-		}
-	    }
-	}
-    }
-}
-
-print "\nfoo:\n";
--- a/nasmbuild/nasm-2.13rc9/test/riprel2.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-;Testname=unoptimized; Arguments=-fbin -oriprel2.bin -O0; Files=stdout stderr riprel.bin
-;Testname=optimized;   Arguments=-fbin -oriprel2.bin -Ox; Files=stdout stderr riprel.bin
-
-	bits 64
-
-	default rel
-	mov dword [foo],12345678h
-	mov qword [foo],12345678h
-	mov [foo],rax
-	mov dword [foo],12345678h
-foo:
--- a/nasmbuild/nasm-2.13rc9/test/sha-64.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,30 +0,0 @@
-;Testname=sha-64; Arguments=-felf64 -osha-64.o -O0; Files=stdout stderr sha-64.o
-BITS 64
-	sha1rnds4 xmm1, xmm2, 9
-	sha1rnds4 xmm2, [rax], 7
-	sha1rnds4 xmm3, [rax+0x12], 5
-	sha1rnds4 xmm4, [rax+rbx*2], 1
-	sha1nexte xmm1, xmm2
-	sha1nexte xmm2, [rax]
-	sha1nexte xmm3, [rax+0x12]
-	sha1nexte xmm4, [rax+rbx*2]
-	sha1msg1 xmm1, xmm2
-	sha1msg1 xmm2, [rax]
-	sha1msg1 xmm3, [rax+0x12]
-	sha1msg1 xmm4, [rax+rbx*2]
-	sha1msg2 xmm1, xmm2
-	sha1msg2 xmm2, [rax]
-	sha1msg2 xmm3, [rax+0x12]
-	sha1msg2 xmm4, [rax+rbx*2]
-	sha256rnds2 xmm1, xmm2, xmm0
-	sha256rnds2 xmm2, [rax], xmm0
-	sha256rnds2 xmm3, [rax+0x12], xmm0
-	sha256rnds2 xmm4, [rax+rbx*2], xmm0
-	sha256msg1 xmm1, xmm2
-	sha256msg1 xmm2, [rax]
-	sha256msg1 xmm3, [rax+0x12]
-	sha256msg1 xmm4, [rax+rbx*2]
-	sha256msg2 xmm1, xmm2
-	sha256msg2 xmm2, [rax]
-	sha256msg2 xmm3, [rax+0x12]
-	sha256msg2 xmm4, [rax+rbx*2]
--- a/nasmbuild/nasm-2.13rc9/test/sha.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-;Testname=sha; Arguments=-felf -osha.o -O0; Files=stdout stderr sha.o
-BITS 32
-
-	sha1rnds4 xmm1, xmm2, 9
-	sha1rnds4 xmm2, [eax], 7
-	sha1rnds4 xmm3, [eax+0x12], 5
-	sha1rnds4 xmm4, [eax+ebx*2], 1
-	sha1nexte xmm1, xmm2
-	sha1nexte xmm2, [eax]
-	sha1nexte xmm3, [eax+0x12]
-	sha1nexte xmm4, [eax+ebx*2]
-	sha1msg1 xmm1, xmm2
-	sha1msg1 xmm2, [eax]
-	sha1msg1 xmm3, [eax+0x12]
-	sha1msg1 xmm4, [eax+ebx*2]
-	sha1msg2 xmm1, xmm2
-	sha1msg2 xmm2, [eax]
-	sha1msg2 xmm3, [eax+0x12]
-	sha1msg2 xmm4, [eax+ebx*2]
-	sha256rnds2 xmm1, xmm2, xmm0
-	sha256rnds2 xmm2, [eax], xmm0
-	sha256rnds2 xmm3, [eax+0x12], xmm0
-	sha256rnds2 xmm4, [eax+ebx*2], xmm0
-	sha256msg1 xmm1, xmm2
-	sha256msg1 xmm2, [eax]
-	sha256msg1 xmm3, [eax+0x12]
-	sha256msg1 xmm4, [eax+ebx*2]
-	sha256msg2 xmm1, xmm2
-	sha256msg2 xmm2, [eax]
-	sha256msg2 xmm3, [eax+0x12]
-	sha256msg2 xmm4, [eax+ebx*2]
--- a/nasmbuild/nasm-2.13rc9/test/smartalign16.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-;Testname=test; Arguments=-fbin -osmartalign16.bin; Files=stdout stderr smartalign16.bin
-
-%use smartalign
-
-	bits 16
-
-	alignmode nop, 32
-	add ax,ax
-	align 32
-
-	alignmode generic, 32
-	add ax,ax
-	align 32
-
-	alignmode k7, 32
-	add ax,ax
-	align 32
-
-	alignmode k8, 32
-	add ax,ax
-	align 32
-
-	alignmode p6, 32
-	add ax,ax
-	align 32
-
-	add ecx,ecx
-	align 32
-	add edx,edx
-	align 128
-	add ebx,ebx
-	align 256
-	add esi,esi
-	align 512
-
-	add edi,edi
--- a/nasmbuild/nasm-2.13rc9/test/smartalign32.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-;Testname=test; Arguments=-fbin -osmartalign32.bin; Files=stdout stderr smartalign32.bin
-
-%use smartalign
-
-	bits 32
-
-	alignmode nop, 32
-	add ax,ax
-	align 32
-
-	alignmode generic, 32
-	add ax,ax
-	align 32
-
-	alignmode k7, 32
-	add ax,ax
-	align 32
-
-	alignmode k8, 32
-	add ax,ax
-	align 32
-
-	alignmode p6, 32
-	add ax,ax
-	align 32
-
-	add ecx,ecx
-	align 32
-	add edx,edx
-	align 128
-	add ebx,ebx
-	align 256
-	add esi,esi
-	align 512
-
-	add edi,edi
--- a/nasmbuild/nasm-2.13rc9/test/smartalign64.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-;Testname=test; Arguments=-fbin -osmartalign64.bin; Files=stdout stderr smartalign64.bin
-
-%use smartalign
-
-	bits 64
-
-	alignmode nop, 32
-	add ax,ax
-	align 32
-
-	alignmode generic, 32
-	add ax,ax
-	align 32
-
-	alignmode k7, 32
-	add ax,ax
-	align 32
-
-	alignmode k8, 32
-	add ax,ax
-	align 32
-
-	alignmode p6, 32
-	add ax,ax
-	align 32
-
-	add ecx,ecx
-	align 32
-	add edx,edx
-	align 128
-	add ebx,ebx
-	align 256
-	add esi,esi
-	align 512
-
-	add edi,edi
--- a/nasmbuild/nasm-2.13rc9/test/splitea.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-	bits 32
-
-	mov eax,[eax]
-	mov eax,[eax+ecx]
-	mov eax,[eax+ecx*4]
-	mov eax,[eax+ecx*4+8]
-
-	mov eax,[eax]
-	mov eax,[eax,ecx]
-	mov eax,[eax,ecx*4]
-	mov eax,[eax+8,ecx*4]
--- a/nasmbuild/nasm-2.13rc9/test/sreg.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,65 +0,0 @@
-	bits 64
-	mov es,rax
-	mov ss,rax
-	mov ds,rax
-	mov fs,rax
-	mov gs,rax
-	mov es,eax
-	mov ss,eax
-	mov ds,eax
-	mov fs,eax
-	mov gs,eax
-	mov es,ax
-	mov ss,ax
-	mov ds,ax
-	mov fs,ax
-	mov gs,ax
-	mov es,[rsi]
-	mov ss,[rsi]
-	mov ds,[rsi]
-	mov fs,[rsi]
-	mov gs,[rsi]
-	mov es,word [rsi]
-	mov ss,word [rsi]
-	mov ds,word [rsi]
-	mov fs,word [rsi]
-	mov gs,word [rsi]
-	mov es,qword [rsi]
-	mov ss,qword [rsi]
-	mov ds,qword [rsi]
-	mov fs,qword [rsi]
-	mov gs,qword [rsi]
-	mov rax,es
-	mov rax,cs
-	mov rax,ss
-	mov rax,ds
-	mov rax,fs
-	mov rax,gs
-	mov eax,es
-	mov eax,ss
-	mov eax,ds
-	mov eax,fs
-	mov eax,fs
-	mov ax,es
-	mov ax,ss
-	mov ax,ds
-	mov ax,fs
-	mov ax,gs
-	mov [rdi],es
-	mov [rdi],cs
-	mov [rdi],ss
-	mov [rdi],ds
-	mov [rdi],fs
-	mov [rdi],gs
-	mov word [rdi],es
-	mov word [rdi],cs
-	mov word [rdi],ss
-	mov word [rdi],ds
-	mov word [rdi],fs
-	mov word [rdi],gs
-	mov qword [rdi],es
-	mov qword [rdi],cs
-	mov qword [rdi],ss
-	mov qword [rdi],ds
-	mov qword [rdi],fs
-	mov qword [rdi],gs
--- a/nasmbuild/nasm-2.13rc9/test/strlen.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-%macro strlen_test 1
-    %strlen len %2 ; not existing argument
-%endmacro
-
-strlen_test 'a'
--- a/nasmbuild/nasm-2.13rc9/test/struc.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-;Testname=test; Arguments=-fbin -ostruc.bin; Files=stdout stderr struc.bin
-
-bits 32
-
-; Simple struc example
-struc teststruc1
-  .long: resd 1
-  .word: resw 1
-  .byte: resb 1
-  .str:  resb 32
-endstruc
-
-; Reference with offset
-mov [ebp - 40 + teststruc1.word], ax
-
-istruc teststruc1
- at .word, db 5
-iend
-
-; Struc with base offset
-; should be the same as the previous stuc
-struc teststruc2, -40
-  .long: resd 1
-  .word: resw 1
-  .byte: resb 1
-  .str:  resb 32
-endstruc
-
-mov [ebp + teststruc2.word], ax
-
-istruc teststruc2
- at .word, db 5
-iend
--- a/nasmbuild/nasm-2.13rc9/test/test67.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-;Testname=unoptimized; Arguments=-fbin -otest67.bin -O0; Files=stdout stderr test67.bin
-;Testname=optimized;   Arguments=-fbin -otest67.bin -Ox; Files=stdout stderr test67.bin
-
-	bits 16
-
-	mov ax,[bx]
-	mov ax,[foo]
-	mov ax,[word foo]
-	mov ax,[dword foo]
-	mov ax,[ebx]
-	rep movsb
-	a16 rep movsb
-	a32 rep movsb
-	a32 mov ax,bx
-
-	bits 32
-
-	mov ax,[bx]
-	mov ax,[foo]
-	mov ax,[word foo]
-	mov ax,[dword foo]
-	mov ax,[ebx]
-	rep movsb
-	a16 rep movsb
-	a32 rep movsb
-
-	bits 64
-
-	mov ax,[rbx]
-	mov ax,[foo]
-	mov ax,[qword foo]
-	mov ax,[dword foo]
-	mov ax,[ebx]
-	rep movsb
-	a32 rep movsb
-	a64 rep movsb
-
-foo:
--- a/nasmbuild/nasm-2.13rc9/test/testdos.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-;Testname=test; Arguments=-fbin -otestdos.bin; Files=stdout stderr testdos.bin
-;
-; This file was known to miscompile with the 16-bit NASM built
-; under Borland C++ 3.1, so keep it around for testing...
-;
-; The proper output looks like:
-;
-; 00000000 A10300
-; 00000003 EA0000FFFF
-;
-	org 0100h
-	mov ax,[3]
-	jmp 0FFFFh:0000
--- a/nasmbuild/nasm-2.13rc9/test/testnos3.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,973 +0,0 @@
-;Testname=test; Arguments=-fbin -otestnos3.bin; Files=stdout stderr testnos3.bin
-;
-; Double-precision floating point tests, derived from Fred Tydeman's posting
-; of 26 February 1996 to comp.arch.arithmetic, via David M. Gay's gdtoa
-; package.
-;
-	bits 64
-
-	dq	9.e0306
-	dq	0x7fa9a2028368022e
-
-	dq	4.e-079
-	dq	0x2fa7b6d71d20b96c
-
-	dq	7.e-261
-	dq	0x09eb8d7e32be6396
-
-	dq	6.e-025
-	dq	0x3ae7361cb863de62
-
-	dq	7.e-161
-	dq	0x1eaf7e0db3799aa3
-
-	dq	7.e0289
-	dq	0x7c1cbb547777a285
-
-	dq	5.e0079
-	dq	0x507afcef51f0fb5f
-
-	dq	1.e0080
-	dq	0x508afcef51f0fb5f
-
-	dq	7.e-303
-	dq	0x0133339131c46f8b
-
-	dq	5.e0152
-	dq	0x5fa317e5ef3ab327
-
-	dq	5.e0125
-	dq	0x5a07a2ecc414a03f
-
-	dq	2.e0126
-	dq	0x5a27a2ecc414a03f
-
-	dq	7.e-141
-	dq	0x22d5570f59bd178c
-
-	dq	4.e-192
-	dq	0x18323ff06eea847a
-
-	dq	9.e0043
-	dq	0x49102498ea6df0c4
-
-	dq	1.e0303
-	dq	0x7ed754e31cd072da
-
-	dq	95.e-089
-	dq	0x2dde3cbc9907fdc8
-
-	dq	85.e0194
-	dq	0x689d1c26db7d0dae
-
-	dq	69.e0267
-	dq	0x77c0b7cb60c994da
-
-	dq	97.e-019
-	dq	0x3c665dde8e688ba6
-
-	dq	37.e0046
-	dq	0x49d033d7eca0adef
-
-	dq	74.e0046
-	dq	0x49e033d7eca0adef
-
-	dq	61.e-099
-	dq	0x2bc0ad836f269a17
-
-	dq	53.e-208
-	dq	0x151b39ae1909c31b
-
-	dq	93.e-234
-	dq	0x0fc27b2e4f210075
-
-	dq	79.e-095
-	dq	0x2c9a5db812948281
-
-	dq	87.e-274
-	dq	0x0772d36cf48e7abd
-
-	dq	83.e0025
-	dq	0x4585747ab143e353
-
-	dq	17.e-036
-	dq	0x38b698ccdc60015a
-
-	dq	53.e0033
-	dq	0x47246a3418629ef6
-
-	dq	51.e-074
-	dq	0x30ecd5bee57763e6
-
-	dq	63.e-022
-	dq	0x3bbdc03b8fd7016a
-
-	dq	839.e0143
-	dq	0x5e3ae03f245703e2
-
-	dq	749.e-182
-	dq	0x1abf14727744c63e
-
-	dq	999.e-026
-	dq	0x3b282782afe1869e
-
-	dq	345.e0266
-	dq	0x77b0b7cb60c994da
-
-	dq	914.e-102
-	dq	0x2b5ffc81bc29f02b
-
-	dq	829.e0102
-	dq	0x55b7221a79cdd1d9
-
-	dq	307.e0090
-	dq	0x5322d6b183fe4b55
-
-	dq	859.e0182
-	dq	0x6654374d8b87ac63
-
-	dq	283.e0085
-	dq	0x5216c309024bab4b
-
-	dq	589.e0187
-	dq	0x675526be9c22eb17
-
-	dq	302.e0176
-	dq	0x64fdcf7df8f573b7
-
-	dq	604.e0176
-	dq	0x650dcf7df8f573b7
-
-	dq	761.e-244
-	dq	0x0de03cea3586452e
-
-	dq	647.e0230
-	dq	0x7044d64d4079150c
-
-	dq	755.e0174
-	dq	0x64a7d93193f78fc6
-
-	dq	255.e-075
-	dq	0x30dcd5bee57763e6
-
-	dq	3391.e0055
-	dq	0x4c159bd3ad46e346
-
-	dq	4147.e-015
-	dq	0x3d923d1b5eb1d778
-
-	dq	3996.e-026
-	dq	0x3b482782afe1869e
-
-	dq	1998.e-026
-	dq	0x3b382782afe1869e
-
-	dq	3338.e-296
-	dq	0x0335519ac5142aab
-
-	dq	1669.e-296
-	dq	0x0325519ac5142aab
-
-	dq	8699.e-276
-	dq	0x0772d2df246ecd2d
-
-	dq	5311.e0243
-	dq	0x73284e91f4aa0fdb
-
-	dq	7903.e-096
-	dq	0x2cd07c2d27a5b989
-
-	dq	7611.e-226
-	dq	0x11d19b8744033457
-
-	dq	3257.e0058
-	dq	0x4cb444b34a6fb3eb
-
-	dq	6514.e0058
-	dq	0x4cc444b34a6fb3eb
-
-	dq	3571.e0263
-	dq	0x77462644c61d41aa
-
-	dq	7142.e0263
-	dq	0x77562644c61d41aa
-
-	dq	5311.e0242
-	dq	0x72f3720e5d54d97c
-
-	dq	1617.e-063
-	dq	0x3384c98fce16152e
-
-	dq	51881.e0037
-	dq	0x4897d2950dc76da4
-
-	dq	31441.e-118
-	dq	0x285ef890f5de4c86
-
-	dq	30179.e0079
-	dq	0x5143e272a77478e8
-
-	dq	60358.e0079
-	dq	0x5153e272a77478e8
-
-	dq	63876.e-020
-	dq	0x3cc703856844bdbf
-
-	dq	31938.e-020
-	dq	0x3cb703856844bdbf
-
-	dq	46073.e-032
-	dq	0x3a42405b773fbdf3
-
-	dq	32941.e0051
-	dq	0x4b757eb8ad52a5c9
-
-	dq	82081.e0041
-	dq	0x49770105df3d47cb
-
-	dq	38701.e-215
-	dq	0x1440492a4a8a37fd
-
-	dq	62745.e0047
-	dq	0x4ab0c52fe6dc6a1b
-
-	dq	12549.e0048
-	dq	0x4ac0c52fe6dc6a1b
-
-	dq	64009.e-183
-	dq	0x1af099b393b84832
-
-	dq	89275.e0261
-	dq	0x77262644c61d41aa
-
-	dq	75859.e0025
-	dq	0x46232645e1ba93f0
-
-	dq	57533.e0287
-	dq	0x7c8272ed2307f56a
-
-	dq	584169.e0229
-	dq	0x70ad657059dc79aa
-
-	dq	940189.e-112
-	dq	0x29eb99d6240c1a28
-
-	dq	416121.e0197
-	dq	0x6a00fd07ed297f80
-
-	dq	832242.e0197
-	dq	0x6a10fd07ed297f80
-
-	dq	584738.e0076
-	dq	0x50e8a85eb277e645
-
-	dq	933587.e-140
-	dq	0x241b248728b9c117
-
-	dq	252601.e0121
-	dq	0x5a2dda592e398dd7
-
-	dq	358423.e0274
-	dq	0x79f9463b59b8f2bd
-
-	dq	892771.e-213
-	dq	0x14f25818c7294f27
-
-	dq	410405.e0040
-	dq	0x49670105df3d47cb
-
-	dq	928609.e-261
-	dq	0x0afbe2dd66200bef
-
-	dq	302276.e-254
-	dq	0x0c55a462d91c6ab3
-
-	dq	920657.e-023
-	dq	0x3c653a9985dbde6c
-
-	dq	609019.e-025
-	dq	0x3bf1f99e11ea0a24
-
-	dq	252601.e0120
-	dq	0x59f7e1e0f1c7a4ac
-
-	dq	654839.e-060
-	dq	0x34b00e7db3b3f242
-
-	dq	8823691.e0130
-	dq	0x5c5e597c0b94b7ae
-
-	dq	2920845.e0228
-	dq	0x709d657059dc79aa
-
-	dq	9210917.e0080
-	dq	0x51fda232347e6032
-
-	dq	5800419.e-303
-	dq	0x026e58ffa48f4fce
-
-	dq	6119898.e-243
-	dq	0x0ee3ecf22ea07863
-
-	dq	3059949.e-243
-	dq	0x0ed3ecf22ea07863
-
-	dq	2572231.e0223
-	dq	0x6f90f73be1dff9ad
-
-	dq	5444097.e-021
-	dq	0x3cf8849dd33c95af
-
-	dq	5783893.e-127
-	dq	0x26f7e5902ce0e151
-
-	dq	3865421.e-225
-	dq	0x1295d4fe53afec65
-
-	dq	4590831.e0156
-	dq	0x61b4689b4a5fa201
-
-	dq	9181662.e0156
-	dq	0x61c4689b4a5fa201
-
-	dq	5906361.e-027
-	dq	0x3bbbe45a312d08a0
-
-	dq	7315057.e0235
-	dq	0x7225f0d408362a72
-
-	dq	9088115.e0106
-	dq	0x5762e51a84a3c6a0
-
-	dq	1817623.e0107
-	dq	0x5772e51a84a3c6a0
-
-	dq	44118455.e0129
-	dq	0x5c4e597c0b94b7ae
-
-	dq	35282041.e0293
-	dq	0x7e5512d5273e62e8
-
-	dq	31279898.e-291
-	dq	0x05129b01b6885d36
-
-	dq	15639949.e-291
-	dq	0x05029b01b6885d36
-
-	dq	27966061.e0145
-	dq	0x5f955bcf72fd10f9
-
-	dq	55932122.e0145
-	dq	0x5fa55bcf72fd10f9
-
-	dq	70176353.e-053
-	dq	0x36900683a21de855
-
-	dq	40277543.e-032
-	dq	0x3adf29ca0ff893b1
-
-	dq	50609263.e0157
-	dq	0x622193aff1f1c8e3
-
-	dq	66094077.e0077
-	dq	0x518b37c4b7928317
-
-	dq	84863171.e0114
-	dq	0x59406e98f5ec8f37
-
-	dq	89396333.e0264
-	dq	0x786526f061ca9053
-
-	dq	87575437.e-309
-	dq	0x016e07320602056c
-
-	dq	78693511.e-044
-	dq	0x3870bc7b7603a2ca
-
-	dq	90285923.e-206
-	dq	0x16d1470083f89d48
-
-	dq	30155207.e-030
-	dq	0x3b423a4ad20748a2
-
-	dq	245540327.e0121
-	dq	0x5acc569e968e0944
-
-	dq	263125459.e0287
-	dq	0x7d44997a298b2f2e
-
-	dq	566446538.e-257
-	dq	0x0c64472ba9550e86
-
-	dq	283223269.e-257
-	dq	0x0c54472ba9550e86
-
-	dq	245540327.e0122
-	dq	0x5b01b6231e18c5cb
-
-	dq	491080654.e0122
-	dq	0x5b11b6231e18c5cb
-
-	dq	971212611.e-126
-	dq	0x27a397d3c9745d2f
-
-	dq	229058583.e0052
-	dq	0x4c76ce94febdc7a5
-
-	dq	325270231.e0039
-	dq	0x49cc7ccf90c9f8ab
-
-	dq	989648089.e-035
-	dq	0x3a8880a3d515e849
-
-	dq	653777767.e0273
-	dq	0x7a720223f2b3a881
-
-	dq	923091487.e0209
-	dq	0x6d30bc60e6896717
-
-	dq	526250918.e0288
-	dq	0x7d89bfd8b3edfafa
-
-	dq	350301748.e-309
-	dq	0x018e07320602056c
-
-	dq	741111169.e-203
-	dq	0x17a14fe7daf8f3ae
-
-	dq	667284113.e-240
-	dq	0x0ff09355f8050c02
-
-	dq	1227701635.e0120
-	dq	0x5abc569e968e0944
-
-	dq	9981396317.e-182
-	dq	0x1c38afe10a2a66aa
-
-	dq	5232604057.e-298
-	dq	0x041465b896c24520
-
-	dq	5572170023.e-088
-	dq	0x2fb0847822f765b2
-
-	dq	1964322616.e0122
-	dq	0x5b31b6231e18c5cb
-
-	dq	3928645232.e0122
-	dq	0x5b41b6231e18c5cb
-
-	dq	8715380633.e-058
-	dq	0x35f4614c3219891f
-
-	dq	4856063055.e-127
-	dq	0x279397d3c9745d2f
-
-	dq	8336960483.e-153
-	dq	0x223a06a1024b95e1
-
-	dq	1007046393.e-155
-	dq	0x21a01891fc4717fd
-
-	dq	5378822089.e-176
-	dq	0x1d695fd4c88d4b1b
-
-	dq	5981342308.e-190
-	dq	0x1a83db11ac608107
-
-	dq	7214782613.e-086
-	dq	0x3020b552d2edcdea
-
-	dq	5458466829.e0142
-	dq	0x5f70acde6a98eb4c
-
-	dq	9078555839.e-109
-	dq	0x2b5fc575867314ee
-
-	dq	6418488827.e0079
-	dq	0x526021f14ed7b3fa
-
-	dq	65325840981.e0069
-	dq	0x5081a151ddbd3c4a
-
-	dq	49573485983.e0089
-	dq	0x54a221bd871d2cf4
-
-	dq	46275205733.e0074
-	dq	0x51830e6c7d4e3480
-
-	dq	92550411466.e0074
-	dq	0x51930e6c7d4e3480
-
-	dq	41129842097.e-202
-	dq	0x1832c3e72d179607
-
-	dq	93227267727.e-049
-	dq	0x380960fe08d5847f
-
-	dq	41297294357.e0185
-	dq	0x688c49437fccfadb
-
-	dq	41534892987.e-067
-	dq	0x343a12666477886d
-
-	dq	42333842451.e0201
-	dq	0x6be0189a26df575f
-
-	dq	78564021519.e-227
-	dq	0x131155515fd37265
-
-	dq	53587107423.e-061
-	dq	0x35800a19a3ffd981
-
-	dq	53827010643.e-200
-	dq	0x18a32fa69a69bd6d
-
-	dq	83356057653.e0193
-	dq	0x6a4544e6daee2a18
-
-	dq	45256834646.e-118
-	dq	0x29a541ecdfd48694
-
-	dq	45392779195.e-110
-	dq	0x2b4fc575867314ee
-
-	dq	23934638219.e0291
-	dq	0x7e81deaf40ead9a0
-
-	dq	995779191233.e0113
-	dq	0x59e2d44edcc51304
-
-	dq	997422852243.e-265
-	dq	0x0b676688faee99bc
-
-	dq	653532977297.e-123
-	dq	0x28d925a0aabcdc68
-
-	dq	938885684947.e0147
-	dq	0x60f11894b202e9f4
-
-	dq	619534293513.e0124
-	dq	0x5c210c20303fe0f1
-
-	dq	539879452414.e-042
-	dq	0x39a5e66dc3d6bdb5
-
-	dq	742522891517.e0259
-	dq	0x782c1c352fc3c309
-
-	dq	254901016865.e-022
-	dq	0x3dbc06d366394441
-
-	dq	685763015669.e0280
-	dq	0x7c85fd7aa44d9477
-
-	dq	384865004907.e-285
-	dq	0x072aa65b58639e69
-
-	dq	286556458711.e0081
-	dq	0x5321958b36c5102b
-
-	dq	573112917422.e0081
-	dq	0x5331958b36c5102b
-
-	dq	769525178383.e-150
-	dq	0x234253ec0e161420
-
-	dq	416780288265.e0192
-	dq	0x6a3544e6daee2a18
-
-	dq	226963895975.e-111
-	dq	0x2b3fc575867314ee
-
-	dq	665592809339.e0063
-	dq	0x4f778b6516c2b478
-
-	dq	3891901811465.e0217
-	dq	0x6f99ab8261990292
-
-	dq	4764593340755.e0069
-	dq	0x50e4177a9915fbf8
-
-	dq	6336156586177.e0269
-	dq	0x7a7173f76c63b792
-
-	dq	8233559360849.e0095
-	dq	0x56566fee05649a7a
-
-	dq	3662265515198.e-107
-	dq	0x2c538e6edd48f2a3
-
-	dq	1831132757599.e-107
-	dq	0x2c438e6edd48f2a3
-
-	dq	7812878489261.e-179
-	dq	0x1d726dae7bbeda75
-
-	dq	6363857920591.e0145
-	dq	0x60b28a61cf9483b7
-
-	dq	8811915538555.e0082
-	dq	0x53a51f508b287ae7
-
-	dq	9997878507563.e-195
-	dq	0x1a253db2fea1ea31
-
-	dq	9224786422069.e-291
-	dq	0x0634ee5d56b32957
-
-	dq	6284426329974.e-294
-	dq	0x058d3409dfbca26f
-
-	dq	9199302046091.e-062
-	dq	0x35c135972630774c
-
-	dq	6070482281213.e-122
-	dq	0x29423fa9e6fcf47e
-
-	dq	2780161250963.e-301
-	dq	0x0405acc2053064c2
-
-	dq	8233559360849.e0094
-	dq	0x5621f324d11d4862
-
-	dq	72027097041701.e0206
-	dq	0x6d94677812d3a606
-
-	dq	97297545286625.e0215
-	dq	0x6f79ab8261990292
-
-	dq	99021992302453.e-025
-	dq	0x3da5c6714def374c
-
-	dq	54104687080198.e-022
-	dq	0x3e373cdf8db7a7bc
-
-	dq	33519685743233.e0089
-	dq	0x5537f203339c9629
-
-	dq	67039371486466.e0089
-	dq	0x5547f203339c9629
-
-	dq	39064392446305.e-180
-	dq	0x1d626dae7bbeda75
-
-	dq	17796979903653.e0261
-	dq	0x78e072f3819c1321
-
-	dq	28921916763211.e0038
-	dq	0x4a9eebabe0957af3
-
-	dq	87605699161665.e0155
-	dq	0x6302920f96e7f9ef
-
-	dq	41921560615349.e-067
-	dq	0x34d9b2a5c4041e4b
-
-	dq	80527976643809.e0061
-	dq	0x4f7c7c5aea080a49
-
-	dq	72335858886654.e-159
-	dq	0x21cce77c2b3328fc
-
-	dq	52656615219377.e0102
-	dq	0x57f561def4a9ee32
-
-	dq	15400733123779.e-072
-	dq	0x33b8bf7e7fa6f02a
-
-	dq	77003665618895.e-073
-	dq	0x33a8bf7e7fa6f02a
-
-	dq	475603213226859.e-042
-	dq	0x3a42d73088f4050a
-
-	dq	972708181182949.e0116
-	dq	0x5b218a7f36172332
-
-	dq	246411729980464.e-071
-	dq	0x342eef5e1f90ac34
-
-	dq	123205864990232.e-071
-	dq	0x341eef5e1f90ac34
-
-	dq	609610927149051.e-255
-	dq	0x0e104273b18918b1
-
-	dq	475603213226859.e-041
-	dq	0x3a778cfcab31064d
-
-	dq	672574798934795.e0065
-	dq	0x508226c684c87261
-
-	dq	134514959786959.e0066
-	dq	0x509226c684c87261
-
-	dq	294897574603217.e-151
-	dq	0x2395f2df5e675a0f
-
-	dq	723047919080275.e0036
-	dq	0x4a7eebabe0957af3
-
-	dq	660191429952702.e-088
-	dq	0x30bddc7e975c5045
-
-	dq	330095714976351.e-088
-	dq	0x30addc7e975c5045
-
-	dq	578686871093232.e-159
-	dq	0x21fce77c2b3328fc
-
-	dq	144671717773308.e-159
-	dq	0x21dce77c2b3328fc
-
-	dq	385018328094475.e-074
-	dq	0x3398bf7e7fa6f02a
-
-	dq	330095714976351.e-089
-	dq	0x3077e3987916a69e
-
-	dq	2215901545757777.e-212
-	dq	0x171a80a6e566428c
-
-	dq	1702061899637397.e-276
-	dq	0x09cacc46749dccfe
-
-	dq	1864950924021923.e0213
-	dq	0x6f53ae60753af6ca
-
-	dq	3729901848043846.e0213
-	dq	0x6f63ae60753af6ca
-
-	dq	7487252720986826.e-165
-	dq	0x20f8823a57adbef9
-
-	dq	3743626360493413.e-165
-	dq	0x20e8823a57adbef9
-
-	dq	4988915232824583.e0119
-	dq	0x5be5f6de9d5d6b5b
-
-	dq	3771476185376383.e0277
-	dq	0x7cae3c14d6916ce9
-
-	dq	6182410494241627.e-119
-	dq	0x2a81b96458445d07
-
-	dq	2572981889477453.e0142
-	dq	0x609dfc11fbf46087
-
-	dq	7793560217139653.e0051
-	dq	0x4dd280461b856ec5
-
-	dq	9163942927285259.e-202
-	dq	0x194fe601457dce4d
-
-	dq	6353227084707473.e0155
-	dq	0x63650aff653ffe8a
-
-	dq	4431803091515554.e-211
-	dq	0x176090684f5fe998
-
-	dq	9324754620109615.e0211
-	dq	0x6f0f7d6721f7f144
-
-	dq	8870461176410409.e0263
-	dq	0x79d90529a37b7e22
-
-	dq	90372559027740405.e0143
-	dq	0x612491daad0ba280
-
-	dq	18074511805548081.e0146
-	dq	0x61a011f2d73116f4
-
-	dq	54897030182071313.e0029
-	dq	0x496ec55666d8f9ec
-
-	dq	76232626624829156.e-032
-	dq	0x3ccb7738011e75fe
-
-	dq	59898021767894608.e-165
-	dq	0x2128823a57adbef9
-
-	dq	29949010883947304.e-165
-	dq	0x2118823a57adbef9
-
-	dq	26153245263757307.e0049
-	dq	0x4d83de005bd620df
-
-	dq	27176258005319167.e-261
-	dq	0x0d27c0747bd76fa1
-
-	dq	18074511805548081.e0147
-	dq	0x61d4166f8cfd5cb1
-
-	dq	24691002732654881.e-115
-	dq	0x2b759a2783ce70ab
-
-	dq	58483921078398283.e0057
-	dq	0x4f408ce499519ce3
-
-	dq	64409240769861689.e-159
-	dq	0x22692238f7987779
-
-	dq	94080055902682397.e-242
-	dq	0x11364981e39e66ca
-
-	dq	31766135423537365.e0154
-	dq	0x63550aff653ffe8a
-
-	dq	68985865317742005.e0164
-	dq	0x657a999ddec72aca
-
-	dq	13797173063548401.e0165
-	dq	0x658a999ddec72aca
-
-	dq	902042358290366539.e-281
-	dq	0x09522dc01ca1cb8c
-
-	dq	238296178309629163.e0272
-	dq	0x7c038fd93f1f5342
-
-	dq	783308178698887621.e0226
-	dq	0x72925ae62cb346d8
-
-	dq	439176241456570504.e0029
-	dq	0x499ec55666d8f9ec
-
-	dq	899810892172646163.e0283
-	dq	0x7e6adf51fa055e03
-
-	dq	926145344610700019.e-225
-	dq	0x14f307a67f1f69ff
-
-	dq	653831131593932675.e0047
-	dq	0x4d63de005bd620df
-
-	dq	130766226318786535.e0048
-	dq	0x4d73de005bd620df
-
-	dq	557035730189854663.e-294
-	dq	0x0693bfac6bc4767b
-
-	dq	902042358290366539.e-280
-	dq	0x0986b93023ca3e6f
-
-	dq	272104041512242479.e0200
-	dq	0x6d13bbb4bf05f087
-
-	dq	544208083024484958.e0200
-	dq	0x6d23bbb4bf05f087
-
-	dq	680429695511221511.e0192
-	dq	0x6b808ebc116f8a20
-
-	dq	308975121073410857.e0236
-	dq	0x7490db75cc001072
-
-	dq	792644927852378159.e0078
-	dq	0x53d7bff336d8ff06
-
-	dq	783308178698887621.e0223
-	dq	0x71f2cbac35f71140
-
-	dq	8396094300569779681.e-252
-	dq	0x0f8ab223efcee35a
-
-	dq	3507665085003296281.e-074
-	dq	0x346b85c026a264e4
-
-	dq	7322325862592278999.e0074
-	dq	0x5336775b6caa5ae0
-
-	dq	6014546754280072926.e0209
-	dq	0x6f396397b06732a4
-
-	dq	7120190517612959703.e0120
-	dq	0x5cc3220dcd5899fd
-
-	dq	3507665085003296281.e-073
-	dq	0x34a1339818257f0f
-
-	dq	4345544743100783551.e-218
-	dq	0x168a9c42e5b6d89f
-
-	dq	9778613303868468131.e-090
-	dq	0x313146fe1075e1ef
-
-	dq	7539204280836061195.e-082
-	dq	0x32d3d969e3dbe723
-
-	dq	7862637540082247119.e-202
-	dq	0x19eaba3262ee707b
-
-	dq	2176832332097939832.e0200
-	dq	0x6d43bbb4bf05f087
-
-	dq	8643988913946659879.e0115
-	dq	0x5bbe71ec1ed0a4f9
-
-	dq	5529436763613147623.e0138
-	dq	0x6079c677be6f236e
-
-	dq	6764958008109694533.e-173
-	dq	0x1fed06692e6f5ef6
-
-	dq	6802601037806061975.e0197
-	dq	0x6cbf92bacb3cb40c
-
-	dq	1360520207561212395.e0198
-	dq	0x6ccf92bacb3cb40c
-
-	dq	62259110684423957791.e0047
-	dq	0x4dcd8f2cfc20d6e8
-
-	dq	88800290202542652011.e-226
-	dq	0x1526cec51a43f41a
-
-	dq	41010852717673354694.e-221
-	dq	0x162012954b6aabba
-
-	dq	20505426358836677347.e-221
-	dq	0x161012954b6aabba
-
-	dq	66102447903809911604.e0055
-	dq	0x4f7762068a24fd55
-
-	dq	35600952588064798515.e0119
-	dq	0x5cb3220dcd5899fd
-
-	dq	14371240869903838702.e0205
-	dq	0x6e78d92d2bcc7a81
-
-	dq	57500690832492901689.e0043
-	dq	0x4cf65d3e2acd616b
-
-	dq	23432630639573022093.e-107
-	dq	0x2dbdd54c40a2f25f
-
-	dq	62259110684423957791.e0048
-	dq	0x4e02797c1d948651
-
-	dq	35620497849450218807.e-306
-	dq	0x0475b22082529425
-
-	dq	69658634627134074624.e0200
-	dq	0x6d93bbb4bf05f087
-
-	dq	99440755792436956989.e-062
-	dq	0x37362d10462a26f4
-
-	dq	55277197169490210673.e0081
-	dq	0x54d945bfa911e32a
-
-	dq	36992084760177624177.e-318
-	dq	0x01f8c5f9551c2f9a
-
-	dq	30888265282878466443.e-111
-	dq	0x2cf01b8ef28251fc
-
-	dq	2.4703282292062327208828439643411068618252990130716238221279284125033775363510437593264991818081799618989828234772285886546332835517796989819938739800539093906315035659515570226392290858392449105184435931802849936536152500319370457678249219365623669863658480757001585769269903706311928279558551332927834338409351978015531246597263579574622766465272827220056374006485499977096599470454020828166226237857393450736339007967761930577506740176324673600968951340535537458516661134223766678604162159680461914467291840300530057530849048765391711386591646239524912623653881879636239373280423891018672348497668235089863388587925628302755995657524455507255189313690836254779186948667994968324049705821028513185451396213837722826145437693412532098591327667236328125e-324
-	dq	0x0000000000000000
-
-	dq	2.47032822920623272e-324
-	dq	0x0000000000000000
--- a/nasmbuild/nasm-2.13rc9/test/time.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,11 +0,0 @@
-;Not automatically testable because it is not constant
-	db __DATE__, 13, 10
-	db __TIME__, 13, 10
-	db __UTC_DATE__, 13, 10
-	db __UTC_TIME__, 13, 10
-	align 4
-	dd __DATE_NUM__
-	dd __TIME_NUM__
-	dd __UTC_DATE_NUM__
-	dd __UTC_TIME_NUM__
-	dd __POSIX_TIME__
--- a/nasmbuild/nasm-2.13rc9/test/times.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-	bits 64
-
-; Broken per BR 3392278
-	times 4 paddd xmm8, xmm11
-
-; Broken per BR 3392279
-	bswap r12d
-	times 4 bswap r12d
--- a/nasmbuild/nasm-2.13rc9/test/tmap.nas	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1447 +0,0 @@
-;; NASM note: this file abuses the section flags in such a way that
-;; NASM 0.98.37 broke when this was compiled with:
-;; nasm -o tmap.o -f elf -DLINUX tmap.nas
-
-;;-----------------------------------------------------------------------------
-;;
-;; $Id$
-;;
-;; Copyright (C) 1998-2000 by DooM Legacy Team.
-;;
-;; This program is free software; you can redistribute it and/or
-;; modify it under the terms of the GNU General Public License
-;; as published by the Free Software Foundation; either version 2
-;; of the License, or (at your option) any later version.
-;;
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-;; GNU General Public License for more details.
-;;
-;;
-;; $Log$
-;; Revision 1.2  2003/09/10 23:33:38  hpa
-;; Use the version of tmap.nas that actually caused problems
-;;
-;; Revision 1.10  2001/02/24 13:35:21  bpereira
-;; no message
-;;
-;; Revision 1.9  2001/02/10 15:24:19  hurdler
-;; Apply Rob's patch for Linux version
-;;
-;; Revision 1.8  2000/11/12 09:48:15  bpereira
-;; no message
-;;
-;; Revision 1.7  2000/11/06 20:52:16  bpereira
-;; no message
-;;
-;; Revision 1.6  2000/11/03 11:48:40  hurdler
-;; Fix compiling problem under win32 with 3D-Floors and FragglScript (to verify!)
-;;
-;; Revision 1.5  2000/11/03 03:27:17  stroggonmeth
-;; Again with the bug fixing...
-;;
-;; Revision 1.4  2000/11/02 17:50:10  stroggonmeth
-;; Big 3Dfloors & FraggleScript commit!!
-;;
-;; Revision 1.3  2000/04/24 20:24:38  bpereira
-;; no message
-;;
-;; Revision 1.2  2000/02/27 00:42:11  hurdler
-;; fix CR+LF problem
-;;
-;; Revision 1.1.1.1  2000/02/22 20:32:32  hurdler
-;; Initial import into CVS (v1.29 pr3)
-;;
-;;
-;; DESCRIPTION:
-;;      assembler optimised rendering code for software mode
-;;      draw floor spans, and wall columns.
-;;
-;;-----------------------------------------------------------------------------
-
-
-[BITS 32]
-
-%ifdef LINUX
-%macro cextern 1
-[extern %1]
-%endmacro
-
-%macro cglobal 1
-[global %1]
-%endmacro
-
-%define CODE_SEG .data
-%else
-%macro cextern 1
-%define %1 _%1
-[extern %1]
-%endmacro
-
-%macro cglobal 1
-%define %1 _%1
-[global %1]
-%endmacro
-
-%define CODE_SEG .text                         
-%endif
-
-
-;; externs
-;; columns
-cextern dc_x
-cextern dc_yl
-cextern dc_yh
-cextern ylookup
-cextern columnofs
-cextern dc_source
-cextern dc_texturemid
-cextern dc_iscale
-cextern centery
-cextern dc_colormap
-cextern dc_transmap
-cextern colormaps
-
-;; spans
-cextern ds_x1
-cextern ds_x2
-cextern ds_y
-cextern ds_xfrac
-cextern ds_yfrac
-cextern ds_xstep
-cextern ds_ystep
-cextern ds_source
-cextern ds_colormap
-;cextern ds_textureheight
-
-; polygon edge rasterizer
-cextern prastertab
-
-
-;;----------------------------------------------------------------------
-;;
-;; R_DrawColumn
-;;
-;; New  optimised version 10-01-1998 by D.Fabrice and P.Boris
-;; TO DO: optimise it much farther... should take at most 3 cycles/pix
-;;      once it's fixed, add code to patch the offsets so that it
-;;      works in every screen width.
-;;
-;;----------------------------------------------------------------------
-
-[SECTION .data]
-
-;;.align        4
-loopcount       dd      0
-pixelcount      dd      0
-tystep          dd      0
-
-[SECTION CODE_SEG write]
-
-;----------------------------------------------------------------------------
-;fixed_t FixedMul (fixed_t a, fixed_t b)
-;----------------------------------------------------------------------------
-cglobal FixedMul
-;       align   16
-FixedMul:
-        mov     eax,[esp+4]
-        imul    dword [esp+8]
-        shrd    eax,edx,16
-        ret
-
-;----------------------------------------------------------------------------
-;fixed_t FixedDiv2 (fixed_t a, fixed_t b);
-;----------------------------------------------------------------------------
-cglobal FixedDiv2
-;       align   16
-FixedDiv2:
-        mov     eax,[esp+4]
-        mov     edx,eax                 ;; these two instructions allow the next
-        sar     edx,31                  ;; two to pair, on the Pentium processor.
-        shld    edx,eax,16
-        sal     eax,16
-        idiv    dword [esp+8]
-        ret
-
-;----------------------------------------------------------------------------
-; void  ASM_PatchRowBytes (int rowbytes);
-;----------------------------------------------------------------------------
-cglobal ASM_PatchRowBytes
-;       align   16
-ASM_PatchRowBytes:
-        mov     eax,[esp+4]
-        mov     [p1+2],eax
-        mov     [p2+2],eax
-        mov     [p3+2],eax
-        mov     [p4+2],eax
-        mov     [p5+2],eax
-        mov     [p6+2],eax
-        mov     [p7+2],eax
-        mov     [p8+2],eax
-        mov     [p9+2],eax
-        mov     [pa+2],eax
-        mov     [pb+2],eax
-        mov     [pc+2],eax
-        mov     [pd+2],eax
-        mov     [pe+2],eax
-        mov     [pf+2],eax
-        mov     [pg+2],eax
-        mov     [ph+2],eax
-        mov     [pi+2],eax
-        mov     [pj+2],eax
-        mov     [pk+2],eax
-        mov     [pl+2],eax
-        mov     [pm+2],eax
-        mov     [pn+2],eax
-        mov     [po+2],eax
-        mov     [pp+2],eax
-        mov     [pq+2],eax
-        add     eax,eax
-        mov     [q1+2],eax
-        mov     [q2+2],eax
-        mov     [q3+2],eax
-        mov     [q4+2],eax
-        mov     [q5+2],eax
-        mov     [q6+2],eax
-        mov     [q7+2],eax
-        mov     [q8+2],eax
-        ret
-
-
-;----------------------------------------------------------------------------
-; 8bpp column drawer
-;----------------------------------------------------------------------------
-
-cglobal R_DrawColumn_8
-;       align   16
-R_DrawColumn_8:
-        push    ebp                     ;; preserve caller's stack frame pointer
-        push    esi                     ;; preserve register variables
-        push    edi
-        push    ebx
-;;
-;; dest = ylookup[dc_yl] + columnofs[dc_x];
-;;
-        mov     ebp,[dc_yl]
-        mov     ebx,ebp
-        mov     edi,[ylookup+ebx*4]
-        mov     ebx,[dc_x]
-        add     edi,[columnofs+ebx*4]  ;; edi = dest
-;;
-;; pixelcount = yh - yl + 1
-;;
-        mov     eax,[dc_yh]
-        inc     eax
-        sub     eax,ebp                 ;; pixel count
-        mov     [pixelcount],eax        ;; save for final pixel
-        jle     near vdone                   ;; nothing to scale
-;;
-;; frac = dc_texturemid - (centery-dc_yl)*fracstep;
-;;
-        mov     ecx,[dc_iscale]        ;; fracstep
-        mov     eax,[centery]
-        sub     eax,ebp
-        imul    eax,ecx
-        mov     edx,[dc_texturemid]
-        sub     edx,eax
-        mov     ebx,edx
-        shr     ebx,16                  ;; frac int.
-        and     ebx,0x7f
-        shl     edx,16                  ;; y frac up
-
-        mov     ebp,ecx
-        shl     ebp,16                  ;; fracstep f. up
-        shr     ecx,16                  ;; fracstep i. ->cl
-        and     cl,0x7f
-        mov     esi,[dc_source]
-;;
-;; lets rock :) !
-;;
-        mov     eax,[pixelcount]
-        mov     dh,al
-        shr     eax,2
-        mov     ch,al                   ;; quad count
-        mov     eax,[dc_colormap]
-        test    dh,0x3
-        je      near v4quadloop
-;;
-;;  do un-even pixel
-;;
-        test    dh,0x1
-        je      two_uneven
-
-        mov     al,[esi+ebx]            ;; prep un-even loops
-        add     edx,ebp                 ;; ypos f += ystep f
-        adc     bl,cl                   ;; ypos i += ystep i
-        mov     dl,[eax]                ;; colormap texel
-        and     bl,0x7f                 ;; mask 0-127 texture index
-        mov     [edi],dl                ;; output pixel
-p1:     add     edi,0x12345678
-;;
-;;  do two non-quad-aligned pixels
-;;
-two_uneven:
-        test    dh,0x2
-        je      f3
-
-        mov     al,[esi+ebx]            ;; fetch source texel
-        add     edx,ebp                 ;; ypos f += ystep f
-        adc     bl,cl                   ;; ypos i += ystep i
-        mov     dl,[eax]                ;; colormap texel
-        and     bl,0x7f                 ;; mask 0-127 texture index
-        mov     [edi],dl                ;; output pixel
-        mov     al,[esi+ebx]
-        add     edx,ebp                 ;; fetch source texel
-        adc     bl,cl                   ;; ypos f += ystep f
-        mov     dl,[eax]                ;; ypos i += ystep i
-        and     bl,0x7f                 ;; colormap texel
-p2:     add     edi,0x12345678          ;; mask 0-127 texture index
-        mov     [edi],dl
-p3:     add     edi,0x12345678          ;; output pixel
-;;
-;;  test if there was at least 4 pixels
-;;
-f3:
-        test    ch,0xff                 ;; test quad count
-        je      near vdone
-;;
-;; ebp : ystep frac. upper 16 bits
-;; edx : y     frac. upper 16 bits
-;; ebx : y     i.    lower 7 bits,  masked for index
-;; ecx : ch = counter, cl = y step i.
-;; eax : colormap aligned 256
-;; esi : source texture column
-;; edi : dest screen
-;;
-v4quadloop:
-        mov     dh,0x7f                 ;; prep mask
-align 4
-vquadloop:
-        mov     al,[esi+ebx]            ;; prep loop
-        add     edx,ebp                 ;; ypos f += ystep f
-        adc     bl,cl                   ;; ypos i += ystep i
-        mov     dl,[eax]                ;; colormap texel
-        mov     [edi],dl                ;; output pixel
-        and     bl,0x7f                 ;; mask 0-127 texture index
-
-        mov     al,[esi+ebx]            ;; fetch source texel
-        add     edx,ebp
-        adc     bl,cl
-p4:     add     edi,0x12345678
-        mov     dl,[eax]
-        and     bl,0x7f
-        mov     [edi],dl
-
-        mov     al,[esi+ebx]            ;; fetch source texel
-        add     edx,ebp
-        adc     bl,cl
-p5:     add     edi,0x12345678
-        mov     dl,[eax]
-        and     bl,0x7f
-        mov     [edi],dl
-
-        mov     al,[esi+ebx]            ;; fetch source texel
-        add     edx,ebp
-        adc     bl,cl
-p6:     add     edi,0x12345678
-        mov     dl,[eax]
-        and     bl,0x7f
-        mov     [edi],dl
-
-p7:     add     edi,0x12345678
-
-        dec     ch
-        jne     vquadloop
-
-vdone:
-        pop     ebx                     ;; restore register variables
-        pop     edi
-        pop     esi
-        pop     ebp                     ;; restore caller's stack frame pointer
-        ret
-
-;;----------------------------------------------------------------------
-;;13-02-98:
-;;      R_DrawSkyColumn : same as R_DrawColumn but:
-;;
-;;      - wrap around 256 instead of 127.
-;;      this is needed because we have a higher texture for mouselook,
-;;      we need at least 200 lines for the sky.
-;;
-;;      NOTE: the sky should never wrap, so it could use a faster method.
-;;            for the moment, we'll still use a wrapping method...
-;;
-;;      IT S JUST A QUICK CUT N PASTE, WAS NOT OPTIMISED AS IT SHOULD BE !!!
-;;
-;;----------------------------------------------------------------------
-
-cglobal R_DrawSkyColumn_8
-;       align   16
-R_DrawSkyColumn_8:
-        push    ebp
-        push    esi
-        push    edi
-        push    ebx
-;;
-;; dest = ylookup[dc_yl] + columnofs[dc_x];
-;;
-        mov     ebp,[dc_yl]
-        mov     ebx,ebp
-        mov     edi,[ylookup+ebx*4]
-        mov     ebx,[dc_x]
-        add     edi,[columnofs+ebx*4]   ;; edi = dest
-;;
-;; pixelcount = yh - yl + 1
-;;
-        mov     eax,[dc_yh]
-        inc     eax
-        sub     eax,ebp                 ;; pixel count
-        mov     [pixelcount],eax        ;; save for final pixel
-        jle     near    vskydone        ;; nothing to scale
-;;
-;; frac = dc_texturemid - (centery-dc_yl)*fracstep;
-;;
-        mov     ecx,[dc_iscale]        ;; fracstep
-        mov     eax,[centery]
-        sub     eax,ebp
-        imul    eax,ecx
-        mov     edx,[dc_texturemid]
-        sub     edx,eax
-        mov     ebx,edx
-        shr     ebx,16                  ;; frac int.
-        and     ebx,0xff
-        shl     edx,16                  ;; y frac up
-        mov     ebp,ecx
-        shl     ebp,16                  ;; fracstep f. up
-        shr     ecx,16                  ;; fracstep i. ->cl
-        mov     esi,[dc_source]
-;;
-;; lets rock :) !
-;;
-        mov     eax,[pixelcount]
-        mov     dh,al
-        shr     eax,0x2
-        mov     ch,al                   ;; quad count
-        mov     eax,[dc_colormap]
-        test    dh,0x3
-        je      vskyquadloop
-;;
-;;  do un-even pixel
-;;
-        test    dh,0x1
-        je      f2
-        mov     al,[esi+ebx]            ;; prep un-even loops
-        add     edx,ebp                 ;; ypos f += ystep f
-        adc     bl,cl                   ;; ypos i += ystep i
-        mov     dl,[eax]                ;; colormap texel
-        mov     [edi],dl                ;; output pixel
-p8:     add     edi,0x12345678
-;;
-;;  do two non-quad-aligned pixels
-;;
-f2:     test    dh,0x2
-        je      skyf3
-
-        mov     al,[esi+ebx]            ;; fetch source texel
-        add     edx,ebp                 ;; ypos f += ystep f
-        adc     bl,cl                   ;; ypos i += ystep i
-        mov     dl,[eax]                ;; colormap texel
-        mov     [edi],dl                ;; output pixel
-
-        mov     al,[esi+ebx]            ;; fetch source texel
-        add     edx,ebp                 ;; ypos f += ystep f
-        adc     bl,cl                   ;; ypos i += ystep i
-        mov     dl,[eax]                ;; colormap texel
-p9:     add     edi,0x12345678
-        mov     [edi],dl                ;; output pixel
-
-pa:     add     edi,0x12345678
-;;
-;;  test if there was at least 4 pixels
-;;
-skyf3:  test    ch,0xff                 ;; test quad count
-        je      vskydone
-;;
-;; ebp : ystep frac. upper 24 bits
-;; edx : y     frac. upper 24 bits
-;; ebx : y     i.    lower 7 bits,  masked for index
-;; ecx : ch = counter, cl = y step i.
-;; eax : colormap aligned 256
-;; esi : source texture column
-;; edi : dest screen
-;;
-align 4
-vskyquadloop:
-        mov     al,[esi+ebx]            ;; prep loop
-        add     edx,ebp                 ;; ypos f += ystep f
-        mov     dl,[eax]                ;; colormap texel
-        adc     bl,cl                   ;; ypos i += ystep i
-        mov     [edi],dl                ;; output pixel
-
-        mov     al,[esi+ebx]            ;; fetch source texel
-        add     edx,ebp
-        adc     bl,cl
-pb:     add     edi,0x12345678
-        mov     dl,[eax]
-        mov     [edi],dl
-
-        mov     al,[esi+ebx]            ;; fetch source texel
-        add     edx,ebp
-        adc     bl,cl
-pc:     add     edi,0x12345678
-        mov     dl,[eax]
-        mov     [edi],dl
-
-        mov     al,[esi+ebx]            ;; fetch source texel
-        add     edx,ebp
-        adc     bl,cl
-pd:     add     edi,0x12345678
-        mov     dl,[eax]
-        mov     [edi],dl
-
-pe:     add     edi,0x12345678
-
-        dec     ch
-        jne     vskyquadloop
-vskydone:
-        pop     ebx
-        pop     edi
-        pop     esi
-        pop     ebp
-        ret
-
-
-;;----------------------------------------------------------------------
-;; R_DrawTranslucentColumn_8
-;;
-;; Vertical column texture drawer, with transparency. Replaces Doom2's
-;; 'fuzz' effect, which was not so beautiful.
-;; Transparency is always impressive in some way, don't know why...
-;;----------------------------------------------------------------------
-
-cglobal R_DrawTranslucentColumn_8
-R_DrawTranslucentColumn_8:
-        push    ebp                     ;; preserve caller's stack frame pointer
-        push    esi                     ;; preserve register variables
-        push    edi
-        push    ebx
-;;
-;; dest = ylookup[dc_yl] + columnofs[dc_x];
-;;
-        mov     ebp,[dc_yl]
-        mov     ebx,ebp
-        mov     edi,[ylookup+ebx*4]
-        mov     ebx,[dc_x]
-        add     edi,[columnofs+ebx*4]   ;; edi = dest
-;;
-;; pixelcount = yh - yl + 1
-;;
-        mov     eax,[dc_yh]
-        inc     eax
-        sub     eax,ebp                 ;; pixel count
-        mov     [pixelcount],eax        ;; save for final pixel
-        jle     near    vtdone         ;; nothing to scale
-;;
-;; frac = dc_texturemid - (centery-dc_yl)*fracstep;
-;;
-        mov     ecx,[dc_iscale]        ;; fracstep
-        mov     eax,[centery]
-        sub     eax,ebp
-        imul    eax,ecx
-        mov     edx,[dc_texturemid]
-        sub     edx,eax
-        mov     ebx,edx
-
-        shr     ebx,16                  ;; frac int.
-        and     ebx,0x7f
-        shl     edx,16                  ;; y frac up
-
-        mov     ebp,ecx
-        shl     ebp,16                  ;; fracstep f. up
-        shr     ecx,16                  ;; fracstep i. ->cl
-        and     cl,0x7f
-        push    cx
-        mov     ecx,edx
-        pop     cx
-        mov     edx,[dc_colormap]
-        mov     esi,[dc_source]
-;;
-;; lets rock :) !
-;;
-        mov     eax,[pixelcount]
-        shr     eax,0x2
-        test    byte [pixelcount],0x3
-        mov     ch,al                   ;; quad count
-        mov     eax,[dc_transmap]
-        je      vt4quadloop
-;;
-;;  do un-even pixel
-;;
-        test    byte [pixelcount],0x1
-        je      trf2
-
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        add     ecx,ebp
-        adc     bl,cl
-        mov     al,[edi]                ;; fetch dest  : index into colormap
-        and     bl,0x7f
-        mov     dl,[eax]
-        mov     dl,[edx]
-        mov     [edi],dl
-pf:     add     edi,0x12345678
-;;
-;;  do two non-quad-aligned pixels
-;;
-trf2:    test    byte [pixelcount],0x2
-        je      trf3
-
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        add     ecx,ebp
-        adc     bl,cl
-        mov     al,[edi]                ;; fetch dest  : index into colormap
-        and     bl,0x7f
-        mov     dl,[eax]
-        mov     dl,[edx]
-        mov     [edi],dl
-pg:     add     edi,0x12345678
-
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        add     ecx,ebp
-        adc     bl,cl
-        mov     al,[edi]                ;; fetch dest  : index into colormap
-        and     bl,0x7f
-        mov     dl,[eax]
-        mov     dl,[edx]
-        mov     [edi],dl
-ph:     add     edi,0x12345678
-;;
-;;  test if there was at least 4 pixels
-;;
-trf3:   test    ch,0xff                 ;; test quad count
-        je near vtdone
-
-;;
-;; ebp : ystep frac. upper 24 bits
-;; edx : y     frac. upper 24 bits
-;; ebx : y     i.    lower 7 bits,  masked for index
-;; ecx : ch = counter, cl = y step i.
-;; eax : colormap aligned 256
-;; esi : source texture column
-;; edi : dest screen
-;;
-vt4quadloop:
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        mov     [tystep],ebp
-pi:     add     edi,0x12345678
-        mov     al,[edi]                ;; fetch dest  : index into colormap
-pj:     sub     edi,0x12345678
-        mov     ebp,edi
-pk:     sub     edi,0x12345678
-        jmp short inloop
-align 4
-vtquadloop:
-        add     ecx,[tystep]
-        adc     bl,cl
-q1:     add     ebp,0x23456789
-        and     bl,0x7f
-        mov     dl,[eax]
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        mov     dl,[edx]
-        mov     [edi],dl
-        mov     al,[ebp]                ;; fetch dest   : index into colormap
-inloop:
-        add     ecx,[tystep]
-        adc     bl,cl
-q2:     add     edi,0x23456789
-        and     bl,0x7f
-        mov     dl,[eax]
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        mov     dl,[edx]
-        mov     [ebp+0x0],dl
-        mov     al,[edi]                ;; fetch dest   : index into colormap
-
-        add     ecx,[tystep]
-        adc     bl,cl
-q3:     add     ebp,0x23456789
-        and     bl,0x7f
-        mov     dl,[eax]
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        mov     dl,[edx]
-        mov     [edi],dl
-        mov     al,[ebp]                ;; fetch dest   : index into colormap
-
-        add     ecx,[tystep]
-        adc     bl,cl
-q4:     add     edi,0x23456789
-        and     bl,0x7f
-        mov     dl,[eax]
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        mov     dl,[edx]
-        mov     [ebp],dl
-        mov     al,[edi]                ;; fetch dest   : index into colormap
-
-        dec     ch
-        jne     vtquadloop
-vtdone:
-        pop     ebx
-        pop     edi
-        pop     esi
-        pop     ebp
-        ret
-
-
-;;----------------------------------------------------------------------
-;; R_DrawShadeColumn
-;;
-;;   for smoke..etc.. test.
-;;----------------------------------------------------------------------
-cglobal R_DrawShadeColumn_8
-R_DrawShadeColumn_8:
-        push    ebp                     ;; preserve caller's stack frame pointer
-        push    esi                     ;; preserve register variables
-        push    edi
-        push    ebx
-
-;;
-;; dest = ylookup[dc_yl] + columnofs[dc_x];
-;;
-        mov     ebp,[dc_yl]
-        mov     ebx,ebp
-        mov     edi,[ylookup+ebx*4]
-        mov     ebx,[dc_x]
-        add     edi,[columnofs+ebx*4]  ;; edi = dest
-;;
-;; pixelcount = yh - yl + 1
-;;
-        mov     eax,[dc_yh]
-        inc     eax
-        sub     eax,ebp                 ;; pixel count
-        mov     [pixelcount],eax       ;; save for final pixel
-        jle near shdone                ;; nothing to scale
-;;
-;; frac = dc_texturemid - (centery-dc_yl)*fracstep;
-;;
-        mov     ecx,[dc_iscale]        ;; fracstep
-        mov     eax,[centery]
-        sub     eax,ebp
-        imul    eax,ecx
-        mov     edx,[dc_texturemid]
-        sub     edx,eax
-        mov     ebx,edx
-        shr     ebx,16                  ;; frac int.
-        and     ebx,byte +0x7f
-        shl     edx,16                  ;; y frac up
-
-        mov     ebp,ecx
-        shl     ebp,16                  ;; fracstep f. up
-        shr     ecx,16                  ;; fracstep i. ->cl
-        and     cl,0x7f
-
-        mov     esi,[dc_source]
-;;
-;; lets rock :) !
-;;
-        mov     eax,[pixelcount]
-        mov     dh,al
-        shr     eax,2
-        mov     ch,al                   ;; quad count
-        mov     eax,[colormaps]
-        test    dh,3
-        je      sh4quadloop
-;;
-;;  do un-even pixel
-;;
-        test    dh,0x1
-        je      shf2
-
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        add     edx,ebp
-        adc     bl,cl
-        mov     al,[edi]                ;; fetch dest  : index into colormap
-        and     bl,0x7f
-        mov     dl,[eax]
-        mov     [edi],dl
-pl:     add     edi,0x12345678
-;;
-;;  do two non-quad-aligned pixels
-;;
-shf2:
-        test    dh,0x2
-        je      shf3
-
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        add     edx,ebp
-        adc     bl,cl
-        mov     al,[edi]                ;; fetch dest  : index into colormap
-        and     bl,0x7f
-        mov     dl,[eax]
-        mov     [edi],dl
-pm:     add     edi,0x12345678
-
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        add     edx,ebp
-        adc     bl,cl
-        mov     al,[edi]                ;; fetch dest  : index into colormap
-        and     bl,0x7f
-        mov     dl,[eax]
-        mov     [edi],dl
-pn:     add     edi,0x12345678
-;;
-;;  test if there was at least 4 pixels
-;;
-shf3:
-        test    ch,0xff                 ;; test quad count
-        je near shdone
-
-;;
-;; ebp : ystep frac. upper 24 bits
-;; edx : y     frac. upper 24 bits
-;; ebx : y     i.    lower 7 bits,  masked for index
-;; ecx : ch = counter, cl = y step i.
-;; eax : colormap aligned 256
-;; esi : source texture column
-;; edi : dest screen
-;;
-sh4quadloop:
-        mov     dh,0x7f                 ;; prep mask
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        mov     [tystep],ebp
-po:     add     edi,0x12345678
-        mov     al,[edi]                ;; fetch dest  : index into colormap
-pp:     sub     edi,0x12345678
-        mov     ebp,edi
-pq:     sub     edi,0x12345678
-        jmp short shinloop
-
-align  4
-shquadloop:
-        add     edx,[tystep]
-        adc     bl,cl
-        and     bl,dh
-q5:     add     ebp,0x12345678
-        mov     dl,[eax]
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        mov     [edi],dl
-        mov     al,[ebp]                ;; fetch dest : index into colormap
-shinloop:
-        add     edx,[tystep]
-        adc     bl,cl
-        and     bl,dh
-q6:     add     edi,0x12345678
-        mov     dl,[eax]
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        mov     [ebp],dl
-        mov     al,[edi]                ;; fetch dest : index into colormap
-
-        add     edx,[tystep]
-        adc     bl,cl
-        and     bl,dh
-q7:     add     ebp,0x12345678
-        mov     dl,[eax]
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        mov     [edi],dl
-        mov     al,[ebp]                ;; fetch dest : index into colormap
-
-        add     edx,[tystep]
-        adc     bl,cl
-        and     bl,dh
-q8:     add     edi,0x12345678
-        mov     dl,[eax]
-        mov     ah,[esi+ebx]            ;; fetch texel : colormap number
-        mov     [ebp],dl
-        mov     al,[edi]                ;; fetch dest : index into colormap
-
-        dec     ch
-        jne     shquadloop
-
-shdone:
-        pop     ebx                     ;; restore register variables
-        pop     edi
-        pop     esi
-        pop     ebp                     ;; restore caller's stack frame pointer
-        ret
-
-
-
-;;----------------------------------------------------------------------
-;;
-;;      R_DrawSpan
-;;
-;;      Horizontal texture mapping
-;;
-;;----------------------------------------------------------------------
-
-
-[SECTION .data]
-
-oldcolormap     dd      0
-
-[SECTION CODE_SEG write]
-
-cglobal R_DrawSpan_8
-R_DrawSpan_8:
-        push    ebp                     ;; preserve caller's stack frame pointer
-        push    esi                     ;; preserve register variables
-        push    edi
-        push    ebx
-;;
-;; initilise registers
-;;
-  
-        mov     edx, [ds_xfrac]
-        mov     eax, [ds_ystep]
-        ror     edx, 14
-        ror     eax, 15
-        mov      bl, dl
-        mov     ecx, [ds_xstep]
-        mov      dh, al
-        mov      ax, 1
-        mov     [tystep], eax
-
-
-        mov     eax, [ds_yfrac]
-        ror     ecx, 13
-        ror     eax, 16
-        mov      dl, cl
-        mov      bh, al
-        xor      cx, cx
-        and     ebx, 0x3fff
-        mov     [pixelcount],ecx
-
-        mov     ecx, [ds_x2]
-        mov     edi, [ds_y]
-        mov     esi, [ds_x1]
-        mov     edi, [ylookup+edi*4]
-        mov     ebp, ebx
-        add     edi, [columnofs+esi*4]
-        sub     esi, ecx                ;; pixel count
-        shr     ebp, 2
-        mov     ecx, [ds_colormap]
-        mov      ax, si
-        mov     esi, [ds_source]
-        sar      ax,1
-        jnc     near .midloop           ;; check parity
-
-;   summary
-; edx = high16bit xfrac[0..13], ah=ystep[16..24] al=xtep[14..21]
-; ebx = high16bit =0, bh=yfrac[16..24], bl=xfrac[14..21] 
-; ecx = colormap table cl=0 (colormap is aligned 8 bits)
-; eax = high16bit yfrac[0..15], dx = count
-; esi = flat texture source
-; edi = screeen buffer destination
-; ebp = work register
-; pixelcount = high16bit xstep[0..13] rest to 0
-; tystep     = high16bit ystep[0..15] low 16 bit = 2 (increment of count)
-
-align 4
-.loop
-        add     eax, [tystep]
-         mov      cl, [esi+ebp]
-        adc      bh, dh
-         mov      cl, [ecx]
-        and      bh, 0x3f 
-         mov   [edi], cl
-        mov     ebp, ebx        
-         inc     edi
-         shr     ebp, 2
-
-.midloop:
-        add     edx, [pixelcount]
-         mov      cl, [esi+ebp]
-        adc      bl, dl
-         mov      cl, [ecx]
-        mov     ebp, ebx 
-         mov   [edi], cl
-        inc     edi
-         shr     ebp, 2
-
-        test    eax, 0xffff
-        jnz     near .loop
-
-.hdone: pop     ebx                     ;; restore register variables
-        pop     edi
-        pop     esi
-        pop     ebp                     ;; restore caller's stack frame pointer
-        ret
-
-
-[SECTION .data]
-
-obelix          dd      0
-etaussi         dd      0
-
-[SECTION CODE_SEG]
-
-cglobal R_DrawSpan_8_old
-R_DrawSpan_8_old:
-        push    ebp                     ;; preserve caller's stack frame pointer
-        push    esi                     ;; preserve register variables
-        push    edi
-        push    ebx
-;;
-;; find loop count
-;;
-        mov     eax,[ds_x2]
-        inc     eax
-        sub     eax,[ds_x1]             ;; pixel count
-        mov     [pixelcount],eax        ;; save for final pixel
-        js near .hdone                  ;; nothing to scale
-        shr     eax,0x1                 ;; double pixel count
-        mov     [loopcount],eax
-;;
-;; build composite position
-;;
-        mov     ebp,[ds_xfrac]
-        shl     ebp,10
-        and     ebp,0xffff0000
-        mov     eax,[ds_yfrac]
-        shr     eax,6
-        and     eax,0xffff
-        mov     edi,[ds_y]
-        or      ebp,eax
-
-        mov     esi,[ds_source]
-;;
-;; calculate screen dest
-;;
-        mov     edi,[ylookup+edi*4]
-        mov     eax,[ds_x1]
-        add     edi,[columnofs+eax*4]
-;;
-;; build composite step
-;;
-        mov     ebx,[ds_xstep]
-        shl     ebx,10
-        and     ebx,0xffff0000
-        mov     eax,[ds_ystep]
-        shr     eax,6
-        and     eax,0xffff
-        or      ebx,eax
-
-        mov     [obelix],ebx
-        mov     [etaussi],esi
-
-;; %eax      aligned colormap
-;; %ebx      aligned colormap
-;; %ecx,%edx  scratch
-;; %esi      virtual source
-;; %edi      moving destination pointer
-;; %ebp      frac
-
-        mov     eax,[ds_colormap]
-        mov     ecx,ebp
-        add     ebp,ebx                 ;; advance frac pointer
-        shr     cx,10
-        rol     ecx,6
-        and     ecx,4095                ;; finish calculation for third pixel
-        mov     edx,ebp
-        shr     dx,10
-        rol     edx,6
-        add     ebp,ebx                 ;; advance frac pointer
-        and     edx,4095                ;; finish calculation for fourth pixel
-        mov     ebx,eax
-        mov     al,[esi+ecx]            ;; get first pixel
-        mov     bl,[esi+edx]            ;; get second pixel
-
-        test dword [pixelcount],0xfffffffe
-
-        mov     dl,[eax]                ;; color translate first pixel
-
-;;      movw    $0xf0f0,%dx             ;;see visplanes start
-
-        je      .hchecklast
-
-        mov     dh,[ebx]                ;; color translate second pixel
-        mov     esi,[loopcount]
-align 4
-.hdoubleloop:
-        mov     ecx,ebp
-        shr     cx,10
-        rol     ecx,6
-         add     ebp,[obelix]            ;; advance frac pointer
-        mov     [edi],dx                ;; write first pixel
-         and     ecx,4095                ;; finish calculation for third pixel
-        mov     edx,ebp
-        shr     dx,10
-        rol     edx,6
-         add     ecx,[etaussi]
-        and     edx,4095                ;; finish calculation for fourth pixel
-         mov     al,[ecx]                ;; get third pixel
-        add     ebp,[obelix]            ;; advance frac pointer
-         add     edx,[etaussi]
-        mov     bl,[edx]                ;; get fourth pixel
-         mov     dl,[eax]                ;; color translate third pixel
-        add     edi,byte +0x2           ;; advance to third pixel destination
-         dec     esi                     ;; done with loop?
-        mov     dh,[ebx]                ;; color translate fourth pixel
-         jne     .hdoubleloop
-;; check for final pixel
-.hchecklast:
-        test dword [pixelcount],0x1
-        je      .hdone
-        mov     [edi],dl                ;; write final pixel
-.hdone: pop     ebx                     ;; restore register variables
-        pop     edi
-        pop     esi
-        pop     ebp                     ;; restore caller's stack frame pointer
-        ret
-
-
-;; ========================================================================
-;;  Rasterization des segments d'un polyg“ne textur‚ de maniŠre LINEAIRE.
-;;  Il s'agit donc d'interpoler les coordonn‚es aux bords de la texture en
-;;  mˆme temps que les abscisses minx/maxx pour chaque ligne.
-;;  L'argument 'dir' indique quels bords de la texture sont interpolés:
-;;    0 : segments associ‚s aux bord SUPERIEUR et INFERIEUR ( TY constant )
-;;    1 : segments associ‚s aux bord GAUCHE    et DROITE    ( TX constant )
-;; ========================================================================
-;;
-;;  void   rasterize_segment_tex( LONG x1, LONG y1, LONG x2, LONG y2, LONG tv1, LONG tv2, LONG tc, LONG dir );
-;;                                   ARG1     ARG2     ARG3     ARG4      ARG5      ARG6     ARG7       ARG8
-;;
-;;  Pour dir = 0, (tv1,tv2) = (tX1,tX2), tc = tY, en effet TY est constant.
-;;
-;;  Pour dir = 1, (tv1,tv2) = (tY1,tY2), tc = tX, en effet TX est constant.
-;;
-;;
-;;  Uses:  extern struct rastery *_rastertab;
-;;
-
-[SECTION CODE_SEG write]
-
-MINX            EQU    0
-MAXX            EQU    4
-TX1             EQU    8
-TY1             EQU    12
-TX2             EQU    16
-TY2             EQU    20
-RASTERY_SIZEOF  EQU    24
-
-cglobal rasterize_segment_tex
-rasterize_segment_tex:
-        push    ebp
-        mov     ebp,esp
-
-        sub     esp,byte +0x8           ;; alloue les variables locales
-
-        push    ebx
-        push    esi
-        push    edi
-        o16 mov ax,es
-        push    eax
-
-;;        #define DX       [ebp-4]
-;;        #define TD       [ebp-8]
-
-        mov     eax,[ebp+0xc]           ;; y1
-        mov     ebx,[ebp+0x14]          ;; y2
-        cmp     ebx,eax
-        je near .L_finished             ;; special (y1==y2) segment horizontal, exit!
-
-        jg near .L_rasterize_right
-
-;;rasterize_left:       ;; on rasterize un segment … la GAUCHE du polyg“ne
-
-        mov     ecx,eax
-        sub     ecx,ebx
-        inc     ecx                     ;; y1-y2+1
-
-        mov     eax,RASTERY_SIZEOF
-        mul     ebx                     ;; * y2
-        mov     esi,[prastertab]
-        add     esi,eax                 ;; point into rastertab[y2]
-
-        mov     eax,[ebp+0x8]           ;; ARG1
-        sub     eax,[ebp+0x10]          ;; ARG3
-        shl     eax,0x10                ;;     ((x1-x2)<<PRE) ...
-        cdq
-        idiv    ecx                     ;; dx =     ...        / (y1-y2+1)
-        mov     [ebp-0x4],eax           ;; DX
-
-        mov     eax,[ebp+0x18]          ;; ARG5
-        sub     eax,[ebp+0x1c]          ;; ARG6
-        shl     eax,0x10
-        cdq
-        idiv    ecx                     ;;      tdx =((tx1-tx2)<<PRE) / (y1-y2+1)
-        mov     [ebp-0x8],eax           ;; idem tdy =((ty1-ty2)<<PRE) / (y1-y2+1)
-
-        mov     eax,[ebp+0x10]          ;; ARG3
-        shl     eax,0x10                ;; x = x2<<PRE
-
-        mov     ebx,[ebp+0x1c]          ;; ARG6
-        shl     ebx,0x10                ;; tx = tx2<<PRE    d0
-                                        ;; ty = ty2<<PRE    d1
-        mov     edx,[ebp+0x20]          ;; ARG7
-        shl     edx,0x10                ;; ty = ty<<PRE     d0
-                                        ;; tx = tx<<PRE     d1
-        push    ebp
-        mov     edi,[ebp-0x4]           ;; DX
-        cmp     dword [ebp+0x24],byte +0x0      ;; ARG8   direction ?
-
-        mov     ebp,[ebp-0x8]           ;; TD
-        je      .L_rleft_h_loop
-;;
-;; TY varie, TX est constant
-;;
-.L_rleft_v_loop:
-        mov     [esi+MINX],eax           ;; rastertab[y].minx = x
-          add     ebx,ebp
-        mov     [esi+TX1],edx           ;;             .tx1  = tx
-          add     eax,edi
-        mov     [esi+TY1],ebx           ;;             .ty1  = ty
-
-        ;;addl    DX, %eax        // x     += dx
-        ;;addl    TD, %ebx        // ty    += tdy
-
-        add     esi,RASTERY_SIZEOF      ;; next raster line into rastertab[]
-        dec     ecx
-        jne     .L_rleft_v_loop
-        pop     ebp
-        jmp     .L_finished
-;;
-;; TX varie, TY est constant
-;;
-.L_rleft_h_loop:
-        mov     [esi+MINX],eax           ;; rastertab[y].minx = x
-          add     eax,edi
-        mov     [esi+TX1],ebx           ;;             .tx1  = tx
-          add     ebx,ebp
-        mov     [esi+TY1],edx           ;;             .ty1  = ty
-
-        ;;addl    DX, %eax        // x     += dx
-        ;;addl    TD, %ebx        // tx    += tdx
-
-        add     esi,RASTERY_SIZEOF      ;; next raster line into rastertab[]
-        dec     ecx
-        jne     .L_rleft_h_loop
-        pop     ebp
-        jmp     .L_finished
-;;
-;; on rasterize un segment … la DROITE du polyg“ne
-;;
-.L_rasterize_right:
-        mov     ecx,ebx
-        sub     ecx,eax
-        inc     ecx                     ;; y2-y1+1
-
-        mov     ebx,RASTERY_SIZEOF
-        mul     ebx                     ;;   * y1
-        mov     esi,[prastertab]
-        add     esi,eax                 ;;  point into rastertab[y1]
-
-        mov     eax,[ebp+0x10]          ;; ARG3
-        sub     eax,[ebp+0x8]           ;; ARG1
-        shl     eax,0x10                ;; ((x2-x1)<<PRE) ...
-        cdq
-        idiv    ecx                     ;;  dx =     ...        / (y2-y1+1)
-        mov     [ebp-0x4],eax           ;; DX
-
-        mov     eax,[ebp+0x1c]          ;; ARG6
-        sub     eax,[ebp+0x18]          ;; ARG5
-        shl     eax,0x10
-        cdq
-        idiv    ecx                     ;;       tdx =((tx2-tx1)<<PRE) / (y2-y1+1)
-        mov     [ebp-0x8],eax           ;;  idem tdy =((ty2-ty1)<<PRE) / (y2-y1+1)
-
-        mov     eax,[ebp+0x8]           ;; ARG1
-        shl     eax,0x10                ;; x  = x1<<PRE
-
-        mov     ebx,[ebp+0x18]          ;; ARG5
-        shl     ebx,0x10                ;; tx = tx1<<PRE    d0
-                                        ;; ty = ty1<<PRE    d1
-        mov     edx,[ebp+0x20]          ;; ARG7
-        shl     edx,0x10                ;; ty = ty<<PRE     d0
-                                        ;; tx = tx<<PRE     d1
-        push    ebp
-        mov     edi,[ebp-0x4]           ;; DX
-
-        cmp     dword [ebp+0x24], 0     ;; direction ?
-
-         mov     ebp,[ebp-0x8]          ;; TD
-        je      .L_rright_h_loop
-;;
-;; TY varie, TX est constant
-;;
-.L_rright_v_loop:
-
-        mov     [esi+MAXX],eax           ;; rastertab[y].maxx = x
-          add     ebx,ebp
-        mov     [esi+TX2],edx          ;;             .tx2  = tx
-          add     eax,edi
-        mov     [esi+TY2],ebx          ;;             .ty2  = ty
-
-        ;;addl    DX, %eax        // x     += dx
-        ;;addl    TD, %ebx        // ty    += tdy
-
-        add     esi,RASTERY_SIZEOF
-        dec     ecx
-        jne     .L_rright_v_loop
-
-        pop     ebp
-
-        jmp     short .L_finished
-;;
-;; TX varie, TY est constant
-;;
-.L_rright_h_loop:
-        mov     [esi+MAXX],eax           ;; rastertab[y].maxx = x
-          add     eax,edi
-        mov     [esi+TX2],ebx          ;;             .tx2  = tx
-          add     ebx,ebp
-        mov     [esi+TY2],edx          ;;             .ty2  = ty
-
-        ;;addl    DX, %eax        // x     += dx
-        ;;addl    TD, %ebx        // tx    += tdx
-
-        add     esi,RASTERY_SIZEOF
-        dec     ecx
-        jne     .L_rright_h_loop
-
-        pop     ebp
-
-.L_finished:
-        pop     eax
-        o16 mov es,ax
-        pop     edi
-        pop     esi
-        pop     ebx
-
-        mov     esp,ebp
-        pop     ebp
-        ret
-
-
-;;; this version can draw 64x64 tiles, but they would have to be arranged 4 per row,
-;; so that the stride from one line to the next is 256
-;;
-;; .data
-;;xstep         dd      0
-;;ystep         dd      0
-;;texwidth      dd      64              ;; texture width
-;; .text
-;; this code is kept in case we add high-detail floor textures for example (256x256)
-;       align   16
-;_R_DrawSpan_8:
-;       push ebp                        ;; preserve caller's stack frame pointer
-;       push esi                        ;; preserve register variables
-;       push edi
-;       push ebx
-;;
-;; find loop count
-;;
-;       mov eax,[ds_x2]
-;       inc eax
-;       sub eax,[ds_x1]                 ;; pixel count
-;       mov [pixelcount],eax            ;; save for final pixel
-;       js near .hdone                  ;; nothing to scale
-;;
-;; calculate screen dest
-;;
-;       mov edi,[ds_y]
-;       mov edi,[ylookup+edi*4]
-;       mov eax,[ds_x1]
-;       add edi,[columnofs+eax*4]
-;;
-;; prepare registers for inner loop
-;;
-;       xor eax,eax
-;       mov edx,[ds_xfrac]
-;       ror edx,16
-;       mov al,dl
-;       mov ecx,[ds_yfrac]
-;       ror ecx,16
-;       mov ah,cl
-;
-;       mov ebx,[ds_xstep]
-;       ror ebx,16
-;       mov ch,bl
-;       and ebx,0xffff0000
-;       mov [xstep],ebx
-;       mov ebx,[ds_ystep]
-;       ror ebx,16
-;       mov dh,bl
-;       and ebx,0xffff0000
-;       mov [ystep],ebx
-;
-;       mov esi,[ds_source]
-;
-;;; %eax      Yi,Xi in %ah,%al
-;;; %ebx      aligned colormap
-;;; %ecx      Yfrac upper, dXi in %ch, %cl is counter (upto 1024pels, =4x256)
-;;; %edx      Xfrac upper, dYi in %dh, %dl receives mapped pixels from (ebx)
-;;;  ystep    dYfrac, add to %ecx, low word is 0
-;;;  xstep    dXfrac, add to %edx, low word is 0
-;;; %ebp      temporary register serves as offset like %eax
-;;; %esi      virtual source
-;;; %edi      moving destination pointer
-;
-;       mov ebx,[pixelcount]
-;       shr ebx,0x2                     ;; 4 pixels per loop
-;       test bl,0xff
-;       je near .hchecklast
-;       mov cl,bl
-;
-;       mov ebx,[dc_colormap]
-;;;
-;;; prepare loop with first pixel
-;;;
-;       add ecx,[ystep]                 ;;pr‚a1
-;       adc ah,dh
-;       add edx,[xstep]
-;       adc al,ch
-;       and eax,0x3f3f
-;       mov bl,[esi+eax]                ;;pr‚b1
-;       mov dl,[ebx]                    ;;pr‚c1
-;
-;       add ecx,[ystep]                 ;;a2
-;        adc ah,dh
-;
-;.hdoubleloop:
-;       mov [edi+1],dl
-;        add edx,[xstep]
-;       adc al,ch
-;        add edi,byte +0x2
-;       mov ebp,eax
-;        add ecx,[ystep]
-;       adc ah,dh
-;        and ebp,0x3f3f
-;       add edx,[xstep]
-;        mov bl,[esi+ebp]
-;       adc al,ch
-;        mov dl,[ebx]
-;       and eax,0x3f3f
-;        mov [edi],dl
-;       mov bl,[esi+eax]
-;        add ecx,[ystep]
-;       adc ah,dh
-;        add edx,[xstep]
-;       adc al,ch
-;        mov dl,[ebx]
-;       mov ebp,eax
-;        mov [edi+1],dl
-;       and ebp,0x3f3f
-;        add ecx,[ystep]
-;       adc ah,dh
-;        mov bl,[esi+ebp]
-;       add edi,byte +0x2
-;        add edx,[xstep]
-;       adc al,ch
-;        mov dl,[ebx]
-;       and eax,0x3f3f
-;        mov [edi],dl
-;       mov bl,[esi+eax]
-;        add ecx,[ystep]
-;       adc ah,dh
-;        mov dl,[ebx]
-;       dec cl
-;        jne near .hdoubleloop
-;;; check for final pixel
-;.hchecklast:
-;;; to do
-;.hdone:
-;       pop ebx
-;       pop edi
-;       pop esi
-;       pop ebp
-;       ret
--- a/nasmbuild/nasm-2.13rc9/test/uscore.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-;Testname=test; Arguments=-fbin -ouscore.bin; Files=stdout stderr uscore.bin
-	dd 0x1234_5678
-	dd 305_419_896		; Same number as above it
-	dd 0x1e16		; NOT a floating-point number!
-	dd 1e16h		; NOT a floating-point number!
-	dd 1e16_h		; NOT a floating-point number!
-	dd $1e16		; NOT a floating-point number!
-	dd $1e+16		; NOT a floating-point number!
-	dd 1e16			; THIS is a floating-point number!
-	dd 1e+16
-	dd 1.e+16
-	dd 1e+1_6
-	dd 1e1_6
-	dd 1.0e16
-	dd 1_0e16		; This is 1e17, not 1e16!
--- a/nasmbuild/nasm-2.13rc9/test/utf.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-;Testname=test;  Arguments=-fbin -outf.bin;         Files=stdout stderr utf.bin
-;Testname=error; Arguments=-fbin -outf.bin -DERROR; Files=stdout stderr utf.bin
-%define u(x) __utf16__(x)
-%define w(x) __utf32__(x)
-%define ul(x) __utf16le__(x)
-%define wl(x) __utf32le__(x)
-%define ub(x) __utf16be__(x)
-%define wb(x) __utf32be__(x)
-
-	db `Test \u306a\U0001abcd\n`
-	dw u(`Test \u306a\U0001abcd\n`)
-	dd w(`Test \u306a\U0001abcd\n`)
-
-	db `\u306a`
-	db `\xe3\x81\xaa`
-
-	dw __utf16__ "Hello, World!"
-
-	nop
-
-	mov ax,u(`a`)
-	mov bx,u(`\u306a`)
-	mov cx,u(`\xe3\x81\xaa`)
-	mov eax,u(`ab`)
-	mov ebx,u(`\U0001abcd`)
-	mov ecx,w(`\U0001abcd`)
-
-	db `Test \u306a\U0001abcd\n`
-	dw ul(`Test \u306a\U0001abcd\n`)
-	dd wl(`Test \u306a\U0001abcd\n`)
-
-	db `\u306a`
-	db `\xe3\x81\xaa`
-
-	dw __utf16le__ "Hello, World!"
-
-	nop
-
-	mov ax,ul(`a`)
-	mov bx,ul(`\u306a`)
-	mov cx,ul(`\xe3\x81\xaa`)
-	mov eax,ul(`ab`)
-	mov ebx,ul(`\U0001abcd`)
-	mov ecx,wl(`\U0001abcd`)
-	
-	db `Test \u306a\U0001abcd\n`
-	dw ub(`Test \u306a\U0001abcd\n`)
-	dd wb(`Test \u306a\U0001abcd\n`)
-
-	db `\u306a`
-	db `\xe3\x81\xaa`
-
-	dw __utf16be__ "Hello, World!"
-
-	nop
-
-	mov ax,ub(`a`)
-	mov bx,ub(`\u306a`)
-	mov cx,ub(`\xe3\x81\xaa`)
-	mov eax,ub(`ab`)
-	mov ebx,ub(`\U0001abcd`)
-	mov ecx,wb(`\U0001abcd`)
-
-%ifdef ERROR
-	dw __utf16__ 33
-	dw __utf16__, 46
-	dw __utf16__("Hello, World!",16)
-	dw __utf16__("Hello, World!",16
-	dw u(`\xff`)
-
-	dw __utf16le__ 33
-	dw __utf16le__, 46
-	dw __utf16le__("Hello, World!",16)
-	dw __utf16le__("Hello, World!",16
-	dw ul(`\xff`)
-
-	dw __utf16be__ 33
-	dw __utf16be__, 46
-	dw __utf16be__("Hello, World!",16)
-	dw __utf16be__("Hello, World!",16
-	dw ub(`\xff`)
-%endif
--- a/nasmbuild/nasm-2.13rc9/test/vex.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-	bits 64
-	vcomisd xmm0,xmm31
-	vcomisd xmm0,xmm1
-	{vex2} vcomisd xmm0,xmm1
-	{vex3} vcomisd xmm0,xmm1
-	{evex} vcomisd xmm0,xmm1
-%ifdef ERROR
-	{vex3} add eax,edx
-%endif
--- a/nasmbuild/nasm-2.13rc9/test/vgather.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-	bits 64
-
-	vgatherdpd xmm0,[rcx+xmm2],xmm3
-	vgatherqpd xmm0,[rcx+xmm2],xmm3
-	vgatherdpd ymm0,[rcx+xmm2],ymm3
-	vgatherqpd ymm0,[rcx+ymm2],ymm3
-
-	vgatherdpd xmm0,[rcx+xmm2*1],xmm3
-	vgatherqpd xmm0,[rcx+xmm2*1],xmm3
-	vgatherdpd ymm0,[rcx+xmm2*1],ymm3
-	vgatherqpd ymm0,[rcx+ymm2*1],ymm3
-
-	vgatherdpd xmm0,[rcx+xmm2*2],xmm3
-	vgatherqpd xmm0,[rcx+xmm2*2],xmm3
-	vgatherdpd ymm0,[rcx+xmm2*2],ymm3
-	vgatherqpd ymm0,[rcx+ymm2*2],ymm3
-
-	vgatherdpd xmm0,[rcx+xmm2*4],xmm3
-	vgatherqpd xmm0,[rcx+xmm2*4],xmm3
-	vgatherdpd ymm0,[rcx+xmm2*4],ymm3
-	vgatherqpd ymm0,[rcx+ymm2*4],ymm3
-
-	vgatherdpd xmm0,[rcx+xmm2*8],xmm3
-	vgatherqpd xmm0,[rcx+xmm2*8],xmm3
-	vgatherdpd ymm0,[rcx+xmm2*8],ymm3
-	vgatherqpd ymm0,[rcx+ymm2*8],ymm3
-
-	vgatherdpd xmm0,[xmm2],xmm3
-	vgatherqpd xmm0,[xmm2],xmm3
-	vgatherdpd ymm0,[xmm2],ymm3
-	vgatherqpd ymm0,[ymm2],ymm3
-
-	vgatherdpd xmm0,[xmm2*1],xmm3
-	vgatherqpd xmm0,[xmm2*1],xmm3
-	vgatherdpd ymm0,[xmm2*1],ymm3
-	vgatherqpd ymm0,[ymm2*1],ymm3
-
-	vgatherdpd xmm0,[xmm2*2],xmm3
-	vgatherqpd xmm0,[xmm2*2],xmm3
-	vgatherdpd ymm0,[xmm2*2],ymm3
-	vgatherqpd ymm0,[ymm2*2],ymm3
-
-	vgatherdpd xmm0,[xmm2*4],xmm3
-	vgatherqpd xmm0,[xmm2*4],xmm3
-	vgatherdpd ymm0,[xmm2*4],ymm3
-	vgatherqpd ymm0,[ymm2*4],ymm3
-
-	vgatherdpd xmm0,[xmm2*8],xmm3
-	vgatherqpd xmm0,[xmm2*8],xmm3
-	vgatherdpd ymm0,[xmm2*8],ymm3
-	vgatherqpd ymm0,[ymm2*8],ymm3
-
-	vgatherdpd xmm0,[xmm2+rcx],xmm3
-	vgatherqpd xmm0,[xmm2+rcx],xmm3
-	vgatherdpd ymm0,[xmm2+rcx],ymm3
-	vgatherqpd ymm0,[ymm2+rcx],ymm3
-
-	vgatherdpd xmm0,[xmm2*1+rcx],xmm3
-	vgatherqpd xmm0,[xmm2*1+rcx],xmm3
-	vgatherdpd ymm0,[xmm2*1+rcx],ymm3
-	vgatherqpd ymm0,[ymm2*1+rcx],ymm3
-
-	vgatherdpd xmm0,[xmm2*2+rcx],xmm3
-	vgatherqpd xmm0,[xmm2*2+rcx],xmm3
-	vgatherdpd ymm0,[xmm2*2+rcx],ymm3
-	vgatherqpd ymm0,[ymm2*2+rcx],ymm3
-
-	vgatherdpd xmm0,[xmm2*4+rcx],xmm3
-	vgatherqpd xmm0,[xmm2*4+rcx],xmm3
-	vgatherdpd ymm0,[xmm2*4+rcx],ymm3
-	vgatherqpd ymm0,[ymm2*4+rcx],ymm3
-
-	vgatherdpd xmm0,[xmm2*8+rcx],xmm3
-	vgatherqpd xmm0,[xmm2*8+rcx],xmm3
-	vgatherdpd ymm0,[xmm2*8+rcx],ymm3
-	vgatherqpd ymm0,[ymm2*8+rcx],ymm3
--- a/nasmbuild/nasm-2.13rc9/test/vmread.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-;Testname=test; Arguments=-fbin -ovmread.bin; Files=stdout stderr vmread.bin
-
-	bits 32
-	vmread dword [0], eax
-	vmwrite eax, dword [0]
-	vmread [0], eax
-	vmwrite eax, [0]
-
-	bits 64
-	vmread qword [0], rax
-	vmwrite rax, qword [0]
-	vmread [0], rax
-	vmwrite rax, [0]
-
-%ifdef ERROR
-	bits 32
-	vmread qword [0], eax
-	vmwrite eax, qword [0]
-
-	bits 64
-	vmread dword [0], eax
-	vmwrite eax, dword [0]
-
-	vmread qword [0], eax
-	vmwrite eax, qword [0]
-%endif
\ No newline at end of file
--- a/nasmbuild/nasm-2.13rc9/test/weirdpaste.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,29 +0,0 @@
-;Testname=preproc; Arguments=-E; Files=stdout stderr
-;Testname=bin; Arguments=-fbin -oweirdpaste.bin; Files=stdout stderr weirdpaste.bin
-
-	%define foo xyzzy
-%define bar 1e+10
-
-%define xyzzy1e 15
-
-%macro dx 2
-%assign	xx %1%2
-	dw xx
-%endmacro
-
-	dx foo, bar
-
-%macro df 2
-%assign xy __float32__(%1e+%2)
-	dd xy
-	dd %1e+%2
-%endmacro
-
-	df 1, 36
-	df 33, 20
-	df 0, 2
-	df 1.2, 5
-
-
-%define N 1e%++%+ 5
-	dd N, 1e+5
--- a/nasmbuild/nasm-2.13rc9/test/xchg.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,96 +0,0 @@
-;Testname=unoptimized; Arguments=-fbin -oxchg.bin -O0; Files=stdout stderr xchg.bin
-;Testname=optimized;   Arguments=-fbin -oxchg.bin -Ox; Files=stdout stderr xchg.bin
-
-%macro x 2
-	xchg %1,%2
-	xchg %2,%1
-%endmacro
-
-	bits 16
-	
-	x ax,ax
-	x ax,cx
-	x ax,dx
-	x ax,bx
-	x ax,sp
-	x ax,bp
-	x ax,si
-	x ax,di
-	x eax,eax
-	x eax,ecx
-	x eax,edx
-	x eax,ebx
-	x eax,esp
-	x eax,ebp
-	x eax,esi
-	x eax,edi
-
-	bits 32
-	
-	x ax,ax
-	x ax,cx
-	x ax,dx
-	x ax,bx
-	x ax,sp
-	x ax,bp
-	x ax,si
-	x ax,di
-	x eax,eax
-	x eax,ecx
-	x eax,edx
-	x eax,ebx
-	x eax,esp
-	x eax,ebp
-	x eax,esi
-	x eax,edi
-
-	bits 64
-	
-	x ax,ax
-	x ax,cx
-	x ax,dx
-	x ax,bx
-	x ax,sp
-	x ax,bp
-	x ax,si
-	x ax,di
-	x ax,r8w
-	x ax,r9w
-	x ax,r10w
-	x ax,r11w
-	x ax,r12w
-	x ax,r13w
-	x ax,r14w
-	x ax,r15w
-	x eax,eax
-	x eax,ecx
-	x eax,edx
-	x eax,ebx
-	x eax,esp
-	x eax,ebp
-	x eax,esi
-	x eax,edi
-	x eax,r8d
-	x eax,r9d
-	x eax,r10d
-	x eax,r11d
-	x eax,r12d
-	x eax,r13d
-	x eax,r14d
-	x eax,r15d
-	x rax,rax
-	x rax,rcx
-	x rax,rdx
-	x rax,rbx
-	x rax,rsp
-	x rax,rbp
-	x rax,rsi
-	x rax,rdi
-	x rax,r8
-	x rax,r9
-	x rax,r10
-	x rax,r11
-	x rax,r12
-	x rax,r13
-	x rax,r14
-	x rax,r15
--- a/nasmbuild/nasm-2.13rc9/test/xcrypt.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-;Testname=test; Arguments=-fbin -oxcrypt.bin; Files=stdout stderr xcrypt.bin
-; BR 2029829
-
-	bits 32
-
-	rep xstore
-	rep xcryptecb
-	rep xcryptcbc
-	rep xcryptctr
-	rep xcryptcfb
-	rep xcryptofb
-	rep montmul
-	rep xsha1
-	rep xsha256
-
-	xstore
-	xcryptecb
-	xcryptcbc
-	xcryptctr
-	xcryptcfb
-	xcryptofb
-	montmul
-	xsha1
-	xsha256
--- a/nasmbuild/nasm-2.13rc9/test/xmm0.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-; BR 3392275: don't require xmm0 to be explicitly declared when implicit
-
-	bits 32
-
-	blendvpd xmm2,xmm1,xmm0
-	blendvpd xmm2,xmm1
-	blendvps xmm2,xmm1,xmm0
-	blendvps xmm2,xmm1
-	pblendvb xmm2,xmm1,xmm0
-	pblendvb xmm2,xmm1
-	sha256rnds2 xmm2,xmm1,xmm0
-	sha256rnds2 xmm2,xmm1
--- a/nasmbuild/nasm-2.13rc9/test/zerobyte.asm	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-;Testname=test; Arguments=-fbin -ozerobyte.bin; Files=stdout stderr zerobyte.bin
-	bits 64
-
-	mov eax,bar-foo
-
-foo:
-	add al,r10b
-bar:
-
-	lldt ax
-	lldt r8w
-	ltr [rax]
-	sldt eax
-	sldt r8d
-	str eax
-	str rax
-	str r8d
-	str r8
-	verr ax
-	verr r8w
-	verw ax
-	verw r8w
--- a/nasmbuild/nasm-2.13rc9/tools/cleanfile	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,176 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Clean a text file -- or directory of text files -- of stealth whitespace.
-# WARNING: this can be a highly destructive operation.  Use with caution.
-#
-
-use bytes;
-use File::Basename;
-
-# Default options
-$max_width = 79;
-
-# Clean up space-tab sequences, either by removing spaces or
-# replacing them with tabs.
-sub clean_space_tabs($)
-{
-    no bytes;			# Tab alignment depends on characters
-
-    my($li) = @_;
-    my($lo) = '';
-    my $pos = 0;
-    my $nsp = 0;
-    my($i, $c);
-
-    for ($i = 0; $i < length($li); $i++) {
-	$c = substr($li, $i, 1);
-	if ($c eq "\t") {
-	    my $npos = ($pos+$nsp+8) & ~7;
-	    my $ntab = ($npos >> 3) - ($pos >> 3);
-	    $lo .= "\t" x $ntab;
-	    $pos = $npos;
-	    $nsp = 0;
-	} elsif ($c eq "\n" || $c eq "\r") {
-	    $lo .= " " x $nsp;
-	    $pos += $nsp;
-	    $nsp = 0;
-	    $lo .= $c;
-	    $pos = 0;
-	} elsif ($c eq " ") {
-	    $nsp++;
-	} else {
-	    $lo .= " " x $nsp;
-	    $pos += $nsp;
-	    $nsp = 0;
-	    $lo .= $c;
-	    $pos++;
-	}
-    }
-    $lo .= " " x $nsp;
-    return $lo;
-}
-
-# Compute the visual width of a string
-sub strwidth($) {
-    no bytes;			# Tab alignment depends on characters
-
-    my($li) = @_;
-    my($c, $i);
-    my $pos = 0;
-    my $mlen = 0;
-
-    for ($i = 0; $i < length($li); $i++) {
-	$c = substr($li,$i,1);
-	if ($c eq "\t") {
-	    $pos = ($pos+8) & ~7;
-	} elsif ($c eq "\n") {
-	    $mlen = $pos if ($pos > $mlen);
-	    $pos = 0;
-	} else {
-	    $pos++;
-	}
-    }
-
-    $mlen = $pos if ($pos > $mlen);
-    return $mlen;
-}
-
-$name = basename($0);
-
-@files = ();
-
-while (defined($a = shift(@ARGV))) {
-    if ($a =~ /^-/) {
-	if ($a eq '-width' || $a eq '-w') {
-	    $max_width = shift(@ARGV)+0;
-	} else {
-	    print STDERR "Usage: $name [-width #] files...\n";
-	    exit 1;
-	}
-    } else {
-	push(@files, $a);
-    }
-}
-
-foreach $f ( @files ) {
-    print STDERR "$name: $f\n";
-
-    if (! -f $f) {
-	print STDERR "$f: not a file\n";
-	next;
-    }
-
-    if (!open(FILE, '+<', $f)) {
-	print STDERR "$name: Cannot open file: $f: $!\n";
-	next;
-    }
-
-    binmode FILE;
-
-    # First, verify that it is not a binary file; consider any file
-    # with a zero byte to be a binary file.  Is there any better, or
-    # additional, heuristic that should be applied?
-    $is_binary = 0;
-
-    while (read(FILE, $data, 65536) > 0) {
-	if ($data =~ /\0/) {
-	    $is_binary = 1;
-	    last;
-	}
-    }
-
-    if ($is_binary) {
-	print STDERR "$name: $f: binary file\n";
-	next;
-    }
-
-    seek(FILE, 0, 0);
-
-    $in_bytes = 0;
-    $out_bytes = 0;
-    $blank_bytes = 0;
-
-    @blanks = ();
-    @lines  = ();
-    $lineno = 0;
-
-    while ( defined($line = <FILE>) ) {
-	$lineno++;
-	$in_bytes += length($line);
-	$line =~ s/[ \t\r]*$//;		# Remove trailing spaces
-	$line = clean_space_tabs($line);
-
-	if ( $line eq "\n" ) {
-	    push(@blanks, $line);
-	    $blank_bytes += length($line);
-	} else {
-	    push(@lines, @blanks);
-	    $out_bytes += $blank_bytes;
-	    push(@lines, $line);
-	    $out_bytes += length($line);
-	    @blanks = ();
-	    $blank_bytes = 0;
-	}
-
-	$l_width = strwidth($line);
-	if ($max_width && $l_width > $max_width) {
-	    print STDERR
-		"$f:$lineno: line exceeds $max_width characters ($l_width)\n";
-	}
-    }
-
-    # Any blanks at the end of the file are discarded
-
-    if ($in_bytes != $out_bytes) {
-	# Only write to the file if changed
-	seek(FILE, 0, 0);
-	print FILE @lines;
-
-	if ( !defined($where = tell(FILE)) ||
-	     !truncate(FILE, $where) ) {
-	    die "$name: Failed to truncate modified file: $f: $!\n";
-	}
-    }
-
-    close(FILE);
-}
--- a/nasmbuild/nasm-2.13rc9/tools/cleanpatch	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,258 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Clean a patch file -- or directory of patch files -- of stealth whitespace.
-# WARNING: this can be a highly destructive operation.  Use with caution.
-#
-
-use bytes;
-use File::Basename;
-
-# Default options
-$max_width = 79;
-
-# Clean up space-tab sequences, either by removing spaces or
-# replacing them with tabs.
-sub clean_space_tabs($)
-{
-    no bytes;			# Tab alignment depends on characters
-
-    my($li) = @_;
-    my($lo) = '';
-    my $pos = 0;
-    my $nsp = 0;
-    my($i, $c);
-
-    for ($i = 0; $i < length($li); $i++) {
-	$c = substr($li, $i, 1);
-	if ($c eq "\t") {
-	    my $npos = ($pos+$nsp+8) & ~7;
-	    my $ntab = ($npos >> 3) - ($pos >> 3);
-	    $lo .= "\t" x $ntab;
-	    $pos = $npos;
-	    $nsp = 0;
-	} elsif ($c eq "\n" || $c eq "\r") {
-	    $lo .= " " x $nsp;
-	    $pos += $nsp;
-	    $nsp = 0;
-	    $lo .= $c;
-	    $pos = 0;
-	} elsif ($c eq " ") {
-	    $nsp++;
-	} else {
-	    $lo .= " " x $nsp;
-	    $pos += $nsp;
-	    $nsp = 0;
-	    $lo .= $c;
-	    $pos++;
-	}
-    }
-    $lo .= " " x $nsp;
-    return $lo;
-}
-
-# Compute the visual width of a string
-sub strwidth($) {
-    no bytes;			# Tab alignment depends on characters
-
-    my($li) = @_;
-    my($c, $i);
-    my $pos = 0;
-    my $mlen = 0;
-
-    for ($i = 0; $i < length($li); $i++) {
-	$c = substr($li,$i,1);
-	if ($c eq "\t") {
-	    $pos = ($pos+8) & ~7;
-	} elsif ($c eq "\n") {
-	    $mlen = $pos if ($pos > $mlen);
-	    $pos = 0;
-	} else {
-	    $pos++;
-	}
-    }
-
-    $mlen = $pos if ($pos > $mlen);
-    return $mlen;
-}
-
-$name = basename($0);
-
-@files = ();
-
-while (defined($a = shift(@ARGV))) {
-    if ($a =~ /^-/) {
-	if ($a eq '-width' || $a eq '-w') {
-	    $max_width = shift(@ARGV)+0;
-	} else {
-	    print STDERR "Usage: $name [-width #] files...\n";
-	    exit 1;
-	}
-    } else {
-	push(@files, $a);
-    }
-}
-
-foreach $f ( @files ) {
-    print STDERR "$name: $f\n";
-
-    if (! -f $f) {
-	print STDERR "$f: not a file\n";
-	next;
-    }
-
-    if (!open(FILE, '+<', $f)) {
-	print STDERR "$name: Cannot open file: $f: $!\n";
-	next;
-    }
-
-    binmode FILE;
-
-    # First, verify that it is not a binary file; consider any file
-    # with a zero byte to be a binary file.  Is there any better, or
-    # additional, heuristic that should be applied?
-    $is_binary = 0;
-
-    while (read(FILE, $data, 65536) > 0) {
-	if ($data =~ /\0/) {
-	    $is_binary = 1;
-	    last;
-	}
-    }
-
-    if ($is_binary) {
-	print STDERR "$name: $f: binary file\n";
-	next;
-    }
-
-    seek(FILE, 0, 0);
-
-    $in_bytes = 0;
-    $out_bytes = 0;
-    $lineno = 0;
-
-    @lines  = ();
-
-    $in_hunk = 0;
-    $err = 0;
-
-    while ( defined($line = <FILE>) ) {
-	$lineno++;
-	$in_bytes += length($line);
-
-	if (!$in_hunk) {
-	    if ($line =~
-		/^\@\@\s+\-([0-9]+),([0-9]+)\s+\+([0-9]+),([0-9]+)\s\@\@/) {
-		$minus_lines = $2;
-		$plus_lines = $4;
-		if ($minus_lines || $plus_lines) {
-		    $in_hunk = 1;
-		    @hunk_lines = ($line);
-		}
-	    } else {
-		push(@lines, $line);
-		$out_bytes += length($line);
-	    }
-	} else {
-	    # We're in a hunk
-
-	    if ($line =~ /^\+/) {
-		$plus_lines--;
-
-		$text = substr($line, 1);
-		$text =~ s/[ \t\r]*$//;		# Remove trailing spaces
-		$text = clean_space_tabs($text);
-
-		$l_width = strwidth($text);
-		if ($max_width && $l_width > $max_width) {
-		    print STDERR
-			"$f:$lineno: adds line exceeds $max_width ",
-			"characters ($l_width)\n";
-		}
-
-		push(@hunk_lines, '+'.$text);
-	    } elsif ($line =~ /^\-/) {
-		$minus_lines--;
-		push(@hunk_lines, $line);
-	    } elsif ($line =~ /^ /) {
-		$plus_lines--;
-		$minus_lines--;
-		push(@hunk_lines, $line);
-	    } else {
-		print STDERR "$name: $f: malformed patch\n";
-		$err = 1;
-		last;
-	    }
-
-	    if ($plus_lines < 0 || $minus_lines < 0) {
-		print STDERR "$name: $f: malformed patch\n";
-		$err = 1;
-		last;
-	    } elsif ($plus_lines == 0 && $minus_lines == 0) {
-		# End of a hunk.  Process this hunk.
-		my $i;
-		my $l;
-		my @h = ();
-		my $adj = 0;
-		my $done = 0;
-
-		for ($i = scalar(@hunk_lines)-1; $i > 0; $i--) {
-		    $l = $hunk_lines[$i];
-		    if (!$done && $l eq "+\n") {
-			$adj++; # Skip this line
-		    } elsif ($l =~ /^[ +]/) {
-			$done = 1;
-			unshift(@h, $l);
-		    } else {
-			unshift(@h, $l);
-		    }
-		}
-
-		$l = $hunk_lines[0];  # Hunk header
-		undef @hunk_lines;    # Free memory
-
-		if ($adj) {
-		    die unless
-			($l =~ /^\@\@\s+\-([0-9]+),([0-9]+)\s+\+([0-9]+),([0-9]+)\s\@\@(.*)$/);
-		    my $mstart = $1;
-		    my $mlin = $2;
-		    my $pstart = $3;
-		    my $plin = $4;
-		    my $tail = $5; # doesn't include the final newline
-
-		    $l = sprintf("@@ -%d,%d +%d,%d @@%s\n",
-				 $mstart, $mlin, $pstart, $plin-$adj,
-				 $tail);
-		}
-		unshift(@h, $l);
-
-		# Transfer to the output array
-		foreach $l (@h) {
-		    $out_bytes += length($l);
-		    push(@lines, $l);
-		}
-
-		$in_hunk = 0;
-	    }
-	}
-    }
-
-    if ($in_hunk) {
-	print STDERR "$name: $f: malformed patch\n";
-	$err = 1;
-    }
-
-    if (!$err) {
-	if ($in_bytes != $out_bytes) {
-	    # Only write to the file if changed
-	    seek(FILE, 0, 0);
-	    print FILE @lines;
-
-	    if ( !defined($where = tell(FILE)) ||
-		 !truncate(FILE, $where) ) {
-		die "$name: Failed to truncate modified file: $f: $!\n";
-	    }
-	}
-    }
-
-    close(FILE);
-}
--- a/nasmbuild/nasm-2.13rc9/tools/mkdep.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,261 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##   
-##   Copyright 1996-2016 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##     
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# Script to create Makefile-style dependencies.
-#
-# Usage: perl mkdep.pl [-s path-separator] [-o obj-ext] dir... > deps
-#
-
-use File::Spec;
-use File::Basename;
-use Fcntl;
-
-$barrier = "#-- Everything below is generated by mkdep.pl - do not edit --#\n";
-
-# This converts from filenames to full pathnames for our dependencies
-%dep_path = {};
-
-#
-# Scan files for dependencies
-#
-sub scandeps($) {
-    my($file) = @_;
-    my $line;
-    my @xdeps = ();
-    my @mdeps = ();
-
-    open(my $fh, '<', $file)
-	or return;		# If not openable, assume generated
-
-    while ( defined($line = <$fh>) ) {
-	chomp $line;
-	$line =~ s:/\*.*\*/::g;
-	$line =~ s://.*$::;
-	if ( $line =~ /^\s*\#\s*include\s+\"(.*)\"\s*$/ ) {
-	    my $nf = $1;
-	    if (!defined($dep_path{$nf})) {
-		die "$0: cannot determine path for dependency: $file -> $nf\n";
-	    }
-	    $nf = $dep_path{$nf};
-	    push(@mdeps, $nf);
-	    push(@xdeps, $nf) unless ( defined($deps{$nf}) );
-	}
-    }
-    close($fh);
-    $deps{$file} = [@mdeps];
-
-    foreach my $xf ( @xdeps ) {
-	scandeps($xf);
-    }
-}
-
-# %deps contains direct dependencies.  This subroutine resolves
-# indirect dependencies that result.
-sub alldeps($$) {
-    my($file, $level) = @_;
-    my %adeps;
-
-    foreach my $dep ( @{$deps{$file}} ) {
-	$adeps{$dep} = 1;
-	foreach my $idep ( alldeps($dep, $level+1) ) {
-	    $adeps{$idep} = 1;
-	}
-    }
-    return sort(keys(%adeps));
-}
-
-# This converts a filename from host syntax to target syntax
-# This almost certainly works only on relative filenames...
-sub convert_file($$) {
-    my($file,$sep) = @_;
-    my @fspec = (basename($file));
-    while ( ($file = dirname($file)) ne File::Spec->curdir() &&
-	    $file ne File::Spec->rootdir() ) {
-	unshift(@fspec, basename($file));
-    }
-
-    if ( $sep eq '' ) {
-	# This means kill path completely.  Used with Makes who do
-	# path searches, but doesn't handle output files in subdirectories,
-	# like OpenWatcom WMAKE.
-	return $fspec[scalar(@fspec)-1];
-    } else {
-	return join($sep, @fspec);
-    }
-}
-
-#
-# Insert dependencies into a Makefile
-#
-sub insert_deps($) {
-    my($file) = @_;
-    $nexttemp++;		# Unique serial number for each temp file
-    my $tmp = File::Spec->catfile(dirname($file), 'tmp.'.$nexttemp);
-
-    open(my $in, '<', $file)
-	or die "$0: Cannot open input: $file\n";
-    open(my $out, '>', $tmp)
-	or die "$0: Cannot open output: $tmp\n";
-
-    my($line,$parm,$val);
-    my($obj) = '.o';		# Defaults
-    my($sep) = '/';
-    my($cont) = "\\";
-    my($maxline) = 78;		# Seems like a reasonable default
-    my @exclude = ();		# Don't exclude anything
-    my @genhdrs = ();
-
-    while ( defined($line = <$in>) ) {
-	if ( $line =~ /^([^\s\#\$\:]+\.h):/ ) {
-	    # Note: we trust the first Makefile given best
-	    my $fpath = $1;
-	    my $fbase = basename($fpath);
-	    if (!defined($dep_path{$fbase})) {
-		$dep_path{$fbase} = $fpath;
-		print STDERR "Makefile: $fbase -> $fpath\n";
-	    }
-	} elsif ( $line =~ /^\s*\#\s*@([a-z0-9-]+):\s*\"([^\"]*)\"/ ) {
-	    $parm = $1;  $val = $2;
-	    if ( $parm eq 'object-ending' ) {
-		$obj = $val;
-	    } elsif ( $parm eq 'path-separator' ) {
-		$sep = $val;
-	    } elsif ( $parm eq 'line-width' ) {
-		$maxline = $val+0;
-	    } elsif ( $parm eq 'continuation' ) {
-		$cont = $val;
-	    } elsif ( $parm eq 'exclude' ) {
-		@exclude = split(/\,/, $val);
-	    }
-	} elsif ( $line eq $barrier ) {
-	    last;		# Stop reading input at barrier line
-	}
-	print $out $line;
-    }
-    close($in);
-
-    my $e;
-    my %do_exclude = ();
-    foreach $e (@exclude) {
-	$do_exclude{$e} = 1;
-    }
-
-    my $dfile, $ofile, $str, $sl, $len;
-    my @deps, $dep;
-
-    print $out $barrier;
-
-    foreach $dfile ( sort(keys(%deps)) ) {
-	if ( $dfile =~ /^(.*)\.[Cc]$/ ) {
-	    $ofile = $1;
-	    $str = convert_file($ofile, $sep).$obj.':';
-	    $len = length($str);
-	    print $out $str;
-	    foreach $dep ($dfile, alldeps($dfile,1)) {
-		unless ($do_exclude{$dep}) {
-		    $str = convert_file($dep, $sep);
-		    $sl = length($str)+1;
-		    if ( $len+$sl > $maxline-2 ) {
-			print $out ' ', $cont, "\n ", $str;
-			$len = $sl;
-		    } else {
-			print $out ' ', $str;
-			$len += $sl;
-		    }
-		}
-	    }
-	    print $out "\n";
-	}
-    }
-    close($out);
-
-    (unlink($file) && rename($tmp, $file))
-	or die "$0: Failed to change $tmp -> $file\n";
-}
-
-#
-# Main program
-#
-
-my %deps = ();
-my @files = ();
-my @mkfiles = ();
-my $mkmode = 0;
-
-while ( defined(my $arg = shift(@ARGV)) ) {
-    if ( $arg eq '-m' ) {
-	$arg = shift(@ARGV);
-	push(@mkfiles, $arg);
-    } elsif ( $arg eq '-M' ) {
-	$mkmode = 1;		# Futher filenames are output Makefile names
-    } elsif ( $arg eq '--' && $mkmode ) {
-	$mkmode = 0;
-    } elsif ( $arg =~ /^-/ ) {
-	die "Unknown option: $arg\n";
-    } else {
-	if ( $mkmode ) {
-	    push(@mkfiles, $arg);
-	} else {
-	    push(@files, $arg);
-	}
-    }
-}
-
-my @cfiles = ();
-
-foreach my $dir ( @files ) {
-    opendir(DIR, $dir) or die "$0: Cannot open directory: $dir";
-
-    while ( my $file = readdir(DIR) ) {
-	$path = ($dir eq File::Spec->curdir())
-	    ? $file : File::Spec->catfile($dir,$file);
-	if ( $file =~ /\.[Cc]$/ ) {
-	    push(@cfiles, $path);
-	} elsif ( $file =~ /\.[Hh]$/ ) {
-	    print STDERR "Filesystem: $file -> $path\n";
-	    $dep_path{$file} = $path; # Allow the blank filename
-	    $dep_path{$path} = $path; # Also allow the full pathname
-	}
-    }
-    closedir(DIR);
-}
-
-foreach my $cfile ( @cfiles ) {
-    scandeps($cfile);
-}
-
-foreach my $mkfile ( @mkfiles ) {
-    insert_deps($mkfile);
-}
--- a/nasmbuild/nasm-2.13rc9/tools/release	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,101 +0,0 @@
-#!/bin/bash -xe
-#
-# Generate a NASM release
-#
-# Usage: release version [destination]
-#
-
-version="$1"
-if [ -z "$1" ]; then
-    echo "Usage: $0 version [destination]" 1>&2
-    exit 1
-fi
-
-WHERE="$2"
-if [ -z "$WHERE" ]; then
-    WHERE=/var/tmp
-fi
-
-if [ -n "$GIT_DIR" ]; then
-    HERE="$GIT_DIR"
-else
-    HERE=`pwd`
-fi
-
-if [ x`cat version` != x"${version}" ]; then
-    echo "${version}" > version
-    git update-index version
-    git commit -m "Version ${version}" -- version
-fi
-git tag -m "NASM version ${version}" -f "nasm-${version}" 
-
-cd "$WHERE"
-rm -rf nasm-release.*
-work=nasm-release.$$
-mkdir $work
-cd $work
-unset GIT_DIR
-git clone -s -l "$HERE" nasm
-rm -rf nasm/.git nasm/.gitignore
-
-# Create files which are in the release but automatically generated
-cd nasm
-./autogen.sh
-./configure --prefix=/usr/local
-make perlreq spec manpages
-make alldeps
-make distclean
-cd ..
-
-# Clean up any previous attempt
-rm -f ../nasm-"$version".tar.gz  ../nasm-"$version"-xdoc.tar.gz
-rm -f ../nasm-"$version".tar.bz2 ../nasm-"$version"-xdoc.tar.bz2
-rm -f ../nasm-"$version".tar.xz  ../nasm-"$version"-xdoc.tar.xz
-rm -f ../nasm-"$version".zip     ../nasm-"$version"-xdoc.zip
-
-# Create tarfile (Unix convention: file includes prefix)
-mv nasm nasm-"$version"
-tar cvvf  nasm-"$version".tar nasm-"$version"
-xz    -9ek nasm-"$version".tar
-bzip2 -9k  nasm-"$version".tar
-gzip  -9   nasm-"$version".tar
-mv nasm-"$version".tar.gz nasm-"$version".tar.bz2 nasm-"$version".tar.xz ..
-
-# Create zipfile (DOS convention: no prefix, convert file endings)
-cd nasm-"$version"
-zip -9Dlr ../../nasm-"$version".zip * -x \*.jpg -x \*.zip -x \*.ico	# Text files
-zip -9Dgr ../../nasm-"$version".zip * -i \*.jpg -i \*.zip -i \*.ico	# Binary files
-cd ..
-
-# Record what we have already generated
-find nasm-"$version" -not -type d -print > main
-
-# Create documentation
-cd nasm-"$version"
-./configure --prefix=/usr/local
-make doc
-# Remove intermediate files.
-make cleaner
-cd ..
-
-# Remove non-documentation
-cat main | xargs rm -f
-# Delete empty subdirectories
-find nasm-"$version"/doc -type d -exec rmdir '{}' \; 2>/dev/null || true
-
-# Create doc tarfile
-tar cvvf nasm-"$version"-xdoc.tar nasm-"$version"/doc
-xz    -9ek nasm-"$version"-xdoc.tar
-bzip2 -9k  nasm-"$version"-xdoc.tar
-gzip  -9   nasm-"$version"-xdoc.tar
-mv nasm-"$version"-xdoc.tar.gz nasm-"$version"-xdoc.tar.bz2 nasm-"$version"-xdoc.tar.xz ..
-
-# Create doc zipfile (DOS convention: no prefix, convert file endings)
-# (Note: generating Win .hlp files requires additional tools)
-cd nasm-"$version"
-zip -9Dlr ../../nasm-"$version"-xdoc.zip doc -x \*.pdf -x \*.info\*
-zip -9Dgr ../../nasm-"$version"-xdoc.zip doc -i \*.pdf -i \*.info\*
-
-# Clean up
-cd ../..
-rm -rf "$work"
--- a/nasmbuild/nasm-2.13rc9/tools/syncfiles.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##   
-##   Copyright 1996-2009 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##     
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# Sync the output file list between Makefiles
-# Use the mkdep.pl parameters to get the filename syntax
-#
-# The first file is the source file; the other ones target.
-#
-%def_hints = ('object-ending' => '.o',
-	      'path-separator' => '/',
-	      'continuation' => "\\");
-
-sub do_transform($$) {
-    my($l, $h) = @_;
-    my($ps) = $$h{'path-separator'};
-
-    $l =~ s/\x01/$$h{'object-ending'}/g;
-    $l =~ s/\x03/$$h{'continuation'}/g;
-
-    if ($ps eq '') {
-	# Remove the path separator and the preceeding directory
-	$l =~ s/[^\s\=]*\x02//g;
-    } else {
-	# Convert the path separator
-	$l =~ s/\x02/$ps/g;
-    }
-
-    return $l;
-}
-
-@file_list = ();
-
-$first = 1;
-$first_file = $ARGV[0];
-die unless (defined($first_file));
-
-foreach $file (@ARGV) {
-    open(FILE, "< $file\0") or die;
-
-    # First, read the syntax hints
-    %hints = %def_hints;
-    while (defined($line = <FILE>)) {
-	if ( $line =~ /^\s*\#\s*@([a-z0-9-]+):\s*\"([^\"]*)\"/ ) {
-	    $hints{$1} = $2;
-	}
-    }
-
-    # Read and process the file
-    seek(FILE,0,0);
-    @lines = ();
-    $processing = 0;
-    while (defined($line = <FILE>)) {
-	chomp $line;
-	if ($processing) {
-	    if ($line eq '#-- End File Lists --#') {
-		push(@lines, $line."\n");
-		$processing = 0;
-	    } elsif ($first) {
-		my $xl = $line;
-		my $oe = "\Q$hints{'object-ending'}";
-		my $ps = "\Q$hints{'path-separator'}";
-		my $cn = "\Q$hints{'continuation'}";
-
-		$xl =~ s/${oe}(\s|$)/\x01$1/g;
-		$xl =~ s/${ps}/\x02/g;
-		$xl =~ s/${cn}$/\x03/;
-		push(@file_list, $xl);
-		push(@lines, $line);
-	    }
-	} else {
-	    push(@lines, $line."\n");
-	    if ($line eq '#-- Begin File Lists --#') {
-		$processing = 1;
-		if (!$first) {
-		    push(@lines, "# Edit in $first_file, not here!\n");
-		    foreach $l (@file_list) {
-			push(@lines, do_transform($l, \%hints)."\n");
-		    }
-		}
-	    }
-	}
-    }
-    close(FILE);
-
-    # Write the file back out
-    if (!$first) {
-	open(FILE, "> $file\0") or die;
-	print FILE @lines;
-	close(FILE);
-    }
-
-    undef @lines;
-    $first = 0;
-}
--- a/nasmbuild/nasm-2.13rc9/tools/tag-release	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-#!/bin/sh
-
-version=""
-repo=""
-branch=""
-push=0
-
-for opt; do
-    case "$opt" in
-    --ver=*)
-        version=`echo $opt | sed 's/[-a-zA-Z0-9]*=//'`
-        ;;
-    --repo=*)
-        repo=`echo $opt | sed 's/[-a-zA-Z0-9]*=//'`
-        ;;
-    --branch=*)
-        branch=`echo $opt | sed 's/[-a-zA-Z0-9]*=//'`
-        ;;
-    --push)
-	push=1
-	;;
-    --no-push)
-        push=0
-        ;;
-    -*)
-	echo "Invalid option: $opt" 1>&2
-	exit 1
-	;;
-    *)
-        version=$opt
-        ;;
-    esac
-done
-
-if [ -z "$version" ]; then
-    echo "  Usage"
-    echo "      $0 --ver=num [--repo=name --branch=name --push]" 1>&2
-    echo "  Example"
-    echo "      $0 --ver=2.10rc1 --repo=git+ssh://user@repo.or.cz/nasm.git --branch=master --no-push" 1>&2
-    echo "  With --no-push the changes are not pushed out to remote repo"
-    exit 1
-fi
-
-tag="nasm-$version"
-
-echo "$version" > version
-git add version
-git commit -m "NASM $version"
-git tag -a -m "NASM $version" "$tag"
-
-if [ $push = 1 ]; then
-    set -x
-    git push $repo $branch
-    git push $repo $tag
-    git push --tags $repo
-    set +x
-fi
-
--- a/nasmbuild/nasm-2.13rc9/version	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-2.13rc9
--- a/nasmbuild/nasm-2.13rc9/version.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-#ifndef NASM_VERSION_H
-#define NASM_VERSION_H
-#define NASM_MAJOR_VER      2
-#define NASM_MINOR_VER      12
-#define NASM_SUBMINOR_VER   99
-#define NASM_PATCHLEVEL_VER 99
-#define NASM_VERSION_ID     0x020c6363
-#define NASM_VER            "2.13rc9"
-#endif /* NASM_VERSION_H */
--- a/nasmbuild/nasm-2.13rc9/version.mac	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-STD: version
-%define __NASM_MAJOR__ 2
-%define __NASM_MINOR__ 12
-%define __NASM_SUBMINOR__ 99
-%define __NASM_PATCHLEVEL__ 99
-%define __NASM_VERSION_ID__ 0020C6363h
-%define __NASM_VER__ "2.13rc9"
--- a/nasmbuild/nasm-2.13rc9/version.mak	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-NASM_VER=2.13rc9
-NASM_MAJOR_VER=2
-NASM_MINOR_VER=12
-NASM_SUBMINOR_VER=99
-NASM_PATCHLEVEL_VER=99
--- a/nasmbuild/nasm-2.13rc9/version.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,189 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##   
-##   Copyright 1996-2016 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##     
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# version.pl
-#
-# Parse the NASM version file and produce appropriate macros
-#
-# The NASM version number is assumed to consist of:
-#
-# <major>.<minor>[.<subminor>][pl<patchlevel>]]<tail>
-#
-# ... where <tail> is not necessarily numeric, but if it is of the form
-# -<digits> it is assumed to be a snapshot release.
-#
-# This defines the following macros:
-#
-# version.h:
-# NASM_MAJOR_VER
-# NASM_MINOR_VER
-# NASM_SUBMINOR_VER	-- this is zero if no subminor
-# NASM_PATCHLEVEL_VER	-- this is zero is no patchlevel
-# NASM_SNAPSHOT		-- if snapshot
-# NASM_VERSION_ID       -- version number encoded
-# NASM_VER		-- whole version number as a string
-#
-# version.mac:
-# __NASM_MAJOR__
-# __NASM_MINOR__
-# __NASM_SUBMINOR__
-# __NASM_PATCHLEVEL__
-# __NASM_SNAPSHOT__
-# __NASM_VERSION_ID__
-# __NASM_VER__
-#
-
-($what) = @ARGV;
-
-$line = <STDIN>;
-chomp $line;
-
-undef $man, $min, $smin, $plvl, $tail;
-$is_rc = 0;
-
-if ( $line =~ /^([0-9]+)\.([0-9]+)(.*)$/ ) {
-    $maj  = $1;
-    $min  = $2;
-    $tail = $3;
-    if ( $tail =~ /^\.([0-9]+)(.*)$/ ) {
-	$smin = $1;
-	$tail = $2;
-    }
-    if ( $tail =~ /^(pl|\.)([0-9]+)(.*)$/ ) {
-	$plvl = $2;
-	$tail = $3;
-    } elsif ( $tail =~ /^rc([0-9]+)(.*)$/ ) {
-	$is_rc = 1;
-	$plvl = $1;
-	$tail = $2;
-    }
-} else {
-    die "$0: Invalid input format\n";
-}
-
-if ($tail =~ /^\-([0-9]+)$/) {
-    $snapshot = $1;
-} else {
-    undef $snapshot;
-}
-
-$nmaj = $maj+0;   $nmin = $min+0;
-$nsmin = $smin+0; $nplvl = $plvl+0;
-
-if ($is_rc) {
-    $nplvl += 90;
-    if ($nsmin > 0) {
-	$nsmin--;
-    } else {
-	$nsmin = 99;
-	if ($nmin > 0) {
-	    $nmin--;
-	} else {
-	    $nmin = 99;
-	    $nmaj--;
-	}
-    }
-}
-
-$nasm_id = ($nmaj << 24)+($nmin << 16)+($nsmin << 8)+$nplvl;
-
-$mangled_ver = sprintf("%d.%02d", $nmaj, $nmin);
-if ($nsmin || $nplvl || defined($snapshot)) {
-    $mangled_ver .= sprintf(".%02d", $nsmin);
-    if ($nplvl || defined($snapshot)) {
-	$mangled_ver .= '.'.$nplvl;
-    }
-}
-($mtail = $tail) =~ tr/-/./;
-$mangled_ver .= $mtail;
-
-if ( $what eq 'h' ) {
-    print  "#ifndef NASM_VERSION_H\n";
-    print  "#define NASM_VERSION_H\n";
-    printf "#define NASM_MAJOR_VER      %d\n", $nmaj;
-    printf "#define NASM_MINOR_VER      %d\n", $nmin;
-    printf "#define NASM_SUBMINOR_VER   %d\n", $nsmin;
-    printf "#define NASM_PATCHLEVEL_VER %d\n", $nplvl;
-    if (defined($snapshot)) {
-	printf "#define NASM_SNAPSHOT       %d\n", $snapshot;
-    }
-    printf "#define NASM_VERSION_ID     0x%08x\n", $nasm_id;
-    printf "#define NASM_VER            \"%s\"\n", $line;
-    print  "#endif /* NASM_VERSION_H */\n";
-} elsif ( $what eq 'mac' ) {
-    print  "STD: version\n";
-    printf "%%define __NASM_MAJOR__ %d\n", $nmaj;
-    printf "%%define __NASM_MINOR__ %d\n", $nmin;
-    printf "%%define __NASM_SUBMINOR__ %d\n", $nsmin;
-    printf "%%define __NASM_PATCHLEVEL__ %d\n", $nplvl;
-    if (defined($snapshot)) {
-	printf "%%define __NASM_SNAPSHOT__ %d\n", $snapshot;
-    }
-    printf "%%define __NASM_VERSION_ID__ 0%08Xh\n", $nasm_id;
-    printf "%%define __NASM_VER__ \"%s\"\n", $line;
-} elsif ( $what eq 'sed' ) {
-    printf "s/\@\@NASM_MAJOR\@\@/%d/g\n", $nmaj;
-    printf "s/\@\@NASM_MINOR\@\@/%d/g\n", $nmin;
-    printf "s/\@\@NASM_SUBMINOR\@\@/%d/g\n", $nsmin;
-    printf "s/\@\@NASM_PATCHLEVEL\@\@/%d/g\n", $nplvl;
-    printf "s/\@\@NASM_SNAPSHOT\@\@/%d/g\n", $snapshot;	# Possibly empty
-    printf "s/\@\@NASM_VERSION_ID\@\@/%d/g\n", $nasm_id;
-    printf "s/\@\@NASM_VERSION_XID\@\@/0x%08x/g\n", $nasm_id;
-    printf "s/\@\@NASM_VER\@\@/%s/g\n", $line;
-    printf "s/\@\@NASM_MANGLED_VER\@\@/%s/g\n", $mangled_ver;
-} elsif ( $what eq 'make' ) {
-    printf "NASM_VER=%s\n", $line;
-    printf "NASM_MAJOR_VER=%d\n", $nmaj;
-    printf "NASM_MINOR_VER=%d\n", $nmin;
-    printf "NASM_SUBMINOR_VER=%d\n", $nsmin;
-    printf "NASM_PATCHLEVEL_VER=%d\n", $nplvl;
-} elsif ( $what eq 'nsis' ) {
-    printf "!define VERSION \"%s\"\n", $line;
-    printf "!define MAJOR_VER %d\n", $nmin;
-    printf "!define MINOR_VER %d\n", $nmin;
-    printf "!define SUBMINOR_VER %d\n", $nsmin;
-    printf "!define PATCHLEVEL_VER %d\n", $nplvl;
-} elsif ( $what eq 'id' ) {
-    print $nasm_id, "\n";	 # Print ID in decimal
-} elsif ( $what eq 'xid' ) {
-    printf "0x%08x\n", $nasm_id; # Print ID in hexadecimal
-} elsif ( $what eq 'docsrc' ) {
-    printf "\\M{version}{%s}\n", $line;
-    printf "\\M{subtitle}{version %s}\n", $line;
-} else {
-    die "$0: Unknown output: $what\n";
-}
-
-exit 0;
--- a/nasmbuild/nasm-2.13rc9/version.sed	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-s/@@NASM_MAJOR@@/2/g
-s/@@NASM_MINOR@@/12/g
-s/@@NASM_SUBMINOR@@/99/g
-s/@@NASM_PATCHLEVEL@@/99/g
-s/@@NASM_SNAPSHOT@@/0/g
-s/@@NASM_VERSION_ID@@/34366307/g
-s/@@NASM_VERSION_XID@@/0x020c6363/g
-s/@@NASM_VER@@/2.13rc9/g
-s/@@NASM_MANGLED_VER@@/2.12.99.99/g
--- a/nasmbuild/nasm-2.13rc9/x86/disp8.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/* ----------------------------------------------------------------------- *
- *
- *   Copyright 1996-2013 The NASM Authors - All Rights Reserved
- *   See the file AUTHORS included with the NASM distribution for
- *   the specific copyright holders.
- *
- *   Redistribution and use in source and binary forms, with or without
- *   modification, are permitted provided that the following
- *   conditions are met:
- *
- *   * Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- *   * Redistributions in binary form must reproduce the above
- *     copyright notice, this list of conditions and the following
- *     disclaimer in the documentation and/or other materials provided
- *     with the distribution.
- *
- *     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
- *     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
- *     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- *     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- *     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- *     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- *     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
- *     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- *     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- *     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- *     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
- *     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- *     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * ----------------------------------------------------------------------- */
-
-/*
- * disp8.c   : Contains a common logic for EVEX compressed displacement
- */
-
-#include "disp8.h"
-
-/*
- * Find N value for compressed displacement (disp8 * N)
- */
-uint8_t get_disp8N(insn *ins)
-{
-    static const uint8_t fv_n[2][2][VLMAX] = {{{16, 32, 64}, {4, 4, 4}},
-                                              {{16, 32, 64}, {8, 8, 8}}};
-    static const uint8_t hv_n[2][VLMAX]    =  {{8, 16, 32}, {4, 4, 4}};
-    static const uint8_t dup_n[VLMAX]      =   {8, 32, 64};
-
-    bool evex_b           = (ins->evex_p[2] & EVEX_P2B) >> 4;
-    enum ttypes   tuple   = ins->evex_tuple;
-    enum vectlens vectlen = (ins->evex_p[2] & EVEX_P2LL) >> 5;
-    bool evex_w           = (ins->evex_p[1] & EVEX_P1W) >> 7;
-    uint8_t n = 0;
-
-    switch(tuple) {
-    case FV:
-        n = fv_n[evex_w][evex_b][vectlen];
-        break;
-    case HV:
-        n = hv_n[evex_b][vectlen];
-        break;
-
-    case FVM:
-        /* 16, 32, 64 for VL 128, 256, 512 respectively*/
-        n = 1 << (vectlen + 4);
-        break;
-    case T1S8:  /* N = 1 */
-    case T1S16: /* N = 2 */
-        n = tuple - T1S8 + 1;
-        break;
-    case T1S:
-        /* N = 4 for 32bit, 8 for 64bit */
-        n = evex_w ? 8 : 4;
-        break;
-    case T1F32:
-    case T1F64:
-        /* N = 4 for 32bit, 8 for 64bit */
-        n = (tuple == T1F32 ? 4 : 8);
-        break;
-    case T2:
-    case T4:
-    case T8:
-        if (vectlen + 7 <= (evex_w + 5) + (tuple - T2 + 1))
-            n = 0;
-        else
-            n = 1 << (tuple - T2 + evex_w + 3);
-        break;
-    case HVM:
-    case QVM:
-    case OVM:
-        n = 1 << (OVM - tuple + vectlen + 1);
-        break;
-    case M128:
-        n = 16;
-        break;
-    case DUP:
-        n = dup_n[vectlen];
-        break;
-
-    default:
-        break;
-    }
-
-    return n;
-}
-
-/*
- * Check if offset is a multiple of N with corresponding tuple type
- * if Disp8*N is available, compressed displacement is stored in compdisp
- */
-bool is_disp8n(operand *input, insn *ins, int8_t *compdisp)
-{
-    int32_t off           = input->offset;
-    uint8_t n;
-    int32_t disp8;
-
-    n = get_disp8N(ins);
-
-    if (n && !(off & (n - 1))) {
-        disp8 = off / n;
-        /* if it fits in Disp8 */
-        if (disp8 >= -128 && disp8 <= 127) {
-            *compdisp = disp8;
-            return true;
-        }
-    }
-
-    *compdisp = 0;
-    return false;
-}
--- a/nasmbuild/nasm-2.13rc9/x86/iflag.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,242 +0,0 @@
-/* This file is auto-generated. Don't edit. */
-#include "iflag.h"
-
-/* Global flags referenced from instruction templates */
-const iflag_t insns_flags[235] = {
-    /*    0 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*    1 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000010),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*    2 */ {{ UINT32_C(0x00000004),UINT32_C(0x00000010),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*    3 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000008),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*    4 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000008),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*    5 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*    6 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000028),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*    7 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*    8 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*    9 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*   10 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   11 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000008),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*   12 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000008),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*   13 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000028),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   14 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000018),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*   15 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000014),UINT32_C(0x00000000),UINT32_C(0x00000004) }},
-    /*   16 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000014),UINT32_C(0x00000000),UINT32_C(0x00000004) }},
-    /*   17 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x20000000),UINT32_C(0x40000020) }},
-    /*   18 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000010),UINT32_C(0x00000000),UINT32_C(0x00000002) }},
-    /*   19 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000010),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*   20 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000010) }},
-    /*   21 */ {{ UINT32_C(0x00000004),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*   22 */ {{ UINT32_C(0x00000004),UINT32_C(0x00000020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   23 */ {{ UINT32_C(0x00000004),UINT32_C(0x00000008),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*   24 */ {{ UINT32_C(0x00000004),UINT32_C(0x00000028),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   25 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000100),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*   26 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000110),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*   27 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000110),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*   28 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000120),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   29 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000001),UINT32_C(0x00000000),UINT32_C(0x00000004) }},
-    /*   30 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000010),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*   31 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000008),UINT32_C(0x00000000),UINT32_C(0x00000020) }},
-    /*   32 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000020) }},
-    /*   33 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000208),UINT32_C(0x20000000),UINT32_C(0x00000010) }},
-    /*   34 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000200),UINT32_C(0x20000000),UINT32_C(0x00000010) }},
-    /*   35 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000008),UINT32_C(0x00000000),UINT32_C(0x00000020) }},
-    /*   36 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x40000020) }},
-    /*   37 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x40000040) }},
-    /*   38 */ {{ UINT32_C(0x00000000),UINT32_C(0x00001000),UINT32_C(0x00000000),UINT32_C(0x00000020) }},
-    /*   39 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000002) }},
-    /*   40 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000800),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*   41 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000800),UINT32_C(0x00000000),UINT32_C(0x00000040) }},
-    /*   42 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000800),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*   43 */ {{ UINT32_C(0x00000000),UINT32_C(0x00002000),UINT32_C(0x00000000),UINT32_C(0x00000020) }},
-    /*   44 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000a00),UINT32_C(0x00000000),UINT32_C(0x00000004) }},
-    /*   45 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000800),UINT32_C(0x00000000),UINT32_C(0x00000200) }},
-    /*   46 */ {{ UINT32_C(0x00000008),UINT32_C(0x00000800),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*   47 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000800),UINT32_C(0x00000000),UINT32_C(0x00000004) }},
-    /*   48 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000001),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*   49 */ {{ UINT32_C(0x00000008),UINT32_C(0x00000200),UINT32_C(0x20000000),UINT32_C(0x00000008) }},
-    /*   50 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000200),UINT32_C(0x20000000),UINT32_C(0x00000008) }},
-    /*   51 */ {{ UINT32_C(0x00000010),UINT32_C(0x00000200),UINT32_C(0x20000000),UINT32_C(0x00000008) }},
-    /*   52 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000002) }},
-    /*   53 */ {{ UINT32_C(0x00000004),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*   54 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000001),UINT32_C(0x00000000),UINT32_C(0x00000010) }},
-    /*   55 */ {{ UINT32_C(0x00000000),UINT32_C(0x40000011),UINT32_C(0x00000000),UINT32_C(0x00004000) }},
-    /*   56 */ {{ UINT32_C(0x00000000),UINT32_C(0x40000021),UINT32_C(0x00000000),UINT32_C(0x00004000) }},
-    /*   57 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000010),UINT32_C(0x00000000),UINT32_C(0x80000400) }},
-    /*   58 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000400) }},
-    /*   59 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000020),UINT32_C(0x00000000),UINT32_C(0x80000400) }},
-    /*   60 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00008000) }},
-    /*   61 */ {{ UINT32_C(0x00000008),UINT32_C(0x00000004),UINT32_C(0x00000000),UINT32_C(0x00000004) }},
-    /*   62 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000004),UINT32_C(0x00000000),UINT32_C(0x00000004) }},
-    /*   63 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000004),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*   64 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000024),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   65 */ {{ UINT32_C(0x00000008),UINT32_C(0x00000004),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*   66 */ {{ UINT32_C(0x00000008),UINT32_C(0x00000024),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   67 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000005),UINT32_C(0x00000000),UINT32_C(0x00000004) }},
-    /*   68 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000200),UINT32_C(0x20000000),UINT32_C(0x00000004) }},
-    /*   69 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000200) }},
-    /*   70 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000010),UINT32_C(0x00000000),UINT32_C(0x00000200) }},
-    /*   71 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000000) }},
-    /*   72 */ {{ UINT32_C(0x00000008),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*   73 */ {{ UINT32_C(0x00010000),UINT32_C(0x00000020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   74 */ {{ UINT32_C(0x00010000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*   75 */ {{ UINT32_C(0x00010000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*   76 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000040),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*   77 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000040),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*   78 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000060),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   79 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000011),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*   80 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000021),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   81 */ {{ UINT32_C(0x00010001),UINT32_C(0x00000020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   82 */ {{ UINT32_C(0x00000010),UINT32_C(0x00001000),UINT32_C(0x00000000),UINT32_C(0x00000020) }},
-    /*   83 */ {{ UINT32_C(0x00000400),UINT32_C(0x00001020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   84 */ {{ UINT32_C(0x00000020),UINT32_C(0x00001000),UINT32_C(0x00000000),UINT32_C(0x00000020) }},
-    /*   85 */ {{ UINT32_C(0x00000000),UINT32_C(0x00001020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   86 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000040) }},
-    /*   87 */ {{ UINT32_C(0x00000020),UINT32_C(0x00001000),UINT32_C(0x00000000),UINT32_C(0x40000020) }},
-    /*   88 */ {{ UINT32_C(0x00000020),UINT32_C(0x00002000),UINT32_C(0x00000000),UINT32_C(0x00000020) }},
-    /*   89 */ {{ UINT32_C(0x00000001),UINT32_C(0x00001000),UINT32_C(0x00000000),UINT32_C(0x40000020) }},
-    /*   90 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000200),UINT32_C(0x20000000),UINT32_C(0x00000001) }},
-    /*   91 */ {{ UINT32_C(0x00000a00),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000002) }},
-    /*   92 */ {{ UINT32_C(0x00000a00),UINT32_C(0x00000010),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*   93 */ {{ UINT32_C(0x00000010),UINT32_C(0x00000010),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*   94 */ {{ UINT32_C(0x00000a00),UINT32_C(0x00000020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   95 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000002),UINT32_C(0x00000000),UINT32_C(0x40000040) }},
-    /*   96 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000001),UINT32_C(0x00000000),UINT32_C(0x00000020) }},
-    /*   97 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*   98 */ {{ UINT32_C(0x00000008),UINT32_C(0x00000100),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*   99 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000002),UINT32_C(0x00000000),UINT32_C(0x40000010) }},
-    /*  100 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000002),UINT32_C(0x00000000),UINT32_C(0x00000020) }},
-    /*  101 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000200),UINT32_C(0x00000000),UINT32_C(0x00000001) }},
-    /*  102 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000004) }},
-    /*  103 */ {{ UINT32_C(0x00002006),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*  104 */ {{ UINT32_C(0x00002006),UINT32_C(0x00000020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*  105 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000200),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*  106 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x20000000),UINT32_C(0x40000010) }},
-    /*  107 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000040) }},
-    /*  108 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000001),UINT32_C(0x00000000),UINT32_C(0x00000040) }},
-    /*  109 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000001),UINT32_C(0x00000000),UINT32_C(0x80000040) }},
-    /*  110 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000200),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*  111 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000008),UINT32_C(0x00000000),UINT32_C(0x00000010) }},
-    /*  112 */ {{ UINT32_C(0x00000008),UINT32_C(0x00000200),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*  113 */ {{ UINT32_C(0x00000010),UINT32_C(0x00000200),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*  114 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000040) }},
-    /*  115 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000100),UINT32_C(0x00000000),UINT32_C(0x00000008) }},
-    /*  116 */ {{ UINT32_C(0x00000000),UINT32_C(0x00004000),UINT32_C(0x00000000),UINT32_C(0x00000080) }},
-    /*  117 */ {{ UINT32_C(0x00002004),UINT32_C(0x00004000),UINT32_C(0x00000000),UINT32_C(0x00000080) }},
-    /*  118 */ {{ UINT32_C(0x00000000),UINT32_C(0x00005000),UINT32_C(0x00000000),UINT32_C(0x00000080) }},
-    /*  119 */ {{ UINT32_C(0x00001010),UINT32_C(0x00004000),UINT32_C(0x00000000),UINT32_C(0x00000080) }},
-    /*  120 */ {{ UINT32_C(0x00001020),UINT32_C(0x00004020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*  121 */ {{ UINT32_C(0x00001010),UINT32_C(0x00004020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*  122 */ {{ UINT32_C(0x00000020),UINT32_C(0x00005000),UINT32_C(0x00000000),UINT32_C(0x00000080) }},
-    /*  123 */ {{ UINT32_C(0x00000000),UINT32_C(0x00004020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*  124 */ {{ UINT32_C(0x00000000),UINT32_C(0x00004800),UINT32_C(0x00000000),UINT32_C(0x00000040) }},
-    /*  125 */ {{ UINT32_C(0x00000000),UINT32_C(0x00004820),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*  126 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000800) }},
-    /*  127 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000001),UINT32_C(0x00000000),UINT32_C(0x00000800) }},
-    /*  128 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000020),UINT32_C(0x00000000),UINT32_C(0x00000800) }},
-    /*  129 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00004000) }},
-    /*  130 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000020),UINT32_C(0x00000000),UINT32_C(0x00004000) }},
-    /*  131 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000080) }},
-    /*  132 */ {{ UINT32_C(0x00000000),UINT32_C(0x00001000),UINT32_C(0x00000000),UINT32_C(0x00000080) }},
-    /*  133 */ {{ UINT32_C(0x00000020),UINT32_C(0x00001000),UINT32_C(0x00000000),UINT32_C(0x00000080) }},
-    /*  134 */ {{ UINT32_C(0x00002004),UINT32_C(0x00001000),UINT32_C(0x00000000),UINT32_C(0x00000080) }},
-    /*  135 */ {{ UINT32_C(0x00002006),UINT32_C(0x00001000),UINT32_C(0x00000000),UINT32_C(0x00000080) }},
-    /*  136 */ {{ UINT32_C(0x00000000),UINT32_C(0x00008000),UINT32_C(0x00000000),UINT32_C(0x00000100) }},
-    /*  137 */ {{ UINT32_C(0x00000040),UINT32_C(0x00008000),UINT32_C(0x00000000),UINT32_C(0x00000100) }},
-    /*  138 */ {{ UINT32_C(0x00000010),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000100) }},
-    /*  139 */ {{ UINT32_C(0x00000020),UINT32_C(0x00000020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*  140 */ {{ UINT32_C(0x00000010),UINT32_C(0x00008000),UINT32_C(0x00000000),UINT32_C(0x00000100) }},
-    /*  141 */ {{ UINT32_C(0x00000020),UINT32_C(0x00008000),UINT32_C(0x00000000),UINT32_C(0x00000100) }},
-    /*  142 */ {{ UINT32_C(0x00000000),UINT32_C(0x00008020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*  143 */ {{ UINT32_C(0x00000020),UINT32_C(0x00001000),UINT32_C(0x00000000),UINT32_C(0x00000100) }},
-    /*  144 */ {{ UINT32_C(0x00002004),UINT32_C(0x00008000),UINT32_C(0x00000000),UINT32_C(0x00000100) }},
-    /*  145 */ {{ UINT32_C(0x00002006),UINT32_C(0x00008000),UINT32_C(0x00000000),UINT32_C(0x00000100) }},
-    /*  146 */ {{ UINT32_C(0x00001004),UINT32_C(0x00008000),UINT32_C(0x00000000),UINT32_C(0x00000100) }},
-    /*  147 */ {{ UINT32_C(0x00001020),UINT32_C(0x00008000),UINT32_C(0x00000000),UINT32_C(0x00000100) }},
-    /*  148 */ {{ UINT32_C(0x00001020),UINT32_C(0x00008020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*  149 */ {{ UINT32_C(0x00001010),UINT32_C(0x00008000),UINT32_C(0x00000000),UINT32_C(0x00000100) }},
-    /*  150 */ {{ UINT32_C(0x00002005),UINT32_C(0x00008000),UINT32_C(0x00000000),UINT32_C(0x00000100) }},
-    /*  151 */ {{ UINT32_C(0x00000040),UINT32_C(0x00010000),UINT32_C(0x00000000),UINT32_C(0x00000200) }},
-    /*  152 */ {{ UINT32_C(0x00000000),UINT32_C(0x00010000),UINT32_C(0x00000000),UINT32_C(0x00000200) }},
-    /*  153 */ {{ UINT32_C(0x00000000),UINT32_C(0x00020000),UINT32_C(0x00000000),UINT32_C(0x80000000) }},
-    /*  154 */ {{ UINT32_C(0x00000000),UINT32_C(0x00020000),UINT32_C(0x00000000),UINT32_C(0x00000000) }},
-    /*  155 */ {{ UINT32_C(0x00000010),UINT32_C(0x00020010),UINT32_C(0x00000000),UINT32_C(0x00000000) }},
-    /*  156 */ {{ UINT32_C(0x00000020),UINT32_C(0x00020020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*  157 */ {{ UINT32_C(0x00000040),UINT32_C(0x00020010),UINT32_C(0x00000000),UINT32_C(0x00000000) }},
-    /*  158 */ {{ UINT32_C(0x00000040),UINT32_C(0x00020020),UINT32_C(0x00000000),UINT32_C(0x00000000) }},
-    /*  159 */ {{ UINT32_C(0x00000020),UINT32_C(0x00041000),UINT32_C(0x00000000),UINT32_C(0x00000000) }},
-    /*  160 */ {{ UINT32_C(0x00000000),UINT32_C(0x00040000),UINT32_C(0x00000000),UINT32_C(0x00000000) }},
-    /*  161 */ {{ UINT32_C(0x00000000),UINT32_C(0x00080000),UINT32_C(0x00000000),UINT32_C(0x80000000) }},
-    /*  162 */ {{ UINT32_C(0x00000020),UINT32_C(0x00080000),UINT32_C(0x00000000),UINT32_C(0x80000000) }},
-    /*  163 */ {{ UINT32_C(0x00000010),UINT32_C(0x00080000),UINT32_C(0x00000000),UINT32_C(0x80000000) }},
-    /*  164 */ {{ UINT32_C(0x00000000),UINT32_C(0x00100000),UINT32_C(0x00000000),UINT32_C(0x00000000) }},
-    /*  165 */ {{ UINT32_C(0x00000000),UINT32_C(0x00100020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*  166 */ {{ UINT32_C(0x00000010),UINT32_C(0x00100000),UINT32_C(0x00000000),UINT32_C(0x00000000) }},
-    /*  167 */ {{ UINT32_C(0x00002004),UINT32_C(0x00100000),UINT32_C(0x00000000),UINT32_C(0x00000000) }},
-    /*  168 */ {{ UINT32_C(0x00002004),UINT32_C(0x00100020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*  169 */ {{ UINT32_C(0x00000020),UINT32_C(0x00100000),UINT32_C(0x00000000),UINT32_C(0x00000000) }},
-    /*  170 */ {{ UINT32_C(0x00000008),UINT32_C(0x00100000),UINT32_C(0x00000000),UINT32_C(0x00000000) }},
-    /*  171 */ {{ UINT32_C(0x00000000),UINT32_C(0x00200000),UINT32_C(0x00000000),UINT32_C(0x00000000) }},
-    /*  172 */ {{ UINT32_C(0x00000000),UINT32_C(0x00200020),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-    /*  173 */ {{ UINT32_C(0x00000008),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000800) }},
-    /*  174 */ {{ UINT32_C(0x00000010),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000800) }},
-    /*  175 */ {{ UINT32_C(0x00000020),UINT32_C(0x00000020),UINT32_C(0x00000000),UINT32_C(0x00000c00) }},
-    /*  176 */ {{ UINT32_C(0x00000020),UINT32_C(0x00002000),UINT32_C(0x00000000),UINT32_C(0x40000020) }},
-    /*  177 */ {{ UINT32_C(0x00000001),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000800) }},
-    /*  178 */ {{ UINT32_C(0x00000000),UINT32_C(0x00004000),UINT32_C(0x00000000),UINT32_C(0x00001000) }},
-    /*  179 */ {{ UINT32_C(0x00000000),UINT32_C(0x00800000),UINT32_C(0x40000000),UINT32_C(0x00002000) }},
-    /*  180 */ {{ UINT32_C(0x00000040),UINT32_C(0x00800000),UINT32_C(0x40000000),UINT32_C(0x00002000) }},
-    /*  181 */ {{ UINT32_C(0x00000080),UINT32_C(0x00800000),UINT32_C(0x40000000),UINT32_C(0x00002000) }},
-    /*  182 */ {{ UINT32_C(0x00000000),UINT32_C(0x00800020),UINT32_C(0x40000000),UINT32_C(0x00002000) }},
-    /*  183 */ {{ UINT32_C(0x00000010),UINT32_C(0x00800000),UINT32_C(0x40000000),UINT32_C(0x00002000) }},
-    /*  184 */ {{ UINT32_C(0x00000020),UINT32_C(0x00800020),UINT32_C(0x40000000),UINT32_C(0x00002000) }},
-    /*  185 */ {{ UINT32_C(0x00000020),UINT32_C(0x00800000),UINT32_C(0x40000000),UINT32_C(0x00002000) }},
-    /*  186 */ {{ UINT32_C(0x00000000),UINT32_C(0x02000000),UINT32_C(0x40000000),UINT32_C(0x00004000) }},
-    /*  187 */ {{ UINT32_C(0x00000000),UINT32_C(0x00800000),UINT32_C(0x40000000),UINT32_C(0x00004000) }},
-    /*  188 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000001),UINT32_C(0x00000000),UINT32_C(0x00004000) }},
-    /*  189 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x40000000),UINT32_C(0x80000008) }},
-    /*  190 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000020),UINT32_C(0x40000000),UINT32_C(0x80000400) }},
-    /*  191 */ {{ UINT32_C(0x00000000),UINT32_C(0x00400000),UINT32_C(0x40000000),UINT32_C(0x80000000) }},
-    /*  192 */ {{ UINT32_C(0x00000000),UINT32_C(0x01000000),UINT32_C(0x40000000),UINT32_C(0x00004000) }},
-    /*  193 */ {{ UINT32_C(0x00000000),UINT32_C(0x20000000),UINT32_C(0x00000000),UINT32_C(0x00004000) }},
-    /*  194 */ {{ UINT32_C(0x00000000),UINT32_C(0x20000010),UINT32_C(0x00000000),UINT32_C(0x00004000) }},
-    /*  195 */ {{ UINT32_C(0x00000000),UINT32_C(0x20000020),UINT32_C(0x00000000),UINT32_C(0x00004000) }},
-    /*  196 */ {{ UINT32_C(0x00000000),UINT32_C(0x20000400),UINT32_C(0x00000000),UINT32_C(0x00004000) }},
-    /*  197 */ {{ UINT32_C(0x00000000),UINT32_C(0x04000000),UINT32_C(0x40000000),UINT32_C(0x00004000) }},
-    /*  198 */ {{ UINT32_C(0x00000000),UINT32_C(0x04000020),UINT32_C(0x40000000),UINT32_C(0x00004000) }},
-    /*  199 */ {{ UINT32_C(0x00000000),UINT32_C(0x10000000),UINT32_C(0x40000000),UINT32_C(0x00004000) }},
-    /*  200 */ {{ UINT32_C(0x00000000),UINT32_C(0x10000020),UINT32_C(0x40000000),UINT32_C(0x00004000) }},
-    /*  201 */ {{ UINT32_C(0x00000000),UINT32_C(0x08000000),UINT32_C(0x40000000),UINT32_C(0x00004000) }},
-    /*  202 */ {{ UINT32_C(0x00000000),UINT32_C(0x08000020),UINT32_C(0x40000000),UINT32_C(0x00004000) }},
-    /*  203 */ {{ UINT32_C(0x00000000),UINT32_C(0x04000000),UINT32_C(0x00000000),UINT32_C(0x00004000) }},
-    /*  204 */ {{ UINT32_C(0x00000000),UINT32_C(0x04000020),UINT32_C(0x00000000),UINT32_C(0x00004000) }},
-    /*  205 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000040),UINT32_C(0x00004000) }},
-    /*  206 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000080),UINT32_C(0x00000010),UINT32_C(0x00004000) }},
-    /*  207 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000010),UINT32_C(0x00004000) }},
-    /*  208 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000010),UINT32_C(0x00000010),UINT32_C(0x00004000) }},
-    /*  209 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000020),UINT32_C(0x00000010),UINT32_C(0x00004000) }},
-    /*  210 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000090),UINT32_C(0x00000010),UINT32_C(0x00004000) }},
-    /*  211 */ {{ UINT32_C(0x00000000),UINT32_C(0x000000a0),UINT32_C(0x00000010),UINT32_C(0x00004000) }},
-    /*  212 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x40000000),UINT32_C(0x00004000) }},
-    /*  213 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000020),UINT32_C(0x00004000) }},
-    /*  214 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000081),UINT32_C(0x00004000) }},
-    /*  215 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000001),UINT32_C(0x00004000) }},
-    /*  216 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000180),UINT32_C(0x00004000) }},
-    /*  217 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000100),UINT32_C(0x00004000) }},
-    /*  218 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000280),UINT32_C(0x00004000) }},
-    /*  219 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000200),UINT32_C(0x00004000) }},
-    /*  220 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000004),UINT32_C(0x00004000) }},
-    /*  221 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000008),UINT32_C(0x00004000) }},
-    /*  222 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000082),UINT32_C(0x00004000) }},
-    /*  223 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000002),UINT32_C(0x00004000) }},
-    /*  224 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000880),UINT32_C(0x00004000) }},
-    /*  225 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000800),UINT32_C(0x00004000) }},
-    /*  226 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000480),UINT32_C(0x00004000) }},
-    /*  227 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80000400),UINT32_C(0x00004000) }},
-    /*  228 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000020),UINT32_C(0x00000000),UINT32_C(0x00004400) }},
-    /*  229 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000010),UINT32_C(0x00000000),UINT32_C(0x00004000) }},
-    /*  230 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000220),UINT32_C(0x00000000),UINT32_C(0x00004400) }},
-    /*  231 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000200),UINT32_C(0x20000000),UINT32_C(0x00004000) }},
-    /*  232 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x00000000),UINT32_C(0x80004000) }},
-    /*  233 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000200),UINT32_C(0x00000000),UINT32_C(0x00000040) }},
-    /*  234 */ {{ UINT32_C(0x00000000),UINT32_C(0x00000220),UINT32_C(0x00000000),UINT32_C(0x00000400) }},
-};
-
--- a/nasmbuild/nasm-2.13rc9/x86/iflaggen.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/* This file is auto-generated. Don't edit. */
-#ifndef NASM_IFLAGGEN_H
-#define NASM_IFLAGGEN_H 1
-
-#define IF_SM                 0 /* Size match                                                       */
-#define IF_SM2                1 /* Size match first two operands                                    */
-#define IF_SB                 2 /* Unsized operands can't be non-byte                               */
-#define IF_SW                 3 /* Unsized operands can't be non-word                               */
-#define IF_SD                 4 /* Unsized operands can't be non-dword                              */
-#define IF_SQ                 5 /* Unsized operands can't be non-qword                              */
-#define IF_SO                 6 /* Unsized operands can't be non-oword                              */
-#define IF_SY                 7 /* Unsized operands can't be non-yword                              */
-#define IF_SZ                 8 /* Unsized operands can't be non-zword                              */
-#define IF_SIZE               9 /* Unsized operands must match the bitsize                          */
-#define IF_SX                10 /* Unsized operands not allowed                                     */
-#define IF_AR0               11 /* SB, SW, SD applies to argument 0                                 */
-#define IF_AR1               12 /* SB, SW, SD applies to argument 1                                 */
-#define IF_AR2               13 /* SB, SW, SD applies to argument 2                                 */
-#define IF_AR3               14 /* SB, SW, SD applies to argument 3                                 */
-#define IF_AR4               15 /* SB, SW, SD applies to argument 4                                 */
-#define IF_OPT               16 /* Optimizing assembly only                                         */
-#define IF_PRIV              32 /* Privileged instruction                                           */
-#define IF_SMM               33 /* Only valid in SMM                                                */
-#define IF_PROT              34 /* Protected mode only                                              */
-#define IF_LOCK              35 /* Lockable if operand 0 is memory                                  */
-#define IF_NOLONG            36 /* Not available in long mode                                       */
-#define IF_LONG              37 /* Long mode                                                        */
-#define IF_NOHLE             38 /* HLE prefixes forbidden                                           */
-#define IF_MIB               39 /* disassemble with split EA                                        */
-#define IF_BND               40 /* BND (0xF2) prefix available                                      */
-#define IF_UNDOC             41 /* Undocumented                                                     */
-#define IF_HLE               42 /* HLE prefixed                                                     */
-#define IF_FPU               43 /* FPU                                                              */
-#define IF_MMX               44 /* MMX                                                              */
-#define IF_3DNOW             45 /* 3DNow!                                                           */
-#define IF_SSE               46 /* SSE (KNI, MMX2)                                                  */
-#define IF_SSE2              47 /* SSE2                                                             */
-#define IF_SSE3              48 /* SSE3 (PNI)                                                       */
-#define IF_VMX               49 /* VMX                                                              */
-#define IF_SSSE3             50 /* SSSE3                                                            */
-#define IF_SSE4A             51 /* AMD SSE4a                                                        */
-#define IF_SSE41             52 /* SSE4.1                                                           */
-#define IF_SSE42             53 /* SSE4.2                                                           */
-#define IF_SSE5              54 /* SSE5                                                             */
-#define IF_AVX               55 /* AVX (128b)                                                       */
-#define IF_AVX2              56 /* AVX2 (256b)                                                      */
-#define IF_FMA               57 /*                                                                  */
-#define IF_BMI1              58 /*                                                                  */
-#define IF_BMI2              59 /*                                                                  */
-#define IF_TBM               60 /*                                                                  */
-#define IF_RTM               61 /*                                                                  */
-#define IF_INVPCID           62 /*                                                                  */
-#define IF_AVX512            64 /* AVX-512F (512b)                                                  */
-#define IF_AVX512CD          65 /* AVX-512 Conflict Detection                                       */
-#define IF_AVX512ER          66 /* AVX-512 Exponential and Reciprocal                               */
-#define IF_AVX512PF          67 /* AVX-512 Prefetch                                                 */
-#define IF_MPX               68 /* MPX                                                              */
-#define IF_SHA               69 /* SHA                                                              */
-#define IF_PREFETCHWT1       70 /* PREFETCHWT1                                                      */
-#define IF_AVX512VL          71 /* AVX-512 Vector Length Orthogonality                              */
-#define IF_AVX512DQ          72 /* AVX-512 Dword and Qword                                          */
-#define IF_AVX512BW          73 /* AVX-512 Byte and Word                                            */
-#define IF_AVX512IFMA        74 /* AVX-512 IFMA instructions                                        */
-#define IF_AVX512VBMI        75 /* AVX-512 VBMI instructions                                        */
-#define IF_OBSOLETE          93 /* Instruction removed from architecture                            */
-#define IF_VEX               94 /* VEX or XOP encoded instruction                                   */
-#define IF_EVEX              95 /* EVEX encoded instruction                                         */
-#define IF_8086              96 /* 8086                                                             */
-#define IF_186               97 /* 186+                                                             */
-#define IF_286               98 /* 286+                                                             */
-#define IF_386               99 /* 386+                                                             */
-#define IF_486              100 /* 486+                                                             */
-#define IF_PENT             101 /* Pentium                                                          */
-#define IF_P6               102 /* P6                                                               */
-#define IF_KATMAI           103 /* Katmai                                                           */
-#define IF_WILLAMETTE       104 /* Willamette                                                       */
-#define IF_PRESCOTT         105 /* Prescott                                                         */
-#define IF_X86_64           106 /* x86-64 (long or legacy mode)                                     */
-#define IF_NEHALEM          107 /* Nehalem                                                          */
-#define IF_WESTMERE         108 /* Westmere                                                         */
-#define IF_SANDYBRIDGE      109 /* Sandy Bridge                                                     */
-#define IF_FUTURE           110 /* Future processor (not yet disclosed)                             */
-#define IF_IA64             111 /* IA64 (in x86 mode)                                               */
-#define IF_CYRIX            126 /* Cyrix-specific                                                   */
-#define IF_AMD              127 /* AMD-specific                                                     */
-
-typedef struct {
-    uint32_t field[4];
-} iflag_t;
-
-extern const iflag_t insns_flags[235];
-
-#endif /* NASM_IFLAGGEN_H */
--- a/nasmbuild/nasm-2.13rc9/x86/insns-iflags.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,255 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##
-##   Copyright 1996-2016 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# Instruction template flags. These specify which processor
-# targets the instruction is eligible for, whether it is
-# privileged or undocumented, and also specify extra error
-# checking on the matching of the instruction.
-#
-# IF_SM stands for Size Match: any operand whose size is not
-# explicitly specified by the template is `really' intended to be
-# the same size as the first size-specified operand.
-# Non-specification is tolerated in the input instruction, but
-# _wrong_ specification is not.
-#
-# IF_SM2 invokes Size Match on only the first _two_ operands, for
-# three-operand instructions such as SHLD: it implies that the
-# first two operands must match in size, but that the third is
-# required to be _unspecified_.
-#
-# IF_SB invokes Size Byte: operands with unspecified size in the
-# template are really bytes, and so no non-byte specification in
-# the input instruction will be tolerated. IF_SW similarly invokes
-# Size Word, and IF_SD invokes Size Doubleword.
-#
-# (The default state if neither IF_SM nor IF_SM2 is specified is
-# that any operand with unspecified size in the template is
-# required to have unspecified size in the instruction too...)
-#
-# iflag_t is defined to store these flags.
-#
-# The order does matter here. We use some predefined masks to quick test
-# for a set of flags, so be careful moving bits (and
-# don't forget to update C code generation then).
-#
-my %insns_flag_bit = (
-    #
-    # dword bound, index 0 - specific flags
-    #
-    "SM"                => [  0, "Size match"],
-    "SM2"               => [  1, "Size match first two operands"],
-    "SB"                => [  2, "Unsized operands can't be non-byte"],
-    "SW"                => [  3, "Unsized operands can't be non-word"],
-    "SD"                => [  4, "Unsized operands can't be non-dword"],
-    "SQ"                => [  5, "Unsized operands can't be non-qword"],
-    "SO"                => [  6, "Unsized operands can't be non-oword"],
-    "SY"                => [  7, "Unsized operands can't be non-yword"],
-    "SZ"                => [  8, "Unsized operands can't be non-zword"],
-    "SIZE"              => [  9, "Unsized operands must match the bitsize"],
-    "SX"                => [ 10, "Unsized operands not allowed"],
-    "AR0"               => [ 11, "SB, SW, SD applies to argument 0"],
-    "AR1"               => [ 12, "SB, SW, SD applies to argument 1"],
-    "AR2"               => [ 13, "SB, SW, SD applies to argument 2"],
-    "AR3"               => [ 14, "SB, SW, SD applies to argument 3"],
-    "AR4"               => [ 15, "SB, SW, SD applies to argument 4"],
-    "OPT"               => [ 16, "Optimizing assembly only"],
-
-    #
-    # dword bound, index 1 - instruction filtering flags
-    #
-    "PRIV"              => [ 32, "Privileged instruction"],
-    "SMM"               => [ 33, "Only valid in SMM"],
-    "PROT"              => [ 34, "Protected mode only"],
-    "LOCK"              => [ 35, "Lockable if operand 0 is memory"],
-    "NOLONG"            => [ 36, "Not available in long mode"],
-    "LONG"              => [ 37, "Long mode"],
-    "NOHLE"             => [ 38, "HLE prefixes forbidden"],
-    "MIB"               => [ 39, "disassemble with split EA"],
-    "BND"               => [ 40, "BND (0xF2) prefix available"],
-    "UNDOC"             => [ 41, "Undocumented"],
-    "HLE"               => [ 42, "HLE prefixed"],
-    "FPU"               => [ 43, "FPU"],
-    "MMX"               => [ 44, "MMX"],
-    "3DNOW"             => [ 45, "3DNow!"],
-    "SSE"               => [ 46, "SSE (KNI, MMX2)"],
-    "SSE2"              => [ 47, "SSE2"],
-    "SSE3"              => [ 48, "SSE3 (PNI)"],
-    "VMX"               => [ 49, "VMX"],
-    "SSSE3"             => [ 50, "SSSE3"],
-    "SSE4A"             => [ 51, "AMD SSE4a"],
-    "SSE41"             => [ 52, "SSE4.1"],
-    "SSE42"             => [ 53, "SSE4.2"],
-    "SSE5"              => [ 54, "SSE5"],
-    "AVX"               => [ 55, "AVX (128b)"],
-    "AVX2"              => [ 56, "AVX2 (256b)"],
-    "FMA"               => [ 57, ""],
-    "BMI1"              => [ 58, ""],
-    "BMI2"              => [ 59, ""],
-    "TBM"               => [ 60, ""],
-    "RTM"               => [ 61, ""],
-    "INVPCID"           => [ 62, ""],
-
-    #
-    # dword bound, index 2 - instruction filtering flags
-    #
-    "AVX512"            => [ 64, "AVX-512F (512b)"],
-    "AVX512CD"          => [ 65, "AVX-512 Conflict Detection"],
-    "AVX512ER"          => [ 66, "AVX-512 Exponential and Reciprocal"],
-    "AVX512PF"          => [ 67, "AVX-512 Prefetch"],
-    "MPX"               => [ 68	,"MPX"],
-    "SHA"               => [ 69	,"SHA"],
-    "PREFETCHWT1"       => [ 70	,"PREFETCHWT1"],
-    "AVX512VL"          => [ 71, "AVX-512 Vector Length Orthogonality"],
-    "AVX512DQ"          => [ 72, "AVX-512 Dword and Qword"],
-    "AVX512BW"          => [ 73, "AVX-512 Byte and Word"],
-    "AVX512IFMA"        => [ 74, "AVX-512 IFMA instructions"],
-    "AVX512VBMI"        => [ 75, "AVX-512 VBMI instructions"],
-    "OBSOLETE"          => [ 93, "Instruction removed from architecture"],
-    "VEX"               => [ 94, "VEX or XOP encoded instruction"],
-    "EVEX"              => [ 95, "EVEX encoded instruction"],
-
-    #
-    # dword bound, index 3 - cpu type flags
-    #
-    # The CYRIX and AMD flags should have the highest bit values; the
-    # disassembler selection algorithm depends on it.
-    #
-    "8086"              => [ 96, "8086"],
-    "186"               => [ 97, "186+"],
-    "286"               => [ 98, "286+"],
-    "386"               => [ 99, "386+"],
-    "486"               => [100, "486+"],
-    "PENT"              => [101, "Pentium"],
-    "P6"                => [102, "P6"],
-    "KATMAI"            => [103, "Katmai"],
-    "WILLAMETTE"        => [104, "Willamette"],
-    "PRESCOTT"          => [105, "Prescott"],
-    "X86_64"            => [106, "x86-64 (long or legacy mode)"],
-    "NEHALEM"           => [107, "Nehalem"],
-    "WESTMERE"          => [108, "Westmere"],
-    "SANDYBRIDGE"       => [109, "Sandy Bridge"],
-    "FUTURE"            => [110, "Future processor (not yet disclosed)"],
-    "IA64"              => [111, "IA64 (in x86 mode)"],
-    "CYRIX"             => [126, "Cyrix-specific"],
-    "AMD"               => [127, "AMD-specific"],
-);
-
-my %insns_flag_hash = ();
-my @insns_flag_values = ();
-my $iflag_words;
-
-sub get_flag_words() {
-    my $max = -1;
-
-    foreach my $key (keys(%insns_flag_bit)) {
-	if (${$insns_flag_bit{$key}}[0] > $max) {
-	    $max = ${$insns_flag_bit{$key}}[0];
-	}
-    }
-
-    return int($max/32)+1;
-}
-
-sub insns_flag_index(@) {
-    return undef if $_[0] eq "ignore";
-
-    my @prekey = sort(@_);
-    my $key = join("", @prekey);
-
-    if (not defined($insns_flag_hash{$key})) {
-        my @newkey = (0) x $iflag_words;
-
-        for my $i (@prekey) {
-            die "No key for $i\n" if not defined($insns_flag_bit{$i});
-	    $newkey[$insns_flag_bit{$i}[0]/32] |=
-		(1 << ($insns_flag_bit{$i}[0] % 32));
-        }
-
-	my $str = join(',', map { sprintf("UINT32_C(0x%08x)",$_) } @newkey);
-
-        push @insns_flag_values, $str;
-        $insns_flag_hash{$key} = $#insns_flag_values;
-    }
-
-    return $insns_flag_hash{$key};
-}
-
-sub write_iflaggen_h() {
-    print STDERR "Writing $oname...\n";
-
-    open(N, '>', $oname) or die "$0: $!\n";
-
-    print N "/* This file is auto-generated. Don't edit. */\n";
-    print N "#ifndef NASM_IFLAGGEN_H\n";
-    print N "#define NASM_IFLAGGEN_H 1\n\n";
-
-    foreach my $key (sort { $insns_flag_bit{$a}[0] <=> $insns_flag_bit{$b}[0] } keys(%insns_flag_bit)) {
-        print N sprintf("#define IF_%-16s %3d /* %-64s */\n",
-            $key, $insns_flag_bit{$key}[0], $insns_flag_bit{$key}[1]);
-    }
-
-    print N "\n";
-    print N "typedef struct {\n";
-    printf N "    uint32_t field[%d];\n", $iflag_words;
-    print N "} iflag_t;\n";
-
-    print N "\n";
-    printf N "extern const iflag_t insns_flags[%d];\n\n",
-	$#insns_flag_values + 1;
-
-    print N "#endif /* NASM_IFLAGGEN_H */\n";
-    close N;
-}
-
-sub write_iflag_c() {
-    print STDERR "Writing $oname...\n";
-
-    open(N, '>', $oname) or die "$0: $!\n";
-
-    print N "/* This file is auto-generated. Don't edit. */\n";
-    print N "#include \"iflag.h\"\n\n";
-    print N "/* Global flags referenced from instruction templates */\n";
-    printf N "const iflag_t insns_flags[%d] = {\n",
-        $#insns_flag_values + 1;
-    foreach my $i (0 .. $#insns_flag_values) {
-        print N sprintf("    /* %4d */ {{ %s }},\n", $i, $insns_flag_values[$i]);
-    }
-    print N "};\n\n";
-    close N;
-}
-
-$iflag_words = get_flag_words();
-
-1;
--- a/nasmbuild/nasm-2.13rc9/x86/insns.dat	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5331 +0,0 @@
-;; --------------------------------------------------------------------------
-;;
-;;   Copyright 1996-2017 The NASM Authors - All Rights Reserved
-;;   See the file AUTHORS included with the NASM distribution for
-;;   the specific copyright holders.
-;;
-;;   Redistribution and use in source and binary forms, with or without
-;;   modification, are permitted provided that the following
-;;   conditions are met:
-;;
-;;   * Redistributions of source code must retain the above copyright
-;;     notice, this list of conditions and the following disclaimer.
-;;   * Redistributions in binary form must reproduce the above
-;;     copyright notice, this list of conditions and the following
-;;     disclaimer in the documentation and/or other materials provided
-;;     with the distribution.
-;;
-;;     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-;;     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-;;     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-;;     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;;     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-;;     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-;;     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-;;     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-;;     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-;;     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-;;     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-;;     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-;;     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;;
-;; --------------------------------------------------------------------------
-
-;
-; insns.dat    table of instructions for the Netwide Assembler
-;
-; Format of file: All four fields must be present on every functional
-; line. Hence `void' for no-operand instructions, and `\0' for such
-; as EQU. If the last three fields are all `ignore', no action is
-; taken except to register the opcode as being present.
-;
-; For a detailed description of the code string (third field), please
-; see insns.pl and the comment at the top of assemble.c. For a detailed
-; description of the flags (fourth field), please see insns-iflags.pl.
-;
-; Comments with a pound sign after the semicolon generate section
-; subheaders in the NASM documentation.
-;
-
-;# Special instructions...
-DB		ignore				ignore						ignore
-DW		ignore				ignore						ignore
-DD		ignore				ignore						ignore
-DQ		ignore				ignore						ignore
-DT		ignore				ignore						ignore
-DO		ignore				ignore						ignore
-DY		ignore				ignore						ignore
-DZ		ignore				ignore						ignore
-RESB		imm				[	resb]					8086
-RESW		ignore				ignore						ignore
-RESD		ignore				ignore						ignore
-RESQ		ignore				ignore						ignore
-REST		ignore				ignore						ignore
-RESO		ignore				ignore						ignore
-RESY		ignore				ignore						ignore
-RESZ		ignore				ignore						ignore
-
-;# Conventional instructions
-AAA		void				[	37]					8086,NOLONG
-AAD		void				[	d5 0a]					8086,NOLONG
-AAD		imm				[i:	d5 ib,u]				8086,SB,NOLONG
-AAM		void				[	d4 0a]					8086,NOLONG
-AAM		imm				[i:	d4 ib,u]				8086,SB,NOLONG
-AAS		void				[	3f]					8086,NOLONG
-ADC		mem,reg8			[mr:	hle 10 /r]				8086,SM,LOCK
-ADC		reg8,reg8			[mr:	10 /r]					8086
-ADC		mem,reg16			[mr:	hle o16 11 /r]				8086,SM,LOCK
-ADC		reg16,reg16			[mr:	o16 11 /r]				8086
-ADC		mem,reg32			[mr:	hle o32 11 /r]				386,SM,LOCK
-ADC		reg32,reg32			[mr:	o32 11 /r]				386
-ADC		mem,reg64			[mr:	hle o64 11 /r]				X64,SM,LOCK
-ADC		reg64,reg64			[mr:	o64 11 /r]				X64
-ADC		reg8,mem			[rm:	12 /r]					8086,SM
-ADC		reg8,reg8			[rm:	12 /r]					8086
-ADC		reg16,mem			[rm:	o16 13 /r]				8086,SM
-ADC		reg16,reg16			[rm:	o16 13 /r]				8086
-ADC		reg32,mem			[rm:	o32 13 /r]				386,SM
-ADC		reg32,reg32			[rm:	o32 13 /r]				386
-ADC		reg64,mem			[rm:	o64 13 /r]				X64,SM
-ADC		reg64,reg64			[rm:	o64 13 /r]				X64
-ADC		rm16,imm8			[mi:	hle o16 83 /2 ib,s]			8086,LOCK
-ADC		rm32,imm8			[mi:	hle o32 83 /2 ib,s]			386,LOCK
-ADC		rm64,imm8			[mi:	hle o64 83 /2 ib,s]			X64,LOCK
-ADC		reg_al,imm			[-i:	14 ib]					8086,SM
-ADC		reg_ax,sbyteword		[mi:	o16 83 /2 ib,s]				8086,SM,ND
-ADC		reg_ax,imm			[-i:	o16 15 iw]				8086,SM
-ADC		reg_eax,sbytedword		[mi:	o32 83 /2 ib,s]				386,SM,ND
-ADC		reg_eax,imm			[-i:	o32 15 id]				386,SM
-ADC		reg_rax,sbytedword		[mi:	o64 83 /2 ib,s]				X64,SM,ND
-ADC		reg_rax,imm			[-i:	o64 15 id,s]				X64,SM
-ADC		rm8,imm				[mi:	hle 80 /2 ib]				8086,SM,LOCK
-ADC		rm16,sbyteword			[mi:	hle o16 83 /2 ib,s]			8086,SM,LOCK,ND
-ADC		rm16,imm			[mi:	hle o16 81 /2 iw]			8086,SM,LOCK
-ADC		rm32,sbytedword			[mi:	hle o32 83 /2 ib,s]			386,SM,LOCK,ND
-ADC		rm32,imm			[mi:	hle o32 81 /2 id]			386,SM,LOCK
-ADC		rm64,sbytedword			[mi:	hle o64 83 /2 ib,s]			X64,SM,LOCK,ND
-ADC		rm64,imm			[mi:	hle o64 81 /2 id,s]			X64,SM,LOCK
-ADC		mem,imm8			[mi:	hle 80 /2 ib]				8086,SM,LOCK,ND
-ADC		mem,sbyteword16			[mi:	hle o16 83 /2 ib,s]			8086,SM,LOCK,ND
-ADC		mem,imm16			[mi:	hle o16 81 /2 iw]			8086,SM,LOCK
-ADC		mem,sbytedword32		[mi:	hle o32 83 /2 ib,s]			386,SM,LOCK,ND
-ADC		mem,imm32			[mi:	hle o32 81 /2 id]			386,SM,LOCK
-ADC		rm8,imm				[mi:	hle 82 /2 ib]				8086,SM,LOCK,ND,NOLONG
-ADD		mem,reg8			[mr:	hle 00 /r]				8086,SM,LOCK
-ADD		reg8,reg8			[mr:	00 /r]					8086
-ADD		mem,reg16			[mr:	hle o16 01 /r]				8086,SM,LOCK
-ADD		reg16,reg16			[mr:	o16 01 /r]				8086
-ADD		mem,reg32			[mr:	hle o32 01 /r]				386,SM,LOCK
-ADD		reg32,reg32			[mr:	o32 01 /r]				386
-ADD		mem,reg64			[mr:	hle o64 01 /r]				X64,SM,LOCK
-ADD		reg64,reg64			[mr:	o64 01 /r]				X64
-ADD		reg8,mem			[rm:	02 /r]					8086,SM
-ADD		reg8,reg8			[rm:	02 /r]					8086
-ADD		reg16,mem			[rm:	o16 03 /r]				8086,SM
-ADD		reg16,reg16			[rm:	o16 03 /r]				8086
-ADD		reg32,mem			[rm:	o32 03 /r]				386,SM
-ADD		reg32,reg32			[rm:	o32 03 /r]				386
-ADD		reg64,mem			[rm:	o64 03 /r]				X64,SM
-ADD		reg64,reg64			[rm:	o64 03 /r]				X64
-ADD		rm16,imm8			[mi:	hle o16 83 /0 ib,s]			8086,LOCK
-ADD		rm32,imm8			[mi:	hle o32 83 /0 ib,s]			386,LOCK
-ADD		rm64,imm8			[mi:	hle o64 83 /0 ib,s]			X64,LOCK
-ADD		reg_al,imm			[-i:	04 ib]					8086,SM
-ADD		reg_ax,sbyteword		[mi:	o16 83 /0 ib,s]				8086,SM,ND
-ADD		reg_ax,imm			[-i:	o16 05 iw]				8086,SM
-ADD		reg_eax,sbytedword		[mi:	o32 83 /0 ib,s]				386,SM,ND
-ADD		reg_eax,imm			[-i:	o32 05 id]				386,SM
-ADD		reg_rax,sbytedword		[mi:	o64 83 /0 ib,s]				X64,SM,ND
-ADD		reg_rax,imm			[-i:	o64 05 id,s]				X64,SM
-ADD		rm8,imm				[mi:	hle 80 /0 ib]				8086,SM,LOCK
-ADD		rm16,sbyteword			[mi:	hle o16 83 /0 ib,s]			8086,SM,LOCK,ND
-ADD		rm16,imm			[mi:	hle o16 81 /0 iw]			8086,SM,LOCK
-ADD		rm32,sbytedword			[mi:	hle o32 83 /0 ib,s]			386,SM,LOCK,ND
-ADD		rm32,imm			[mi:	hle o32 81 /0 id]			386,SM,LOCK
-ADD		rm64,sbytedword			[mi:	hle o64 83 /0 ib,s]			X64,SM,LOCK,ND
-ADD		rm64,imm			[mi:	hle o64 81 /0 id,s]			X64,SM,LOCK
-ADD		mem,imm8			[mi:	hle 80 /0 ib]				8086,SM,LOCK
-ADD		mem,sbyteword16			[mi:	hle o16 83 /0 ib,s]			8086,SM,LOCK,ND
-ADD		mem,imm16			[mi:	hle o16 81 /0 iw]			8086,SM,LOCK
-ADD		mem,sbytedword32		[mi:	hle o32 83 /0 ib,s]			386,SM,LOCK,ND
-ADD		mem,imm32			[mi:	hle o32 81 /0 id]			386,SM,LOCK
-ADD		rm8,imm				[mi:	hle 82 /0 ib]				8086,SM,LOCK,ND,NOLONG
-AND		mem,reg8			[mr:	hle 20 /r]				8086,SM,LOCK
-AND		reg8,reg8			[mr:	20 /r]					8086
-AND		mem,reg16			[mr:	hle o16 21 /r]				8086,SM,LOCK
-AND		reg16,reg16			[mr:	o16 21 /r]				8086
-AND		mem,reg32			[mr:	hle o32 21 /r]				386,SM,LOCK
-AND		reg32,reg32			[mr:	o32 21 /r]				386
-AND		mem,reg64			[mr:	hle o64 21 /r]				X64,SM,LOCK
-AND		reg64,reg64			[mr:	o64 21 /r]				X64
-AND		reg8,mem			[rm:	22 /r]					8086,SM
-AND		reg8,reg8			[rm:	22 /r]					8086
-AND		reg16,mem			[rm:	o16 23 /r]				8086,SM
-AND		reg16,reg16			[rm:	o16 23 /r]				8086
-AND		reg32,mem			[rm:	o32 23 /r]				386,SM
-AND		reg32,reg32			[rm:	o32 23 /r]				386
-AND		reg64,mem			[rm:	o64 23 /r]				X64,SM
-AND		reg64,reg64			[rm:	o64 23 /r]				X64
-AND		rm16,imm8			[mi:	hle o16 83 /4 ib,s]			8086,LOCK
-AND		rm32,imm8			[mi:	hle o32 83 /4 ib,s]			386,LOCK
-AND		rm64,imm8			[mi:	hle o64 83 /4 ib,s]			X64,LOCK
-AND		reg_al,imm			[-i:	24 ib]					8086,SM
-AND		reg_ax,sbyteword		[mi:	o16 83 /4 ib,s]				8086,SM,ND
-AND		reg_ax,imm			[-i:	o16 25 iw]				8086,SM
-AND		reg_eax,sbytedword		[mi:	o32 83 /4 ib,s]				386,SM,ND
-AND		reg_eax,imm			[-i:	o32 25 id]				386,SM
-AND		reg_rax,sbytedword		[mi:	o64 83 /4 ib,s]				X64,SM,ND
-AND		reg_rax,imm			[-i:	o64 25 id,s]				X64,SM
-AND		rm8,imm				[mi:	hle 80 /4 ib]				8086,SM,LOCK
-AND		rm16,sbyteword			[mi:	hle o16 83 /4 ib,s]			8086,SM,LOCK,ND
-AND		rm16,imm			[mi:	hle o16 81 /4 iw]			8086,SM,LOCK
-AND		rm32,sbytedword			[mi:	hle o32 83 /4 ib,s]			386,SM,LOCK,ND
-AND		rm32,imm			[mi:	hle o32 81 /4 id]			386,SM,LOCK
-AND		rm64,sbytedword			[mi:	hle o64 83 /4 ib,s]			X64,SM,LOCK,ND
-AND		rm64,imm			[mi:	hle o64 81 /4 id,s]			X64,SM,LOCK
-AND		mem,imm8			[mi:	hle 80 /4 ib]				8086,SM,LOCK
-AND		mem,sbyteword16			[mi:	hle o16 83 /4 ib,s]			8086,SM,LOCK,ND
-AND		mem,imm16			[mi:	hle o16 81 /4 iw]			8086,SM,LOCK
-AND		mem,sbytedword32		[mi:	hle o32 83 /4 ib,s]			386,SM,LOCK,ND
-AND		mem,imm32			[mi:	hle o32 81 /4 id]			386,SM,LOCK
-AND		rm8,imm				[mi:	hle 82 /4 ib]				8086,SM,LOCK,ND,NOLONG
-ARPL		mem,reg16			[mr:	63 /r]					286,PROT,SM,NOLONG
-ARPL		reg16,reg16			[mr:	63 /r]					286,PROT,NOLONG
-BB0_RESET	void				[	0f 3a]					PENT,CYRIX,ND,OBSOLETE
-BB1_RESET	void				[	0f 3b]					PENT,CYRIX,ND,OBSOLETE
-BOUND		reg16,mem			[rm:	o16 62 /r]				186,NOLONG
-BOUND		reg32,mem			[rm:	o32 62 /r]				386,NOLONG
-BSF		reg16,mem			[rm:	o16 nof3 0f bc /r]			386,SM
-BSF		reg16,reg16			[rm:	o16 nof3 0f bc /r]			386
-BSF		reg32,mem			[rm:	o32 nof3 0f bc /r]			386,SM
-BSF		reg32,reg32			[rm:	o32 nof3 0f bc /r]			386
-BSF		reg64,mem			[rm:	o64 nof3 0f bc /r]			X64,SM
-BSF		reg64,reg64			[rm:	o64 nof3 0f bc /r]			X64
-BSR		reg16,mem			[rm:	o16 nof3 0f bd /r]			386,SM
-BSR		reg16,reg16			[rm:	o16 nof3 0f bd /r]			386
-BSR		reg32,mem			[rm:	o32 nof3 0f bd /r]			386,SM
-BSR		reg32,reg32			[rm:	o32 nof3 0f bd /r]			386
-BSR		reg64,mem			[rm:	o64 nof3 0f bd /r]			X64,SM
-BSR		reg64,reg64			[rm:	o64 nof3 0f bd /r]			X64
-BSWAP		reg32				[r:	o32 0f c8+r]				486
-BSWAP		reg64				[r:	o64 0f c8+r]				X64
-BT		mem,reg16			[mr:	o16 0f a3 /r]				386,SM
-BT		reg16,reg16			[mr:	o16 0f a3 /r]				386
-BT		mem,reg32			[mr:	o32 0f a3 /r]				386,SM
-BT		reg32,reg32			[mr:	o32 0f a3 /r]				386
-BT		mem,reg64			[mr:	o64 0f a3 /r]				X64,SM
-BT		reg64,reg64			[mr:	o64 0f a3 /r]				X64
-BT		rm16,imm			[mi:	o16 0f ba /4 ib,u]			386,SB
-BT		rm32,imm			[mi:	o32 0f ba /4 ib,u]			386,SB
-BT		rm64,imm			[mi:	o64 0f ba /4 ib,u]			X64,SB
-BTC		mem,reg16			[mr:	hle o16 0f bb /r]			386,SM,LOCK
-BTC		reg16,reg16			[mr:	o16 0f bb /r]				386
-BTC		mem,reg32			[mr:	hle o32 0f bb /r]			386,SM,LOCK
-BTC		reg32,reg32			[mr:	o32 0f bb /r]				386
-BTC		mem,reg64			[mr:	hle o64 0f bb /r]			X64,SM,LOCK
-BTC		reg64,reg64			[mr:	o64 0f bb /r]				X64
-BTC		rm16,imm			[mi:	hle o16 0f ba /7 ib,u]			386,SB,LOCK
-BTC		rm32,imm			[mi:	hle o32 0f ba /7 ib,u]			386,SB,LOCK
-BTC		rm64,imm			[mi:	hle o64 0f ba /7 ib,u]			X64,SB,LOCK
-BTR		mem,reg16			[mr:	hle o16 0f b3 /r]			386,SM,LOCK
-BTR		reg16,reg16			[mr:	o16 0f b3 /r]				386
-BTR		mem,reg32			[mr:	hle o32 0f b3 /r]			386,SM,LOCK
-BTR		reg32,reg32			[mr:	o32 0f b3 /r]				386
-BTR		mem,reg64			[mr:	hle o64 0f b3 /r]			X64,SM,LOCK
-BTR		reg64,reg64			[mr:	o64 0f b3 /r]				X64
-BTR		rm16,imm			[mi:	hle o16 0f ba /6 ib,u]			386,SB,LOCK
-BTR		rm32,imm			[mi:	hle o32 0f ba /6 ib,u]			386,SB,LOCK
-BTR		rm64,imm			[mi:	hle o64 0f ba /6 ib,u]			X64,SB,LOCK
-BTS		mem,reg16			[mr:	hle o16 0f ab /r]			386,SM,LOCK
-BTS		reg16,reg16			[mr:	o16 0f ab /r]				386
-BTS		mem,reg32			[mr:	hle o32 0f ab /r]			386,SM,LOCK
-BTS		reg32,reg32			[mr:	o32 0f ab /r]				386
-BTS		mem,reg64			[mr:	hle o64 0f ab /r]			X64,SM,LOCK
-BTS		reg64,reg64			[mr:	o64 0f ab /r]				X64
-BTS		rm16,imm			[mi:	hle o16 0f ba /5 ib,u]			386,SB,LOCK
-BTS		rm32,imm			[mi:	hle o32 0f ba /5 ib,u]			386,SB,LOCK
-BTS		rm64,imm			[mi:	hle o64 0f ba /5 ib,u]			X64,SB,LOCK
-CALL		imm				[i:	odf e8 rel]				8086,BND
-CALL		imm|near			[i:	odf e8 rel]				8086,ND,BND
-CALL		imm|far				[i:	odf 9a iwd seg]				8086,ND,NOLONG
-; Call/jmp near imm/reg/mem is always 64-bit in long mode.
-CALL		imm16				[i:	o16 e8 rel]				8086,NOLONG,BND
-CALL		imm16|near			[i:	o16 e8 rel]				8086,ND,NOLONG,BND
-CALL		imm16|far			[i:	o16 9a iwd seg]				8086,ND,NOLONG
-CALL		imm32				[i:	o32 e8 rel]				386,NOLONG,BND
-CALL		imm32|near			[i:	o32 e8 rel]				386,ND,NOLONG,BND
-CALL		imm32|far			[i:	o32 9a iwd seg]				386,ND,NOLONG
-CALL		imm64				[i:	o64nw e8 rel]				X64,BND
-CALL		imm64|near			[i:	o64nw e8 rel]				X64,ND,BND
-CALL		imm:imm				[ji:	odf 9a iwd iw]				8086,NOLONG
-CALL		imm16:imm			[ji:	o16 9a iw iw]				8086,NOLONG
-CALL		imm:imm16			[ji:	o16 9a iw iw]				8086,NOLONG
-CALL		imm32:imm			[ji:	o32 9a id iw]				386,NOLONG
-CALL		imm:imm32			[ji:	o32 9a id iw]				386,NOLONG
-CALL		mem|far				[m:	odf ff /3]				8086,NOLONG
-CALL		mem|far				[m:	o64 ff /3]				X64
-CALL		mem16|far			[m:	o16 ff /3]				8086
-CALL		mem32|far			[m:	o32 ff /3]				386
-CALL		mem64|far			[m:	o64 ff /3]				X64
-CALL		mem|near			[m:	odf ff /2]				8086,ND,BND
-CALL		rm16|near			[m:	o16 ff /2]				8086,NOLONG,ND,BND
-CALL		rm32|near			[m:	o32 ff /2]				386,NOLONG,ND,BND
-CALL		rm64|near			[m:	o64nw ff /2]				X64,ND,BND
-CALL		mem				[m:	odf ff /2]				8086,BND
-CALL		rm16				[m:	o16 ff /2]				8086,NOLONG,BND
-CALL		rm32				[m:	o32 ff /2]				386,NOLONG,BND
-CALL		rm64				[m:	o64nw ff /2]				X64,BND
-
-CBW		void				[	o16 98]					8086
-CDQ		void				[	o32 99]					386
-CDQE		void				[	o64 98]					X64
-CLC		void				[	f8]					8086
-CLD		void				[	fc]					8086
-CLI		void				[	fa]					8086
-CLTS		void				[	0f 06]					286,PRIV
-CMC		void				[	f5]					8086
-CMP		mem,reg8			[mr:	38 /r]					8086,SM
-CMP		reg8,reg8			[mr:	38 /r]					8086
-CMP		mem,reg16			[mr:	o16 39 /r]				8086,SM
-CMP		reg16,reg16			[mr:	o16 39 /r]				8086
-CMP		mem,reg32			[mr:	o32 39 /r]				386,SM
-CMP		reg32,reg32			[mr:	o32 39 /r]				386
-CMP		mem,reg64			[mr:	o64 39 /r]				X64,SM
-CMP		reg64,reg64			[mr:	o64 39 /r]				X64
-CMP		reg8,mem			[rm:	3a /r]					8086,SM
-CMP		reg8,reg8			[rm:	3a /r]					8086
-CMP		reg16,mem			[rm:	o16 3b /r]				8086,SM
-CMP		reg16,reg16			[rm:	o16 3b /r]				8086
-CMP		reg32,mem			[rm:	o32 3b /r]				386,SM
-CMP		reg32,reg32			[rm:	o32 3b /r]				386
-CMP		reg64,mem			[rm:	o64 3b /r]				X64,SM
-CMP		reg64,reg64			[rm:	o64 3b /r]				X64
-CMP		rm16,imm8			[mi:	o16 83 /7 ib,s]				8086
-CMP		rm32,imm8			[mi:	o32 83 /7 ib,s]				386
-CMP		rm64,imm8			[mi:	o64 83 /7 ib,s]				X64
-CMP		reg_al,imm			[-i:	3c ib]					8086,SM
-CMP		reg_ax,sbyteword		[mi:	o16 83 /7 ib,s]				8086,SM,ND
-CMP		reg_ax,imm			[-i:	o16 3d iw]				8086,SM
-CMP		reg_eax,sbytedword		[mi:	o32 83 /7 ib,s]				386,SM,ND
-CMP		reg_eax,imm			[-i:	o32 3d id]				386,SM
-CMP		reg_rax,sbytedword		[mi:	o64 83 /7 ib,s]				X64,SM,ND
-CMP		reg_rax,imm			[-i:	o64 3d id,s]				X64,SM
-CMP		rm8,imm				[mi:	80 /7 ib]				8086,SM
-CMP		rm16,sbyteword			[mi:	o16 83 /7 ib,s]				8086,SM,ND
-CMP		rm16,imm			[mi:	o16 81 /7 iw]				8086,SM
-CMP		rm32,sbytedword			[mi:	o32 83 /7 ib,s]				386,SM,ND
-CMP		rm32,imm			[mi:	o32 81 /7 id]				386,SM
-CMP		rm64,sbytedword			[mi:	o64 83 /7 ib,s]				X64,SM,ND
-CMP		rm64,imm			[mi:	o64 81 /7 id,s]				X64,SM
-CMP		mem,imm8			[mi:	80 /7 ib]				8086,SM
-CMP		mem,sbyteword16			[mi:	o16 83 /7 ib,s]				8086,SM,ND
-CMP		mem,imm16			[mi:	o16 81 /7 iw]				8086,SM
-CMP		mem,sbytedword32		[mi:	o32 83 /7 ib,s]				386,SM,ND
-CMP		mem,imm32			[mi:	o32 81 /7 id]				386,SM
-CMP		rm8,imm				[mi:	82 /7 ib]				8086,SM,ND,NOLONG
-CMPSB		void				[	repe a6]				8086
-CMPSD		void				[	repe o32 a7]				386
-CMPSQ		void				[	repe o64 a7]				X64
-CMPSW		void				[	repe o16 a7]				8086
-CMPXCHG		mem,reg8			[mr:	hle 0f b0 /r]				PENT,SM,LOCK
-CMPXCHG		reg8,reg8			[mr:	0f b0 /r]				PENT
-CMPXCHG		mem,reg16			[mr:	hle o16 0f b1 /r]			PENT,SM,LOCK
-CMPXCHG		reg16,reg16			[mr:	o16 0f b1 /r]				PENT
-CMPXCHG		mem,reg32			[mr:	hle o32 0f b1 /r]			PENT,SM,LOCK
-CMPXCHG		reg32,reg32			[mr:	o32 0f b1 /r]				PENT
-CMPXCHG		mem,reg64			[mr:	hle o64 0f b1 /r]			X64,SM,LOCK
-CMPXCHG		reg64,reg64			[mr:	o64 0f b1 /r]				X64
-CMPXCHG486	mem,reg8			[mr:	0f a6 /r]				486,SM,UNDOC,ND,LOCK,OBSOLETE
-CMPXCHG486	reg8,reg8			[mr:	0f a6 /r]				486,UNDOC,ND,OBSOLETE
-CMPXCHG486	mem,reg16			[mr:	o16 0f a7 /r]				486,SM,UNDOC,ND,LOCK,OBSOLETE
-CMPXCHG486	reg16,reg16			[mr:	o16 0f a7 /r]				486,UNDOC,ND,OBSOLETE
-CMPXCHG486	mem,reg32			[mr:	o32 0f a7 /r]				486,SM,UNDOC,ND,LOCK,OBSOLETE
-CMPXCHG486	reg32,reg32			[mr:	o32 0f a7 /r]				486,UNDOC,ND,OBSOLETE
-CMPXCHG8B	mem				[m:	hle norexw 0f c7 /1]			PENT,LOCK
-CMPXCHG16B	mem				[m:	o64 0f c7 /1]				X64,LOCK
-CPUID		void				[	0f a2]					PENT
-CPU_READ	void				[	0f 3d]					PENT,CYRIX
-CPU_WRITE	void				[	0f 3c]					PENT,CYRIX
-CQO		void				[	o64 99]					X64
-CWD		void				[	o16 99]					8086
-CWDE		void				[	o32 98]					386
-DAA		void				[	27]					8086,NOLONG
-DAS		void				[	2f]					8086,NOLONG
-DEC		reg16				[r:	o16 48+r]				8086,NOLONG
-DEC		reg32				[r:	o32 48+r]				386,NOLONG
-DEC		rm8				[m:	hle fe /1]				8086,LOCK
-DEC		rm16				[m:	hle o16 ff /1]				8086,LOCK
-DEC		rm32				[m:	hle o32 ff /1]				386,LOCK
-DEC		rm64				[m:	hle o64 ff /1]				X64,LOCK
-DIV		rm8				[m:	f6 /6]					8086
-DIV		rm16				[m:	o16 f7 /6]				8086
-DIV		rm32				[m:	o32 f7 /6]				386
-DIV		rm64				[m:	o64 f7 /6]				X64
-DMINT		void				[	0f 39]					P6,CYRIX
-EMMS		void				[	0f 77]					PENT,MMX
-ENTER		imm,imm				[ij:	c8 iw ib,u]				186
-EQU		imm				ignore						8086
-EQU		imm:imm				ignore						8086
-F2XM1		void				[	d9 f0]					8086,FPU
-FABS		void				[	d9 e1]					8086,FPU
-FADD		mem32				[m:	d8 /0]					8086,FPU
-FADD		mem64				[m:	dc /0]					8086,FPU
-FADD		fpureg|to			[r:	dc c0+r]				8086,FPU
-FADD		fpureg				[r:	d8 c0+r]				8086,FPU
-FADD		fpureg,fpu0			[r-:	dc c0+r]				8086,FPU
-FADD		fpu0,fpureg			[-r:	d8 c0+r]				8086,FPU
-FADD		void				[	de c1]					8086,FPU,ND
-FADDP		fpureg				[r:	de c0+r]				8086,FPU
-FADDP		fpureg,fpu0			[r-:	de c0+r]				8086,FPU
-FADDP		void				[	de c1]					8086,FPU,ND
-FBLD		mem80				[m:	df /4]					8086,FPU
-FBLD		mem				[m:	df /4]					8086,FPU
-FBSTP		mem80				[m:	df /6]					8086,FPU
-FBSTP		mem				[m:	df /6]					8086,FPU
-FCHS		void				[	d9 e0]					8086,FPU
-FCLEX		void				[	wait db e2]				8086,FPU
-FCMOVB		fpureg				[r:	da c0+r]				P6,FPU
-FCMOVB		fpu0,fpureg			[-r:	da c0+r]				P6,FPU
-FCMOVB		void				[	da c1]					P6,FPU,ND
-FCMOVBE		fpureg				[r:	da d0+r]				P6,FPU
-FCMOVBE		fpu0,fpureg			[-r:	da d0+r]				P6,FPU
-FCMOVBE		void				[	da d1]					P6,FPU,ND
-FCMOVE		fpureg				[r:	da c8+r]				P6,FPU
-FCMOVE		fpu0,fpureg			[-r:	da c8+r]				P6,FPU
-FCMOVE		void				[	da c9]					P6,FPU,ND
-FCMOVNB		fpureg				[r:	db c0+r]				P6,FPU
-FCMOVNB		fpu0,fpureg			[-r:	db c0+r]				P6,FPU
-FCMOVNB		void				[	db c1]					P6,FPU,ND
-FCMOVNBE	fpureg				[r:	db d0+r]				P6,FPU
-FCMOVNBE	fpu0,fpureg			[-r:	db d0+r]				P6,FPU
-FCMOVNBE	void				[	db d1]					P6,FPU,ND
-FCMOVNE		fpureg				[r:	db c8+r]				P6,FPU
-FCMOVNE		fpu0,fpureg			[-r:	db c8+r]				P6,FPU
-FCMOVNE		void				[	db c9]					P6,FPU,ND
-FCMOVNU		fpureg				[r:	db d8+r]				P6,FPU
-FCMOVNU		fpu0,fpureg			[-r:	db d8+r]				P6,FPU
-FCMOVNU		void				[	db d9]					P6,FPU,ND
-FCMOVU		fpureg				[r:	da d8+r]				P6,FPU
-FCMOVU		fpu0,fpureg			[-r:	da d8+r]				P6,FPU
-FCMOVU		void				[	da d9]					P6,FPU,ND
-FCOM		mem32				[m:	d8 /2]					8086,FPU
-FCOM		mem64				[m:	dc /2]					8086,FPU
-FCOM		fpureg				[r:	d8 d0+r]				8086,FPU
-FCOM		fpu0,fpureg			[-r:	d8 d0+r]				8086,FPU
-FCOM		void				[	d8 d1]					8086,FPU,ND
-FCOMI		fpureg				[r:	db f0+r]				P6,FPU
-FCOMI		fpu0,fpureg			[-r:	db f0+r]				P6,FPU
-FCOMI		void				[	db f1]					P6,FPU,ND
-FCOMIP		fpureg				[r:	df f0+r]				P6,FPU
-FCOMIP		fpu0,fpureg			[-r:	df f0+r]				P6,FPU
-FCOMIP		void				[	df f1]					P6,FPU,ND
-FCOMP		mem32				[m:	d8 /3]					8086,FPU
-FCOMP		mem64				[m:	dc /3]					8086,FPU
-FCOMP		fpureg				[r:	d8 d8+r]				8086,FPU
-FCOMP		fpu0,fpureg			[-r:	d8 d8+r]				8086,FPU
-FCOMP		void				[	d8 d9]					8086,FPU,ND
-FCOMPP		void				[	de d9]					8086,FPU
-FCOS		void				[	d9 ff]					386,FPU
-FDECSTP		void				[	d9 f6]					8086,FPU
-FDISI		void				[	wait db e1]				8086,FPU
-FDIV		mem32				[m:	d8 /6]					8086,FPU
-FDIV		mem64				[m:	dc /6]					8086,FPU
-FDIV		fpureg|to			[r:	dc f8+r]				8086,FPU
-FDIV		fpureg				[r:	d8 f0+r]				8086,FPU
-FDIV		fpureg,fpu0			[r-:	dc f8+r]				8086,FPU
-FDIV		fpu0,fpureg			[-r:	d8 f0+r]				8086,FPU
-FDIV		void				[	de f9]					8086,FPU,ND
-FDIVP		fpureg				[r:	de f8+r]				8086,FPU
-FDIVP		fpureg,fpu0			[r-:	de f8+r]				8086,FPU
-FDIVP		void				[	de f9]					8086,FPU,ND
-FDIVR		mem32				[m:	d8 /7]					8086,FPU
-FDIVR		mem64				[m:	dc /7]					8086,FPU
-FDIVR		fpureg|to			[r:	dc f0+r]				8086,FPU
-FDIVR		fpureg,fpu0			[r-:	dc f0+r]				8086,FPU
-FDIVR		fpureg				[r:	d8 f8+r]				8086,FPU
-FDIVR		fpu0,fpureg			[-r:	d8 f8+r]				8086,FPU
-FDIVR		void				[	de f1]					8086,FPU,ND
-FDIVRP		fpureg				[r:	de f0+r]				8086,FPU
-FDIVRP		fpureg,fpu0			[r-:	de f0+r]				8086,FPU
-FDIVRP		void				[	de f1]					8086,FPU,ND
-FEMMS		void				[	0f 0e]					PENT,3DNOW
-FENI		void				[	wait db e0]				8086,FPU
-FFREE		fpureg				[r:	dd c0+r]				8086,FPU
-FFREE		void				[	dd c1]					8086,FPU
-FFREEP		fpureg				[r:	df c0+r]				286,FPU,UNDOC
-FFREEP		void				[	df c1]					286,FPU,UNDOC
-FIADD		mem32				[m:	da /0]					8086,FPU
-FIADD		mem16				[m:	de /0]					8086,FPU
-FICOM		mem32				[m:	da /2]					8086,FPU
-FICOM		mem16				[m:	de /2]					8086,FPU
-FICOMP		mem32				[m:	da /3]					8086,FPU
-FICOMP		mem16				[m:	de /3]					8086,FPU
-FIDIV		mem32				[m:	da /6]					8086,FPU
-FIDIV		mem16				[m:	de /6]					8086,FPU
-FIDIVR		mem32				[m:	da /7]					8086,FPU
-FIDIVR		mem16				[m:	de /7]					8086,FPU
-FILD		mem32				[m:	db /0]					8086,FPU
-FILD		mem16				[m:	df /0]					8086,FPU
-FILD		mem64				[m:	df /5]					8086,FPU
-FIMUL		mem32				[m:	da /1]					8086,FPU
-FIMUL		mem16				[m:	de /1]					8086,FPU
-FINCSTP		void				[	d9 f7]					8086,FPU
-FINIT		void				[	wait db e3]				8086,FPU
-FIST		mem32				[m:	db /2]					8086,FPU
-FIST		mem16				[m:	df /2]					8086,FPU
-FISTP		mem32				[m:	db /3]					8086,FPU
-FISTP		mem16				[m:	df /3]					8086,FPU
-FISTP		mem64				[m:	df /7]					8086,FPU
-FISTTP		mem16				[m:	df /1]					PRESCOTT,FPU
-FISTTP		mem32				[m:	db /1]					PRESCOTT,FPU
-FISTTP		mem64				[m:	dd /1]					PRESCOTT,FPU
-FISUB		mem32				[m:	da /4]					8086,FPU
-FISUB		mem16				[m:	de /4]					8086,FPU
-FISUBR		mem32				[m:	da /5]					8086,FPU
-FISUBR		mem16				[m:	de /5]					8086,FPU
-FLD		mem32				[m:	d9 /0]					8086,FPU
-FLD		mem64				[m:	dd /0]					8086,FPU
-FLD		mem80				[m:	db /5]					8086,FPU
-FLD		fpureg				[r:	d9 c0+r]				8086,FPU
-FLD		void				[	d9 c1]					8086,FPU,ND
-FLD1		void				[	d9 e8]					8086,FPU
-FLDCW		mem				[m:	d9 /5]					8086,FPU,SW
-FLDENV		mem				[m:	d9 /4]					8086,FPU
-FLDL2E		void				[	d9 ea]					8086,FPU
-FLDL2T		void				[	d9 e9]					8086,FPU
-FLDLG2		void				[	d9 ec]					8086,FPU
-FLDLN2		void				[	d9 ed]					8086,FPU
-FLDPI		void				[	d9 eb]					8086,FPU
-FLDZ		void				[	d9 ee]					8086,FPU
-FMUL		mem32				[m:	d8 /1]					8086,FPU
-FMUL		mem64				[m:	dc /1]					8086,FPU
-FMUL		fpureg|to			[r:	dc c8+r]				8086,FPU
-FMUL		fpureg,fpu0			[r-:	dc c8+r]				8086,FPU
-FMUL		fpureg				[r:	d8 c8+r]				8086,FPU
-FMUL		fpu0,fpureg			[-r:	d8 c8+r]				8086,FPU
-FMUL		void				[	de c9]					8086,FPU,ND
-FMULP		fpureg				[r:	de c8+r]				8086,FPU
-FMULP		fpureg,fpu0			[r-:	de c8+r]				8086,FPU
-FMULP		void				[	de c9]					8086,FPU,ND
-FNCLEX		void				[	db e2]					8086,FPU
-FNDISI		void				[	db e1]					8086,FPU
-FNENI		void				[	db e0]					8086,FPU
-FNINIT		void				[	db e3]					8086,FPU
-FNOP		void				[	d9 d0]					8086,FPU
-FNSAVE		mem				[m:	dd /6]					8086,FPU
-FNSTCW		mem				[m:	d9 /7]					8086,FPU,SW
-FNSTENV		mem				[m:	d9 /6]					8086,FPU
-FNSTSW		mem				[m:	dd /7]					8086,FPU,SW
-FNSTSW		reg_ax				[-:	df e0]					286,FPU
-FPATAN		void				[	d9 f3]					8086,FPU
-FPREM		void				[	d9 f8]					8086,FPU
-FPREM1		void				[	d9 f5]					386,FPU
-FPTAN		void				[	d9 f2]					8086,FPU
-FRNDINT		void				[	d9 fc]					8086,FPU
-FRSTOR		mem				[m:	dd /4]					8086,FPU
-FSAVE		mem				[m:	wait dd /6]				8086,FPU
-FSCALE		void				[	d9 fd]					8086,FPU
-FSETPM		void				[	db e4]					286,FPU
-FSIN		void				[	d9 fe]					386,FPU
-FSINCOS		void				[	d9 fb]					386,FPU
-FSQRT		void				[	d9 fa]					8086,FPU
-FST		mem32				[m:	d9 /2]					8086,FPU
-FST		mem64				[m:	dd /2]					8086,FPU
-FST		fpureg				[r:	dd d0+r]				8086,FPU
-FST		void				[	dd d1]					8086,FPU,ND
-FSTCW		mem				[m:	wait d9 /7]				8086,FPU,SW
-FSTENV		mem				[m:	wait d9 /6]				8086,FPU
-FSTP		mem32				[m:	d9 /3]					8086,FPU
-FSTP		mem64				[m:	dd /3]					8086,FPU
-FSTP		mem80				[m:	db /7]					8086,FPU
-FSTP		fpureg				[r:	dd d8+r]				8086,FPU
-FSTP		void				[	dd d9]					8086,FPU,ND
-FSTSW		mem				[m:	wait dd /7]				8086,FPU,SW
-FSTSW		reg_ax				[-:	wait df e0]				286,FPU
-FSUB		mem32				[m:	d8 /4]					8086,FPU
-FSUB		mem64				[m:	dc /4]					8086,FPU
-FSUB		fpureg|to			[r:	dc e8+r]				8086,FPU
-FSUB		fpureg,fpu0			[r-:	dc e8+r]				8086,FPU
-FSUB		fpureg				[r:	d8 e0+r]				8086,FPU
-FSUB		fpu0,fpureg			[-r:	d8 e0+r]				8086,FPU
-FSUB		void				[	de e9]					8086,FPU,ND
-FSUBP		fpureg				[r:	de e8+r]				8086,FPU
-FSUBP		fpureg,fpu0			[r-:	de e8+r]				8086,FPU
-FSUBP		void				[	de e9]					8086,FPU,ND
-FSUBR		mem32				[m:	d8 /5]					8086,FPU
-FSUBR		mem64				[m:	dc /5]					8086,FPU
-FSUBR		fpureg|to			[r:	dc e0+r]				8086,FPU
-FSUBR		fpureg,fpu0			[r-:	dc e0+r]				8086,FPU
-FSUBR		fpureg				[r:	d8 e8+r]				8086,FPU
-FSUBR		fpu0,fpureg			[-r:	d8 e8+r]				8086,FPU
-FSUBR		void				[	de e1]					8086,FPU,ND
-FSUBRP		fpureg				[r:	de e0+r]				8086,FPU
-FSUBRP		fpureg,fpu0			[r-:	de e0+r]				8086,FPU
-FSUBRP		void				[	de e1]					8086,FPU,ND
-FTST		void				[	d9 e4]					8086,FPU
-FUCOM		fpureg				[r:	dd e0+r]				386,FPU
-FUCOM		fpu0,fpureg			[-r:	dd e0+r]				386,FPU
-FUCOM		void				[	dd e1]					386,FPU,ND
-FUCOMI		fpureg				[r:	db e8+r]				P6,FPU
-FUCOMI		fpu0,fpureg			[-r:	db e8+r]				P6,FPU
-FUCOMI		void				[	db e9]					P6,FPU,ND
-FUCOMIP		fpureg				[r:	df e8+r]				P6,FPU
-FUCOMIP		fpu0,fpureg			[-r:	df e8+r]				P6,FPU
-FUCOMIP		void				[	df e9]					P6,FPU,ND
-FUCOMP		fpureg				[r:	dd e8+r]				386,FPU
-FUCOMP		fpu0,fpureg			[-r:	dd e8+r]				386,FPU
-FUCOMP		void				[	dd e9]					386,FPU,ND
-FUCOMPP		void				[	da e9]					386,FPU
-FXAM		void				[	d9 e5]					8086,FPU
-FXCH		fpureg				[r:	d9 c8+r]				8086,FPU
-FXCH		fpureg,fpu0			[r-:	d9 c8+r]				8086,FPU
-FXCH		fpu0,fpureg			[-r:	d9 c8+r]				8086,FPU
-FXCH		void				[	d9 c9]					8086,FPU,ND
-FXTRACT		void				[	d9 f4]					8086,FPU
-FYL2X		void				[	d9 f1]					8086,FPU
-FYL2XP1		void				[	d9 f9]					8086,FPU
-HLT		void				[	f4]					8086,PRIV
-IBTS		mem,reg16			[mr:	o16 0f a7 /r]				386,SW,UNDOC,ND,OBSOLETE
-IBTS		reg16,reg16			[mr:	o16 0f a7 /r]				386,UNDOC,ND,OBSOLETE
-IBTS		mem,reg32			[mr:	o32 0f a7 /r]				386,SD,UNDOC,ND,OBSOLETE
-IBTS		reg32,reg32			[mr:	o32 0f a7 /r]				386,UNDOC,ND,OBSOLETE
-ICEBP		void				[	f1]					386,ND
-IDIV		rm8				[m:	f6 /7]					8086
-IDIV		rm16				[m:	o16 f7 /7]				8086
-IDIV		rm32				[m:	o32 f7 /7]				386
-IDIV		rm64				[m:	o64 f7 /7]				X64
-IMUL		rm8				[m:	f6 /5]					8086
-IMUL		rm16				[m:	o16 f7 /5]				8086
-IMUL		rm32				[m:	o32 f7 /5]				386
-IMUL		rm64				[m:	o64 f7 /5]				X64
-IMUL		reg16,mem			[rm:	o16 0f af /r]				386,SM
-IMUL		reg16,reg16			[rm:	o16 0f af /r]				386
-IMUL		reg32,mem			[rm:	o32 0f af /r]				386,SM
-IMUL		reg32,reg32			[rm:	o32 0f af /r]				386
-IMUL		reg64,mem			[rm:	o64 0f af /r]				X64,SM
-IMUL		reg64,reg64			[rm:	o64 0f af /r]				X64
-IMUL		reg16,mem,imm8			[rmi:	o16 6b /r ib,s]				186,SM
-IMUL		reg16,mem,sbyteword		[rmi:	o16 6b /r ib,s]				186,SM,ND
-IMUL		reg16,mem,imm16			[rmi:	o16 69 /r iw]				186,SM
-IMUL		reg16,mem,imm			[rmi:	o16 69 /r iw]				186,SM,ND
-IMUL		reg16,reg16,imm8		[rmi:	o16 6b /r ib,s]				186
-IMUL		reg16,reg16,sbyteword		[rmi:	o16 6b /r ib,s]				186,SM,ND
-IMUL		reg16,reg16,imm16		[rmi:	o16 69 /r iw]				186
-IMUL		reg16,reg16,imm			[rmi:	o16 69 /r iw]				186,SM,ND
-IMUL		reg32,mem,imm8			[rmi:	o32 6b /r ib,s]				386,SM
-IMUL		reg32,mem,sbytedword		[rmi:	o32 6b /r ib,s]				386,SM,ND
-IMUL		reg32,mem,imm32			[rmi:	o32 69 /r id]				386,SM
-IMUL		reg32,mem,imm			[rmi:	o32 69 /r id]				386,SM,ND
-IMUL		reg32,reg32,imm8		[rmi:	o32 6b /r ib,s]				386
-IMUL		reg32,reg32,sbytedword		[rmi:	o32 6b /r ib,s]				386,SM,ND
-IMUL		reg32,reg32,imm32		[rmi:	o32 69 /r id]				386
-IMUL		reg32,reg32,imm			[rmi:	o32 69 /r id]				386,SM,ND
-IMUL		reg64,mem,imm8			[rmi:	o64 6b /r ib,s]				X64,SM
-IMUL		reg64,mem,sbytedword		[rmi:	o64 6b /r ib,s]				X64,SM,ND
-IMUL		reg64,mem,imm32			[rmi:	o64 69 /r id]				X64,SM
-IMUL		reg64,mem,imm			[rmi:	o64 69 /r id,s]				X64,SM,ND
-IMUL		reg64,reg64,imm8		[rmi:	o64 6b /r ib,s]				X64
-IMUL		reg64,reg64,sbytedword		[rmi:	o64 6b /r ib,s]				X64,SM,ND
-IMUL		reg64,reg64,imm32		[rmi:	o64 69 /r id]				X64
-IMUL		reg64,reg64,imm			[rmi:	o64 69 /r id,s]				X64,SM,ND
-IMUL		reg16,imm8			[r+mi:	o16 6b /r ib,s]				186
-IMUL		reg16,sbyteword			[r+mi:	o16 6b /r ib,s]				186,SM,ND
-IMUL		reg16,imm16			[r+mi:	o16 69 /r iw]				186
-IMUL		reg16,imm			[r+mi:	o16 69 /r iw]				186,SM,ND
-IMUL		reg32,imm8			[r+mi:	o32 6b /r ib,s]				386
-IMUL		reg32,sbytedword		[r+mi:	o32 6b /r ib,s]				386,SM,ND
-IMUL		reg32,imm32			[r+mi:	o32 69 /r id]				386
-IMUL		reg32,imm			[r+mi:	o32 69 /r id]				386,SM,ND
-IMUL		reg64,imm8			[r+mi:	o64 6b /r ib,s]				X64
-IMUL		reg64,sbytedword		[r+mi:	o64 6b /r ib,s]				X64,SM,ND
-IMUL		reg64,imm32			[r+mi:	o64 69 /r id,s]				X64
-IMUL		reg64,imm			[r+mi:	o64 69 /r id,s]				X64,SM,ND
-IN		reg_al,imm			[-i:	e4 ib,u]				8086,SB
-IN		reg_ax,imm			[-i:	o16 e5 ib,u]				8086,SB
-IN		reg_eax,imm			[-i:	o32 e5 ib,u]				386,SB
-IN		reg_al,reg_dx			[--:	ec]					8086
-IN		reg_ax,reg_dx			[--:	o16 ed]					8086
-IN		reg_eax,reg_dx			[--:	o32 ed]					386
-INC		reg16				[r:	o16 40+r]				8086,NOLONG
-INC		reg32				[r:	o32 40+r]				386,NOLONG
-INC		rm8				[m:	hle fe /0]				8086,LOCK
-INC		rm16				[m:	hle o16 ff /0]				8086,LOCK
-INC		rm32				[m:	hle o32 ff /0]				386,LOCK
-INC		rm64				[m:	hle o64 ff /0]				X64,LOCK
-INCBIN		ignore				ignore						ignore
-INSB		void				[	6c]					186
-INSD		void				[	o32 6d]					386
-INSW		void				[	o16 6d]					186
-INT		imm				[i:	cd ib,u]				8086,SB
-INT01		void				[	f1]					386,ND
-INT1		void				[	f1]					386
-INT03		void				[	cc]					8086,ND
-INT3		void				[	cc]					8086
-INTO		void				[	ce]					8086,NOLONG
-INVD		void				[	0f 08]					486,PRIV
-INVPCID		reg32,mem128			[rm:	66 0f 38 82 /r]				FUTURE,INVPCID,PRIV,NOLONG
-INVPCID		reg64,mem128			[rm:	66 0f 38 82 /r]				FUTURE,INVPCID,PRIV,LONG
-INVLPG		mem				[m:	0f 01 /7]				486,PRIV
-INVLPGA		reg_ax,reg_ecx			[--:	a16 0f 01 df]				X86_64,AMD,NOLONG
-INVLPGA		reg_eax,reg_ecx			[--:	a32 0f 01 df]				X86_64,AMD
-INVLPGA		reg_rax,reg_ecx			[--:	o64nw a64 0f 01 df]			X64,AMD
-INVLPGA		void				[	0f 01 df]				X86_64,AMD
-IRET		void				[	odf cf]					8086
-IRETD		void				[	o32 cf]					386
-IRETQ		void				[	o64 cf]					X64
-IRETW		void				[	o16 cf]					8086
-JCXZ		imm				[i:	a16 e3 rel8]				8086,NOLONG
-JECXZ		imm				[i:	a32 e3 rel8]				386
-JRCXZ		imm				[i:	a64 e3 rel8]				X64
-JMP		imm|short			[i:	eb rel8]				8086
-JMP		imm				[i:	jmp8 eb rel8]				8086,ND
-JMP		imm				[i:	odf e9 rel]				8086,BND
-JMP		imm|near			[i:	odf e9 rel]				8086,ND,BND
-JMP		imm|far				[i:	odf ea iwd seg]				8086,ND,NOLONG
-; Call/jmp near imm/reg/mem is always 64-bit in long mode.
-JMP		imm16				[i:	o16 e9 rel]				8086,NOLONG,BND
-JMP		imm16|near			[i:	o16 e9 rel]				8086,ND,NOLONG,BND
-JMP		imm16|far			[i:	o16 ea iwd seg]				8086,ND,NOLONG
-JMP		imm32				[i:	o32 e9 rel]				386,NOLONG,BND
-JMP		imm32|near			[i:	o32 e9 rel]				386,ND,NOLONG,BND
-JMP		imm32|far			[i:	o32 ea iwd seg]				386,ND,NOLONG
-JMP		imm64				[i:	o64nw e9 rel]				X64,BND
-JMP		imm64|near			[i:	o64nw e9 rel]				X64,ND,BND
-JMP		imm:imm				[ji:	odf ea iwd iw]				8086,NOLONG
-JMP		imm16:imm			[ji:	o16 ea iw iw]				8086,NOLONG
-JMP		imm:imm16			[ji:	o16 ea iw iw]				8086,NOLONG
-JMP		imm32:imm			[ji:	o32 ea id iw]				386,NOLONG
-JMP		imm:imm32			[ji:	o32 ea id iw]				386,NOLONG
-JMP		mem|far				[m:	odf ff /5]				8086,NOLONG
-JMP		mem|far				[m:	o64 ff /5]				X64
-JMP		mem16|far			[m:	o16 ff /5]				8086
-JMP		mem32|far			[m:	o32 ff /5]				386
-JMP		mem64|far			[m:	o64 ff /5]				X64
-JMP		mem|near			[m:	odf ff /4]				8086,ND,BND
-JMP		rm16|near			[m:	o16 ff /4]				8086,NOLONG,ND,BND
-JMP		rm32|near			[m:	o32 ff /4]				386,NOLONG,ND,BND
-JMP		rm64|near			[m:	o64nw ff /4]				X64,ND,BND
-JMP		mem				[m:	odf ff /4]				8086,BND
-JMP		rm16				[m:	o16 ff /4]				8086,NOLONG,BND
-JMP		rm32				[m:	o32 ff /4]				386,NOLONG,BND
-JMP		rm64				[m:	o64nw ff /4]				X64,BND
-
-JMPE		imm				[i:	odf 0f b8 rel]				IA64
-JMPE		imm16				[i:	o16 0f b8 rel]				IA64
-JMPE		imm32				[i:	o32 0f b8 rel]				IA64
-JMPE		rm16				[m:	o16 0f 00 /6]				IA64
-JMPE		rm32				[m:	o32 0f 00 /6]				IA64
-LAHF		void				[	9f]					8086
-LAR		reg16,mem			[rm:	o16 0f 02 /r]				286,PROT,SW
-LAR		reg16,reg16			[rm:	o16 0f 02 /r]				286,PROT
-LAR		reg16,reg32			[rm:	o16 0f 02 /r]				386,PROT
-LAR		reg16,reg64			[rm:	o16 o64nw 0f 02 /r]			X64,PROT,ND
-LAR		reg32,mem			[rm:	o32 0f 02 /r]				386,PROT,SW
-LAR		reg32,reg16			[rm:	o32 0f 02 /r]				386,PROT
-LAR		reg32,reg32			[rm:	o32 0f 02 /r]				386,PROT
-LAR		reg32,reg64			[rm:	o32 o64nw 0f 02 /r]			X64,PROT,ND
-LAR		reg64,mem			[rm:	o64 0f 02 /r]				X64,PROT,SW
-LAR		reg64,reg16			[rm:	o64 0f 02 /r]				X64,PROT
-LAR		reg64,reg32			[rm:	o64 0f 02 /r]				X64,PROT
-LAR		reg64,reg64			[rm:	o64 0f 02 /r]				X64,PROT
-LDS		reg16,mem			[rm:	o16 c5 /r]				8086,NOLONG
-LDS		reg32,mem			[rm:	o32 c5 /r]				386,NOLONG
-LEA		reg16,mem			[rm:	o16 8d /r]				8086
-LEA		reg32,mem			[rm:	o32 8d /r]				386
-LEA		reg64,mem			[rm:	o64 8d /r]				X64
-LEAVE		void				[	c9]					186
-LES		reg16,mem			[rm:	o16 c4 /r]				8086,NOLONG
-LES		reg32,mem			[rm:	o32 c4 /r]				386,NOLONG
-LFENCE		void				[	np 0f ae e8]				X64,AMD
-LFS		reg16,mem			[rm:	o16 0f b4 /r]				386
-LFS		reg32,mem			[rm:	o32 0f b4 /r]				386
-LFS		reg64,mem			[rm:	o64 0f b4 /r]				X64
-LGDT		mem				[m:	0f 01 /2]				286,PRIV
-LGS		reg16,mem			[rm:	o16 0f b5 /r]				386
-LGS		reg32,mem			[rm:	o32 0f b5 /r]				386
-LGS		reg64,mem			[rm:	o64 0f b5 /r]				X64
-LIDT		mem				[m:	0f 01 /3]				286,PRIV
-LLDT		mem				[m:	0f 00 /2]				286,PROT,PRIV
-LLDT		mem16				[m:	0f 00 /2]				286,PROT,PRIV
-LLDT		reg16				[m:	0f 00 /2]				286,PROT,PRIV
-LMSW		mem				[m:	0f 01 /6]				286,PRIV
-LMSW		mem16				[m:	0f 01 /6]				286,PRIV
-LMSW		reg16				[m:	0f 01 /6]				286,PRIV
-LOADALL		void				[	0f 07]					386,UNDOC,ND,OBSOLETE
-LOADALL286	void				[	0f 05]					286,UNDOC,ND,OBSOLETE
-LODSB		void				[	ac]					8086
-LODSD		void				[	o32 ad]					386
-LODSQ		void				[	o64 ad]					X64
-LODSW		void				[	o16 ad]					8086
-LOOP		imm				[i:	adf e2 rel8]				8086
-LOOP		imm,reg_cx			[i-:	a16 e2 rel8]				8086,NOLONG
-LOOP		imm,reg_ecx			[i-:	a32 e2 rel8]				386
-LOOP		imm,reg_rcx			[i-:	a64 e2 rel8]				X64
-LOOPE		imm				[i:	adf e1 rel8]				8086
-LOOPE		imm,reg_cx			[i-:	a16 e1 rel8]				8086,NOLONG
-LOOPE		imm,reg_ecx			[i-:	a32 e1 rel8]				386
-LOOPE		imm,reg_rcx			[i-:	a64 e1 rel8]				X64
-LOOPNE		imm				[i:	adf e0 rel8]				8086
-LOOPNE		imm,reg_cx			[i-:	a16 e0 rel8]				8086,NOLONG
-LOOPNE		imm,reg_ecx			[i-:	a32 e0 rel8]				386
-LOOPNE		imm,reg_rcx			[i-:	a64 e0 rel8]				X64
-LOOPNZ		imm				[i:	adf e0 rel8]				8086
-LOOPNZ		imm,reg_cx			[i-:	a16 e0 rel8]				8086,NOLONG
-LOOPNZ		imm,reg_ecx			[i-:	a32 e0 rel8]				386
-LOOPNZ		imm,reg_rcx			[i-:	a64 e0 rel8]				X64
-LOOPZ		imm				[i:	adf e1 rel8]				8086
-LOOPZ		imm,reg_cx			[i-:	a16 e1 rel8]				8086,NOLONG
-LOOPZ		imm,reg_ecx			[i-:	a32 e1 rel8]				386
-LOOPZ		imm,reg_rcx			[i-:	a64 e1 rel8]				X64
-LSL		reg16,mem			[rm:	o16 0f 03 /r]				286,PROT,SW
-LSL		reg16,reg16			[rm:	o16 0f 03 /r]				286,PROT
-LSL		reg16,reg32			[rm:	o16 0f 03 /r]				386,PROT
-LSL		reg16,reg64			[rm:	o16 o64nw 0f 03 /r]			X64,PROT,ND
-LSL		reg32,mem			[rm:	o32 0f 03 /r]				386,PROT,SW
-LSL		reg32,reg16			[rm:	o32 0f 03 /r]				386,PROT
-LSL		reg32,reg32			[rm:	o32 0f 03 /r]				386,PROT
-LSL		reg32,reg64			[rm:	o32 o64nw 0f 03 /r]			X64,PROT,ND
-LSL		reg64,mem			[rm:	o64 0f 03 /r]				X64,PROT,SW
-LSL		reg64,reg16			[rm:	o64 0f 03 /r]				X64,PROT
-LSL		reg64,reg32			[rm:	o64 0f 03 /r]				X64,PROT
-LSL		reg64,reg64			[rm:	o64 0f 03 /r]				X64,PROT
-LSS		reg16,mem			[rm:	o16 0f b2 /r]				386
-LSS		reg32,mem			[rm:	o32 0f b2 /r]				386
-LSS		reg64,mem			[rm:	o64 0f b2 /r]				X64
-LTR		mem				[m:	0f 00 /3]				286,PROT,PRIV
-LTR		mem16				[m:	0f 00 /3]				286,PROT,PRIV
-LTR		reg16				[m:	0f 00 /3]				286,PROT,PRIV
-MFENCE		void				[	np 0f ae f0]				X64,AMD
-MONITOR		void				[	0f 01 c8]				PRESCOTT
-MONITOR		reg_eax,reg_ecx,reg_edx		[---:	0f 01 c8]				PRESCOTT,NOLONG,ND
-MONITOR		reg_rax,reg_ecx,reg_edx		[---:	0f 01 c8]				X64,ND
-MONITORX	void				[	0f 01 fa]				AMD
-MONITORX	reg_rax,reg_ecx,reg_edx		[---:	0f 01 fa]				X64,AMD,ND
-MONITORX	reg_eax,reg_ecx,reg_edx		[---:	0f 01 fa]				AMD,ND
-MONITORX	reg_ax,reg_ecx,reg_edx		[---:	0f 01 fa]				AMD,ND
-MOV		mem,reg_sreg			[mr:	8c /r]					8086,SW
-MOV		reg16,reg_sreg			[mr:	o16 8c /r]				8086
-MOV		reg32,reg_sreg			[mr:	o32 8c /r]				386
-MOV		reg64,reg_sreg			[mr:	o64nw 8c /r]				X64,OPT,ND
-MOV		rm64,reg_sreg			[mr:	o64 8c /r]				X64
-MOV		reg_sreg,mem			[rm:	8e /r]					8086,SW
-MOV		reg_sreg,reg16			[rm:	8e /r]					8086,OPT,ND
-MOV		reg_sreg,reg32			[rm:	8e /r]					386,OPT,ND
-MOV		reg_sreg,reg64			[rm:	o64nw 8e /r]				X64,OPT,ND
-MOV		reg_sreg,reg16			[rm:	o16 8e /r]				8086
-MOV		reg_sreg,reg32			[rm:	o32 8e /r]				386
-MOV		reg_sreg,rm64			[rm:	o64 8e /r]				X64
-MOV		reg_al,mem_offs			[-i:	a0 iwdq]				8086,SM
-MOV		reg_ax,mem_offs			[-i:	o16 a1 iwdq]				8086,SM
-MOV		reg_eax,mem_offs		[-i:	o32 a1 iwdq]				386,SM
-MOV		reg_rax,mem_offs		[-i:	o64 a1 iwdq]				X64,SM
-MOV		mem_offs,reg_al			[i-:	a2 iwdq]				8086,SM,NOHLE
-MOV		mem_offs,reg_ax			[i-:	o16 a3 iwdq]				8086,SM,NOHLE
-MOV		mem_offs,reg_eax		[i-:	o32 a3 iwdq]				386,SM,NOHLE
-MOV		mem_offs,reg_rax		[i-:	o64 a3 iwdq]				X64,SM,NOHLE
-MOV		reg32,reg_creg			[mr:	rex.l 0f 20 /r]				386,PRIV,NOLONG
-MOV		reg64,reg_creg			[mr:	o64nw 0f 20 /r]				X64,PRIV
-MOV		reg_creg,reg32			[rm:	rex.l 0f 22 /r]				386,PRIV,NOLONG
-MOV		reg_creg,reg64			[rm:	o64nw 0f 22 /r]				X64,PRIV
-MOV		reg32,reg_dreg			[mr:	0f 21 /r]				386,PRIV,NOLONG
-MOV		reg64,reg_dreg			[mr:	o64nw 0f 21 /r]				X64,PRIV
-MOV		reg_dreg,reg32			[rm:	0f 23 /r]				386,PRIV,NOLONG
-MOV		reg_dreg,reg64			[rm:	o64nw 0f 23 /r]				X64,PRIV
-MOV		reg32,reg_treg			[mr:	0f 24 /r]				386,NOLONG,ND
-MOV		reg_treg,reg32			[rm:	0f 26 /r]				386,NOLONG,ND
-MOV		mem,reg8			[mr:	hlexr 88 /r]				8086,SM
-MOV		reg8,reg8			[mr:	88 /r]					8086
-MOV		mem,reg16			[mr:	hlexr o16 89 /r]			8086,SM
-MOV		reg16,reg16			[mr:	o16 89 /r]				8086
-MOV		mem,reg32			[mr:	hlexr o32 89 /r]			386,SM
-MOV		reg32,reg32			[mr:	o32 89 /r]				386
-MOV		mem,reg64			[mr:	hlexr o64 89 /r]			X64,SM
-MOV		reg64,reg64			[mr:	o64 89 /r]				X64
-MOV		reg8,mem			[rm:	8a /r]					8086,SM
-MOV		reg8,reg8			[rm:	8a /r]					8086
-MOV		reg16,mem			[rm:	o16 8b /r]				8086,SM
-MOV		reg16,reg16			[rm:	o16 8b /r]				8086
-MOV		reg32,mem			[rm:	o32 8b /r]				386,SM
-MOV		reg32,reg32			[rm:	o32 8b /r]				386
-MOV		reg64,mem			[rm:	o64 8b /r]				X64,SM
-MOV		reg64,reg64			[rm:	o64 8b /r]				X64
-MOV		reg8,imm			[ri:	b0+r ib]				8086,SM
-MOV		reg16,imm			[ri:	o16 b8+r iw]				8086,SM
-MOV		reg32,imm			[ri:	o32 b8+r id]				386,SM
-MOV		reg64,udword			[ri:	o64nw b8+r id]				X64,SM,OPT,ND
-MOV		reg64,sdword			[mi:	o64 c7 /0 id,s]				X64,SM,OPT,ND
-MOV		reg64,imm			[ri:	o64 b8+r iq]				X64,SM
-MOV		rm8,imm				[mi:	hlexr c6 /0 ib]				8086,SM
-MOV		rm16,imm			[mi:	hlexr o16 c7 /0 iw]			8086,SM
-MOV		rm32,imm			[mi:	hlexr o32 c7 /0 id]			386,SM
-MOV		rm64,imm			[mi:	hlexr o64 c7 /0 id,s]			X64,SM
-MOV		rm64,imm32			[mi:	hlexr o64 c7 /0 id,s]			X64
-MOV		mem,imm8			[mi:	hlexr c6 /0 ib]				8086,SM
-MOV		mem,imm16			[mi:	hlexr o16 c7 /0 iw]			8086,SM
-MOV		mem,imm32			[mi:	hlexr o32 c7 /0 id]			386,SM
-MOVD		mmxreg,rm32			[rm:	np 0f 6e /r]				PENT,MMX,SD
-MOVD		rm32,mmxreg			[mr:	np 0f 7e /r]				PENT,MMX,SD
-MOVD		mmxreg,rm64			[rm:	np o64 0f 6e /r]			X64,MMX,SX,ND
-MOVD		rm64,mmxreg			[mr:	np o64 0f 7e /r]			X64,MMX,SX,ND
-MOVQ		mmxreg,mmxrm			[rm:	np 0f 6f /r]				PENT,MMX,SQ
-MOVQ		mmxrm,mmxreg			[mr:	np 0f 7f /r]				PENT,MMX,SQ
-MOVQ		mmxreg,rm64			[rm:	np o64 0f 6e /r]			X64,MMX
-MOVQ		rm64,mmxreg			[mr:	np o64 0f 7e /r]			X64,MMX
-MOVSB		void				[	a4]					8086
-MOVSD		void				[	o32 a5]					386
-MOVSQ		void				[	o64 a5]					X64
-MOVSW		void				[	o16 a5]					8086
-MOVSX		reg16,mem			[rm:	o16 0f be /r]				386,SB
-MOVSX		reg16,reg8			[rm:	o16 0f be /r]				386
-MOVSX		reg32,rm8			[rm:	o32 0f be /r]				386
-MOVSX		reg32,rm16			[rm:	o32 0f bf /r]				386
-MOVSX		reg64,rm8			[rm:	o64 0f be /r]				X64
-MOVSX		reg64,rm16			[rm:	o64 0f bf /r]				X64
-MOVSXD		reg64,rm32			[rm:	o64 63 /r]				X64
-MOVSX		reg64,rm32			[rm:	o64 63 /r]				X64,ND
-MOVZX		reg16,mem			[rm:	o16 0f b6 /r]				386,SB
-MOVZX		reg16,reg8			[rm:	o16 0f b6 /r]				386
-MOVZX		reg32,rm8			[rm:	o32 0f b6 /r]				386
-MOVZX		reg32,rm16			[rm:	o32 0f b7 /r]				386
-MOVZX		reg64,rm8			[rm:	o64 0f b6 /r]				X64
-MOVZX		reg64,rm16			[rm:	o64 0f b7 /r]				X64
-MUL		rm8				[m:	f6 /4]					8086
-MUL		rm16				[m:	o16 f7 /4]				8086
-MUL		rm32				[m:	o32 f7 /4]				386
-MUL		rm64				[m:	o64 f7 /4]				X64
-MWAIT		void				[	0f 01 c9]				PRESCOTT
-MWAIT		reg_eax,reg_ecx			[--:	0f 01 c9]				PRESCOTT,ND
-MWAITX		void				[	0f 01 fb]				AMD
-MWAITX		reg_eax,reg_ecx			[--:	0f 01 fb]				AMD,ND
-NEG		rm8				[m:	hle f6 /3]				8086,LOCK
-NEG		rm16				[m:	hle o16 f7 /3]				8086,LOCK
-NEG		rm32				[m:	hle o32 f7 /3]				386,LOCK
-NEG		rm64				[m:	hle o64 f7 /3]				X64,LOCK
-NOP		void				[	norexb nof3 90]				8086
-NOP		rm16				[m:	o16 0f 1f /0]				P6
-NOP		rm32				[m:	o32 0f 1f /0]				P6
-NOP		rm64				[m:	o64 0f 1f /0]				X64
-NOT		rm8				[m:	hle f6 /2]				8086,LOCK
-NOT		rm16				[m:	hle o16 f7 /2]				8086,LOCK
-NOT		rm32				[m:	hle o32 f7 /2]				386,LOCK
-NOT		rm64				[m:	hle o64 f7 /2]				X64,LOCK
-OR		mem,reg8			[mr:	hle 08 /r]				8086,SM,LOCK
-OR		reg8,reg8			[mr:	08 /r]					8086
-OR		mem,reg16			[mr:	hle o16 09 /r]				8086,SM,LOCK
-OR		reg16,reg16			[mr:	o16 09 /r]				8086
-OR		mem,reg32			[mr:	hle o32 09 /r]				386,SM,LOCK
-OR		reg32,reg32			[mr:	o32 09 /r]				386
-OR		mem,reg64			[mr:	hle o64 09 /r]				X64,SM,LOCK
-OR		reg64,reg64			[mr:	o64 09 /r]				X64
-OR		reg8,mem			[rm:	0a /r]					8086,SM
-OR		reg8,reg8			[rm:	0a /r]					8086
-OR		reg16,mem			[rm:	o16 0b /r]				8086,SM
-OR		reg16,reg16			[rm:	o16 0b /r]				8086
-OR		reg32,mem			[rm:	o32 0b /r]				386,SM
-OR		reg32,reg32			[rm:	o32 0b /r]				386
-OR		reg64,mem			[rm:	o64 0b /r]				X64,SM
-OR		reg64,reg64			[rm:	o64 0b /r]				X64
-OR		rm16,imm8			[mi:	hle o16 83 /1 ib,s]			8086,LOCK
-OR		rm32,imm8			[mi:	hle o32 83 /1 ib,s]			386,LOCK
-OR		rm64,imm8			[mi:	hle o64 83 /1 ib,s]			X64,LOCK
-OR		reg_al,imm			[-i:	0c ib]					8086,SM
-OR		reg_ax,sbyteword		[mi:	o16 83 /1 ib,s]				8086,SM,ND
-OR		reg_ax,imm			[-i:	o16 0d iw]				8086,SM
-OR		reg_eax,sbytedword		[mi:	o32 83 /1 ib,s]				386,SM,ND
-OR		reg_eax,imm			[-i:	o32 0d id]				386,SM
-OR		reg_rax,sbytedword		[mi:	o64 83 /1 ib,s]				X64,SM,ND
-OR		reg_rax,imm			[-i:	o64 0d id,s]				X64,SM
-OR		rm8,imm				[mi:	hle 80 /1 ib]				8086,SM,LOCK
-OR		rm16,sbyteword			[mi:	hle o16 83 /1 ib,s]			8086,SM,LOCK,ND
-OR		rm16,imm			[mi:	hle o16 81 /1 iw]			8086,SM,LOCK
-OR		rm32,sbytedword			[mi:	hle o32 83 /1 ib,s]			386,SM,LOCK,ND
-OR		rm32,imm			[mi:	hle o32 81 /1 id]			386,SM,LOCK
-OR		rm64,sbytedword			[mi:	hle o64 83 /1 ib,s]			X64,SM,LOCK,ND
-OR		rm64,imm			[mi:	hle o64 81 /1 id,s]			X64,SM,LOCK
-OR		mem,imm8			[mi:	hle 80 /1 ib]				8086,SM,LOCK
-OR		mem,sbyteword16			[mi:	hle o16 83 /1 ib,s]			8086,SM,LOCK,ND
-OR		mem,imm16			[mi:	hle o16 81 /1 iw]			8086,SM,LOCK
-OR		mem,sbytedword32		[mi:	hle o32 83 /1 ib,s]			386,SM,LOCK,ND
-OR		mem,imm32			[mi:	hle o32 81 /1 id]			386,SM,LOCK
-OR		rm8,imm				[mi:	hle 82 /1 ib]				8086,SM,LOCK,ND,NOLONG
-OUT		imm,reg_al			[i-:	e6 ib,u]				8086,SB
-OUT		imm,reg_ax			[i-:	o16 e7 ib,u]				8086,SB
-OUT		imm,reg_eax			[i-:	o32 e7 ib,u]				386,SB
-OUT		reg_dx,reg_al			[--:	ee]					8086
-OUT		reg_dx,reg_ax			[--:	o16 ef]					8086
-OUT		reg_dx,reg_eax			[--:	o32 ef]					386
-OUTSB		void				[	6e]					186
-OUTSD		void				[	o32 6f]					386
-OUTSW		void				[	o16 6f]					186
-PACKSSDW	mmxreg,mmxrm			[rm:	np o64nw 0f 6b /r]			PENT,MMX,SQ
-PACKSSWB	mmxreg,mmxrm			[rm:	np o64nw 0f 63 /r]			PENT,MMX,SQ
-PACKUSWB	mmxreg,mmxrm			[rm:	np o64nw 0f 67 /r]			PENT,MMX,SQ
-PADDB		mmxreg,mmxrm			[rm:	np o64nw 0f fc /r]			PENT,MMX,SQ
-PADDD		mmxreg,mmxrm			[rm:	np o64nw 0f fe /r]			PENT,MMX,SQ
-PADDSB		mmxreg,mmxrm			[rm:	np o64nw 0f ec /r]			PENT,MMX,SQ
-PADDSIW		mmxreg,mmxrm			[rm:	o64nw 0f 51 /r]				PENT,MMX,SQ,CYRIX
-PADDSW		mmxreg,mmxrm			[rm:	np o64nw 0f ed /r]			PENT,MMX,SQ
-PADDUSB		mmxreg,mmxrm			[rm:	np o64nw 0f dc /r]			PENT,MMX,SQ
-PADDUSW		mmxreg,mmxrm			[rm:	np o64nw 0f dd /r]			PENT,MMX,SQ
-PADDW		mmxreg,mmxrm			[rm:	np o64nw 0f fd /r]			PENT,MMX,SQ
-PAND		mmxreg,mmxrm			[rm:	np o64nw 0f db /r]			PENT,MMX,SQ
-PANDN		mmxreg,mmxrm			[rm:	np o64nw 0f df /r]			PENT,MMX,SQ
-PAUSE		void				[	f3i 90]					8086
-PAVEB		mmxreg,mmxrm			[rm:	o64nw 0f 50 /r]				PENT,MMX,SQ,CYRIX
-PAVGUSB		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r bf]			PENT,3DNOW,SQ
-PCMPEQB		mmxreg,mmxrm			[rm:	np o64nw 0f 74 /r]			PENT,MMX,SQ
-PCMPEQD		mmxreg,mmxrm			[rm:	np o64nw 0f 76 /r]			PENT,MMX,SQ
-PCMPEQW		mmxreg,mmxrm			[rm:	np o64nw 0f 75 /r]			PENT,MMX,SQ
-PCMPGTB		mmxreg,mmxrm			[rm:	np o64nw 0f 64 /r]			PENT,MMX,SQ
-PCMPGTD		mmxreg,mmxrm			[rm:	np o64nw 0f 66 /r]			PENT,MMX,SQ
-PCMPGTW		mmxreg,mmxrm			[rm:	np o64nw 0f 65 /r]			PENT,MMX,SQ
-PDISTIB		mmxreg,mem			[rm:	0f 54 /r]				PENT,MMX,SM,CYRIX
-PF2ID		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r 1d]			PENT,3DNOW,SQ
-PFACC		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r ae]			PENT,3DNOW,SQ
-PFADD		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r 9e]			PENT,3DNOW,SQ
-PFCMPEQ		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r b0]			PENT,3DNOW,SQ
-PFCMPGE		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r 90]			PENT,3DNOW,SQ
-PFCMPGT		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r a0]			PENT,3DNOW,SQ
-PFMAX		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r a4]			PENT,3DNOW,SQ
-PFMIN		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r 94]			PENT,3DNOW,SQ
-PFMUL		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r b4]			PENT,3DNOW,SQ
-PFRCP		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r 96]			PENT,3DNOW,SQ
-PFRCPIT1	mmxreg,mmxrm			[rm:	o64nw 0f 0f /r a6]			PENT,3DNOW,SQ
-PFRCPIT2	mmxreg,mmxrm			[rm:	o64nw 0f 0f /r b6]			PENT,3DNOW,SQ
-PFRSQIT1	mmxreg,mmxrm			[rm:	o64nw 0f 0f /r a7]			PENT,3DNOW,SQ
-PFRSQRT		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r 97]			PENT,3DNOW,SQ
-PFSUB		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r 9a]			PENT,3DNOW,SQ
-PFSUBR		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r aa]			PENT,3DNOW,SQ
-PI2FD		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r 0d]			PENT,3DNOW,SQ
-PMACHRIW	mmxreg,mem			[rm:	0f 5e /r]				PENT,MMX,SM,CYRIX
-PMADDWD		mmxreg,mmxrm			[rm:	np o64nw 0f f5 /r]			PENT,MMX,SQ
-PMAGW		mmxreg,mmxrm			[rm:	o64nw 0f 52 /r]				PENT,MMX,SQ,CYRIX
-PMULHRIW	mmxreg,mmxrm			[rm:	o64nw 0f 5d /r]				PENT,MMX,SQ,CYRIX
-PMULHRWA	mmxreg,mmxrm			[rm:	o64nw 0f 0f /r b7]			PENT,3DNOW,SQ
-PMULHRWC	mmxreg,mmxrm			[rm:	o64nw 0f 59 /r]				PENT,MMX,SQ,CYRIX
-PMULHW		mmxreg,mmxrm			[rm:	np o64nw 0f e5 /r]			PENT,MMX,SQ
-PMULLW		mmxreg,mmxrm			[rm:	np o64nw 0f d5 /r]			PENT,MMX,SQ
-PMVGEZB		mmxreg,mem			[rm:	0f 5c /r]				PENT,MMX,SQ,CYRIX
-PMVLZB		mmxreg,mem			[rm:	0f 5b /r]				PENT,MMX,SQ,CYRIX
-PMVNZB		mmxreg,mem			[rm:	0f 5a /r]				PENT,MMX,SQ,CYRIX
-PMVZB		mmxreg,mem			[rm:	0f 58 /r]				PENT,MMX,SQ,CYRIX
-POP		reg16				[r:	o16 58+r]				8086
-POP		reg32				[r:	o32 58+r]				386,NOLONG
-POP		reg64				[r:	o64nw 58+r]				X64
-POP		rm16				[m:	o16 8f /0]				8086
-POP		rm32				[m:	o32 8f /0]				386,NOLONG
-POP		rm64				[m:	o64nw 8f /0]				X64
-POP		reg_es				[-:	07]					8086,NOLONG
-POP		reg_cs				[-:	0f]					8086,UNDOC,ND,OBSOLETE
-POP		reg_ss				[-:	17]					8086,NOLONG
-POP		reg_ds				[-:	1f]					8086,NOLONG
-POP		reg_fs				[-:	0f a1]					386
-POP		reg_gs				[-:	0f a9]					386
-POPA		void				[	odf 61]					186,NOLONG
-POPAD		void				[	o32 61]					386,NOLONG
-POPAW		void				[	o16 61]					186,NOLONG
-POPF		void				[	odf 9d]					8086
-POPFD		void				[	o32 9d]					386,NOLONG
-POPFQ		void				[	o32 9d]					X64
-POPFW		void				[	o16 9d]					8086
-POR		mmxreg,mmxrm			[rm:	np o64nw 0f eb /r]			PENT,MMX,SQ
-PREFETCH	mem				[m:	0f 0d /0]				PENT,3DNOW,SQ
-PREFETCHW	mem				[m:	0f 0d /1]				PENT,3DNOW,SQ
-PSLLD		mmxreg,mmxrm			[rm:	np o64nw 0f f2 /r]			PENT,MMX,SQ
-PSLLD		mmxreg,imm			[mi:	np 0f 72 /6 ib,u]			PENT,MMX
-PSLLQ		mmxreg,mmxrm			[rm:	np o64nw 0f f3 /r]			PENT,MMX,SQ
-PSLLQ		mmxreg,imm			[mi:	np 0f 73 /6 ib,u]			PENT,MMX
-PSLLW		mmxreg,mmxrm			[rm:	np o64nw 0f f1 /r]			PENT,MMX,SQ
-PSLLW		mmxreg,imm			[mi:	np 0f 71 /6 ib,u]			PENT,MMX
-PSRAD		mmxreg,mmxrm			[rm:	np o64nw 0f e2 /r]			PENT,MMX,SQ
-PSRAD		mmxreg,imm			[mi:	np 0f 72 /4 ib,u]			PENT,MMX
-PSRAW		mmxreg,mmxrm			[rm:	np o64nw 0f e1 /r]			PENT,MMX,SQ
-PSRAW		mmxreg,imm			[mi:	np 0f 71 /4 ib,u]			PENT,MMX
-PSRLD		mmxreg,mmxrm			[rm:	np o64nw 0f d2 /r]			PENT,MMX,SQ
-PSRLD		mmxreg,imm			[mi:	np 0f 72 /2 ib,u]			PENT,MMX
-PSRLQ		mmxreg,mmxrm			[rm:	np o64nw 0f d3 /r]			PENT,MMX,SQ
-PSRLQ		mmxreg,imm			[mi:	np 0f 73 /2 ib,u]			PENT,MMX
-PSRLW		mmxreg,mmxrm			[rm:	np o64nw 0f d1 /r]			PENT,MMX,SQ
-PSRLW		mmxreg,imm			[mi:	np 0f 71 /2 ib,u]			PENT,MMX
-PSUBB		mmxreg,mmxrm			[rm:	np o64nw 0f f8 /r]			PENT,MMX,SQ
-PSUBD		mmxreg,mmxrm			[rm:	np o64nw 0f fa /r]			PENT,MMX,SQ
-PSUBSB		mmxreg,mmxrm			[rm:	np o64nw 0f e8 /r]			PENT,MMX,SQ
-PSUBSIW		mmxreg,mmxrm			[rm:	o64nw 0f 55 /r]				PENT,MMX,SQ,CYRIX
-PSUBSW		mmxreg,mmxrm			[rm:	np o64nw 0f e9 /r]			PENT,MMX,SQ
-PSUBUSB		mmxreg,mmxrm			[rm:	np o64nw 0f d8 /r]			PENT,MMX,SQ
-PSUBUSW		mmxreg,mmxrm			[rm:	np o64nw 0f d9 /r]			PENT,MMX,SQ
-PSUBW		mmxreg,mmxrm			[rm:	np o64nw 0f f9 /r]			PENT,MMX,SQ
-PUNPCKHBW	mmxreg,mmxrm			[rm:	np o64nw 0f 68 /r]			PENT,MMX,SQ
-PUNPCKHDQ	mmxreg,mmxrm			[rm:	np o64nw 0f 6a /r]			PENT,MMX,SQ
-PUNPCKHWD	mmxreg,mmxrm			[rm:	np o64nw 0f 69 /r]			PENT,MMX,SQ
-PUNPCKLBW	mmxreg,mmxrm			[rm:	np o64nw 0f 60 /r]			PENT,MMX,SQ
-PUNPCKLDQ	mmxreg,mmxrm			[rm:	np o64nw 0f 62 /r]			PENT,MMX,SQ
-PUNPCKLWD	mmxreg,mmxrm			[rm:	np o64nw 0f 61 /r]			PENT,MMX,SQ
-PUSH		reg16				[r:	o16 50+r]				8086
-PUSH		reg32				[r:	o32 50+r]				386,NOLONG
-PUSH		reg64				[r:	o64nw 50+r]				X64
-PUSH		rm16				[m:	o16 ff /6]				8086
-PUSH		rm32				[m:	o32 ff /6]				386,NOLONG
-PUSH		rm64				[m:	o64nw ff /6]				X64
-PUSH		reg_es				[-:	06]					8086,NOLONG
-PUSH		reg_cs				[-:	0e]					8086,NOLONG
-PUSH		reg_ss				[-:	16]					8086,NOLONG
-PUSH		reg_ds				[-:	1e]					8086,NOLONG
-PUSH		reg_fs				[-:	0f a0]					386
-PUSH		reg_gs				[-:	0f a8]					386
-PUSH		imm8				[i:	6a ib,s]					186
-PUSH		sbyteword16			[i:	o16 6a ib,s]				186,AR0,SIZE,ND
-PUSH		imm16				[i:	o16 68 iw]				186,AR0,SIZE
-PUSH		sbytedword32			[i:	o32 6a ib,s]				386,NOLONG,AR0,SIZE,ND
-PUSH		imm32				[i:	o32 68 id]				386,NOLONG,AR0,SIZE
-PUSH		sbytedword32			[i:	o32 6a ib,s]				386,NOLONG,SD,ND
-PUSH		imm32				[i:	o32 68 id]				386,NOLONG,SD
-PUSH		sbytedword64			[i:	o64nw 6a ib,s]				X64,AR0,SIZE,ND
-PUSH		imm64				[i:	o64nw 68 id,s]				X64,AR0,SIZE
-PUSH		sbytedword32			[i:	o64nw 6a ib,s]				X64,AR0,SIZE,ND
-PUSH		imm32				[i:	o64nw 68 id,s]				X64,AR0,SIZE
-PUSHA		void				[	odf 60]					186,NOLONG
-PUSHAD		void				[	o32 60]					386,NOLONG
-PUSHAW		void				[	o16 60]					186,NOLONG
-PUSHF		void				[	odf 9c]					8086
-PUSHFD		void				[	o32 9c]					386,NOLONG
-PUSHFQ		void				[	o32 9c]					X64
-PUSHFW		void				[	o16 9c]					8086
-PXOR		mmxreg,mmxrm			[rm:	np o64nw 0f ef /r]			PENT,MMX,SQ
-RCL		rm8,unity			[m-:	d0 /2]					8086
-RCL		rm8,reg_cl			[m-:	d2 /2]					8086
-RCL		rm8,imm8			[mi:	c0 /2 ib,u]				186
-RCL		rm16,unity			[m-:	o16 d1 /2]				8086
-RCL		rm16,reg_cl			[m-:	o16 d3 /2]				8086
-RCL		rm16,imm8			[mi:	o16 c1 /2 ib,u]				186
-RCL		rm32,unity			[m-:	o32 d1 /2]				386
-RCL		rm32,reg_cl			[m-:	o32 d3 /2]				386
-RCL		rm32,imm8			[mi:	o32 c1 /2 ib,u]				386
-RCL		rm64,unity			[m-:	o64 d1 /2]				X64
-RCL		rm64,reg_cl			[m-:	o64 d3 /2]				X64
-RCL		rm64,imm8			[mi:	o64 c1 /2 ib,u]				X64
-RCR		rm8,unity			[m-:	d0 /3]					8086
-RCR		rm8,reg_cl			[m-:	d2 /3]					8086
-RCR		rm8,imm8			[mi:	c0 /3 ib,u]				186
-RCR		rm16,unity			[m-:	o16 d1 /3]				8086
-RCR		rm16,reg_cl			[m-:	o16 d3 /3]				8086
-RCR		rm16,imm8			[mi:	o16 c1 /3 ib,u]				186
-RCR		rm32,unity			[m-:	o32 d1 /3]				386
-RCR		rm32,reg_cl			[m-:	o32 d3 /3]				386
-RCR		rm32,imm8			[mi:	o32 c1 /3 ib,u]				386
-RCR		rm64,unity			[m-:	o64 d1 /3]				X64
-RCR		rm64,reg_cl			[m-:	o64 d3 /3]				X64
-RCR		rm64,imm8			[mi:	o64 c1 /3 ib,u]				X64
-RDSHR		rm32				[m:	o32 0f 36 /0]				P6,CYRIX,SMM
-RDMSR		void				[	0f 32]					PENT,PRIV
-RDPMC		void				[	0f 33]					P6
-RDTSC		void				[	0f 31]					PENT
-RDTSCP		void				[	0f 01 f9]				X86_64
-RET		void				[	c3]					8086,BND
-RET		imm				[i:	c2 iw]					8086,SW,BND
-RETF		void				[	cb]					8086
-RETF		imm				[i:	ca iw]					8086,SW
-RETN		void				[	c3]					8086,BND
-RETN		imm				[i:	c2 iw]					8086,SW,BND
-
-ROL		rm8,unity			[m-:	d0 /0]					8086
-ROL		rm8,reg_cl			[m-:	d2 /0]					8086
-ROL		rm8,imm8			[mi:	c0 /0 ib,u]				186
-ROL		rm16,unity			[m-:	o16 d1 /0]				8086
-ROL		rm16,reg_cl			[m-:	o16 d3 /0]				8086
-ROL		rm16,imm8			[mi:	o16 c1 /0 ib,u]				186
-ROL		rm32,unity			[m-:	o32 d1 /0]				386
-ROL		rm32,reg_cl			[m-:	o32 d3 /0]				386
-ROL		rm32,imm8			[mi:	o32 c1 /0 ib,u]				386
-ROL		rm64,unity			[m-:	o64 d1 /0]				X64
-ROL		rm64,reg_cl			[m-:	o64 d3 /0]				X64
-ROL		rm64,imm8			[mi:	o64 c1 /0 ib,u]				X64
-ROR		rm8,unity			[m-:	d0 /1]					8086
-ROR		rm8,reg_cl			[m-:	d2 /1]					8086
-ROR		rm8,imm8			[mi:	c0 /1 ib,u]				186
-ROR		rm16,unity			[m-:	o16 d1 /1]				8086
-ROR		rm16,reg_cl			[m-:	o16 d3 /1]				8086
-ROR		rm16,imm8			[mi:	o16 c1 /1 ib,u]				186
-ROR		rm32,unity			[m-:	o32 d1 /1]				386
-ROR		rm32,reg_cl			[m-:	o32 d3 /1]				386
-ROR		rm32,imm8			[mi:	o32 c1 /1 ib,u]				386
-ROR		rm64,unity			[m-:	o64 d1 /1]				X64
-ROR		rm64,reg_cl			[m-:	o64 d3 /1]				X64
-ROR		rm64,imm8			[mi:	o64 c1 /1 ib,u]				X64
-RDM		void				[	0f 3a]					P6,CYRIX,ND
-RSDC		reg_sreg,mem80			[rm:	0f 79 /r]				486,CYRIX,SMM
-RSLDT		mem80				[m:	0f 7b /0]				486,CYRIX,SMM
-RSM		void				[	0f aa]					PENT,SMM
-RSTS		mem80				[m:	0f 7d /0]				486,CYRIX,SMM
-SAHF		void				[	9e]					8086
-SAL		rm8,unity			[m-:	d0 /4]					8086,ND
-SAL		rm8,reg_cl			[m-:	d2 /4]					8086,ND
-SAL		rm8,imm8			[mi:	c0 /4 ib,u]				186,ND
-SAL		rm16,unity			[m-:	o16 d1 /4]				8086,ND
-SAL		rm16,reg_cl			[m-:	o16 d3 /4]				8086,ND
-SAL		rm16,imm8			[mi:	o16 c1 /4 ib,u]				186,ND
-SAL		rm32,unity			[m-:	o32 d1 /4]				386,ND
-SAL		rm32,reg_cl			[m-:	o32 d3 /4]				386,ND
-SAL		rm32,imm8			[mi:	o32 c1 /4 ib,u]				386,ND
-SAL		rm64,unity			[m-:	o64 d1 /4]				X64,ND
-SAL		rm64,reg_cl			[m-:	o64 d3 /4]				X64,ND
-SAL		rm64,imm8			[mi:	o64 c1 /4 ib,u]				X64,ND
-SALC		void				[	d6]					8086,UNDOC
-SAR		rm8,unity			[m-:	d0 /7]					8086
-SAR		rm8,reg_cl			[m-:	d2 /7]					8086
-SAR		rm8,imm8			[mi:	c0 /7 ib,u]				186
-SAR		rm16,unity			[m-:	o16 d1 /7]				8086
-SAR		rm16,reg_cl			[m-:	o16 d3 /7]				8086
-SAR		rm16,imm8			[mi:	o16 c1 /7 ib,u]				186
-SAR		rm32,unity			[m-:	o32 d1 /7]				386
-SAR		rm32,reg_cl			[m-:	o32 d3 /7]				386
-SAR		rm32,imm8			[mi:	o32 c1 /7 ib,u]				386
-SAR		rm64,unity			[m-:	o64 d1 /7]				X64
-SAR		rm64,reg_cl			[m-:	o64 d3 /7]				X64
-SAR		rm64,imm8			[mi:	o64 c1 /7 ib,u]				X64
-SBB		mem,reg8			[mr:	hle 18 /r]				8086,SM,LOCK
-SBB		reg8,reg8			[mr:	18 /r]					8086
-SBB		mem,reg16			[mr:	hle o16 19 /r]				8086,SM,LOCK
-SBB		reg16,reg16			[mr:	o16 19 /r]				8086
-SBB		mem,reg32			[mr:	hle o32 19 /r]				386,SM,LOCK
-SBB		reg32,reg32			[mr:	o32 19 /r]				386
-SBB		mem,reg64			[mr:	hle o64 19 /r]				X64,SM,LOCK
-SBB		reg64,reg64			[mr:	o64 19 /r]				X64
-SBB		reg8,mem			[rm:	1a /r]					8086,SM
-SBB		reg8,reg8			[rm:	1a /r]					8086
-SBB		reg16,mem			[rm:	o16 1b /r]				8086,SM
-SBB		reg16,reg16			[rm:	o16 1b /r]				8086
-SBB		reg32,mem			[rm:	o32 1b /r]				386,SM
-SBB		reg32,reg32			[rm:	o32 1b /r]				386
-SBB		reg64,mem			[rm:	o64 1b /r]				X64,SM
-SBB		reg64,reg64			[rm:	o64 1b /r]				X64
-SBB		rm16,imm8			[mi:	hle o16 83 /3 ib,s]			8086,LOCK
-SBB		rm32,imm8			[mi:	hle o32 83 /3 ib,s]			386,LOCK
-SBB		rm64,imm8			[mi:	hle o64 83 /3 ib,s]			X64,LOCK
-SBB		reg_al,imm			[-i:	1c ib]					8086,SM
-SBB		reg_ax,sbyteword		[mi:	o16 83 /3 ib,s]				8086,SM,ND
-SBB		reg_ax,imm			[-i:	o16 1d iw]				8086,SM
-SBB		reg_eax,sbytedword		[mi:	o32 83 /3 ib,s]				386,SM,ND
-SBB		reg_eax,imm			[-i:	o32 1d id]				386,SM
-SBB		reg_rax,sbytedword		[mi:	o64 83 /3 ib,s]				X64,SM,ND
-SBB		reg_rax,imm			[-i:	o64 1d id,s]				X64,SM
-SBB		rm8,imm				[mi:	hle 80 /3 ib]				8086,SM,LOCK
-SBB		rm16,sbyteword			[mi:	hle o16 83 /3 ib,s]			8086,SM,LOCK,ND
-SBB		rm16,imm			[mi:	hle o16 81 /3 iw]			8086,SM,LOCK
-SBB		rm32,sbytedword			[mi:	hle o32 83 /3 ib,s]			386,SM,LOCK,ND
-SBB		rm32,imm			[mi:	hle o32 81 /3 id]			386,SM,LOCK
-SBB		rm64,sbytedword			[mi:	hle o64 83 /3 ib,s]			X64,SM,LOCK,ND
-SBB		rm64,imm			[mi:	hle o64 81 /3 id,s]			X64,SM,LOCK
-SBB		mem,imm8			[mi:	hle 80 /3 ib]				8086,SM,LOCK
-SBB		mem,sbyteword16			[mi:	hle o16 83 /3 ib,s]			8086,SM,LOCK,ND
-SBB		mem,imm16			[mi:	hle o16 81 /3 iw]			8086,SM,LOCK
-SBB		mem,sbytedword32		[mi:	hle o32 83 /3 ib,s]			386,SM,LOCK,ND
-SBB		mem,imm32			[mi:	hle o32 81 /3 id]			386,SM,LOCK
-SBB		rm8,imm				[mi:	hle 82 /3 ib]				8086,SM,LOCK,ND,NOLONG
-SCASB		void				[	repe ae]				8086
-SCASD		void				[	repe o32 af]				386
-SCASQ		void				[	repe o64 af]				X64
-SCASW		void				[	repe o16 af]				8086
-SFENCE		void				[	np 0f ae f8]				X64,AMD
-SGDT		mem				[m:	0f 01 /0]				286
-SHL		rm8,unity			[m-:	d0 /4]					8086
-SHL		rm8,reg_cl			[m-:	d2 /4]					8086
-SHL		rm8,imm8			[mi:	c0 /4 ib,u]				186
-SHL		rm16,unity			[m-:	o16 d1 /4]				8086
-SHL		rm16,reg_cl			[m-:	o16 d3 /4]				8086
-SHL		rm16,imm8			[mi:	o16 c1 /4 ib,u]				186
-SHL		rm32,unity			[m-:	o32 d1 /4]				386
-SHL		rm32,reg_cl			[m-:	o32 d3 /4]				386
-SHL		rm32,imm8			[mi:	o32 c1 /4 ib,u]				386
-SHL		rm64,unity			[m-:	o64 d1 /4]				X64
-SHL		rm64,reg_cl			[m-:	o64 d3 /4]				X64
-SHL		rm64,imm8			[mi:	o64 c1 /4 ib,u]				X64
-SHLD		mem,reg16,imm			[mri:	o16 0f a4 /r ib,u]			386,SM2,SB,AR2
-SHLD		reg16,reg16,imm			[mri:	o16 0f a4 /r ib,u]			386,SM2,SB,AR2
-SHLD		mem,reg32,imm			[mri:	o32 0f a4 /r ib,u]			386,SM2,SB,AR2
-SHLD		reg32,reg32,imm			[mri:	o32 0f a4 /r ib,u]			386,SM2,SB,AR2
-SHLD		mem,reg64,imm			[mri:	o64 0f a4 /r ib,u]			X64,SM2,SB,AR2
-SHLD		reg64,reg64,imm			[mri:	o64 0f a4 /r ib,u]			X64,SM2,SB,AR2
-SHLD		mem,reg16,reg_cl		[mr-:	o16 0f a5 /r]				386,SM
-SHLD		reg16,reg16,reg_cl		[mr-:	o16 0f a5 /r]				386
-SHLD		mem,reg32,reg_cl		[mr-:	o32 0f a5 /r]				386,SM
-SHLD		reg32,reg32,reg_cl		[mr-:	o32 0f a5 /r]				386
-SHLD		mem,reg64,reg_cl		[mr-:	o64 0f a5 /r]				X64,SM
-SHLD		reg64,reg64,reg_cl		[mr-:	o64 0f a5 /r]				X64
-SHR		rm8,unity			[m-:	d0 /5]					8086
-SHR		rm8,reg_cl			[m-:	d2 /5]					8086
-SHR		rm8,imm8			[mi:	c0 /5 ib,u]				186
-SHR		rm16,unity			[m-:	o16 d1 /5]				8086
-SHR		rm16,reg_cl			[m-:	o16 d3 /5]				8086
-SHR		rm16,imm8			[mi:	o16 c1 /5 ib,u]				186
-SHR		rm32,unity			[m-:	o32 d1 /5]				386
-SHR		rm32,reg_cl			[m-:	o32 d3 /5]				386
-SHR		rm32,imm8			[mi:	o32 c1 /5 ib,u]				386
-SHR		rm64,unity			[m-:	o64 d1 /5]				X64
-SHR		rm64,reg_cl			[m-:	o64 d3 /5]				X64
-SHR		rm64,imm8			[mi:	o64 c1 /5 ib,u]				X64
-SHRD		mem,reg16,imm			[mri:	o16 0f ac /r ib,u]			386,SM2,SB,AR2
-SHRD		reg16,reg16,imm			[mri:	o16 0f ac /r ib,u]			386,SM2,SB,AR2
-SHRD		mem,reg32,imm			[mri:	o32 0f ac /r ib,u]			386,SM2,SB,AR2
-SHRD		reg32,reg32,imm			[mri:	o32 0f ac /r ib,u]			386,SM2,SB,AR2
-SHRD		mem,reg64,imm			[mri:	o64 0f ac /r ib,u]			X64,SM2,SB,AR2
-SHRD		reg64,reg64,imm			[mri:	o64 0f ac /r ib,u]			X64,SM2,SB,AR2
-SHRD		mem,reg16,reg_cl		[mr-:	o16 0f ad /r]				386,SM
-SHRD		reg16,reg16,reg_cl		[mr-:	o16 0f ad /r]				386
-SHRD		mem,reg32,reg_cl		[mr-:	o32 0f ad /r]				386,SM
-SHRD		reg32,reg32,reg_cl		[mr-:	o32 0f ad /r]				386
-SHRD		mem,reg64,reg_cl		[mr-:	o64 0f ad /r]				X64,SM
-SHRD		reg64,reg64,reg_cl		[mr-:	o64 0f ad /r]				X64
-SIDT		mem				[m:	0f 01 /1]				286
-SLDT		mem				[m:	0f 00 /0]				286
-SLDT		mem16				[m:	0f 00 /0]				286
-SLDT		reg16				[m:	o16 0f 00 /0]				286
-SLDT		reg32				[m:	o32 0f 00 /0]				386
-SLDT		reg64				[m:	o64nw 0f 00 /0]				X64,ND
-SLDT		reg64				[m:	o64 0f 00 /0]				X64
-SKINIT		void				[	0f 01 de]				X64
-SMI		void				[	f1]					386,UNDOC
-SMINT		void				[	0f 38]					P6,CYRIX,ND
-; Older Cyrix chips had this; they had to move due to conflict with MMX
-SMINTOLD	void				[	0f 7e]					486,CYRIX,ND,OBSOLETE
-SMSW		mem				[m:	0f 01 /4]				286
-SMSW		mem16				[m:	0f 01 /4]				286
-SMSW		reg16				[m:	o16 0f 01 /4]				286
-SMSW		reg32				[m:	o32 0f 01 /4]				386
-SMSW		reg64				[m:	o64 0f 01 /4]				X64
-STC		void				[	f9]					8086
-STD		void				[	fd]					8086
-STI		void				[	fb]					8086
-STOSB		void				[	aa]					8086
-STOSD		void				[	o32 ab]					386
-STOSQ		void				[	o64 ab]					X64
-STOSW		void				[	o16 ab]					8086
-STR		mem				[m:	0f 00 /1]				286,PROT
-STR		mem16				[m:	0f 00 /1]				286,PROT
-STR		reg16				[m:	o16 0f 00 /1]				286,PROT
-STR		reg32				[m:	o32 0f 00 /1]				386,PROT
-STR		reg64				[m:	o64 0f 00 /1]				X64
-SUB		mem,reg8			[mr:	hle 28 /r]				8086,SM,LOCK
-SUB		reg8,reg8			[mr:	28 /r]					8086
-SUB		mem,reg16			[mr:	hle o16 29 /r]				8086,SM,LOCK
-SUB		reg16,reg16			[mr:	o16 29 /r]				8086
-SUB		mem,reg32			[mr:	hle o32 29 /r]				386,SM,LOCK
-SUB		reg32,reg32			[mr:	o32 29 /r]				386
-SUB		mem,reg64			[mr:	hle o64 29 /r]				X64,SM,LOCK
-SUB		reg64,reg64			[mr:	o64 29 /r]				X64
-SUB		reg8,mem			[rm:	2a /r]					8086,SM
-SUB		reg8,reg8			[rm:	2a /r]					8086
-SUB		reg16,mem			[rm:	o16 2b /r]				8086,SM
-SUB		reg16,reg16			[rm:	o16 2b /r]				8086
-SUB		reg32,mem			[rm:	o32 2b /r]				386,SM
-SUB		reg32,reg32			[rm:	o32 2b /r]				386
-SUB		reg64,mem			[rm:	o64 2b /r]				X64,SM
-SUB		reg64,reg64			[rm:	o64 2b /r]				X64
-SUB		rm16,imm8			[mi:	hle o16 83 /5 ib,s]			8086,LOCK
-SUB		rm32,imm8			[mi:	hle o32 83 /5 ib,s]			386,LOCK
-SUB		rm64,imm8			[mi:	hle o64 83 /5 ib,s]			X64,LOCK
-SUB		reg_al,imm			[-i:	2c ib]					8086,SM
-SUB		reg_ax,sbyteword		[mi:	o16 83 /5 ib,s]				8086,SM,ND
-SUB		reg_ax,imm			[-i:	o16 2d iw]				8086,SM
-SUB		reg_eax,sbytedword		[mi:	o32 83 /5 ib,s]				386,SM,ND
-SUB		reg_eax,imm			[-i:	o32 2d id]				386,SM
-SUB		reg_rax,sbytedword		[mi:	o64 83 /5 ib,s]				X64,SM,ND
-SUB		reg_rax,imm			[-i:	o64 2d id,s]				X64,SM
-SUB		rm8,imm				[mi:	hle 80 /5 ib]				8086,SM,LOCK
-SUB		rm16,sbyteword			[mi:	hle o16 83 /5 ib,s]			8086,SM,LOCK,ND
-SUB		rm16,imm			[mi:	hle o16 81 /5 iw]			8086,SM,LOCK
-SUB		rm32,sbytedword			[mi:	hle o32 83 /5 ib,s]			386,SM,LOCK,ND
-SUB		rm32,imm			[mi:	hle o32 81 /5 id]			386,SM,LOCK
-SUB		rm64,sbytedword			[mi:	hle o64 83 /5 ib,s]			X64,SM,LOCK,ND
-SUB		rm64,imm			[mi:	hle o64 81 /5 id,s]			X64,SM,LOCK
-SUB		mem,imm8			[mi:	hle 80 /5 ib]				8086,SM,LOCK
-SUB		mem,sbyteword16			[mi:	hle o16 83 /5 ib,s]			8086,SM,LOCK,ND
-SUB		mem,imm16			[mi:	hle o16 81 /5 iw]			8086,SM,LOCK
-SUB		mem,sbytedword32		[mi:	hle o32 83 /5 ib,s]			386,SM,LOCK,ND
-SUB		mem,imm32			[mi:	hle o32 81 /5 id]			386,SM,LOCK
-SUB		rm8,imm				[mi:	hle 82 /5 ib]				8086,SM,LOCK,ND,NOLONG
-SVDC		mem80,reg_sreg			[mr:	0f 78 /r]				486,CYRIX,SMM
-SVLDT		mem80				[m:	0f 7a /0]				486,CYRIX,SMM,ND
-SVTS		mem80				[m:	0f 7c /0]				486,CYRIX,SMM
-SWAPGS		void				[	0f 01 f8]				X64
-SYSCALL		void				[	0f 05]					P6,AMD
-SYSENTER	void				[	0f 34]					P6
-SYSEXIT		void				[	0f 35]					P6,PRIV
-SYSRET		void				[	0f 07]					P6,PRIV,AMD
-TEST		mem,reg8			[mr:	84 /r]					8086,SM
-TEST		reg8,reg8			[mr:	84 /r]					8086
-TEST		mem,reg16			[mr:	o16 85 /r]				8086,SM
-TEST		reg16,reg16			[mr:	o16 85 /r]				8086
-TEST		mem,reg32			[mr:	o32 85 /r]				386,SM
-TEST		reg32,reg32			[mr:	o32 85 /r]				386
-TEST		mem,reg64			[mr:	o64 85 /r]				X64,SM
-TEST		reg64,reg64			[mr:	o64 85 /r]				X64
-TEST		reg8,mem			[rm:	84 /r]					8086,SM
-TEST		reg16,mem			[rm:	o16 85 /r]				8086,SM
-TEST		reg32,mem			[rm:	o32 85 /r]				386,SM
-TEST		reg64,mem			[rm:	o64 85 /r]				X64,SM
-TEST		reg_al,imm			[-i:	a8 ib]					8086,SM
-TEST		reg_ax,imm			[-i:	o16 a9 iw]				8086,SM
-TEST		reg_eax,imm			[-i:	o32 a9 id]				386,SM
-TEST		reg_rax,imm			[-i:	o64 a9 id,s]				X64,SM
-TEST		rm8,imm				[mi:	f6 /0 ib]				8086,SM
-TEST		rm16,imm			[mi:	o16 f7 /0 iw]				8086,SM
-TEST		rm32,imm			[mi:	o32 f7 /0 id]				386,SM
-TEST		rm64,imm			[mi:	o64 f7 /0 id,s]				X64,SM
-TEST		mem,imm8			[mi:	f6 /0 ib]				8086,SM
-TEST		mem,imm16			[mi:	o16 f7 /0 iw]				8086,SM
-TEST		mem,imm32			[mi:	o32 f7 /0 id]				386,SM
-UD0		void				[	0f ff]					186
-UD1		reg,rm16			[rm:	o16 0f b9 /r]				186
-UD1		reg,rm32			[rm:	o32 0f b9 /r]				186
-UD1		reg,rm64			[rm:	o64 0f b9 /r]				186
-UD1		void				[	0f b9]					186,ND
-UD2B		void				[	0f b9]					186,ND
-UD2B		reg,rm16			[rm:	o16 0f b9 /r]				186,ND
-UD2B		reg,rm32			[rm:	o32 0f b9 /r]				186,ND
-UD2B		reg,rm64			[rm:	o64 0f b9 /r]				186,ND
-UD2		void				[	0f 0b]					186
-UD2A		void				[	0f 0b]					186,ND
-UMOV		mem,reg8			[mr:	np 0f 10 /r]				386,UNDOC,SM,ND
-UMOV		reg8,reg8			[mr:	np 0f 10 /r]				386,UNDOC,ND
-UMOV		mem,reg16			[mr:	np o16 0f 11 /r]			386,UNDOC,SM,ND
-UMOV		reg16,reg16			[mr:	np o16 0f 11 /r]			386,UNDOC,ND
-UMOV		mem,reg32			[mr:	np o32 0f 11 /r]			386,UNDOC,SM,ND
-UMOV		reg32,reg32			[mr:	np o32 0f 11 /r]			386,UNDOC,ND
-UMOV		reg8,mem			[rm:	np 0f 12 /r]				386,UNDOC,SM,ND
-UMOV		reg8,reg8			[rm:	np 0f 12 /r]				386,UNDOC,ND
-UMOV		reg16,mem			[rm:	np o16 0f 13 /r]			386,UNDOC,SM,ND
-UMOV		reg16,reg16			[rm:	np o16 0f 13 /r]			386,UNDOC,ND
-UMOV		reg32,mem			[rm:	np o32 0f 13 /r]			386,UNDOC,SM,ND
-UMOV		reg32,reg32			[rm:	np o32 0f 13 /r]			386,UNDOC,ND
-VERR		mem				[m:	0f 00 /4]				286,PROT
-VERR		mem16				[m:	0f 00 /4]				286,PROT
-VERR		reg16				[m:	0f 00 /4]				286,PROT
-VERW		mem				[m:	0f 00 /5]				286,PROT
-VERW		mem16				[m:	0f 00 /5]				286,PROT
-VERW		reg16				[m:	0f 00 /5]				286,PROT
-FWAIT		void				[	wait]					8086
-WBINVD		void				[	0f 09]					486,PRIV
-WRSHR		rm32				[m:	o32 0f 37 /0]				P6,CYRIX,SMM
-WRMSR		void				[	0f 30]					PENT,PRIV
-XADD		mem,reg8			[mr:	hle 0f c0 /r]				486,SM,LOCK
-XADD		reg8,reg8			[mr:	0f c0 /r]				486
-XADD		mem,reg16			[mr:	hle o16 0f c1 /r]			486,SM,LOCK
-XADD		reg16,reg16			[mr:	o16 0f c1 /r]				486
-XADD		mem,reg32			[mr:	hle o32 0f c1 /r]			486,SM,LOCK
-XADD		reg32,reg32			[mr:	o32 0f c1 /r]				486
-XADD		mem,reg64			[mr:	hle o64 0f c1 /r]			X64,SM,LOCK
-XADD		reg64,reg64			[mr:	o64 0f c1 /r]				X64
-XBTS		reg16,mem			[rm:	o16 0f a6 /r]				386,SW,UNDOC,ND
-XBTS		reg16,reg16			[rm:	o16 0f a6 /r]				386,UNDOC,ND
-XBTS		reg32,mem			[rm:	o32 0f a6 /r]				386,SD,UNDOC,ND
-XBTS		reg32,reg32			[rm:	o32 0f a6 /r]				386,UNDOC,ND
-XCHG		reg_ax,reg16			[-r:	o16 90+r]				8086
-XCHG		reg_eax,reg32na			[-r:	o32 90+r]				386
-XCHG		reg_rax,reg64			[-r:	o64 90+r]				X64
-XCHG		reg16,reg_ax			[r-:	o16 90+r]				8086
-XCHG		reg32na,reg_eax			[r-:	o32 90+r]				386
-XCHG		reg64,reg_rax			[r-:	o64 90+r]				X64
-; This must be NOLONG since opcode 90 is NOP, and in 64-bit mode
-; "xchg eax,eax" is *not* a NOP.
-XCHG		reg_eax,reg_eax			[--:	o32 90]					386,NOLONG
-XCHG		reg8,mem			[rm:	hlenl 86 /r]				8086,SM,LOCK
-XCHG		reg8,reg8			[rm:	86 /r]					8086
-XCHG		reg16,mem			[rm:	hlenl o16 87 /r]			8086,SM,LOCK
-XCHG		reg16,reg16			[rm:	o16 87 /r]				8086
-XCHG		reg32,mem			[rm:	hlenl o32 87 /r]			386,SM,LOCK
-XCHG		reg32,reg32			[rm:	o32 87 /r]				386
-XCHG		reg64,mem			[rm:	hlenl o64 87 /r]			X64,SM,LOCK
-XCHG		reg64,reg64			[rm:	o64 87 /r]				X64
-XCHG		mem,reg8			[mr:	hlenl 86 /r]				8086,SM,LOCK
-XCHG		reg8,reg8			[mr:	86 /r]					8086
-XCHG		mem,reg16			[mr:	hlenl o16 87 /r]			8086,SM,LOCK
-XCHG		reg16,reg16			[mr:	o16 87 /r]				8086
-XCHG		mem,reg32			[mr:	hlenl o32 87 /r]			386,SM,LOCK
-XCHG		reg32,reg32			[mr:	o32 87 /r]				386
-XCHG		mem,reg64			[mr:	hlenl o64 87 /r]			X64,SM,LOCK
-XCHG		reg64,reg64			[mr:	o64 87 /r]				X64
-XLATB		void				[	d7]					8086
-XLAT		void				[	d7]					8086
-XOR		mem,reg8			[mr:	hle 30 /r]				8086,SM,LOCK
-XOR		reg8,reg8			[mr:	30 /r]					8086
-XOR		mem,reg16			[mr:	hle o16 31 /r]				8086,SM,LOCK
-XOR		reg16,reg16			[mr:	o16 31 /r]				8086
-XOR		mem,reg32			[mr:	hle o32 31 /r]				386,SM,LOCK
-XOR		reg32,reg32			[mr:	o32 31 /r]				386
-XOR		mem,reg64			[mr:	hle o64 31 /r]				X64,SM,LOCK
-XOR		reg64,reg64			[mr:	o64 31 /r]				X64
-XOR		reg8,mem			[rm:	32 /r]					8086,SM
-XOR		reg8,reg8			[rm:	32 /r]					8086
-XOR		reg16,mem			[rm:	o16 33 /r]				8086,SM
-XOR		reg16,reg16			[rm:	o16 33 /r]				8086
-XOR		reg32,mem			[rm:	o32 33 /r]				386,SM
-XOR		reg32,reg32			[rm:	o32 33 /r]				386
-XOR		reg64,mem			[rm:	o64 33 /r]				X64,SM
-XOR		reg64,reg64			[rm:	o64 33 /r]				X64
-XOR		rm16,imm8			[mi:	hle o16 83 /6 ib,s]			8086,LOCK
-XOR		rm32,imm8			[mi:	hle o32 83 /6 ib,s]			386,LOCK
-XOR		rm64,imm8			[mi:	hle o64 83 /6 ib,s]			X64,LOCK
-XOR		reg_al,imm			[-i:	34 ib]					8086,SM
-XOR		reg_ax,sbyteword		[mi:	o16 83 /6 ib,s]				8086,SM,ND
-XOR		reg_ax,imm			[-i:	o16 35 iw]				8086,SM
-XOR		reg_eax,sbytedword		[mi:	o32 83 /6 ib,s]				386,SM,ND
-XOR		reg_eax,imm			[-i:	o32 35 id]				386,SM
-XOR		reg_rax,sbytedword		[mi:	o64 83 /6 ib,s]				X64,SM,ND
-XOR		reg_rax,imm			[-i:	o64 35 id,s]				X64,SM
-XOR		rm8,imm				[mi:	hle 80 /6 ib]				8086,SM,LOCK
-XOR		rm16,sbyteword			[mi:	hle o16 83 /6 ib,s]			8086,SM,LOCK,ND
-XOR		rm16,imm			[mi:	hle o16 81 /6 iw]			8086,SM,LOCK
-XOR		rm32,sbytedword			[mi:	hle o32 83 /6 ib,s]			386,SM,LOCK,ND
-XOR		rm32,imm			[mi:	hle o32 81 /6 id]			386,SM,LOCK
-XOR		rm64,sbytedword			[mi:	hle o64 83 /6 ib,s]			X64,SM,LOCK,ND
-XOR		rm64,imm			[mi:	hle o64 81 /6 id,s]			X64,SM,LOCK
-XOR		mem,imm8			[mi:	hle 80 /6 ib]				8086,SM,LOCK
-XOR		mem,sbyteword16			[mi:	hle o16 83 /6 ib,s]			8086,SM,LOCK,ND
-XOR		mem,imm16			[mi:	hle o16 81 /6 iw]			8086,SM,LOCK
-XOR		mem,sbytedword32		[mi:	hle o32 83 /6 ib,s]			386,SM,LOCK,ND
-XOR		mem,imm32			[mi:	hle o32 81 /6 id]			386,SM,LOCK
-XOR		rm8,imm				[mi:	hle 82 /6 ib]				8086,SM,LOCK,ND,NOLONG
-CMOVcc		reg16,mem			[rm:	o16 0f 40+c /r]				P6,SM
-CMOVcc		reg16,reg16			[rm:	o16 0f 40+c /r]				P6
-CMOVcc		reg32,mem			[rm:	o32 0f 40+c /r]				P6,SM
-CMOVcc		reg32,reg32			[rm:	o32 0f 40+c /r]				P6
-CMOVcc		reg64,mem			[rm:	o64 0f 40+c /r]				X64,SM
-CMOVcc		reg64,reg64			[rm:	o64 0f 40+c /r]				X64
-Jcc		imm|near			[i:	odf 0f 80+c rel]			386,BND
-Jcc		imm16|near			[i:	o16 0f 80+c rel]			386,NOLONG,BND
-Jcc		imm32|near			[i:	o32 0f 80+c rel]			386,NOLONG,BND
-Jcc		imm64|near			[i:	o64nw 0f 80+c rel]			X64,BND
-Jcc		imm|short			[i:	70+c rel8]				8086,ND,BND
-Jcc		imm				[i:	jcc8 70+c rel8]				8086,ND,BND
-Jcc		imm				[i:	0f 80+c rel]				386,ND,BND
-Jcc		imm				[i:	71+c jlen e9 rel]			8086,ND,BND
-Jcc		imm				[i:	70+c rel8]				8086,BND
-
-SETcc		mem				[m:	0f 90+c /0]				386,SB
-SETcc		reg8				[m:	0f 90+c /0]				386
-
-;# Katmai Streaming SIMD instructions (SSE -- a.k.a. KNI, XMM, MMX2)
-ADDPS		xmmreg,xmmrm128			[rm:	np 0f 58 /r]				KATMAI,SSE
-ADDSS		xmmreg,xmmrm32			[rm:	f3 0f 58 /r]				KATMAI,SSE
-ANDNPS		xmmreg,xmmrm128			[rm:	np 0f 55 /r]				KATMAI,SSE
-ANDPS		xmmreg,xmmrm128			[rm:	np 0f 54 /r]				KATMAI,SSE
-CMPEQPS		xmmreg,xmmrm128			[rm:	np 0f c2 /r 00]				KATMAI,SSE
-CMPEQSS		xmmreg,xmmrm32			[rm:	f3 0f c2 /r 00]				KATMAI,SSE
-CMPLEPS		xmmreg,xmmrm128			[rm:	np 0f c2 /r 02]				KATMAI,SSE
-CMPLESS		xmmreg,xmmrm32			[rm:	f3 0f c2 /r 02]				KATMAI,SSE
-CMPLTPS		xmmreg,xmmrm128			[rm:	np 0f c2 /r 01]				KATMAI,SSE
-CMPLTSS		xmmreg,xmmrm32			[rm:	f3 0f c2 /r 01]				KATMAI,SSE
-CMPNEQPS	xmmreg,xmmrm128			[rm:	np 0f c2 /r 04]				KATMAI,SSE
-CMPNEQSS	xmmreg,xmmrm32			[rm:	f3 0f c2 /r 04]				KATMAI,SSE
-CMPNLEPS	xmmreg,xmmrm128			[rm:	np 0f c2 /r 06]				KATMAI,SSE
-CMPNLESS	xmmreg,xmmrm32			[rm:	f3 0f c2 /r 06]				KATMAI,SSE
-CMPNLTPS	xmmreg,xmmrm128			[rm:	np 0f c2 /r 05]				KATMAI,SSE
-CMPNLTSS	xmmreg,xmmrm32			[rm:	f3 0f c2 /r 05]				KATMAI,SSE
-CMPORDPS	xmmreg,xmmrm128			[rm:	np 0f c2 /r 07]				KATMAI,SSE
-CMPORDSS	xmmreg,xmmrm32			[rm:	f3 0f c2 /r 07]				KATMAI,SSE
-CMPUNORDPS	xmmreg,xmmrm128			[rm:	np 0f c2 /r 03]				KATMAI,SSE
-CMPUNORDSS	xmmreg,xmmrm32			[rm:	f3 0f c2 /r 03]				KATMAI,SSE
-; CMPPS/CMPSS must come after the specific ops; that way the disassembler will find the
-; specific ops first and only disassemble illegal ones as cmpps/cmpss.
-CMPPS		xmmreg,mem,imm			[rmi:	np 0f c2 /r ib,u]			KATMAI,SSE,SB,AR2
-CMPPS		xmmreg,xmmreg,imm		[rmi:	np 0f c2 /r ib,u]			KATMAI,SSE,SB,AR2
-CMPSS		xmmreg,mem,imm			[rmi:	f3 0f c2 /r ib,u]			KATMAI,SSE,SB,AR2
-CMPSS		xmmreg,xmmreg,imm		[rmi:	f3 0f c2 /r ib,u]			KATMAI,SSE,SB,AR2
-COMISS		xmmreg,xmmrm32			[rm:	np 0f 2f /r]				KATMAI,SSE
-CVTPI2PS	xmmreg,mmxrm64			[rm:	np 0f 2a /r]				KATMAI,SSE,MMX
-CVTPS2PI	mmxreg,xmmrm64			[rm:	np 0f 2d /r]				KATMAI,SSE,MMX
-CVTSI2SS	xmmreg,mem			[rm:	f3 0f 2a /r]				KATMAI,SSE,SD,AR1,ND
-CVTSI2SS	xmmreg,rm32			[rm:	f3 0f 2a /r]				KATMAI,SSE,SD,AR1
-CVTSI2SS	xmmreg,rm64			[rm:	o64 f3 0f 2a /r]			X64,SSE,SQ,AR1
-CVTSS2SI	reg32,xmmreg			[rm:	f3 0f 2d /r]				KATMAI,SSE,SD,AR1
-CVTSS2SI	reg32,mem			[rm:	f3 0f 2d /r]				KATMAI,SSE,SD,AR1
-CVTSS2SI	reg64,xmmreg			[rm:	o64 f3 0f 2d /r]			X64,SSE,SD,AR1
-CVTSS2SI	reg64,mem			[rm:	o64 f3 0f 2d /r]			X64,SSE,SD,AR1
-CVTTPS2PI	mmxreg,xmmrm			[rm:	np 0f 2c /r]				KATMAI,SSE,MMX,SQ
-CVTTSS2SI	reg32,xmmrm			[rm:	f3 0f 2c /r]				KATMAI,SSE,SD,AR1
-CVTTSS2SI	reg64,xmmrm			[rm:	o64 f3 0f 2c /r]			X64,SSE,SD,AR1
-DIVPS		xmmreg,xmmrm128			[rm:	np 0f 5e /r]				KATMAI,SSE
-DIVSS		xmmreg,xmmrm32			[rm:	f3 0f 5e /r]				KATMAI,SSE
-LDMXCSR		mem32				[m:	np 0f ae /2]				KATMAI,SSE
-MAXPS		xmmreg,xmmrm128			[rm:	np 0f 5f /r]				KATMAI,SSE
-MAXSS		xmmreg,xmmrm32			[rm:	f3 0f 5f /r]				KATMAI,SSE
-MINPS		xmmreg,xmmrm128			[rm:	np 0f 5d /r]				KATMAI,SSE
-MINSS		xmmreg,xmmrm32			[rm:	f3 0f 5d /r]				KATMAI,SSE
-MOVAPS		xmmreg,xmmrm128			[rm:	np 0f 28 /r]				KATMAI,SSE
-MOVAPS		xmmrm128,xmmreg			[mr:	np 0f 29 /r]				KATMAI,SSE
-MOVHPS		xmmreg,mem64			[rm:	np 0f 16 /r]				KATMAI,SSE
-MOVHPS		mem64,xmmreg			[mr:	np 0f 17 /r]				KATMAI,SSE
-MOVLHPS		xmmreg,xmmreg			[rm:	np 0f 16 /r]				KATMAI,SSE
-MOVLPS		xmmreg,mem64			[rm:	np 0f 12 /r]				KATMAI,SSE
-MOVLPS		mem64,xmmreg			[mr:	np 0f 13 /r]				KATMAI,SSE
-MOVHLPS		xmmreg,xmmreg			[rm:	np 0f 12 /r]				KATMAI,SSE
-MOVMSKPS	reg32,xmmreg			[rm:	np 0f 50 /r]				KATMAI,SSE
-MOVMSKPS	reg64,xmmreg			[rm:	np o64 0f 50 /r]			X64,SSE
-MOVNTPS		mem128,xmmreg			[mr:	np 0f 2b /r]				KATMAI,SSE
-MOVSS		xmmreg,xmmrm32			[rm:	f3 0f 10 /r]				KATMAI,SSE
-MOVSS		mem32,xmmreg			[mr:	f3 0f 11 /r]				KATMAI,SSE
-MOVSS		xmmreg,xmmreg			[rm:	f3 0f 10 /r]				KATMAI,SSE
-MOVUPS		xmmreg,xmmrm128			[rm:	np 0f 10 /r]				KATMAI,SSE
-MOVUPS		xmmrm128,xmmreg			[mr:	np 0f 11 /r]				KATMAI,SSE
-MULPS		xmmreg,xmmrm128			[rm:	np 0f 59 /r]				KATMAI,SSE
-MULSS		xmmreg,xmmrm32			[rm:	f3 0f 59 /r]				KATMAI,SSE
-ORPS		xmmreg,xmmrm128			[rm:	np 0f 56 /r]				KATMAI,SSE
-RCPPS		xmmreg,xmmrm128			[rm:	np 0f 53 /r]				KATMAI,SSE
-RCPSS		xmmreg,xmmrm32			[rm:	f3 0f 53 /r]				KATMAI,SSE
-RSQRTPS		xmmreg,xmmrm128			[rm:	np 0f 52 /r]				KATMAI,SSE
-RSQRTSS		xmmreg,xmmrm32			[rm:	f3 0f 52 /r]				KATMAI,SSE
-SHUFPS		xmmreg,xmmrm128,imm8		[rmi:	np 0f c6 /r ib,u]			KATMAI,SSE
-SQRTPS		xmmreg,xmmrm128			[rm:	np 0f 51 /r]				KATMAI,SSE
-SQRTSS		xmmreg,xmmrm32			[rm:	f3 0f 51 /r]				KATMAI,SSE
-STMXCSR		mem32				[m:	np 0f ae /3]				KATMAI,SSE
-SUBPS		xmmreg,xmmrm128			[rm:	np 0f 5c /r]				KATMAI,SSE
-SUBSS		xmmreg,xmmrm32			[rm:	f3 0f 5c /r]				KATMAI,SSE
-UCOMISS		xmmreg,xmmrm32			[rm:	np 0f 2e /r]				KATMAI,SSE
-UNPCKHPS	xmmreg,xmmrm128			[rm:	np 0f 15 /r]				KATMAI,SSE
-UNPCKLPS	xmmreg,xmmrm128			[rm:	np 0f 14 /r]				KATMAI,SSE
-XORPS		xmmreg,xmmrm128			[rm:	np 0f 57 /r]				KATMAI,SSE
-
-;# Introduced in Deschutes but necessary for SSE support
-FXRSTOR		mem				[m:	np 0f ae /1]				P6,SSE,FPU
-FXRSTOR64	mem				[m:	o64 np 0f ae /1]			X64,SSE,FPU
-FXSAVE		mem				[m:	np 0f ae /0]				P6,SSE,FPU
-FXSAVE64	mem				[m:	o64 np 0f ae /0]			X64,SSE,FPU
-
-;# XSAVE group (AVX and extended state)
-; Introduced in late Penryn ... we really need to clean up the handling
-; of CPU feature bits.
-XGETBV		void				[	0f 01 d0]				NEHALEM
-XSETBV		void				[	0f 01 d1]				NEHALEM,PRIV
-XSAVE		mem				[m:	np 0f ae /4]				NEHALEM
-XSAVE64		mem				[m:	o64 np 0f ae /4]			LONG,NEHALEM
-XSAVEC		mem				[m:	np 0f c7 /4]				FUTURE
-XSAVEC64	mem				[m:	o64 np 0f c7 /4]			LONG,FUTURE
-XSAVEOPT	mem				[m:	np 0f ae /6]				FUTURE
-XSAVEOPT64	mem				[m:	o64 np 0f ae /6]			LONG,FUTURE
-XSAVES		mem				[m:	np 0f c7 /5]				FUTURE
-XSAVES64	mem				[m:	o64 np 0f c7 /5]			LONG,FUTURE
-XRSTOR		mem				[m:	np 0f ae /5]				NEHALEM
-XRSTOR64	mem				[m:	o64 np 0f ae /5]			LONG,NEHALEM
-XRSTORS		mem				[m:	np 0f c7 /3]				FUTURE
-XRSTORS64	mem				[m:	o64 np 0f c7 /3]			LONG,FUTURE
-
-; These instructions are not SSE-specific; they are
-;# Generic memory operations
-; and work even if CR4.OSFXFR == 0
-PREFETCHNTA	mem8				[m:	0f 18 /0]				KATMAI
-PREFETCHT0	mem8				[m:	0f 18 /1]				KATMAI
-PREFETCHT1	mem8				[m:	0f 18 /2]				KATMAI
-PREFETCHT2	mem8				[m:	0f 18 /3]				KATMAI
-SFENCE		void				[	np 0f ae f8]				KATMAI
-
-;# New MMX instructions introduced in Katmai
-MASKMOVQ	mmxreg,mmxreg			[rm:	np 0f f7 /r]				KATMAI,MMX
-MOVNTQ		mem,mmxreg			[mr:	np 0f e7 /r]				KATMAI,MMX,SQ
-PAVGB		mmxreg,mmxrm			[rm:	np o64nw 0f e0 /r]			KATMAI,MMX,SQ
-PAVGW		mmxreg,mmxrm			[rm:	np o64nw 0f e3 /r]			KATMAI,MMX,SQ
-PEXTRW		reg32,mmxreg,imm		[rmi:	np 0f c5 /r ib,u]			KATMAI,MMX,SB,AR2
-; PINSRW is documented as using a reg32, but it's really using only 16 bit
-; -- accept either, but be truthful in disassembly
-PINSRW		mmxreg,mem,imm			[rmi:	np 0f c4 /r ib,u]			KATMAI,MMX,SB,AR2
-PINSRW		mmxreg,rm16,imm			[rmi:	np 0f c4 /r ib,u]			KATMAI,MMX,SB,AR2
-PINSRW		mmxreg,reg32,imm		[rmi:	np 0f c4 /r ib,u]			KATMAI,MMX,SB,AR2
-PMAXSW		mmxreg,mmxrm			[rm:	np o64nw 0f ee /r]			KATMAI,MMX,SQ
-PMAXUB		mmxreg,mmxrm			[rm:	np o64nw 0f de /r]			KATMAI,MMX,SQ
-PMINSW		mmxreg,mmxrm			[rm:	np o64nw 0f ea /r]			KATMAI,MMX,SQ
-PMINUB		mmxreg,mmxrm			[rm:	np o64nw 0f da /r]			KATMAI,MMX,SQ
-PMOVMSKB	reg32,mmxreg			[rm:	np 0f d7 /r]				KATMAI,MMX
-PMULHUW		mmxreg,mmxrm			[rm:	np o64nw 0f e4 /r]			KATMAI,MMX,SQ
-PSADBW		mmxreg,mmxrm			[rm:	np o64nw 0f f6 /r]			KATMAI,MMX,SQ
-PSHUFW		mmxreg,mmxrm,imm		[rmi:	np o64nw 0f 70 /r ib]			KATMAI,MMX,SM2,SB,AR2
-
-;# AMD Enhanced 3DNow! (Athlon) instructions
-PF2IW		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r 1c]			PENT,3DNOW,SQ
-PFNACC		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r 8a]			PENT,3DNOW,SQ
-PFPNACC		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r 8e]			PENT,3DNOW,SQ
-PI2FW		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r 0c]			PENT,3DNOW,SQ
-PSWAPD		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r bb]			PENT,3DNOW,SQ
-
-;# Willamette SSE2 Cacheability Instructions
-MASKMOVDQU	xmmreg,xmmreg			[rm:	66 0f f7 /r]				WILLAMETTE,SSE2
-; CLFLUSH needs its own feature flag implemented one day
-CLFLUSH		mem				[m:	np 0f ae /7]				WILLAMETTE,SSE2
-MOVNTDQ		mem,xmmreg			[mr:	66 0f e7 /r]				WILLAMETTE,SSE2,SO
-MOVNTI		mem,reg32			[mr:	np 0f c3 /r]				WILLAMETTE,SD
-MOVNTI		mem,reg64			[mr:	o64 np 0f c3 /r]			X64,SQ
-MOVNTPD		mem,xmmreg			[mr:	66 0f 2b /r]				WILLAMETTE,SSE2,SO
-LFENCE		void				[	np 0f ae e8]				WILLAMETTE,SSE2
-MFENCE		void				[	np 0f ae f0]				WILLAMETTE,SSE2
-
-;# Willamette MMX instructions (SSE2 SIMD Integer Instructions)
-MOVD		mem,xmmreg			[mr:	66 norexw 0f 7e /r]			WILLAMETTE,SSE2,SD
-MOVD		xmmreg,mem			[rm:	66 norexw 0f 6e /r]			WILLAMETTE,SSE2,SD
-MOVD		xmmreg,rm32			[rm:	66 norexw 0f 6e /r]			WILLAMETTE,SSE2
-MOVD		rm32,xmmreg			[mr:	66 norexw 0f 7e /r]			WILLAMETTE,SSE2
-MOVDQA		xmmreg,xmmreg			[rm:	66 0f 6f /r]				WILLAMETTE,SSE2
-MOVDQA		mem,xmmreg			[mr:	66 0f 7f /r]				WILLAMETTE,SSE2,SO
-MOVDQA		xmmreg,mem			[rm:	66 0f 6f /r]				WILLAMETTE,SSE2,SO
-MOVDQA		xmmreg,xmmreg			[mr:	66 0f 7f /r]				WILLAMETTE,SSE2
-MOVDQU		xmmreg,xmmreg			[rm:	f3 0f 6f /r]				WILLAMETTE,SSE2
-MOVDQU		mem,xmmreg			[mr:	f3 0f 7f /r]				WILLAMETTE,SSE2,SO
-MOVDQU		xmmreg,mem			[rm:	f3 0f 6f /r]				WILLAMETTE,SSE2,SO
-MOVDQU		xmmreg,xmmreg			[mr:	f3 0f 7f /r]				WILLAMETTE,SSE2
-MOVDQ2Q		mmxreg,xmmreg			[rm:	f2 0f d6 /r]				WILLAMETTE,SSE2
-MOVQ		xmmreg,xmmreg			[rm:	f3 0f 7e /r]				WILLAMETTE,SSE2
-MOVQ		xmmreg,xmmreg			[mr:	66 0f d6 /r]				WILLAMETTE,SSE2
-MOVQ		mem,xmmreg			[mr:	66 0f d6 /r]				WILLAMETTE,SSE2,SQ
-MOVQ		xmmreg,mem			[rm:	f3 0f 7e /r]				WILLAMETTE,SSE2,SQ
-MOVQ		xmmreg,rm64			[rm:	66 o64 0f 6e /r]			X64,SSE2
-MOVQ		rm64,xmmreg			[mr:	66 o64 0f 7e /r]			X64,SSE2
-MOVQ2DQ		xmmreg,mmxreg			[rm:	f3 0f d6 /r]				WILLAMETTE,SSE2
-PACKSSWB	xmmreg,xmmrm			[rm:	66 0f 63 /r]				WILLAMETTE,SSE2,SO
-PACKSSDW	xmmreg,xmmrm			[rm:	66 0f 6b /r]				WILLAMETTE,SSE2,SO
-PACKUSWB	xmmreg,xmmrm			[rm:	66 0f 67 /r]				WILLAMETTE,SSE2,SO
-PADDB		xmmreg,xmmrm			[rm:	66 0f fc /r]				WILLAMETTE,SSE2,SO
-PADDW		xmmreg,xmmrm			[rm:	66 0f fd /r]				WILLAMETTE,SSE2,SO
-PADDD		xmmreg,xmmrm			[rm:	66 0f fe /r]				WILLAMETTE,SSE2,SO
-PADDQ		mmxreg,mmxrm			[rm:	np 0f d4 /r]				WILLAMETTE,MMX,SQ
-PADDQ		xmmreg,xmmrm			[rm:	66 0f d4 /r]				WILLAMETTE,SSE2,SO
-PADDSB		xmmreg,xmmrm			[rm:	66 0f ec /r]				WILLAMETTE,SSE2,SO
-PADDSW		xmmreg,xmmrm			[rm:	66 0f ed /r]				WILLAMETTE,SSE2,SO
-PADDUSB		xmmreg,xmmrm			[rm:	66 0f dc /r]				WILLAMETTE,SSE2,SO
-PADDUSW		xmmreg,xmmrm			[rm:	66 0f dd /r]				WILLAMETTE,SSE2,SO
-PAND		xmmreg,xmmrm			[rm:	66 0f db /r]				WILLAMETTE,SSE2,SO
-PANDN		xmmreg,xmmrm			[rm:	66 0f df /r]				WILLAMETTE,SSE2,SO
-PAVGB		xmmreg,xmmrm			[rm:	66 0f e0 /r]				WILLAMETTE,SSE2,SO
-PAVGW		xmmreg,xmmrm			[rm:	66 0f e3 /r]				WILLAMETTE,SSE2,SO
-PCMPEQB		xmmreg,xmmrm			[rm:	66 0f 74 /r]				WILLAMETTE,SSE2,SO
-PCMPEQW		xmmreg,xmmrm			[rm:	66 0f 75 /r]				WILLAMETTE,SSE2,SO
-PCMPEQD		xmmreg,xmmrm			[rm:	66 0f 76 /r]				WILLAMETTE,SSE2,SO
-PCMPGTB		xmmreg,xmmrm			[rm:	66 0f 64 /r]				WILLAMETTE,SSE2,SO
-PCMPGTW		xmmreg,xmmrm			[rm:	66 0f 65 /r]				WILLAMETTE,SSE2,SO
-PCMPGTD		xmmreg,xmmrm			[rm:	66 0f 66 /r]				WILLAMETTE,SSE2,SO
-PEXTRW		reg32,xmmreg,imm		[rmi:	66 0f c5 /r ib,u]			WILLAMETTE,SSE2,SB,AR2
-PINSRW		xmmreg,reg16,imm		[rmi:	66 0f c4 /r ib,u]			WILLAMETTE,SSE2,SB,AR2
-PINSRW		xmmreg,reg32,imm		[rmi:	66 0f c4 /r ib,u]			WILLAMETTE,SSE2,SB,AR2,ND
-PINSRW		xmmreg,mem,imm			[rmi:	66 0f c4 /r ib,u]			WILLAMETTE,SSE2,SB,AR2
-PINSRW		xmmreg,mem16,imm		[rmi:	66 0f c4 /r ib,u]			WILLAMETTE,SSE2,SB,AR2
-PMADDWD		xmmreg,xmmrm			[rm:	66 0f f5 /r]				WILLAMETTE,SSE2,SO
-PMAXSW		xmmreg,xmmrm			[rm:	66 0f ee /r]				WILLAMETTE,SSE2,SO
-PMAXUB		xmmreg,xmmrm			[rm:	66 0f de /r]				WILLAMETTE,SSE2,SO
-PMINSW		xmmreg,xmmrm			[rm:	66 0f ea /r]				WILLAMETTE,SSE2,SO
-PMINUB		xmmreg,xmmrm			[rm:	66 0f da /r]				WILLAMETTE,SSE2,SO
-PMOVMSKB	reg32,xmmreg			[rm:	66 0f d7 /r]				WILLAMETTE,SSE2
-PMULHUW		xmmreg,xmmrm			[rm:	66 0f e4 /r]				WILLAMETTE,SSE2,SO
-PMULHW		xmmreg,xmmrm			[rm:	66 0f e5 /r]				WILLAMETTE,SSE2,SO
-PMULLW		xmmreg,xmmrm			[rm:	66 0f d5 /r]				WILLAMETTE,SSE2,SO
-PMULUDQ		mmxreg,mmxrm			[rm:	np o64nw 0f f4 /r]			WILLAMETTE,SSE2,SO
-PMULUDQ		xmmreg,xmmrm			[rm:	66 0f f4 /r]				WILLAMETTE,SSE2,SO
-POR		xmmreg,xmmrm			[rm:	66 0f eb /r]				WILLAMETTE,SSE2,SO
-PSADBW		xmmreg,xmmrm			[rm:	66 0f f6 /r]				WILLAMETTE,SSE2,SO
-PSHUFD		xmmreg,xmmreg,imm		[rmi:	66 0f 70 /r ib]				WILLAMETTE,SSE2,SB,AR2
-PSHUFD		xmmreg,mem,imm			[rmi:	66 0f 70 /r ib]				WILLAMETTE,SSE2,SM2,SB,AR2
-PSHUFHW		xmmreg,xmmreg,imm		[rmi:	f3 0f 70 /r ib]				WILLAMETTE,SSE2,SB,AR2
-PSHUFHW		xmmreg,mem,imm			[rmi:	f3 0f 70 /r ib]				WILLAMETTE,SSE2,SM2,SB,AR2
-PSHUFLW		xmmreg,xmmreg,imm		[rmi:	f2 0f 70 /r ib]				WILLAMETTE,SSE2,SB,AR2
-PSHUFLW		xmmreg,mem,imm			[rmi:	f2 0f 70 /r ib]				WILLAMETTE,SSE2,SM2,SB,AR2
-PSLLDQ		xmmreg,imm			[mi:	66 0f 73 /7 ib,u]			WILLAMETTE,SSE2,SB,AR1
-PSLLW		xmmreg,xmmrm			[rm:	66 0f f1 /r]				WILLAMETTE,SSE2,SO
-PSLLW		xmmreg,imm			[mi:	66 0f 71 /6 ib,u]			WILLAMETTE,SSE2,SB,AR1
-PSLLD		xmmreg,xmmrm			[rm:	66 0f f2 /r]				WILLAMETTE,SSE2,SO
-PSLLD		xmmreg,imm			[mi:	66 0f 72 /6 ib,u]			WILLAMETTE,SSE2,SB,AR1
-PSLLQ		xmmreg,xmmrm			[rm:	66 0f f3 /r]				WILLAMETTE,SSE2,SO
-PSLLQ		xmmreg,imm			[mi:	66 0f 73 /6 ib,u]			WILLAMETTE,SSE2,SB,AR1
-PSRAW		xmmreg,xmmrm			[rm:	66 0f e1 /r]				WILLAMETTE,SSE2,SO
-PSRAW		xmmreg,imm			[mi:	66 0f 71 /4 ib,u]			WILLAMETTE,SSE2,SB,AR1
-PSRAD		xmmreg,xmmrm			[rm:	66 0f e2 /r]				WILLAMETTE,SSE2,SO
-PSRAD		xmmreg,imm			[mi:	66 0f 72 /4 ib,u]			WILLAMETTE,SSE2,SB,AR1
-PSRLDQ		xmmreg,imm			[mi:	66 0f 73 /3 ib,u]			WILLAMETTE,SSE2,SB,AR1
-PSRLW		xmmreg,xmmrm			[rm:	66 0f d1 /r]				WILLAMETTE,SSE2,SO
-PSRLW		xmmreg,imm			[mi:	66 0f 71 /2 ib,u]			WILLAMETTE,SSE2,SB,AR1
-PSRLD		xmmreg,xmmrm			[rm:	66 0f d2 /r]				WILLAMETTE,SSE2,SO
-PSRLD		xmmreg,imm			[mi:	66 0f 72 /2 ib,u]			WILLAMETTE,SSE2,SB,AR1
-PSRLQ		xmmreg,xmmrm			[rm:	66 0f d3 /r]				WILLAMETTE,SSE2,SO
-PSRLQ		xmmreg,imm			[mi:	66 0f 73 /2 ib,u]			WILLAMETTE,SSE2,SB,AR1
-PSUBB		xmmreg,xmmrm			[rm:	66 0f f8 /r]				WILLAMETTE,SSE2,SO
-PSUBW		xmmreg,xmmrm			[rm:	66 0f f9 /r]				WILLAMETTE,SSE2,SO
-PSUBD		xmmreg,xmmrm			[rm:	66 0f fa /r]				WILLAMETTE,SSE2,SO
-PSUBQ		mmxreg,mmxrm			[rm:	np o64nw 0f fb /r]			WILLAMETTE,SSE2,SO
-PSUBQ		xmmreg,xmmrm			[rm:	66 0f fb /r]				WILLAMETTE,SSE2,SO
-PSUBSB		xmmreg,xmmrm			[rm:	66 0f e8 /r]				WILLAMETTE,SSE2,SO
-PSUBSW		xmmreg,xmmrm			[rm:	66 0f e9 /r]				WILLAMETTE,SSE2,SO
-PSUBUSB		xmmreg,xmmrm			[rm:	66 0f d8 /r]				WILLAMETTE,SSE2,SO
-PSUBUSW		xmmreg,xmmrm			[rm:	66 0f d9 /r]				WILLAMETTE,SSE2,SO
-PUNPCKHBW	xmmreg,xmmrm			[rm:	66 0f 68 /r]				WILLAMETTE,SSE2,SO
-PUNPCKHWD	xmmreg,xmmrm			[rm:	66 0f 69 /r]				WILLAMETTE,SSE2,SO
-PUNPCKHDQ	xmmreg,xmmrm			[rm:	66 0f 6a /r]				WILLAMETTE,SSE2,SO
-PUNPCKHQDQ	xmmreg,xmmrm			[rm:	66 0f 6d /r]				WILLAMETTE,SSE2,SO
-PUNPCKLBW	xmmreg,xmmrm			[rm:	66 0f 60 /r]				WILLAMETTE,SSE2,SO
-PUNPCKLWD	xmmreg,xmmrm			[rm:	66 0f 61 /r]				WILLAMETTE,SSE2,SO
-PUNPCKLDQ	xmmreg,xmmrm			[rm:	66 0f 62 /r]				WILLAMETTE,SSE2,SO
-PUNPCKLQDQ	xmmreg,xmmrm			[rm:	66 0f 6c /r]				WILLAMETTE,SSE2,SO
-PXOR		xmmreg,xmmrm			[rm:	66 0f ef /r]				WILLAMETTE,SSE2,SO
-
-;# Willamette Streaming SIMD instructions (SSE2)
-ADDPD		xmmreg,xmmrm			[rm:	66 0f 58 /r]				WILLAMETTE,SSE2,SO
-ADDSD		xmmreg,xmmrm			[rm:	f2 0f 58 /r]				WILLAMETTE,SSE2,SQ
-ANDNPD		xmmreg,xmmrm			[rm:	66 0f 55 /r]				WILLAMETTE,SSE2,SO
-ANDPD		xmmreg,xmmrm			[rm:	66 0f 54 /r]				WILLAMETTE,SSE2,SO
-CMPEQPD		xmmreg,xmmrm			[rm:	66 0f c2 /r 00]				WILLAMETTE,SSE2,SO
-CMPEQSD		xmmreg,xmmrm			[rm:	f2 0f c2 /r 00]				WILLAMETTE,SSE2
-CMPLEPD		xmmreg,xmmrm			[rm:	66 0f c2 /r 02]				WILLAMETTE,SSE2,SO
-CMPLESD		xmmreg,xmmrm			[rm:	f2 0f c2 /r 02]				WILLAMETTE,SSE2
-CMPLTPD		xmmreg,xmmrm			[rm:	66 0f c2 /r 01]				WILLAMETTE,SSE2,SO
-CMPLTSD		xmmreg,xmmrm			[rm:	f2 0f c2 /r 01]				WILLAMETTE,SSE2
-CMPNEQPD	xmmreg,xmmrm			[rm:	66 0f c2 /r 04]				WILLAMETTE,SSE2,SO
-CMPNEQSD	xmmreg,xmmrm			[rm:	f2 0f c2 /r 04]				WILLAMETTE,SSE2
-CMPNLEPD	xmmreg,xmmrm			[rm:	66 0f c2 /r 06]				WILLAMETTE,SSE2,SO
-CMPNLESD	xmmreg,xmmrm			[rm:	f2 0f c2 /r 06]				WILLAMETTE,SSE2
-CMPNLTPD	xmmreg,xmmrm			[rm:	66 0f c2 /r 05]				WILLAMETTE,SSE2,SO
-CMPNLTSD	xmmreg,xmmrm			[rm:	f2 0f c2 /r 05]				WILLAMETTE,SSE2
-CMPORDPD	xmmreg,xmmrm			[rm:	66 0f c2 /r 07]				WILLAMETTE,SSE2,SO
-CMPORDSD	xmmreg,xmmrm			[rm:	f2 0f c2 /r 07]				WILLAMETTE,SSE2
-CMPUNORDPD	xmmreg,xmmrm			[rm:	66 0f c2 /r 03]				WILLAMETTE,SSE2,SO
-CMPUNORDSD	xmmreg,xmmrm			[rm:	f2 0f c2 /r 03]				WILLAMETTE,SSE2
-; CMPPD/CMPSD must come after the specific ops; that way the disassembler will find the
-; specific ops first and only disassemble illegal ones as cmppd/cmpsd.
-CMPPD		xmmreg,xmmrm128,imm8		[rmi:	66 0f c2 /r ib,u]			WILLAMETTE,SSE2
-CMPSD		xmmreg,xmmrm128,imm8		[rmi:	f2 0f c2 /r ib,u]			WILLAMETTE,SSE2
-COMISD		xmmreg,xmmrm			[rm:	66 0f 2f /r]				WILLAMETTE,SSE2
-CVTDQ2PD	xmmreg,xmmrm			[rm:	f3 0f e6 /r]				WILLAMETTE,SSE2,SQ
-CVTDQ2PS	xmmreg,xmmrm			[rm:	np 0f 5b /r]				WILLAMETTE,SSE2,SO
-CVTPD2DQ	xmmreg,xmmrm			[rm:	f2 0f e6 /r]				WILLAMETTE,SSE2,SO
-CVTPD2PI	mmxreg,xmmrm			[rm:	66 0f 2d /r]				WILLAMETTE,SSE2,SO
-CVTPD2PS	xmmreg,xmmrm			[rm:	66 0f 5a /r]				WILLAMETTE,SSE2,SO
-CVTPI2PD	xmmreg,mmxrm			[rm:	66 0f 2a /r]				WILLAMETTE,SSE2,SQ
-CVTPS2DQ	xmmreg,xmmrm			[rm:	66 0f 5b /r]				WILLAMETTE,SSE2,SO
-CVTPS2PD	xmmreg,xmmrm			[rm:	np 0f 5a /r]				WILLAMETTE,SSE2,SQ
-CVTSD2SI	reg32,xmmreg			[rm:	norexw f2 0f 2d /r]			WILLAMETTE,SSE2,SQ,AR1
-CVTSD2SI	reg32,mem			[rm:	norexw f2 0f 2d /r]			WILLAMETTE,SSE2,SQ,AR1
-CVTSD2SI	reg64,xmmreg			[rm:	o64 f2 0f 2d /r]			X64,SSE2,SQ,AR1
-CVTSD2SI	reg64,mem			[rm:	o64 f2 0f 2d /r]			X64,SSE2,SQ,AR1
-CVTSD2SS	xmmreg,xmmrm			[rm:	f2 0f 5a /r]				WILLAMETTE,SSE2,SQ
-CVTSI2SD	xmmreg,mem			[rm:	f2 0f 2a /r]				WILLAMETTE,SSE2,SD,AR1,ND
-CVTSI2SD	xmmreg,rm32			[rm:	norexw f2 0f 2a /r]			WILLAMETTE,SSE2,SD,AR1
-CVTSI2SD	xmmreg,rm64			[rm:	o64 f2 0f 2a /r]			X64,SSE2,SQ,AR1
-CVTSS2SD	xmmreg,xmmrm			[rm:	f3 0f 5a /r]				WILLAMETTE,SSE2,SD
-CVTTPD2PI	mmxreg,xmmrm			[rm:	66 0f 2c /r]				WILLAMETTE,SSE2,SO
-CVTTPD2DQ	xmmreg,xmmrm			[rm:	66 0f e6 /r]				WILLAMETTE,SSE2,SO
-CVTTPS2DQ	xmmreg,xmmrm			[rm:	f3 0f 5b /r]				WILLAMETTE,SSE2,SO
-CVTTSD2SI	reg32,xmmreg			[rm:	norexw f2 0f 2c /r]			WILLAMETTE,SSE2,SQ,AR1
-CVTTSD2SI	reg32,mem			[rm:	norexw f2 0f 2c /r]			WILLAMETTE,SSE2,SQ,AR1
-CVTTSD2SI	reg64,xmmreg			[rm:	o64 f2 0f 2c /r]			X64,SSE2,SQ,AR1
-CVTTSD2SI	reg64,mem			[rm:	o64 f2 0f 2c /r]			X64,SSE2,SQ,AR1
-DIVPD		xmmreg,xmmrm			[rm:	66 0f 5e /r]				WILLAMETTE,SSE2,SO
-DIVSD		xmmreg,xmmrm			[rm:	f2 0f 5e /r]				WILLAMETTE,SSE2
-MAXPD		xmmreg,xmmrm			[rm:	66 0f 5f /r]				WILLAMETTE,SSE2,SO
-MAXSD		xmmreg,xmmrm			[rm:	f2 0f 5f /r]				WILLAMETTE,SSE2
-MINPD		xmmreg,xmmrm			[rm:	66 0f 5d /r]				WILLAMETTE,SSE2,SO
-MINSD		xmmreg,xmmrm			[rm:	f2 0f 5d /r]				WILLAMETTE,SSE2
-MOVAPD		xmmreg,xmmreg			[rm:	66 0f 28 /r]				WILLAMETTE,SSE2
-MOVAPD		xmmreg,xmmreg			[mr:	66 0f 29 /r]				WILLAMETTE,SSE2
-MOVAPD		mem,xmmreg			[mr:	66 0f 29 /r]				WILLAMETTE,SSE2,SO
-MOVAPD		xmmreg,mem			[rm:	66 0f 28 /r]				WILLAMETTE,SSE2,SO
-MOVHPD		mem,xmmreg			[mr:	66 0f 17 /r]				WILLAMETTE,SSE2
-MOVHPD		xmmreg,mem			[rm:	66 0f 16 /r]				WILLAMETTE,SSE2
-MOVLPD		mem64,xmmreg			[mr:	66 0f 13 /r]				WILLAMETTE,SSE2
-MOVLPD		xmmreg,mem64			[rm:	66 0f 12 /r]				WILLAMETTE,SSE2
-MOVMSKPD	reg32,xmmreg			[rm:	66 0f 50 /r]				WILLAMETTE,SSE2
-MOVMSKPD	reg64,xmmreg			[rm:	66 o64 0f 50 /r]			X64,SSE2
-MOVSD		xmmreg,xmmreg			[rm:	f2 0f 10 /r]				WILLAMETTE,SSE2
-MOVSD		xmmreg,xmmreg			[mr:	f2 0f 11 /r]				WILLAMETTE,SSE2
-MOVSD		mem64,xmmreg			[mr:	f2 0f 11 /r]				WILLAMETTE,SSE2
-MOVSD		xmmreg,mem64			[rm:	f2 0f 10 /r]				WILLAMETTE,SSE2
-MOVUPD		xmmreg,xmmreg			[rm:	66 0f 10 /r]				WILLAMETTE,SSE2
-MOVUPD		xmmreg,xmmreg			[mr:	66 0f 11 /r]				WILLAMETTE,SSE2
-MOVUPD		mem,xmmreg			[mr:	66 0f 11 /r]				WILLAMETTE,SSE2,SO
-MOVUPD		xmmreg,mem			[rm:	66 0f 10 /r]				WILLAMETTE,SSE2,SO
-MULPD		xmmreg,xmmrm			[rm:	66 0f 59 /r]				WILLAMETTE,SSE2,SO
-MULSD		xmmreg,xmmrm			[rm:	f2 0f 59 /r]				WILLAMETTE,SSE2
-ORPD		xmmreg,xmmrm			[rm:	66 0f 56 /r]				WILLAMETTE,SSE2,SO
-SHUFPD		xmmreg,xmmreg,imm		[rmi:	66 0f c6 /r ib,u]			WILLAMETTE,SSE2,SB,AR2
-SHUFPD		xmmreg,mem,imm			[rmi:	66 0f c6 /r ib,u]			WILLAMETTE,SSE2,SM,SB,AR2
-SQRTPD		xmmreg,xmmrm			[rm:	66 0f 51 /r]				WILLAMETTE,SSE2,SO
-SQRTSD		xmmreg,xmmrm			[rm:	f2 0f 51 /r]				WILLAMETTE,SSE2
-SUBPD		xmmreg,xmmrm			[rm:	66 0f 5c /r]				WILLAMETTE,SSE2,SO
-SUBSD		xmmreg,xmmrm			[rm:	f2 0f 5c /r]				WILLAMETTE,SSE2
-UCOMISD		xmmreg,xmmrm			[rm:	66 0f 2e /r]				WILLAMETTE,SSE2
-UNPCKHPD	xmmreg,xmmrm128			[rm:	66 0f 15 /r]				WILLAMETTE,SSE2
-UNPCKLPD	xmmreg,xmmrm128			[rm:	66 0f 14 /r]				WILLAMETTE,SSE2
-XORPD		xmmreg,xmmrm128			[rm:	66 0f 57 /r]				WILLAMETTE,SSE2
-
-;# Prescott New Instructions (SSE3)
-ADDSUBPD	xmmreg,xmmrm			[rm:	66 0f d0 /r]				PRESCOTT,SSE3,SO
-ADDSUBPS	xmmreg,xmmrm			[rm:	f2 0f d0 /r]				PRESCOTT,SSE3,SO
-HADDPD		xmmreg,xmmrm			[rm:	66 0f 7c /r]				PRESCOTT,SSE3,SO
-HADDPS		xmmreg,xmmrm			[rm:	f2 0f 7c /r]				PRESCOTT,SSE3,SO
-HSUBPD		xmmreg,xmmrm			[rm:	66 0f 7d /r]				PRESCOTT,SSE3,SO
-HSUBPS		xmmreg,xmmrm			[rm:	f2 0f 7d /r]				PRESCOTT,SSE3,SO
-LDDQU		xmmreg,mem			[rm:	f2 0f f0 /r]				PRESCOTT,SSE3,SO
-MOVDDUP		xmmreg,xmmrm			[rm:	f2 0f 12 /r]				PRESCOTT,SSE3
-MOVSHDUP	xmmreg,xmmrm			[rm:	f3 0f 16 /r]				PRESCOTT,SSE3
-MOVSLDUP	xmmreg,xmmrm			[rm:	f3 0f 12 /r]				PRESCOTT,SSE3
-
-;# VMX/SVM Instructions
-CLGI		void				[	0f 01 dd]				VMX,AMD
-STGI		void				[	0f 01 dc]				VMX,AMD
-VMCALL		void				[	0f 01 c1]				VMX
-VMCLEAR		mem				[m:	66 0f c7 /6]				VMX
-VMFUNC		void				[	0f 01 d4]				VMX
-VMLAUNCH	void				[	0f 01 c2]				VMX
-VMLOAD		void				[	0f 01 da]				VMX,AMD
-VMMCALL		void				[	0f 01 d9]				VMX,AMD
-VMPTRLD		mem				[m:	np 0f c7 /6]				VMX
-VMPTRST		mem				[m:	np 0f c7 /7]				VMX
-VMREAD		rm32,reg32			[mr:	np 0f 78 /r]				VMX,NOLONG,SD
-VMREAD		rm64,reg64			[mr:	o64nw np 0f 78 /r]			X64,VMX,SQ
-VMRESUME	void				[	0f 01 c3]				VMX
-VMRUN		void				[	0f 01 d8]				VMX,AMD
-VMSAVE		void				[	0f 01 db]				VMX,AMD
-VMWRITE		reg32,rm32			[rm:	np 0f 79 /r]				VMX,NOLONG,SD
-VMWRITE		reg64,rm64			[rm:	o64nw np 0f 79 /r]			X64,VMX,SQ
-VMXOFF		void				[	0f 01 c4]				VMX
-VMXON		mem				[m:	f3 0f c7 /6]				VMX
-;# Extended Page Tables VMX instructions
-INVEPT		reg32,mem			[rm: 66 0f 38 80 /r]				VMX,SO,NOLONG
-INVEPT		reg64,mem			[rm: o64nw 66 0f 38 80 /r]			VMX,SO,LONG
-INVVPID		reg32,mem			[rm: 66 0f 38 81 /r]				VMX,SO,NOLONG
-INVVPID		reg64,mem			[rm: o64nw 66 0f 38 81 /r]			VMX,SO,LONG
-
-;# Tejas New Instructions (SSSE3)
-PABSB		mmxreg,mmxrm			[rm:	np 0f 38 1c /r]				SSSE3,MMX,SQ
-PABSB		xmmreg,xmmrm			[rm:	66 0f 38 1c /r]				SSSE3
-PABSW		mmxreg,mmxrm			[rm:	np 0f 38 1d /r]				SSSE3,MMX,SQ
-PABSW		xmmreg,xmmrm			[rm:	66 0f 38 1d /r]				SSSE3
-PABSD		mmxreg,mmxrm			[rm:	np 0f 38 1e /r]				SSSE3,MMX,SQ
-PABSD		xmmreg,xmmrm			[rm:	66 0f 38 1e /r]				SSSE3
-PALIGNR		mmxreg,mmxrm,imm		[rmi:	np 0f 3a 0f /r ib,u]			SSSE3,MMX,SQ
-PALIGNR		xmmreg,xmmrm,imm		[rmi:	66 0f 3a 0f /r ib,u]			SSSE3
-PHADDW		mmxreg,mmxrm			[rm:	np 0f 38 01 /r]				SSSE3,MMX,SQ
-PHADDW		xmmreg,xmmrm			[rm:	66 0f 38 01 /r]				SSSE3
-PHADDD		mmxreg,mmxrm			[rm:	np 0f 38 02 /r]				SSSE3,MMX,SQ
-PHADDD		xmmreg,xmmrm			[rm:	66 0f 38 02 /r]				SSSE3
-PHADDSW		mmxreg,mmxrm			[rm:	np 0f 38 03 /r]				SSSE3,MMX,SQ
-PHADDSW		xmmreg,xmmrm			[rm:	66 0f 38 03 /r]				SSSE3
-PHSUBW		mmxreg,mmxrm			[rm:	np 0f 38 05 /r]				SSSE3,MMX,SQ
-PHSUBW		xmmreg,xmmrm			[rm:	66 0f 38 05 /r]				SSSE3
-PHSUBD		mmxreg,mmxrm			[rm:	np 0f 38 06 /r]				SSSE3,MMX,SQ
-PHSUBD		xmmreg,xmmrm			[rm:	66 0f 38 06 /r]				SSSE3
-PHSUBSW		mmxreg,mmxrm			[rm:	np 0f 38 07 /r]				SSSE3,MMX,SQ
-PHSUBSW		xmmreg,xmmrm			[rm:	66 0f 38 07 /r]				SSSE3
-PMADDUBSW	mmxreg,mmxrm			[rm:	np 0f 38 04 /r]				SSSE3,MMX,SQ
-PMADDUBSW	xmmreg,xmmrm			[rm:	66 0f 38 04 /r]				SSSE3
-PMULHRSW	mmxreg,mmxrm			[rm:	np 0f 38 0b /r]				SSSE3,MMX,SQ
-PMULHRSW	xmmreg,xmmrm			[rm:	66 0f 38 0b /r]				SSSE3
-PSHUFB		mmxreg,mmxrm			[rm:	np 0f 38 00 /r]				SSSE3,MMX,SQ
-PSHUFB		xmmreg,xmmrm			[rm:	66 0f 38 00 /r]				SSSE3
-PSIGNB		mmxreg,mmxrm			[rm:	np 0f 38 08 /r]				SSSE3,MMX,SQ
-PSIGNB		xmmreg,xmmrm			[rm:	66 0f 38 08 /r]				SSSE3
-PSIGNW		mmxreg,mmxrm			[rm:	np 0f 38 09 /r]				SSSE3,MMX,SQ
-PSIGNW		xmmreg,xmmrm			[rm:	66 0f 38 09 /r]				SSSE3
-PSIGND		mmxreg,mmxrm			[rm:	np 0f 38 0a /r]				SSSE3,MMX,SQ
-PSIGND		xmmreg,xmmrm			[rm:	66 0f 38 0a /r]				SSSE3
-
-;# AMD SSE4A
-EXTRQ		xmmreg,imm,imm			[mij:	66 0f 78 /0 ib,u ib,u]			SSE4A,AMD
-EXTRQ		xmmreg,xmmreg			[rm:	66 0f 79 /r]				SSE4A,AMD
-INSERTQ		xmmreg,xmmreg,imm,imm		[rmij:	f2 0f 78 /r ib,u ib,u]			SSE4A,AMD
-INSERTQ		xmmreg,xmmreg			[rm:	f2 0f 79 /r]				SSE4A,AMD
-MOVNTSD		mem,xmmreg			[mr:	f2 0f 2b /r]				SSE4A,AMD,SQ
-MOVNTSS		mem,xmmreg			[mr:	f3 0f 2b /r]				SSE4A,AMD,SD
-
-;# New instructions in Barcelona
-LZCNT		reg16,rm16			[rm:	o16 f3i 0f bd /r]			P6,AMD
-LZCNT		reg32,rm32			[rm:	o32 f3i 0f bd /r]			P6,AMD
-LZCNT		reg64,rm64			[rm:	o64 f3i 0f bd /r]			X64,AMD
-
-;# Penryn New Instructions (SSE4.1)
-BLENDPD		xmmreg,xmmrm,imm		[rmi:	66 0f 3a 0d /r ib,u]			SSE41
-BLENDPS		xmmreg,xmmrm,imm		[rmi:	66 0f 3a 0c /r ib,u]			SSE41
-BLENDVPD	xmmreg,xmmrm,xmm0		[rm-:	66 0f 38 15 /r]				SSE41
-BLENDVPD	xmmreg,xmmrm			[rm:	66 0f 38 15 /r]				SSE41
-BLENDVPS	xmmreg,xmmrm,xmm0		[rm-:	66 0f 38 14 /r]				SSE41
-BLENDVPS	xmmreg,xmmrm			[rm:	66 0f 38 14 /r]				SSE41
-DPPD		xmmreg,xmmrm,imm		[rmi:	66 0f 3a 41 /r ib,u]			SSE41
-DPPS		xmmreg,xmmrm,imm		[rmi:	66 0f 3a 40 /r ib,u]			SSE41
-EXTRACTPS	rm32,xmmreg,imm			[mri:	66 0f 3a 17 /r ib,u]			SSE41
-EXTRACTPS	reg64,xmmreg,imm		[mri:	o64 66 0f 3a 17 /r ib,u]		SSE41,X64
-INSERTPS	xmmreg,xmmrm,imm		[rmi:	66 0f 3a 21 /r ib,u]			SSE41,SD
-MOVNTDQA	xmmreg,mem128			[rm:	66 0f 38 2a /r]				SSE41
-MPSADBW		xmmreg,xmmrm,imm		[rmi:	66 0f 3a 42 /r ib,u]			SSE41
-PACKUSDW	xmmreg,xmmrm			[rm:	66 0f 38 2b /r]				SSE41
-PBLENDVB	xmmreg,xmmrm,xmm0		[rm-:	66 0f 38 10 /r]				SSE41
-PBLENDVB	xmmreg,xmmrm			[rm:	66 0f 38 10 /r]				SSE41
-PBLENDW		xmmreg,xmmrm,imm		[rmi:	66 0f 3a 0e /r ib,u]			SSE41
-PCMPEQQ		xmmreg,xmmrm			[rm:	66 0f 38 29 /r]				SSE41
-PEXTRB		reg32,xmmreg,imm		[mri:	66 0f 3a 14 /r ib,u]			SSE41
-PEXTRB		mem8,xmmreg,imm			[mri:	66 0f 3a 14 /r ib,u]			SSE41
-PEXTRB		reg64,xmmreg,imm		[mri:	o64 66 0f 3a 14 /r ib,u]		SSE41,X64
-PEXTRD		rm32,xmmreg,imm			[mri:	norexw 66 0f 3a 16 /r ib,u]			SSE41
-PEXTRQ		rm64,xmmreg,imm			[mri:	o64 66 0f 3a 16 /r ib,u]		SSE41,X64
-PEXTRW		reg32,xmmreg,imm		[mri:	66 0f 3a 15 /r ib,u]			SSE41
-PEXTRW		mem16,xmmreg,imm		[mri:	66 0f 3a 15 /r ib,u]			SSE41
-PEXTRW		reg64,xmmreg,imm		[mri:	o64 66 0f 3a 15 /r ib,u]		SSE41,X64
-PHMINPOSUW	xmmreg,xmmrm			[rm:	66 0f 38 41 /r]				SSE41
-PINSRB		xmmreg,mem,imm			[rmi:	66 0f 3a 20 /r ib,u]			SSE41,SB,AR2
-PINSRB		xmmreg,rm8,imm			[rmi:	nohi 66 0f 3a 20 /r ib,u]		SSE41,SB,AR2
-PINSRB		xmmreg,reg32,imm		[rmi:	66 0f 3a 20 /r ib,u]			SSE41,SB,AR2
-PINSRD		xmmreg,mem,imm			[rmi:	norexw 66 0f 3a 22 /r ib,u]			SSE41,SB,AR2
-PINSRD		xmmreg,rm32,imm			[rmi:	norexw 66 0f 3a 22 /r ib,u]			SSE41,SB,AR2
-PINSRQ		xmmreg,mem,imm			[rmi:	o64 66 0f 3a 22 /r ib,u]		SSE41,X64,SB,AR2
-PINSRQ		xmmreg,rm64,imm			[rmi:	o64 66 0f 3a 22 /r ib,u]		SSE41,X64,SB,AR2
-PMAXSB		xmmreg,xmmrm			[rm:	66 0f 38 3c /r]				SSE41
-PMAXSD		xmmreg,xmmrm			[rm:	66 0f 38 3d /r]				SSE41
-PMAXUD		xmmreg,xmmrm			[rm:	66 0f 38 3f /r]				SSE41
-PMAXUW		xmmreg,xmmrm			[rm:	66 0f 38 3e /r]				SSE41
-PMINSB		xmmreg,xmmrm			[rm:	66 0f 38 38 /r]				SSE41
-PMINSD		xmmreg,xmmrm			[rm:	66 0f 38 39 /r]				SSE41
-PMINUD		xmmreg,xmmrm			[rm:	66 0f 38 3b /r]				SSE41
-PMINUW		xmmreg,xmmrm			[rm:	66 0f 38 3a /r]				SSE41
-PMOVSXBW	xmmreg,xmmrm			[rm:	66 0f 38 20 /r]				SSE41,SQ
-PMOVSXBD	xmmreg,xmmrm			[rm:	66 0f 38 21 /r]				SSE41,SD
-PMOVSXBQ	xmmreg,xmmrm			[rm:	66 0f 38 22 /r]				SSE41,SW
-PMOVSXWD	xmmreg,xmmrm			[rm:	66 0f 38 23 /r]				SSE41,SQ
-PMOVSXWQ	xmmreg,xmmrm			[rm:	66 0f 38 24 /r]				SSE41,SD
-PMOVSXDQ	xmmreg,xmmrm			[rm:	66 0f 38 25 /r]				SSE41,SQ
-PMOVZXBW	xmmreg,xmmrm			[rm:	66 0f 38 30 /r]				SSE41,SQ
-PMOVZXBD	xmmreg,xmmrm			[rm:	66 0f 38 31 /r]				SSE41,SD
-PMOVZXBQ	xmmreg,xmmrm			[rm:	66 0f 38 32 /r]				SSE41,SW
-PMOVZXWD	xmmreg,xmmrm			[rm:	66 0f 38 33 /r]				SSE41,SQ
-PMOVZXWQ	xmmreg,xmmrm			[rm:	66 0f 38 34 /r]				SSE41,SD
-PMOVZXDQ	xmmreg,xmmrm			[rm:	66 0f 38 35 /r]				SSE41,SQ
-PMULDQ		xmmreg,xmmrm			[rm:	66 0f 38 28 /r]				SSE41
-PMULLD		xmmreg,xmmrm			[rm:	66 0f 38 40 /r]				SSE41
-PTEST		xmmreg,xmmrm			[rm:	66 0f 38 17 /r]				SSE41
-ROUNDPD		xmmreg,xmmrm,imm		[rmi:	66 0f 3a 09 /r ib,u]			SSE41
-ROUNDPS		xmmreg,xmmrm,imm		[rmi:	66 0f 3a 08 /r ib,u]			SSE41
-ROUNDSD		xmmreg,xmmrm,imm		[rmi:	66 0f 3a 0b /r ib,u]			SSE41
-ROUNDSS		xmmreg,xmmrm,imm		[rmi:	66 0f 3a 0a /r ib,u]			SSE41
-
-;# Nehalem New Instructions (SSE4.2)
-CRC32		reg32,rm8			[rm:	f2i 0f 38 f0 /r]			SSE42
-CRC32		reg32,rm16			[rm:	o16 f2i 0f 38 f1 /r]			SSE42
-CRC32		reg32,rm32			[rm:	o32 f2i 0f 38 f1 /r]			SSE42
-CRC32		reg64,rm8			[rm:	o64 f2i 0f 38 f0 /r]			SSE42,X64
-CRC32		reg64,rm64			[rm:	o64 f2i 0f 38 f1 /r]			SSE42,X64
-PCMPESTRI	xmmreg,xmmrm,imm		[rmi:	66 0f 3a 61 /r ib,u]			SSE42
-PCMPESTRM	xmmreg,xmmrm,imm		[rmi:	66 0f 3a 60 /r ib,u]			SSE42
-PCMPISTRI	xmmreg,xmmrm,imm		[rmi:	66 0f 3a 63 /r ib,u]			SSE42
-PCMPISTRM	xmmreg,xmmrm,imm		[rmi:	66 0f 3a 62 /r ib,u]			SSE42
-PCMPGTQ		xmmreg,xmmrm			[rm:	66 0f 38 37 /r]				SSE42
-POPCNT		reg16,rm16			[rm:	o16 f3i 0f b8 /r]			NEHALEM,SW
-POPCNT		reg32,rm32			[rm:	o32 f3i 0f b8 /r]			NEHALEM,SD
-POPCNT		reg64,rm64			[rm:	o64 f3i 0f b8 /r]			NEHALEM,SQ,X64
-
-;# Intel SMX
-GETSEC		void				[	0f 37]					KATMAI
-
-;# Geode (Cyrix) 3DNow! additions
-PFRCPV		mmxreg,mmxrm			[rm:	o64nw 0f 0f /r 86]			PENT,3DNOW,SQ,CYRIX
-PFRSQRTV	mmxreg,mmxrm			[rm:	o64nw 0f 0f /r 87]			PENT,3DNOW,SQ,CYRIX
-
-;# Intel new instructions in ???
-; Is NEHALEM right here?
-MOVBE		reg16,mem16			[rm:	o16 norep 0f 38 f0 /r]			NEHALEM,SM
-MOVBE		reg32,mem32			[rm:	o32 norep 0f 38 f0 /r]			NEHALEM,SM
-MOVBE		reg64,mem64			[rm:	o64 norep 0f 38 f0 /r]			NEHALEM,SM
-MOVBE		mem16,reg16			[mr:	o16 norep 0f 38 f1 /r]			NEHALEM,SM
-MOVBE		mem32,reg32			[mr:	o32 norep 0f 38 f1 /r]			NEHALEM,SM
-MOVBE		mem64,reg64			[mr:	o64 norep 0f 38 f1 /r]			NEHALEM,SM
-
-;# Intel AES instructions
-AESENC		xmmreg,xmmrm128			[rm:	66 0f 38 dc /r]				SSE,WESTMERE
-AESENCLAST	xmmreg,xmmrm128			[rm:	66 0f 38 dd /r]				SSE,WESTMERE
-AESDEC		xmmreg,xmmrm128			[rm:	66 0f 38 de /r]				SSE,WESTMERE
-AESDECLAST	xmmreg,xmmrm128			[rm:	66 0f 38 df /r]				SSE,WESTMERE
-AESIMC		xmmreg,xmmrm128			[rm:	66 0f 38 db /r]				SSE,WESTMERE
-AESKEYGENASSIST	xmmreg,xmmrm128,imm8		[rmi:	66 0f 3a df /r ib]			SSE,WESTMERE
-
-;# Intel AVX AES instructions
-VAESENC		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 dc /r]		AVX,SANDYBRIDGE
-VAESENCLAST	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 dd /r]		AVX,SANDYBRIDGE
-VAESDEC		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 de /r]		AVX,SANDYBRIDGE
-VAESDECLAST	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 df /r]		AVX,SANDYBRIDGE
-VAESIMC		xmmreg,xmmrm128			[rm:	vex.128.66.0f38 db /r]			AVX,SANDYBRIDGE
-VAESKEYGENASSIST xmmreg,xmmrm128,imm8		[rmi:	vex.128.66.0f3a df /r ib]		AVX,SANDYBRIDGE
-
-;# Intel AVX instructions
-VADDPD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 58 /r]		AVX,SANDYBRIDGE
-VADDPD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 58 /r]		AVX,SANDYBRIDGE
-VADDPS		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f 58 /r]			AVX,SANDYBRIDGE
-VADDPS		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f 58 /r]			AVX,SANDYBRIDGE
-VADDSD		xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f 58 /r]		AVX,SANDYBRIDGE
-VADDSS		xmmreg,xmmreg*,xmmrm32		[rvm:	vex.nds.lig.f3.0f 58 /r]		AVX,SANDYBRIDGE
-VADDSUBPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f d0 /r]		AVX,SANDYBRIDGE
-VADDSUBPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f d0 /r]		AVX,SANDYBRIDGE
-VADDSUBPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.f2.0f d0 /r]		AVX,SANDYBRIDGE
-VADDSUBPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.f2.0f d0 /r]		AVX,SANDYBRIDGE
-VANDPD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 54 /r]		AVX,SANDYBRIDGE
-VANDPD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 54 /r]		AVX,SANDYBRIDGE
-VANDPS		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f 54 /r]			AVX,SANDYBRIDGE
-VANDPS		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f 54 /r]			AVX,SANDYBRIDGE
-VANDNPD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 55 /r]		AVX,SANDYBRIDGE
-VANDNPD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 55 /r]		AVX,SANDYBRIDGE
-VANDNPS		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f 55 /r]			AVX,SANDYBRIDGE
-VANDNPS		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f 55 /r]			AVX,SANDYBRIDGE
-VBLENDPD	xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	vex.nds.128.66.0f3a 0d /r ib]		AVX,SANDYBRIDGE
-VBLENDPD	ymmreg,ymmreg*,ymmrm256,imm8	[rvmi:	vex.nds.256.66.0f3a 0d /r ib]		AVX,SANDYBRIDGE
-VBLENDPS	xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	vex.nds.128.66.0f3a 0c /r ib]		AVX,SANDYBRIDGE
-VBLENDPS	ymmreg,ymmreg*,ymmrm256,imm8	[rvmi:	vex.nds.256.66.0f3a 0c /r ib]		AVX,SANDYBRIDGE
-VBLENDVPD	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.nds.128.66.0f3a.w0 4b /r /is4]	AVX,SANDYBRIDGE
-VBLENDVPD	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.nds.256.66.0f3a.w0 4b /r /is4]	AVX,SANDYBRIDGE
-VBLENDVPS	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.nds.128.66.0f3a.w0 4a /r /is4]	AVX,SANDYBRIDGE
-VBLENDVPS	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.nds.256.66.0f3a.w0 4a /r /is4]	AVX,SANDYBRIDGE
-VBROADCASTSS	xmmreg,mem32			[rm:	vex.128.66.0f38.w0 18 /r]		AVX,SANDYBRIDGE
-VBROADCASTSS	ymmreg,mem32			[rm:	vex.256.66.0f38.w0 18 /r]		AVX,SANDYBRIDGE
-VBROADCASTSD	ymmreg,mem64			[rm:	vex.256.66.0f38.w0 19 /r]		AVX,SANDYBRIDGE
-VBROADCASTF128	ymmreg,mem128			[rm:	vex.256.66.0f38.w0 1a /r]		AVX,SANDYBRIDGE
-; Specific aliases first, then the generic version, to keep the disassembler happy...
-VCMPEQ_OSPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 10]		AVX,SANDYBRIDGE
-VCMPEQ_OSPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 10]		AVX,SANDYBRIDGE
-VCMPEQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 00]		AVX,SANDYBRIDGE
-VCMPEQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 00]		AVX,SANDYBRIDGE
-VCMPLT_OSPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 01]		AVX,SANDYBRIDGE
-VCMPLT_OSPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 01]		AVX,SANDYBRIDGE
-VCMPLTPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 01]		AVX,SANDYBRIDGE
-VCMPLTPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 01]		AVX,SANDYBRIDGE
-VCMPLE_OSPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 02]		AVX,SANDYBRIDGE
-VCMPLE_OSPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 02]		AVX,SANDYBRIDGE
-VCMPLEPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 02]		AVX,SANDYBRIDGE
-VCMPLEPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 02]		AVX,SANDYBRIDGE
-VCMPUNORD_QPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 03]		AVX,SANDYBRIDGE
-VCMPUNORD_QPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 03]		AVX,SANDYBRIDGE
-VCMPUNORDPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 03]		AVX,SANDYBRIDGE
-VCMPUNORDPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 03]		AVX,SANDYBRIDGE
-VCMPNEQ_UQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 04]		AVX,SANDYBRIDGE
-VCMPNEQ_UQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 04]		AVX,SANDYBRIDGE
-VCMPNEQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 04]		AVX,SANDYBRIDGE
-VCMPNEQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 04]		AVX,SANDYBRIDGE
-VCMPNLT_USPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 05]		AVX,SANDYBRIDGE
-VCMPNLT_USPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 05]		AVX,SANDYBRIDGE
-VCMPNLTPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 05]		AVX,SANDYBRIDGE
-VCMPNLTPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 05]		AVX,SANDYBRIDGE
-VCMPNLE_USPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 06]		AVX,SANDYBRIDGE
-VCMPNLE_USPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 06]		AVX,SANDYBRIDGE
-VCMPNLEPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 06]		AVX,SANDYBRIDGE
-VCMPNLEPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 06]		AVX,SANDYBRIDGE
-VCMPORD_QPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 07]		AVX,SANDYBRIDGE
-VCMPORD_QPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 07]		AVX,SANDYBRIDGE
-VCMPORDPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 07]		AVX,SANDYBRIDGE
-VCMPORDPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 07]		AVX,SANDYBRIDGE
-VCMPEQ_UQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 08]		AVX,SANDYBRIDGE
-VCMPEQ_UQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 08]		AVX,SANDYBRIDGE
-VCMPNGE_USPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 09]		AVX,SANDYBRIDGE
-VCMPNGE_USPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 09]		AVX,SANDYBRIDGE
-VCMPNGEPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 09]		AVX,SANDYBRIDGE
-VCMPNGEPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 09]		AVX,SANDYBRIDGE
-VCMPNGT_USPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 0a]		AVX,SANDYBRIDGE
-VCMPNGT_USPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 0a]		AVX,SANDYBRIDGE
-VCMPNGTPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 0a]		AVX,SANDYBRIDGE
-VCMPNGTPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 0a]		AVX,SANDYBRIDGE
-VCMPFALSE_OQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 0b]		AVX,SANDYBRIDGE
-VCMPFALSE_OQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 0b]		AVX,SANDYBRIDGE
-VCMPFALSEPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 0b]		AVX,SANDYBRIDGE
-VCMPFALSEPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 0b]		AVX,SANDYBRIDGE
-VCMPNEQ_OQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 0c]		AVX,SANDYBRIDGE
-VCMPNEQ_OQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 0c]		AVX,SANDYBRIDGE
-VCMPGE_OSPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 0d]		AVX,SANDYBRIDGE
-VCMPGE_OSPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 0d]		AVX,SANDYBRIDGE
-VCMPGEPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 0d]		AVX,SANDYBRIDGE
-VCMPGEPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 0d]		AVX,SANDYBRIDGE
-VCMPGT_OSPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 0e]		AVX,SANDYBRIDGE
-VCMPGT_OSPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 0e]		AVX,SANDYBRIDGE
-VCMPGTPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 0e]		AVX,SANDYBRIDGE
-VCMPGTPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 0e]		AVX,SANDYBRIDGE
-VCMPTRUE_UQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 0f]		AVX,SANDYBRIDGE
-VCMPTRUE_UQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 0f]		AVX,SANDYBRIDGE
-VCMPTRUEPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 0f]		AVX,SANDYBRIDGE
-VCMPTRUEPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 0f]		AVX,SANDYBRIDGE
-VCMPEQ_OSPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 10]		AVX,SANDYBRIDGE
-VCMPEQ_OSPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 10]		AVX,SANDYBRIDGE
-VCMPLT_OQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 11]		AVX,SANDYBRIDGE
-VCMPLT_OQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 11]		AVX,SANDYBRIDGE
-VCMPLE_OQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 12]		AVX,SANDYBRIDGE
-VCMPLE_OQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 12]		AVX,SANDYBRIDGE
-VCMPUNORD_SPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 13]		AVX,SANDYBRIDGE
-VCMPUNORD_SPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 13]		AVX,SANDYBRIDGE
-VCMPNEQ_USPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 14]		AVX,SANDYBRIDGE
-VCMPNEQ_USPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 14]		AVX,SANDYBRIDGE
-VCMPNLT_UQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 15]		AVX,SANDYBRIDGE
-VCMPNLT_UQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 15]		AVX,SANDYBRIDGE
-VCMPNLE_UQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 16]		AVX,SANDYBRIDGE
-VCMPNLE_UQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 16]		AVX,SANDYBRIDGE
-VCMPORD_SPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 17]		AVX,SANDYBRIDGE
-VCMPORD_SPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 17]		AVX,SANDYBRIDGE
-VCMPEQ_USPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 18]		AVX,SANDYBRIDGE
-VCMPEQ_USPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 18]		AVX,SANDYBRIDGE
-VCMPNGE_UQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 19]		AVX,SANDYBRIDGE
-VCMPNGE_UQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 19]		AVX,SANDYBRIDGE
-VCMPNGT_UQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 1a]		AVX,SANDYBRIDGE
-VCMPNGT_UQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 1a]		AVX,SANDYBRIDGE
-VCMPFALSE_OSPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 1b]		AVX,SANDYBRIDGE
-VCMPFALSE_OSPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 1b]		AVX,SANDYBRIDGE
-VCMPNEQ_OSPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 1c]		AVX,SANDYBRIDGE
-VCMPNEQ_OSPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 1c]		AVX,SANDYBRIDGE
-VCMPGE_OQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 1d]		AVX,SANDYBRIDGE
-VCMPGE_OQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 1d]		AVX,SANDYBRIDGE
-VCMPGT_OQPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 1e]		AVX,SANDYBRIDGE
-VCMPGT_OQPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 1e]		AVX,SANDYBRIDGE
-VCMPTRUE_USPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f c2 /r 1f]		AVX,SANDYBRIDGE
-VCMPTRUE_USPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f c2 /r 1f]		AVX,SANDYBRIDGE
-VCMPPD		xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	vex.nds.128.66.0f c2 /r ib]		AVX,SANDYBRIDGE
-VCMPPD		ymmreg,ymmreg*,ymmrm256,imm8	[rvmi:	vex.nds.256.66.0f c2 /r ib]		AVX,SANDYBRIDGE
-; Specific aliases first, then the generic version, to keep the disassembler happy...
-VCMPEQ_OSPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 10]		AVX,SANDYBRIDGE
-VCMPEQ_OSPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 10]		AVX,SANDYBRIDGE
-VCMPEQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 00]		AVX,SANDYBRIDGE
-VCMPEQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 00]		AVX,SANDYBRIDGE
-VCMPLT_OSPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 01]		AVX,SANDYBRIDGE
-VCMPLT_OSPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 01]		AVX,SANDYBRIDGE
-VCMPLTPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 01]		AVX,SANDYBRIDGE
-VCMPLTPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 01]		AVX,SANDYBRIDGE
-VCMPLE_OSPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 02]		AVX,SANDYBRIDGE
-VCMPLE_OSPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 02]		AVX,SANDYBRIDGE
-VCMPLEPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 02]		AVX,SANDYBRIDGE
-VCMPLEPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 02]		AVX,SANDYBRIDGE
-VCMPUNORD_QPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 03]		AVX,SANDYBRIDGE
-VCMPUNORD_QPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 03]		AVX,SANDYBRIDGE
-VCMPUNORDPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 03]		AVX,SANDYBRIDGE
-VCMPUNORDPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 03]		AVX,SANDYBRIDGE
-VCMPNEQ_UQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 04]		AVX,SANDYBRIDGE
-VCMPNEQ_UQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 04]		AVX,SANDYBRIDGE
-VCMPNEQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 04]		AVX,SANDYBRIDGE
-VCMPNEQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 04]		AVX,SANDYBRIDGE
-VCMPNLT_USPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 05]		AVX,SANDYBRIDGE
-VCMPNLT_USPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 05]		AVX,SANDYBRIDGE
-VCMPNLTPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 05]		AVX,SANDYBRIDGE
-VCMPNLTPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 05]		AVX,SANDYBRIDGE
-VCMPNLE_USPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 06]		AVX,SANDYBRIDGE
-VCMPNLE_USPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 06]		AVX,SANDYBRIDGE
-VCMPNLEPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 06]		AVX,SANDYBRIDGE
-VCMPNLEPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 06]		AVX,SANDYBRIDGE
-VCMPORD_QPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 07]		AVX,SANDYBRIDGE
-VCMPORD_QPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 07]		AVX,SANDYBRIDGE
-VCMPORDPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 07]		AVX,SANDYBRIDGE
-VCMPORDPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 07]		AVX,SANDYBRIDGE
-VCMPEQ_UQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 08]		AVX,SANDYBRIDGE
-VCMPEQ_UQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 08]		AVX,SANDYBRIDGE
-VCMPNGE_USPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 09]		AVX,SANDYBRIDGE
-VCMPNGE_USPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 09]		AVX,SANDYBRIDGE
-VCMPNGEPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 09]		AVX,SANDYBRIDGE
-VCMPNGEPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 09]		AVX,SANDYBRIDGE
-VCMPNGT_USPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 0a]		AVX,SANDYBRIDGE
-VCMPNGT_USPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 0a]		AVX,SANDYBRIDGE
-VCMPNGTPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 0a]		AVX,SANDYBRIDGE
-VCMPNGTPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 0a]		AVX,SANDYBRIDGE
-VCMPFALSE_OQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 0b]		AVX,SANDYBRIDGE
-VCMPFALSE_OQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 0b]		AVX,SANDYBRIDGE
-VCMPFALSEPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 0b]		AVX,SANDYBRIDGE
-VCMPFALSEPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 0b]		AVX,SANDYBRIDGE
-VCMPNEQ_OQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 0c]		AVX,SANDYBRIDGE
-VCMPNEQ_OQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 0c]		AVX,SANDYBRIDGE
-VCMPGE_OSPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 0d]		AVX,SANDYBRIDGE
-VCMPGE_OSPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 0d]		AVX,SANDYBRIDGE
-VCMPGEPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 0d]		AVX,SANDYBRIDGE
-VCMPGEPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 0d]		AVX,SANDYBRIDGE
-VCMPGT_OSPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 0e]		AVX,SANDYBRIDGE
-VCMPGT_OSPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 0e]		AVX,SANDYBRIDGE
-VCMPGTPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 0e]		AVX,SANDYBRIDGE
-VCMPGTPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 0e]		AVX,SANDYBRIDGE
-VCMPTRUE_UQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 0f]		AVX,SANDYBRIDGE
-VCMPTRUE_UQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 0f]		AVX,SANDYBRIDGE
-VCMPTRUEPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 0f]		AVX,SANDYBRIDGE
-VCMPTRUEPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 0f]		AVX,SANDYBRIDGE
-VCMPEQ_OSPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 10]		AVX,SANDYBRIDGE
-VCMPEQ_OSPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 10]		AVX,SANDYBRIDGE
-VCMPLT_OQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 11]		AVX,SANDYBRIDGE
-VCMPLT_OQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 11]		AVX,SANDYBRIDGE
-VCMPLE_OQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 12]		AVX,SANDYBRIDGE
-VCMPLE_OQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 12]		AVX,SANDYBRIDGE
-VCMPUNORD_SPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 13]		AVX,SANDYBRIDGE
-VCMPUNORD_SPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 13]		AVX,SANDYBRIDGE
-VCMPNEQ_USPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 14]		AVX,SANDYBRIDGE
-VCMPNEQ_USPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 14]		AVX,SANDYBRIDGE
-VCMPNLT_UQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 15]		AVX,SANDYBRIDGE
-VCMPNLT_UQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 15]		AVX,SANDYBRIDGE
-VCMPNLE_UQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 16]		AVX,SANDYBRIDGE
-VCMPNLE_UQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 16]		AVX,SANDYBRIDGE
-VCMPORD_SPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 17]		AVX,SANDYBRIDGE
-VCMPORD_SPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 17]		AVX,SANDYBRIDGE
-VCMPEQ_USPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 18]		AVX,SANDYBRIDGE
-VCMPEQ_USPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 18]		AVX,SANDYBRIDGE
-VCMPNGE_UQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 19]		AVX,SANDYBRIDGE
-VCMPNGE_UQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 19]		AVX,SANDYBRIDGE
-VCMPNGT_UQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 1a]		AVX,SANDYBRIDGE
-VCMPNGT_UQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 1a]		AVX,SANDYBRIDGE
-VCMPFALSE_OSPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 1b]		AVX,SANDYBRIDGE
-VCMPFALSE_OSPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 1b]		AVX,SANDYBRIDGE
-VCMPNEQ_OSPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 1c]		AVX,SANDYBRIDGE
-VCMPNEQ_OSPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 1c]		AVX,SANDYBRIDGE
-VCMPGE_OQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 1d]		AVX,SANDYBRIDGE
-VCMPGE_OQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 1d]		AVX,SANDYBRIDGE
-VCMPGT_OQPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 1e]		AVX,SANDYBRIDGE
-VCMPGT_OQPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 1e]		AVX,SANDYBRIDGE
-VCMPTRUE_USPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f c2 /r 1f]		AVX,SANDYBRIDGE
-VCMPTRUE_USPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f c2 /r 1f]		AVX,SANDYBRIDGE
-VCMPPS		xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	vex.nds.128.0f c2 /r ib]		AVX,SANDYBRIDGE
-VCMPPS		ymmreg,ymmreg*,ymmrm256,imm8	[rvmi:	vex.nds.256.0f c2 /r ib]		AVX,SANDYBRIDGE
-; Specific aliases first, then the generic version, to keep the disassembler happy...
-VCMPEQ_OSSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 10]		AVX,SANDYBRIDGE
-VCMPEQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 00]		AVX,SANDYBRIDGE
-VCMPLT_OSSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 01]		AVX,SANDYBRIDGE
-VCMPLTSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 01]		AVX,SANDYBRIDGE
-VCMPLE_OSSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 02]		AVX,SANDYBRIDGE
-VCMPLESD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 02]		AVX,SANDYBRIDGE
-VCMPUNORD_QSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 03]		AVX,SANDYBRIDGE
-VCMPUNORDSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 03]		AVX,SANDYBRIDGE
-VCMPNEQ_UQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 04]		AVX,SANDYBRIDGE
-VCMPNEQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 04]		AVX,SANDYBRIDGE
-VCMPNLT_USSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 05]		AVX,SANDYBRIDGE
-VCMPNLTSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 05]		AVX,SANDYBRIDGE
-VCMPNLE_USSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 06]		AVX,SANDYBRIDGE
-VCMPNLESD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 06]		AVX,SANDYBRIDGE
-VCMPORD_QSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 07]		AVX,SANDYBRIDGE
-VCMPORDSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 07]		AVX,SANDYBRIDGE
-VCMPEQ_UQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 08]		AVX,SANDYBRIDGE
-VCMPNGE_USSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 09]		AVX,SANDYBRIDGE
-VCMPNGESD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 09]		AVX,SANDYBRIDGE
-VCMPNGT_USSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 0a]		AVX,SANDYBRIDGE
-VCMPNGTSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 0a]		AVX,SANDYBRIDGE
-VCMPFALSE_OQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 0b]		AVX,SANDYBRIDGE
-VCMPFALSESD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 0b]		AVX,SANDYBRIDGE
-VCMPNEQ_OQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 0c]		AVX,SANDYBRIDGE
-VCMPGE_OSSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 0d]		AVX,SANDYBRIDGE
-VCMPGESD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 0d]		AVX,SANDYBRIDGE
-VCMPGT_OSSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 0e]		AVX,SANDYBRIDGE
-VCMPGTSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 0e]		AVX,SANDYBRIDGE
-VCMPTRUE_UQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 0f]		AVX,SANDYBRIDGE
-VCMPTRUESD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 0f]		AVX,SANDYBRIDGE
-VCMPEQ_OSSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 10]		AVX,SANDYBRIDGE
-VCMPLT_OQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 11]		AVX,SANDYBRIDGE
-VCMPLE_OQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 12]		AVX,SANDYBRIDGE
-VCMPUNORD_SSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 13]		AVX,SANDYBRIDGE
-VCMPNEQ_USSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 14]		AVX,SANDYBRIDGE
-VCMPNLT_UQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 15]		AVX,SANDYBRIDGE
-VCMPNLE_UQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 16]		AVX,SANDYBRIDGE
-VCMPORD_SSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 17]		AVX,SANDYBRIDGE
-VCMPEQ_USSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 18]		AVX,SANDYBRIDGE
-VCMPNGE_UQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 19]		AVX,SANDYBRIDGE
-VCMPNGT_UQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 1a]		AVX,SANDYBRIDGE
-VCMPFALSE_OSSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 1b]		AVX,SANDYBRIDGE
-VCMPNEQ_OSSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 1c]		AVX,SANDYBRIDGE
-VCMPGE_OQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 1d]		AVX,SANDYBRIDGE
-VCMPGT_OQSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 1e]		AVX,SANDYBRIDGE
-VCMPTRUE_USSD	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f c2 /r 1f]		AVX,SANDYBRIDGE
-VCMPSD		xmmreg,xmmreg*,xmmrm64,imm8	[rvmi:	vex.nds.lig.f2.0f c2 /r ib]		AVX,SANDYBRIDGE
-; Specific aliases first, then the generic version, to keep the disassembler happy...
-VCMPEQ_OSSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 10]		AVX,SANDYBRIDGE
-VCMPEQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 00]		AVX,SANDYBRIDGE
-VCMPLT_OSSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 01]		AVX,SANDYBRIDGE
-VCMPLTSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 01]		AVX,SANDYBRIDGE
-VCMPLE_OSSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 02]		AVX,SANDYBRIDGE
-VCMPLESS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 02]		AVX,SANDYBRIDGE
-VCMPUNORD_QSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 03]		AVX,SANDYBRIDGE
-VCMPUNORDSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 03]		AVX,SANDYBRIDGE
-VCMPNEQ_UQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 04]		AVX,SANDYBRIDGE
-VCMPNEQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 04]		AVX,SANDYBRIDGE
-VCMPNLT_USSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 05]		AVX,SANDYBRIDGE
-VCMPNLTSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 05]		AVX,SANDYBRIDGE
-VCMPNLE_USSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 06]		AVX,SANDYBRIDGE
-VCMPNLESS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 06]		AVX,SANDYBRIDGE
-VCMPORD_QSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 07]		AVX,SANDYBRIDGE
-VCMPORDSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 07]		AVX,SANDYBRIDGE
-VCMPEQ_UQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 08]		AVX,SANDYBRIDGE
-VCMPNGE_USSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 09]		AVX,SANDYBRIDGE
-VCMPNGESS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 09]		AVX,SANDYBRIDGE
-VCMPNGT_USSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 0a]		AVX,SANDYBRIDGE
-VCMPNGTSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 0a]		AVX,SANDYBRIDGE
-VCMPFALSE_OQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 0b]		AVX,SANDYBRIDGE
-VCMPFALSESS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 0b]		AVX,SANDYBRIDGE
-VCMPNEQ_OQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 0c]		AVX,SANDYBRIDGE
-VCMPGE_OSSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 0d]		AVX,SANDYBRIDGE
-VCMPGESS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 0d]		AVX,SANDYBRIDGE
-VCMPGT_OSSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 0e]		AVX,SANDYBRIDGE
-VCMPGTSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 0e]		AVX,SANDYBRIDGE
-VCMPTRUE_UQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 0f]		AVX,SANDYBRIDGE
-VCMPTRUESS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 0f]		AVX,SANDYBRIDGE
-VCMPEQ_OSSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 10]		AVX,SANDYBRIDGE
-VCMPLT_OQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 11]		AVX,SANDYBRIDGE
-VCMPLE_OQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 12]		AVX,SANDYBRIDGE
-VCMPUNORD_SSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 13]		AVX,SANDYBRIDGE
-VCMPNEQ_USSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 14]		AVX,SANDYBRIDGE
-VCMPNLT_UQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 15]		AVX,SANDYBRIDGE
-VCMPNLE_UQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 16]		AVX,SANDYBRIDGE
-VCMPORD_SSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 17]		AVX,SANDYBRIDGE
-VCMPEQ_USSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 18]		AVX,SANDYBRIDGE
-VCMPNGE_UQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 19]		AVX,SANDYBRIDGE
-VCMPNGT_UQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 1a]		AVX,SANDYBRIDGE
-VCMPFALSE_OSSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 1b]		AVX,SANDYBRIDGE
-VCMPNEQ_OSSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 1c]		AVX,SANDYBRIDGE
-VCMPGE_OQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 1d]		AVX,SANDYBRIDGE
-VCMPGT_OQSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 1e]		AVX,SANDYBRIDGE
-VCMPTRUE_USSS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f3.0f c2 /r 1f]		AVX,SANDYBRIDGE
-VCMPSS		xmmreg,xmmreg*,xmmrm64,imm8	[rvmi:	vex.nds.lig.f3.0f c2 /r ib]		AVX,SANDYBRIDGE
-VCOMISD		xmmreg,xmmrm64			[rm:	vex.lig.66.0f 2f /r]			AVX,SANDYBRIDGE
-VCOMISS		xmmreg,xmmrm32			[rm:	vex.lig.0f 2f /r]			AVX,SANDYBRIDGE
-VCVTDQ2PD	xmmreg,xmmrm64			[rm:	vex.128.f3.0f e6 /r]			AVX,SANDYBRIDGE
-VCVTDQ2PD	ymmreg,xmmrm128			[rm:	vex.256.f3.0f e6 /r]			AVX,SANDYBRIDGE
-VCVTDQ2PS	xmmreg,xmmrm128			[rm:	vex.128.0f 5b /r]			AVX,SANDYBRIDGE
-VCVTDQ2PS	ymmreg,ymmrm256			[rm:	vex.256.0f 5b /r]			AVX,SANDYBRIDGE
-VCVTPD2DQ	xmmreg,xmmreg			[rm:	vex.128.f2.0f e6 /r]			AVX,SANDYBRIDGE
-VCVTPD2DQ	xmmreg,mem128			[rm:	vex.128.f2.0f e6 /r]			AVX,SANDYBRIDGE,SO
-VCVTPD2DQ	xmmreg,ymmreg			[rm:	vex.256.f2.0f e6 /r]			AVX,SANDYBRIDGE
-VCVTPD2DQ	xmmreg,mem256			[rm:	vex.256.f2.0f e6 /r]			AVX,SANDYBRIDGE,SY
-VCVTPD2PS	xmmreg,xmmreg			[rm:	vex.128.66.0f 5a /r]			AVX,SANDYBRIDGE
-VCVTPD2PS	xmmreg,mem128			[rm:	vex.128.66.0f 5a /r]			AVX,SANDYBRIDGE,SO
-VCVTPD2PS	xmmreg,ymmreg			[rm:	vex.256.66.0f 5a /r]			AVX,SANDYBRIDGE
-VCVTPD2PS	xmmreg,mem256			[rm:	vex.256.66.0f 5a /r]			AVX,SANDYBRIDGE,SY
-VCVTPS2DQ	xmmreg,xmmrm128			[rm:	vex.128.66.0f 5b /r]			AVX,SANDYBRIDGE
-VCVTPS2DQ	ymmreg,ymmrm256			[rm:	vex.256.66.0f 5b /r]			AVX,SANDYBRIDGE
-VCVTPS2PD	xmmreg,xmmrm64			[rm:	vex.128.0f 5a /r]			AVX,SANDYBRIDGE
-VCVTPS2PD	ymmreg,xmmrm128			[rm:	vex.256.0f 5a /r]			AVX,SANDYBRIDGE
-VCVTSD2SI	reg32,xmmrm64			[rm:	vex.lig.f2.0f.w0 2d /r]			AVX,SANDYBRIDGE
-VCVTSD2SI	reg64,xmmrm64			[rm:	vex.lig.f2.0f.w1 2d /r]			AVX,SANDYBRIDGE,LONG
-VCVTSD2SS	xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f 5a /r]		AVX,SANDYBRIDGE
-VCVTSI2SD	xmmreg,xmmreg*,rm32		[rvm:	vex.nds.lig.f2.0f.w0 2a /r]		AVX,SANDYBRIDGE,SD
-VCVTSI2SD	xmmreg,xmmreg*,mem32		[rvm:	vex.nds.lig.f2.0f.w0 2a /r]		AVX,SANDYBRIDGE,ND,SD
-VCVTSI2SD	xmmreg,xmmreg*,rm64		[rvm:	vex.nds.lig.f2.0f.w1 2a /r]		AVX,SANDYBRIDGE,LONG,SQ
-VCVTSI2SS	xmmreg,xmmreg*,rm32		[rvm:	vex.nds.lig.f3.0f.w0 2a /r]		AVX,SANDYBRIDGE,SD
-VCVTSI2SS	xmmreg,xmmreg*,mem32		[rvm:	vex.nds.lig.f3.0f.w0 2a /r]		AVX,SANDYBRIDGE,ND,SD
-VCVTSI2SS	xmmreg,xmmreg*,rm64		[rvm:	vex.nds.lig.f3.0f.w1 2a /r]		AVX,SANDYBRIDGE,LONG,SQ
-VCVTSS2SD	xmmreg,xmmreg*,xmmrm32		[rvm:	vex.nds.lig.f3.0f 5a /r]		AVX,SANDYBRIDGE
-VCVTSS2SI	reg32,xmmrm32			[rm:	vex.lig.f3.0f.w0 2d /r]			AVX,SANDYBRIDGE
-VCVTSS2SI	reg64,xmmrm32			[rm:	vex.lig.f3.0f.w1 2d /r]			AVX,SANDYBRIDGE,LONG
-VCVTTPD2DQ	xmmreg,xmmreg			[rm:	vex.128.66.0f e6 /r]			AVX,SANDYBRIDGE
-VCVTTPD2DQ	xmmreg,mem128			[rm:	vex.128.66.0f e6 /r]			AVX,SANDYBRIDGE,SO
-VCVTTPD2DQ	xmmreg,ymmreg			[rm:	vex.256.66.0f e6 /r]			AVX,SANDYBRIDGE
-VCVTTPD2DQ	xmmreg,mem256			[rm:	vex.256.66.0f e6 /r]			AVX,SANDYBRIDGE,SY
-VCVTTPS2DQ	xmmreg,xmmrm128			[rm:	vex.128.f3.0f 5b /r]			AVX,SANDYBRIDGE
-VCVTTPS2DQ	ymmreg,ymmrm256			[rm:	vex.256.f3.0f 5b /r]			AVX,SANDYBRIDGE
-VCVTTSD2SI	reg32,xmmrm64			[rm:	vex.lig.f2.0f.w0 2c /r]			AVX,SANDYBRIDGE
-VCVTTSD2SI	reg64,xmmrm64			[rm:	vex.lig.f2.0f.w1 2c /r]			AVX,SANDYBRIDGE,LONG
-VCVTTSS2SI	reg32,xmmrm32			[rm:	vex.lig.f3.0f.w0 2c /r]			AVX,SANDYBRIDGE
-VCVTTSS2SI	reg64,xmmrm32			[rm:	vex.lig.f3.0f.w1 2c /r]			AVX,SANDYBRIDGE,LONG
-VDIVPD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 5e /r]		AVX,SANDYBRIDGE
-VDIVPD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 5e /r]		AVX,SANDYBRIDGE
-VDIVPS		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f 5e /r]			AVX,SANDYBRIDGE
-VDIVPS		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f 5e /r]			AVX,SANDYBRIDGE
-VDIVSD		xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f 5e /r]		AVX,SANDYBRIDGE
-VDIVSS		xmmreg,xmmreg*,xmmrm32		[rvm:	vex.nds.lig.f3.0f 5e /r]		AVX,SANDYBRIDGE
-VDPPD		xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	vex.nds.128.66.0f3a 41 /r ib]		AVX,SANDYBRIDGE
-VDPPS		xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	vex.nds.128.66.0f3a 40 /r ib]		AVX,SANDYBRIDGE
-VDPPS		ymmreg,ymmreg*,ymmrm256,imm8	[rvmi:	vex.nds.256.66.0f3a 40 /r ib]		AVX,SANDYBRIDGE
-VEXTRACTF128	xmmrm128,ymmreg,imm8		[mri:	vex.256.66.0f3a.w0 19 /r ib]		AVX,SANDYBRIDGE
-VEXTRACTPS	rm32,xmmreg,imm8		[mri:	vex.128.66.0f3a 17 /r ib]		AVX,SANDYBRIDGE
-VHADDPD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 7c /r]		AVX,SANDYBRIDGE
-VHADDPD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 7c /r]		AVX,SANDYBRIDGE
-VHADDPS		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.f2.0f 7c /r]		AVX,SANDYBRIDGE
-VHADDPS		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.f2.0f 7c /r]		AVX,SANDYBRIDGE
-VHSUBPD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 7d /r]		AVX,SANDYBRIDGE
-VHSUBPD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 7d /r]		AVX,SANDYBRIDGE
-VHSUBPS		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.f2.0f 7d /r]		AVX,SANDYBRIDGE
-VHSUBPS		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.f2.0f 7d /r]		AVX,SANDYBRIDGE
-VINSERTF128	ymmreg,ymmreg*,xmmrm128,imm8	[rvmi:	vex.nds.256.66.0f3a.w0 18 /r ib]	AVX,SANDYBRIDGE
-VINSERTPS	xmmreg,xmmreg*,xmmrm32,imm8	[rvmi:	vex.nds.128.66.0f3a 21 /r ib]		AVX,SANDYBRIDGE
-VLDDQU		xmmreg,mem128			[rm:	vex.128.f2.0f f0 /r]			AVX,SANDYBRIDGE
-VLDQQU		ymmreg,mem256			[rm:	vex.256.f2.0f f0 /r]			AVX,SANDYBRIDGE
-VLDDQU		ymmreg,mem256			[rm:	vex.256.f2.0f f0 /r]			AVX,SANDYBRIDGE
-VLDMXCSR	mem32				[m:	vex.lz.0f ae /2]			AVX,SANDYBRIDGE
-VMASKMOVDQU	xmmreg,xmmreg			[rm:	vex.128.66.0f f7 /r]			AVX,SANDYBRIDGE
-VMASKMOVPS	xmmreg,xmmreg,mem128		[rvm:	vex.nds.128.66.0f38.w0 2c /r]		AVX,SANDYBRIDGE
-VMASKMOVPS	ymmreg,ymmreg,mem256		[rvm:	vex.nds.256.66.0f38.w0 2c /r]		AVX,SANDYBRIDGE
-VMASKMOVPS	mem128,xmmreg,xmmreg		[mvr:	vex.nds.128.66.0f38.w0 2e /r]		AVX,SANDYBRIDGE,SO
-VMASKMOVPS	mem256,ymmreg,ymmreg		[mvr:	vex.nds.256.66.0f38.w0 2e /r]		AVX,SANDYBRIDGE,SY
-VMASKMOVPD	xmmreg,xmmreg,mem128		[rvm:	vex.nds.128.66.0f38.w0 2d /r]		AVX,SANDYBRIDGE
-VMASKMOVPD	ymmreg,ymmreg,mem256		[rvm:	vex.nds.256.66.0f38.w0 2d /r]		AVX,SANDYBRIDGE
-VMASKMOVPD	mem128,xmmreg,xmmreg		[mvr:	vex.nds.128.66.0f38.w0 2f /r]		AVX,SANDYBRIDGE
-VMASKMOVPD	mem256,ymmreg,ymmreg		[mvr:	vex.nds.256.66.0f38.w0 2f /r]		AVX,SANDYBRIDGE
-VMAXPD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 5f /r]		AVX,SANDYBRIDGE
-VMAXPD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 5f /r]		AVX,SANDYBRIDGE
-VMAXPS		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f 5f /r]			AVX,SANDYBRIDGE
-VMAXPS		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f 5f /r]			AVX,SANDYBRIDGE
-VMAXSD		xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f 5f /r]		AVX,SANDYBRIDGE
-VMAXSS		xmmreg,xmmreg*,xmmrm32		[rvm:	vex.nds.lig.f3.0f 5f /r]		AVX,SANDYBRIDGE
-VMINPD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 5d /r]		AVX,SANDYBRIDGE
-VMINPD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 5d /r]		AVX,SANDYBRIDGE
-VMINPS		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f 5d /r]			AVX,SANDYBRIDGE
-VMINPS		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f 5d /r]			AVX,SANDYBRIDGE
-VMINSD		xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f 5d /r]		AVX,SANDYBRIDGE
-VMINSS		xmmreg,xmmreg*,xmmrm32		[rvm:	vex.nds.lig.f3.0f 5d /r]		AVX,SANDYBRIDGE
-VMOVAPD		xmmreg,xmmrm128			[rm:	vex.128.66.0f 28 /r]			AVX,SANDYBRIDGE
-VMOVAPD		xmmrm128,xmmreg			[mr:	vex.128.66.0f 29 /r]			AVX,SANDYBRIDGE
-VMOVAPD		ymmreg,ymmrm256			[rm:	vex.256.66.0f 28 /r]			AVX,SANDYBRIDGE
-VMOVAPD		ymmrm256,ymmreg			[mr:	vex.256.66.0f 29 /r]			AVX,SANDYBRIDGE
-VMOVAPS		xmmreg,xmmrm128			[rm:	vex.128.0f 28 /r]			AVX,SANDYBRIDGE
-VMOVAPS		xmmrm128,xmmreg			[mr:	vex.128.0f 29 /r]			AVX,SANDYBRIDGE
-VMOVAPS		ymmreg,ymmrm256			[rm:	vex.256.0f 28 /r]			AVX,SANDYBRIDGE
-VMOVAPS		ymmrm256,ymmreg			[mr:	vex.256.0f 29 /r]			AVX,SANDYBRIDGE
-VMOVD		xmmreg,rm32			[rm:	vex.128.66.0f.w0 6e /r]			AVX,SANDYBRIDGE
-VMOVD		rm32,xmmreg			[mr:	vex.128.66.0f.w0 7e /r]			AVX,SANDYBRIDGE
-VMOVQ		xmmreg,xmmrm64			[rm:	vex.128.f3.0f 7e /r]			AVX,SANDYBRIDGE,SQ
-VMOVQ		xmmrm64,xmmreg			[mr:	vex.128.66.0f d6 /r]			AVX,SANDYBRIDGE,SQ
-VMOVQ		xmmreg,rm64			[rm:	vex.128.66.0f.w1 6e /r]			AVX,SANDYBRIDGE,LONG,SQ
-VMOVQ		rm64,xmmreg			[mr:	vex.128.66.0f.w1 7e /r]			AVX,SANDYBRIDGE,LONG,SQ
-VMOVDDUP	xmmreg,xmmrm64			[rm:	vex.128.f2.0f 12 /r]			AVX,SANDYBRIDGE
-VMOVDDUP	ymmreg,ymmrm256			[rm:	vex.256.f2.0f 12 /r]			AVX,SANDYBRIDGE
-VMOVDQA		xmmreg,xmmrm128			[rm:	vex.128.66.0f 6f /r]			AVX,SANDYBRIDGE
-VMOVDQA		xmmrm128,xmmreg			[mr:	vex.128.66.0f 7f /r]			AVX,SANDYBRIDGE
-; These are officially documented as VMOVDQA, but VMOVQQA seems more logical to me...
-VMOVQQA		ymmreg,ymmrm256			[rm:	vex.256.66.0f 6f /r]			AVX,SANDYBRIDGE
-VMOVQQA		ymmrm256,ymmreg			[mr:	vex.256.66.0f 7f /r]			AVX,SANDYBRIDGE
-VMOVDQA		ymmreg,ymmrm256			[rm:	vex.256.66.0f 6f /r]			AVX,SANDYBRIDGE
-VMOVDQA		ymmrm256,ymmreg			[mr:	vex.256.66.0f 7f /r]			AVX,SANDYBRIDGE
-VMOVDQU		xmmreg,xmmrm128			[rm:	vex.128.f3.0f 6f /r]			AVX,SANDYBRIDGE
-VMOVDQU		xmmrm128,xmmreg			[mr:	vex.128.f3.0f 7f /r]			AVX,SANDYBRIDGE
-; These are officially documented as VMOVDQU, but VMOVQQU seems more logical to me...
-VMOVQQU		ymmreg,ymmrm256			[rm:	vex.256.f3.0f 6f /r]			AVX,SANDYBRIDGE
-VMOVQQU		ymmrm256,ymmreg			[mr:	vex.256.f3.0f 7f /r]			AVX,SANDYBRIDGE
-VMOVDQU		ymmreg,ymmrm256			[rm:	vex.256.f3.0f 6f /r]			AVX,SANDYBRIDGE
-VMOVDQU		ymmrm256,ymmreg			[mr:	vex.256.f3.0f 7f /r]			AVX,SANDYBRIDGE
-VMOVHLPS	xmmreg,xmmreg*,xmmreg		[rvm:	vex.nds.128.0f 12 /r]			AVX,SANDYBRIDGE
-VMOVHPD		xmmreg,xmmreg*,mem64		[rvm:	vex.nds.128.66.0f 16 /r]		AVX,SANDYBRIDGE
-VMOVHPD		mem64,xmmreg			[mr:	vex.128.66.0f 17 /r]			AVX,SANDYBRIDGE
-VMOVHPS		xmmreg,xmmreg*,mem64		[rvm:	vex.nds.128.0f 16 /r]			AVX,SANDYBRIDGE
-VMOVHPS		mem64,xmmreg			[mr:	vex.128.0f 17 /r]			AVX,SANDYBRIDGE
-VMOVLHPS	xmmreg,xmmreg*,xmmreg		[rvm:	vex.nds.128.0f 16 /r]			AVX,SANDYBRIDGE
-VMOVLPD		xmmreg,xmmreg*,mem64		[rvm:	vex.nds.128.66.0f 12 /r]		AVX,SANDYBRIDGE
-VMOVLPD		mem64,xmmreg			[mr:	vex.128.66.0f 13 /r]			AVX,SANDYBRIDGE
-VMOVLPS		xmmreg,xmmreg*,mem64		[rvm:	vex.nds.128.0f 12 /r]			AVX,SANDYBRIDGE
-VMOVLPS		mem64,xmmreg			[mr:	vex.128.0f 13 /r]			AVX,SANDYBRIDGE
-VMOVMSKPD	reg64,xmmreg			[rm:	vex.128.66.0f 50 /r]			AVX,SANDYBRIDGE,LONG
-VMOVMSKPD	reg32,xmmreg			[rm:	vex.128.66.0f 50 /r]			AVX,SANDYBRIDGE
-VMOVMSKPD	reg64,ymmreg			[rm:	vex.256.66.0f 50 /r]			AVX,SANDYBRIDGE,LONG
-VMOVMSKPD	reg32,ymmreg			[rm:	vex.256.66.0f 50 /r]			AVX,SANDYBRIDGE
-VMOVMSKPS	reg64,xmmreg			[rm:	vex.128.0f 50 /r]			AVX,SANDYBRIDGE,LONG
-VMOVMSKPS	reg32,xmmreg			[rm:	vex.128.0f 50 /r]			AVX,SANDYBRIDGE
-VMOVMSKPS	reg64,ymmreg			[rm:	vex.256.0f 50 /r]			AVX,SANDYBRIDGE,LONG
-VMOVMSKPS	reg32,ymmreg			[rm:	vex.256.0f 50 /r]			AVX,SANDYBRIDGE
-VMOVNTDQ	mem128,xmmreg			[mr:	vex.128.66.0f e7 /r]			AVX,SANDYBRIDGE
-; Officially VMOVNTDQ, but VMOVNTQQ seems more logical to me...
-VMOVNTQQ	mem256,ymmreg			[mr:	vex.256.66.0f e7 /r]			AVX,SANDYBRIDGE
-VMOVNTDQ	mem256,ymmreg			[mr:	vex.256.66.0f e7 /r]			AVX,SANDYBRIDGE
-VMOVNTDQA	xmmreg,mem128			[rm:	vex.128.66.0f38 2a /r]			AVX,SANDYBRIDGE
-VMOVNTPD	mem128,xmmreg			[mr:	vex.128.66.0f 2b /r]			AVX,SANDYBRIDGE
-VMOVNTPD	mem256,ymmreg			[mr:	vex.256.66.0f 2b /r]			AVX,SANDYBRIDGE
-VMOVNTPS	mem128,xmmreg			[mr:	vex.128.0f 2b /r]			AVX,SANDYBRIDGE
-VMOVNTPS	mem256,ymmreg			[mr:	vex.256.0f 2b /r]			AVX,SANDYBRIDGE
-VMOVSD		xmmreg,xmmreg*,xmmreg		[rvm:	vex.nds.lig.f2.0f 10 /r]		AVX,SANDYBRIDGE
-VMOVSD		xmmreg,mem64			[rm:	vex.lig.f2.0f 10 /r]			AVX,SANDYBRIDGE
-VMOVSD		xmmreg,xmmreg*,xmmreg		[mvr:	vex.nds.lig.f2.0f 11 /r]		AVX,SANDYBRIDGE
-VMOVSD		mem64,xmmreg			[mr:	vex.lig.f2.0f 11 /r]			AVX,SANDYBRIDGE
-VMOVSHDUP	xmmreg,xmmrm128			[rm:	vex.128.f3.0f 16 /r]			AVX,SANDYBRIDGE
-VMOVSHDUP	ymmreg,ymmrm256			[rm:	vex.256.f3.0f 16 /r]			AVX,SANDYBRIDGE
-VMOVSLDUP	xmmreg,xmmrm128			[rm:	vex.128.f3.0f 12 /r]			AVX,SANDYBRIDGE
-VMOVSLDUP	ymmreg,ymmrm256			[rm:	vex.256.f3.0f 12 /r]			AVX,SANDYBRIDGE
-VMOVSS		xmmreg,xmmreg*,xmmreg		[rvm:	vex.nds.lig.f3.0f 10 /r]		AVX,SANDYBRIDGE
-VMOVSS		xmmreg,mem32			[rm:	vex.lig.f3.0f 10 /r]			AVX,SANDYBRIDGE
-VMOVSS		xmmreg,xmmreg*,xmmreg		[mvr:	vex.nds.lig.f3.0f 11 /r]		AVX,SANDYBRIDGE
-VMOVSS		mem32,xmmreg			[mr:	vex.lig.f3.0f 11 /r]			AVX,SANDYBRIDGE
-VMOVUPD		xmmreg,xmmrm128			[rm:	vex.128.66.0f 10 /r]			AVX,SANDYBRIDGE
-VMOVUPD		xmmrm128,xmmreg			[mr:	vex.128.66.0f 11 /r]			AVX,SANDYBRIDGE
-VMOVUPD		ymmreg,ymmrm256			[rm:	vex.256.66.0f 10 /r]			AVX,SANDYBRIDGE
-VMOVUPD		ymmrm256,ymmreg			[mr:	vex.256.66.0f 11 /r]			AVX,SANDYBRIDGE
-VMOVUPS		xmmreg,xmmrm128			[rm:	vex.128.0f 10 /r]			AVX,SANDYBRIDGE
-VMOVUPS		xmmrm128,xmmreg			[mr:	vex.128.0f 11 /r]			AVX,SANDYBRIDGE
-VMOVUPS		ymmreg,ymmrm256			[rm:	vex.256.0f 10 /r]			AVX,SANDYBRIDGE
-VMOVUPS		ymmrm256,ymmreg			[mr:	vex.256.0f 11 /r]			AVX,SANDYBRIDGE
-VMPSADBW	xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	vex.nds.128.66.0f3a 42 /r ib]		AVX,SANDYBRIDGE
-VMULPD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 59 /r]		AVX,SANDYBRIDGE
-VMULPD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 59 /r]		AVX,SANDYBRIDGE
-VMULPS		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f 59 /r]			AVX,SANDYBRIDGE
-VMULPS		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f 59 /r]			AVX,SANDYBRIDGE
-VMULSD		xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f 59 /r]		AVX,SANDYBRIDGE
-VMULSS		xmmreg,xmmreg*,xmmrm32		[rvm:	vex.nds.lig.f3.0f 59 /r]		AVX,SANDYBRIDGE
-VORPD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 56 /r]		AVX,SANDYBRIDGE
-VORPD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 56 /r]		AVX,SANDYBRIDGE
-VORPS		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f 56 /r]			AVX,SANDYBRIDGE
-VORPS		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f 56 /r]			AVX,SANDYBRIDGE
-VPABSB		xmmreg,xmmrm128			[rm:	vex.128.66.0f38 1c /r]			AVX,SANDYBRIDGE
-VPABSW		xmmreg,xmmrm128			[rm:	vex.128.66.0f38 1d /r]			AVX,SANDYBRIDGE
-VPABSD		xmmreg,xmmrm128			[rm:	vex.128.66.0f38 1e /r]			AVX,SANDYBRIDGE
-VPACKSSWB	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 63 /r]		AVX,SANDYBRIDGE
-VPACKSSDW	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 6b /r]		AVX,SANDYBRIDGE
-VPACKUSWB	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 67 /r]		AVX,SANDYBRIDGE
-VPACKUSDW	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 2b /r]		AVX,SANDYBRIDGE
-VPADDB		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f fc /r]		AVX,SANDYBRIDGE
-VPADDW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f fd /r]		AVX,SANDYBRIDGE
-VPADDD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f fe /r]		AVX,SANDYBRIDGE
-VPADDQ		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f d4 /r]		AVX,SANDYBRIDGE
-VPADDSB		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f ec /r]		AVX,SANDYBRIDGE
-VPADDSW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f ed /r]		AVX,SANDYBRIDGE
-VPADDUSB	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f dc /r]		AVX,SANDYBRIDGE
-VPADDUSW	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f dd /r]		AVX,SANDYBRIDGE
-VPALIGNR	xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	vex.nds.128.66.0f3a 0f /r ib]		AVX,SANDYBRIDGE
-VPAND		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f db /r]		AVX,SANDYBRIDGE
-VPANDN		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f df /r]		AVX,SANDYBRIDGE
-VPAVGB		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f e0 /r]		AVX,SANDYBRIDGE
-VPAVGW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f e3 /r]		AVX,SANDYBRIDGE
-VPBLENDVB	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.nds.128.66.0f3a.w0 4c /r /is4]	AVX,SANDYBRIDGE
-VPBLENDW	xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	vex.nds.128.66.0f3a 0e /r ib]		AVX,SANDYBRIDGE
-VPCMPESTRI	xmmreg,xmmrm128,imm8		[rmi:	vex.128.66.0f3a 61 /r ib]		AVX,SANDYBRIDGE
-VPCMPESTRM	xmmreg,xmmrm128,imm8		[rmi:	vex.128.66.0f3a 60 /r ib]		AVX,SANDYBRIDGE
-VPCMPISTRI	xmmreg,xmmrm128,imm8		[rmi:	vex.128.66.0f3a 63 /r ib]		AVX,SANDYBRIDGE
-VPCMPISTRM	xmmreg,xmmrm128,imm8		[rmi:	vex.128.66.0f3a 62 /r ib]		AVX,SANDYBRIDGE
-VPCMPEQB	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 74 /r]		AVX,SANDYBRIDGE
-VPCMPEQW	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 75 /r]		AVX,SANDYBRIDGE
-VPCMPEQD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 76 /r]		AVX,SANDYBRIDGE
-VPCMPEQQ	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 29 /r]		AVX,SANDYBRIDGE
-VPCMPGTB	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 64 /r]		AVX,SANDYBRIDGE
-VPCMPGTW	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 65 /r]		AVX,SANDYBRIDGE
-VPCMPGTD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 66 /r]		AVX,SANDYBRIDGE
-VPCMPGTQ	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 37 /r]		AVX,SANDYBRIDGE
-VPERMILPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38.w0 0d /r]		AVX,SANDYBRIDGE
-VPERMILPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38.w0 0d /r]		AVX,SANDYBRIDGE
-VPERMILPD	xmmreg,xmmrm128,imm8		[rmi:	vex.128.66.0f3a.w0 05 /r ib]		AVX,SANDYBRIDGE
-VPERMILPD	ymmreg,ymmrm256,imm8		[rmi:	vex.256.66.0f3a.w0 05 /r ib]		AVX,SANDYBRIDGE
-VPERMILPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38.w0 0c /r]		AVX,SANDYBRIDGE
-VPERMILPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38.w0 0c /r]		AVX,SANDYBRIDGE
-VPERMILPS	xmmreg,xmmrm128,imm8		[rmi:	vex.128.66.0f3a.w0 04 /r ib]		AVX,SANDYBRIDGE
-VPERMILPS	ymmreg,ymmrm256,imm8		[rmi:	vex.256.66.0f3a.w0 04 /r ib]		AVX,SANDYBRIDGE
-VPERM2F128	ymmreg,ymmreg*,ymmrm256,imm8	[rvmi:	vex.nds.256.66.0f3a.w0 06 /r ib]	AVX,SANDYBRIDGE
-VPEXTRB		reg64,xmmreg,imm8		[mri:	vex.128.66.0f3a.w0 14 /r ib]		AVX,SANDYBRIDGE,LONG
-VPEXTRB		reg32,xmmreg,imm8		[mri:	vex.128.66.0f3a.w0 14 /r ib]		AVX,SANDYBRIDGE
-VPEXTRB		mem8,xmmreg,imm8		[mri:	vex.128.66.0f3a.w0 14 /r ib]		AVX,SANDYBRIDGE
-VPEXTRW		reg64,xmmreg,imm8		[rmi:	vex.128.66.0f.w0 c5 /r ib]		AVX,SANDYBRIDGE,LONG
-VPEXTRW		reg32,xmmreg,imm8		[rmi:	vex.128.66.0f.w0 c5 /r ib]		AVX,SANDYBRIDGE
-VPEXTRW		reg64,xmmreg,imm8		[mri:	vex.128.66.0f3a.w0 15 /r ib]		AVX,SANDYBRIDGE,LONG
-VPEXTRW		reg32,xmmreg,imm8		[mri:	vex.128.66.0f3a.w0 15 /r ib]		AVX,SANDYBRIDGE
-VPEXTRW		mem16,xmmreg,imm8		[mri:	vex.128.66.0f3a.w0 15 /r ib]		AVX,SANDYBRIDGE
-VPEXTRD		reg64,xmmreg,imm8		[mri:	vex.128.66.0f3a.w0 16 /r ib]		AVX,SANDYBRIDGE,LONG
-VPEXTRD		rm32,xmmreg,imm8		[mri:	vex.128.66.0f3a.w0 16 /r ib]		AVX,SANDYBRIDGE
-VPEXTRQ		rm64,xmmreg,imm8		[mri:	vex.128.66.0f3a.w1 16 /r ib]		AVX,SANDYBRIDGE,LONG
-VPHADDW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 01 /r]		AVX,SANDYBRIDGE
-VPHADDD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 02 /r]		AVX,SANDYBRIDGE
-VPHADDSW	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 03 /r]		AVX,SANDYBRIDGE
-VPHMINPOSUW	xmmreg,xmmrm128			[rm:	vex.128.66.0f38 41 /r]			AVX,SANDYBRIDGE
-VPHSUBW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 05 /r]		AVX,SANDYBRIDGE
-VPHSUBD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 06 /r]		AVX,SANDYBRIDGE
-VPHSUBSW	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 07 /r]		AVX,SANDYBRIDGE
-VPINSRB		xmmreg,xmmreg*,mem8,imm8	[rvmi:	vex.nds.128.66.0f3a 20 /r ib]		AVX,SANDYBRIDGE
-VPINSRB		xmmreg,xmmreg*,rm8,imm8		[rvmi:	vex.nds.128.66.0f3a 20 /r ib]		AVX,SANDYBRIDGE
-VPINSRB		xmmreg,xmmreg*,reg32,imm8	[rvmi:	vex.nds.128.66.0f3a 20 /r ib]		AVX,SANDYBRIDGE
-VPINSRW		xmmreg,xmmreg*,mem16,imm8	[rvmi:	vex.nds.128.66.0f c4 /r ib]		AVX,SANDYBRIDGE
-VPINSRW		xmmreg,xmmreg*,rm16,imm8	[rvmi:	vex.nds.128.66.0f c4 /r ib]		AVX,SANDYBRIDGE
-VPINSRW		xmmreg,xmmreg*,reg32,imm8	[rvmi:	vex.nds.128.66.0f c4 /r ib]		AVX,SANDYBRIDGE
-VPINSRD		xmmreg,xmmreg*,mem32,imm8	[rvmi:	vex.nds.128.66.0f3a.w0 22 /r ib]	AVX,SANDYBRIDGE
-VPINSRD		xmmreg,xmmreg*,rm32,imm8	[rvmi:	vex.nds.128.66.0f3a.w0 22 /r ib]	AVX,SANDYBRIDGE
-VPINSRQ		xmmreg,xmmreg*,mem64,imm8	[rvmi:	vex.nds.128.66.0f3a.w1 22 /r ib]	AVX,SANDYBRIDGE,LONG
-VPINSRQ		xmmreg,xmmreg*,rm64,imm8	[rvmi:	vex.nds.128.66.0f3a.w1 22 /r ib]	AVX,SANDYBRIDGE,LONG
-VPMADDWD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f f5 /r]		AVX,SANDYBRIDGE
-VPMADDUBSW	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 04 /r]		AVX,SANDYBRIDGE
-VPMAXSB		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 3c /r]		AVX,SANDYBRIDGE
-VPMAXSW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f ee /r]		AVX,SANDYBRIDGE
-VPMAXSD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 3d /r]		AVX,SANDYBRIDGE
-VPMAXUB		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f de /r]		AVX,SANDYBRIDGE
-VPMAXUW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 3e /r]		AVX,SANDYBRIDGE
-VPMAXUD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 3f /r]		AVX,SANDYBRIDGE
-VPMINSB		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 38 /r]		AVX,SANDYBRIDGE
-VPMINSW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f ea /r]		AVX,SANDYBRIDGE
-VPMINSD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 39 /r]		AVX,SANDYBRIDGE
-VPMINUB		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f da /r]		AVX,SANDYBRIDGE
-VPMINUW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 3a /r]		AVX,SANDYBRIDGE
-VPMINUD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 3b /r]		AVX,SANDYBRIDGE
-VPMOVMSKB	reg64,xmmreg			[rm:	vex.128.66.0f d7 /r]			AVX,SANDYBRIDGE,LONG
-VPMOVMSKB	reg32,xmmreg			[rm:	vex.128.66.0f d7 /r]			AVX,SANDYBRIDGE
-VPMOVSXBW	xmmreg,xmmrm64			[rm:	vex.128.66.0f38 20 /r]			AVX,SANDYBRIDGE
-VPMOVSXBD	xmmreg,xmmrm32			[rm:	vex.128.66.0f38 21 /r]			AVX,SANDYBRIDGE
-VPMOVSXBQ	xmmreg,xmmrm16			[rm:	vex.128.66.0f38 22 /r]			AVX,SANDYBRIDGE
-VPMOVSXWD	xmmreg,xmmrm64			[rm:	vex.128.66.0f38 23 /r]			AVX,SANDYBRIDGE
-VPMOVSXWQ	xmmreg,xmmrm32			[rm:	vex.128.66.0f38 24 /r]			AVX,SANDYBRIDGE
-VPMOVSXDQ	xmmreg,xmmrm64			[rm:	vex.128.66.0f38 25 /r]			AVX,SANDYBRIDGE
-VPMOVZXBW	xmmreg,xmmrm64			[rm:	vex.128.66.0f38 30 /r]			AVX,SANDYBRIDGE
-VPMOVZXBD	xmmreg,xmmrm32			[rm:	vex.128.66.0f38 31 /r]			AVX,SANDYBRIDGE
-VPMOVZXBQ	xmmreg,xmmrm16			[rm:	vex.128.66.0f38 32 /r]			AVX,SANDYBRIDGE
-VPMOVZXWD	xmmreg,xmmrm64			[rm:	vex.128.66.0f38 33 /r]			AVX,SANDYBRIDGE
-VPMOVZXWQ	xmmreg,xmmrm32			[rm:	vex.128.66.0f38 34 /r]			AVX,SANDYBRIDGE
-VPMOVZXDQ	xmmreg,xmmrm64			[rm:	vex.128.66.0f38 35 /r]			AVX,SANDYBRIDGE
-VPMULHUW	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f e4 /r]		AVX,SANDYBRIDGE
-VPMULHRSW	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 0b /r]		AVX,SANDYBRIDGE
-VPMULHW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f e5 /r]		AVX,SANDYBRIDGE
-VPMULLW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f d5 /r]		AVX,SANDYBRIDGE
-VPMULLD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 40 /r]		AVX,SANDYBRIDGE
-VPMULUDQ	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f f4 /r]		AVX,SANDYBRIDGE
-VPMULDQ		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 28 /r]		AVX,SANDYBRIDGE
-VPOR		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f eb /r]		AVX,SANDYBRIDGE
-VPSADBW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f f6 /r]		AVX,SANDYBRIDGE
-VPSHUFB		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 00 /r]		AVX,SANDYBRIDGE
-VPSHUFD		xmmreg,xmmrm128,imm8		[rmi:	vex.128.66.0f 70 /r ib]			AVX,SANDYBRIDGE
-VPSHUFHW	xmmreg,xmmrm128,imm8		[rmi:	vex.128.f3.0f 70 /r ib]			AVX,SANDYBRIDGE
-VPSHUFLW	xmmreg,xmmrm128,imm8		[rmi:	vex.128.f2.0f 70 /r ib]			AVX,SANDYBRIDGE
-VPSIGNB		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 08 /r]		AVX,SANDYBRIDGE
-VPSIGNW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 09 /r]		AVX,SANDYBRIDGE
-VPSIGND		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38 0a /r]		AVX,SANDYBRIDGE
-VPSLLDQ		xmmreg,xmmreg*,imm8		[vmi:	vex.ndd.128.66.0f 73 /7 ib]		AVX,SANDYBRIDGE
-VPSRLDQ		xmmreg,xmmreg*,imm8		[vmi:	vex.ndd.128.66.0f 73 /3 ib]		AVX,SANDYBRIDGE
-VPSLLW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f f1 /r]		AVX,SANDYBRIDGE
-VPSLLW		xmmreg,xmmreg*,imm8		[vmi:	vex.ndd.128.66.0f 71 /6 ib]		AVX,SANDYBRIDGE
-VPSLLD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f f2 /r]		AVX,SANDYBRIDGE
-VPSLLD		xmmreg,xmmreg*,imm8		[vmi:	vex.ndd.128.66.0f 72 /6 ib]		AVX,SANDYBRIDGE
-VPSLLQ		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f f3 /r]		AVX,SANDYBRIDGE
-VPSLLQ		xmmreg,xmmreg*,imm8		[vmi:	vex.ndd.128.66.0f 73 /6 ib]		AVX,SANDYBRIDGE
-VPSRAW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f e1 /r]		AVX,SANDYBRIDGE
-VPSRAW		xmmreg,xmmreg*,imm8		[vmi:	vex.ndd.128.66.0f 71 /4 ib]		AVX,SANDYBRIDGE
-VPSRAD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f e2 /r]		AVX,SANDYBRIDGE
-VPSRAD		xmmreg,xmmreg*,imm8		[vmi:	vex.ndd.128.66.0f 72 /4 ib]		AVX,SANDYBRIDGE
-VPSRLW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f d1 /r]		AVX,SANDYBRIDGE
-VPSRLW		xmmreg,xmmreg*,imm8		[vmi:	vex.ndd.128.66.0f 71 /2 ib]		AVX,SANDYBRIDGE
-VPSRLD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f d2 /r]		AVX,SANDYBRIDGE
-VPSRLD		xmmreg,xmmreg*,imm8		[vmi:	vex.ndd.128.66.0f 72 /2 ib]		AVX,SANDYBRIDGE
-VPSRLQ		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f d3 /r]		AVX,SANDYBRIDGE
-VPSRLQ		xmmreg,xmmreg*,imm8		[vmi:	vex.ndd.128.66.0f 73 /2 ib]		AVX,SANDYBRIDGE
-VPTEST		xmmreg,xmmrm128			[rm:	vex.128.66.0f38 17 /r]			AVX,SANDYBRIDGE
-VPTEST		ymmreg,ymmrm256			[rm:	vex.256.66.0f38 17 /r]			AVX,SANDYBRIDGE
-VPSUBB		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f f8 /r]		AVX,SANDYBRIDGE
-VPSUBW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f f9 /r]		AVX,SANDYBRIDGE
-VPSUBD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f fa /r]		AVX,SANDYBRIDGE
-VPSUBQ		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f fb /r]		AVX,SANDYBRIDGE
-VPSUBSB		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f e8 /r]		AVX,SANDYBRIDGE
-VPSUBSW		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f e9 /r]		AVX,SANDYBRIDGE
-VPSUBUSB	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f d8 /r]		AVX,SANDYBRIDGE
-VPSUBUSW	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f d9 /r]		AVX,SANDYBRIDGE
-VPUNPCKHBW	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 68 /r]		AVX,SANDYBRIDGE
-VPUNPCKHWD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 69 /r]		AVX,SANDYBRIDGE
-VPUNPCKHDQ	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 6a /r]		AVX,SANDYBRIDGE
-VPUNPCKHQDQ	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 6d /r]		AVX,SANDYBRIDGE
-VPUNPCKLBW	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 60 /r]		AVX,SANDYBRIDGE
-VPUNPCKLWD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 61 /r]		AVX,SANDYBRIDGE
-VPUNPCKLDQ	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 62 /r]		AVX,SANDYBRIDGE
-VPUNPCKLQDQ	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 6c /r]		AVX,SANDYBRIDGE
-VPXOR		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f ef /r]		AVX,SANDYBRIDGE
-VRCPPS		xmmreg,xmmrm128			[rm:	vex.128.0f 53 /r]			AVX,SANDYBRIDGE
-VRCPPS		ymmreg,ymmrm256			[rm:	vex.256.0f 53 /r]			AVX,SANDYBRIDGE
-VRCPSS		xmmreg,xmmreg*,xmmrm32		[rvm:	vex.nds.lig.f3.0f 53 /r]		AVX,SANDYBRIDGE
-VRSQRTPS	xmmreg,xmmrm128			[rm:	vex.128.0f 52 /r]			AVX,SANDYBRIDGE
-VRSQRTPS	ymmreg,ymmrm256			[rm:	vex.256.0f 52 /r]			AVX,SANDYBRIDGE
-VRSQRTSS	xmmreg,xmmreg*,xmmrm32		[rvm:	vex.nds.lig.f3.0f 52 /r]		AVX,SANDYBRIDGE
-VROUNDPD	xmmreg,xmmrm128,imm8		[rmi:	vex.128.66.0f3a 09 /r ib]		AVX,SANDYBRIDGE
-VROUNDPD	ymmreg,ymmrm256,imm8		[rmi:	vex.256.66.0f3a 09 /r ib]		AVX,SANDYBRIDGE
-VROUNDPS	xmmreg,xmmrm128,imm8		[rmi:	vex.128.66.0f3a 08 /r ib]		AVX,SANDYBRIDGE
-VROUNDPS	ymmreg,ymmrm256,imm8		[rmi:	vex.256.66.0f3a 08 /r ib]		AVX,SANDYBRIDGE
-VROUNDSD	xmmreg,xmmreg*,xmmrm64,imm8	[rvmi:	vex.nds.128.66.0f3a 0b /r ib]		AVX,SANDYBRIDGE
-VROUNDSS	xmmreg,xmmreg*,xmmrm32,imm8	[rvmi:	vex.nds.128.66.0f3a 0a /r ib]		AVX,SANDYBRIDGE
-VSHUFPD		xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	vex.nds.128.66.0f c6 /r ib]		AVX,SANDYBRIDGE
-VSHUFPD		ymmreg,ymmreg*,ymmrm256,imm8	[rvmi:	vex.nds.256.66.0f c6 /r ib]		AVX,SANDYBRIDGE
-VSHUFPS		xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	vex.nds.128.0f c6 /r ib]		AVX,SANDYBRIDGE
-VSHUFPS		ymmreg,ymmreg*,ymmrm256,imm8	[rvmi:	vex.nds.256.0f c6 /r ib]		AVX,SANDYBRIDGE
-VSQRTPD		xmmreg,xmmrm128			[rm:	vex.128.66.0f 51 /r]			AVX,SANDYBRIDGE
-VSQRTPD		ymmreg,ymmrm256			[rm:	vex.256.66.0f 51 /r]			AVX,SANDYBRIDGE
-VSQRTPS		xmmreg,xmmrm128			[rm:	vex.128.0f 51 /r]			AVX,SANDYBRIDGE
-VSQRTPS		ymmreg,ymmrm256			[rm:	vex.256.0f 51 /r]			AVX,SANDYBRIDGE
-VSQRTSD		xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f 51 /r]		AVX,SANDYBRIDGE
-VSQRTSS		xmmreg,xmmreg*,xmmrm32		[rvm:	vex.nds.lig.f3.0f 51 /r]		AVX,SANDYBRIDGE
-VSTMXCSR	mem32				[m:	vex.128.0f ae /3]			AVX,SANDYBRIDGE
-VSUBPD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 5c /r]		AVX,SANDYBRIDGE
-VSUBPD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 5c /r]		AVX,SANDYBRIDGE
-VSUBPS		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f 5c /r]			AVX,SANDYBRIDGE
-VSUBPS		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f 5c /r]			AVX,SANDYBRIDGE
-VSUBSD		xmmreg,xmmreg*,xmmrm64		[rvm:	vex.nds.lig.f2.0f 5c /r]		AVX,SANDYBRIDGE
-VSUBSS		xmmreg,xmmreg*,xmmrm32		[rvm:	vex.nds.lig.f3.0f 5c /r]		AVX,SANDYBRIDGE
-VTESTPS		xmmreg,xmmrm128			[rm:	vex.128.66.0f38.w0 0e /r]		AVX,SANDYBRIDGE
-VTESTPS		ymmreg,ymmrm256			[rm:	vex.256.66.0f38.w0 0e /r]		AVX,SANDYBRIDGE
-VTESTPD		xmmreg,xmmrm128			[rm:	vex.128.66.0f38.w0 0f /r]		AVX,SANDYBRIDGE
-VTESTPD		ymmreg,ymmrm256			[rm:	vex.256.66.0f38.w0 0f /r]		AVX,SANDYBRIDGE
-VUCOMISD	xmmreg,xmmrm64			[rm:	vex.lig.66.0f 2e /r]			AVX,SANDYBRIDGE
-VUCOMISS	xmmreg,xmmrm32			[rm:	vex.lig.0f 2e /r]			AVX,SANDYBRIDGE
-VUNPCKHPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 15 /r]		AVX,SANDYBRIDGE
-VUNPCKHPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 15 /r]		AVX,SANDYBRIDGE
-VUNPCKHPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f 15 /r]			AVX,SANDYBRIDGE
-VUNPCKHPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f 15 /r]			AVX,SANDYBRIDGE
-VUNPCKLPD	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 14 /r]		AVX,SANDYBRIDGE
-VUNPCKLPD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 14 /r]		AVX,SANDYBRIDGE
-VUNPCKLPS	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f 14 /r]			AVX,SANDYBRIDGE
-VUNPCKLPS	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f 14 /r]			AVX,SANDYBRIDGE
-VXORPD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f 57 /r]		AVX,SANDYBRIDGE
-VXORPD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 57 /r]		AVX,SANDYBRIDGE
-VXORPS		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.0f 57 /r]			AVX,SANDYBRIDGE
-VXORPS		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.0f 57 /r]			AVX,SANDYBRIDGE
-VZEROALL	void				[	vex.256.0f.w0 77]			AVX,SANDYBRIDGE
-VZEROUPPER	void				[	vex.128.0f.w0 77]			AVX,SANDYBRIDGE
-
-;# Intel Carry-Less Multiplication instructions (CLMUL)
-PCLMULLQLQDQ	xmmreg,xmmrm128			[rm:	66 0f 3a 44 /r 00]			SSE,WESTMERE
-PCLMULHQLQDQ	xmmreg,xmmrm128			[rm:	66 0f 3a 44 /r 01]			SSE,WESTMERE
-PCLMULLQHQDQ	xmmreg,xmmrm128			[rm:	66 0f 3a 44 /r 10]			SSE,WESTMERE
-PCLMULHQHQDQ	xmmreg,xmmrm128			[rm:	66 0f 3a 44 /r 11]			SSE,WESTMERE
-PCLMULQDQ	xmmreg,xmmrm128,imm8		[rmi:	66 0f 3a 44 /r ib]			SSE,WESTMERE
-
-;# Intel AVX Carry-Less Multiplication instructions (CLMUL)
-VPCLMULLQLQDQ	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f3a 44 /r 00]		AVX,SANDYBRIDGE
-VPCLMULHQLQDQ	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f3a 44 /r 01]		AVX,SANDYBRIDGE
-VPCLMULLQHQDQ	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f3a 44 /r 10]		AVX,SANDYBRIDGE
-VPCLMULHQHQDQ	xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f3a 44 /r 11]		AVX,SANDYBRIDGE
-VPCLMULQDQ	xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	vex.nds.128.66.0f3a 44 /r ib]		AVX,SANDYBRIDGE
-
-;# Intel Fused Multiply-Add instructions (FMA)
-VFMADD132PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 98 /r]		FMA,FUTURE
-VFMADD132PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 98 /r]		FMA,FUTURE
-VFMADD132PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 98 /r]		FMA,FUTURE
-VFMADD132PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 98 /r]		FMA,FUTURE
-VFMADD312PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 98 /r]		FMA,FUTURE
-VFMADD312PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 98 /r]		FMA,FUTURE
-VFMADD312PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 98 /r]		FMA,FUTURE
-VFMADD312PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 98 /r]		FMA,FUTURE
-VFMADD213PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 a8 /r]		FMA,FUTURE
-VFMADD213PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 a8 /r]		FMA,FUTURE
-VFMADD213PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 a8 /r]		FMA,FUTURE
-VFMADD213PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 a8 /r]		FMA,FUTURE
-VFMADD123PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 a8 /r]		FMA,FUTURE
-VFMADD123PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 a8 /r]		FMA,FUTURE
-VFMADD123PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 a8 /r]		FMA,FUTURE
-VFMADD123PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 a8 /r]		FMA,FUTURE
-VFMADD231PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 b8 /r]		FMA,FUTURE
-VFMADD231PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 b8 /r]		FMA,FUTURE
-VFMADD231PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 b8 /r]		FMA,FUTURE
-VFMADD231PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 b8 /r]		FMA,FUTURE
-VFMADD321PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 b8 /r]		FMA,FUTURE
-VFMADD321PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 b8 /r]		FMA,FUTURE
-VFMADD321PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 b8 /r]		FMA,FUTURE
-VFMADD321PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 b8 /r]		FMA,FUTURE
-VFMADDSUB132PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 96 /r]		FMA,FUTURE
-VFMADDSUB132PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 96 /r]		FMA,FUTURE
-VFMADDSUB132PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 96 /r]		FMA,FUTURE
-VFMADDSUB132PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 96 /r]		FMA,FUTURE
-VFMADDSUB312PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 96 /r]		FMA,FUTURE
-VFMADDSUB312PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 96 /r]		FMA,FUTURE
-VFMADDSUB312PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 96 /r]		FMA,FUTURE
-VFMADDSUB312PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 96 /r]		FMA,FUTURE
-VFMADDSUB213PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 a6 /r]		FMA,FUTURE
-VFMADDSUB213PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 a6 /r]		FMA,FUTURE
-VFMADDSUB213PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 a6 /r]		FMA,FUTURE
-VFMADDSUB213PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 a6 /r]		FMA,FUTURE
-VFMADDSUB123PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 a6 /r]		FMA,FUTURE
-VFMADDSUB123PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 a6 /r]		FMA,FUTURE
-VFMADDSUB123PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 a6 /r]		FMA,FUTURE
-VFMADDSUB123PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 a6 /r]		FMA,FUTURE
-VFMADDSUB231PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 b6 /r]		FMA,FUTURE
-VFMADDSUB231PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 b6 /r]		FMA,FUTURE
-VFMADDSUB231PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 b6 /r]		FMA,FUTURE
-VFMADDSUB231PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 b6 /r]		FMA,FUTURE
-VFMADDSUB321PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 b6 /r]		FMA,FUTURE
-VFMADDSUB321PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 b6 /r]		FMA,FUTURE
-VFMADDSUB321PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 b6 /r]		FMA,FUTURE
-VFMADDSUB321PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 b6 /r]		FMA,FUTURE
-VFMSUB132PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 9a /r]		FMA,FUTURE
-VFMSUB132PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 9a /r]		FMA,FUTURE
-VFMSUB132PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 9a /r]		FMA,FUTURE
-VFMSUB132PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 9a /r]		FMA,FUTURE
-VFMSUB312PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 9a /r]		FMA,FUTURE
-VFMSUB312PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 9a /r]		FMA,FUTURE
-VFMSUB312PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 9a /r]		FMA,FUTURE
-VFMSUB312PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 9a /r]		FMA,FUTURE
-VFMSUB213PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 aa /r]		FMA,FUTURE
-VFMSUB213PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 aa /r]		FMA,FUTURE
-VFMSUB213PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 aa /r]		FMA,FUTURE
-VFMSUB213PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 aa /r]		FMA,FUTURE
-VFMSUB123PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 aa /r]		FMA,FUTURE
-VFMSUB123PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 aa /r]		FMA,FUTURE
-VFMSUB123PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 aa /r]		FMA,FUTURE
-VFMSUB123PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 aa /r]		FMA,FUTURE
-VFMSUB231PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 ba /r]		FMA,FUTURE
-VFMSUB231PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 ba /r]		FMA,FUTURE
-VFMSUB231PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 ba /r]		FMA,FUTURE
-VFMSUB231PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 ba /r]		FMA,FUTURE
-VFMSUB321PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 ba /r]		FMA,FUTURE
-VFMSUB321PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 ba /r]		FMA,FUTURE
-VFMSUB321PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 ba /r]		FMA,FUTURE
-VFMSUB321PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 ba /r]		FMA,FUTURE
-VFMSUBADD132PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 97 /r]		FMA,FUTURE
-VFMSUBADD132PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 97 /r]		FMA,FUTURE
-VFMSUBADD132PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 97 /r]		FMA,FUTURE
-VFMSUBADD132PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 97 /r]		FMA,FUTURE
-VFMSUBADD312PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 97 /r]		FMA,FUTURE
-VFMSUBADD312PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 97 /r]		FMA,FUTURE
-VFMSUBADD312PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 97 /r]		FMA,FUTURE
-VFMSUBADD312PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 97 /r]		FMA,FUTURE
-VFMSUBADD213PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 a7 /r]		FMA,FUTURE
-VFMSUBADD213PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 a7 /r]		FMA,FUTURE
-VFMSUBADD213PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 a7 /r]		FMA,FUTURE
-VFMSUBADD213PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 a7 /r]		FMA,FUTURE
-VFMSUBADD123PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 a7 /r]		FMA,FUTURE
-VFMSUBADD123PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 a7 /r]		FMA,FUTURE
-VFMSUBADD123PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 a7 /r]		FMA,FUTURE
-VFMSUBADD123PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 a7 /r]		FMA,FUTURE
-VFMSUBADD231PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 b7 /r]		FMA,FUTURE
-VFMSUBADD231PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 b7 /r]		FMA,FUTURE
-VFMSUBADD231PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 b7 /r]		FMA,FUTURE
-VFMSUBADD231PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 b7 /r]		FMA,FUTURE
-VFMSUBADD321PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 b7 /r]		FMA,FUTURE
-VFMSUBADD321PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 b7 /r]		FMA,FUTURE
-VFMSUBADD321PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 b7 /r]		FMA,FUTURE
-VFMSUBADD321PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 b7 /r]		FMA,FUTURE
-VFNMADD132PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 9c /r]		FMA,FUTURE
-VFNMADD132PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 9c /r]		FMA,FUTURE
-VFNMADD132PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 9c /r]		FMA,FUTURE
-VFNMADD132PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 9c /r]		FMA,FUTURE
-VFNMADD312PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 9c /r]		FMA,FUTURE
-VFNMADD312PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 9c /r]		FMA,FUTURE
-VFNMADD312PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 9c /r]		FMA,FUTURE
-VFNMADD312PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 9c /r]		FMA,FUTURE
-VFNMADD213PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 ac /r]		FMA,FUTURE
-VFNMADD213PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 ac /r]		FMA,FUTURE
-VFNMADD213PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 ac /r]		FMA,FUTURE
-VFNMADD213PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 ac /r]		FMA,FUTURE
-VFNMADD123PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 ac /r]		FMA,FUTURE
-VFNMADD123PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 ac /r]		FMA,FUTURE
-VFNMADD123PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 ac /r]		FMA,FUTURE
-VFNMADD123PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 ac /r]		FMA,FUTURE
-VFNMADD231PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 bc /r]		FMA,FUTURE
-VFNMADD231PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 bc /r]		FMA,FUTURE
-VFNMADD231PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 bc /r]		FMA,FUTURE
-VFNMADD231PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 bc /r]		FMA,FUTURE
-VFNMADD321PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 bc /r]		FMA,FUTURE
-VFNMADD321PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 bc /r]		FMA,FUTURE
-VFNMADD321PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 bc /r]		FMA,FUTURE
-VFNMADD321PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 bc /r]		FMA,FUTURE
-VFNMSUB132PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 9e /r]		FMA,FUTURE
-VFNMSUB132PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 9e /r]		FMA,FUTURE
-VFNMSUB132PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 9e /r]		FMA,FUTURE
-VFNMSUB132PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 9e /r]		FMA,FUTURE
-VFNMSUB312PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 9e /r]		FMA,FUTURE
-VFNMSUB312PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 9e /r]		FMA,FUTURE
-VFNMSUB312PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 9e /r]		FMA,FUTURE
-VFNMSUB312PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 9e /r]		FMA,FUTURE
-VFNMSUB213PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 ae /r]		FMA,FUTURE
-VFNMSUB213PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 ae /r]		FMA,FUTURE
-VFNMSUB213PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 ae /r]		FMA,FUTURE
-VFNMSUB213PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 ae /r]		FMA,FUTURE
-VFNMSUB123PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 ae /r]		FMA,FUTURE
-VFNMSUB123PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 ae /r]		FMA,FUTURE
-VFNMSUB123PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 ae /r]		FMA,FUTURE
-VFNMSUB123PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 ae /r]		FMA,FUTURE
-VFNMSUB231PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 be /r]		FMA,FUTURE
-VFNMSUB231PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 be /r]		FMA,FUTURE
-VFNMSUB231PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 be /r]		FMA,FUTURE
-VFNMSUB231PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 be /r]		FMA,FUTURE
-VFNMSUB321PS	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w0 be /r]		FMA,FUTURE
-VFNMSUB321PS	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w0 be /r]		FMA,FUTURE
-VFNMSUB321PD	xmmreg,xmmreg,xmmrm128		[rvm:	vex.dds.128.66.0f38.w1 be /r]		FMA,FUTURE
-VFNMSUB321PD	ymmreg,ymmreg,ymmrm256		[rvm:	vex.dds.256.66.0f38.w1 be /r]		FMA,FUTURE
-VFMADD132SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 99 /r]		FMA,FUTURE
-VFMADD132SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 99 /r]		FMA,FUTURE
-VFMADD312SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 99 /r]		FMA,FUTURE
-VFMADD312SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 99 /r]		FMA,FUTURE
-VFMADD213SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 a9 /r]		FMA,FUTURE
-VFMADD213SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 a9 /r]		FMA,FUTURE
-VFMADD123SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 a9 /r]		FMA,FUTURE
-VFMADD123SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 a9 /r]		FMA,FUTURE
-VFMADD231SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 b9 /r]		FMA,FUTURE
-VFMADD231SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 b9 /r]		FMA,FUTURE
-VFMADD321SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 b9 /r]		FMA,FUTURE
-VFMADD321SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 b9 /r]		FMA,FUTURE
-VFMSUB132SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 9b /r]		FMA,FUTURE
-VFMSUB132SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 9b /r]		FMA,FUTURE
-VFMSUB312SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 9b /r]		FMA,FUTURE
-VFMSUB312SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 9b /r]		FMA,FUTURE
-VFMSUB213SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 ab /r]		FMA,FUTURE
-VFMSUB213SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 ab /r]		FMA,FUTURE
-VFMSUB123SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 ab /r]		FMA,FUTURE
-VFMSUB123SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 ab /r]		FMA,FUTURE
-VFMSUB231SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 bb /r]		FMA,FUTURE
-VFMSUB231SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 bb /r]		FMA,FUTURE
-VFMSUB321SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 bb /r]		FMA,FUTURE
-VFMSUB321SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 bb /r]		FMA,FUTURE
-VFNMADD132SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 9d /r]		FMA,FUTURE
-VFNMADD132SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 9d /r]		FMA,FUTURE
-VFNMADD312SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 9d /r]		FMA,FUTURE
-VFNMADD312SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 9d /r]		FMA,FUTURE
-VFNMADD213SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 ad /r]		FMA,FUTURE
-VFNMADD213SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 ad /r]		FMA,FUTURE
-VFNMADD123SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 ad /r]		FMA,FUTURE
-VFNMADD123SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 ad /r]		FMA,FUTURE
-VFNMADD231SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 bd /r]		FMA,FUTURE
-VFNMADD231SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 bd /r]		FMA,FUTURE
-VFNMADD321SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 bd /r]		FMA,FUTURE
-VFNMADD321SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 bd /r]		FMA,FUTURE
-VFNMSUB132SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 9f /r]		FMA,FUTURE
-VFNMSUB132SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 9f /r]		FMA,FUTURE
-VFNMSUB312SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 9f /r]		FMA,FUTURE
-VFNMSUB312SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 9f /r]		FMA,FUTURE
-VFNMSUB213SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 af /r]		FMA,FUTURE
-VFNMSUB213SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 af /r]		FMA,FUTURE
-VFNMSUB123SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 af /r]		FMA,FUTURE
-VFNMSUB123SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 af /r]		FMA,FUTURE
-VFNMSUB231SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 bf /r]		FMA,FUTURE
-VFNMSUB231SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 bf /r]		FMA,FUTURE
-VFNMSUB321SS	xmmreg,xmmreg,xmmrm32		[rvm:	vex.dds.128.66.0f38.w0 bf /r]		FMA,FUTURE
-VFNMSUB321SD	xmmreg,xmmreg,xmmrm64		[rvm:	vex.dds.128.66.0f38.w1 bf /r]		FMA,FUTURE
-
-;# Intel post-32 nm processor instructions
-;
-; Per AVX spec revision 7, document 319433-007
-RDFSBASE	reg32				[m:	norexw f3 0f ae /0]			LONG,FUTURE
-RDFSBASE	reg64				[m:	o64 f3 0f ae /0]			LONG,FUTURE
-RDGSBASE	reg32				[m:	norexw f3 0f ae /1]			LONG,FUTURE
-RDGSBASE	reg64				[m:	o64 f3 0f ae /1]			LONG,FUTURE
-RDRAND		reg16				[m:	o16 0f c7 /6]				FUTURE
-RDRAND		reg32				[m:	o32 0f c7 /6]				FUTURE
-RDRAND		reg64				[m:	o64 0f c7 /6]				LONG,FUTURE
-WRFSBASE	reg32				[m:	norexw f3 0f ae /2]			LONG,FUTURE
-WRFSBASE	reg64				[m:	o64 f3 0f ae /2]			LONG,FUTURE
-WRGSBASE	reg32				[m:	norexw f3 0f ae /3]			LONG,FUTURE
-WRGSBASE	reg64				[m:	o64 f3 0f ae /3]			LONG,FUTURE
-VCVTPH2PS	ymmreg,xmmrm128			[rm:	vex.256.66.0f38.w0 13 /r]		AVX,FUTURE
-VCVTPH2PS	xmmreg,xmmrm64			[rm:	vex.128.66.0f38.w0 13 /r]		AVX,FUTURE
-VCVTPS2PH	xmmrm128,ymmreg,imm8		[mri:	vex.256.66.0f3a.w0 1d /r ib]		AVX,FUTURE
-VCVTPS2PH	xmmrm64,xmmreg,imm8		[mri:	vex.128.66.0f3a.w0 1d /r ib]		AVX,FUTURE
-
-; Per AVX spec revision 13, document 319433-013
-ADCX		reg32,rm32			[rm:	norexw 66 0f 38 f6 /r]			FUTURE
-ADCX		reg64,rm64			[rm:	o64 66 0f 38 f6 /r]			LONG,FUTURE
-ADOX		reg32,rm32			[rm:	norexw f3 0f 38 f6 /r]			FUTURE
-ADOX		reg64,rm64			[rm:	o64 f3 0f 38 f6 /r]			LONG,FUTURE
-RDSEED		reg16				[m:	o16 0f c7 /7]				FUTURE
-RDSEED		reg32				[m:	o32 0f c7 /7]				FUTURE
-RDSEED		reg64				[m:	o64 0f c7 /7]				LONG,FUTURE
-
-; Per AVX spec revision 14, document 319433-014
-CLAC		void				[	0f 01 ca]				PRIV,FUTURE
-STAC		void				[	0f 01 cb]				PRIV,FUTURE
-
-;# VIA (Centaur) security instructions
-XSTORE		void				[	0f a7 c0]				PENT,CYRIX
-XCRYPTECB	void				[	mustrep 0f a7 c8]			PENT,CYRIX
-XCRYPTCBC	void				[	mustrep 0f a7 d0]			PENT,CYRIX
-XCRYPTCTR	void				[	mustrep 0f a7 d8]			PENT,CYRIX
-XCRYPTCFB	void				[	mustrep 0f a7 e0]			PENT,CYRIX
-XCRYPTOFB	void				[	mustrep 0f a7 e8]			PENT,CYRIX
-MONTMUL		void				[	mustrep 0f a6 c0]			PENT,CYRIX
-XSHA1		void				[	mustrep 0f a6 c8]			PENT,CYRIX
-XSHA256		void				[	mustrep 0f a6 d0]			PENT,CYRIX
-
-;# AMD Lightweight Profiling (LWP) instructions
-;
-; based on pub number 43724 revision 3.04 date August 2009
-;
-; updated to match draft from AMD developer (patch has been
-; sent to binutils
-; 2010-03-22 Quentin Neill <quentin.neill@amd.com>
-;	     Sebastian Pop  <sebastian.pop@amd.com>
-;
-LLWPCB		reg32				[m: xop.m9.w0.l0.p0 12 /0]			AMD,386
-LLWPCB		reg64				[m: xop.m9.w1.l0.p0 12 /0]			AMD,X64
-
-SLWPCB		reg32				[m: xop.m9.w0.l0.p0 12 /1]			AMD,386
-SLWPCB		reg64				[m: xop.m9.w1.l0.p0 12 /1]			AMD,X64
-
-LWPVAL		reg32,rm32,imm32		[vmi: xop.m10.w0.ndd.l0.p0 12 /1 id]		AMD,386
-LWPVAL		reg64,rm32,imm32		[vmi: xop.m10.w1.ndd.l0.p0 12 /1 id]		AMD,X64
-
-LWPINS		reg32,rm32,imm32		[vmi: xop.m10.w0.ndd.l0.p0 12 /0 id]		AMD,386
-LWPINS		reg64,rm32,imm32		[vmi: xop.m10.w1.ndd.l0.p0 12 /0 id]		AMD,X64
-
-;# AMD XOP and FMA4 instructions (SSE5)
-;
-; based on pub number 43479 revision 3.04 dated November 2009
-;
-VFMADDPD	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 69 /r /is4]		AMD,SSE5
-VFMADDPD	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.m3.w0.nds.l1.p1 69 /r /is4]		AMD,SSE5
-VFMADDPD	xmmreg,xmmreg*,xmmreg,xmmrm128	[rvsm:	vex.m3.w1.nds.l0.p1 69 /r /is4]		AMD,SSE5
-VFMADDPD	ymmreg,ymmreg*,ymmreg,ymmrm256	[rvsm:	vex.m3.w1.nds.l1.p1 69 /r /is4]		AMD,SSE5
-
-VFMADDPS	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 68 /r /is4]		AMD,SSE5
-VFMADDPS	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.m3.w0.nds.l1.p1 68 /r /is4]		AMD,SSE5
-VFMADDPS	xmmreg,xmmreg*,xmmreg,xmmrm128	[rvsm:	vex.m3.w1.nds.l0.p1 68 /r /is4]		AMD,SSE5
-VFMADDPS	ymmreg,ymmreg*,ymmreg,ymmrm256	[rvsm:	vex.m3.w1.nds.l1.p1 68 /r /is4]		AMD,SSE5
-
-VFMADDSD	xmmreg,xmmreg*,xmmrm64,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 6b /r /is4]		AMD,SSE5
-VFMADDSD	xmmreg,xmmreg*,xmmreg,xmmrm64	[rvsm:	vex.m3.w1.nds.l0.p1 6b /r /is4]		AMD,SSE5
-
-VFMADDSS	xmmreg,xmmreg*,xmmrm32,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 6a /r /is4]		AMD,SSE5
-VFMADDSS	xmmreg,xmmreg*,xmmreg,xmmrm32	[rvsm:	vex.m3.w1.nds.l0.p1 6a /r /is4]		AMD,SSE5
-
-VFMADDSUBPD	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 5d /r /is4]		AMD,SSE5
-VFMADDSUBPD	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.m3.w0.nds.l1.p1 5d /r /is4]		AMD,SSE5
-VFMADDSUBPD	xmmreg,xmmreg*,xmmreg,xmmrm128	[rvsm:	vex.m3.w1.nds.l0.p1 5d /r /is4]		AMD,SSE5
-VFMADDSUBPD	ymmreg,ymmreg*,ymmreg,ymmrm256	[rvsm:	vex.m3.w1.nds.l1.p1 5d /r /is4]		AMD,SSE5
-
-VFMADDSUBPS	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 5c /r /is4]		AMD,SSE5
-VFMADDSUBPS	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.m3.w0.nds.l1.p1 5c /r /is4]		AMD,SSE5
-VFMADDSUBPS	xmmreg,xmmreg*,xmmreg,xmmrm128	[rvsm:	vex.m3.w1.nds.l0.p1 5c /r /is4]		AMD,SSE5
-VFMADDSUBPS	ymmreg,ymmreg*,ymmreg,ymmrm256	[rvsm:	vex.m3.w1.nds.l1.p1 5c /r /is4]		AMD,SSE5
-
-VFMSUBADDPD	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 5f /r /is4]		AMD,SSE5
-VFMSUBADDPD	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.m3.w0.nds.l1.p1 5f /r /is4]		AMD,SSE5
-VFMSUBADDPD	xmmreg,xmmreg*,xmmreg,xmmrm128	[rvsm:	vex.m3.w1.nds.l0.p1 5f /r /is4]		AMD,SSE5
-VFMSUBADDPD	ymmreg,ymmreg*,ymmreg,ymmrm256	[rvsm:	vex.m3.w1.nds.l1.p1 5f /r /is4]		AMD,SSE5
-
-VFMSUBADDPS	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 5e /r /is4]		AMD,SSE5
-VFMSUBADDPS	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.m3.w0.nds.l1.p1 5e /r /is4]		AMD,SSE5
-VFMSUBADDPS	xmmreg,xmmreg*,xmmreg,xmmrm128	[rvsm:	vex.m3.w1.nds.l0.p1 5e /r /is4]		AMD,SSE5
-VFMSUBADDPS	ymmreg,ymmreg*,ymmreg,ymmrm256	[rvsm:	vex.m3.w1.nds.l1.p1 5e /r /is4]		AMD,SSE5
-
-VFMSUBPD	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 6d /r /is4]		AMD,SSE5
-VFMSUBPD	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.m3.w0.nds.l1.p1 6d /r /is4]		AMD,SSE5
-VFMSUBPD	xmmreg,xmmreg*,xmmreg,xmmrm128	[rvsm:	vex.m3.w1.nds.l0.p1 6d /r /is4]		AMD,SSE5
-VFMSUBPD	ymmreg,ymmreg*,ymmreg,ymmrm256	[rvsm:	vex.m3.w1.nds.l1.p1 6d /r /is4]		AMD,SSE5
-
-VFMSUBPS	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 6c /r /is4]		AMD,SSE5
-VFMSUBPS	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.m3.w0.nds.l1.p1 6c /r /is4]		AMD,SSE5
-VFMSUBPS	xmmreg,xmmreg*,xmmreg,xmmrm128	[rvsm:	vex.m3.w1.nds.l0.p1 6c /r /is4]		AMD,SSE5
-VFMSUBPS	ymmreg,ymmreg*,ymmreg,ymmrm256	[rvsm:	vex.m3.w1.nds.l1.p1 6c /r /is4]		AMD,SSE5
-
-VFMSUBSD	xmmreg,xmmreg*,xmmrm64,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 6f /r /is4]		AMD,SSE5
-VFMSUBSD	xmmreg,xmmreg*,xmmreg,xmmrm64	[rvsm:	vex.m3.w1.nds.l0.p1 6f /r /is4]		AMD,SSE5
-
-VFMSUBSS	xmmreg,xmmreg*,xmmrm32,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 6e /r /is4]		AMD,SSE5
-VFMSUBSS	xmmreg,xmmreg*,xmmreg,xmmrm32	[rvsm:	vex.m3.w1.nds.l0.p1 6e /r /is4]		AMD,SSE5
-
-VFNMADDPD	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 79 /r /is4]		AMD,SSE5
-VFNMADDPD	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.m3.w0.nds.l1.p1 79 /r /is4]		AMD,SSE5
-VFNMADDPD	xmmreg,xmmreg*,xmmreg,xmmrm128	[rvsm:	vex.m3.w1.nds.l0.p1 79 /r /is4]		AMD,SSE5
-VFNMADDPD	ymmreg,ymmreg*,ymmreg,ymmrm256	[rvsm:	vex.m3.w1.nds.l1.p1 79 /r /is4]		AMD,SSE5
-
-VFNMADDPS	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 78 /r /is4]		AMD,SSE5
-VFNMADDPS	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.m3.w0.nds.l1.p1 78 /r /is4]		AMD,SSE5
-VFNMADDPS	xmmreg,xmmreg*,xmmreg,xmmrm128	[rvsm:	vex.m3.w1.nds.l0.p1 78 /r /is4]		AMD,SSE5
-VFNMADDPS	ymmreg,ymmreg*,ymmreg,ymmrm256	[rvsm:	vex.m3.w1.nds.l1.p1 78 /r /is4]		AMD,SSE5
-
-VFNMADDSD	xmmreg,xmmreg*,xmmrm64,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 7b /r /is4]		AMD,SSE5
-VFNMADDSD	xmmreg,xmmreg*,xmmreg,xmmrm64	[rvsm:	vex.m3.w1.nds.l0.p1 7b /r /is4]		AMD,SSE5
-
-VFNMADDSS	xmmreg,xmmreg*,xmmrm32,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 7a /r /is4]		AMD,SSE5
-VFNMADDSS	xmmreg,xmmreg*,xmmreg,xmmrm32	[rvsm:	vex.m3.w1.nds.l0.p1 7a /r /is4]		AMD,SSE5
-
-VFNMSUBPD	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 7d /r /is4]		AMD,SSE5
-VFNMSUBPD	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.m3.w0.nds.l1.p1 7d /r /is4]		AMD,SSE5
-VFNMSUBPD	xmmreg,xmmreg*,xmmreg,xmmrm128	[rvsm:	vex.m3.w1.nds.l0.p1 7d /r /is4]		AMD,SSE5
-VFNMSUBPD	ymmreg,ymmreg*,ymmreg,ymmrm256	[rvsm:	vex.m3.w1.nds.l1.p1 7d /r /is4]		AMD,SSE5
-
-VFNMSUBPS	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 7c /r /is4]		AMD,SSE5
-VFNMSUBPS	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.m3.w0.nds.l1.p1 7c /r /is4]		AMD,SSE5
-VFNMSUBPS	xmmreg,xmmreg*,xmmreg,xmmrm128	[rvsm:	vex.m3.w1.nds.l0.p1 7c /r /is4]		AMD,SSE5
-VFNMSUBPS	ymmreg,ymmreg*,ymmreg,ymmrm256	[rvsm:	vex.m3.w1.nds.l1.p1 7c /r /is4]		AMD,SSE5
-
-VFNMSUBSD	xmmreg,xmmreg*,xmmrm64,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 7f /r /is4]		AMD,SSE5
-VFNMSUBSD	xmmreg,xmmreg*,xmmreg,xmmrm64	[rvsm:	vex.m3.w1.nds.l0.p1 7f /r /is4]		AMD,SSE5
-
-VFNMSUBSS	xmmreg,xmmreg*,xmmrm32,xmmreg	[rvms:	vex.m3.w0.nds.l0.p1 7e /r /is4]		AMD,SSE5
-VFNMSUBSS	xmmreg,xmmreg*,xmmreg,xmmrm32	[rvsm:	vex.m3.w1.nds.l0.p1 7e /r /is4]		AMD,SSE5
-
-VFRCZPD		xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 81 /r]			AMD,SSE5
-VFRCZPD		ymmreg,ymmrm256*		[rm:	xop.m9.w0.l1.p0 81 /r]			AMD,SSE5
-
-VFRCZPS		xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 80 /r]			AMD,SSE5
-VFRCZPS		ymmreg,ymmrm256*		[rm:	xop.m9.w0.l1.p0 80 /r]			AMD,SSE5
-
-VFRCZSD		xmmreg,xmmrm64*			[rm:	xop.m9.w0.l0.p0 83 /r]			AMD,SSE5
-
-VFRCZSS		xmmreg,xmmrm32*			[rm:	xop.m9.w0.l0.p0 82 /r]			AMD,SSE5
-;
-; fixed: spec mention imm[7:4] though it should be /is4 even in spec
-VPCMOV		xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	xop.m8.w0.nds.l0.p0 a2 /r /is4]		AMD,SSE5
-VPCMOV		ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	xop.m8.w0.nds.l1.p0 a2 /r /is4]		AMD,SSE5
-VPCMOV		xmmreg,xmmreg*,xmmreg,xmmrm128	[rvsm:	xop.m8.w1.nds.l0.p0 a2 /r /is4]		AMD,SSE5
-VPCMOV		ymmreg,ymmreg*,ymmreg,ymmrm256	[rvsm:	xop.m8.w1.nds.l1.p0 a2 /r /is4]		AMD,SSE5
-
-VPCOMB		xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	xop.m8.w0.nds.l0.p0 cc /r ib]		AMD,SSE5
-VPCOMD		xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	xop.m8.w0.nds.l0.p0 ce /r ib]		AMD,SSE5
-VPCOMQ		xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	xop.m8.w0.nds.l0.p0 cf /r ib]		AMD,SSE5
-;
-; fixed: spec mention only 3 operands in mnemonics
-VPCOMUB		xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	xop.m8.w0.nds.l0.p0 ec /r ib]		AMD,SSE5
-VPCOMUD		xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	xop.m8.w0.nds.l0.p0 ee /r ib]		AMD,SSE5
-VPCOMUQ		xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	xop.m8.w0.nds.l0.p0 ef /r ib]		AMD,SSE5
-;
-; fixed: spec point wrong VPCOMB in mnemonic
-VPCOMUW		xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	xop.m8.w0.nds.l0.p0 ed /r ib]		AMD,SSE5
-VPCOMW		xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	xop.m8.w0.nds.l0.p0 cd /r ib]		AMD,SSE5
-
-VPHADDBD	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 c2 /r]			AMD,SSE5
-VPHADDBQ	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 c3 /r]			AMD,SSE5
-VPHADDBW	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 c1 /r]			AMD,SSE5
-VPHADDDQ	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 cb /r]			AMD,SSE5
-;
-; fixed: spec has ymmreg for l0
-VPHADDUBD	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 d2 /r]			AMD,SSE5
-VPHADDUBQ	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 d3 /r]			AMD,SSE5
-;
-; fixed: spec has VPHADDUBWD
-VPHADDUBW	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 d1 /r]			AMD,SSE5
-;
-; fixed: opcode db
-VPHADDUDQ	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 db /r]			AMD,SSE5
-VPHADDUWD	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 d6 /r]			AMD,SSE5
-VPHADDUWQ	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 d7 /r]			AMD,SSE5
-;
-; fixed: spec has ymmreg for l0
-VPHADDWD	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 c6 /r]			AMD,SSE5
-;
-; fixed: spec has d7 opcode
-VPHADDWQ	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 c7 /r]			AMD,SSE5
-
-VPHSUBBW	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 e1 /r]			AMD,SSE5
-VPHSUBDQ	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 e3 /r]			AMD,SSE5
-VPHSUBWD	xmmreg,xmmrm128*		[rm:	xop.m9.w0.l0.p0 e2 /r]			AMD,SSE5
-
-VPMACSDD	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	xop.m8.w0.nds.l0.p0 9e /r /is4]		AMD,SSE5
-;
-; fixed: spec has 97,9f opcodes here
-VPMACSDQH	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	xop.m8.w0.nds.l0.p0 9f /r /is4]		AMD,SSE5
-VPMACSDQL	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	xop.m8.w0.nds.l0.p0 97 /r /is4]		AMD,SSE5
-VPMACSSDD	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	xop.m8.w0.nds.l0.p0 8e /r /is4]		AMD,SSE5
-VPMACSSDQH	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	xop.m8.w0.nds.l0.p0 8f /r /is4]		AMD,SSE5
-VPMACSSDQL	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	xop.m8.w0.nds.l0.p0 87 /r /is4]		AMD,SSE5
-VPMACSSWD	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	xop.m8.w0.nds.l0.p0 86 /r /is4]		AMD,SSE5
-VPMACSSWW	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	xop.m8.w0.nds.l0.p0 85 /r /is4]		AMD,SSE5
-VPMACSWD	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	xop.m8.w0.nds.l0.p0 96 /r /is4]		AMD,SSE5
-VPMACSWW	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	xop.m8.w0.nds.l0.p0 95 /r /is4]		AMD,SSE5
-VPMADCSSWD	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	xop.m8.w0.nds.l0.p0 a6 /r /is4]		AMD,SSE5
-VPMADCSWD	xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	xop.m8.w0.nds.l0.p0 b6 /r /is4]		AMD,SSE5
-
-VPPERM		xmmreg,xmmreg*,xmmreg,xmmrm128	[rvsm:	xop.m8.w1.nds.l0.p0 a3 /r /is4]		AMD,SSE5
-VPPERM		xmmreg,xmmreg*,xmmrm128,xmmreg	[rvms:	xop.m8.w0.nds.l0.p0 a3 /r /is4]		AMD,SSE5
-
-VPROTB		xmmreg,xmmrm128*,xmmreg		[rmv:	xop.m9.w0.nds.l0.p0 90 /r]		AMD,SSE5
-VPROTB		xmmreg,xmmreg*,xmmrm128		[rvm:	xop.m9.w1.nds.l0.p0 90 /r]		AMD,SSE5
-;
-; fixed: spec point xmmreg instead of reg/mem
-VPROTB		xmmreg,xmmrm128*,imm8		[rmi:	xop.m8.w0.l0.p0 c0 /r ib]		AMD,SSE5
-
-VPROTD		xmmreg,xmmrm128*,xmmreg		[rmv:	xop.m9.w0.nds.l0.p0 92 /r]		AMD,SSE5
-VPROTD		xmmreg,xmmreg*,xmmrm128		[rvm:	xop.m9.w1.nds.l0.p0 92 /r]		AMD,SSE5
-;
-; fixed: spec error /r is needed
-VPROTD		xmmreg,xmmrm128*,imm8		[rmi:	xop.m8.w0.l0.p0 c2 /r ib]		AMD,SSE5
-VPROTQ		xmmreg,xmmrm128*,xmmreg		[rmv:	xop.m9.w0.nds.l0.p0 93 /r]		AMD,SSE5
-VPROTQ		xmmreg,xmmreg*,xmmrm128		[rvm:	xop.m9.w1.nds.l0.p0 93 /r]		AMD,SSE5
-;
-; fixed: spec error /r is needed
-VPROTQ		xmmreg,xmmrm128*,imm8		[rmi:	xop.m8.w0.l0.p0 c3 /r ib]		AMD,SSE5
-VPROTW		xmmreg,xmmrm128*,xmmreg		[rmv:	xop.m9.w0.nds.l0.p0 91 /r]		AMD,SSE5
-VPROTW		xmmreg,xmmreg*,xmmrm128		[rvm:	xop.m9.w1.nds.l0.p0 91 /r]		AMD,SSE5
-VPROTW		xmmreg,xmmrm128*,imm8		[rmi:	xop.m8.w0.l0.p0 c1 /r ib]		AMD,SSE5
-
-VPSHAB		xmmreg,xmmrm128*,xmmreg		[rmv:	xop.m9.w0.nds.l0.p0 98 /r]		AMD,SSE5
-VPSHAB		xmmreg,xmmreg*,xmmrm128		[rvm:	xop.m9.w1.nds.l0.p0 98 /r]		AMD,SSE5
-
-VPSHAD		xmmreg,xmmrm128*,xmmreg		[rmv:	xop.m9.w0.nds.l0.p0 9a /r]		AMD,SSE5
-VPSHAD		xmmreg,xmmreg*,xmmrm128		[rvm:	xop.m9.w1.nds.l0.p0 9a /r]		AMD,SSE5
-
-VPSHAQ		xmmreg,xmmrm128*,xmmreg		[rmv:	xop.m9.w0.nds.l0.p0 9b /r]		AMD,SSE5
-VPSHAQ		xmmreg,xmmreg*,xmmrm128		[rvm:	xop.m9.w1.nds.l0.p0 9b /r]		AMD,SSE5
-
-VPSHAW		xmmreg,xmmrm128*,xmmreg		[rmv:	xop.m9.w0.nds.l0.p0 99 /r]		AMD,SSE5
-VPSHAW		xmmreg,xmmreg*,xmmrm128		[rvm:	xop.m9.w1.nds.l0.p0 99 /r]		AMD,SSE5
-
-VPSHLB		xmmreg,xmmrm128*,xmmreg		[rmv:	xop.m9.w0.nds.l0.p0 94 /r]		AMD,SSE5
-VPSHLB		xmmreg,xmmreg*,xmmrm128		[rvm:	xop.m9.w1.nds.l0.p0 94 /r]		AMD,SSE5
-
-;
-; fixed: spec has ymmreg for l0
-VPSHLD		xmmreg,xmmrm128*,xmmreg		[rmv:	xop.m9.w0.nds.l0.p0 96 /r]		AMD,SSE5
-VPSHLD		xmmreg,xmmreg*,xmmrm128		[rvm:	xop.m9.w1.nds.l0.p0 96 /r]		AMD,SSE5
-
-VPSHLQ		xmmreg,xmmrm128*,xmmreg		[rmv:	xop.m9.w0.nds.l0.p0 97 /r]		AMD,SSE5
-VPSHLQ		xmmreg,xmmreg*,xmmrm128		[rvm:	xop.m9.w1.nds.l0.p0 97 /r]		AMD,SSE5
-
-VPSHLW		xmmreg,xmmrm128*,xmmreg		[rmv:	xop.m9.w0.nds.l0.p0 95 /r]		AMD,SSE5
-VPSHLW		xmmreg,xmmreg*,xmmrm128		[rvm:	xop.m9.w1.nds.l0.p0 95 /r]		AMD,SSE5
-
-;# Intel AVX2 instructions
-;
-; based on pub number 319433-011 dated July 2011
-;
-VMPSADBW	ymmreg,ymmreg*,ymmrm256,imm8	[rvmi:	vex.nds.256.66.0f3a 42 /r ib]		FUTURE,AVX2
-VPABSB		ymmreg,ymmrm256			[rm:	vex.256.66.0f38 1c /r]			FUTURE,AVX2
-VPABSW		ymmreg,ymmrm256			[rm:	vex.256.66.0f38 1d /r]			FUTURE,AVX2
-VPABSD		ymmreg,ymmrm256			[rm:	vex.256.66.0f38 1e /r]			FUTURE,AVX2
-VPACKSSWB	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 63 /r]		FUTURE,AVX2
-VPACKSSDW	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 6b /r]		FUTURE,AVX2
-VPACKUSDW	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 2b /r]		FUTURE,AVX2
-VPACKUSWB	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 67 /r]		FUTURE,AVX2
-VPADDB		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f fc /r]		FUTURE,AVX2
-VPADDW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f fd /r]		FUTURE,AVX2
-VPADDD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f fe /r]		FUTURE,AVX2
-VPADDQ		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f d4 /r]		FUTURE,AVX2
-VPADDSB		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f ec /r]		FUTURE,AVX2
-VPADDSW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f ed /r]		FUTURE,AVX2
-VPADDUSB	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f dc /r]		FUTURE,AVX2
-VPADDUSW	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f dd /r]		FUTURE,AVX2
-VPALIGNR	ymmreg,ymmreg*,ymmrm256,imm8	[rvmi:	vex.nds.256.66.0f3a 0f /r ib]		FUTURE,AVX2
-VPAND		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f db /r]		FUTURE,AVX2
-VPANDN		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f df /r]		FUTURE,AVX2
-VPAVGB		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f e0 /r]		FUTURE,AVX2
-VPAVGW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f e3 /r]		FUTURE,AVX2
-VPBLENDVB	ymmreg,ymmreg*,ymmrm256,ymmreg	[rvms:	vex.nds.256.66.0f3a 4c /r /is4]		FUTURE,AVX2
-VPBLENDW	ymmreg,ymmreg*,ymmrm256,imm8	[rvmi:	vex.nds.256.66.0f3a 0e /r ib]		FUTURE,AVX2
-VPCMPEQB	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 74 /r]		FUTURE,AVX2
-VPCMPEQW	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 75 /r]		FUTURE,AVX2
-VPCMPEQD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 76 /r]		FUTURE,AVX2
-VPCMPEQQ	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 29 /r]		FUTURE,AVX2
-VPCMPGTB	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 64 /r]		FUTURE,AVX2
-VPCMPGTW	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 65 /r]		FUTURE,AVX2
-VPCMPGTD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 66 /r]		FUTURE,AVX2
-VPCMPGTQ	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 37 /r]		FUTURE,AVX2
-VPHADDW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 01 /r]		FUTURE,AVX2
-VPHADDD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 02 /r]		FUTURE,AVX2
-VPHADDSW	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 03 /r]		FUTURE,AVX2
-VPHSUBW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 05 /r]		FUTURE,AVX2
-VPHSUBD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 06 /r]		FUTURE,AVX2
-VPHSUBSW	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 07 /r]		FUTURE,AVX2
-VPMADDUBSW	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 04 /r]		FUTURE,AVX2
-VPMADDWD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f f5 /r]		FUTURE,AVX2
-VPMAXSB		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 3c /r]		FUTURE,AVX2
-VPMAXSW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f ee /r]		FUTURE,AVX2
-VPMAXSD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 3d /r]		FUTURE,AVX2
-VPMAXUB		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f de /r]		FUTURE,AVX2
-VPMAXUW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 3e /r]		FUTURE,AVX2
-VPMAXUD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 3f /r]		FUTURE,AVX2
-VPMINSB		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 38 /r]		FUTURE,AVX2
-VPMINSW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f ea /r]		FUTURE,AVX2
-VPMINSD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 39 /r]		FUTURE,AVX2
-VPMINUB		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f da /r]		FUTURE,AVX2
-VPMINUW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 3a /r]		FUTURE,AVX2
-VPMINUD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 3b /r]		FUTURE,AVX2
-VPMOVMSKB	reg32,ymmreg			[rm:	vex.256.66.0f d7 /r]			FUTURE,AVX2
-VPMOVMSKB	reg64,ymmreg			[rm:	vex.256.66.0f d7 /r]			FUTURE,AVX2
-VPMOVSXBW	ymmreg,xmmrm128			[rm:	vex.256.66.0f38 20 /r]			FUTURE,AVX2
-VPMOVSXBD	ymmreg,mem64			[rm:	vex.256.66.0f38 21 /r]			FUTURE,AVX2
-VPMOVSXBD	ymmreg,xmmreg			[rm:	vex.256.66.0f38 21 /r]			FUTURE,AVX2
-VPMOVSXBQ	ymmreg,mem32			[rm:	vex.256.66.0f38 22 /r]			FUTURE,AVX2
-VPMOVSXBQ	ymmreg,xmmreg			[rm:	vex.256.66.0f38 22 /r]			FUTURE,AVX2
-VPMOVSXWD	ymmreg,xmmrm128			[rm:	vex.256.66.0f38 23 /r]			FUTURE,AVX2
-VPMOVSXWQ	ymmreg,mem64			[rm:	vex.256.66.0f38 24 /r]			FUTURE,AVX2
-VPMOVSXWQ	ymmreg,xmmreg			[rm:	vex.256.66.0f38 24 /r]			FUTURE,AVX2
-VPMOVSXDQ	ymmreg,xmmrm128			[rm:	vex.256.66.0f38 25 /r]			FUTURE,AVX2
-VPMOVZXBW	ymmreg,xmmrm128			[rm:	vex.256.66.0f38 30 /r]			FUTURE,AVX2
-VPMOVZXBD	ymmreg,mem64			[rm:	vex.256.66.0f38 31 /r]			FUTURE,AVX2
-VPMOVZXBD	ymmreg,xmmreg			[rm:	vex.256.66.0f38 31 /r]			FUTURE,AVX2
-VPMOVZXBQ	ymmreg,mem32			[rm:	vex.256.66.0f38 32 /r]			FUTURE,AVX2
-VPMOVZXBQ	ymmreg,xmmreg			[rm:	vex.256.66.0f38 32 /r]			FUTURE,AVX2
-VPMOVZXWD	ymmreg,xmmrm128			[rm:	vex.256.66.0f38 33 /r]			FUTURE,AVX2
-VPMOVZXWQ	ymmreg,mem64			[rm:	vex.256.66.0f38 34 /r]			FUTURE,AVX2
-VPMOVZXWQ	ymmreg,xmmreg			[rm:	vex.256.66.0f38 34 /r]			FUTURE,AVX2
-VPMOVZXDQ	ymmreg,xmmrm128			[rm:	vex.256.66.0f38 35 /r]			FUTURE,AVX2
-VPMULDQ		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 28 /r]		FUTURE,AVX2
-VPMULHRSW	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 0b /r]		FUTURE,AVX2
-VPMULHUW	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f e4 /r]		FUTURE,AVX2
-VPMULHW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f e5 /r]		FUTURE,AVX2
-VPMULLW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f d5 /r]		FUTURE,AVX2
-VPMULLD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 40 /r]		FUTURE,AVX2
-VPMULUDQ	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f f4 /r]		FUTURE,AVX2
-VPOR		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f eb /r]		FUTURE,AVX2
-VPSADBW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f f6 /r]		FUTURE,AVX2
-VPSHUFB		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 00 /r]		FUTURE,AVX2
-VPSHUFD		ymmreg,ymmrm256,imm8		[rmi:	vex.256.66.0f 70 /r ib]			FUTURE,AVX2
-VPSHUFHW	ymmreg,ymmrm256,imm8		[rmi:	vex.256.f3.0f 70 /r ib]			FUTURE,AVX2
-VPSHUFLW	ymmreg,ymmrm256,imm8		[rmi:	vex.256.f2.0f 70 /r ib]			FUTURE,AVX2
-VPSIGNB		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 08 /r]		FUTURE,AVX2
-VPSIGNW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 09 /r]		FUTURE,AVX2
-VPSIGND		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38 0a /r]		FUTURE,AVX2
-VPSLLDQ		ymmreg,ymmreg*,imm8		[vmi:	vex.ndd.256.66.0f 73 /7 ib]		FUTURE,AVX2
-VPSLLW		ymmreg,ymmreg*,xmmrm128		[rvm:	vex.nds.256.66.0f f1 /r]		FUTURE,AVX2
-VPSLLW		ymmreg,ymmreg*,imm8		[vmi:	vex.ndd.256.66.0f 71 /6 ib]		FUTURE,AVX2
-VPSLLD		ymmreg,ymmreg*,xmmrm128		[rvm:	vex.nds.256.66.0f f2 /r]		FUTURE,AVX2
-VPSLLD		ymmreg,ymmreg*,imm8		[vmi:	vex.ndd.256.66.0f 72 /6 ib]		FUTURE,AVX2
-VPSLLQ		ymmreg,ymmreg*,xmmrm128		[rvm:	vex.nds.256.66.0f f3 /r]		FUTURE,AVX2
-VPSLLQ		ymmreg,ymmreg*,imm8		[vmi:	vex.ndd.256.66.0f 73 /6 ib]		FUTURE,AVX2
-VPSRAW		ymmreg,ymmreg*,xmmrm128		[rvm:	vex.nds.256.66.0f e1 /r]		FUTURE,AVX2
-VPSRAW		ymmreg,ymmreg*,imm8		[vmi:	vex.ndd.256.66.0f 71 /4 ib]		FUTURE,AVX2
-VPSRAD		ymmreg,ymmreg*,xmmrm128		[rvm:	vex.nds.256.66.0f e2 /r]		FUTURE,AVX2
-VPSRAD		ymmreg,ymmreg*,imm8		[vmi:	vex.ndd.256.66.0f 72 /4 ib]		FUTURE,AVX2
-VPSRLDQ		ymmreg,ymmreg*,imm8		[vmi:	vex.ndd.256.66.0f 73 /3 ib]		FUTURE,AVX2
-VPSRLW		ymmreg,ymmreg*,xmmrm128		[rvm:	vex.nds.256.66.0f d1 /r]		FUTURE,AVX2
-VPSRLW		ymmreg,ymmreg*,imm8		[vmi:	vex.ndd.256.66.0f 71 /2 ib]		FUTURE,AVX2
-VPSRLD		ymmreg,ymmreg*,xmmrm128		[rvm:	vex.nds.256.66.0f d2 /r]		FUTURE,AVX2
-VPSRLD		ymmreg,ymmreg*,imm8		[vmi:	vex.ndd.256.66.0f 72 /2 ib]		FUTURE,AVX2
-VPSRLQ		ymmreg,ymmreg*,xmmrm128		[rvm:	vex.nds.256.66.0f d3 /r]		FUTURE,AVX2
-VPSRLQ		ymmreg,ymmreg*,imm8		[vmi:	vex.ndd.256.66.0f.wig 73 /2 ib]		FUTURE,AVX2
-VPSUBB		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f f8 /r]		FUTURE,AVX2
-VPSUBW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f f9 /r]		FUTURE,AVX2
-VPSUBD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f fa /r]		FUTURE,AVX2
-VPSUBQ		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f fb /r]		FUTURE,AVX2
-VPSUBSB		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f e8 /r]		FUTURE,AVX2
-VPSUBSW		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f e9 /r]		FUTURE,AVX2
-VPSUBUSB	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f d8 /r]		FUTURE,AVX2
-VPSUBUSW	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f d9 /r]		FUTURE,AVX2
-VPUNPCKHBW	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 68 /r]		FUTURE,AVX2
-VPUNPCKHWD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 69 /r]		FUTURE,AVX2
-VPUNPCKHDQ	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 6a /r]		FUTURE,AVX2
-VPUNPCKHQDQ	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 6d /r]		FUTURE,AVX2
-VPUNPCKLBW	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 60 /r]		FUTURE,AVX2
-VPUNPCKLWD	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 61 /r]		FUTURE,AVX2
-VPUNPCKLDQ	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 62 /r]		FUTURE,AVX2
-VPUNPCKLQDQ	ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f 6c /r]		FUTURE,AVX2
-VPXOR		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f ef /r]		FUTURE,AVX2
-VMOVNTDQA	ymmreg,mem256			[rm:	vex.256.66.0f38 2a /r]			FUTURE,AVX2
-VBROADCASTSS	xmmreg,xmmreg			[rm:	vex.128.66.0f38.w0 18 /r]		FUTURE,AVX2
-VBROADCASTSS	ymmreg,xmmreg			[rm:	vex.256.66.0f38.w0 18 /r]		FUTURE,AVX2
-VBROADCASTSD	ymmreg,xmmreg			[rm:	vex.256.66.0f38.w0 19 /r]		FUTURE,AVX2
-VBROADCASTI128	ymmreg,mem128			[rm:	vex.256.66.0f38.w0 5a /r]		FUTURE,AVX2
-VPBLENDD	xmmreg,xmmreg*,xmmrm128,imm8	[rvmi:	vex.nds.128.66.0f3a.w0 02 /r ib]	FUTURE,AVX2
-VPBLENDD	ymmreg,ymmreg*,ymmrm256,imm8	[rvmi:	vex.nds.256.66.0f3a.w0 02 /r ib]	FUTURE,AVX2
-VPBROADCASTB	xmmreg,mem8			[rm:	vex.128.66.0f38.w0 78 /r]		FUTURE,AVX2
-VPBROADCASTB	xmmreg,xmmreg			[rm:	vex.128.66.0f38.w0 78 /r]		FUTURE,AVX2
-VPBROADCASTB	ymmreg,mem8			[rm:	vex.256.66.0f38.w0 78 /r]		FUTURE,AVX2
-VPBROADCASTB	ymmreg,xmmreg			[rm:	vex.256.66.0f38.w0 78 /r]		FUTURE,AVX2
-VPBROADCASTW	xmmreg,mem16			[rm:	vex.128.66.0f38.w0 79 /r]		FUTURE,AVX2
-VPBROADCASTW	xmmreg,xmmreg			[rm:	vex.128.66.0f38.w0 79 /r]		FUTURE,AVX2
-VPBROADCASTW	ymmreg,mem16			[rm:	vex.256.66.0f38.w0 79 /r]		FUTURE,AVX2
-VPBROADCASTW	ymmreg,xmmreg			[rm:	vex.256.66.0f38.w0 79 /r]		FUTURE,AVX2
-VPBROADCASTD	xmmreg,mem32			[rm:	vex.128.66.0f38.w0 58 /r]		FUTURE,AVX2
-VPBROADCASTD	xmmreg,xmmreg			[rm:	vex.128.66.0f38.w0 58 /r]		FUTURE,AVX2
-VPBROADCASTD	ymmreg,mem32			[rm:	vex.256.66.0f38.w0 58 /r]		FUTURE,AVX2
-VPBROADCASTD	ymmreg,xmmreg			[rm:	vex.256.66.0f38.w0 58 /r]		FUTURE,AVX2
-VPBROADCASTQ	xmmreg,mem64			[rm:	vex.128.66.0f38.w0 59 /r]		FUTURE,AVX2
-VPBROADCASTQ	xmmreg,xmmreg			[rm:	vex.128.66.0f38.w0 59 /r]		FUTURE,AVX2
-VPBROADCASTQ	ymmreg,mem64			[rm:	vex.256.66.0f38.w0 59 /r]		FUTURE,AVX2
-VPBROADCASTQ	ymmreg,xmmreg			[rm:	vex.256.66.0f38.w0 59 /r]		FUTURE,AVX2
-
-VPERMD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38.w0 36 /r]		FUTURE,AVX2
-VPERMPD		ymmreg,ymmrm256,imm8		[rmi:	vex.256.66.0f3a.w1 01 /r ib]		FUTURE,AVX2
-VPERMPS		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38.w0 16 /r]		FUTURE,AVX2
-VPERMQ		ymmreg,ymmrm256,imm8		[rmi:	vex.256.66.0f3a.w1 00 /r ib]		FUTURE,AVX2
-VPERM2I128	ymmreg,ymmreg*,ymmrm256,imm8	[rvmi:	vex.nds.256.66.0f3a.w0 46 /r ib]	FUTURE,AVX2
-VEXTRACTI128	xmmrm128,ymmreg,imm8		[mri:	vex.256.66.0f3a.w0 39 /r ib]		FUTURE,AVX2
-
-VINSERTI128	ymmreg,ymmreg*,xmmrm128,imm8	[rvmi:	vex.nds.256.66.0f3a.w0 38 /r ib]	FUTURE,AVX2
-VPMASKMOVD	xmmreg,xmmreg*,mem128		[rvm:	vex.nds.128.66.0f38.w0 8c /r]		FUTURE,AVX2
-VPMASKMOVD	ymmreg,ymmreg*,mem256		[rvm:	vex.nds.256.66.0f38.w0 8c /r]		FUTURE,AVX2
-VPMASKMOVQ	xmmreg,xmmreg*,mem128		[rvm:	vex.nds.128.66.0f38.w1 8c /r]		FUTURE,AVX2
-VPMASKMOVQ	ymmreg,ymmreg*,mem256		[rvm:	vex.nds.256.66.0f38.w1 8c /r]		FUTURE,AVX2
-
-VPMASKMOVD	mem128,xmmreg*,xmmreg		[mvr:	vex.nds.128.66.0f38.w0 8e /r]		FUTURE,AVX2
-VPMASKMOVD	mem256,ymmreg*,ymmreg		[mvr:	vex.nds.256.66.0f38.w0 8e /r]		FUTURE,AVX2
-VPMASKMOVQ	mem128,xmmreg*,xmmreg		[mvr:	vex.nds.128.66.0f38.w1 8e /r]		FUTURE,AVX2
-VPMASKMOVQ	mem256,ymmreg*,ymmreg		[mvr:	vex.nds.256.66.0f38.w1 8e /r]		FUTURE,AVX2
-
-VPSLLVD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38.w0 47 /r]		FUTURE,AVX2
-VPSLLVQ		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38.w1 47 /r]		FUTURE,AVX2
-VPSLLVD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38.w0 47 /r]		FUTURE,AVX2
-VPSLLVQ		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38.w1 47 /r]		FUTURE,AVX2
-
-VPSRAVD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38.w0 46 /r]		FUTURE,AVX2
-VPSRAVD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38.w0 46 /r]		FUTURE,AVX2
-
-VPSRLVD		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38.w0 45 /r]		FUTURE,AVX2
-VPSRLVQ		xmmreg,xmmreg*,xmmrm128		[rvm:	vex.nds.128.66.0f38.w1 45 /r]		FUTURE,AVX2
-VPSRLVD		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38.w0 45 /r]		FUTURE,AVX2
-VPSRLVQ		ymmreg,ymmreg*,ymmrm256		[rvm:	vex.nds.256.66.0f38.w1 45 /r]		FUTURE,AVX2
-
-VGATHERDPD	xmmreg,xmem64,xmmreg		[rmv:	vm32x vex.dds.128.66.0f38.w1 92 /r]	FUTURE,AVX2
-VGATHERQPD	xmmreg,xmem64,xmmreg		[rmv:	vm64x vex.dds.128.66.0f38.w1 93 /r]	FUTURE,AVX2
-VGATHERDPD	ymmreg,xmem64,ymmreg		[rmv:	vm32x vex.dds.256.66.0f38.w1 92 /r]	FUTURE,AVX2
-VGATHERQPD	ymmreg,ymem64,ymmreg		[rmv:	vm64y vex.dds.256.66.0f38.w1 93 /r]	FUTURE,AVX2
-
-VGATHERDPS	xmmreg,xmem32,xmmreg		[rmv:	vm32x vex.dds.128.66.0f38.w0 92 /r]	FUTURE,AVX2
-VGATHERQPS	xmmreg,xmem32,xmmreg		[rmv:	vm64x vex.dds.128.66.0f38.w0 93 /r]	FUTURE,AVX2
-VGATHERDPS	ymmreg,ymem32,ymmreg		[rmv:	vm32y vex.dds.256.66.0f38.w0 92 /r]	FUTURE,AVX2
-VGATHERQPS	xmmreg,ymem32,xmmreg		[rmv:	vm64y vex.dds.256.66.0f38.w0 93 /r]	FUTURE,AVX2
-
-VPGATHERDD	xmmreg,xmem32,xmmreg		[rmv:	vm32x vex.dds.128.66.0f38.w0 90 /r]	FUTURE,AVX2
-VPGATHERQD	xmmreg,xmem32,xmmreg		[rmv:	vm64x vex.dds.128.66.0f38.w0 91 /r]	FUTURE,AVX2
-VPGATHERDD	ymmreg,ymem32,ymmreg		[rmv:	vm32y vex.dds.256.66.0f38.w0 90 /r]	FUTURE,AVX2
-VPGATHERQD	xmmreg,ymem32,xmmreg		[rmv:	vm64y vex.dds.256.66.0f38.w0 91 /r]	FUTURE,AVX2
-
-VPGATHERDQ	xmmreg,xmem64,xmmreg		[rmv:	vm32x vex.dds.128.66.0f38.w1 90 /r]	FUTURE,AVX2
-VPGATHERQQ	xmmreg,xmem64,xmmreg		[rmv:	vm64x vex.dds.128.66.0f38.w1 91 /r]	FUTURE,AVX2
-VPGATHERDQ	ymmreg,xmem64,ymmreg		[rmv:	vm32x vex.dds.256.66.0f38.w1 90 /r]	FUTURE,AVX2
-VPGATHERQQ	ymmreg,ymem64,ymmreg		[rmv:	vm64y vex.dds.256.66.0f38.w1 91 /r]	FUTURE,AVX2
-
-;# Transactional Synchronization Extensions (TSX)
-XABORT		imm				[i:	c6 f8 ib]				FUTURE,RTM
-XABORT		imm8				[i:	c6 f8 ib]				FUTURE,RTM
-XBEGIN		imm				[i:	odf c7 f8 rel]				FUTURE,RTM
-XBEGIN		imm|near			[i:	odf c7 f8 rel]				FUTURE,RTM,ND
-XBEGIN		imm16				[i:	o16 c7 f8 rel]				FUTURE,RTM,NOLONG
-XBEGIN		imm16|near			[i:	o16 c7 f8 rel]				FUTURE,RTM,NOLONG,ND
-XBEGIN		imm32				[i:	o32 c7 f8 rel]				FUTURE,RTM,NOLONG
-XBEGIN		imm32|near			[i:	o32 c7 f8 rel]				FUTURE,RTM,NOLONG,ND
-XBEGIN		imm64				[i:	o64nw c7 f8 rel]				FUTURE,RTM,LONG
-XBEGIN		imm64|near			[i:	o64nw c7 f8 rel]				FUTURE,RTM,LONG,ND
-XEND		void				[	0f 01 d5]				FUTURE,RTM
-XTEST		void				[	0f 01 d6]				FUTURE,HLE,RTM
-
-;# Intel BMI1 and BMI2 instructions, AMD TBM instructions
-;
-; based on pub number 319433-011 dated July 2011
-;
-ANDN		reg32,reg32,rm32		[rvm:	vex.nds.lz.0f38.w0 f2 /r]		FUTURE,BMI1
-ANDN		reg64,reg64,rm64		[rvm:	vex.nds.lz.0f38.w1 f2 /r]		LONG,FUTURE,BMI1
-BEXTR		reg32,rm32,reg32		[rmv:	vex.nds.lz.0f38.w0 f7 /r]		FUTURE,BMI1
-BEXTR		reg64,rm64,reg64		[rmv:	vex.nds.lz.0f38.w1 f7 /r]		LONG,FUTURE,BMI1
-BEXTR		reg32,rm32,imm32		[rmi:	xop.m10.lz.w0 10 /r id]			FUTURE,TBM
-BEXTR		reg64,rm64,imm32		[rmi:	xop.m10.lz.w1 10 /r id]			LONG,FUTURE,TBM
-BLCI		reg32,rm32			[vm:	xop.ndd.lz.m9.w0 02 /6]			FUTURE,TBM
-BLCI		reg64,rm64			[vm:	xop.ndd.lz.m9.w1 02 /6]			LONG,FUTURE,TBM
-BLCIC		reg32,rm32			[vm:	xop.ndd.lz.m9.w0 01 /5]			FUTURE,TBM
-BLCIC		reg64,rm64			[vm:	xop.ndd.lz.m9.w1 01 /5]			LONG,FUTURE,TBM
-BLSI		reg32,rm32			[vm:	vex.ndd.lz.0f38.w0 f3 /3]		FUTURE,BMI1
-BLSI		reg64,rm64			[vm:	vex.ndd.lz.0f38.w1 f3 /3]		LONG,FUTURE,BMI1
-BLSIC		reg32,rm32			[vm:	xop.ndd.lz.m9.w0 01 /6]			FUTURE,TBM
-BLSIC		reg64,rm64			[vm:	xop.ndd.lz.m9.w1 01 /6]			LONG,FUTURE,TBM
-BLCFILL		reg32,rm32			[vm:	xop.ndd.lz.m9.w0 01 /1]			FUTURE,TBM
-BLCFILL		reg64,rm64			[vm:	xop.ndd.lz.m9.w1 01 /1]			LONG,FUTURE,TBM
-BLSFILL		reg32,rm32			[vm:	xop.ndd.lz.m9.w0 01 /2]			FUTURE,TBM
-BLSFILL		reg64,rm64			[vm:	xop.ndd.lz.m9.w1 01 /2]			LONG,FUTURE,TBM
-BLCMSK		reg32,rm32			[vm:	xop.ndd.lz.m9.w0 02 /1]			FUTURE,TBM
-BLCMSK		reg64,rm64			[vm:	xop.ndd.lz.m9.w1 02 /1]			LONG,FUTURE,TBM
-BLSMSK		reg32,rm32			[vm:	vex.ndd.lz.0f38.w0 f3 /2]		FUTURE,BMI1
-BLSMSK		reg64,rm64			[vm:	vex.ndd.lz.0f38.w1 f3 /2]		LONG,FUTURE,BMI1
-BLSR		reg32,rm32			[vm:	vex.ndd.lz.0f38.w0 f3 /1]		FUTURE,BMI1
-BLSR		reg64,rm64			[vm:	vex.ndd.lz.0f38.w1 f3 /1]		LONG,FUTURE,BMI1
-BLCS		reg32,rm32			[vm:	xop.ndd.lz.m9.w0 01 /3]			FUTURE,TBM
-BLCS		reg64,rm64			[vm:	xop.ndd.lz.m9.w1 01 /3]			LONG,FUTURE,TBM
-BZHI		reg32,rm32,reg32		[rmv:	vex.nds.lz.0f38.w0 f5 /r]		FUTURE,BMI2
-BZHI		reg64,rm64,reg64		[rmv:	vex.nds.lz.0f38.w1 f5 /r]		LONG,FUTURE,BMI2
-MULX		reg32,reg32,rm32		[rvm:	vex.ndd.lz.f2.0f38.w0 f6 /r]		FUTURE,BMI2
-MULX		reg64,reg64,rm64		[rvm:	vex.ndd.lz.f2.0f38.w1 f6 /r]		LONG,FUTURE,BMI2
-PDEP		reg32,reg32,rm32		[rvm:	vex.nds.lz.f2.0f38.w0 f5 /r]		FUTURE,BMI2
-PDEP		reg64,reg64,rm64		[rvm:	vex.nds.lz.f2.0f38.w1 f5 /r]		LONG,FUTURE,BMI2
-PEXT		reg32,reg32,rm32		[rvm:	vex.nds.lz.f3.0f38.w0 f5 /r]		FUTURE,BMI2
-PEXT		reg64,reg64,rm64		[rvm:	vex.nds.lz.f3.0f38.w1 f5 /r]		LONG,FUTURE,BMI2
-RORX		reg32,rm32,imm8			[rmi:	vex.lz.f2.0f3a.w0 f0 /r ib]		FUTURE,BMI2
-RORX		reg64,rm64,imm8			[rmi:	vex.lz.f2.0f3a.w1 f0 /r ib]		LONG,FUTURE,BMI2
-SARX		reg32,rm32,reg32		[rmv:	vex.nds.lz.f3.0f38.w0 f7 /r]		FUTURE,BMI2
-SARX		reg64,rm64,reg64		[rmv:	vex.nds.lz.f3.0f38.w1 f7 /r]		LONG,FUTURE,BMI2
-SHLX		reg32,rm32,reg32		[rmv:	vex.nds.lz.66.0f38.w0 f7 /r]		FUTURE,BMI2
-SHLX		reg64,rm64,reg64		[rmv:	vex.nds.lz.66.0f38.w1 f7 /r]		LONG,FUTURE,BMI2
-SHRX		reg32,rm32,reg32		[rmv:	vex.nds.lz.f2.0f38.w0 f7 /r]		FUTURE,BMI2
-SHRX		reg64,rm64,reg64		[rmv:	vex.nds.lz.f2.0f38.w1 f7 /r]		LONG,FUTURE,BMI2
-TZCNT		reg16,rm16			[rm:	o16 f3i 0f bc /r]			FUTURE,BMI1
-TZCNT		reg32,rm32			[rm:	o32 f3i 0f bc /r]			FUTURE,BMI1
-TZCNT		reg64,rm64			[rm:	o64 f3i 0f bc /r]			LONG,FUTURE,BMI1
-TZMSK		reg32,rm32			[vm:	xop.ndd.lz.m9.w0 01 /4]			FUTURE,TBM
-TZMSK		reg64,rm64			[vm:	xop.ndd.lz.m9.w1 01 /4]			LONG,FUTURE,TBM
-T1MSKC		reg32,rm32			[vm:	xop.ndd.lz.m9.w0 01 /7]			FUTURE,TBM
-T1MSKC		reg64,rm64			[vm:	xop.ndd.lz.m9.w1 01 /7]			LONG,FUTURE,TBM
-
-PREFETCHWT1     mem8         [m:                               0f 0d /2 ]  PREFETCHWT1,FUTURE
-
-; MPX instructions
-BNDMK       bndreg,mem             [rm:         f3 0f 1b /r ]  MPX,MIB,FUTURE
-BNDCL       bndreg,mem             [rm:         f3 0f 1a /r ]  MPX,FUTURE
-BNDCL       bndreg,reg32           [rm:         f3 0f 1a /r ]  MPX,NOLONG,FUTURE
-BNDCL       bndreg,reg64           [rm:   o64nw f3 0f 1a /r ]  MPX,LONG,FUTURE
-BNDCU       bndreg,mem             [rm:         f2 0f 1a /r ]  MPX,FUTURE
-BNDCU       bndreg,reg32           [rm:         f2 0f 1a /r ]  MPX,NOLONG,FUTURE
-BNDCU       bndreg,reg64           [rm:   o64nw f2 0f 1a /r ]  MPX,LONG,FUTURE
-BNDCN       bndreg,mem             [rm:         f2 0f 1b /r ]  MPX,FUTURE
-BNDCN       bndreg,reg32           [rm:         f2 0f 1b /r ]  MPX,NOLONG,FUTURE
-BNDCN       bndreg,reg64           [rm:   o64nw f2 0f 1b /r ]  MPX,LONG,FUTURE
-BNDMOV      bndreg,bndreg          [rm:         66 0f 1a /r ]  MPX,FUTURE
-BNDMOV      bndreg,mem             [rm:         66 0f 1a /r ]  MPX,FUTURE
-BNDMOV      bndreg,bndreg          [mr:         66 0f 1b /r ]  MPX,FUTURE
-BNDMOV      mem,bndreg             [mr:         66 0f 1b /r ]  MPX,FUTURE
-BNDLDX      bndreg,mem             [rm:            0f 1a /r ]  MPX,MIB,FUTURE
-BNDLDX      bndreg,mem,reg32       [rmx:           0f 1a /r ]  MPX,MIB,NOLONG,FUTURE
-BNDLDX      bndreg,mem,reg64       [rmx:           0f 1a /r ]  MPX,MIB,LONG,FUTURE
-BNDSTX      mem,bndreg             [mr:            0f 1b /r ]  MPX,MIB,FUTURE
-BNDSTX      mem,reg32,bndreg       [mxr:           0f 1b /r ]  MPX,MIB,NOLONG,FUTURE
-BNDSTX      mem,reg64,bndreg       [mxr:           0f 1b /r ]  MPX,MIB,LONG,FUTURE
-BNDSTX      mem,bndreg,reg32       [mrx:           0f 1b /r ]  MPX,MIB,NOLONG,FUTURE
-BNDSTX      mem,bndreg,reg64       [mrx:           0f 1b /r ]  MPX,MIB,LONG,FUTURE
-
-;# MJC PUBLIC BEGIN
-KADDB           kreg,kreg,kreg                      [rvm: vex.nds.l1.66.0f.w0 4a /r ] FUTURE
-KADDD           kreg,kreg,kreg                      [rvm: vex.nds.l1.66.0f.w1 4a /r ] FUTURE
-KADDQ           kreg,kreg,kreg                      [rvm: vex.nds.l1.0f.w1 4a /r ] FUTURE
-KADDW           kreg,kreg,kreg                      [rvm: vex.nds.l1.0f.w0 4a /r ] FUTURE
-KANDB           kreg,kreg,kreg                      [rvm: vex.nds.l1.66.0f.w0 41 /r ] FUTURE
-KANDD           kreg,kreg,kreg                      [rvm: vex.nds.l1.66.0f.w1 41 /r ] FUTURE
-KANDNB          kreg,kreg,kreg                      [rvm: vex.nds.l1.66.0f.w0 42 /r ] FUTURE
-KANDND          kreg,kreg,kreg                      [rvm: vex.nds.l1.66.0f.w1 42 /r ] FUTURE
-KANDNQ          kreg,kreg,kreg                      [rvm: vex.nds.l1.0f.w1 42 /r ] FUTURE
-KANDNW          kreg,kreg,kreg                      [rvm: vex.nds.l1.0f.w0 42 /r ] FUTURE
-KANDQ           kreg,kreg,kreg                      [rvm: vex.nds.l1.0f.w1 41 /r ] FUTURE
-KANDW           kreg,kreg,kreg                      [rvm: vex.nds.l1.0f.w0 41 /r ] FUTURE
-KMOVB           kreg,krm8                           [rm: vex.l0.66.0f.w0 90 /r ] FUTURE
-KMOVB           mem8,kreg                           [mr: vex.l0.66.0f.w0 91 /r ] FUTURE
-KMOVB           kreg,reg32                          [rm: vex.l0.66.0f.w0 92 /r ] FUTURE
-KMOVB           reg32,kreg                          [rm: vex.l0.66.0f.w0 93 /r ] FUTURE
-KMOVD           kreg,krm32                          [rm: vex.l0.66.0f.w1 90 /r ] FUTURE
-KMOVD           mem32,kreg                          [mr: vex.l0.66.0f.w1 91 /r ] FUTURE
-KMOVD           kreg,reg32                          [rm: vex.l0.f2.0f.w0 92 /r ] FUTURE
-KMOVD           reg32,kreg                          [rm: vex.l0.f2.0f.w0 93 /r ] FUTURE
-KMOVQ           kreg,krm64                          [rm: vex.l0.0f.w1 90 /r ] FUTURE
-KMOVQ           mem64,kreg                          [mr: vex.l0.0f.w1 91 /r ] FUTURE
-KMOVQ           kreg,reg64                          [rm: vex.l0.f2.0f.w1 92 /r ] FUTURE
-KMOVQ           reg64,kreg                          [rm: vex.l0.f2.0f.w1 93 /r ] FUTURE
-KMOVW           kreg,krm16                          [rm: vex.l0.0f.w0 90 /r ] FUTURE
-KMOVW           mem16,kreg                          [mr: vex.l0.0f.w0 91 /r ] FUTURE
-KMOVW           kreg,reg32                          [rm: vex.l0.0f.w0 92 /r ] FUTURE
-KMOVW           reg32,kreg                          [rm: vex.l0.0f.w0 93 /r ] FUTURE
-KNOTB           kreg,kreg                           [rm: vex.l0.66.0f.w0 44 /r ] FUTURE
-KNOTD           kreg,kreg                           [rm: vex.l0.66.0f.w1 44 /r ] FUTURE
-KNOTQ           kreg,kreg                           [rm: vex.l0.0f.w1 44 /r ] FUTURE
-KNOTW           kreg,kreg                           [rm: vex.l0.0f.w0 44 /r ] FUTURE
-KORB            kreg,kreg,kreg                      [rvm: vex.nds.l1.66.0f.w0 45 /r ] FUTURE
-KORD            kreg,kreg,kreg                      [rvm: vex.nds.l1.66.0f.w1 45 /r ] FUTURE
-KORQ            kreg,kreg,kreg                      [rvm: vex.nds.l1.0f.w1 45 /r ] FUTURE
-KORTESTB        kreg,kreg                           [rm: vex.l0.66.0f.w0 98 /r ] FUTURE
-KORTESTD        kreg,kreg                           [rm: vex.l0.66.0f.w1 98 /r ] FUTURE
-KORTESTQ        kreg,kreg                           [rm: vex.l0.0f.w1 98 /r ] FUTURE
-KORTESTW        kreg,kreg                           [rm: vex.l0.0f.w0 98 /r ] FUTURE
-KORW            kreg,kreg,kreg                      [rvm: vex.nds.l1.0f.w0 45 /r ] FUTURE
-KSHIFTLB        kreg,kreg,imm8                      [rmi: vex.l0.66.0f3a.w0 32 /r ib ] FUTURE
-KSHIFTLD        kreg,kreg,imm8                      [rmi: vex.l0.66.0f3a.w0 33 /r ib ] FUTURE
-KSHIFTLQ        kreg,kreg,imm8                      [rmi: vex.l0.66.0f3a.w1 33 /r ib ] FUTURE
-KSHIFTLW        kreg,kreg,imm8                      [rmi: vex.l0.66.0f3a.w1 32 /r ib ] FUTURE
-KSHIFTRB        kreg,kreg,imm8                      [rmi: vex.l0.66.0f3a.w0 30 /r ib ] FUTURE
-KSHIFTRD        kreg,kreg,imm8                      [rmi: vex.l0.66.0f3a.w0 31 /r ib ] FUTURE
-KSHIFTRQ        kreg,kreg,imm8                      [rmi: vex.l0.66.0f3a.w1 31 /r ib ] FUTURE
-KSHIFTRW        kreg,kreg,imm8                      [rmi: vex.l0.66.0f3a.w1 30 /r ib ] FUTURE
-KTESTB          kreg,kreg                           [rm: vex.l0.66.0f.w0 99 /r ] FUTURE
-KTESTD          kreg,kreg                           [rm: vex.l0.66.0f.w1 99 /r ] FUTURE
-KTESTQ          kreg,kreg                           [rm: vex.l0.0f.w1 99 /r ] FUTURE
-KTESTW          kreg,kreg                           [rm: vex.l0.0f.w0 99 /r ] FUTURE
-KUNPCKBW        kreg,kreg,kreg                      [rvm: vex.nds.l1.66.0f.w0 4b /r ] FUTURE
-KUNPCKDQ        kreg,kreg,kreg                      [rvm: vex.nds.l1.0f.w1 4b /r ] FUTURE
-KUNPCKWD        kreg,kreg,kreg                      [rvm: vex.nds.l1.0f.w0 4b /r ] FUTURE
-KXNORB          kreg,kreg,kreg                      [rvm: vex.nds.l1.66.0f.w0 46 /r ] FUTURE
-KXNORD          kreg,kreg,kreg                      [rvm: vex.nds.l1.66.0f.w1 46 /r ] FUTURE
-KXNORQ          kreg,kreg,kreg                      [rvm: vex.nds.l1.0f.w1 46 /r ] FUTURE
-KXNORW          kreg,kreg,kreg                      [rvm: vex.nds.l1.0f.w0 46 /r ] FUTURE
-KXORB           kreg,kreg,kreg                      [rvm: vex.nds.l1.66.0f.w0 47 /r ] FUTURE
-KXORD           kreg,kreg,kreg                      [rvm: vex.nds.l1.66.0f.w1 47 /r ] FUTURE
-KXORQ           kreg,kreg,kreg                      [rvm: vex.nds.l1.0f.w1 47 /r ] FUTURE
-KXORW           kreg,kreg,kreg                      [rvm: vex.nds.l1.0f.w0 47 /r ] FUTURE
-SHA1MSG1        xmmreg,xmmrm128                     [rm: 0f 38 c9 /r ] SHA,FUTURE
-SHA1MSG2        xmmreg,xmmrm128                     [rm: 0f 38 ca /r ] SHA,FUTURE
-SHA1NEXTE       xmmreg,xmmrm128                     [rm: 0f 38 c8 /r ] SHA,FUTURE
-SHA1RNDS4       xmmreg,xmmrm128,imm8                [rmi: 0f 3a cc /r ib ] SHA,FUTURE
-SHA256MSG1      xmmreg,xmmrm128                     [rm: 0f 38 cc /r ] SHA,FUTURE
-SHA256MSG2      xmmreg,xmmrm128                     [rm: 0f 38 cd /r ] SHA,FUTURE
-SHA256RNDS2     xmmreg,xmmrm128,xmm0                [rm-: 0f 38 cb /r ] SHA,FUTURE
-SHA256RNDS2     xmmreg,xmmrm128                     [rm:  0f 38 cb /r ] SHA,FUTURE
-VADDPD          xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 58 /r ] AVX512VL,AVX512,FUTURE
-VADDPD          ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 58 /r ] AVX512VL,AVX512,FUTURE
-VADDPD          zmmreg|mask|z,zmmreg*,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f.w1 58 /r ] AVX512,FUTURE
-VADDPS          xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.0f.w0 58 /r ] AVX512VL,AVX512,FUTURE
-VADDPS          ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.0f.w0 58 /r ] AVX512VL,AVX512,FUTURE
-VADDPS          zmmreg|mask|z,zmmreg*,zmmrm512|b32|er [rvm:fv: evex.nds.512.0f.w0 58 /r ] AVX512,FUTURE
-VADDSD          xmmreg|mask|z,xmmreg*,xmmrm64|er    [rvm:t1s: evex.nds.128.f2.0f.w1 58 /r ] AVX512,FUTURE
-VADDSS          xmmreg|mask|z,xmmreg*,xmmrm32|er    [rvm:t1s: evex.nds.128.f3.0f.w0 58 /r ] AVX512,FUTURE
-VALIGND         xmmreg|mask|z,xmmreg*,xmmrm128|b32,imm8 [rvmi:fv: evex.nds.128.66.0f3a.w0 03 /r ib ] AVX512VL,AVX512,FUTURE
-VALIGND         ymmreg|mask|z,ymmreg*,ymmrm256|b32,imm8 [rvmi:fv: evex.nds.256.66.0f3a.w0 03 /r ib ] AVX512VL,AVX512,FUTURE
-VALIGND         zmmreg|mask|z,zmmreg*,zmmrm512|b32,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w0 03 /r ib ] AVX512,FUTURE
-VALIGNQ         xmmreg|mask|z,xmmreg*,xmmrm128|b64,imm8 [rvmi:fv: evex.nds.128.66.0f3a.w1 03 /r ib ] AVX512VL,AVX512,FUTURE
-VALIGNQ         ymmreg|mask|z,ymmreg*,ymmrm256|b64,imm8 [rvmi:fv: evex.nds.256.66.0f3a.w1 03 /r ib ] AVX512VL,AVX512,FUTURE
-VALIGNQ         zmmreg|mask|z,zmmreg*,zmmrm512|b64,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w1 03 /r ib ] AVX512,FUTURE
-VANDNPD         xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 55 /r ] AVX512VL,AVX512DQ,FUTURE
-VANDNPD         ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 55 /r ] AVX512VL,AVX512DQ,FUTURE
-VANDNPD         zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 55 /r ] AVX512DQ,FUTURE
-VANDNPS         xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.0f.w0 55 /r ] AVX512VL,AVX512DQ,FUTURE
-VANDNPS         ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.0f.w0 55 /r ] AVX512VL,AVX512DQ,FUTURE
-VANDNPS         zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.0f.w0 55 /r ] AVX512DQ,FUTURE
-VANDPD          xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 54 /r ] AVX512VL,AVX512DQ,FUTURE
-VANDPD          ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 54 /r ] AVX512VL,AVX512DQ,FUTURE
-VANDPD          zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 54 /r ] AVX512DQ,FUTURE
-VANDPS          xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.0f.w0 54 /r ] AVX512VL,AVX512DQ,FUTURE
-VANDPS          ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.0f.w0 54 /r ] AVX512VL,AVX512DQ,FUTURE
-VANDPS          zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.0f.w0 54 /r ] AVX512DQ,FUTURE
-VBLENDMPD       xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 65 /r ] AVX512VL,AVX512,FUTURE
-VBLENDMPD       ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 65 /r ] AVX512VL,AVX512,FUTURE
-VBLENDMPD       zmmreg|mask|z,zmmreg,zmmrm512|b64   [rvm:fv: evex.nds.512.66.0f38.w1 65 /r ] AVX512,FUTURE
-VBLENDMPS       xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 65 /r ] AVX512VL,AVX512,FUTURE
-VBLENDMPS       ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 65 /r ] AVX512VL,AVX512,FUTURE
-VBLENDMPS       zmmreg|mask|z,zmmreg,zmmrm512|b32   [rvm:fv: evex.nds.512.66.0f38.w0 65 /r ] AVX512,FUTURE
-VBROADCASTF32X2 ymmreg|mask|z,xmmrm64               [rm:t2: evex.256.66.0f38.w0 19 /r ] AVX512VL,AVX512DQ,FUTURE
-VBROADCASTF32X2 zmmreg|mask|z,xmmrm64               [rm:t2: evex.512.66.0f38.w0 19 /r ] AVX512DQ,FUTURE
-VBROADCASTF32X4 ymmreg|mask|z,mem128                [rm:t4: evex.256.66.0f38.w0 1a /r ] AVX512VL,AVX512,FUTURE
-VBROADCASTF32X4 zmmreg|mask|z,mem128                [rm:t4: evex.512.66.0f38.w0 1a /r ] AVX512,FUTURE
-VBROADCASTF32X8 zmmreg|mask|z,mem256                [rm:t8: evex.512.66.0f38.w0 1b /r ] AVX512DQ,FUTURE
-VBROADCASTF64X2 ymmreg|mask|z,mem128                [rm:t2: evex.256.66.0f38.w1 1a /r ] AVX512VL,AVX512DQ,FUTURE
-VBROADCASTF64X2 zmmreg|mask|z,mem128                [rm:t2: evex.512.66.0f38.w1 1a /r ] AVX512DQ,FUTURE
-VBROADCASTF64X4 zmmreg|mask|z,mem256                [rm:t4: evex.512.66.0f38.w1 1b /r ] AVX512,FUTURE
-VBROADCASTI32X2 xmmreg|mask|z,xmmrm64               [rm:t2: evex.128.66.0f38.w0 59 /r ] AVX512VL,AVX512DQ,FUTURE
-VBROADCASTI32X2 ymmreg|mask|z,xmmrm64               [rm:t2: evex.256.66.0f38.w0 59 /r ] AVX512VL,AVX512DQ,FUTURE
-VBROADCASTI32X2 zmmreg|mask|z,xmmrm64               [rm:t2: evex.512.66.0f38.w0 59 /r ] AVX512DQ,FUTURE
-VBROADCASTI32X4 ymmreg|mask|z,mem128                [rm:t4: evex.256.66.0f38.w0 5a /r ] AVX512VL,AVX512,FUTURE
-VBROADCASTI32X4 zmmreg|mask|z,mem128                [rm:t4: evex.512.66.0f38.w0 5a /r ] AVX512,FUTURE
-VBROADCASTI32X8 zmmreg|mask|z,mem256                [rm:t8: evex.512.66.0f38.w0 5b /r ] AVX512DQ,FUTURE
-VBROADCASTI64X2 ymmreg|mask|z,mem128                [rm:t2: evex.256.66.0f38.w1 5a /r ] AVX512VL,AVX512DQ,FUTURE
-VBROADCASTI64X2 zmmreg|mask|z,mem128                [rm:t2: evex.512.66.0f38.w1 5a /r ] AVX512DQ,FUTURE
-VBROADCASTI64X4 zmmreg|mask|z,mem256                [rm:t4: evex.512.66.0f38.w1 5b /r ] AVX512,FUTURE
-VBROADCASTSD    ymmreg|mask|z,mem64                 [rm:t1s: evex.256.66.0f38.w1 19 /r ] AVX512VL,AVX512,FUTURE
-VBROADCASTSD    zmmreg|mask|z,mem64                 [rm:t1s: evex.512.66.0f38.w1 19 /r ] AVX512,FUTURE
-VBROADCASTSD    ymmreg|mask|z,xmmreg                [rm: evex.256.66.0f38.w1 19 /r ] AVX512VL,AVX512,FUTURE
-VBROADCASTSD    zmmreg|mask|z,xmmreg                [rm: evex.512.66.0f38.w1 19 /r ] AVX512,FUTURE
-VBROADCASTSS    xmmreg|mask|z,mem32                 [rm:t1s: evex.128.66.0f38.w0 18 /r ] AVX512VL,AVX512,FUTURE
-VBROADCASTSS    ymmreg|mask|z,mem32                 [rm:t1s: evex.256.66.0f38.w0 18 /r ] AVX512VL,AVX512,FUTURE
-VBROADCASTSS    zmmreg|mask|z,mem32                 [rm:t1s: evex.512.66.0f38.w0 18 /r ] AVX512,FUTURE
-VBROADCASTSS    xmmreg|mask|z,xmmreg                [rm: evex.128.66.0f38.w0 18 /r ] AVX512VL,AVX512,FUTURE
-VBROADCASTSS    ymmreg|mask|z,xmmreg                [rm: evex.256.66.0f38.w0 18 /r ] AVX512VL,AVX512,FUTURE
-VBROADCASTSS    zmmreg|mask|z,xmmreg                [rm: evex.512.66.0f38.w0 18 /r ] AVX512,FUTURE
-VCMPPD          kreg|mask,xmmreg,xmmrm128|b64,imm8  [rvmi:fv: evex.nds.128.66.0f.w1 c2 /r ib ] AVX512VL,AVX512,FUTURE
-VCMPPD          kreg|mask,ymmreg,ymmrm256|b64,imm8  [rvmi:fv: evex.nds.256.66.0f.w1 c2 /r ib ] AVX512VL,AVX512,FUTURE
-VCMPPD          kreg|mask,zmmreg,zmmrm512|b64|sae,imm8 [rvmi:fv: evex.nds.512.66.0f.w1 c2 /r ib ] AVX512,FUTURE
-VCMPPS          kreg|mask,xmmreg,xmmrm128|b32,imm8  [rvmi:fv: evex.nds.128.0f.w0 c2 /r ib ] AVX512VL,AVX512,FUTURE
-VCMPPS          kreg|mask,ymmreg,ymmrm256|b32,imm8  [rvmi:fv: evex.nds.256.0f.w0 c2 /r ib ] AVX512VL,AVX512,FUTURE
-VCMPPS          kreg|mask,zmmreg,zmmrm512|b32|sae,imm8 [rvmi:fv: evex.nds.512.0f.w0 c2 /r ib ] AVX512,FUTURE
-VCMPSD          kreg|mask,xmmreg,xmmrm64|sae,imm8   [rvmi:t1s: evex.nds.128.f2.0f.w1 c2 /r ib ] AVX512,FUTURE
-VCMPSS          kreg|mask,xmmreg,xmmrm32|sae,imm8   [rvmi:t1s: evex.nds.128.f3.0f.w0 c2 /r ib ] AVX512,FUTURE
-VCOMISD         xmmreg,xmmrm64|sae                  [rm:t1s: evex.128.66.0f.w1 2f /r ] AVX512,FUTURE
-VCOMISS         xmmreg,xmmrm32|sae                  [rm:t1s: evex.128.0f.w0 2f /r ] AVX512,FUTURE
-VCOMPRESSPD     mem128|mask,xmmreg                  [mr:t1s: evex.128.66.0f38.w1 8a /r ] AVX512VL,AVX512,FUTURE
-VCOMPRESSPD     mem256|mask,ymmreg                  [mr:t1s: evex.256.66.0f38.w1 8a /r ] AVX512VL,AVX512,FUTURE
-VCOMPRESSPD     mem512|mask,zmmreg                  [mr:t1s: evex.512.66.0f38.w1 8a /r ] AVX512,FUTURE
-VCOMPRESSPD     xmmreg|mask|z,xmmreg                [mr: evex.128.66.0f38.w1 8a /r ] AVX512VL,AVX512,FUTURE
-VCOMPRESSPD     ymmreg|mask|z,ymmreg                [mr: evex.256.66.0f38.w1 8a /r ] AVX512VL,AVX512,FUTURE
-VCOMPRESSPD     zmmreg|mask|z,zmmreg                [mr: evex.512.66.0f38.w1 8a /r ] AVX512,FUTURE
-VCOMPRESSPS     mem128|mask,xmmreg                  [mr:t1s: evex.128.66.0f38.w0 8a /r ] AVX512VL,AVX512,FUTURE
-VCOMPRESSPS     mem256|mask,ymmreg                  [mr:t1s: evex.256.66.0f38.w0 8a /r ] AVX512VL,AVX512,FUTURE
-VCOMPRESSPS     mem512|mask,zmmreg                  [mr:t1s: evex.512.66.0f38.w0 8a /r ] AVX512,FUTURE
-VCOMPRESSPS     xmmreg|mask|z,xmmreg                [mr: evex.128.66.0f38.w0 8a /r ] AVX512VL,AVX512,FUTURE
-VCOMPRESSPS     ymmreg|mask|z,ymmreg                [mr: evex.256.66.0f38.w0 8a /r ] AVX512VL,AVX512,FUTURE
-VCOMPRESSPS     zmmreg|mask|z,zmmreg                [mr: evex.512.66.0f38.w0 8a /r ] AVX512,FUTURE
-VCVTDQ2PD       xmmreg|mask|z,xmmrm64|b32           [rm:hv: evex.128.f3.0f.w0 e6 /r ] AVX512VL,AVX512,FUTURE
-VCVTDQ2PD       ymmreg|mask|z,xmmrm128|b32          [rm:hv: evex.256.f3.0f.w0 e6 /r ] AVX512VL,AVX512,FUTURE
-VCVTDQ2PD       zmmreg|mask|z,ymmrm256|b32|er       [rm:hv: evex.512.f3.0f.w0 e6 /r ] AVX512,FUTURE
-VCVTDQ2PS       xmmreg|mask|z,xmmrm128|b32          [rm:fv: evex.128.0f.w0 5b /r ] AVX512VL,AVX512,FUTURE
-VCVTDQ2PS       ymmreg|mask|z,ymmrm256|b32          [rm:fv: evex.256.0f.w0 5b /r ] AVX512VL,AVX512,FUTURE
-VCVTDQ2PS       zmmreg|mask|z,zmmrm512|b32|er       [rm:fv: evex.512.0f.w0 5b /r ] AVX512,FUTURE
-VCVTPD2DQ       xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.f2.0f.w1 e6 /r ] AVX512VL,AVX512,FUTURE
-VCVTPD2DQ       xmmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.f2.0f.w1 e6 /r ] AVX512VL,AVX512,FUTURE
-VCVTPD2DQ       ymmreg|mask|z,zmmrm512|b64|er       [rm:fv: evex.512.f2.0f.w1 e6 /r ] AVX512,FUTURE
-VCVTPD2PS       xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.66.0f.w1 5a /r ] AVX512VL,AVX512,FUTURE
-VCVTPD2PS       xmmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.66.0f.w1 5a /r ] AVX512VL,AVX512,FUTURE
-VCVTPD2PS       ymmreg|mask|z,zmmrm512|b64|er       [rm:fv: evex.512.66.0f.w1 5a /r ] AVX512,FUTURE
-VCVTPD2QQ       xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.66.0f.w1 7b /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTPD2QQ       ymmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.66.0f.w1 7b /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTPD2QQ       zmmreg|mask|z,zmmrm512|b64|er       [rm:fv: evex.512.66.0f.w1 7b /r ] AVX512DQ,FUTURE
-VCVTPD2UDQ      xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.0f.w1 79 /r ] AVX512VL,AVX512,FUTURE
-VCVTPD2UDQ      xmmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.0f.w1 79 /r ] AVX512VL,AVX512,FUTURE
-VCVTPD2UDQ      ymmreg|mask|z,zmmrm512|b64|er       [rm:fv: evex.512.0f.w1 79 /r ] AVX512,FUTURE
-VCVTPD2UQQ      xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.66.0f.w1 79 /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTPD2UQQ      ymmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.66.0f.w1 79 /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTPD2UQQ      zmmreg|mask|z,zmmrm512|b64|er       [rm:fv: evex.512.66.0f.w1 79 /r ] AVX512DQ,FUTURE
-VCVTPH2PS       xmmreg|mask|z,xmmrm64               [rm:hvm: evex.128.66.0f38.w0 13 /r ] AVX512VL,AVX512,FUTURE
-VCVTPH2PS       ymmreg|mask|z,xmmrm128              [rm:hvm: evex.256.66.0f38.w0 13 /r ] AVX512VL,AVX512,FUTURE
-VCVTPH2PS       zmmreg|mask|z,ymmrm256|sae          [rm:hvm: evex.512.66.0f38.w0 13 /r ] AVX512,FUTURE
-VCVTPS2DQ       xmmreg|mask|z,xmmrm128|b32          [rm:fv: evex.128.66.0f.w0 5b /r ] AVX512VL,AVX512,FUTURE
-VCVTPS2DQ       ymmreg|mask|z,ymmrm256|b32          [rm:fv: evex.256.66.0f.w0 5b /r ] AVX512VL,AVX512,FUTURE
-VCVTPS2DQ       zmmreg|mask|z,zmmrm512|b32|er       [rm:fv: evex.512.66.0f.w0 5b /r ] AVX512,FUTURE
-VCVTPS2PD       xmmreg|mask|z,xmmrm64|b32           [rm:hv: evex.128.0f.w0 5a /r ] AVX512VL,AVX512,FUTURE
-VCVTPS2PD       ymmreg|mask|z,xmmrm128|b32          [rm:hv: evex.256.0f.w0 5a /r ] AVX512VL,AVX512,FUTURE
-VCVTPS2PD       zmmreg|mask|z,ymmrm256|b32|sae      [rm:hv: evex.512.0f.w0 5a /r ] AVX512,FUTURE
-VCVTPS2PH       xmmreg|mask|z,xmmreg,imm8           [mri:hvm: evex.128.66.0f3a.w0 1d /r ib ] AVX512VL,AVX512,FUTURE
-VCVTPS2PH       xmmreg|mask|z,ymmreg,imm8           [mri:hvm: evex.256.66.0f3a.w0 1d /r ib ] AVX512VL,AVX512,FUTURE
-VCVTPS2PH       ymmreg|mask|z,zmmreg|sae,imm8       [mri:hvm: evex.512.66.0f3a.w0 1d /r ib ] AVX512,FUTURE
-VCVTPS2PH       mem64|mask,xmmreg,imm8              [mri:hvm: evex.128.66.0f3a.w0 1d /r ib ] AVX512VL,AVX512,FUTURE
-VCVTPS2PH       mem128|mask,ymmreg,imm8             [mri:hvm: evex.256.66.0f3a.w0 1d /r ib ] AVX512VL,AVX512,FUTURE
-VCVTPS2PH       mem256|mask,zmmreg|sae,imm8         [mri:hvm: evex.512.66.0f3a.w0 1d /r ib ] AVX512,FUTURE
-VCVTPS2QQ       xmmreg|mask|z,xmmrm64|b32           [rm:hv: evex.128.66.0f.w0 7b /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTPS2QQ       ymmreg|mask|z,xmmrm128|b32          [rm:hv: evex.256.66.0f.w0 7b /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTPS2QQ       zmmreg|mask|z,ymmrm256|b32|er       [rm:hv: evex.512.66.0f.w0 7b /r ] AVX512DQ,FUTURE
-VCVTPS2UDQ      xmmreg|mask|z,xmmrm128|b32          [rm:fv: evex.128.0f.w0 79 /r ] AVX512VL,AVX512,FUTURE
-VCVTPS2UDQ      ymmreg|mask|z,ymmrm256|b32          [rm:fv: evex.256.0f.w0 79 /r ] AVX512VL,AVX512,FUTURE
-VCVTPS2UDQ      zmmreg|mask|z,zmmrm512|b32|er       [rm:fv: evex.512.0f.w0 79 /r ] AVX512,FUTURE
-VCVTPS2UQQ      xmmreg|mask|z,xmmrm64|b32           [rm:hv: evex.128.66.0f.w0 79 /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTPS2UQQ      ymmreg|mask|z,xmmrm128|b32          [rm:hv: evex.256.66.0f.w0 79 /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTPS2UQQ      zmmreg|mask|z,ymmrm256|b32|er       [rm:hv: evex.512.66.0f.w0 79 /r ] AVX512DQ,FUTURE
-VCVTQQ2PD       xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.f3.0f.w1 e6 /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTQQ2PD       ymmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.f3.0f.w1 e6 /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTQQ2PD       zmmreg|mask|z,zmmrm512|b64|er       [rm:fv: evex.512.f3.0f.w1 e6 /r ] AVX512DQ,FUTURE
-VCVTQQ2PS       xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.0f.w1 5b /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTQQ2PS       xmmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.0f.w1 5b /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTQQ2PS       ymmreg|mask|z,zmmrm512|b64|er       [rm:fv: evex.512.0f.w1 5b /r ] AVX512DQ,FUTURE
-VCVTSD2SI       reg32,xmmrm64|er                    [rm:t1f64: evex.128.f2.0f.w0 2d /r ] AVX512,FUTURE
-VCVTSD2SI       reg64,xmmrm64|er                    [rm:t1f64: evex.128.f2.0f.w1 2d /r ] AVX512,FUTURE
-VCVTSD2SS       xmmreg|mask|z,xmmreg,xmmrm64|er     [rvm:t1s: evex.nds.128.f2.0f.w1 5a /r ] AVX512,FUTURE
-VCVTSD2USI      reg32,xmmrm64|er                    [rm:t1f64: evex.128.f2.0f.w0 79 /r ] AVX512,FUTURE
-VCVTSD2USI      reg64,xmmrm64|er                    [rm:t1f64: evex.128.f2.0f.w1 79 /r ] AVX512,FUTURE
-VCVTSI2SD       xmmreg,xmmreg|er,rm32               [rvm:t1s: evex.nds.128.f2.0f.w0 2a /r ] AVX512,FUTURE
-VCVTSI2SD       xmmreg,xmmreg|er,rm64               [rvm:t1s: evex.nds.128.f2.0f.w1 2a /r ] AVX512,FUTURE
-VCVTSI2SS       xmmreg,xmmreg|er,rm32               [rvm:t1s: evex.nds.128.f3.0f.w0 2a /r ] AVX512,FUTURE
-VCVTSI2SS       xmmreg,xmmreg|er,rm64               [rvm:t1s: evex.nds.128.f3.0f.w1 2a /r ] AVX512,FUTURE
-VCVTSS2SD       xmmreg|mask|z,xmmreg,xmmrm32|sae    [rvm:t1s: evex.nds.128.f3.0f.w0 5a /r ] AVX512,FUTURE
-VCVTSS2SI       reg32,xmmrm32|er                    [rm:t1f32: evex.128.f3.0f.w0 2d /r ] AVX512,FUTURE
-VCVTSS2SI       reg64,xmmrm32|er                    [rm:t1f32: evex.128.f3.0f.w1 2d /r ] AVX512,FUTURE
-VCVTSS2USI      reg32,xmmrm32|er                    [rm:t1f32: evex.128.f3.0f.w0 79 /r ] AVX512,FUTURE
-VCVTSS2USI      reg64,xmmrm32|er                    [rm:t1f32: evex.128.f3.0f.w1 79 /r ] AVX512,FUTURE
-VCVTTPD2DQ      xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.66.0f.w1 e6 /r ] AVX512VL,AVX512,FUTURE
-VCVTTPD2DQ      xmmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.66.0f.w1 e6 /r ] AVX512VL,AVX512,FUTURE
-VCVTTPD2DQ      ymmreg|mask|z,zmmrm512|b64|sae      [rm:fv: evex.512.66.0f.w1 e6 /r ] AVX512,FUTURE
-VCVTTPD2QQ      xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.66.0f.w1 7a /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTTPD2QQ      ymmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.66.0f.w1 7a /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTTPD2QQ      zmmreg|mask|z,zmmrm512|b64|sae      [rm:fv: evex.512.66.0f.w1 7a /r ] AVX512DQ,FUTURE
-VCVTTPD2UDQ     xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.0f.w1 78 /r ] AVX512VL,AVX512,FUTURE
-VCVTTPD2UDQ     xmmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.0f.w1 78 /r ] AVX512VL,AVX512,FUTURE
-VCVTTPD2UDQ     ymmreg|mask|z,zmmrm512|b64|sae      [rm:fv: evex.512.0f.w1 78 /r ] AVX512,FUTURE
-VCVTTPD2UQQ     xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.66.0f.w1 78 /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTTPD2UQQ     ymmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.66.0f.w1 78 /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTTPD2UQQ     zmmreg|mask|z,zmmrm512|b64|sae      [rm:fv: evex.512.66.0f.w1 78 /r ] AVX512DQ,FUTURE
-VCVTTPS2DQ      xmmreg|mask|z,xmmrm128|b32          [rm:fv: evex.128.f3.0f.w0 5b /r ] AVX512VL,AVX512,FUTURE
-VCVTTPS2DQ      ymmreg|mask|z,ymmrm256|b32          [rm:fv: evex.256.f3.0f.w0 5b /r ] AVX512VL,AVX512,FUTURE
-VCVTTPS2DQ      zmmreg|mask|z,zmmrm512|b32|sae      [rm:fv: evex.512.f3.0f.w0 5b /r ] AVX512,FUTURE
-VCVTTPS2QQ      xmmreg|mask|z,xmmrm64|b32           [rm:hv: evex.128.66.0f.w0 7a /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTTPS2QQ      ymmreg|mask|z,xmmrm128|b32          [rm:hv: evex.256.66.0f.w0 7a /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTTPS2QQ      zmmreg|mask|z,ymmrm256|b32|sae      [rm:hv: evex.512.66.0f.w0 7a /r ] AVX512DQ,FUTURE
-VCVTTPS2UDQ     xmmreg|mask|z,xmmrm128|b32          [rm:fv: evex.128.0f.w0 78 /r ] AVX512VL,AVX512,FUTURE
-VCVTTPS2UDQ     ymmreg|mask|z,ymmrm256|b32          [rm:fv: evex.256.0f.w0 78 /r ] AVX512VL,AVX512,FUTURE
-VCVTTPS2UDQ     zmmreg|mask|z,zmmrm512|b32|sae      [rm:fv: evex.512.0f.w0 78 /r ] AVX512,FUTURE
-VCVTTPS2UQQ     xmmreg|mask|z,xmmrm64|b32           [rm:hv: evex.128.66.0f.w0 78 /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTTPS2UQQ     ymmreg|mask|z,xmmrm128|b32          [rm:hv: evex.256.66.0f.w0 78 /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTTPS2UQQ     zmmreg|mask|z,ymmrm256|b32|sae      [rm:hv: evex.512.66.0f.w0 78 /r ] AVX512DQ,FUTURE
-VCVTTSD2SI      reg32,xmmrm64|sae                   [rm:t1f64: evex.128.f2.0f.w0 2c /r ] AVX512,FUTURE
-VCVTTSD2SI      reg64,xmmrm64|sae                   [rm:t1f64: evex.128.f2.0f.w1 2c /r ] AVX512,FUTURE
-VCVTTSD2USI     reg32,xmmrm64|sae                   [rm:t1f64: evex.128.f2.0f.w0 78 /r ] AVX512,FUTURE
-VCVTTSD2USI     reg64,xmmrm64|sae                   [rm:t1f64: evex.128.f2.0f.w1 78 /r ] AVX512,FUTURE
-VCVTTSS2SI      reg32,xmmrm32|sae                   [rm:t1f32: evex.128.f3.0f.w0 2c /r ] AVX512,FUTURE
-VCVTTSS2SI      reg64,xmmrm32|sae                   [rm:t1f32: evex.128.f3.0f.w1 2c /r ] AVX512,FUTURE
-VCVTTSS2USI     reg32,xmmrm32|sae                   [rm:t1f32: evex.128.f3.0f.w0 78 /r ] AVX512,FUTURE
-VCVTTSS2USI     reg64,xmmrm32|sae                   [rm:t1f32: evex.128.f3.0f.w1 78 /r ] AVX512,FUTURE
-VCVTUDQ2PD      xmmreg|mask|z,xmmrm64|b32           [rm:hv: evex.128.f3.0f.w0 7a /r ] AVX512VL,AVX512,FUTURE
-VCVTUDQ2PD      ymmreg|mask|z,xmmrm128|b32          [rm:hv: evex.256.f3.0f.w0 7a /r ] AVX512VL,AVX512,FUTURE
-VCVTUDQ2PD      zmmreg|mask|z,ymmrm256|b32|er       [rm:hv: evex.512.f3.0f.w0 7a /r ] AVX512,FUTURE
-VCVTUDQ2PS      xmmreg|mask|z,xmmrm128|b32          [rm:fv: evex.128.f2.0f.w0 7a /r ] AVX512VL,AVX512,FUTURE
-VCVTUDQ2PS      ymmreg|mask|z,ymmrm256|b32          [rm:fv: evex.256.f2.0f.w0 7a /r ] AVX512VL,AVX512,FUTURE
-VCVTUDQ2PS      zmmreg|mask|z,zmmrm512|b32|er       [rm:fv: evex.512.f2.0f.w0 7a /r ] AVX512,FUTURE
-VCVTUQQ2PD      xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.f3.0f.w1 7a /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTUQQ2PD      ymmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.f3.0f.w1 7a /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTUQQ2PD      zmmreg|mask|z,zmmrm512|b64|er       [rm:fv: evex.512.f3.0f.w1 7a /r ] AVX512DQ,FUTURE
-VCVTUQQ2PS      xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.f2.0f.w1 7a /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTUQQ2PS      xmmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.f2.0f.w1 7a /r ] AVX512VL,AVX512DQ,FUTURE
-VCVTUQQ2PS      ymmreg|mask|z,zmmrm512|b64|er       [rm:fv: evex.512.f2.0f.w1 7a /r ] AVX512DQ,FUTURE
-VCVTUSI2SD      xmmreg,xmmreg|er,rm32               [rvm:t1s: evex.nds.128.f2.0f.w0 7b /r ] AVX512,FUTURE
-VCVTUSI2SD      xmmreg,xmmreg|er,rm64               [rvm:t1s: evex.nds.128.f2.0f.w1 7b /r ] AVX512,FUTURE
-VCVTUSI2SS      xmmreg,xmmreg|er,rm32               [rvm:t1s: evex.nds.128.f3.0f.w0 7b /r ] AVX512,FUTURE
-VCVTUSI2SS      xmmreg,xmmreg|er,rm64               [rvm:t1s: evex.nds.128.f3.0f.w1 7b /r ] AVX512,FUTURE
-VDBPSADBW       xmmreg|mask|z,xmmreg*,xmmrm128,imm8 [rvmi:fvm: evex.nds.128.66.0f3a.w0 42 /r ib ] AVX512VL,AVX512BW,FUTURE
-VDBPSADBW       ymmreg|mask|z,ymmreg*,ymmrm256,imm8 [rvmi:fvm: evex.nds.256.66.0f3a.w0 42 /r ib ] AVX512VL,AVX512BW,FUTURE
-VDBPSADBW       zmmreg|mask|z,zmmreg*,zmmrm512,imm8 [rvmi:fvm: evex.nds.512.66.0f3a.w0 42 /r ib ] AVX512BW,FUTURE
-VDIVPD          xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 5e /r ] AVX512VL,AVX512,FUTURE
-VDIVPD          ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 5e /r ] AVX512VL,AVX512,FUTURE
-VDIVPD          zmmreg|mask|z,zmmreg*,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f.w1 5e /r ] AVX512,FUTURE
-VDIVPS          xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.0f.w0 5e /r ] AVX512VL,AVX512,FUTURE
-VDIVPS          ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.0f.w0 5e /r ] AVX512VL,AVX512,FUTURE
-VDIVPS          zmmreg|mask|z,zmmreg*,zmmrm512|b32|er [rvm:fv: evex.nds.512.0f.w0 5e /r ] AVX512,FUTURE
-VDIVSD          xmmreg|mask|z,xmmreg*,xmmrm64|er    [rvm:t1s: evex.nds.128.f2.0f.w1 5e /r ] AVX512,FUTURE
-VDIVSS          xmmreg|mask|z,xmmreg*,xmmrm32|er    [rvm:t1s: evex.nds.128.f3.0f.w0 5e /r ] AVX512,FUTURE
-VEXP2PD         zmmreg|mask|z,zmmrm512|b64|sae      [rm:fv: evex.512.66.0f38.w1 c8 /r ] AVX512ER,FUTURE
-VEXP2PS         zmmreg|mask|z,zmmrm512|b32|sae      [rm:fv: evex.512.66.0f38.w0 c8 /r ] AVX512ER,FUTURE
-VEXPANDPD       xmmreg|mask|z,mem128                [rm:t1s: evex.128.66.0f38.w1 88 /r ] AVX512VL,AVX512,FUTURE
-VEXPANDPD       ymmreg|mask|z,mem256                [rm:t1s: evex.256.66.0f38.w1 88 /r ] AVX512VL,AVX512,FUTURE
-VEXPANDPD       zmmreg|mask|z,mem512                [rm:t1s: evex.512.66.0f38.w1 88 /r ] AVX512,FUTURE
-VEXPANDPD       xmmreg|mask|z,xmmreg                [rm:t1s: evex.128.66.0f38.w1 88 /r ] AVX512VL,AVX512,FUTURE
-VEXPANDPD       ymmreg|mask|z,ymmreg                [rm:t1s: evex.256.66.0f38.w1 88 /r ] AVX512VL,AVX512,FUTURE
-VEXPANDPD       zmmreg|mask|z,zmmreg                [rm:t1s: evex.512.66.0f38.w1 88 /r ] AVX512,FUTURE
-VEXPANDPS       xmmreg|mask|z,mem128                [rm:t1s: evex.128.66.0f38.w0 88 /r ] AVX512VL,AVX512,FUTURE
-VEXPANDPS       ymmreg|mask|z,mem256                [rm:t1s: evex.256.66.0f38.w0 88 /r ] AVX512VL,AVX512,FUTURE
-VEXPANDPS       zmmreg|mask|z,mem512                [rm:t1s: evex.512.66.0f38.w0 88 /r ] AVX512,FUTURE
-VEXPANDPS       xmmreg|mask|z,xmmreg                [rm:t1s: evex.128.66.0f38.w0 88 /r ] AVX512VL,AVX512,FUTURE
-VEXPANDPS       ymmreg|mask|z,ymmreg                [rm:t1s: evex.256.66.0f38.w0 88 /r ] AVX512VL,AVX512,FUTURE
-VEXPANDPS       zmmreg|mask|z,zmmreg                [rm:t1s: evex.512.66.0f38.w0 88 /r ] AVX512,FUTURE
-VEXTRACTF32X4   xmmreg|mask|z,ymmreg,imm8           [mri: evex.256.66.0f3a.w0 19 /r ib ] AVX512VL,AVX512,FUTURE
-VEXTRACTF32X4   xmmreg|mask|z,zmmreg,imm8           [mri: evex.512.66.0f3a.w0 19 /r ib ] AVX512,FUTURE
-VEXTRACTF32X4   mem128|mask,ymmreg,imm8             [mri:t4: evex.256.66.0f3a.w0 19 /r ib ] AVX512VL,AVX512,FUTURE
-VEXTRACTF32X4   mem128|mask,zmmreg,imm8             [mri:t4: evex.512.66.0f3a.w0 19 /r ib ] AVX512,FUTURE
-VEXTRACTF32X8   ymmreg|mask|z,zmmreg,imm8           [mri: evex.512.66.0f3a.w0 1b /r ib ] AVX512DQ,FUTURE
-VEXTRACTF32X8   mem256|mask,zmmreg,imm8             [mri:t8: evex.512.66.0f3a.w0 1b /r ib ] AVX512DQ,FUTURE
-VEXTRACTF64X2   xmmreg|mask|z,ymmreg,imm8           [mri: evex.256.66.0f3a.w1 19 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VEXTRACTF64X2   xmmreg|mask|z,zmmreg,imm8           [mri: evex.512.66.0f3a.w1 19 /r ib ] AVX512DQ,FUTURE
-VEXTRACTF64X2   mem128|mask,ymmreg,imm8             [mri:t2: evex.256.66.0f3a.w1 19 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VEXTRACTF64X2   mem128|mask,zmmreg,imm8             [mri:t2: evex.512.66.0f3a.w1 19 /r ib ] AVX512DQ,FUTURE
-VEXTRACTF64X4   ymmreg|mask|z,zmmreg,imm8           [mri: evex.512.66.0f3a.w1 1b /r ib ] AVX512,FUTURE
-VEXTRACTF64X4   mem256|mask,zmmreg,imm8             [mri:t4: evex.512.66.0f3a.w1 1b /r ib ] AVX512,FUTURE
-VEXTRACTI32X4   xmmreg|mask|z,ymmreg,imm8           [mri: evex.256.66.0f3a.w0 39 /r ib ] AVX512VL,AVX512,FUTURE
-VEXTRACTI32X4   xmmreg|mask|z,zmmreg,imm8           [mri: evex.512.66.0f3a.w0 39 /r ib ] AVX512,FUTURE
-VEXTRACTI32X4   mem128|mask,ymmreg,imm8             [mri:t4: evex.256.66.0f3a.w0 39 /r ib ] AVX512VL,AVX512,FUTURE
-VEXTRACTI32X4   mem128|mask,zmmreg,imm8             [mri:t4: evex.512.66.0f3a.w0 39 /r ib ] AVX512,FUTURE
-VEXTRACTI32X8   ymmreg|mask|z,zmmreg,imm8           [mri: evex.512.66.0f3a.w0 3b /r ib ] AVX512DQ,FUTURE
-VEXTRACTI32X8   mem256|mask,zmmreg,imm8             [mri:t8: evex.512.66.0f3a.w0 3b /r ib ] AVX512DQ,FUTURE
-VEXTRACTI64X2   xmmreg|mask|z,ymmreg,imm8           [mri: evex.256.66.0f3a.w1 39 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VEXTRACTI64X2   xmmreg|mask|z,zmmreg,imm8           [mri: evex.512.66.0f3a.w1 39 /r ib ] AVX512DQ,FUTURE
-VEXTRACTI64X2   mem128|mask,ymmreg,imm8             [mri:t2: evex.256.66.0f3a.w1 39 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VEXTRACTI64X2   mem128|mask,zmmreg,imm8             [mri:t2: evex.512.66.0f3a.w1 39 /r ib ] AVX512DQ,FUTURE
-VEXTRACTI64X4   ymmreg|mask|z,zmmreg,imm8           [mri: evex.512.66.0f3a.w1 3b /r ib ] AVX512,FUTURE
-VEXTRACTI64X4   mem256|mask,zmmreg,imm8             [mri:t4: evex.512.66.0f3a.w1 3b /r ib ] AVX512,FUTURE
-VEXTRACTPS      reg32,xmmreg,imm8                   [mri:t1s: evex.128.66.0f3a.wig 17 /r ib ] AVX512,FUTURE
-VEXTRACTPS      reg64,xmmreg,imm8                   [mri:t1s: evex.128.66.0f3a.wig 17 /r ib ] AVX512,FUTURE
-VEXTRACTPS      mem32,xmmreg,imm8                   [mri:t1s: evex.128.66.0f3a.wig 17 /r ib ] AVX512,FUTURE
-VFIXUPIMMPD     xmmreg|mask|z,xmmreg*,xmmrm128|b64,imm8 [rvmi:fv: evex.nds.128.66.0f3a.w1 54 /r ib ] AVX512VL,AVX512,FUTURE
-VFIXUPIMMPD     ymmreg|mask|z,ymmreg*,ymmrm256|b64,imm8 [rvmi:fv: evex.nds.256.66.0f3a.w1 54 /r ib ] AVX512VL,AVX512,FUTURE
-VFIXUPIMMPD     zmmreg|mask|z,zmmreg*,zmmrm512|b64|sae,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w1 54 /r ib ] AVX512,FUTURE
-VFIXUPIMMPS     xmmreg|mask|z,xmmreg*,xmmrm128|b32,imm8 [rvmi:fv: evex.nds.128.66.0f3a.w0 54 /r ib ] AVX512VL,AVX512,FUTURE
-VFIXUPIMMPS     ymmreg|mask|z,ymmreg*,ymmrm256|b32,imm8 [rvmi:fv: evex.nds.256.66.0f3a.w0 54 /r ib ] AVX512VL,AVX512,FUTURE
-VFIXUPIMMPS     zmmreg|mask|z,zmmreg*,zmmrm512|b32|sae,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w0 54 /r ib ] AVX512,FUTURE
-VFIXUPIMMSD     xmmreg|mask|z,xmmreg*,xmmrm64|sae,imm8 [rvmi:t1s: evex.nds.128.66.0f3a.w1 55 /r ib ] AVX512,FUTURE
-VFIXUPIMMSS     xmmreg|mask|z,xmmreg*,xmmrm32|sae,imm8 [rvmi:t1s: evex.nds.128.66.0f3a.w0 55 /r ib ] AVX512,FUTURE
-VFMADD132PD     xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 98 /r ] AVX512VL,AVX512,FUTURE
-VFMADD132PD     ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 98 /r ] AVX512VL,AVX512,FUTURE
-VFMADD132PD     zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 98 /r ] AVX512,FUTURE
-VFMADD132PS     xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 98 /r ] AVX512VL,AVX512,FUTURE
-VFMADD132PS     ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 98 /r ] AVX512VL,AVX512,FUTURE
-VFMADD132PS     zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 98 /r ] AVX512,FUTURE
-VFMADD132SD     xmmreg|mask|z,xmmreg,xmmrm64|er     [rvm:t1s: evex.nds.128.66.0f38.w1 99 /r ] AVX512,FUTURE
-VFMADD132SS     xmmreg|mask|z,xmmreg,xmmrm32|er     [rvm:t1s: evex.nds.128.66.0f38.w0 99 /r ] AVX512,FUTURE
-VFMADD213PD     xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 a8 /r ] AVX512VL,AVX512,FUTURE
-VFMADD213PD     ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 a8 /r ] AVX512VL,AVX512,FUTURE
-VFMADD213PD     zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 a8 /r ] AVX512,FUTURE
-VFMADD213PS     xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 a8 /r ] AVX512VL,AVX512,FUTURE
-VFMADD213PS     ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 a8 /r ] AVX512VL,AVX512,FUTURE
-VFMADD213PS     zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 a8 /r ] AVX512,FUTURE
-VFMADD213SD     xmmreg|mask|z,xmmreg,xmmrm64|er     [rvm:t1s: evex.nds.128.66.0f38.w1 a9 /r ] AVX512,FUTURE
-VFMADD213SS     xmmreg|mask|z,xmmreg,xmmrm32|er     [rvm:t1s: evex.nds.128.66.0f38.w0 a9 /r ] AVX512,FUTURE
-VFMADD231PD     xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 b8 /r ] AVX512VL,AVX512,FUTURE
-VFMADD231PD     ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 b8 /r ] AVX512VL,AVX512,FUTURE
-VFMADD231PD     zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 b8 /r ] AVX512,FUTURE
-VFMADD231PS     xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 b8 /r ] AVX512VL,AVX512,FUTURE
-VFMADD231PS     ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 b8 /r ] AVX512VL,AVX512,FUTURE
-VFMADD231PS     zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 b8 /r ] AVX512,FUTURE
-VFMADD231SD     xmmreg|mask|z,xmmreg,xmmrm64|er     [rvm:t1s: evex.nds.128.66.0f38.w1 b9 /r ] AVX512,FUTURE
-VFMADD231SS     xmmreg|mask|z,xmmreg,xmmrm32|er     [rvm:t1s: evex.nds.128.66.0f38.w0 b9 /r ] AVX512,FUTURE
-VFMADDSUB132PD  xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 96 /r ] AVX512VL,AVX512,FUTURE
-VFMADDSUB132PD  ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 96 /r ] AVX512VL,AVX512,FUTURE
-VFMADDSUB132PD  zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 96 /r ] AVX512,FUTURE
-VFMADDSUB132PS  xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 96 /r ] AVX512VL,AVX512,FUTURE
-VFMADDSUB132PS  ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 96 /r ] AVX512VL,AVX512,FUTURE
-VFMADDSUB132PS  zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 96 /r ] AVX512,FUTURE
-VFMADDSUB213PD  xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 a6 /r ] AVX512VL,AVX512,FUTURE
-VFMADDSUB213PD  ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 a6 /r ] AVX512VL,AVX512,FUTURE
-VFMADDSUB213PD  zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 a6 /r ] AVX512,FUTURE
-VFMADDSUB213PS  xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 a6 /r ] AVX512VL,AVX512,FUTURE
-VFMADDSUB213PS  ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 a6 /r ] AVX512VL,AVX512,FUTURE
-VFMADDSUB213PS  zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 a6 /r ] AVX512,FUTURE
-VFMADDSUB231PD  xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 b6 /r ] AVX512VL,AVX512,FUTURE
-VFMADDSUB231PD  ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 b6 /r ] AVX512VL,AVX512,FUTURE
-VFMADDSUB231PD  zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 b6 /r ] AVX512,FUTURE
-VFMADDSUB231PS  xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 b6 /r ] AVX512VL,AVX512,FUTURE
-VFMADDSUB231PS  ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 b6 /r ] AVX512VL,AVX512,FUTURE
-VFMADDSUB231PS  zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 b6 /r ] AVX512,FUTURE
-VFMSUB132PD     xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 9a /r ] AVX512VL,AVX512,FUTURE
-VFMSUB132PD     ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 9a /r ] AVX512VL,AVX512,FUTURE
-VFMSUB132PD     zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 9a /r ] AVX512,FUTURE
-VFMSUB132PS     xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 9a /r ] AVX512VL,AVX512,FUTURE
-VFMSUB132PS     ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 9a /r ] AVX512VL,AVX512,FUTURE
-VFMSUB132PS     zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 9a /r ] AVX512,FUTURE
-VFMSUB132SD     xmmreg|mask|z,xmmreg,xmmrm64|er     [rvm:t1s: evex.nds.128.66.0f38.w1 9b /r ] AVX512,FUTURE
-VFMSUB132SS     xmmreg|mask|z,xmmreg,xmmrm32|er     [rvm:t1s: evex.nds.128.66.0f38.w0 9b /r ] AVX512,FUTURE
-VFMSUB213PD     xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 aa /r ] AVX512VL,AVX512,FUTURE
-VFMSUB213PD     ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 aa /r ] AVX512VL,AVX512,FUTURE
-VFMSUB213PD     zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 aa /r ] AVX512,FUTURE
-VFMSUB213PS     xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 aa /r ] AVX512VL,AVX512,FUTURE
-VFMSUB213PS     ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 aa /r ] AVX512VL,AVX512,FUTURE
-VFMSUB213PS     zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 aa /r ] AVX512,FUTURE
-VFMSUB213SD     xmmreg|mask|z,xmmreg,xmmrm64|er     [rvm:t1s: evex.nds.128.66.0f38.w1 ab /r ] AVX512,FUTURE
-VFMSUB213SS     xmmreg|mask|z,xmmreg,xmmrm32|er     [rvm:t1s: evex.nds.128.66.0f38.w0 ab /r ] AVX512,FUTURE
-VFMSUB231PD     xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 ba /r ] AVX512VL,AVX512,FUTURE
-VFMSUB231PD     ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 ba /r ] AVX512VL,AVX512,FUTURE
-VFMSUB231PD     zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 ba /r ] AVX512,FUTURE
-VFMSUB231PS     xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 ba /r ] AVX512VL,AVX512,FUTURE
-VFMSUB231PS     ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 ba /r ] AVX512VL,AVX512,FUTURE
-VFMSUB231PS     zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 ba /r ] AVX512,FUTURE
-VFMSUB231SD     xmmreg|mask|z,xmmreg,xmmrm64|er     [rvm:t1s: evex.nds.128.66.0f38.w1 bb /r ] AVX512,FUTURE
-VFMSUB231SS     xmmreg|mask|z,xmmreg,xmmrm32|er     [rvm:t1s: evex.nds.128.66.0f38.w0 bb /r ] AVX512,FUTURE
-VFMSUBADD132PD  xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 97 /r ] AVX512VL,AVX512,FUTURE
-VFMSUBADD132PD  ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 97 /r ] AVX512VL,AVX512,FUTURE
-VFMSUBADD132PD  zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 97 /r ] AVX512,FUTURE
-VFMSUBADD132PS  xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 97 /r ] AVX512VL,AVX512,FUTURE
-VFMSUBADD132PS  ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 97 /r ] AVX512VL,AVX512,FUTURE
-VFMSUBADD132PS  zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 97 /r ] AVX512,FUTURE
-VFMSUBADD213PD  xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 a7 /r ] AVX512VL,AVX512,FUTURE
-VFMSUBADD213PD  ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 a7 /r ] AVX512VL,AVX512,FUTURE
-VFMSUBADD213PD  zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 a7 /r ] AVX512,FUTURE
-VFMSUBADD213PS  xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 a7 /r ] AVX512VL,AVX512,FUTURE
-VFMSUBADD213PS  ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 a7 /r ] AVX512VL,AVX512,FUTURE
-VFMSUBADD213PS  zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 a7 /r ] AVX512,FUTURE
-VFMSUBADD231PD  xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 b7 /r ] AVX512VL,AVX512,FUTURE
-VFMSUBADD231PD  ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 b7 /r ] AVX512VL,AVX512,FUTURE
-VFMSUBADD231PD  zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 b7 /r ] AVX512,FUTURE
-VFMSUBADD231PS  xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 b7 /r ] AVX512VL,AVX512,FUTURE
-VFMSUBADD231PS  ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 b7 /r ] AVX512VL,AVX512,FUTURE
-VFMSUBADD231PS  zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 b7 /r ] AVX512,FUTURE
-VFNMADD132PD    xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 9c /r ] AVX512VL,AVX512,FUTURE
-VFNMADD132PD    ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 9c /r ] AVX512VL,AVX512,FUTURE
-VFNMADD132PD    zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 9c /r ] AVX512,FUTURE
-VFNMADD132PS    xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 9c /r ] AVX512VL,AVX512,FUTURE
-VFNMADD132PS    ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 9c /r ] AVX512VL,AVX512,FUTURE
-VFNMADD132PS    zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 9c /r ] AVX512,FUTURE
-VFNMADD132SD    xmmreg|mask|z,xmmreg,xmmrm64|er     [rvm:t1s: evex.nds.128.66.0f38.w1 9d /r ] AVX512,FUTURE
-VFNMADD132SS    xmmreg|mask|z,xmmreg,xmmrm32|er     [rvm:t1s: evex.nds.128.66.0f38.w0 9d /r ] AVX512,FUTURE
-VFNMADD213PD    xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 ac /r ] AVX512VL,AVX512,FUTURE
-VFNMADD213PD    ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 ac /r ] AVX512VL,AVX512,FUTURE
-VFNMADD213PD    zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 ac /r ] AVX512,FUTURE
-VFNMADD213PS    xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 ac /r ] AVX512VL,AVX512,FUTURE
-VFNMADD213PS    ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 ac /r ] AVX512VL,AVX512,FUTURE
-VFNMADD213PS    zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 ac /r ] AVX512,FUTURE
-VFNMADD213SD    xmmreg|mask|z,xmmreg,xmmrm64|er     [rvm:t1s: evex.nds.128.66.0f38.w1 ad /r ] AVX512,FUTURE
-VFNMADD213SS    xmmreg|mask|z,xmmreg,xmmrm32|er     [rvm:t1s: evex.nds.128.66.0f38.w0 ad /r ] AVX512,FUTURE
-VFNMADD231PD    xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 bc /r ] AVX512VL,AVX512,FUTURE
-VFNMADD231PD    ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 bc /r ] AVX512VL,AVX512,FUTURE
-VFNMADD231PD    zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 bc /r ] AVX512,FUTURE
-VFNMADD231PS    xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 bc /r ] AVX512VL,AVX512,FUTURE
-VFNMADD231PS    ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 bc /r ] AVX512VL,AVX512,FUTURE
-VFNMADD231PS    zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 bc /r ] AVX512,FUTURE
-VFNMADD231SD    xmmreg|mask|z,xmmreg,xmmrm64|er     [rvm:t1s: evex.nds.128.66.0f38.w1 bd /r ] AVX512,FUTURE
-VFNMADD231SS    xmmreg|mask|z,xmmreg,xmmrm32|er     [rvm:t1s: evex.nds.128.66.0f38.w0 bd /r ] AVX512,FUTURE
-VFNMSUB132PD    xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 9e /r ] AVX512VL,AVX512,FUTURE
-VFNMSUB132PD    ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 9e /r ] AVX512VL,AVX512,FUTURE
-VFNMSUB132PD    zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 9e /r ] AVX512,FUTURE
-VFNMSUB132PS    xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 9e /r ] AVX512VL,AVX512,FUTURE
-VFNMSUB132PS    ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 9e /r ] AVX512VL,AVX512,FUTURE
-VFNMSUB132PS    zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 9e /r ] AVX512,FUTURE
-VFNMSUB132SD    xmmreg|mask|z,xmmreg,xmmrm64|er     [rvm:t1s: evex.nds.128.66.0f38.w1 9f /r ] AVX512,FUTURE
-VFNMSUB132SS    xmmreg|mask|z,xmmreg,xmmrm32|er     [rvm:t1s: evex.nds.128.66.0f38.w0 9f /r ] AVX512,FUTURE
-VFNMSUB213PD    xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 ae /r ] AVX512VL,AVX512,FUTURE
-VFNMSUB213PD    ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 ae /r ] AVX512VL,AVX512,FUTURE
-VFNMSUB213PD    zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 ae /r ] AVX512,FUTURE
-VFNMSUB213PS    xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 ae /r ] AVX512VL,AVX512,FUTURE
-VFNMSUB213PS    ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 ae /r ] AVX512VL,AVX512,FUTURE
-VFNMSUB213PS    zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 ae /r ] AVX512,FUTURE
-VFNMSUB213SD    xmmreg|mask|z,xmmreg,xmmrm64|er     [rvm:t1s: evex.nds.128.66.0f38.w1 af /r ] AVX512,FUTURE
-VFNMSUB213SS    xmmreg|mask|z,xmmreg,xmmrm32|er     [rvm:t1s: evex.nds.128.66.0f38.w0 af /r ] AVX512,FUTURE
-VFNMSUB231PD    xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 be /r ] AVX512VL,AVX512,FUTURE
-VFNMSUB231PD    ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 be /r ] AVX512VL,AVX512,FUTURE
-VFNMSUB231PD    zmmreg|mask|z,zmmreg,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 be /r ] AVX512,FUTURE
-VFNMSUB231PS    xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 be /r ] AVX512VL,AVX512,FUTURE
-VFNMSUB231PS    ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 be /r ] AVX512VL,AVX512,FUTURE
-VFNMSUB231PS    zmmreg|mask|z,zmmreg,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 be /r ] AVX512,FUTURE
-VFNMSUB231SD    xmmreg|mask|z,xmmreg,xmmrm64|er     [rvm:t1s: evex.nds.128.66.0f38.w1 bf /r ] AVX512,FUTURE
-VFNMSUB231SS    xmmreg|mask|z,xmmreg,xmmrm32|er     [rvm:t1s: evex.nds.128.66.0f38.w0 bf /r ] AVX512,FUTURE
-VFPCLASSPD      kreg|mask,xmmrm128|b64,imm8         [rmi:fv: evex.128.66.0f3a.w1 66 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VFPCLASSPD      kreg|mask,ymmrm256|b64,imm8         [rmi:fv: evex.256.66.0f3a.w1 66 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VFPCLASSPD      kreg|mask,zmmrm512|b64,imm8         [rmi:fv: evex.512.66.0f3a.w1 66 /r ib ] AVX512DQ,FUTURE
-VFPCLASSPS      kreg|mask,xmmrm128|b32,imm8         [rmi:fv: evex.128.66.0f3a.w0 66 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VFPCLASSPS      kreg|mask,ymmrm256|b32,imm8         [rmi:fv: evex.256.66.0f3a.w0 66 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VFPCLASSPS      kreg|mask,zmmrm512|b32,imm8         [rmi:fv: evex.512.66.0f3a.w0 66 /r ib ] AVX512DQ,FUTURE
-VFPCLASSSD      kreg|mask,xmmrm64,imm8              [rmi:t1s: evex.128.66.0f3a.w1 67 /r ib ] AVX512DQ,FUTURE
-VFPCLASSSS      kreg|mask,xmmrm32,imm8              [rmi:t1s: evex.128.66.0f3a.w0 67 /r ib ] AVX512DQ,FUTURE
-VGATHERDPD      xmmreg|mask,xmem64                  [rm:t1s: vsibx evex.128.66.0f38.w1 92 /r ] AVX512VL,AVX512,FUTURE
-VGATHERDPD      ymmreg|mask,xmem64                  [rm:t1s: vsibx evex.256.66.0f38.w1 92 /r ] AVX512VL,AVX512,FUTURE
-VGATHERDPD      zmmreg|mask,ymem64                  [rm:t1s: vsiby evex.512.66.0f38.w1 92 /r ] AVX512,FUTURE
-VGATHERDPS      xmmreg|mask,xmem32                  [rm:t1s: vsibx evex.128.66.0f38.w0 92 /r ] AVX512VL,AVX512,FUTURE
-VGATHERDPS      ymmreg|mask,ymem32                  [rm:t1s: vsiby evex.256.66.0f38.w0 92 /r ] AVX512VL,AVX512,FUTURE
-VGATHERDPS      zmmreg|mask,zmem32                  [rm:t1s: vsibz evex.512.66.0f38.w0 92 /r ] AVX512,FUTURE
-VGATHERPF0DPD   ymem64|mask                         [m:t1s: vsiby evex.512.66.0f38.w1 c6 /1 ] AVX512PF,FUTURE
-VGATHERPF0DPS   zmem32|mask                         [m:t1s: vsibz evex.512.66.0f38.w0 c6 /1 ] AVX512PF,FUTURE
-VGATHERPF0QPD   zmem64|mask                         [m:t1s: vsibz evex.512.66.0f38.w1 c7 /1 ] AVX512PF,FUTURE
-VGATHERPF0QPS   zmem32|mask                         [m:t1s: vsibz evex.512.66.0f38.w0 c7 /1 ] AVX512PF,FUTURE
-VGATHERPF1DPD   ymem64|mask                         [m:t1s: vsiby evex.512.66.0f38.w1 c6 /2 ] AVX512PF,FUTURE
-VGATHERPF1DPS   zmem32|mask                         [m:t1s: vsibz evex.512.66.0f38.w0 c6 /2 ] AVX512PF,FUTURE
-VGATHERPF1QPD   zmem64|mask                         [m:t1s: vsibz evex.512.66.0f38.w1 c7 /2 ] AVX512PF,FUTURE
-VGATHERPF1QPS   zmem32|mask                         [m:t1s: vsibz evex.512.66.0f38.w0 c7 /2 ] AVX512PF,FUTURE
-VGATHERQPD      xmmreg|mask,xmem64                  [rm:t1s: vsibx evex.128.66.0f38.w1 93 /r ] AVX512VL,AVX512,FUTURE
-VGATHERQPD      ymmreg|mask,ymem64                  [rm:t1s: vsiby evex.256.66.0f38.w1 93 /r ] AVX512VL,AVX512,FUTURE
-VGATHERQPD      zmmreg|mask,zmem64                  [rm:t1s: vsibz evex.512.66.0f38.w1 93 /r ] AVX512,FUTURE
-VGATHERQPS      xmmreg|mask,xmem32                  [rm:t1s: vsibx evex.128.66.0f38.w0 93 /r ] AVX512VL,AVX512,FUTURE
-VGATHERQPS      xmmreg|mask,ymem32                  [rm:t1s: vsiby evex.256.66.0f38.w0 93 /r ] AVX512VL,AVX512,FUTURE
-VGATHERQPS      ymmreg|mask,zmem32                  [rm:t1s: vsibz evex.512.66.0f38.w0 93 /r ] AVX512,FUTURE
-VGETEXPPD       xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.66.0f38.w1 42 /r ] AVX512VL,AVX512,FUTURE
-VGETEXPPD       ymmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.66.0f38.w1 42 /r ] AVX512VL,AVX512,FUTURE
-VGETEXPPD       zmmreg|mask|z,zmmrm512|b64|sae      [rm:fv: evex.512.66.0f38.w1 42 /r ] AVX512,FUTURE
-VGETEXPPS       xmmreg|mask|z,xmmrm128|b32          [rm:fv: evex.128.66.0f38.w0 42 /r ] AVX512VL,AVX512,FUTURE
-VGETEXPPS       ymmreg|mask|z,ymmrm256|b32          [rm:fv: evex.256.66.0f38.w0 42 /r ] AVX512VL,AVX512,FUTURE
-VGETEXPPS       zmmreg|mask|z,zmmrm512|b32|sae      [rm:fv: evex.512.66.0f38.w0 42 /r ] AVX512,FUTURE
-VGETEXPSD       xmmreg|mask|z,xmmreg,xmmrm64|sae    [rvm:t1s: evex.nds.128.66.0f38.w1 43 /r ] AVX512,FUTURE
-VGETEXPSS       xmmreg|mask|z,xmmreg,xmmrm32|sae    [rvm:t1s: evex.nds.128.66.0f38.w0 43 /r ] AVX512,FUTURE
-VGETMANTPD      xmmreg|mask|z,xmmrm128|b64,imm8     [rmi:fv: evex.128.66.0f3a.w1 26 /r ib ] AVX512VL,AVX512,FUTURE
-VGETMANTPD      ymmreg|mask|z,ymmrm256|b64,imm8     [rmi:fv: evex.256.66.0f3a.w1 26 /r ib ] AVX512VL,AVX512,FUTURE
-VGETMANTPD      zmmreg|mask|z,zmmrm512|b64|sae,imm8 [rmi:fv: evex.512.66.0f3a.w1 26 /r ib ] AVX512,FUTURE
-VGETMANTPS      xmmreg|mask|z,xmmrm128|b32,imm8     [rmi:fv: evex.128.66.0f3a.w0 26 /r ib ] AVX512VL,AVX512,FUTURE
-VGETMANTPS      ymmreg|mask|z,ymmrm256|b32,imm8     [rmi:fv: evex.256.66.0f3a.w0 26 /r ib ] AVX512VL,AVX512,FUTURE
-VGETMANTPS      zmmreg|mask|z,zmmrm512|b32|sae,imm8 [rmi:fv: evex.512.66.0f3a.w0 26 /r ib ] AVX512,FUTURE
-VGETMANTSD      xmmreg|mask|z,xmmreg,xmmrm64|sae,imm8 [rvmi:t1s: evex.nds.128.66.0f3a.w1 27 /r ib ] AVX512,FUTURE
-VGETMANTSS      xmmreg|mask|z,xmmreg,xmmrm32|sae,imm8 [rvmi:t1s: evex.nds.128.66.0f3a.w0 27 /r ib ] AVX512,FUTURE
-VINSERTF32X4    ymmreg|mask|z,ymmreg*,xmmrm128,imm8 [rvmi:t4: evex.nds.256.66.0f3a.w0 18 /r ib ] AVX512VL,AVX512,FUTURE
-VINSERTF32X4    zmmreg|mask|z,zmmreg*,xmmrm128,imm8 [rvmi:t4: evex.nds.512.66.0f3a.w0 18 /r ib ] AVX512,FUTURE
-VINSERTF32X8    zmmreg|mask|z,zmmreg*,ymmrm256,imm8 [rvmi:t8: evex.nds.512.66.0f3a.w0 1a /r ib ] AVX512DQ,FUTURE
-VINSERTF64X2    ymmreg|mask|z,ymmreg*,xmmrm128,imm8 [rvmi:t2: evex.nds.256.66.0f3a.w1 18 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VINSERTF64X2    zmmreg|mask|z,zmmreg*,xmmrm128,imm8 [rvmi:t2: evex.nds.512.66.0f3a.w1 18 /r ib ] AVX512DQ,FUTURE
-VINSERTF64X4    zmmreg|mask|z,zmmreg*,ymmrm256,imm8 [rvmi:t4: evex.nds.512.66.0f3a.w1 1a /r ib ] AVX512,FUTURE
-VINSERTI32X4    ymmreg|mask|z,ymmreg*,xmmrm128,imm8 [rvmi:t4: evex.nds.256.66.0f3a.w0 38 /r ib ] AVX512VL,AVX512,FUTURE
-VINSERTI32X4    zmmreg|mask|z,zmmreg*,xmmrm128,imm8 [rvmi:t4: evex.nds.512.66.0f3a.w0 38 /r ib ] AVX512,FUTURE
-VINSERTI32X8    zmmreg|mask|z,zmmreg*,ymmrm256,imm8 [rvmi:t8: evex.nds.512.66.0f3a.w0 3a /r ib ] AVX512DQ,FUTURE
-VINSERTI64X2    ymmreg|mask|z,ymmreg*,xmmrm128,imm8 [rvmi:t2: evex.nds.256.66.0f3a.w1 38 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VINSERTI64X2    zmmreg|mask|z,zmmreg*,xmmrm128,imm8 [rvmi:t2: evex.nds.512.66.0f3a.w1 38 /r ib ] AVX512DQ,FUTURE
-VINSERTI64X4    zmmreg|mask|z,zmmreg*,ymmrm256,imm8 [rvmi:t4: evex.nds.512.66.0f3a.w1 3a /r ib ] AVX512,FUTURE
-VINSERTPS       xmmreg,xmmreg*,xmmrm32,imm8         [rvmi:t1s: evex.nds.128.66.0f3a.w0 21 /r ib ] AVX512,FUTURE
-VMAXPD          xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 5f /r ] AVX512VL,AVX512,FUTURE
-VMAXPD          ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 5f /r ] AVX512VL,AVX512,FUTURE
-VMAXPD          zmmreg|mask|z,zmmreg*,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 5f /r ] AVX512,FUTURE
-VMAXPS          xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.0f.w0 5f /r ] AVX512VL,AVX512,FUTURE
-VMAXPS          ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.0f.w0 5f /r ] AVX512VL,AVX512,FUTURE
-VMAXPS          zmmreg|mask|z,zmmreg*,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 5f /r ] AVX512,FUTURE
-VMAXSD          xmmreg|mask|z,xmmreg*,xmmrm64|sae   [rvm:t1s: evex.nds.128.f2.0f.w1 5f /r ] AVX512,FUTURE
-VMAXSS          xmmreg|mask|z,xmmreg*,xmmrm32|sae   [rvm:t1s: evex.nds.128.f3.0f.w0 5f /r ] AVX512,FUTURE
-VMINPD          xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 5d /r ] AVX512VL,AVX512,FUTURE
-VMINPD          ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 5d /r ] AVX512VL,AVX512,FUTURE
-VMINPD          zmmreg|mask|z,zmmreg*,zmmrm512|b64|sae [rvm:fv: evex.nds.512.66.0f.w1 5d /r ] AVX512,FUTURE
-VMINPS          xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.0f.w0 5d /r ] AVX512VL,AVX512,FUTURE
-VMINPS          ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.0f.w0 5d /r ] AVX512VL,AVX512,FUTURE
-VMINPS          zmmreg|mask|z,zmmreg*,zmmrm512|b32|sae [rvm:fv: evex.nds.512.0f.w0 5d /r ] AVX512,FUTURE
-VMINSD          xmmreg|mask|z,xmmreg*,xmmrm64|sae   [rvm:t1s: evex.nds.128.f2.0f.w1 5d /r ] AVX512,FUTURE
-VMINSS          xmmreg|mask|z,xmmreg*,xmmrm32|sae   [rvm:t1s: evex.nds.128.f3.0f.w0 5d /r ] AVX512,FUTURE
-VMOVAPD         xmmreg|mask|z,xmmrm128              [rm:fvm: evex.128.66.0f.w1 28 /r ] AVX512VL,AVX512,FUTURE
-VMOVAPD         ymmreg|mask|z,ymmrm256              [rm:fvm: evex.256.66.0f.w1 28 /r ] AVX512VL,AVX512,FUTURE
-VMOVAPD         zmmreg|mask|z,zmmrm512              [rm:fvm: evex.512.66.0f.w1 28 /r ] AVX512,FUTURE
-VMOVAPD         xmmreg|mask|z,xmmreg                [mr: evex.128.66.0f.w1 29 /r ] AVX512VL,AVX512,FUTURE
-VMOVAPD         ymmreg|mask|z,ymmreg                [mr: evex.256.66.0f.w1 29 /r ] AVX512VL,AVX512,FUTURE
-VMOVAPD         zmmreg|mask|z,zmmreg                [mr: evex.512.66.0f.w1 29 /r ] AVX512,FUTURE
-VMOVAPD         mem128|mask,xmmreg                  [mr:fvm: evex.128.66.0f.w1 29 /r ] AVX512VL,AVX512,FUTURE
-VMOVAPD         mem256|mask,ymmreg                  [mr:fvm: evex.256.66.0f.w1 29 /r ] AVX512VL,AVX512,FUTURE
-VMOVAPD         mem512|mask,zmmreg                  [mr:fvm: evex.512.66.0f.w1 29 /r ] AVX512,FUTURE
-VMOVAPS         xmmreg|mask|z,xmmrm128              [rm:fvm: evex.128.0f.w0 28 /r ] AVX512VL,AVX512,FUTURE
-VMOVAPS         ymmreg|mask|z,ymmrm256              [rm:fvm: evex.256.0f.w0 28 /r ] AVX512VL,AVX512,FUTURE
-VMOVAPS         zmmreg|mask|z,zmmrm512              [rm:fvm: evex.512.0f.w0 28 /r ] AVX512,FUTURE
-VMOVAPS         xmmreg|mask|z,xmmreg                [mr: evex.128.0f.w0 29 /r ] AVX512VL,AVX512,FUTURE
-VMOVAPS         ymmreg|mask|z,ymmreg                [mr: evex.256.0f.w0 29 /r ] AVX512VL,AVX512,FUTURE
-VMOVAPS         zmmreg|mask|z,zmmreg                [mr: evex.512.0f.w0 29 /r ] AVX512,FUTURE
-VMOVAPS         mem128|mask,xmmreg                  [mr:fvm: evex.128.0f.w0 29 /r ] AVX512VL,AVX512,FUTURE
-VMOVAPS         mem256|mask,ymmreg                  [mr:fvm: evex.256.0f.w0 29 /r ] AVX512VL,AVX512,FUTURE
-VMOVAPS         mem512|mask,zmmreg                  [mr:fvm: evex.512.0f.w0 29 /r ] AVX512,FUTURE
-VMOVD           xmmreg,rm32                         [rm:t1s: evex.128.66.0f.w0 6e /r ] AVX512,FUTURE
-VMOVD           rm32,xmmreg                         [mr:t1s: evex.128.66.0f.w0 7e /r ] AVX512,FUTURE
-VMOVDDUP        xmmreg|mask|z,xmmrm64               [rm:dup: evex.128.f2.0f.w1 12 /r ] AVX512VL,AVX512,FUTURE
-VMOVDDUP        ymmreg|mask|z,ymmrm256              [rm:dup: evex.256.f2.0f.w1 12 /r ] AVX512VL,AVX512,FUTURE
-VMOVDDUP        zmmreg|mask|z,zmmrm512              [rm:dup: evex.512.f2.0f.w1 12 /r ] AVX512,FUTURE
-VMOVDQA32       xmmreg|mask|z,xmmrm128              [rm:fvm: evex.128.66.0f.w0 6f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQA32       ymmreg|mask|z,ymmrm256              [rm:fvm: evex.256.66.0f.w0 6f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQA32       zmmreg|mask|z,zmmrm512              [rm:fvm: evex.512.66.0f.w0 6f /r ] AVX512,FUTURE
-VMOVDQA32       xmmreg|mask|z,xmmreg                [mr: evex.128.66.0f.w0 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQA32       ymmreg|mask|z,ymmreg                [mr: evex.256.66.0f.w0 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQA32       zmmreg|mask|z,zmmreg                [mr: evex.512.66.0f.w0 7f /r ] AVX512,FUTURE
-VMOVDQA32       mem128|mask,xmmreg                  [mr:fvm: evex.128.66.0f.w0 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQA32       mem256|mask,ymmreg                  [mr:fvm: evex.256.66.0f.w0 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQA32       mem512|mask,zmmreg                  [mr:fvm: evex.512.66.0f.w0 7f /r ] AVX512,FUTURE
-VMOVDQA64       xmmreg|mask|z,xmmrm128              [rm:fvm: evex.128.66.0f.w1 6f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQA64       ymmreg|mask|z,ymmrm256              [rm:fvm: evex.256.66.0f.w1 6f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQA64       zmmreg|mask|z,zmmrm512              [rm:fvm: evex.512.66.0f.w1 6f /r ] AVX512,FUTURE
-VMOVDQA64       xmmreg|mask|z,xmmreg                [mr: evex.128.66.0f.w1 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQA64       ymmreg|mask|z,ymmreg                [mr: evex.256.66.0f.w1 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQA64       zmmreg|mask|z,zmmreg                [mr: evex.512.66.0f.w1 7f /r ] AVX512,FUTURE
-VMOVDQA64       mem128|mask,xmmreg                  [mr:fvm: evex.128.66.0f.w1 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQA64       mem256|mask,ymmreg                  [mr:fvm: evex.256.66.0f.w1 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQA64       mem512|mask,zmmreg                  [mr:fvm: evex.512.66.0f.w1 7f /r ] AVX512,FUTURE
-VMOVDQU16       xmmreg|mask|z,xmmrm128              [rm:fvm: evex.128.f2.0f.w1 6f /r ] AVX512VL,AVX512BW,FUTURE
-VMOVDQU16       ymmreg|mask|z,ymmrm256              [rm:fvm: evex.256.f2.0f.w1 6f /r ] AVX512VL,AVX512BW,FUTURE
-VMOVDQU16       zmmreg|mask|z,zmmrm512              [rm:fvm: evex.512.f2.0f.w1 6f /r ] AVX512BW,FUTURE
-VMOVDQU16       xmmreg|mask|z,xmmreg                [mr: evex.128.f2.0f.w1 7f /r ] AVX512VL,AVX512BW,FUTURE
-VMOVDQU16       ymmreg|mask|z,ymmreg                [mr: evex.256.f2.0f.w1 7f /r ] AVX512VL,AVX512BW,FUTURE
-VMOVDQU16       zmmreg|mask|z,zmmreg                [mr: evex.512.f2.0f.w1 7f /r ] AVX512BW,FUTURE
-VMOVDQU16       mem128|mask,xmmreg                  [mr:fvm: evex.128.f2.0f.w1 7f /r ] AVX512VL,AVX512BW,FUTURE
-VMOVDQU16       mem256|mask,ymmreg                  [mr:fvm: evex.256.f2.0f.w1 7f /r ] AVX512VL,AVX512BW,FUTURE
-VMOVDQU16       mem512|mask,zmmreg                  [mr:fvm: evex.512.f2.0f.w1 7f /r ] AVX512BW,FUTURE
-VMOVDQU32       xmmreg|mask|z,xmmrm128              [rm:fvm: evex.128.f3.0f.w0 6f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQU32       ymmreg|mask|z,ymmrm256              [rm:fvm: evex.256.f3.0f.w0 6f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQU32       zmmreg|mask|z,zmmrm512              [rm:fvm: evex.512.f3.0f.w0 6f /r ] AVX512,FUTURE
-VMOVDQU32       xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f.w0 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQU32       ymmreg|mask|z,ymmreg                [mr: evex.256.f3.0f.w0 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQU32       zmmreg|mask|z,zmmreg                [mr: evex.512.f3.0f.w0 7f /r ] AVX512,FUTURE
-VMOVDQU32       mem128|mask,xmmreg                  [mr:fvm: evex.128.f3.0f.w0 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQU32       mem256|mask,ymmreg                  [mr:fvm: evex.256.f3.0f.w0 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQU32       mem512|mask,zmmreg                  [mr:fvm: evex.512.f3.0f.w0 7f /r ] AVX512,FUTURE
-VMOVDQU64       xmmreg|mask|z,xmmrm128              [rm:fvm: evex.128.f3.0f.w1 6f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQU64       ymmreg|mask|z,ymmrm256              [rm:fvm: evex.256.f3.0f.w1 6f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQU64       zmmreg|mask|z,zmmrm512              [rm:fvm: evex.512.f3.0f.w1 6f /r ] AVX512,FUTURE
-VMOVDQU64       xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f.w1 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQU64       ymmreg|mask|z,ymmreg                [mr: evex.256.f3.0f.w1 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQU64       zmmreg|mask|z,zmmreg                [mr: evex.512.f3.0f.w1 7f /r ] AVX512,FUTURE
-VMOVDQU64       mem128|mask,xmmreg                  [mr:fvm: evex.128.f3.0f.w1 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQU64       mem256|mask,ymmreg                  [mr:fvm: evex.256.f3.0f.w1 7f /r ] AVX512VL,AVX512,FUTURE
-VMOVDQU64       mem512|mask,zmmreg                  [mr:fvm: evex.512.f3.0f.w1 7f /r ] AVX512,FUTURE
-VMOVDQU8        xmmreg|mask|z,xmmrm128              [rm:fvm: evex.128.f2.0f.w0 6f /r ] AVX512VL,AVX512BW,FUTURE
-VMOVDQU8        ymmreg|mask|z,ymmrm256              [rm:fvm: evex.256.f2.0f.w0 6f /r ] AVX512VL,AVX512BW,FUTURE
-VMOVDQU8        zmmreg|mask|z,zmmrm512              [rm:fvm: evex.512.f2.0f.w0 6f /r ] AVX512BW,FUTURE
-VMOVDQU8        xmmreg|mask|z,xmmreg                [mr: evex.128.f2.0f.w0 7f /r ] AVX512VL,AVX512BW,FUTURE
-VMOVDQU8        ymmreg|mask|z,ymmreg                [mr: evex.256.f2.0f.w0 7f /r ] AVX512VL,AVX512BW,FUTURE
-VMOVDQU8        zmmreg|mask|z,zmmreg                [mr: evex.512.f2.0f.w0 7f /r ] AVX512BW,FUTURE
-VMOVDQU8        mem128|mask,xmmreg                  [mr:fvm: evex.128.f2.0f.w0 7f /r ] AVX512VL,AVX512BW,FUTURE
-VMOVDQU8        mem256|mask,ymmreg                  [mr:fvm: evex.256.f2.0f.w0 7f /r ] AVX512VL,AVX512BW,FUTURE
-VMOVDQU8        mem512|mask,zmmreg                  [mr:fvm: evex.512.f2.0f.w0 7f /r ] AVX512BW,FUTURE
-VMOVHLPS        xmmreg,xmmreg*,xmmreg               [rvm: evex.nds.128.0f.w0 12 /r ] AVX512,FUTURE
-VMOVHPD         xmmreg,xmmreg*,mem64                [rvm:t1s: evex.nds.128.66.0f.w1 16 /r ] AVX512,FUTURE
-VMOVHPD         mem64,xmmreg                        [mr:t1s: evex.128.66.0f.w1 17 /r ] AVX512,FUTURE
-VMOVHPS         xmmreg,xmmreg*,mem64                [rvm:t2: evex.nds.128.0f.w0 16 /r ] AVX512,FUTURE
-VMOVHPS         mem64,xmmreg                        [mr:t2: evex.128.0f.w0 17 /r ] AVX512,FUTURE
-VMOVLHPS        xmmreg,xmmreg*,xmmreg               [rvm: evex.nds.128.0f.w0 16 /r ] AVX512,FUTURE
-VMOVLPD         xmmreg,xmmreg*,mem64                [rvm:t1s: evex.nds.128.66.0f.w1 12 /r ] AVX512,FUTURE
-VMOVLPD         mem64,xmmreg                        [mr:t1s: evex.128.66.0f.w1 13 /r ] AVX512,FUTURE
-VMOVLPS         xmmreg,xmmreg*,mem64                [rvm:t2: evex.nds.128.0f.w0 12 /r ] AVX512,FUTURE
-VMOVLPS         mem64,xmmreg                        [mr:t2: evex.128.0f.w0 13 /r ] AVX512,FUTURE
-VMOVNTDQ        mem128,xmmreg                       [mr:fvm: evex.128.66.0f.w0 e7 /r ] AVX512VL,AVX512,FUTURE
-VMOVNTDQ        mem256,ymmreg                       [mr:fvm: evex.256.66.0f.w0 e7 /r ] AVX512VL,AVX512,FUTURE
-VMOVNTDQ        mem512,zmmreg                       [mr:fvm: evex.512.66.0f.w0 e7 /r ] AVX512,FUTURE
-VMOVNTDQA       xmmreg,mem128                       [rm:fvm: evex.128.66.0f38.w0 2a /r ] AVX512VL,AVX512,FUTURE
-VMOVNTDQA       ymmreg,mem256                       [rm:fvm: evex.256.66.0f38.w0 2a /r ] AVX512VL,AVX512,FUTURE
-VMOVNTDQA       zmmreg,mem512                       [rm:fvm: evex.512.66.0f38.w0 2a /r ] AVX512,FUTURE
-VMOVNTPD        mem128,xmmreg                       [mr:fvm: evex.128.66.0f.w1 2b /r ] AVX512VL,AVX512,FUTURE
-VMOVNTPD        mem256,ymmreg                       [mr:fvm: evex.256.66.0f.w1 2b /r ] AVX512VL,AVX512,FUTURE
-VMOVNTPD        mem512,zmmreg                       [mr:fvm: evex.512.66.0f.w1 2b /r ] AVX512,FUTURE
-VMOVNTPS        mem128,xmmreg                       [mr:fvm: evex.128.0f.w0 2b /r ] AVX512VL,AVX512,FUTURE
-VMOVNTPS        mem256,ymmreg                       [mr:fvm: evex.256.0f.w0 2b /r ] AVX512VL,AVX512,FUTURE
-VMOVNTPS        mem512,zmmreg                       [mr:fvm: evex.512.0f.w0 2b /r ] AVX512,FUTURE
-VMOVQ           xmmreg,rm64                         [rm:t1s: evex.128.66.0f.w1 6e /r ] AVX512,FUTURE
-VMOVQ           rm64,xmmreg                         [mr:t1s: evex.128.66.0f.w1 7e /r ] AVX512,FUTURE
-VMOVQ           xmmreg,xmmrm64                      [rm:t1s: evex.128.f3.0f.w1 7e /r ] AVX512,FUTURE
-VMOVQ           xmmrm64,xmmreg                      [mr:t1s: evex.128.66.0f.w1 d6 /r ] AVX512,FUTURE
-VMOVSD          xmmreg|mask|z,mem64                 [rm:t1s: evex.128.f2.0f.w1 10 /r ] AVX512,FUTURE
-VMOVSD          mem64|mask,xmmreg                   [mr:t1s: evex.128.f2.0f.w1 11 /r ] AVX512,FUTURE
-VMOVSD          xmmreg|mask|z,xmmreg*,xmmreg        [rvm: evex.nds.128.f2.0f.w1 10 /r ] AVX512,FUTURE
-VMOVSD          xmmreg|mask|z,xmmreg*,xmmreg        [mvr: evex.nds.128.f2.0f.w1 11 /r ] AVX512,FUTURE
-VMOVSHDUP       xmmreg|mask|z,xmmrm128              [rm:fvm: evex.128.f3.0f.w0 16 /r ] AVX512VL,AVX512,FUTURE
-VMOVSHDUP       ymmreg|mask|z,ymmrm256              [rm:fvm: evex.256.f3.0f.w0 16 /r ] AVX512VL,AVX512,FUTURE
-VMOVSHDUP       zmmreg|mask|z,zmmrm512              [rm:fvm: evex.512.f3.0f.w0 16 /r ] AVX512,FUTURE
-VMOVSLDUP       xmmreg|mask|z,xmmrm128              [rm:fvm: evex.128.f3.0f.w0 12 /r ] AVX512VL,AVX512,FUTURE
-VMOVSLDUP       ymmreg|mask|z,ymmrm256              [rm:fvm: evex.256.f3.0f.w0 12 /r ] AVX512VL,AVX512,FUTURE
-VMOVSLDUP       zmmreg|mask|z,zmmrm512              [rm:fvm: evex.512.f3.0f.w0 12 /r ] AVX512,FUTURE
-VMOVSS          xmmreg|mask|z,mem32                 [rm:t1s: evex.128.f3.0f.w0 10 /r ] AVX512,FUTURE
-VMOVSS          mem32|mask,xmmreg                   [mr:t1s: evex.128.f3.0f.w0 11 /r ] AVX512,FUTURE
-VMOVSS          xmmreg|mask|z,xmmreg*,xmmreg        [rvm: evex.nds.128.f3.0f.w0 10 /r ] AVX512,FUTURE
-VMOVSS          xmmreg|mask|z,xmmreg*,xmmreg        [mvr: evex.nds.128.f3.0f.w0 11 /r ] AVX512,FUTURE
-VMOVUPD         xmmreg|mask|z,xmmrm128              [rm:fvm: evex.128.66.0f.w1 10 /r ] AVX512VL,AVX512,FUTURE
-VMOVUPD         ymmreg|mask|z,ymmrm256              [rm:fvm: evex.256.66.0f.w1 10 /r ] AVX512VL,AVX512,FUTURE
-VMOVUPD         zmmreg|mask|z,zmmrm512              [rm:fvm: evex.512.66.0f.w1 10 /r ] AVX512,FUTURE
-VMOVUPD         xmmreg|mask|z,xmmreg                [mr: evex.128.66.0f.w1 11 /r ] AVX512VL,AVX512,FUTURE
-VMOVUPD         ymmreg|mask|z,ymmreg                [mr: evex.256.66.0f.w1 11 /r ] AVX512VL,AVX512,FUTURE
-VMOVUPD         zmmreg|mask|z,zmmreg                [mr: evex.512.66.0f.w1 11 /r ] AVX512,FUTURE
-VMOVUPD         mem128|mask,xmmreg                  [mr:fvm: evex.128.66.0f.w1 11 /r ] AVX512VL,AVX512,FUTURE
-VMOVUPD         mem256|mask,ymmreg                  [mr:fvm: evex.256.66.0f.w1 11 /r ] AVX512VL,AVX512,FUTURE
-VMOVUPD         mem512|mask,zmmreg                  [mr:fvm: evex.512.66.0f.w1 11 /r ] AVX512,FUTURE
-VMOVUPS         xmmreg|mask|z,xmmrm128              [rm:fvm: evex.128.0f.w0 10 /r ] AVX512VL,AVX512,FUTURE
-VMOVUPS         ymmreg|mask|z,ymmrm256              [rm:fvm: evex.256.0f.w0 10 /r ] AVX512VL,AVX512,FUTURE
-VMOVUPS         zmmreg|mask|z,zmmrm512              [rm:fvm: evex.512.0f.w0 10 /r ] AVX512,FUTURE
-VMOVUPS         xmmreg|mask|z,xmmreg                [mr: evex.128.0f.w0 11 /r ] AVX512VL,AVX512,FUTURE
-VMOVUPS         ymmreg|mask|z,ymmreg                [mr: evex.256.0f.w0 11 /r ] AVX512VL,AVX512,FUTURE
-VMOVUPS         zmmreg|mask|z,zmmreg                [mr: evex.512.0f.w0 11 /r ] AVX512,FUTURE
-VMOVUPS         mem128|mask,xmmreg                  [mr:fvm: evex.128.0f.w0 11 /r ] AVX512VL,AVX512,FUTURE
-VMOVUPS         mem256|mask,ymmreg                  [mr:fvm: evex.256.0f.w0 11 /r ] AVX512VL,AVX512,FUTURE
-VMOVUPS         mem512|mask,zmmreg                  [mr:fvm: evex.512.0f.w0 11 /r ] AVX512,FUTURE
-VMULPD          xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 59 /r ] AVX512VL,AVX512,FUTURE
-VMULPD          ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 59 /r ] AVX512VL,AVX512,FUTURE
-VMULPD          zmmreg|mask|z,zmmreg*,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f.w1 59 /r ] AVX512,FUTURE
-VMULPS          xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.0f.w0 59 /r ] AVX512VL,AVX512,FUTURE
-VMULPS          ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.0f.w0 59 /r ] AVX512VL,AVX512,FUTURE
-VMULPS          zmmreg|mask|z,zmmreg*,zmmrm512|b32|er [rvm:fv: evex.nds.512.0f.w0 59 /r ] AVX512,FUTURE
-VMULSD          xmmreg|mask|z,xmmreg*,xmmrm64|er    [rvm:t1s: evex.nds.128.f2.0f.w1 59 /r ] AVX512,FUTURE
-VMULSS          xmmreg|mask|z,xmmreg*,xmmrm32|er    [rvm:t1s: evex.nds.128.f3.0f.w0 59 /r ] AVX512,FUTURE
-VORPD           xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 56 /r ] AVX512VL,AVX512DQ,FUTURE
-VORPD           ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 56 /r ] AVX512VL,AVX512DQ,FUTURE
-VORPD           zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 56 /r ] AVX512DQ,FUTURE
-VORPS           xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.0f.w0 56 /r ] AVX512VL,AVX512DQ,FUTURE
-VORPS           ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.0f.w0 56 /r ] AVX512VL,AVX512DQ,FUTURE
-VORPS           zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.0f.w0 56 /r ] AVX512DQ,FUTURE
-VPABSB          xmmreg|mask|z,xmmrm128              [rm:fvm: evex.128.66.0f38.wig 1c /r ] AVX512VL,AVX512BW,FUTURE
-VPABSB          ymmreg|mask|z,ymmrm256              [rm:fvm: evex.256.66.0f38.wig 1c /r ] AVX512VL,AVX512BW,FUTURE
-VPABSB          zmmreg|mask|z,zmmrm512              [rm:fvm: evex.512.66.0f38.wig 1c /r ] AVX512BW,FUTURE
-VPABSD          xmmreg|mask|z,xmmrm128|b32          [rm:fv: evex.128.66.0f38.w0 1e /r ] AVX512VL,AVX512,FUTURE
-VPABSD          ymmreg|mask|z,ymmrm256|b32          [rm:fv: evex.256.66.0f38.w0 1e /r ] AVX512VL,AVX512,FUTURE
-VPABSD          zmmreg|mask|z,zmmrm512|b32          [rm:fv: evex.512.66.0f38.w0 1e /r ] AVX512,FUTURE
-VPABSQ          xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.66.0f38.w1 1f /r ] AVX512VL,AVX512,FUTURE
-VPABSQ          ymmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.66.0f38.w1 1f /r ] AVX512VL,AVX512,FUTURE
-VPABSQ          zmmreg|mask|z,zmmrm512|b64          [rm:fv: evex.512.66.0f38.w1 1f /r ] AVX512,FUTURE
-VPABSW          xmmreg|mask|z,xmmrm128              [rm:fvm: evex.128.66.0f38.wig 1d /r ] AVX512VL,AVX512BW,FUTURE
-VPABSW          ymmreg|mask|z,ymmrm256              [rm:fvm: evex.256.66.0f38.wig 1d /r ] AVX512VL,AVX512BW,FUTURE
-VPABSW          zmmreg|mask|z,zmmrm512              [rm:fvm: evex.512.66.0f38.wig 1d /r ] AVX512BW,FUTURE
-VPACKSSDW       xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f.w0 6b /r ] AVX512VL,AVX512BW,FUTURE
-VPACKSSDW       ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f.w0 6b /r ] AVX512VL,AVX512BW,FUTURE
-VPACKSSDW       zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f.w0 6b /r ] AVX512BW,FUTURE
-VPACKSSWB       xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig 63 /r ] AVX512VL,AVX512BW,FUTURE
-VPACKSSWB       ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig 63 /r ] AVX512VL,AVX512BW,FUTURE
-VPACKSSWB       zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig 63 /r ] AVX512BW,FUTURE
-VPACKUSDW       xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f38.w0 2b /r ] AVX512VL,AVX512BW,FUTURE
-VPACKUSDW       ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 2b /r ] AVX512VL,AVX512BW,FUTURE
-VPACKUSDW       zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f38.w0 2b /r ] AVX512BW,FUTURE
-VPACKUSWB       xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig 67 /r ] AVX512VL,AVX512BW,FUTURE
-VPACKUSWB       ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig 67 /r ] AVX512VL,AVX512BW,FUTURE
-VPACKUSWB       zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig 67 /r ] AVX512BW,FUTURE
-VPADDB          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig fc /r ] AVX512VL,AVX512BW,FUTURE
-VPADDB          ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig fc /r ] AVX512VL,AVX512BW,FUTURE
-VPADDB          zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig fc /r ] AVX512BW,FUTURE
-VPADDD          xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f.w0 fe /r ] AVX512VL,AVX512,FUTURE
-VPADDD          ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f.w0 fe /r ] AVX512VL,AVX512,FUTURE
-VPADDD          zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f.w0 fe /r ] AVX512,FUTURE
-VPADDQ          xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 d4 /r ] AVX512VL,AVX512,FUTURE
-VPADDQ          ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 d4 /r ] AVX512VL,AVX512,FUTURE
-VPADDQ          zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 d4 /r ] AVX512,FUTURE
-VPADDSB         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig ec /r ] AVX512VL,AVX512BW,FUTURE
-VPADDSB         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig ec /r ] AVX512VL,AVX512BW,FUTURE
-VPADDSB         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig ec /r ] AVX512BW,FUTURE
-VPADDSW         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig ed /r ] AVX512VL,AVX512BW,FUTURE
-VPADDSW         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig ed /r ] AVX512VL,AVX512BW,FUTURE
-VPADDSW         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig ed /r ] AVX512BW,FUTURE
-VPADDUSB        xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig dc /r ] AVX512VL,AVX512BW,FUTURE
-VPADDUSB        ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig dc /r ] AVX512VL,AVX512BW,FUTURE
-VPADDUSB        zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig dc /r ] AVX512BW,FUTURE
-VPADDUSW        xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig dd /r ] AVX512VL,AVX512BW,FUTURE
-VPADDUSW        ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig dd /r ] AVX512VL,AVX512BW,FUTURE
-VPADDUSW        zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig dd /r ] AVX512BW,FUTURE
-VPADDW          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig fd /r ] AVX512VL,AVX512BW,FUTURE
-VPADDW          ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig fd /r ] AVX512VL,AVX512BW,FUTURE
-VPADDW          zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig fd /r ] AVX512BW,FUTURE
-VPALIGNR        xmmreg|mask|z,xmmreg*,xmmrm128,imm8 [rvmi:fvm: evex.nds.128.66.0f3a.wig 0f /r ib ] AVX512VL,AVX512BW,FUTURE
-VPALIGNR        ymmreg|mask|z,ymmreg*,ymmrm256,imm8 [rvmi:fvm: evex.nds.256.66.0f3a.wig 0f /r ib ] AVX512VL,AVX512BW,FUTURE
-VPALIGNR        zmmreg|mask|z,zmmreg*,zmmrm512,imm8 [rvmi:fvm: evex.nds.512.66.0f3a.wig 0f /r ib ] AVX512BW,FUTURE
-VPANDD          xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f.w0 db /r ] AVX512VL,AVX512,FUTURE
-VPANDD          ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f.w0 db /r ] AVX512VL,AVX512,FUTURE
-VPANDD          zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f.w0 db /r ] AVX512,FUTURE
-VPANDND         xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f.w0 df /r ] AVX512VL,AVX512,FUTURE
-VPANDND         ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f.w0 df /r ] AVX512VL,AVX512,FUTURE
-VPANDND         zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f.w0 df /r ] AVX512,FUTURE
-VPANDNQ         xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 df /r ] AVX512VL,AVX512,FUTURE
-VPANDNQ         ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 df /r ] AVX512VL,AVX512,FUTURE
-VPANDNQ         zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 df /r ] AVX512,FUTURE
-VPANDQ          xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 db /r ] AVX512VL,AVX512,FUTURE
-VPANDQ          ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 db /r ] AVX512VL,AVX512,FUTURE
-VPANDQ          zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 db /r ] AVX512,FUTURE
-VPAVGB          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig e0 /r ] AVX512VL,AVX512BW,FUTURE
-VPAVGB          ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig e0 /r ] AVX512VL,AVX512BW,FUTURE
-VPAVGB          zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig e0 /r ] AVX512BW,FUTURE
-VPAVGW          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig e3 /r ] AVX512VL,AVX512BW,FUTURE
-VPAVGW          ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig e3 /r ] AVX512VL,AVX512BW,FUTURE
-VPAVGW          zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig e3 /r ] AVX512BW,FUTURE
-VPBLENDMB       xmmreg|mask|z,xmmreg,xmmrm128       [rvm:fvm: evex.nds.128.66.0f38.w0 66 /r ] AVX512VL,AVX512BW,FUTURE
-VPBLENDMB       ymmreg|mask|z,ymmreg,ymmrm256       [rvm:fvm: evex.nds.256.66.0f38.w0 66 /r ] AVX512VL,AVX512BW,FUTURE
-VPBLENDMB       zmmreg|mask|z,zmmreg,zmmrm512       [rvm:fvm: evex.nds.512.66.0f38.w0 66 /r ] AVX512BW,FUTURE
-VPBLENDMD       xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 64 /r ] AVX512VL,AVX512,FUTURE
-VPBLENDMD       ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 64 /r ] AVX512VL,AVX512,FUTURE
-VPBLENDMD       zmmreg|mask|z,zmmreg,zmmrm512|b32   [rvm:fv: evex.nds.512.66.0f38.w0 64 /r ] AVX512,FUTURE
-VPBLENDMQ       xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 64 /r ] AVX512VL,AVX512,FUTURE
-VPBLENDMQ       ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 64 /r ] AVX512VL,AVX512,FUTURE
-VPBLENDMQ       zmmreg|mask|z,zmmreg,zmmrm512|b64   [rvm:fv: evex.nds.512.66.0f38.w1 64 /r ] AVX512,FUTURE
-VPBLENDMW       xmmreg|mask|z,xmmreg,xmmrm128       [rvm:fvm: evex.nds.128.66.0f38.w1 66 /r ] AVX512VL,AVX512BW,FUTURE
-VPBLENDMW       ymmreg|mask|z,ymmreg,ymmrm256       [rvm:fvm: evex.nds.256.66.0f38.w1 66 /r ] AVX512VL,AVX512BW,FUTURE
-VPBLENDMW       zmmreg|mask|z,zmmreg,zmmrm512       [rvm:fvm: evex.nds.512.66.0f38.w1 66 /r ] AVX512BW,FUTURE
-VPBROADCASTB    xmmreg|mask|z,xmmrm8                [rm:t1s8: evex.128.66.0f38.w0 78 /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTB    ymmreg|mask|z,xmmrm8                [rm:t1s8: evex.256.66.0f38.w0 78 /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTB    zmmreg|mask|z,xmmrm8                [rm:t1s8: evex.512.66.0f38.w0 78 /r ] AVX512BW,FUTURE
-VPBROADCASTB    xmmreg|mask|z,reg8                  [rm: evex.128.66.0f38.w0 7a /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTB    xmmreg|mask|z,reg16                 [rm: evex.128.66.0f38.w0 7a /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTB    xmmreg|mask|z,reg32                 [rm: evex.128.66.0f38.w0 7a /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTB    xmmreg|mask|z,reg64                 [rm: evex.128.66.0f38.w0 7a /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTB    ymmreg|mask|z,reg8                  [rm: evex.256.66.0f38.w0 7a /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTB    ymmreg|mask|z,reg16                 [rm: evex.256.66.0f38.w0 7a /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTB    ymmreg|mask|z,reg32                 [rm: evex.256.66.0f38.w0 7a /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTB    ymmreg|mask|z,reg64                 [rm: evex.256.66.0f38.w0 7a /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTB    zmmreg|mask|z,reg8                  [rm: evex.512.66.0f38.w0 7a /r ] AVX512BW,FUTURE
-VPBROADCASTB    zmmreg|mask|z,reg16                 [rm: evex.512.66.0f38.w0 7a /r ] AVX512BW,FUTURE
-VPBROADCASTB    zmmreg|mask|z,reg32                 [rm: evex.512.66.0f38.w0 7a /r ] AVX512BW,FUTURE
-VPBROADCASTB    zmmreg|mask|z,reg64                 [rm: evex.512.66.0f38.w0 7a /r ] AVX512BW,FUTURE
-VPBROADCASTD    xmmreg|mask|z,mem32                 [rm:t1s: evex.128.66.0f38.w0 58 /r ] AVX512VL,AVX512,FUTURE
-VPBROADCASTD    ymmreg|mask|z,mem32                 [rm:t1s: evex.256.66.0f38.w0 58 /r ] AVX512VL,AVX512,FUTURE
-VPBROADCASTD    zmmreg|mask|z,mem32                 [rm:t1s: evex.512.66.0f38.w0 58 /r ] AVX512,FUTURE
-VPBROADCASTD    xmmreg|mask|z,xmmreg                [rm: evex.128.66.0f38.w0 58 /r ] AVX512VL,AVX512,FUTURE
-VPBROADCASTD    ymmreg|mask|z,xmmreg                [rm: evex.256.66.0f38.w0 58 /r ] AVX512VL,AVX512,FUTURE
-VPBROADCASTD    zmmreg|mask|z,xmmreg                [rm: evex.512.66.0f38.w0 58 /r ] AVX512,FUTURE
-VPBROADCASTD    xmmreg|mask|z,reg32                 [rm: evex.128.66.0f38.w0 7c /r ] AVX512VL,AVX512,FUTURE
-VPBROADCASTD    ymmreg|mask|z,reg32                 [rm: evex.256.66.0f38.w0 7c /r ] AVX512VL,AVX512,FUTURE
-VPBROADCASTD    zmmreg|mask|z,reg32                 [rm: evex.512.66.0f38.w0 7c /r ] AVX512,FUTURE
-VPBROADCASTMB2Q xmmreg,kreg                         [rm: evex.128.f3.0f38.w1 2a /r ] AVX512VL,AVX512CD,FUTURE
-VPBROADCASTMB2Q ymmreg,kreg                         [rm: evex.256.f3.0f38.w1 2a /r ] AVX512VL,AVX512CD,FUTURE
-VPBROADCASTMB2Q zmmreg,kreg                         [rm: evex.512.f3.0f38.w1 2a /r ] AVX512CD,FUTURE
-VPBROADCASTMW2D xmmreg,kreg                         [rm: evex.128.f3.0f38.w0 3a /r ] AVX512VL,AVX512CD,FUTURE
-VPBROADCASTMW2D ymmreg,kreg                         [rm: evex.256.f3.0f38.w0 3a /r ] AVX512VL,AVX512CD,FUTURE
-VPBROADCASTMW2D zmmreg,kreg                         [rm: evex.512.f3.0f38.w0 3a /r ] AVX512CD,FUTURE
-VPBROADCASTQ    xmmreg|mask|z,mem64                 [rm:t1s: evex.128.66.0f38.w1 59 /r ] AVX512VL,AVX512,FUTURE
-VPBROADCASTQ    ymmreg|mask|z,mem64                 [rm:t1s: evex.256.66.0f38.w1 59 /r ] AVX512VL,AVX512,FUTURE
-VPBROADCASTQ    zmmreg|mask|z,mem64                 [rm:t1s: evex.512.66.0f38.w1 59 /r ] AVX512,FUTURE
-VPBROADCASTQ    xmmreg|mask|z,xmmreg                [rm: evex.128.66.0f38.w1 59 /r ] AVX512VL,AVX512,FUTURE
-VPBROADCASTQ    ymmreg|mask|z,xmmreg                [rm: evex.256.66.0f38.w1 59 /r ] AVX512VL,AVX512,FUTURE
-VPBROADCASTQ    zmmreg|mask|z,xmmreg                [rm: evex.512.66.0f38.w1 59 /r ] AVX512,FUTURE
-VPBROADCASTQ    xmmreg|mask|z,reg64                 [rm: evex.128.66.0f38.w1 7c /r ] AVX512VL,AVX512,FUTURE
-VPBROADCASTQ    ymmreg|mask|z,reg64                 [rm: evex.256.66.0f38.w1 7c /r ] AVX512VL,AVX512,FUTURE
-VPBROADCASTQ    zmmreg|mask|z,reg64                 [rm: evex.512.66.0f38.w1 7c /r ] AVX512,FUTURE
-VPBROADCASTW    xmmreg|mask|z,xmmrm16               [rm:t1s16: evex.128.66.0f38.w0 79 /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTW    ymmreg|mask|z,xmmrm16               [rm:t1s16: evex.256.66.0f38.w0 79 /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTW    zmmreg|mask|z,xmmrm16               [rm:t1s16: evex.512.66.0f38.w0 79 /r ] AVX512BW,FUTURE
-VPBROADCASTW    xmmreg|mask|z,reg16                 [rm: evex.128.66.0f38.w0 7b /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTW    xmmreg|mask|z,reg32                 [rm: evex.128.66.0f38.w0 7b /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTW    xmmreg|mask|z,reg64                 [rm: evex.128.66.0f38.w0 7b /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTW    ymmreg|mask|z,reg16                 [rm: evex.256.66.0f38.w0 7b /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTW    ymmreg|mask|z,reg32                 [rm: evex.256.66.0f38.w0 7b /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTW    ymmreg|mask|z,reg64                 [rm: evex.256.66.0f38.w0 7b /r ] AVX512VL,AVX512BW,FUTURE
-VPBROADCASTW    zmmreg|mask|z,reg16                 [rm: evex.512.66.0f38.w0 7b /r ] AVX512BW,FUTURE
-VPBROADCASTW    zmmreg|mask|z,reg32                 [rm: evex.512.66.0f38.w0 7b /r ] AVX512BW,FUTURE
-VPBROADCASTW    zmmreg|mask|z,reg64                 [rm: evex.512.66.0f38.w0 7b /r ] AVX512BW,FUTURE
-VPCMPB          kreg|mask,xmmreg,xmmrm128,imm8      [rvmi:fvm: evex.nds.128.66.0f3a.w0 3f /r ib ] AVX512VL,AVX512BW,FUTURE
-VPCMPB          kreg|mask,ymmreg,ymmrm256,imm8      [rvmi:fvm: evex.nds.256.66.0f3a.w0 3f /r ib ] AVX512VL,AVX512BW,FUTURE
-VPCMPB          kreg|mask,zmmreg,zmmrm512,imm8      [rvmi:fvm: evex.nds.512.66.0f3a.w0 3f /r ib ] AVX512BW,FUTURE
-VPCMPD          kreg|mask,xmmreg,xmmrm128|b32,imm8  [rvmi:fv: evex.nds.128.66.0f3a.w0 1f /r ib ] AVX512VL,AVX512,FUTURE
-VPCMPD          kreg|mask,ymmreg,ymmrm256|b32,imm8  [rvmi:fv: evex.nds.256.66.0f3a.w0 1f /r ib ] AVX512VL,AVX512,FUTURE
-VPCMPD          kreg|mask,zmmreg,zmmrm512|b32,imm8  [rvmi:fv: evex.nds.512.66.0f3a.w0 1f /r ib ] AVX512,FUTURE
-VPCMPEQB        kreg|mask,xmmreg,xmmrm128           [rvm:fvm: evex.nds.128.66.0f.wig 74 /r ] AVX512VL,AVX512BW,FUTURE
-VPCMPEQB        kreg|mask,ymmreg,ymmrm256           [rvm:fvm: evex.nds.256.66.0f.wig 74 /r ] AVX512VL,AVX512BW,FUTURE
-VPCMPEQB        kreg|mask,zmmreg,zmmrm512           [rvm:fvm: evex.nds.512.66.0f.wig 74 /r ] AVX512BW,FUTURE
-VPCMPEQD        kreg|mask,xmmreg,xmmrm128|b32       [rvm:fv: evex.nds.128.66.0f.w0 76 /r ] AVX512VL,AVX512,FUTURE
-VPCMPEQD        kreg|mask,ymmreg,ymmrm256|b32       [rvm:fv: evex.nds.256.66.0f.w0 76 /r ] AVX512VL,AVX512,FUTURE
-VPCMPEQD        kreg|mask,zmmreg,zmmrm512|b32       [rvm:fv: evex.nds.512.66.0f.w0 76 /r ] AVX512,FUTURE
-VPCMPEQQ        kreg|mask,xmmreg,xmmrm128|b64       [rvm:fv: evex.nds.128.66.0f38.w1 29 /r ] AVX512VL,AVX512,FUTURE
-VPCMPEQQ        kreg|mask,ymmreg,ymmrm256|b64       [rvm:fv: evex.nds.256.66.0f38.w1 29 /r ] AVX512VL,AVX512,FUTURE
-VPCMPEQQ        kreg|mask,zmmreg,zmmrm512|b64       [rvm:fv: evex.nds.512.66.0f38.w1 29 /r ] AVX512,FUTURE
-VPCMPEQW        kreg|mask,xmmreg,xmmrm128           [rvm:fvm: evex.nds.128.66.0f.wig 75 /r ] AVX512VL,AVX512BW,FUTURE
-VPCMPEQW        kreg|mask,ymmreg,ymmrm256           [rvm:fvm: evex.nds.256.66.0f.wig 75 /r ] AVX512VL,AVX512BW,FUTURE
-VPCMPEQW        kreg|mask,zmmreg,zmmrm512           [rvm:fvm: evex.nds.512.66.0f.wig 75 /r ] AVX512BW,FUTURE
-VPCMPGTB        kreg|mask,xmmreg,xmmrm128           [rvm:fvm: evex.nds.128.66.0f.wig 64 /r ] AVX512VL,AVX512BW,FUTURE
-VPCMPGTB        kreg|mask,ymmreg,ymmrm256           [rvm:fvm: evex.nds.256.66.0f.wig 64 /r ] AVX512VL,AVX512BW,FUTURE
-VPCMPGTB        kreg|mask,zmmreg,zmmrm512           [rvm:fvm: evex.nds.512.66.0f.wig 64 /r ] AVX512BW,FUTURE
-VPCMPGTD        kreg|mask,xmmreg,xmmrm128|b32       [rvm:fv: evex.nds.128.66.0f.w0 66 /r ] AVX512VL,AVX512,FUTURE
-VPCMPGTD        kreg|mask,ymmreg,ymmrm256|b32       [rvm:fv: evex.nds.256.66.0f.w0 66 /r ] AVX512VL,AVX512,FUTURE
-VPCMPGTD        kreg|mask,zmmreg,zmmrm512|b32       [rvm:fv: evex.nds.512.66.0f.w0 66 /r ] AVX512,FUTURE
-VPCMPGTQ        kreg|mask,xmmreg,xmmrm128|b64       [rvm:fv: evex.nds.128.66.0f38.w1 37 /r ] AVX512VL,AVX512,FUTURE
-VPCMPGTQ        kreg|mask,ymmreg,ymmrm256|b64       [rvm:fv: evex.nds.256.66.0f38.w1 37 /r ] AVX512VL,AVX512,FUTURE
-VPCMPGTQ        kreg|mask,zmmreg,zmmrm512|b64       [rvm:fv: evex.nds.512.66.0f38.w1 37 /r ] AVX512,FUTURE
-VPCMPGTW        kreg|mask,xmmreg,xmmrm128           [rvm:fvm: evex.nds.128.66.0f.wig 65 /r ] AVX512VL,AVX512BW,FUTURE
-VPCMPGTW        kreg|mask,ymmreg,ymmrm256           [rvm:fvm: evex.nds.256.66.0f.wig 65 /r ] AVX512VL,AVX512BW,FUTURE
-VPCMPGTW        kreg|mask,zmmreg,zmmrm512           [rvm:fvm: evex.nds.512.66.0f.wig 65 /r ] AVX512BW,FUTURE
-VPCMPQ          kreg|mask,xmmreg,xmmrm128|b64,imm8  [rvmi:fv: evex.nds.128.66.0f3a.w1 1f /r ib ] AVX512VL,AVX512,FUTURE
-VPCMPQ          kreg|mask,ymmreg,ymmrm256|b64,imm8  [rvmi:fv: evex.nds.256.66.0f3a.w1 1f /r ib ] AVX512VL,AVX512,FUTURE
-VPCMPQ          kreg|mask,zmmreg,zmmrm512|b64,imm8  [rvmi:fv: evex.nds.512.66.0f3a.w1 1f /r ib ] AVX512,FUTURE
-VPCMPUB         kreg|mask,xmmreg,xmmrm128,imm8      [rvmi:fvm: evex.nds.128.66.0f3a.w0 3e /r ib ] AVX512VL,AVX512BW,FUTURE
-VPCMPUB         kreg|mask,ymmreg,ymmrm256,imm8      [rvmi:fvm: evex.nds.256.66.0f3a.w0 3e /r ib ] AVX512VL,AVX512BW,FUTURE
-VPCMPUB         kreg|mask,zmmreg,zmmrm512,imm8      [rvmi:fvm: evex.nds.512.66.0f3a.w0 3e /r ib ] AVX512BW,FUTURE
-VPCMPUD         kreg|mask,xmmreg,xmmrm128|b32,imm8  [rvmi:fv: evex.nds.128.66.0f3a.w0 1e /r ib ] AVX512VL,AVX512,FUTURE
-VPCMPUD         kreg|mask,ymmreg,ymmrm256|b32,imm8  [rvmi:fv: evex.nds.256.66.0f3a.w0 1e /r ib ] AVX512VL,AVX512,FUTURE
-VPCMPUD         kreg|mask,zmmreg,zmmrm512|b32,imm8  [rvmi:fv: evex.nds.512.66.0f3a.w0 1e /r ib ] AVX512,FUTURE
-VPCMPUQ         kreg|mask,xmmreg,xmmrm128|b64,imm8  [rvmi:fv: evex.nds.128.66.0f3a.w1 1e /r ib ] AVX512VL,AVX512,FUTURE
-VPCMPUQ         kreg|mask,ymmreg,ymmrm256|b64,imm8  [rvmi:fv: evex.nds.256.66.0f3a.w1 1e /r ib ] AVX512VL,AVX512,FUTURE
-VPCMPUQ         kreg|mask,zmmreg,zmmrm512|b64,imm8  [rvmi:fv: evex.nds.512.66.0f3a.w1 1e /r ib ] AVX512,FUTURE
-VPCMPUW         kreg|mask,xmmreg,xmmrm128,imm8      [rvmi:fvm: evex.nds.128.66.0f3a.w1 3e /r ib ] AVX512VL,AVX512BW,FUTURE
-VPCMPUW         kreg|mask,ymmreg,ymmrm256,imm8      [rvmi:fvm: evex.nds.256.66.0f3a.w1 3e /r ib ] AVX512VL,AVX512BW,FUTURE
-VPCMPUW         kreg|mask,zmmreg,zmmrm512,imm8      [rvmi:fvm: evex.nds.512.66.0f3a.w1 3e /r ib ] AVX512BW,FUTURE
-VPCMPW          kreg|mask,xmmreg,xmmrm128,imm8      [rvmi:fvm: evex.nds.128.66.0f3a.w1 3f /r ib ] AVX512VL,AVX512BW,FUTURE
-VPCMPW          kreg|mask,ymmreg,ymmrm256,imm8      [rvmi:fvm: evex.nds.256.66.0f3a.w1 3f /r ib ] AVX512VL,AVX512BW,FUTURE
-VPCMPW          kreg|mask,zmmreg,zmmrm512,imm8      [rvmi:fvm: evex.nds.512.66.0f3a.w1 3f /r ib ] AVX512BW,FUTURE
-VPCOMPRESSD     mem128|mask,xmmreg                  [mr:t1s: evex.128.66.0f38.w0 8b /r ] AVX512VL,AVX512,FUTURE
-VPCOMPRESSD     mem256|mask,ymmreg                  [mr:t1s: evex.256.66.0f38.w0 8b /r ] AVX512VL,AVX512,FUTURE
-VPCOMPRESSD     mem512|mask,zmmreg                  [mr:t1s: evex.512.66.0f38.w0 8b /r ] AVX512,FUTURE
-VPCOMPRESSD     xmmreg|mask|z,xmmreg                [mr: evex.128.66.0f38.w0 8b /r ] AVX512VL,AVX512,FUTURE
-VPCOMPRESSD     ymmreg|mask|z,ymmreg                [mr: evex.256.66.0f38.w0 8b /r ] AVX512VL,AVX512,FUTURE
-VPCOMPRESSD     zmmreg|mask|z,zmmreg                [mr: evex.512.66.0f38.w0 8b /r ] AVX512,FUTURE
-VPCOMPRESSQ     mem128|mask,xmmreg                  [mr:t1s: evex.128.66.0f38.w1 8b /r ] AVX512VL,AVX512,FUTURE
-VPCOMPRESSQ     mem256|mask,ymmreg                  [mr:t1s: evex.256.66.0f38.w1 8b /r ] AVX512VL,AVX512,FUTURE
-VPCOMPRESSQ     mem512|mask,zmmreg                  [mr:t1s: evex.512.66.0f38.w1 8b /r ] AVX512,FUTURE
-VPCOMPRESSQ     xmmreg|mask|z,xmmreg                [mr: evex.128.66.0f38.w1 8b /r ] AVX512VL,AVX512,FUTURE
-VPCOMPRESSQ     ymmreg|mask|z,ymmreg                [mr: evex.256.66.0f38.w1 8b /r ] AVX512VL,AVX512,FUTURE
-VPCOMPRESSQ     zmmreg|mask|z,zmmreg                [mr: evex.512.66.0f38.w1 8b /r ] AVX512,FUTURE
-VPCONFLICTD     xmmreg|mask|z,xmmrm128|b32          [rm:fv: evex.128.66.0f38.w0 c4 /r ] AVX512VL,AVX512CD,FUTURE
-VPCONFLICTD     ymmreg|mask|z,ymmrm256|b32          [rm:fv: evex.256.66.0f38.w0 c4 /r ] AVX512VL,AVX512CD,FUTURE
-VPCONFLICTD     zmmreg|mask|z,zmmrm512|b32          [rm:fv: evex.512.66.0f38.w0 c4 /r ] AVX512CD,FUTURE
-VPCONFLICTQ     xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.66.0f38.w1 c4 /r ] AVX512VL,AVX512CD,FUTURE
-VPCONFLICTQ     ymmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.66.0f38.w1 c4 /r ] AVX512VL,AVX512CD,FUTURE
-VPCONFLICTQ     zmmreg|mask|z,zmmrm512|b64          [rm:fv: evex.512.66.0f38.w1 c4 /r ] AVX512CD,FUTURE
-VPERMB          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f38.w0 8d /r ] AVX512VL,AVX512VBMI,FUTURE
-VPERMB          ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f38.w0 8d /r ] AVX512VL,AVX512VBMI,FUTURE
-VPERMB          zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f38.w0 8d /r ] AVX512VBMI,FUTURE
-VPERMD          ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 36 /r ] AVX512VL,AVX512,FUTURE
-VPERMD          zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f38.w0 36 /r ] AVX512,FUTURE
-VPERMI2B        xmmreg|mask|z,xmmreg,xmmrm128       [rvm:fvm: evex.nds.128.66.0f38.w0 75 /r ] AVX512VL,AVX512VBMI,FUTURE
-VPERMI2B        ymmreg|mask|z,ymmreg,ymmrm256       [rvm:fvm: evex.nds.256.66.0f38.w0 75 /r ] AVX512VL,AVX512VBMI,FUTURE
-VPERMI2B        zmmreg|mask|z,zmmreg,zmmrm512       [rvm:fvm: evex.nds.512.66.0f38.w0 75 /r ] AVX512VBMI,FUTURE
-VPERMI2D        xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 76 /r ] AVX512VL,AVX512,FUTURE
-VPERMI2D        ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 76 /r ] AVX512VL,AVX512,FUTURE
-VPERMI2D        zmmreg|mask|z,zmmreg,zmmrm512|b32   [rvm:fv: evex.nds.512.66.0f38.w0 76 /r ] AVX512,FUTURE
-VPERMI2PD       xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 77 /r ] AVX512VL,AVX512,FUTURE
-VPERMI2PD       ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 77 /r ] AVX512VL,AVX512,FUTURE
-VPERMI2PD       zmmreg|mask|z,zmmreg,zmmrm512|b64   [rvm:fv: evex.nds.512.66.0f38.w1 77 /r ] AVX512,FUTURE
-VPERMI2PS       xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 77 /r ] AVX512VL,AVX512,FUTURE
-VPERMI2PS       ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 77 /r ] AVX512VL,AVX512,FUTURE
-VPERMI2PS       zmmreg|mask|z,zmmreg,zmmrm512|b32   [rvm:fv: evex.nds.512.66.0f38.w0 77 /r ] AVX512,FUTURE
-VPERMI2Q        xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 76 /r ] AVX512VL,AVX512,FUTURE
-VPERMI2Q        ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 76 /r ] AVX512VL,AVX512,FUTURE
-VPERMI2Q        zmmreg|mask|z,zmmreg,zmmrm512|b64   [rvm:fv: evex.nds.512.66.0f38.w1 76 /r ] AVX512,FUTURE
-VPERMI2W        xmmreg|mask|z,xmmreg,xmmrm128       [rvm:fvm: evex.nds.128.66.0f38.w1 75 /r ] AVX512VL,AVX512BW,FUTURE
-VPERMI2W        ymmreg|mask|z,ymmreg,ymmrm256       [rvm:fvm: evex.nds.256.66.0f38.w1 75 /r ] AVX512VL,AVX512BW,FUTURE
-VPERMI2W        zmmreg|mask|z,zmmreg,zmmrm512       [rvm:fvm: evex.nds.512.66.0f38.w1 75 /r ] AVX512BW,FUTURE
-VPERMILPD       xmmreg|mask|z,xmmrm128|b64,imm8     [rmi:fv: evex.128.66.0f3a.w1 05 /r ib ] AVX512VL,AVX512,FUTURE
-VPERMILPD       ymmreg|mask|z,ymmrm256|b64,imm8     [rmi:fv: evex.256.66.0f3a.w1 05 /r ib ] AVX512VL,AVX512,FUTURE
-VPERMILPD       zmmreg|mask|z,zmmrm512|b64,imm8     [rmi:fv: evex.512.66.0f3a.w1 05 /r ib ] AVX512,FUTURE
-VPERMILPD       xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f38.w1 0d /r ] AVX512VL,AVX512,FUTURE
-VPERMILPD       ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 0d /r ] AVX512VL,AVX512,FUTURE
-VPERMILPD       zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 0d /r ] AVX512,FUTURE
-VPERMILPS       xmmreg|mask|z,xmmrm128|b32,imm8     [rmi:fv: evex.128.66.0f3a.w0 04 /r ib ] AVX512VL,AVX512,FUTURE
-VPERMILPS       ymmreg|mask|z,ymmrm256|b32,imm8     [rmi:fv: evex.256.66.0f3a.w0 04 /r ib ] AVX512VL,AVX512,FUTURE
-VPERMILPS       zmmreg|mask|z,zmmrm512|b32,imm8     [rmi:fv: evex.512.66.0f3a.w0 04 /r ib ] AVX512,FUTURE
-VPERMILPS       xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f38.w0 0c /r ] AVX512VL,AVX512,FUTURE
-VPERMILPS       ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 0c /r ] AVX512VL,AVX512,FUTURE
-VPERMILPS       zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f38.w0 0c /r ] AVX512,FUTURE
-VPERMPD         ymmreg|mask|z,ymmrm256|b64,imm8     [rmi:fv: evex.256.66.0f3a.w1 01 /r ib ] AVX512VL,AVX512,FUTURE
-VPERMPD         zmmreg|mask|z,zmmrm512|b64,imm8     [rmi:fv: evex.512.66.0f3a.w1 01 /r ib ] AVX512,FUTURE
-VPERMPD         ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 16 /r ] AVX512VL,AVX512,FUTURE
-VPERMPD         zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 16 /r ] AVX512,FUTURE
-VPERMPS         ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 16 /r ] AVX512VL,AVX512,FUTURE
-VPERMPS         zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f38.w0 16 /r ] AVX512,FUTURE
-VPERMQ          ymmreg|mask|z,ymmrm256|b64,imm8     [rmi:fv: evex.256.66.0f3a.w1 00 /r ib ] AVX512VL,AVX512,FUTURE
-VPERMQ          zmmreg|mask|z,zmmrm512|b64,imm8     [rmi:fv: evex.512.66.0f3a.w1 00 /r ib ] AVX512,FUTURE
-VPERMQ          ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 36 /r ] AVX512VL,AVX512,FUTURE
-VPERMQ          zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 36 /r ] AVX512,FUTURE
-VPERMT2B        xmmreg|mask|z,xmmreg,xmmrm128       [rvm:fvm: evex.nds.128.66.0f38.w0 7d /r ] AVX512VL,AVX512VBMI,FUTURE
-VPERMT2B        ymmreg|mask|z,ymmreg,ymmrm256       [rvm:fvm: evex.nds.256.66.0f38.w0 7d /r ] AVX512VL,AVX512VBMI,FUTURE
-VPERMT2B        zmmreg|mask|z,zmmreg,zmmrm512       [rvm:fvm: evex.nds.512.66.0f38.w0 7d /r ] AVX512VBMI,FUTURE
-VPERMT2D        xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 7e /r ] AVX512VL,AVX512,FUTURE
-VPERMT2D        ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 7e /r ] AVX512VL,AVX512,FUTURE
-VPERMT2D        zmmreg|mask|z,zmmreg,zmmrm512|b32   [rvm:fv: evex.nds.512.66.0f38.w0 7e /r ] AVX512,FUTURE
-VPERMT2PD       xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 7f /r ] AVX512VL,AVX512,FUTURE
-VPERMT2PD       ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 7f /r ] AVX512VL,AVX512,FUTURE
-VPERMT2PD       zmmreg|mask|z,zmmreg,zmmrm512|b64   [rvm:fv: evex.nds.512.66.0f38.w1 7f /r ] AVX512,FUTURE
-VPERMT2PS       xmmreg|mask|z,xmmreg,xmmrm128|b32   [rvm:fv: evex.nds.128.66.0f38.w0 7f /r ] AVX512VL,AVX512,FUTURE
-VPERMT2PS       ymmreg|mask|z,ymmreg,ymmrm256|b32   [rvm:fv: evex.nds.256.66.0f38.w0 7f /r ] AVX512VL,AVX512,FUTURE
-VPERMT2PS       zmmreg|mask|z,zmmreg,zmmrm512|b32   [rvm:fv: evex.nds.512.66.0f38.w0 7f /r ] AVX512,FUTURE
-VPERMT2Q        xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 7e /r ] AVX512VL,AVX512,FUTURE
-VPERMT2Q        ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 7e /r ] AVX512VL,AVX512,FUTURE
-VPERMT2Q        zmmreg|mask|z,zmmreg,zmmrm512|b64   [rvm:fv: evex.nds.512.66.0f38.w1 7e /r ] AVX512,FUTURE
-VPERMT2W        xmmreg|mask|z,xmmreg,xmmrm128       [rvm:fvm: evex.nds.128.66.0f38.w1 7d /r ] AVX512VL,AVX512BW,FUTURE
-VPERMT2W        ymmreg|mask|z,ymmreg,ymmrm256       [rvm:fvm: evex.nds.256.66.0f38.w1 7d /r ] AVX512VL,AVX512BW,FUTURE
-VPERMT2W        zmmreg|mask|z,zmmreg,zmmrm512       [rvm:fvm: evex.nds.512.66.0f38.w1 7d /r ] AVX512BW,FUTURE
-VPERMW          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f38.w1 8d /r ] AVX512VL,AVX512BW,FUTURE
-VPERMW          ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f38.w1 8d /r ] AVX512VL,AVX512BW,FUTURE
-VPERMW          zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f38.w1 8d /r ] AVX512BW,FUTURE
-VPEXPANDD       xmmreg|mask|z,mem128                [rm:t1s: evex.128.66.0f38.w0 89 /r ] AVX512VL,AVX512,FUTURE
-VPEXPANDD       ymmreg|mask|z,mem256                [rm:t1s: evex.256.66.0f38.w0 89 /r ] AVX512VL,AVX512,FUTURE
-VPEXPANDD       zmmreg|mask|z,mem512                [rm:t1s: evex.512.66.0f38.w0 89 /r ] AVX512,FUTURE
-VPEXPANDD       xmmreg|mask|z,xmmreg                [rm:t1s: evex.128.66.0f38.w0 89 /r ] AVX512VL,AVX512,FUTURE
-VPEXPANDD       ymmreg|mask|z,ymmreg                [rm:t1s: evex.256.66.0f38.w0 89 /r ] AVX512VL,AVX512,FUTURE
-VPEXPANDD       zmmreg|mask|z,zmmreg                [rm:t1s: evex.512.66.0f38.w0 89 /r ] AVX512,FUTURE
-VPEXPANDQ       xmmreg|mask|z,mem128                [rm:t1s: evex.128.66.0f38.w1 89 /r ] AVX512VL,AVX512,FUTURE
-VPEXPANDQ       ymmreg|mask|z,mem256                [rm:t1s: evex.256.66.0f38.w1 89 /r ] AVX512VL,AVX512,FUTURE
-VPEXPANDQ       zmmreg|mask|z,mem512                [rm:t1s: evex.512.66.0f38.w1 89 /r ] AVX512,FUTURE
-VPEXPANDQ       xmmreg|mask|z,xmmreg                [rm:t1s: evex.128.66.0f38.w1 89 /r ] AVX512VL,AVX512,FUTURE
-VPEXPANDQ       ymmreg|mask|z,ymmreg                [rm:t1s: evex.256.66.0f38.w1 89 /r ] AVX512VL,AVX512,FUTURE
-VPEXPANDQ       zmmreg|mask|z,zmmreg                [rm:t1s: evex.512.66.0f38.w1 89 /r ] AVX512,FUTURE
-VPEXTRB         reg8,xmmreg,imm8                    [mri:t1s8: evex.128.66.0f3a.wig 14 /r ib ] AVX512BW,FUTURE
-VPEXTRB         reg16,xmmreg,imm8                   [mri:t1s8: evex.128.66.0f3a.wig 14 /r ib ] AVX512BW,FUTURE
-VPEXTRB         reg32,xmmreg,imm8                   [mri:t1s8: evex.128.66.0f3a.wig 14 /r ib ] AVX512BW,FUTURE
-VPEXTRB         reg64,xmmreg,imm8                   [mri:t1s8: evex.128.66.0f3a.wig 14 /r ib ] AVX512BW,FUTURE
-VPEXTRB         mem8,xmmreg,imm8                    [mri:t1s8: evex.128.66.0f3a.wig 14 /r ib ] AVX512BW,FUTURE
-VPEXTRD         rm32,xmmreg,imm8                    [mri:t1s: evex.128.66.0f3a.w0 16 /r ib ] AVX512DQ,FUTURE
-VPEXTRQ         rm64,xmmreg,imm8                    [mri:t1s: evex.128.66.0f3a.w1 16 /r ib ] AVX512DQ,FUTURE
-VPEXTRW         reg16,xmmreg,imm8                   [mri:t1s16: evex.128.66.0f3a.wig 15 /r ib ] AVX512BW,FUTURE
-VPEXTRW         reg32,xmmreg,imm8                   [mri:t1s16: evex.128.66.0f3a.wig 15 /r ib ] AVX512BW,FUTURE
-VPEXTRW         reg64,xmmreg,imm8                   [mri:t1s16: evex.128.66.0f3a.wig 15 /r ib ] AVX512BW,FUTURE
-VPEXTRW         mem16,xmmreg,imm8                   [mri:t1s16: evex.128.66.0f3a.wig 15 /r ib ] AVX512BW,FUTURE
-VPEXTRW         reg16,xmmreg,imm8                   [rmi: evex.128.66.0f.wig c5 /r ib ] AVX512BW,FUTURE
-VPEXTRW         reg32,xmmreg,imm8                   [rmi: evex.128.66.0f.wig c5 /r ib ] AVX512BW,FUTURE
-VPEXTRW         reg64,xmmreg,imm8                   [rmi: evex.128.66.0f.wig c5 /r ib ] AVX512BW,FUTURE
-VPGATHERDD      xmmreg|mask,xmem32                  [rm:t1s: vsibx evex.128.66.0f38.w0 90 /r ] AVX512VL,AVX512,FUTURE
-VPGATHERDD      ymmreg|mask,ymem32                  [rm:t1s: vsiby evex.256.66.0f38.w0 90 /r ] AVX512VL,AVX512,FUTURE
-VPGATHERDD      zmmreg|mask,zmem32                  [rm:t1s: vsibz evex.512.66.0f38.w0 90 /r ] AVX512,FUTURE
-VPGATHERDQ      xmmreg|mask,xmem64                  [rm:t1s: vsibx evex.128.66.0f38.w1 90 /r ] AVX512VL,AVX512,FUTURE
-VPGATHERDQ      ymmreg|mask,xmem64                  [rm:t1s: vsibx evex.256.66.0f38.w1 90 /r ] AVX512VL,AVX512,FUTURE
-VPGATHERDQ      zmmreg|mask,ymem64                  [rm:t1s: vsiby evex.512.66.0f38.w1 90 /r ] AVX512,FUTURE
-VPGATHERQD      xmmreg|mask,xmem32                  [rm:t1s: vsibx evex.128.66.0f38.w0 91 /r ] AVX512VL,AVX512,FUTURE
-VPGATHERQD      xmmreg|mask,ymem32                  [rm:t1s: vsiby evex.256.66.0f38.w0 91 /r ] AVX512VL,AVX512,FUTURE
-VPGATHERQD      ymmreg|mask,zmem32                  [rm:t1s: vsibz evex.512.66.0f38.w0 91 /r ] AVX512,FUTURE
-VPGATHERQQ      xmmreg|mask,xmem64                  [rm:t1s: vsibx evex.128.66.0f38.w1 91 /r ] AVX512VL,AVX512,FUTURE
-VPGATHERQQ      ymmreg|mask,ymem64                  [rm:t1s: vsiby evex.256.66.0f38.w1 91 /r ] AVX512VL,AVX512,FUTURE
-VPGATHERQQ      zmmreg|mask,zmem64                  [rm:t1s: vsibz evex.512.66.0f38.w1 91 /r ] AVX512,FUTURE
-VPINSRB         xmmreg,xmmreg*,reg32,imm8           [rvmi:t1s8: evex.nds.128.66.0f3a.wig 20 /r ib ] AVX512BW,FUTURE
-VPINSRB         xmmreg,xmmreg*,mem8,imm8            [rvmi:t1s8: evex.nds.128.66.0f3a.wig 20 /r ib ] AVX512BW,FUTURE
-VPINSRD         xmmreg,xmmreg*,rm32,imm8            [rvmi:t1s: evex.nds.128.66.0f3a.w0 22 /r ib ] AVX512DQ,FUTURE
-VPINSRQ         xmmreg,xmmreg*,rm64,imm8            [rvmi:t1s: evex.nds.128.66.0f3a.w1 22 /r ib ] AVX512DQ,FUTURE
-VPINSRW         xmmreg,xmmreg*,reg32,imm8           [rvmi:t1s16: evex.nds.128.66.0f.wig c4 /r ib ] AVX512BW,FUTURE
-VPINSRW         xmmreg,xmmreg*,mem16,imm8           [rvmi:t1s16: evex.nds.128.66.0f.wig c4 /r ib ] AVX512BW,FUTURE
-VPLZCNTD        xmmreg|mask|z,xmmrm128|b32          [rm:fv: evex.128.66.0f38.w0 44 /r ] AVX512VL,AVX512CD,FUTURE
-VPLZCNTD        ymmreg|mask|z,ymmrm256|b32          [rm:fv: evex.256.66.0f38.w0 44 /r ] AVX512VL,AVX512CD,FUTURE
-VPLZCNTD        zmmreg|mask|z,zmmrm512|b32          [rm:fv: evex.512.66.0f38.w0 44 /r ] AVX512CD,FUTURE
-VPLZCNTQ        xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.66.0f38.w1 44 /r ] AVX512VL,AVX512CD,FUTURE
-VPLZCNTQ        ymmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.66.0f38.w1 44 /r ] AVX512VL,AVX512CD,FUTURE
-VPLZCNTQ        zmmreg|mask|z,zmmrm512|b64          [rm:fv: evex.512.66.0f38.w1 44 /r ] AVX512CD,FUTURE
-VPMADD52HUQ     xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 b5 /r ] AVX512VL,AVX512IFMA,FUTURE
-VPMADD52HUQ     ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 b5 /r ] AVX512VL,AVX512IFMA,FUTURE
-VPMADD52HUQ     zmmreg|mask|z,zmmreg,zmmrm512|b64   [rvm:fv: evex.nds.512.66.0f38.w1 b5 /r ] AVX512IFMA,FUTURE
-VPMADD52LUQ     xmmreg|mask|z,xmmreg,xmmrm128|b64   [rvm:fv: evex.nds.128.66.0f38.w1 b4 /r ] AVX512VL,AVX512IFMA,FUTURE
-VPMADD52LUQ     ymmreg|mask|z,ymmreg,ymmrm256|b64   [rvm:fv: evex.nds.256.66.0f38.w1 b4 /r ] AVX512VL,AVX512IFMA,FUTURE
-VPMADD52LUQ     zmmreg|mask|z,zmmreg,zmmrm512|b64   [rvm:fv: evex.nds.512.66.0f38.w1 b4 /r ] AVX512IFMA,FUTURE
-VPMADDUBSW      xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f38.wig 04 /r ] AVX512VL,AVX512BW,FUTURE
-VPMADDUBSW      ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f38.wig 04 /r ] AVX512VL,AVX512BW,FUTURE
-VPMADDUBSW      zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f38.wig 04 /r ] AVX512BW,FUTURE
-VPMADDWD        xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig f5 /r ] AVX512VL,AVX512BW,FUTURE
-VPMADDWD        ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig f5 /r ] AVX512VL,AVX512BW,FUTURE
-VPMADDWD        zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig f5 /r ] AVX512BW,FUTURE
-VPMAXSB         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f38.wig 3c /r ] AVX512VL,AVX512BW,FUTURE
-VPMAXSB         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f38.wig 3c /r ] AVX512VL,AVX512BW,FUTURE
-VPMAXSB         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f38.wig 3c /r ] AVX512BW,FUTURE
-VPMAXSD         xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f38.w0 3d /r ] AVX512VL,AVX512,FUTURE
-VPMAXSD         ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 3d /r ] AVX512VL,AVX512,FUTURE
-VPMAXSD         zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f38.w0 3d /r ] AVX512,FUTURE
-VPMAXSQ         xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f38.w1 3d /r ] AVX512VL,AVX512,FUTURE
-VPMAXSQ         ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 3d /r ] AVX512VL,AVX512,FUTURE
-VPMAXSQ         zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 3d /r ] AVX512,FUTURE
-VPMAXSW         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig ee /r ] AVX512VL,AVX512BW,FUTURE
-VPMAXSW         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig ee /r ] AVX512VL,AVX512BW,FUTURE
-VPMAXSW         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig ee /r ] AVX512BW,FUTURE
-VPMAXUB         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig de /r ] AVX512VL,AVX512BW,FUTURE
-VPMAXUB         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig de /r ] AVX512VL,AVX512BW,FUTURE
-VPMAXUB         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig de /r ] AVX512BW,FUTURE
-VPMAXUD         xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f38.w0 3f /r ] AVX512VL,AVX512,FUTURE
-VPMAXUD         ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 3f /r ] AVX512VL,AVX512,FUTURE
-VPMAXUD         zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f38.w0 3f /r ] AVX512,FUTURE
-VPMAXUQ         xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f38.w1 3f /r ] AVX512VL,AVX512,FUTURE
-VPMAXUQ         ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 3f /r ] AVX512VL,AVX512,FUTURE
-VPMAXUQ         zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 3f /r ] AVX512,FUTURE
-VPMAXUW         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f38.wig 3e /r ] AVX512VL,AVX512BW,FUTURE
-VPMAXUW         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f38.wig 3e /r ] AVX512VL,AVX512BW,FUTURE
-VPMAXUW         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f38.wig 3e /r ] AVX512BW,FUTURE
-VPMINSB         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f38.wig 38 /r ] AVX512VL,AVX512BW,FUTURE
-VPMINSB         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f38.wig 38 /r ] AVX512VL,AVX512BW,FUTURE
-VPMINSB         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f38.wig 38 /r ] AVX512BW,FUTURE
-VPMINSD         xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f38.w0 39 /r ] AVX512VL,AVX512,FUTURE
-VPMINSD         ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 39 /r ] AVX512VL,AVX512,FUTURE
-VPMINSD         zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f38.w0 39 /r ] AVX512,FUTURE
-VPMINSQ         xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f38.w1 39 /r ] AVX512VL,AVX512,FUTURE
-VPMINSQ         ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 39 /r ] AVX512VL,AVX512,FUTURE
-VPMINSQ         zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 39 /r ] AVX512,FUTURE
-VPMINSW         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig ea /r ] AVX512VL,AVX512BW,FUTURE
-VPMINSW         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig ea /r ] AVX512VL,AVX512BW,FUTURE
-VPMINSW         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig ea /r ] AVX512BW,FUTURE
-VPMINUB         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig da /r ] AVX512VL,AVX512BW,FUTURE
-VPMINUB         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig da /r ] AVX512VL,AVX512BW,FUTURE
-VPMINUB         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig da /r ] AVX512BW,FUTURE
-VPMINUD         xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f38.w0 3b /r ] AVX512VL,AVX512,FUTURE
-VPMINUD         ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 3b /r ] AVX512VL,AVX512,FUTURE
-VPMINUD         zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f38.w0 3b /r ] AVX512,FUTURE
-VPMINUQ         xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f38.w1 3b /r ] AVX512VL,AVX512,FUTURE
-VPMINUQ         ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 3b /r ] AVX512VL,AVX512,FUTURE
-VPMINUQ         zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 3b /r ] AVX512,FUTURE
-VPMINUW         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f38.wig 3a /r ] AVX512VL,AVX512BW,FUTURE
-VPMINUW         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f38.wig 3a /r ] AVX512VL,AVX512BW,FUTURE
-VPMINUW         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f38.wig 3a /r ] AVX512BW,FUTURE
-VPMOVB2M        kreg,xmmreg                         [rm: evex.128.f3.0f38.w0 29 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVB2M        kreg,ymmreg                         [rm: evex.256.f3.0f38.w0 29 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVB2M        kreg,zmmreg                         [rm: evex.512.f3.0f38.w0 29 /r ] AVX512BW,FUTURE
-VPMOVD2M        kreg,xmmreg                         [rm: evex.128.f3.0f38.w0 39 /r ] AVX512VL,AVX512DQ,FUTURE
-VPMOVD2M        kreg,ymmreg                         [rm: evex.256.f3.0f38.w0 39 /r ] AVX512VL,AVX512DQ,FUTURE
-VPMOVD2M        kreg,zmmreg                         [rm: evex.512.f3.0f38.w0 39 /r ] AVX512DQ,FUTURE
-VPMOVDB         xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 31 /r ] AVX512VL,AVX512,FUTURE
-VPMOVDB         xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 31 /r ] AVX512VL,AVX512,FUTURE
-VPMOVDB         xmmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 31 /r ] AVX512,FUTURE
-VPMOVDB         mem32|mask,xmmreg                   [mr:qvm: evex.128.f3.0f38.w0 31 /r ] AVX512VL,AVX512,FUTURE
-VPMOVDB         mem64|mask,ymmreg                   [mr:qvm: evex.256.f3.0f38.w0 31 /r ] AVX512VL,AVX512,FUTURE
-VPMOVDB         mem128|mask,zmmreg                  [mr:qvm: evex.512.f3.0f38.w0 31 /r ] AVX512,FUTURE
-VPMOVDW         xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 33 /r ] AVX512VL,AVX512,FUTURE
-VPMOVDW         xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 33 /r ] AVX512VL,AVX512,FUTURE
-VPMOVDW         ymmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 33 /r ] AVX512,FUTURE
-VPMOVDW         mem64|mask,xmmreg                   [mr:hvm: evex.128.f3.0f38.w0 33 /r ] AVX512VL,AVX512,FUTURE
-VPMOVDW         mem128|mask,ymmreg                  [mr:hvm: evex.256.f3.0f38.w0 33 /r ] AVX512VL,AVX512,FUTURE
-VPMOVDW         mem256|mask,zmmreg                  [mr:hvm: evex.512.f3.0f38.w0 33 /r ] AVX512,FUTURE
-VPMOVM2B        xmmreg,kreg                         [rm: evex.128.f3.0f38.w0 28 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVM2B        ymmreg,kreg                         [rm: evex.256.f3.0f38.w0 28 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVM2B        zmmreg,kreg                         [rm: evex.512.f3.0f38.w0 28 /r ] AVX512BW,FUTURE
-VPMOVM2D        xmmreg,kreg                         [rm: evex.128.f3.0f38.w0 38 /r ] AVX512VL,AVX512DQ,FUTURE
-VPMOVM2D        ymmreg,kreg                         [rm: evex.256.f3.0f38.w0 38 /r ] AVX512VL,AVX512DQ,FUTURE
-VPMOVM2D        zmmreg,kreg                         [rm: evex.512.f3.0f38.w0 38 /r ] AVX512DQ,FUTURE
-VPMOVM2Q        xmmreg,kreg                         [rm: evex.128.f3.0f38.w1 38 /r ] AVX512VL,AVX512DQ,FUTURE
-VPMOVM2Q        ymmreg,kreg                         [rm: evex.256.f3.0f38.w1 38 /r ] AVX512VL,AVX512DQ,FUTURE
-VPMOVM2Q        zmmreg,kreg                         [rm: evex.512.f3.0f38.w1 38 /r ] AVX512DQ,FUTURE
-VPMOVM2W        xmmreg,kreg                         [rm: evex.128.f3.0f38.w1 28 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVM2W        ymmreg,kreg                         [rm: evex.256.f3.0f38.w1 28 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVM2W        zmmreg,kreg                         [rm: evex.512.f3.0f38.w1 28 /r ] AVX512BW,FUTURE
-VPMOVQ2M        kreg,xmmreg                         [rm: evex.128.f3.0f38.w1 39 /r ] AVX512VL,AVX512DQ,FUTURE
-VPMOVQ2M        kreg,ymmreg                         [rm: evex.256.f3.0f38.w1 39 /r ] AVX512VL,AVX512DQ,FUTURE
-VPMOVQ2M        kreg,zmmreg                         [rm: evex.512.f3.0f38.w1 39 /r ] AVX512DQ,FUTURE
-VPMOVQB         xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 32 /r ] AVX512VL,AVX512,FUTURE
-VPMOVQB         xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 32 /r ] AVX512VL,AVX512,FUTURE
-VPMOVQB         xmmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 32 /r ] AVX512,FUTURE
-VPMOVQB         mem16|mask,xmmreg                   [mr:ovm: evex.128.f3.0f38.w0 32 /r ] AVX512VL,AVX512,FUTURE
-VPMOVQB         mem32|mask,ymmreg                   [mr:ovm: evex.256.f3.0f38.w0 32 /r ] AVX512VL,AVX512,FUTURE
-VPMOVQB         mem64|mask,zmmreg                   [mr:ovm: evex.512.f3.0f38.w0 32 /r ] AVX512,FUTURE
-VPMOVQD         xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 35 /r ] AVX512VL,AVX512,FUTURE
-VPMOVQD         xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 35 /r ] AVX512VL,AVX512,FUTURE
-VPMOVQD         ymmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 35 /r ] AVX512,FUTURE
-VPMOVQD         mem64|mask,xmmreg                   [mr:hvm: evex.128.f3.0f38.w0 35 /r ] AVX512VL,AVX512,FUTURE
-VPMOVQD         mem128|mask,ymmreg                  [mr:hvm: evex.256.f3.0f38.w0 35 /r ] AVX512VL,AVX512,FUTURE
-VPMOVQD         mem256|mask,zmmreg                  [mr:hvm: evex.512.f3.0f38.w0 35 /r ] AVX512,FUTURE
-VPMOVQW         xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 34 /r ] AVX512VL,AVX512,FUTURE
-VPMOVQW         xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 34 /r ] AVX512VL,AVX512,FUTURE
-VPMOVQW         xmmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 34 /r ] AVX512,FUTURE
-VPMOVQW         mem32|mask,xmmreg                   [mr:qvm: evex.128.f3.0f38.w0 34 /r ] AVX512VL,AVX512,FUTURE
-VPMOVQW         mem64|mask,ymmreg                   [mr:qvm: evex.256.f3.0f38.w0 34 /r ] AVX512VL,AVX512,FUTURE
-VPMOVQW         mem128|mask,zmmreg                  [mr:qvm: evex.512.f3.0f38.w0 34 /r ] AVX512,FUTURE
-VPMOVSDB        xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 21 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSDB        xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 21 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSDB        xmmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 21 /r ] AVX512,FUTURE
-VPMOVSDB        mem32|mask,xmmreg                   [mr:qvm: evex.128.f3.0f38.w0 21 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSDB        mem64|mask,ymmreg                   [mr:qvm: evex.256.f3.0f38.w0 21 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSDB        mem128|mask,zmmreg                  [mr:qvm: evex.512.f3.0f38.w0 21 /r ] AVX512,FUTURE
-VPMOVSDW        xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 23 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSDW        xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 23 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSDW        ymmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 23 /r ] AVX512,FUTURE
-VPMOVSDW        mem64|mask,xmmreg                   [mr:hvm: evex.128.f3.0f38.w0 23 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSDW        mem128|mask,ymmreg                  [mr:hvm: evex.256.f3.0f38.w0 23 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSDW        mem256|mask,zmmreg                  [mr:hvm: evex.512.f3.0f38.w0 23 /r ] AVX512,FUTURE
-VPMOVSQB        xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 22 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSQB        xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 22 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSQB        xmmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 22 /r ] AVX512,FUTURE
-VPMOVSQB        mem16|mask,xmmreg                   [mr:ovm: evex.128.f3.0f38.w0 22 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSQB        mem32|mask,ymmreg                   [mr:ovm: evex.256.f3.0f38.w0 22 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSQB        mem64|mask,zmmreg                   [mr:ovm: evex.512.f3.0f38.w0 22 /r ] AVX512,FUTURE
-VPMOVSQD        xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 25 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSQD        xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 25 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSQD        ymmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 25 /r ] AVX512,FUTURE
-VPMOVSQD        mem64|mask,xmmreg                   [mr:hvm: evex.128.f3.0f38.w0 25 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSQD        mem128|mask,ymmreg                  [mr:hvm: evex.256.f3.0f38.w0 25 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSQD        mem256|mask,zmmreg                  [mr:hvm: evex.512.f3.0f38.w0 25 /r ] AVX512,FUTURE
-VPMOVSQW        xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 24 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSQW        xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 24 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSQW        xmmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 24 /r ] AVX512,FUTURE
-VPMOVSQW        mem32|mask,xmmreg                   [mr:qvm: evex.128.f3.0f38.w0 24 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSQW        mem64|mask,ymmreg                   [mr:qvm: evex.256.f3.0f38.w0 24 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSQW        mem128|mask,zmmreg                  [mr:qvm: evex.512.f3.0f38.w0 24 /r ] AVX512,FUTURE
-VPMOVSWB        xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 20 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVSWB        xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 20 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVSWB        ymmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 20 /r ] AVX512BW,FUTURE
-VPMOVSWB        mem64|mask,xmmreg                   [mr:hvm: evex.128.f3.0f38.w0 20 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVSWB        mem128|mask,ymmreg                  [mr:hvm: evex.256.f3.0f38.w0 20 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVSWB        mem256|mask,zmmreg                  [mr:hvm: evex.512.f3.0f38.w0 20 /r ] AVX512BW,FUTURE
-VPMOVSXBD       xmmreg|mask|z,xmmrm32               [rm:qvm: evex.128.66.0f38.wig 21 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSXBD       ymmreg|mask|z,xmmrm64               [rm:qvm: evex.256.66.0f38.wig 21 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSXBD       zmmreg|mask|z,xmmrm128              [rm:qvm: evex.512.66.0f38.wig 21 /r ] AVX512,FUTURE
-VPMOVSXBQ       xmmreg|mask|z,xmmrm16               [rm:ovm: evex.128.66.0f38.wig 22 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSXBQ       ymmreg|mask|z,xmmrm32               [rm:ovm: evex.256.66.0f38.wig 22 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSXBQ       zmmreg|mask|z,xmmrm64               [rm:ovm: evex.512.66.0f38.wig 22 /r ] AVX512,FUTURE
-VPMOVSXBW       xmmreg|mask|z,xmmrm64               [rm:hvm: evex.128.66.0f38.wig 20 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVSXBW       ymmreg|mask|z,xmmrm128              [rm:hvm: evex.256.66.0f38.wig 20 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVSXBW       zmmreg|mask|z,ymmrm256              [rm:hvm: evex.512.66.0f38.wig 20 /r ] AVX512BW,FUTURE
-VPMOVSXDQ       xmmreg|mask|z,xmmrm64               [rm:hvm: evex.128.66.0f38.w0 25 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSXDQ       ymmreg|mask|z,xmmrm128              [rm:hvm: evex.256.66.0f38.w0 25 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSXDQ       zmmreg|mask|z,ymmrm256              [rm:hvm: evex.512.66.0f38.w0 25 /r ] AVX512,FUTURE
-VPMOVSXWD       xmmreg|mask|z,xmmrm64               [rm:hvm: evex.128.66.0f38.wig 23 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSXWD       ymmreg|mask|z,xmmrm128              [rm:hvm: evex.256.66.0f38.wig 23 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSXWD       zmmreg|mask|z,ymmrm256              [rm:hvm: evex.512.66.0f38.wig 23 /r ] AVX512,FUTURE
-VPMOVSXWQ       xmmreg|mask|z,xmmrm32               [rm:qvm: evex.128.66.0f38.wig 24 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSXWQ       ymmreg|mask|z,xmmrm64               [rm:qvm: evex.256.66.0f38.wig 24 /r ] AVX512VL,AVX512,FUTURE
-VPMOVSXWQ       zmmreg|mask|z,xmmrm128              [rm:qvm: evex.512.66.0f38.wig 24 /r ] AVX512,FUTURE
-VPMOVUSDB       xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 11 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSDB       xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 11 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSDB       xmmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 11 /r ] AVX512,FUTURE
-VPMOVUSDB       mem32|mask,xmmreg                   [mr:qvm: evex.128.f3.0f38.w0 11 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSDB       mem64|mask,ymmreg                   [mr:qvm: evex.256.f3.0f38.w0 11 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSDB       mem128|mask,zmmreg                  [mr:qvm: evex.512.f3.0f38.w0 11 /r ] AVX512,FUTURE
-VPMOVUSDW       xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 13 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSDW       xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 13 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSDW       ymmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 13 /r ] AVX512,FUTURE
-VPMOVUSDW       mem64|mask,xmmreg                   [mr:hvm: evex.128.f3.0f38.w0 13 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSDW       mem128|mask,ymmreg                  [mr:hvm: evex.256.f3.0f38.w0 13 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSDW       mem256|mask,zmmreg                  [mr:hvm: evex.512.f3.0f38.w0 13 /r ] AVX512,FUTURE
-VPMOVUSQB       xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 12 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSQB       xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 12 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSQB       xmmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 12 /r ] AVX512,FUTURE
-VPMOVUSQB       mem16|mask,xmmreg                   [mr:ovm: evex.128.f3.0f38.w0 12 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSQB       mem32|mask,ymmreg                   [mr:ovm: evex.256.f3.0f38.w0 12 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSQB       mem64|mask,zmmreg                   [mr:ovm: evex.512.f3.0f38.w0 12 /r ] AVX512,FUTURE
-VPMOVUSQD       xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 15 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSQD       xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 15 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSQD       ymmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 15 /r ] AVX512,FUTURE
-VPMOVUSQD       mem64|mask,xmmreg                   [mr:hvm: evex.128.f3.0f38.w0 15 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSQD       mem128|mask,ymmreg                  [mr:hvm: evex.256.f3.0f38.w0 15 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSQD       mem256|mask,zmmreg                  [mr:hvm: evex.512.f3.0f38.w0 15 /r ] AVX512,FUTURE
-VPMOVUSQW       xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 14 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSQW       xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 14 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSQW       xmmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 14 /r ] AVX512,FUTURE
-VPMOVUSQW       mem32|mask,xmmreg                   [mr:qvm: evex.128.f3.0f38.w0 14 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSQW       mem64|mask,ymmreg                   [mr:qvm: evex.256.f3.0f38.w0 14 /r ] AVX512VL,AVX512,FUTURE
-VPMOVUSQW       mem128|mask,zmmreg                  [mr:qvm: evex.512.f3.0f38.w0 14 /r ] AVX512,FUTURE
-VPMOVUSWB       xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 10 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVUSWB       xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 10 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVUSWB       ymmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 10 /r ] AVX512BW,FUTURE
-VPMOVUSWB       mem64|mask,xmmreg                   [mr:hvm: evex.128.f3.0f38.w0 10 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVUSWB       mem128|mask,ymmreg                  [mr:hvm: evex.256.f3.0f38.w0 10 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVUSWB       mem256|mask,zmmreg                  [mr:hvm: evex.512.f3.0f38.w0 10 /r ] AVX512BW,FUTURE
-VPMOVW2M        kreg,xmmreg                         [rm: evex.128.f3.0f38.w1 29 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVW2M        kreg,ymmreg                         [rm: evex.256.f3.0f38.w1 29 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVW2M        kreg,zmmreg                         [rm: evex.512.f3.0f38.w1 29 /r ] AVX512BW,FUTURE
-VPMOVWB         xmmreg|mask|z,xmmreg                [mr: evex.128.f3.0f38.w0 30 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVWB         xmmreg|mask|z,ymmreg                [mr: evex.256.f3.0f38.w0 30 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVWB         ymmreg|mask|z,zmmreg                [mr: evex.512.f3.0f38.w0 30 /r ] AVX512BW,FUTURE
-VPMOVWB         mem64|mask,xmmreg                   [mr:hvm: evex.128.f3.0f38.w0 30 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVWB         mem128|mask,ymmreg                  [mr:hvm: evex.256.f3.0f38.w0 30 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVWB         mem256|mask,zmmreg                  [mr:hvm: evex.512.f3.0f38.w0 30 /r ] AVX512BW,FUTURE
-VPMOVZXBD       xmmreg|mask|z,xmmrm32               [rm:qvm: evex.128.66.0f38.wig 31 /r ] AVX512VL,AVX512,FUTURE
-VPMOVZXBD       ymmreg|mask|z,xmmrm64               [rm:qvm: evex.256.66.0f38.wig 31 /r ] AVX512VL,AVX512,FUTURE
-VPMOVZXBD       zmmreg|mask|z,xmmrm128              [rm:qvm: evex.512.66.0f38.wig 31 /r ] AVX512,FUTURE
-VPMOVZXBQ       xmmreg|mask|z,xmmrm16               [rm:ovm: evex.128.66.0f38.wig 32 /r ] AVX512VL,AVX512,FUTURE
-VPMOVZXBQ       ymmreg|mask|z,xmmrm32               [rm:ovm: evex.256.66.0f38.wig 32 /r ] AVX512VL,AVX512,FUTURE
-VPMOVZXBQ       zmmreg|mask|z,xmmrm64               [rm:ovm: evex.512.66.0f38.wig 32 /r ] AVX512,FUTURE
-VPMOVZXBW       xmmreg|mask|z,xmmrm64               [rm:hvm: evex.128.66.0f38.wig 30 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVZXBW       ymmreg|mask|z,xmmrm128              [rm:hvm: evex.256.66.0f38.wig 30 /r ] AVX512VL,AVX512BW,FUTURE
-VPMOVZXBW       zmmreg|mask|z,ymmrm256              [rm:hvm: evex.512.66.0f38.wig 30 /r ] AVX512BW,FUTURE
-VPMOVZXDQ       xmmreg|mask|z,xmmrm64               [rm:hvm: evex.128.66.0f38.w0 35 /r ] AVX512VL,AVX512,FUTURE
-VPMOVZXDQ       ymmreg|mask|z,xmmrm128              [rm:hvm: evex.256.66.0f38.w0 35 /r ] AVX512VL,AVX512,FUTURE
-VPMOVZXDQ       zmmreg|mask|z,ymmrm256              [rm:hvm: evex.512.66.0f38.w0 35 /r ] AVX512,FUTURE
-VPMOVZXWD       xmmreg|mask|z,xmmrm64               [rm:hvm: evex.128.66.0f38.wig 33 /r ] AVX512VL,AVX512,FUTURE
-VPMOVZXWD       ymmreg|mask|z,xmmrm128              [rm:hvm: evex.256.66.0f38.wig 33 /r ] AVX512VL,AVX512,FUTURE
-VPMOVZXWD       zmmreg|mask|z,ymmrm256              [rm:hvm: evex.512.66.0f38.wig 33 /r ] AVX512,FUTURE
-VPMOVZXWQ       xmmreg|mask|z,xmmrm32               [rm:qvm: evex.128.66.0f38.wig 34 /r ] AVX512VL,AVX512,FUTURE
-VPMOVZXWQ       ymmreg|mask|z,xmmrm64               [rm:qvm: evex.256.66.0f38.wig 34 /r ] AVX512VL,AVX512,FUTURE
-VPMOVZXWQ       zmmreg|mask|z,xmmrm128              [rm:qvm: evex.512.66.0f38.wig 34 /r ] AVX512,FUTURE
-VPMULDQ         xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f38.w1 28 /r ] AVX512VL,AVX512,FUTURE
-VPMULDQ         ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 28 /r ] AVX512VL,AVX512,FUTURE
-VPMULDQ         zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 28 /r ] AVX512,FUTURE
-VPMULHRSW       xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f38.wig 0b /r ] AVX512VL,AVX512BW,FUTURE
-VPMULHRSW       ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f38.wig 0b /r ] AVX512VL,AVX512BW,FUTURE
-VPMULHRSW       zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f38.wig 0b /r ] AVX512BW,FUTURE
-VPMULHUW        xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig e4 /r ] AVX512VL,AVX512BW,FUTURE
-VPMULHUW        ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig e4 /r ] AVX512VL,AVX512BW,FUTURE
-VPMULHUW        zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig e4 /r ] AVX512BW,FUTURE
-VPMULHW         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig e5 /r ] AVX512VL,AVX512BW,FUTURE
-VPMULHW         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig e5 /r ] AVX512VL,AVX512BW,FUTURE
-VPMULHW         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig e5 /r ] AVX512BW,FUTURE
-VPMULLD         xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f38.w0 40 /r ] AVX512VL,AVX512,FUTURE
-VPMULLD         ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 40 /r ] AVX512VL,AVX512,FUTURE
-VPMULLD         zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f38.w0 40 /r ] AVX512,FUTURE
-VPMULLQ         xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f38.w1 40 /r ] AVX512VL,AVX512DQ,FUTURE
-VPMULLQ         ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 40 /r ] AVX512VL,AVX512DQ,FUTURE
-VPMULLQ         zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 40 /r ] AVX512DQ,FUTURE
-VPMULLW         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig d5 /r ] AVX512VL,AVX512BW,FUTURE
-VPMULLW         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig d5 /r ] AVX512VL,AVX512BW,FUTURE
-VPMULLW         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig d5 /r ] AVX512BW,FUTURE
-VPMULTISHIFTQB  xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f38.w1 83 /r ] AVX512VL,AVX512VBMI,FUTURE
-VPMULTISHIFTQB  ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 83 /r ] AVX512VL,AVX512VBMI,FUTURE
-VPMULTISHIFTQB  zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 83 /r ] AVX512VBMI,FUTURE
-VPMULUDQ        xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 f4 /r ] AVX512VL,AVX512,FUTURE
-VPMULUDQ        ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 f4 /r ] AVX512VL,AVX512,FUTURE
-VPMULUDQ        zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 f4 /r ] AVX512,FUTURE
-VPORD           xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f.w0 eb /r ] AVX512VL,AVX512,FUTURE
-VPORD           ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f.w0 eb /r ] AVX512VL,AVX512,FUTURE
-VPORD           zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f.w0 eb /r ] AVX512,FUTURE
-VPORQ           xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 eb /r ] AVX512VL,AVX512,FUTURE
-VPORQ           ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 eb /r ] AVX512VL,AVX512,FUTURE
-VPORQ           zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 eb /r ] AVX512,FUTURE
-VPROLD          xmmreg|mask|z,xmmrm128|b32*,imm8    [vmi:fv: evex.nds.128.66.0f.w0 72 /1 ib ] AVX512VL,AVX512,FUTURE
-VPROLD          ymmreg|mask|z,ymmrm256|b32*,imm8    [vmi:fv: evex.nds.256.66.0f.w0 72 /1 ib ] AVX512VL,AVX512,FUTURE
-VPROLD          zmmreg|mask|z,zmmrm512|b32*,imm8    [vmi:fv: evex.nds.512.66.0f.w0 72 /1 ib ] AVX512,FUTURE
-VPROLQ          xmmreg|mask|z,xmmrm128|b64*,imm8    [vmi:fv: evex.nds.128.66.0f.w1 72 /1 ib ] AVX512VL,AVX512,FUTURE
-VPROLQ          ymmreg|mask|z,ymmrm256|b64*,imm8    [vmi:fv: evex.nds.256.66.0f.w1 72 /1 ib ] AVX512VL,AVX512,FUTURE
-VPROLQ          zmmreg|mask|z,zmmrm512|b64*,imm8    [vmi:fv: evex.nds.512.66.0f.w1 72 /1 ib ] AVX512,FUTURE
-VPROLVD         xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f38.w0 15 /r ] AVX512VL,AVX512,FUTURE
-VPROLVD         ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 15 /r ] AVX512VL,AVX512,FUTURE
-VPROLVD         zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f38.w0 15 /r ] AVX512,FUTURE
-VPROLVQ         xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f38.w1 15 /r ] AVX512VL,AVX512,FUTURE
-VPROLVQ         ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 15 /r ] AVX512VL,AVX512,FUTURE
-VPROLVQ         zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 15 /r ] AVX512,FUTURE
-VPRORD          xmmreg|mask|z,xmmrm128|b32*,imm8    [vmi:fv: evex.nds.128.66.0f.w0 72 /0 ib ] AVX512VL,AVX512,FUTURE
-VPRORD          ymmreg|mask|z,ymmrm256|b32*,imm8    [vmi:fv: evex.nds.256.66.0f.w0 72 /0 ib ] AVX512VL,AVX512,FUTURE
-VPRORD          zmmreg|mask|z,zmmrm512|b32*,imm8    [vmi:fv: evex.nds.512.66.0f.w0 72 /0 ib ] AVX512,FUTURE
-VPRORQ          xmmreg|mask|z,xmmrm128|b64*,imm8    [vmi:fv: evex.nds.128.66.0f.w1 72 /0 ib ] AVX512VL,AVX512,FUTURE
-VPRORQ          ymmreg|mask|z,ymmrm256|b64*,imm8    [vmi:fv: evex.nds.256.66.0f.w1 72 /0 ib ] AVX512VL,AVX512,FUTURE
-VPRORQ          zmmreg|mask|z,zmmrm512|b64*,imm8    [vmi:fv: evex.nds.512.66.0f.w1 72 /0 ib ] AVX512,FUTURE
-VPRORVD         xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f38.w0 14 /r ] AVX512VL,AVX512,FUTURE
-VPRORVD         ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 14 /r ] AVX512VL,AVX512,FUTURE
-VPRORVD         zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f38.w0 14 /r ] AVX512,FUTURE
-VPRORVQ         xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f38.w1 14 /r ] AVX512VL,AVX512,FUTURE
-VPRORVQ         ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 14 /r ] AVX512VL,AVX512,FUTURE
-VPRORVQ         zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 14 /r ] AVX512,FUTURE
-VPSADBW         xmmreg,xmmreg*,xmmrm128             [rvm:fvm: evex.nds.128.66.0f.wig f6 /r ] AVX512VL,AVX512BW,FUTURE
-VPSADBW         ymmreg,ymmreg*,ymmrm256             [rvm:fvm: evex.nds.256.66.0f.wig f6 /r ] AVX512VL,AVX512BW,FUTURE
-VPSADBW         zmmreg,zmmreg*,zmmrm512             [rvm:fvm: evex.nds.512.66.0f.wig f6 /r ] AVX512BW,FUTURE
-VPSCATTERDD     xmem32|mask,xmmreg                  [mr:t1s: vsibx evex.128.66.0f38.w0 a0 /r ] AVX512VL,AVX512,FUTURE
-VPSCATTERDD     ymem32|mask,ymmreg                  [mr:t1s: vsiby evex.256.66.0f38.w0 a0 /r ] AVX512VL,AVX512,FUTURE
-VPSCATTERDD     zmem32|mask,zmmreg                  [mr:t1s: vsibz evex.512.66.0f38.w0 a0 /r ] AVX512,FUTURE
-VPSCATTERDQ     xmem64|mask,xmmreg                  [mr:t1s: vsibx evex.128.66.0f38.w1 a0 /r ] AVX512VL,AVX512,FUTURE
-VPSCATTERDQ     xmem64|mask,ymmreg                  [mr:t1s: vsibx evex.256.66.0f38.w1 a0 /r ] AVX512VL,AVX512,FUTURE
-VPSCATTERDQ     ymem64|mask,zmmreg                  [mr:t1s: vsiby evex.512.66.0f38.w1 a0 /r ] AVX512,FUTURE
-VPSCATTERQD     xmem32|mask,xmmreg                  [mr:t1s: vsibx evex.128.66.0f38.w0 a1 /r ] AVX512VL,AVX512,FUTURE
-VPSCATTERQD     ymem32|mask,xmmreg                  [mr:t1s: vsiby evex.256.66.0f38.w0 a1 /r ] AVX512VL,AVX512,FUTURE
-VPSCATTERQD     zmem32|mask,ymmreg                  [mr:t1s: vsibz evex.512.66.0f38.w0 a1 /r ] AVX512,FUTURE
-VPSCATTERQQ     xmem64|mask,xmmreg                  [mr:t1s: vsibx evex.128.66.0f38.w1 a1 /r ] AVX512VL,AVX512,FUTURE
-VPSCATTERQQ     ymem64|mask,ymmreg                  [mr:t1s: vsiby evex.256.66.0f38.w1 a1 /r ] AVX512VL,AVX512,FUTURE
-VPSCATTERQQ     zmem64|mask,zmmreg                  [mr:t1s: vsibz evex.512.66.0f38.w1 a1 /r ] AVX512,FUTURE
-VPSHUFB         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f38.wig 00 /r ] AVX512VL,AVX512BW,FUTURE
-VPSHUFB         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f38.wig 00 /r ] AVX512VL,AVX512BW,FUTURE
-VPSHUFB         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f38.wig 00 /r ] AVX512BW,FUTURE
-VPSHUFD         xmmreg|mask|z,xmmrm128|b32,imm8     [rmi:fv: evex.128.66.0f.w0 70 /r ib ] AVX512VL,AVX512,FUTURE
-VPSHUFD         ymmreg|mask|z,ymmrm256|b32,imm8     [rmi:fv: evex.256.66.0f.w0 70 /r ib ] AVX512VL,AVX512,FUTURE
-VPSHUFD         zmmreg|mask|z,zmmrm512|b32,imm8     [rmi:fv: evex.512.66.0f.w0 70 /r ib ] AVX512,FUTURE
-VPSHUFHW        xmmreg|mask|z,xmmrm128,imm8         [rmi:fvm: evex.128.f3.0f.wig 70 /r ib ] AVX512VL,AVX512BW,FUTURE
-VPSHUFHW        ymmreg|mask|z,ymmrm256,imm8         [rmi:fvm: evex.256.f3.0f.wig 70 /r ib ] AVX512VL,AVX512BW,FUTURE
-VPSHUFHW        zmmreg|mask|z,zmmrm512,imm8         [rmi:fvm: evex.512.f3.0f.wig 70 /r ib ] AVX512BW,FUTURE
-VPSHUFLW        xmmreg|mask|z,xmmrm128,imm8         [rmi:fvm: evex.128.f2.0f.wig 70 /r ib ] AVX512VL,AVX512BW,FUTURE
-VPSHUFLW        ymmreg|mask|z,ymmrm256,imm8         [rmi:fvm: evex.256.f2.0f.wig 70 /r ib ] AVX512VL,AVX512BW,FUTURE
-VPSHUFLW        zmmreg|mask|z,zmmrm512,imm8         [rmi:fvm: evex.512.f2.0f.wig 70 /r ib ] AVX512BW,FUTURE
-VPSLLD          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:m128: evex.nds.128.66.0f.w0 f2 /r ] AVX512VL,AVX512,FUTURE
-VPSLLD          ymmreg|mask|z,ymmreg*,xmmrm128      [rvm:m128: evex.nds.256.66.0f.w0 f2 /r ] AVX512VL,AVX512,FUTURE
-VPSLLD          zmmreg|mask|z,zmmreg*,xmmrm128      [rvm:m128: evex.nds.512.66.0f.w0 f2 /r ] AVX512,FUTURE
-VPSLLD          xmmreg|mask|z,xmmrm128|b32*,imm8    [vmi:fv: evex.nds.128.66.0f.w0 72 /6 ib ] AVX512VL,AVX512,FUTURE
-VPSLLD          ymmreg|mask|z,ymmrm256|b32*,imm8    [vmi:fv: evex.nds.256.66.0f.w0 72 /6 ib ] AVX512VL,AVX512,FUTURE
-VPSLLD          zmmreg|mask|z,zmmrm512|b32*,imm8    [vmi:fv: evex.nds.512.66.0f.w0 72 /6 ib ] AVX512,FUTURE
-VPSLLDQ         xmmreg,xmmrm128*,imm8               [vmi:fvm: evex.nds.128.66.0f.wig 73 /7 ib ] AVX512VL,AVX512BW,FUTURE
-VPSLLDQ         ymmreg,ymmrm256*,imm8               [vmi:fvm: evex.nds.256.66.0f.wig 73 /7 ib ] AVX512VL,AVX512BW,FUTURE
-VPSLLDQ         zmmreg,zmmrm512*,imm8               [vmi:fvm: evex.nds.512.66.0f.wig 73 /7 ib ] AVX512BW,FUTURE
-VPSLLQ          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:m128: evex.nds.128.66.0f.w1 f3 /r ] AVX512VL,AVX512,FUTURE
-VPSLLQ          ymmreg|mask|z,ymmreg*,xmmrm128      [rvm:m128: evex.nds.256.66.0f.w1 f3 /r ] AVX512VL,AVX512,FUTURE
-VPSLLQ          zmmreg|mask|z,zmmreg*,xmmrm128      [rvm:m128: evex.nds.512.66.0f.w1 f3 /r ] AVX512,FUTURE
-VPSLLQ          xmmreg|mask|z,xmmrm128|b64*,imm8    [vmi:fv: evex.nds.128.66.0f.w1 73 /6 ib ] AVX512VL,AVX512,FUTURE
-VPSLLQ          ymmreg|mask|z,ymmrm256|b64*,imm8    [vmi:fv: evex.nds.256.66.0f.w1 73 /6 ib ] AVX512VL,AVX512,FUTURE
-VPSLLQ          zmmreg|mask|z,zmmrm512|b64*,imm8    [vmi:fv: evex.nds.512.66.0f.w1 73 /6 ib ] AVX512,FUTURE
-VPSLLVD         xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f38.w0 47 /r ] AVX512VL,AVX512,FUTURE
-VPSLLVD         ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 47 /r ] AVX512VL,AVX512,FUTURE
-VPSLLVD         zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f38.w0 47 /r ] AVX512,FUTURE
-VPSLLVQ         xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f38.w1 47 /r ] AVX512VL,AVX512,FUTURE
-VPSLLVQ         ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 47 /r ] AVX512VL,AVX512,FUTURE
-VPSLLVQ         zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 47 /r ] AVX512,FUTURE
-VPSLLVW         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f38.w1 12 /r ] AVX512VL,AVX512BW,FUTURE
-VPSLLVW         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f38.w1 12 /r ] AVX512VL,AVX512BW,FUTURE
-VPSLLVW         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f38.w1 12 /r ] AVX512BW,FUTURE
-VPSLLW          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:m128: evex.nds.128.66.0f.wig f1 /r ] AVX512VL,AVX512BW,FUTURE
-VPSLLW          ymmreg|mask|z,ymmreg*,xmmrm128      [rvm:m128: evex.nds.256.66.0f.wig f1 /r ] AVX512VL,AVX512BW,FUTURE
-VPSLLW          zmmreg|mask|z,zmmreg*,xmmrm128      [rvm:m128: evex.nds.512.66.0f.wig f1 /r ] AVX512BW,FUTURE
-VPSLLW          xmmreg|mask|z,xmmrm128*,imm8        [vmi:fvm: evex.nds.128.66.0f.wig 71 /6 ib ] AVX512VL,AVX512BW,FUTURE
-VPSLLW          ymmreg|mask|z,ymmrm256*,imm8        [vmi:fvm: evex.nds.256.66.0f.wig 71 /6 ib ] AVX512VL,AVX512BW,FUTURE
-VPSLLW          zmmreg|mask|z,zmmrm512*,imm8        [vmi:fvm: evex.nds.512.66.0f.wig 71 /6 ib ] AVX512BW,FUTURE
-VPSRAD          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:m128: evex.nds.128.66.0f.w0 e2 /r ] AVX512VL,AVX512,FUTURE
-VPSRAD          ymmreg|mask|z,ymmreg*,xmmrm128      [rvm:m128: evex.nds.256.66.0f.w0 e2 /r ] AVX512VL,AVX512,FUTURE
-VPSRAD          zmmreg|mask|z,zmmreg*,xmmrm128      [rvm:m128: evex.nds.512.66.0f.w0 e2 /r ] AVX512,FUTURE
-VPSRAD          xmmreg|mask|z,xmmrm128|b32*,imm8    [vmi:fv: evex.nds.128.66.0f.w0 72 /4 ib ] AVX512VL,AVX512,FUTURE
-VPSRAD          ymmreg|mask|z,ymmrm256|b32*,imm8    [vmi:fv: evex.nds.256.66.0f.w0 72 /4 ib ] AVX512VL,AVX512,FUTURE
-VPSRAD          zmmreg|mask|z,zmmrm512|b32*,imm8    [vmi:fv: evex.nds.512.66.0f.w0 72 /4 ib ] AVX512,FUTURE
-VPSRAQ          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:m128: evex.nds.128.66.0f.w1 e2 /r ] AVX512VL,AVX512,FUTURE
-VPSRAQ          ymmreg|mask|z,ymmreg*,xmmrm128      [rvm:m128: evex.nds.256.66.0f.w1 e2 /r ] AVX512VL,AVX512,FUTURE
-VPSRAQ          zmmreg|mask|z,zmmreg*,xmmrm128      [rvm:m128: evex.nds.512.66.0f.w1 e2 /r ] AVX512,FUTURE
-VPSRAQ          xmmreg|mask|z,xmmrm128|b64*,imm8    [vmi:fv: evex.nds.128.66.0f.w1 72 /4 ib ] AVX512VL,AVX512,FUTURE
-VPSRAQ          ymmreg|mask|z,ymmrm256|b64*,imm8    [vmi:fv: evex.nds.256.66.0f.w1 72 /4 ib ] AVX512VL,AVX512,FUTURE
-VPSRAQ          zmmreg|mask|z,zmmrm512|b64*,imm8    [vmi:fv: evex.nds.512.66.0f.w1 72 /4 ib ] AVX512,FUTURE
-VPSRAVD         xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f38.w0 46 /r ] AVX512VL,AVX512,FUTURE
-VPSRAVD         ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 46 /r ] AVX512VL,AVX512,FUTURE
-VPSRAVD         zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f38.w0 46 /r ] AVX512,FUTURE
-VPSRAVQ         xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f38.w1 46 /r ] AVX512VL,AVX512,FUTURE
-VPSRAVQ         ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 46 /r ] AVX512VL,AVX512,FUTURE
-VPSRAVQ         zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 46 /r ] AVX512,FUTURE
-VPSRAVW         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f38.w1 11 /r ] AVX512VL,AVX512BW,FUTURE
-VPSRAVW         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f38.w1 11 /r ] AVX512VL,AVX512BW,FUTURE
-VPSRAVW         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f38.w1 11 /r ] AVX512BW,FUTURE
-VPSRAW          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:m128: evex.nds.128.66.0f.wig e1 /r ] AVX512VL,AVX512BW,FUTURE
-VPSRAW          ymmreg|mask|z,ymmreg*,xmmrm128      [rvm:m128: evex.nds.256.66.0f.wig e1 /r ] AVX512VL,AVX512BW,FUTURE
-VPSRAW          zmmreg|mask|z,zmmreg*,xmmrm128      [rvm:m128: evex.nds.512.66.0f.wig e1 /r ] AVX512BW,FUTURE
-VPSRAW          xmmreg|mask|z,xmmrm128*,imm8        [vmi:fvm: evex.nds.128.66.0f.wig 71 /4 ib ] AVX512VL,AVX512BW,FUTURE
-VPSRAW          ymmreg|mask|z,ymmrm256*,imm8        [vmi:fvm: evex.nds.256.66.0f.wig 71 /4 ib ] AVX512VL,AVX512BW,FUTURE
-VPSRAW          zmmreg|mask|z,zmmrm512*,imm8        [vmi:fvm: evex.nds.512.66.0f.wig 71 /4 ib ] AVX512BW,FUTURE
-VPSRLD          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:m128: evex.nds.128.66.0f.w0 d2 /r ] AVX512VL,AVX512,FUTURE
-VPSRLD          ymmreg|mask|z,ymmreg*,xmmrm128      [rvm:m128: evex.nds.256.66.0f.w0 d2 /r ] AVX512VL,AVX512,FUTURE
-VPSRLD          zmmreg|mask|z,zmmreg*,xmmrm128      [rvm:m128: evex.nds.512.66.0f.w0 d2 /r ] AVX512,FUTURE
-VPSRLD          xmmreg|mask|z,xmmrm128|b32*,imm8    [vmi:fv: evex.nds.128.66.0f.w0 72 /2 ib ] AVX512VL,AVX512,FUTURE
-VPSRLD          ymmreg|mask|z,ymmrm256|b32*,imm8    [vmi:fv: evex.nds.256.66.0f.w0 72 /2 ib ] AVX512VL,AVX512,FUTURE
-VPSRLD          zmmreg|mask|z,zmmrm512|b32*,imm8    [vmi:fv: evex.nds.512.66.0f.w0 72 /2 ib ] AVX512,FUTURE
-VPSRLDQ         xmmreg,xmmrm128*,imm8               [vmi:fvm: evex.nds.128.66.0f.wig 73 /3 ib ] AVX512VL,AVX512BW,FUTURE
-VPSRLDQ         ymmreg,ymmrm256*,imm8               [vmi:fvm: evex.nds.256.66.0f.wig 73 /3 ib ] AVX512VL,AVX512BW,FUTURE
-VPSRLDQ         zmmreg,zmmrm512*,imm8               [vmi:fvm: evex.nds.512.66.0f.wig 73 /3 ib ] AVX512BW,FUTURE
-VPSRLQ          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:m128: evex.nds.128.66.0f.w1 d3 /r ] AVX512VL,AVX512,FUTURE
-VPSRLQ          ymmreg|mask|z,ymmreg*,xmmrm128      [rvm:m128: evex.nds.256.66.0f.w1 d3 /r ] AVX512VL,AVX512,FUTURE
-VPSRLQ          zmmreg|mask|z,zmmreg*,xmmrm128      [rvm:m128: evex.nds.512.66.0f.w1 d3 /r ] AVX512,FUTURE
-VPSRLQ          xmmreg|mask|z,xmmrm128|b64*,imm8    [vmi:fv: evex.nds.128.66.0f.w1 73 /2 ib ] AVX512VL,AVX512,FUTURE
-VPSRLQ          ymmreg|mask|z,ymmrm256|b64*,imm8    [vmi:fv: evex.nds.256.66.0f.w1 73 /2 ib ] AVX512VL,AVX512,FUTURE
-VPSRLQ          zmmreg|mask|z,zmmrm512|b64*,imm8    [vmi:fv: evex.nds.512.66.0f.w1 73 /2 ib ] AVX512,FUTURE
-VPSRLVD         xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f38.w0 45 /r ] AVX512VL,AVX512,FUTURE
-VPSRLVD         ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 45 /r ] AVX512VL,AVX512,FUTURE
-VPSRLVD         zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f38.w0 45 /r ] AVX512,FUTURE
-VPSRLVQ         xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f38.w1 45 /r ] AVX512VL,AVX512,FUTURE
-VPSRLVQ         ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 45 /r ] AVX512VL,AVX512,FUTURE
-VPSRLVQ         zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f38.w1 45 /r ] AVX512,FUTURE
-VPSRLVW         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f38.w1 10 /r ] AVX512VL,AVX512BW,FUTURE
-VPSRLVW         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f38.w1 10 /r ] AVX512VL,AVX512BW,FUTURE
-VPSRLVW         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f38.w1 10 /r ] AVX512BW,FUTURE
-VPSRLW          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:m128: evex.nds.128.66.0f.wig d1 /r ] AVX512VL,AVX512BW,FUTURE
-VPSRLW          ymmreg|mask|z,ymmreg*,xmmrm128      [rvm:m128: evex.nds.256.66.0f.wig d1 /r ] AVX512VL,AVX512BW,FUTURE
-VPSRLW          zmmreg|mask|z,zmmreg*,xmmrm128      [rvm:m128: evex.nds.512.66.0f.wig d1 /r ] AVX512BW,FUTURE
-VPSRLW          xmmreg|mask|z,xmmrm128*,imm8        [vmi:fvm: evex.nds.128.66.0f.wig 71 /2 ib ] AVX512VL,AVX512BW,FUTURE
-VPSRLW          ymmreg|mask|z,ymmrm256*,imm8        [vmi:fvm: evex.nds.256.66.0f.wig 71 /2 ib ] AVX512VL,AVX512BW,FUTURE
-VPSRLW          zmmreg|mask|z,zmmrm512*,imm8        [vmi:fvm: evex.nds.512.66.0f.wig 71 /2 ib ] AVX512BW,FUTURE
-VPSUBB          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig f8 /r ] AVX512VL,AVX512BW,FUTURE
-VPSUBB          ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig f8 /r ] AVX512VL,AVX512BW,FUTURE
-VPSUBB          zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig f8 /r ] AVX512BW,FUTURE
-VPSUBD          xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f.w0 fa /r ] AVX512VL,AVX512,FUTURE
-VPSUBD          ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f.w0 fa /r ] AVX512VL,AVX512,FUTURE
-VPSUBD          zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f.w0 fa /r ] AVX512,FUTURE
-VPSUBQ          xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 fb /r ] AVX512VL,AVX512,FUTURE
-VPSUBQ          ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 fb /r ] AVX512VL,AVX512,FUTURE
-VPSUBQ          zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 fb /r ] AVX512,FUTURE
-VPSUBSB         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig e8 /r ] AVX512VL,AVX512BW,FUTURE
-VPSUBSB         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig e8 /r ] AVX512VL,AVX512BW,FUTURE
-VPSUBSB         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig e8 /r ] AVX512BW,FUTURE
-VPSUBSW         xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig e9 /r ] AVX512VL,AVX512BW,FUTURE
-VPSUBSW         ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig e9 /r ] AVX512VL,AVX512BW,FUTURE
-VPSUBSW         zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig e9 /r ] AVX512BW,FUTURE
-VPSUBUSB        xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig d8 /r ] AVX512VL,AVX512BW,FUTURE
-VPSUBUSB        ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig d8 /r ] AVX512VL,AVX512BW,FUTURE
-VPSUBUSB        zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig d8 /r ] AVX512BW,FUTURE
-VPSUBUSW        xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig d9 /r ] AVX512VL,AVX512BW,FUTURE
-VPSUBUSW        ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig d9 /r ] AVX512VL,AVX512BW,FUTURE
-VPSUBUSW        zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig d9 /r ] AVX512BW,FUTURE
-VPSUBW          xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig f9 /r ] AVX512VL,AVX512BW,FUTURE
-VPSUBW          ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig f9 /r ] AVX512VL,AVX512BW,FUTURE
-VPSUBW          zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig f9 /r ] AVX512BW,FUTURE
-VPTERNLOGD      xmmreg|mask|z,xmmreg,xmmrm128|b32,imm8 [rvmi:fv: evex.nds.128.66.0f3a.w0 25 /r ib ] AVX512VL,AVX512,FUTURE
-VPTERNLOGD      ymmreg|mask|z,ymmreg,ymmrm256|b32,imm8 [rvmi:fv: evex.nds.256.66.0f3a.w0 25 /r ib ] AVX512VL,AVX512,FUTURE
-VPTERNLOGD      zmmreg|mask|z,zmmreg,zmmrm512|b32,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w0 25 /r ib ] AVX512,FUTURE
-VPTERNLOGQ      xmmreg|mask|z,xmmreg,xmmrm128|b64,imm8 [rvmi:fv: evex.nds.128.66.0f3a.w1 25 /r ib ] AVX512VL,AVX512,FUTURE
-VPTERNLOGQ      ymmreg|mask|z,ymmreg,ymmrm256|b64,imm8 [rvmi:fv: evex.nds.256.66.0f3a.w1 25 /r ib ] AVX512VL,AVX512,FUTURE
-VPTERNLOGQ      zmmreg|mask|z,zmmreg,zmmrm512|b64,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w1 25 /r ib ] AVX512,FUTURE
-VPTESTMB        kreg|mask,xmmreg,xmmrm128           [rvm:fvm: evex.nds.128.66.0f38.w0 26 /r ] AVX512VL,AVX512BW,FUTURE
-VPTESTMB        kreg|mask,ymmreg,ymmrm256           [rvm:fvm: evex.nds.256.66.0f38.w0 26 /r ] AVX512VL,AVX512BW,FUTURE
-VPTESTMB        kreg|mask,zmmreg,zmmrm512           [rvm:fvm: evex.nds.512.66.0f38.w0 26 /r ] AVX512BW,FUTURE
-VPTESTMD        kreg|mask,xmmreg,xmmrm128|b32       [rvm:fv: evex.nds.128.66.0f38.w0 27 /r ] AVX512VL,AVX512,FUTURE
-VPTESTMD        kreg|mask,ymmreg,ymmrm256|b32       [rvm:fv: evex.nds.256.66.0f38.w0 27 /r ] AVX512VL,AVX512,FUTURE
-VPTESTMD        kreg|mask,zmmreg,zmmrm512|b32       [rvm:fv: evex.nds.512.66.0f38.w0 27 /r ] AVX512,FUTURE
-VPTESTMQ        kreg|mask,xmmreg,xmmrm128|b64       [rvm:fv: evex.nds.128.66.0f38.w1 27 /r ] AVX512VL,AVX512,FUTURE
-VPTESTMQ        kreg|mask,ymmreg,ymmrm256|b64       [rvm:fv: evex.nds.256.66.0f38.w1 27 /r ] AVX512VL,AVX512,FUTURE
-VPTESTMQ        kreg|mask,zmmreg,zmmrm512|b64       [rvm:fv: evex.nds.512.66.0f38.w1 27 /r ] AVX512,FUTURE
-VPTESTMW        kreg|mask,xmmreg,xmmrm128           [rvm:fvm: evex.nds.128.66.0f38.w1 26 /r ] AVX512VL,AVX512BW,FUTURE
-VPTESTMW        kreg|mask,ymmreg,ymmrm256           [rvm:fvm: evex.nds.256.66.0f38.w1 26 /r ] AVX512VL,AVX512BW,FUTURE
-VPTESTMW        kreg|mask,zmmreg,zmmrm512           [rvm:fvm: evex.nds.512.66.0f38.w1 26 /r ] AVX512BW,FUTURE
-VPTESTNMB       kreg|mask,xmmreg,xmmrm128           [rvm:fvm: evex.nds.128.f3.0f38.w0 26 /r ] AVX512VL,AVX512BW,FUTURE
-VPTESTNMB       kreg|mask,ymmreg,ymmrm256           [rvm:fvm: evex.nds.256.f3.0f38.w0 26 /r ] AVX512VL,AVX512BW,FUTURE
-VPTESTNMB       kreg|mask,zmmreg,zmmrm512           [rvm:fvm: evex.nds.512.f3.0f38.w0 26 /r ] AVX512BW,FUTURE
-VPTESTNMD       kreg|mask,xmmreg,xmmrm128|b32       [rvm:fv: evex.nds.128.f3.0f38.w0 27 /r ] AVX512VL,AVX512,FUTURE
-VPTESTNMD       kreg|mask,ymmreg,ymmrm256|b32       [rvm:fv: evex.nds.256.f3.0f38.w0 27 /r ] AVX512VL,AVX512,FUTURE
-VPTESTNMD       kreg|mask,zmmreg,zmmrm512|b32       [rvm:fv: evex.nds.512.f3.0f38.w0 27 /r ] AVX512,FUTURE
-VPTESTNMQ       kreg|mask,xmmreg,xmmrm128|b64       [rvm:fv: evex.nds.128.f3.0f38.w1 27 /r ] AVX512VL,AVX512,FUTURE
-VPTESTNMQ       kreg|mask,ymmreg,ymmrm256|b64       [rvm:fv: evex.nds.256.f3.0f38.w1 27 /r ] AVX512VL,AVX512,FUTURE
-VPTESTNMQ       kreg|mask,zmmreg,zmmrm512|b64       [rvm:fv: evex.nds.512.f3.0f38.w1 27 /r ] AVX512,FUTURE
-VPTESTNMW       kreg|mask,xmmreg,xmmrm128           [rvm:fvm: evex.nds.128.f3.0f38.w1 26 /r ] AVX512VL,AVX512BW,FUTURE
-VPTESTNMW       kreg|mask,ymmreg,ymmrm256           [rvm:fvm: evex.nds.256.f3.0f38.w1 26 /r ] AVX512VL,AVX512BW,FUTURE
-VPTESTNMW       kreg|mask,zmmreg,zmmrm512           [rvm:fvm: evex.nds.512.f3.0f38.w1 26 /r ] AVX512BW,FUTURE
-VPUNPCKHBW      xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig 68 /r ] AVX512VL,AVX512BW,FUTURE
-VPUNPCKHBW      ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig 68 /r ] AVX512VL,AVX512BW,FUTURE
-VPUNPCKHBW      zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig 68 /r ] AVX512BW,FUTURE
-VPUNPCKHDQ      xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f.w0 6a /r ] AVX512VL,AVX512,FUTURE
-VPUNPCKHDQ      ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f.w0 6a /r ] AVX512VL,AVX512,FUTURE
-VPUNPCKHDQ      zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f.w0 6a /r ] AVX512,FUTURE
-VPUNPCKHQDQ     xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 6d /r ] AVX512VL,AVX512,FUTURE
-VPUNPCKHQDQ     ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 6d /r ] AVX512VL,AVX512,FUTURE
-VPUNPCKHQDQ     zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 6d /r ] AVX512,FUTURE
-VPUNPCKHWD      xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig 69 /r ] AVX512VL,AVX512BW,FUTURE
-VPUNPCKHWD      ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig 69 /r ] AVX512VL,AVX512BW,FUTURE
-VPUNPCKHWD      zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig 69 /r ] AVX512BW,FUTURE
-VPUNPCKLBW      xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig 60 /r ] AVX512VL,AVX512BW,FUTURE
-VPUNPCKLBW      ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig 60 /r ] AVX512VL,AVX512BW,FUTURE
-VPUNPCKLBW      zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig 60 /r ] AVX512BW,FUTURE
-VPUNPCKLDQ      xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f.w0 62 /r ] AVX512VL,AVX512,FUTURE
-VPUNPCKLDQ      ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f.w0 62 /r ] AVX512VL,AVX512,FUTURE
-VPUNPCKLDQ      zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f.w0 62 /r ] AVX512,FUTURE
-VPUNPCKLQDQ     xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 6c /r ] AVX512VL,AVX512,FUTURE
-VPUNPCKLQDQ     ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 6c /r ] AVX512VL,AVX512,FUTURE
-VPUNPCKLQDQ     zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 6c /r ] AVX512,FUTURE
-VPUNPCKLWD      xmmreg|mask|z,xmmreg*,xmmrm128      [rvm:fvm: evex.nds.128.66.0f.wig 61 /r ] AVX512VL,AVX512BW,FUTURE
-VPUNPCKLWD      ymmreg|mask|z,ymmreg*,ymmrm256      [rvm:fvm: evex.nds.256.66.0f.wig 61 /r ] AVX512VL,AVX512BW,FUTURE
-VPUNPCKLWD      zmmreg|mask|z,zmmreg*,zmmrm512      [rvm:fvm: evex.nds.512.66.0f.wig 61 /r ] AVX512BW,FUTURE
-VPXORD          xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f.w0 ef /r ] AVX512VL,AVX512,FUTURE
-VPXORD          ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f.w0 ef /r ] AVX512VL,AVX512,FUTURE
-VPXORD          zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.66.0f.w0 ef /r ] AVX512,FUTURE
-VPXORQ          xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 ef /r ] AVX512VL,AVX512,FUTURE
-VPXORQ          ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 ef /r ] AVX512VL,AVX512,FUTURE
-VPXORQ          zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 ef /r ] AVX512,FUTURE
-VRANGEPD        xmmreg|mask|z,xmmreg*,xmmrm128|b64,imm8 [rvmi:fv: evex.nds.128.66.0f3a.w1 50 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VRANGEPD        ymmreg|mask|z,ymmreg*,ymmrm256|b64,imm8 [rvmi:fv: evex.nds.256.66.0f3a.w1 50 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VRANGEPD        zmmreg|mask|z,zmmreg*,zmmrm512|b64|sae,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w1 50 /r ib ] AVX512DQ,FUTURE
-VRANGEPS        xmmreg|mask|z,xmmreg*,xmmrm128|b32,imm8 [rvmi:fv: evex.nds.128.66.0f3a.w0 50 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VRANGEPS        ymmreg|mask|z,ymmreg*,ymmrm256|b32,imm8 [rvmi:fv: evex.nds.256.66.0f3a.w0 50 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VRANGEPS        zmmreg|mask|z,zmmreg*,zmmrm512|b32|sae,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w0 50 /r ib ] AVX512DQ,FUTURE
-VRANGESD        xmmreg|mask|z,xmmreg*,xmmrm64|sae,imm8 [rvmi:t1s: evex.nds.128.66.0f3a.w1 51 /r ib ] AVX512DQ,FUTURE
-VRANGESS        xmmreg|mask|z,xmmreg*,xmmrm32|sae,imm8 [rvmi:t1s: evex.nds.128.66.0f3a.w0 51 /r ib ] AVX512DQ,FUTURE
-VRCP14PD        xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.66.0f38.w1 4c /r ] AVX512VL,AVX512,FUTURE
-VRCP14PD        ymmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.66.0f38.w1 4c /r ] AVX512VL,AVX512,FUTURE
-VRCP14PD        zmmreg|mask|z,zmmrm512|b64          [rm:fv: evex.512.66.0f38.w1 4c /r ] AVX512,FUTURE
-VRCP14PS        xmmreg|mask|z,xmmrm128|b32          [rm:fv: evex.128.66.0f38.w0 4c /r ] AVX512VL,AVX512,FUTURE
-VRCP14PS        ymmreg|mask|z,ymmrm256|b32          [rm:fv: evex.256.66.0f38.w0 4c /r ] AVX512VL,AVX512,FUTURE
-VRCP14PS        zmmreg|mask|z,zmmrm512|b32          [rm:fv: evex.512.66.0f38.w0 4c /r ] AVX512,FUTURE
-VRCP14SD        xmmreg|mask|z,xmmreg*,xmmrm64       [rvm:t1s: evex.nds.128.66.0f38.w1 4d /r ] AVX512,FUTURE
-VRCP14SS        xmmreg|mask|z,xmmreg*,xmmrm32       [rvm:t1s: evex.nds.128.66.0f38.w0 4d /r ] AVX512,FUTURE
-VRCP28PD        zmmreg|mask|z,zmmrm512|b64|sae      [rm:fv: evex.512.66.0f38.w1 ca /r ] AVX512ER,FUTURE
-VRCP28PS        zmmreg|mask|z,zmmrm512|b32|sae      [rm:fv: evex.512.66.0f38.w0 ca /r ] AVX512ER,FUTURE
-VRCP28SD        xmmreg|mask|z,xmmreg*,xmmrm64|sae   [rvm:t1s: evex.nds.128.66.0f38.w1 cb /r ] AVX512ER,FUTURE
-VRCP28SS        xmmreg|mask|z,xmmreg*,xmmrm32|sae   [rvm:t1s: evex.nds.128.66.0f38.w0 cb /r ] AVX512ER,FUTURE
-VREDUCEPD       xmmreg|mask|z,xmmrm128|b64,imm8     [rmi:fv: evex.128.66.0f3a.w1 56 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VREDUCEPD       ymmreg|mask|z,ymmrm256|b64,imm8     [rmi:fv: evex.256.66.0f3a.w1 56 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VREDUCEPD       zmmreg|mask|z,zmmrm512|b64|sae,imm8 [rmi:fv: evex.512.66.0f3a.w1 56 /r ib ] AVX512DQ,FUTURE
-VREDUCEPS       xmmreg|mask|z,xmmrm128|b32,imm8     [rmi:fv: evex.128.66.0f3a.w0 56 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VREDUCEPS       ymmreg|mask|z,ymmrm256|b32,imm8     [rmi:fv: evex.256.66.0f3a.w0 56 /r ib ] AVX512VL,AVX512DQ,FUTURE
-VREDUCEPS       zmmreg|mask|z,zmmrm512|b32|sae,imm8 [rmi:fv: evex.512.66.0f3a.w0 56 /r ib ] AVX512DQ,FUTURE
-VREDUCESD       xmmreg|mask|z,xmmreg*,xmmrm64|sae,imm8 [rvmi:t1s: evex.nds.128.66.0f3a.w1 57 /r ib ] AVX512DQ,FUTURE
-VREDUCESS       xmmreg|mask|z,xmmreg*,xmmrm32|sae,imm8 [rvmi:t1s: evex.nds.128.66.0f3a.w0 57 /r ib ] AVX512DQ,FUTURE
-VRNDSCALEPD     xmmreg|mask|z,xmmrm128|b64,imm8     [rmi:fv: evex.128.66.0f3a.w1 09 /r ib ] AVX512VL,AVX512,FUTURE
-VRNDSCALEPD     ymmreg|mask|z,ymmrm256|b64,imm8     [rmi:fv: evex.256.66.0f3a.w1 09 /r ib ] AVX512VL,AVX512,FUTURE
-VRNDSCALEPD     zmmreg|mask|z,zmmrm512|b64|sae,imm8 [rmi:fv: evex.512.66.0f3a.w1 09 /r ib ] AVX512,FUTURE
-VRNDSCALEPS     xmmreg|mask|z,xmmrm128|b32,imm8     [rmi:fv: evex.128.66.0f3a.w0 08 /r ib ] AVX512VL,AVX512,FUTURE
-VRNDSCALEPS     ymmreg|mask|z,ymmrm256|b32,imm8     [rmi:fv: evex.256.66.0f3a.w0 08 /r ib ] AVX512VL,AVX512,FUTURE
-VRNDSCALEPS     zmmreg|mask|z,zmmrm512|b32|sae,imm8 [rmi:fv: evex.512.66.0f3a.w0 08 /r ib ] AVX512,FUTURE
-VRNDSCALESD     xmmreg|mask|z,xmmreg*,xmmrm64|sae,imm8 [rvmi:t1s: evex.nds.128.66.0f3a.w1 0b /r ib ] AVX512,FUTURE
-VRNDSCALESS     xmmreg|mask|z,xmmreg*,xmmrm32|sae,imm8 [rvmi:t1s: evex.nds.128.66.0f3a.w0 0a /r ib ] AVX512,FUTURE
-VRSQRT14PD      xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.66.0f38.w1 4e /r ] AVX512VL,AVX512,FUTURE
-VRSQRT14PD      ymmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.66.0f38.w1 4e /r ] AVX512VL,AVX512,FUTURE
-VRSQRT14PD      zmmreg|mask|z,zmmrm512|b64          [rm:fv: evex.512.66.0f38.w1 4e /r ] AVX512,FUTURE
-VRSQRT14PS      xmmreg|mask|z,xmmrm128|b32          [rm:fv: evex.128.66.0f38.w0 4e /r ] AVX512VL,AVX512,FUTURE
-VRSQRT14PS      ymmreg|mask|z,ymmrm256|b32          [rm:fv: evex.256.66.0f38.w0 4e /r ] AVX512VL,AVX512,FUTURE
-VRSQRT14PS      zmmreg|mask|z,zmmrm512|b32          [rm:fv: evex.512.66.0f38.w0 4e /r ] AVX512,FUTURE
-VRSQRT14SD      xmmreg|mask|z,xmmreg*,xmmrm64       [rvm:t1s: evex.nds.128.66.0f38.w1 4f /r ] AVX512,FUTURE
-VRSQRT14SS      xmmreg|mask|z,xmmreg*,xmmrm32       [rvm:t1s: evex.nds.128.66.0f38.w0 4f /r ] AVX512,FUTURE
-VRSQRT28PD      zmmreg|mask|z,zmmrm512|b64|sae      [rm:fv: evex.512.66.0f38.w1 cc /r ] AVX512ER,FUTURE
-VRSQRT28PS      zmmreg|mask|z,zmmrm512|b32|sae      [rm:fv: evex.512.66.0f38.w0 cc /r ] AVX512ER,FUTURE
-VRSQRT28SD      xmmreg|mask|z,xmmreg*,xmmrm64|sae   [rvm:t1s: evex.nds.128.66.0f38.w1 cd /r ] AVX512ER,FUTURE
-VRSQRT28SS      xmmreg|mask|z,xmmreg*,xmmrm32|sae   [rvm:t1s: evex.nds.128.66.0f38.w0 cd /r ] AVX512ER,FUTURE
-VSCALEFPD       xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f38.w1 2c /r ] AVX512VL,AVX512,FUTURE
-VSCALEFPD       ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f38.w1 2c /r ] AVX512VL,AVX512,FUTURE
-VSCALEFPD       zmmreg|mask|z,zmmreg*,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f38.w1 2c /r ] AVX512,FUTURE
-VSCALEFPS       xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.66.0f38.w0 2c /r ] AVX512VL,AVX512,FUTURE
-VSCALEFPS       ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.66.0f38.w0 2c /r ] AVX512VL,AVX512,FUTURE
-VSCALEFPS       zmmreg|mask|z,zmmreg*,zmmrm512|b32|er [rvm:fv: evex.nds.512.66.0f38.w0 2c /r ] AVX512,FUTURE
-VSCALEFSD       xmmreg|mask|z,xmmreg*,xmmrm64|er    [rvm:t1s: evex.nds.128.66.0f38.w1 2d /r ] AVX512,FUTURE
-VSCALEFSS       xmmreg|mask|z,xmmreg*,xmmrm32|er    [rvm:t1s: evex.nds.128.66.0f38.w0 2d /r ] AVX512,FUTURE
-VSCATTERDPD     xmem64|mask,xmmreg                  [mr:t1s: vsibx evex.128.66.0f38.w1 a2 /r ] AVX512VL,AVX512,FUTURE
-VSCATTERDPD     xmem64|mask,ymmreg                  [mr:t1s: vsibx evex.256.66.0f38.w1 a2 /r ] AVX512VL,AVX512,FUTURE
-VSCATTERDPD     ymem64|mask,zmmreg                  [mr:t1s: vsiby evex.512.66.0f38.w1 a2 /r ] AVX512,FUTURE
-VSCATTERDPS     xmem32|mask,xmmreg                  [mr:t1s: vsibx evex.128.66.0f38.w0 a2 /r ] AVX512VL,AVX512,FUTURE
-VSCATTERDPS     ymem32|mask,ymmreg                  [mr:t1s: vsiby evex.256.66.0f38.w0 a2 /r ] AVX512VL,AVX512,FUTURE
-VSCATTERDPS     zmem32|mask,zmmreg                  [mr:t1s: vsibz evex.512.66.0f38.w0 a2 /r ] AVX512,FUTURE
-VSCATTERPF0DPD  ymem64|mask                         [m:t1s: vsiby evex.512.66.0f38.w1 c6 /5 ] AVX512PF,FUTURE
-VSCATTERPF0DPS  zmem32|mask                         [m:t1s: vsibz evex.512.66.0f38.w0 c6 /5 ] AVX512PF,FUTURE
-VSCATTERPF0QPD  zmem64|mask                         [m:t1s: vsibz evex.512.66.0f38.w1 c7 /5 ] AVX512PF,FUTURE
-VSCATTERPF0QPS  zmem32|mask                         [m:t1s: vsibz evex.512.66.0f38.w0 c7 /5 ] AVX512PF,FUTURE
-VSCATTERPF1DPD  ymem64|mask                         [m:t1s: vsiby evex.512.66.0f38.w1 c6 /6 ] AVX512PF,FUTURE
-VSCATTERPF1DPS  zmem32|mask                         [m:t1s: vsibz evex.512.66.0f38.w0 c6 /6 ] AVX512PF,FUTURE
-VSCATTERPF1QPD  zmem64|mask                         [m:t1s: vsibz evex.512.66.0f38.w1 c7 /6 ] AVX512PF,FUTURE
-VSCATTERPF1QPS  zmem32|mask                         [m:t1s: vsibz evex.512.66.0f38.w0 c7 /6 ] AVX512PF,FUTURE
-VSCATTERQPD     xmem64|mask,xmmreg                  [mr:t1s: vsibx evex.128.66.0f38.w1 a3 /r ] AVX512VL,AVX512,FUTURE
-VSCATTERQPD     ymem64|mask,ymmreg                  [mr:t1s: vsiby evex.256.66.0f38.w1 a3 /r ] AVX512VL,AVX512,FUTURE
-VSCATTERQPD     zmem64|mask,zmmreg                  [mr:t1s: vsibz evex.512.66.0f38.w1 a3 /r ] AVX512,FUTURE
-VSCATTERQPS     xmem32|mask,xmmreg                  [mr:t1s: vsibx evex.128.66.0f38.w0 a3 /r ] AVX512VL,AVX512,FUTURE
-VSCATTERQPS     ymem32|mask,xmmreg                  [mr:t1s: vsiby evex.256.66.0f38.w0 a3 /r ] AVX512VL,AVX512,FUTURE
-VSCATTERQPS     zmem32|mask,ymmreg                  [mr:t1s: vsibz evex.512.66.0f38.w0 a3 /r ] AVX512,FUTURE
-VSHUFF32X4      ymmreg|mask|z,ymmreg*,ymmrm256|b32,imm8 [rvmi:fv: evex.nds.256.66.0f3a.w0 23 /r ib ] AVX512VL,AVX512,FUTURE
-VSHUFF32X4      zmmreg|mask|z,zmmreg*,zmmrm512|b32,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w0 23 /r ib ] AVX512,FUTURE
-VSHUFF64X2      ymmreg|mask|z,ymmreg*,ymmrm256|b64,imm8 [rvmi:fv: evex.nds.256.66.0f3a.w1 23 /r ib ] AVX512VL,AVX512,FUTURE
-VSHUFF64X2      zmmreg|mask|z,zmmreg*,zmmrm512|b64,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w1 23 /r ib ] AVX512,FUTURE
-VSHUFI32X4      ymmreg|mask|z,ymmreg*,ymmrm256|b32,imm8 [rvmi:fv: evex.nds.256.66.0f3a.w0 43 /r ib ] AVX512VL,AVX512,FUTURE
-VSHUFI32X4      zmmreg|mask|z,zmmreg*,zmmrm512|b32,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w0 43 /r ib ] AVX512,FUTURE
-VSHUFI64X2      ymmreg|mask|z,ymmreg*,ymmrm256|b64,imm8 [rvmi:fv: evex.nds.256.66.0f3a.w1 43 /r ib ] AVX512VL,AVX512,FUTURE
-VSHUFI64X2      zmmreg|mask|z,zmmreg*,zmmrm512|b64,imm8 [rvmi:fv: evex.nds.512.66.0f3a.w1 43 /r ib ] AVX512,FUTURE
-VSHUFPD         xmmreg|mask|z,xmmreg*,xmmrm128|b64,imm8 [rvmi:fv: evex.nds.128.66.0f.w1 c6 /r ib ] AVX512VL,AVX512,FUTURE
-VSHUFPD         ymmreg|mask|z,ymmreg*,ymmrm256|b64,imm8 [rvmi:fv: evex.nds.256.66.0f.w1 c6 /r ib ] AVX512VL,AVX512,FUTURE
-VSHUFPD         zmmreg|mask|z,zmmreg*,zmmrm512|b64,imm8 [rvmi:fv: evex.nds.512.66.0f.w1 c6 /r ib ] AVX512,FUTURE
-VSHUFPS         xmmreg|mask|z,xmmreg*,xmmrm128|b32,imm8 [rvmi:fv: evex.nds.128.0f.w0 c6 /r ib ] AVX512VL,AVX512,FUTURE
-VSHUFPS         ymmreg|mask|z,ymmreg*,ymmrm256|b32,imm8 [rvmi:fv: evex.nds.256.0f.w0 c6 /r ib ] AVX512VL,AVX512,FUTURE
-VSHUFPS         zmmreg|mask|z,zmmreg*,zmmrm512|b32,imm8 [rvmi:fv: evex.nds.512.0f.w0 c6 /r ib ] AVX512,FUTURE
-VSQRTPD         xmmreg|mask|z,xmmrm128|b64          [rm:fv: evex.128.66.0f.w1 51 /r ] AVX512VL,AVX512,FUTURE
-VSQRTPD         ymmreg|mask|z,ymmrm256|b64          [rm:fv: evex.256.66.0f.w1 51 /r ] AVX512VL,AVX512,FUTURE
-VSQRTPD         zmmreg|mask|z,zmmrm512|b64|er       [rm:fv: evex.512.66.0f.w1 51 /r ] AVX512,FUTURE
-VSQRTPS         xmmreg|mask|z,xmmrm128|b32          [rm:fv: evex.128.0f.w0 51 /r ] AVX512VL,AVX512,FUTURE
-VSQRTPS         ymmreg|mask|z,ymmrm256|b32          [rm:fv: evex.256.0f.w0 51 /r ] AVX512VL,AVX512,FUTURE
-VSQRTPS         zmmreg|mask|z,zmmrm512|b32|er       [rm:fv: evex.512.0f.w0 51 /r ] AVX512,FUTURE
-VSQRTSD         xmmreg|mask|z,xmmreg*,xmmrm64|er    [rvm:t1s: evex.nds.128.f2.0f.w1 51 /r ] AVX512,FUTURE
-VSQRTSS         xmmreg|mask|z,xmmreg*,xmmrm32|er    [rvm:t1s: evex.nds.128.f3.0f.w0 51 /r ] AVX512,FUTURE
-VSUBPD          xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 5c /r ] AVX512VL,AVX512,FUTURE
-VSUBPD          ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 5c /r ] AVX512VL,AVX512,FUTURE
-VSUBPD          zmmreg|mask|z,zmmreg*,zmmrm512|b64|er [rvm:fv: evex.nds.512.66.0f.w1 5c /r ] AVX512,FUTURE
-VSUBPS          xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.0f.w0 5c /r ] AVX512VL,AVX512,FUTURE
-VSUBPS          ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.0f.w0 5c /r ] AVX512VL,AVX512,FUTURE
-VSUBPS          zmmreg|mask|z,zmmreg*,zmmrm512|b32|er [rvm:fv: evex.nds.512.0f.w0 5c /r ] AVX512,FUTURE
-VSUBSD          xmmreg|mask|z,xmmreg*,xmmrm64|er    [rvm:t1s: evex.nds.128.f2.0f.w1 5c /r ] AVX512,FUTURE
-VSUBSS          xmmreg|mask|z,xmmreg*,xmmrm32|er    [rvm:t1s: evex.nds.128.f3.0f.w0 5c /r ] AVX512,FUTURE
-VUCOMISD        xmmreg,xmmrm64|sae                  [rm:t1s: evex.128.66.0f.w1 2e /r ] AVX512,FUTURE
-VUCOMISS        xmmreg,xmmrm32|sae                  [rm:t1s: evex.128.0f.w0 2e /r ] AVX512,FUTURE
-VUNPCKHPD       xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 15 /r ] AVX512VL,AVX512,FUTURE
-VUNPCKHPD       ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 15 /r ] AVX512VL,AVX512,FUTURE
-VUNPCKHPD       zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 15 /r ] AVX512,FUTURE
-VUNPCKHPS       xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.0f.w0 15 /r ] AVX512VL,AVX512,FUTURE
-VUNPCKHPS       ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.0f.w0 15 /r ] AVX512VL,AVX512,FUTURE
-VUNPCKHPS       zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.0f.w0 15 /r ] AVX512,FUTURE
-VUNPCKLPD       xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 14 /r ] AVX512VL,AVX512,FUTURE
-VUNPCKLPD       ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 14 /r ] AVX512VL,AVX512,FUTURE
-VUNPCKLPD       zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 14 /r ] AVX512,FUTURE
-VUNPCKLPS       xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.0f.w0 14 /r ] AVX512VL,AVX512,FUTURE
-VUNPCKLPS       ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.0f.w0 14 /r ] AVX512VL,AVX512,FUTURE
-VUNPCKLPS       zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.0f.w0 14 /r ] AVX512,FUTURE
-VXORPD          xmmreg|mask|z,xmmreg*,xmmrm128|b64  [rvm:fv: evex.nds.128.66.0f.w1 57 /r ] AVX512VL,AVX512DQ,FUTURE
-VXORPD          ymmreg|mask|z,ymmreg*,ymmrm256|b64  [rvm:fv: evex.nds.256.66.0f.w1 57 /r ] AVX512VL,AVX512DQ,FUTURE
-VXORPD          zmmreg|mask|z,zmmreg*,zmmrm512|b64  [rvm:fv: evex.nds.512.66.0f.w1 57 /r ] AVX512DQ,FUTURE
-VXORPS          xmmreg|mask|z,xmmreg*,xmmrm128|b32  [rvm:fv: evex.nds.128.0f.w0 57 /r ] AVX512VL,AVX512DQ,FUTURE
-VXORPS          ymmreg|mask|z,ymmreg*,ymmrm256|b32  [rvm:fv: evex.nds.256.0f.w0 57 /r ] AVX512VL,AVX512DQ,FUTURE
-VXORPS          zmmreg|mask|z,zmmreg*,zmmrm512|b32  [rvm:fv: evex.nds.512.0f.w0 57 /r ] AVX512DQ,FUTURE
-;# MJC PUBLIC END
-
-; Intel memory protection keys for userspace (PKU aka PKEYs)
-RDPKRU		void				[	0f 01 ee]				X64,FUTURE
-WRPKRU		void				[	0f 01 ef]				X64,FUTURE
-
-; Read Processor ID
-RDPID		reg32				[m:	f3 0f c7 /7]				NOLONG,FUTURE
-RDPID		reg64				[m:	o64nw f3 0f c7 /7]			X64,FUTURE
-RDPID		reg32				[m:	f3 0f c7 /7]				X64,UNDOC,FUTURE
-
-; New memory instructions
-CLFLUSHOPT	mem				[m:	66 0f ae /7]				FUTURE
-CLWB            mem                             [m:     66 0f ae /6]                            FUTURE
-;# This one was killed before it saw the light of day
-PCOMMIT         void                            [       66 0f ae f8]                            FUTURE,UNDOC,OBSOLETE
-
-; AMD Zen v1
-CLZERO		void				[	0f 01 fc]				FUTURE,AMD
-
-;# Systematic names for the hinting nop instructions
-; These should be last in the file
-HINT_NOP0	rm16				[m:	o16 0f 18 /0]				P6,UNDOC
-HINT_NOP0	rm32				[m:	o32 0f 18 /0]				P6,UNDOC
-HINT_NOP0	rm64				[m:	o64 0f 18 /0]				X64,UNDOC
-HINT_NOP1	rm16				[m:	o16 0f 18 /1]				P6,UNDOC
-HINT_NOP1	rm32				[m:	o32 0f 18 /1]				P6,UNDOC
-HINT_NOP1	rm64				[m:	o64 0f 18 /1]				X64,UNDOC
-HINT_NOP2	rm16				[m:	o16 0f 18 /2]				P6,UNDOC
-HINT_NOP2	rm32				[m:	o32 0f 18 /2]				P6,UNDOC
-HINT_NOP2	rm64				[m:	o64 0f 18 /2]				X64,UNDOC
-HINT_NOP3	rm16				[m:	o16 0f 18 /3]				P6,UNDOC
-HINT_NOP3	rm32				[m:	o32 0f 18 /3]				P6,UNDOC
-HINT_NOP3	rm64				[m:	o64 0f 18 /3]				X64,UNDOC
-HINT_NOP4	rm16				[m:	o16 0f 18 /4]				P6,UNDOC
-HINT_NOP4	rm32				[m:	o32 0f 18 /4]				P6,UNDOC
-HINT_NOP4	rm64				[m:	o64 0f 18 /4]				X64,UNDOC
-HINT_NOP5	rm16				[m:	o16 0f 18 /5]				P6,UNDOC
-HINT_NOP5	rm32				[m:	o32 0f 18 /5]				P6,UNDOC
-HINT_NOP5	rm64				[m:	o64 0f 18 /5]				X64,UNDOC
-HINT_NOP6	rm16				[m:	o16 0f 18 /6]				P6,UNDOC
-HINT_NOP6	rm32				[m:	o32 0f 18 /6]				P6,UNDOC
-HINT_NOP6	rm64				[m:	o64 0f 18 /6]				X64,UNDOC
-HINT_NOP7	rm16				[m:	o16 0f 18 /7]				P6,UNDOC
-HINT_NOP7	rm32				[m:	o32 0f 18 /7]				P6,UNDOC
-HINT_NOP7	rm64				[m:	o64 0f 18 /7]				X64,UNDOC
-HINT_NOP8	rm16				[m:	o16 0f 19 /0]				P6,UNDOC
-HINT_NOP8	rm32				[m:	o32 0f 19 /0]				P6,UNDOC
-HINT_NOP8	rm64				[m:	o64 0f 19 /0]				X64,UNDOC
-HINT_NOP9	rm16				[m:	o16 0f 19 /1]				P6,UNDOC
-HINT_NOP9	rm32				[m:	o32 0f 19 /1]				P6,UNDOC
-HINT_NOP9	rm64				[m:	o64 0f 19 /1]				X64,UNDOC
-HINT_NOP10	rm16				[m:	o16 0f 19 /2]				P6,UNDOC
-HINT_NOP10	rm32				[m:	o32 0f 19 /2]				P6,UNDOC
-HINT_NOP10	rm64				[m:	o64 0f 19 /2]				X64,UNDOC
-HINT_NOP11	rm16				[m:	o16 0f 19 /3]				P6,UNDOC
-HINT_NOP11	rm32				[m:	o32 0f 19 /3]				P6,UNDOC
-HINT_NOP11	rm64				[m:	o64 0f 19 /3]				X64,UNDOC
-HINT_NOP12	rm16				[m:	o16 0f 19 /4]				P6,UNDOC
-HINT_NOP12	rm32				[m:	o32 0f 19 /4]				P6,UNDOC
-HINT_NOP12	rm64				[m:	o64 0f 19 /4]				X64,UNDOC
-HINT_NOP13	rm16				[m:	o16 0f 19 /5]				P6,UNDOC
-HINT_NOP13	rm32				[m:	o32 0f 19 /5]				P6,UNDOC
-HINT_NOP13	rm64				[m:	o64 0f 19 /5]				X64,UNDOC
-HINT_NOP14	rm16				[m:	o16 0f 19 /6]				P6,UNDOC
-HINT_NOP14	rm32				[m:	o32 0f 19 /6]				P6,UNDOC
-HINT_NOP14	rm64				[m:	o64 0f 19 /6]				X64,UNDOC
-HINT_NOP15	rm16				[m:	o16 0f 19 /7]				P6,UNDOC
-HINT_NOP15	rm32				[m:	o32 0f 19 /7]				P6,UNDOC
-HINT_NOP15	rm64				[m:	o64 0f 19 /7]				X64,UNDOC
-HINT_NOP16	rm16				[m:	o16 0f 1a /0]				P6,UNDOC
-HINT_NOP16	rm32				[m:	o32 0f 1a /0]				P6,UNDOC
-HINT_NOP16	rm64				[m:	o64 0f 1a /0]				X64,UNDOC
-HINT_NOP17	rm16				[m:	o16 0f 1a /1]				P6,UNDOC
-HINT_NOP17	rm32				[m:	o32 0f 1a /1]				P6,UNDOC
-HINT_NOP17	rm64				[m:	o64 0f 1a /1]				X64,UNDOC
-HINT_NOP18	rm16				[m:	o16 0f 1a /2]				P6,UNDOC
-HINT_NOP18	rm32				[m:	o32 0f 1a /2]				P6,UNDOC
-HINT_NOP18	rm64				[m:	o64 0f 1a /2]				X64,UNDOC
-HINT_NOP19	rm16				[m:	o16 0f 1a /3]				P6,UNDOC
-HINT_NOP19	rm32				[m:	o32 0f 1a /3]				P6,UNDOC
-HINT_NOP19	rm64				[m:	o64 0f 1a /3]				X64,UNDOC
-HINT_NOP20	rm16				[m:	o16 0f 1a /4]				P6,UNDOC
-HINT_NOP20	rm32				[m:	o32 0f 1a /4]				P6,UNDOC
-HINT_NOP20	rm64				[m:	o64 0f 1a /4]				X64,UNDOC
-HINT_NOP21	rm16				[m:	o16 0f 1a /5]				P6,UNDOC
-HINT_NOP21	rm32				[m:	o32 0f 1a /5]				P6,UNDOC
-HINT_NOP21	rm64				[m:	o64 0f 1a /5]				X64,UNDOC
-HINT_NOP22	rm16				[m:	o16 0f 1a /6]				P6,UNDOC
-HINT_NOP22	rm32				[m:	o32 0f 1a /6]				P6,UNDOC
-HINT_NOP22	rm64				[m:	o64 0f 1a /6]				X64,UNDOC
-HINT_NOP23	rm16				[m:	o16 0f 1a /7]				P6,UNDOC
-HINT_NOP23	rm32				[m:	o32 0f 1a /7]				P6,UNDOC
-HINT_NOP23	rm64				[m:	o64 0f 1a /7]				X64,UNDOC
-HINT_NOP24	rm16				[m:	o16 0f 1b /0]				P6,UNDOC
-HINT_NOP24	rm32				[m:	o32 0f 1b /0]				P6,UNDOC
-HINT_NOP24	rm64				[m:	o64 0f 1b /0]				X64,UNDOC
-HINT_NOP25	rm16				[m:	o16 0f 1b /1]				P6,UNDOC
-HINT_NOP25	rm32				[m:	o32 0f 1b /1]				P6,UNDOC
-HINT_NOP25	rm64				[m:	o64 0f 1b /1]				X64,UNDOC
-HINT_NOP26	rm16				[m:	o16 0f 1b /2]				P6,UNDOC
-HINT_NOP26	rm32				[m:	o32 0f 1b /2]				P6,UNDOC
-HINT_NOP26	rm64				[m:	o64 0f 1b /2]				X64,UNDOC
-HINT_NOP27	rm16				[m:	o16 0f 1b /3]				P6,UNDOC
-HINT_NOP27	rm32				[m:	o32 0f 1b /3]				P6,UNDOC
-HINT_NOP27	rm64				[m:	o64 0f 1b /3]				X64,UNDOC
-HINT_NOP28	rm16				[m:	o16 0f 1b /4]				P6,UNDOC
-HINT_NOP28	rm32				[m:	o32 0f 1b /4]				P6,UNDOC
-HINT_NOP28	rm64				[m:	o64 0f 1b /4]				X64,UNDOC
-HINT_NOP29	rm16				[m:	o16 0f 1b /5]				P6,UNDOC
-HINT_NOP29	rm32				[m:	o32 0f 1b /5]				P6,UNDOC
-HINT_NOP29	rm64				[m:	o64 0f 1b /5]				X64,UNDOC
-HINT_NOP30	rm16				[m:	o16 0f 1b /6]				P6,UNDOC
-HINT_NOP30	rm32				[m:	o32 0f 1b /6]				P6,UNDOC
-HINT_NOP30	rm64				[m:	o64 0f 1b /6]				X64,UNDOC
-HINT_NOP31	rm16				[m:	o16 0f 1b /7]				P6,UNDOC
-HINT_NOP31	rm32				[m:	o32 0f 1b /7]				P6,UNDOC
-HINT_NOP31	rm64				[m:	o64 0f 1b /7]				X64,UNDOC
-HINT_NOP32	rm16				[m:	o16 0f 1c /0]				P6,UNDOC
-HINT_NOP32	rm32				[m:	o32 0f 1c /0]				P6,UNDOC
-HINT_NOP32	rm64				[m:	o64 0f 1c /0]				X64,UNDOC
-HINT_NOP33	rm16				[m:	o16 0f 1c /1]				P6,UNDOC
-HINT_NOP33	rm32				[m:	o32 0f 1c /1]				P6,UNDOC
-HINT_NOP33	rm64				[m:	o64 0f 1c /1]				X64,UNDOC
-HINT_NOP34	rm16				[m:	o16 0f 1c /2]				P6,UNDOC
-HINT_NOP34	rm32				[m:	o32 0f 1c /2]				P6,UNDOC
-HINT_NOP34	rm64				[m:	o64 0f 1c /2]				X64,UNDOC
-HINT_NOP35	rm16				[m:	o16 0f 1c /3]				P6,UNDOC
-HINT_NOP35	rm32				[m:	o32 0f 1c /3]				P6,UNDOC
-HINT_NOP35	rm64				[m:	o64 0f 1c /3]				X64,UNDOC
-HINT_NOP36	rm16				[m:	o16 0f 1c /4]				P6,UNDOC
-HINT_NOP36	rm32				[m:	o32 0f 1c /4]				P6,UNDOC
-HINT_NOP36	rm64				[m:	o64 0f 1c /4]				X64,UNDOC
-HINT_NOP37	rm16				[m:	o16 0f 1c /5]				P6,UNDOC
-HINT_NOP37	rm32				[m:	o32 0f 1c /5]				P6,UNDOC
-HINT_NOP37	rm64				[m:	o64 0f 1c /5]				X64,UNDOC
-HINT_NOP38	rm16				[m:	o16 0f 1c /6]				P6,UNDOC
-HINT_NOP38	rm32				[m:	o32 0f 1c /6]				P6,UNDOC
-HINT_NOP38	rm64				[m:	o64 0f 1c /6]				X64,UNDOC
-HINT_NOP39	rm16				[m:	o16 0f 1c /7]				P6,UNDOC
-HINT_NOP39	rm32				[m:	o32 0f 1c /7]				P6,UNDOC
-HINT_NOP39	rm64				[m:	o64 0f 1c /7]				X64,UNDOC
-HINT_NOP40	rm16				[m:	o16 0f 1d /0]				P6,UNDOC
-HINT_NOP40	rm32				[m:	o32 0f 1d /0]				P6,UNDOC
-HINT_NOP40	rm64				[m:	o64 0f 1d /0]				X64,UNDOC
-HINT_NOP41	rm16				[m:	o16 0f 1d /1]				P6,UNDOC
-HINT_NOP41	rm32				[m:	o32 0f 1d /1]				P6,UNDOC
-HINT_NOP41	rm64				[m:	o64 0f 1d /1]				X64,UNDOC
-HINT_NOP42	rm16				[m:	o16 0f 1d /2]				P6,UNDOC
-HINT_NOP42	rm32				[m:	o32 0f 1d /2]				P6,UNDOC
-HINT_NOP42	rm64				[m:	o64 0f 1d /2]				X64,UNDOC
-HINT_NOP43	rm16				[m:	o16 0f 1d /3]				P6,UNDOC
-HINT_NOP43	rm32				[m:	o32 0f 1d /3]				P6,UNDOC
-HINT_NOP43	rm64				[m:	o64 0f 1d /3]				X64,UNDOC
-HINT_NOP44	rm16				[m:	o16 0f 1d /4]				P6,UNDOC
-HINT_NOP44	rm32				[m:	o32 0f 1d /4]				P6,UNDOC
-HINT_NOP44	rm64				[m:	o64 0f 1d /4]				X64,UNDOC
-HINT_NOP45	rm16				[m:	o16 0f 1d /5]				P6,UNDOC
-HINT_NOP45	rm32				[m:	o32 0f 1d /5]				P6,UNDOC
-HINT_NOP45	rm64				[m:	o64 0f 1d /5]				X64,UNDOC
-HINT_NOP46	rm16				[m:	o16 0f 1d /6]				P6,UNDOC
-HINT_NOP46	rm32				[m:	o32 0f 1d /6]				P6,UNDOC
-HINT_NOP46	rm64				[m:	o64 0f 1d /6]				X64,UNDOC
-HINT_NOP47	rm16				[m:	o16 0f 1d /7]				P6,UNDOC
-HINT_NOP47	rm32				[m:	o32 0f 1d /7]				P6,UNDOC
-HINT_NOP47	rm64				[m:	o64 0f 1d /7]				X64,UNDOC
-HINT_NOP48	rm16				[m:	o16 0f 1e /0]				P6,UNDOC
-HINT_NOP48	rm32				[m:	o32 0f 1e /0]				P6,UNDOC
-HINT_NOP48	rm64				[m:	o64 0f 1e /0]				X64,UNDOC
-HINT_NOP49	rm16				[m:	o16 0f 1e /1]				P6,UNDOC
-HINT_NOP49	rm32				[m:	o32 0f 1e /1]				P6,UNDOC
-HINT_NOP49	rm64				[m:	o64 0f 1e /1]				X64,UNDOC
-HINT_NOP50	rm16				[m:	o16 0f 1e /2]				P6,UNDOC
-HINT_NOP50	rm32				[m:	o32 0f 1e /2]				P6,UNDOC
-HINT_NOP50	rm64				[m:	o64 0f 1e /2]				X64,UNDOC
-HINT_NOP51	rm16				[m:	o16 0f 1e /3]				P6,UNDOC
-HINT_NOP51	rm32				[m:	o32 0f 1e /3]				P6,UNDOC
-HINT_NOP51	rm64				[m:	o64 0f 1e /3]				X64,UNDOC
-HINT_NOP52	rm16				[m:	o16 0f 1e /4]				P6,UNDOC
-HINT_NOP52	rm32				[m:	o32 0f 1e /4]				P6,UNDOC
-HINT_NOP52	rm64				[m:	o64 0f 1e /4]				X64,UNDOC
-HINT_NOP53	rm16				[m:	o16 0f 1e /5]				P6,UNDOC
-HINT_NOP53	rm32				[m:	o32 0f 1e /5]				P6,UNDOC
-HINT_NOP53	rm64				[m:	o64 0f 1e /5]				X64,UNDOC
-HINT_NOP54	rm16				[m:	o16 0f 1e /6]				P6,UNDOC
-HINT_NOP54	rm32				[m:	o32 0f 1e /6]				P6,UNDOC
-HINT_NOP54	rm64				[m:	o64 0f 1e /6]				X64,UNDOC
-HINT_NOP55	rm16				[m:	o16 0f 1e /7]				P6,UNDOC
-HINT_NOP55	rm32				[m:	o32 0f 1e /7]				P6,UNDOC
-HINT_NOP55	rm64				[m:	o64 0f 1e /7]				X64,UNDOC
-HINT_NOP56	rm16				[m:	o16 0f 1f /0]				P6,UNDOC
-HINT_NOP56	rm32				[m:	o32 0f 1f /0]				P6,UNDOC
-HINT_NOP56	rm64				[m:	o64 0f 1f /0]				X64,UNDOC
-HINT_NOP57	rm16				[m:	o16 0f 1f /1]				P6,UNDOC
-HINT_NOP57	rm32				[m:	o32 0f 1f /1]				P6,UNDOC
-HINT_NOP57	rm64				[m:	o64 0f 1f /1]				X64,UNDOC
-HINT_NOP58	rm16				[m:	o16 0f 1f /2]				P6,UNDOC
-HINT_NOP58	rm32				[m:	o32 0f 1f /2]				P6,UNDOC
-HINT_NOP58	rm64				[m:	o64 0f 1f /2]				X64,UNDOC
-HINT_NOP59	rm16				[m:	o16 0f 1f /3]				P6,UNDOC
-HINT_NOP59	rm32				[m:	o32 0f 1f /3]				P6,UNDOC
-HINT_NOP59	rm64				[m:	o64 0f 1f /3]				X64,UNDOC
-HINT_NOP60	rm16				[m:	o16 0f 1f /4]				P6,UNDOC
-HINT_NOP60	rm32				[m:	o32 0f 1f /4]				P6,UNDOC
-HINT_NOP60	rm64				[m:	o64 0f 1f /4]				X64,UNDOC
-HINT_NOP61	rm16				[m:	o16 0f 1f /5]				P6,UNDOC
-HINT_NOP61	rm32				[m:	o32 0f 1f /5]				P6,UNDOC
-HINT_NOP61	rm64				[m:	o64 0f 1f /5]				X64,UNDOC
-HINT_NOP62	rm16				[m:	o16 0f 1f /6]				P6,UNDOC
-HINT_NOP62	rm32				[m:	o32 0f 1f /6]				P6,UNDOC
-HINT_NOP62	rm64				[m:	o64 0f 1f /6]				X64,UNDOC
-HINT_NOP63	rm16				[m:	o16 0f 1f /7]				P6,UNDOC
-HINT_NOP63	rm32				[m:	o32 0f 1f /7]				P6,UNDOC
-HINT_NOP63	rm64				[m:	o64 0f 1f /7]				X64,UNDOC
--- a/nasmbuild/nasm-2.13rc9/x86/insns.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1043 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##
-##   Copyright 1996-2016 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# insns.pl
-#
-# Parse insns.dat and produce generated source code files
-
-require 'x86/insns-iflags.pl';
-
-# Opcode prefixes which need their own opcode tables
-# LONGER PREFIXES FIRST!
-@disasm_prefixes = qw(0F24 0F25 0F38 0F3A 0F7A 0FA6 0FA7 0F);
-
-# This should match MAX_OPERANDS from nasm.h
-$MAX_OPERANDS = 5;
-
-# Add VEX/XOP prefixes
-@vex_class = ( 'vex', 'xop', 'evex' );
-$vex_classes = scalar(@vex_class);
-@vexlist = ();
-%vexmap = ();
-for ($c = 0; $c < $vex_classes; $c++) {
-    $vexmap{$vex_class[$c]} = $c;
-    for ($m = 0; $m < 32; $m++) {
-        for ($p = 0; $p < 4; $p++) {
-            push(@vexlist, sprintf("%s%02X%01X", $vex_class[$c], $m, $p));
-        }
-    }
-}
-@disasm_prefixes = (@vexlist, @disasm_prefixes);
-
-@bytecode_count = (0) x 256;
-
-print STDERR "Reading insns.dat...\n";
-
-@args   = ();
-undef $output;
-foreach $arg ( @ARGV ) {
-    if ( $arg =~ /^\-/ ) {
-        if  ( $arg =~ /^\-([abdin]|f[hc])$/ ) {
-            $output = $1;
-        } else {
-            die "$0: Unknown option: ${arg}\n";
-        }
-    } else {
-        push (@args, $arg);
-    }
-}
-
-die if (scalar(@args) != 2);	# input output
-($fname, $oname) = @args;
-
-open (F, $fname) || die "unable to open $fname";
-
-%dinstables = ();
-@bytecode_list = ();
-
-$line = 0;
-$insns = 0;
-while (<F>) {
-    $line++;
-    chomp;
-    next if ( /^\s*(\;.*|)$/ );   # comments or blank lines
-
-    unless (/^\s*(\S+)\s+(\S+)\s+(\S+|\[.*\])\s+(\S+)\s*$/) {
-        warn "line $line does not contain four fields\n";
-        next;
-    }
-    @fields = ($1, $2, $3, $4);
-    @field_list = ([@fields, 0]);
-
-    if ($fields[1] =~ /\*/) {
-        # This instruction has relaxed form(s)
-        if ($fields[2] !~ /^\[/) {
-            warn "line $line has an * operand but uses raw bytecodes\n";
-            next;
-        }
-
-        $opmask = 0;
-        @ops = split(/,/, $fields[1]);
-        for ($oi = 0; $oi < scalar @ops; $oi++) {
-            if ($ops[$oi] =~ /\*$/) {
-                if ($oi == 0) {
-                    warn "line $line has a first operand with a *\n";
-                    next;
-                }
-                $opmask |= 1 << $oi;
-            }
-        }
-
-        for ($oi = 1; $oi < (1 << scalar @ops); $oi++) {
-            if (($oi & ~$opmask) == 0) {
-                my @xops = ();
-                my $omask = ~$oi;
-                for ($oj = 0; $oj < scalar(@ops); $oj++) {
-                    if ($omask & 1) {
-                        push(@xops, $ops[$oj]);
-                    }
-                    $omask >>= 1;
-                }
-                push(@field_list, [$fields[0], join(',', @xops),
-                     $fields[2], $fields[3], $oi]);
-            }
-        }
-    }
-
-    foreach $fptr (@field_list) {
-        @fields = @$fptr;
-        ($formatted, $nd) = format_insn(@fields);
-        if ($formatted) {
-            $insns++;
-            $aname = "aa_$fields[0]";
-            push @$aname, $formatted;
-        }
-        if ( $fields[0] =~ /cc$/ ) {
-            # Conditional instruction
-            $k_opcodes_cc{$fields[0]}++;
-        } else {
-            # Unconditional instruction
-            $k_opcodes{$fields[0]}++;
-        }
-        if ($formatted && !$nd) {
-            push @big, $formatted;
-            my @sseq = startseq($fields[2], $fields[4]);
-            foreach $i (@sseq) {
-                if (!defined($dinstables{$i})) {
-                    $dinstables{$i} = [];
-                }
-                push(@{$dinstables{$i}}, $#big);
-            }
-        }
-    }
-}
-
-close F;
-
-#
-# Generate the bytecode array.  At this point, @bytecode_list contains
-# the full set of bytecodes.
-#
-
-# Sort by descending length
-@bytecode_list = sort { scalar(@$b) <=> scalar(@$a) } @bytecode_list;
-@bytecode_array = ();
-%bytecode_pos = ();
-$bytecode_next = 0;
-foreach $bl (@bytecode_list) {
-    my $h = hexstr(@$bl);
-    next if (defined($bytecode_pos{$h}));
-
-    push(@bytecode_array, $bl);
-    while ($h ne '') {
-        $bytecode_pos{$h} = $bytecode_next;
-        $h = substr($h, 2);
-        $bytecode_next++;
-    }
-}
-undef @bytecode_list;
-
-@opcodes    = sort keys(%k_opcodes);
-@opcodes_cc = sort keys(%k_opcodes_cc);
-
-if ( $output eq 'b') {
-    print STDERR "Writing $oname...\n";
-
-    open(B, '>', $oname);
-
-    print B "/* This file auto-generated from insns.dat by insns.pl" .
-        " - don't edit it */\n\n";
-
-    print B "#include \"nasm.h\"\n";
-    print B "#include \"insns.h\"\n\n";
-
-    print B "const uint8_t nasm_bytecodes[$bytecode_next] = {\n";
-
-    $p = 0;
-    foreach $bl (@bytecode_array) {
-        printf B "    /* %5d */ ", $p;
-        foreach $d (@$bl) {
-            printf B "%#o,", $d;
-            $p++;
-        }
-        printf B "\n";
-    }
-    print B "};\n";
-
-    print B "\n";
-    print B "/*\n";
-    print B " * Bytecode frequencies (including reuse):\n";
-    print B " *\n";
-    for ($i = 0; $i < 32; $i++) {
-        print B " *";
-        for ($j = 0; $j < 256; $j += 32) {
-            print B " |" if ($j);
-            printf B " %3o:%4d", $i+$j, $bytecode_count[$i+$j];
-        }
-        print B "\n";
-    }
-    print B " */\n";
-
-    close B;
-}
-
-if ( $output eq 'a' ) {
-    print STDERR "Writing $oname...\n";
-
-    open(A, '>', $oname);
-
-    print A "/* This file auto-generated from insns.dat by insns.pl" .
-        " - don't edit it */\n\n";
-
-    print A "#include \"nasm.h\"\n";
-    print A "#include \"insns.h\"\n\n";
-
-    foreach $i (@opcodes, @opcodes_cc) {
-        print A "static const struct itemplate instrux_${i}[] = {\n";
-        $aname = "aa_$i";
-        foreach $j (@$aname) {
-            print A "    ", codesubst($j), "\n";
-        }
-        print A "    ITEMPLATE_END\n};\n\n";
-    }
-    print A "const struct itemplate * const nasm_instructions[] = {\n";
-    foreach $i (@opcodes, @opcodes_cc) {
-        print A "    instrux_${i},\n";
-    }
-    print A "};\n";
-
-    close A;
-}
-
-if ( $output eq 'd' ) {
-    print STDERR "Writing $oname...\n";
-
-    open(D, '>', $oname);
-
-    print D "/* This file auto-generated from insns.dat by insns.pl" .
-        " - don't edit it */\n\n";
-
-    print D "#include \"nasm.h\"\n";
-    print D "#include \"insns.h\"\n\n";
-
-    print D "static const struct itemplate instrux[] = {\n";
-    $n = 0;
-    foreach $j (@big) {
-        printf D "    /* %4d */ %s\n", $n++, codesubst($j);
-    }
-    print D "};\n";
-
-    foreach $h (sort(keys(%dinstables))) {
-        next if ($h eq ''); # Skip pseudo-instructions
-            print D "\nstatic const struct itemplate * const itable_${h}[] = {\n";
-        foreach $j (@{$dinstables{$h}}) {
-            print D "    instrux + $j,\n";
-        }
-        print D "};\n";
-    }
-
-    @prefix_list = ();
-    foreach $h (@disasm_prefixes, '') {
-        for ($c = 0; $c < 256; $c++) {
-            $nn = sprintf("%s%02X", $h, $c);
-            if ($is_prefix{$nn} || defined($dinstables{$nn})) {
-                # At least one entry in this prefix table
-                push(@prefix_list, $h);
-                $is_prefix{$h} = 1;
-                last;
-            }
-        }
-    }
-
-    foreach $h (@prefix_list) {
-        print D "\n";
-        print D "static " unless ($h eq '');
-        print D "const struct disasm_index ";
-        print D ($h eq '') ? 'itable' : "itable_$h";
-        print D "[256] = {\n";
-        for ($c = 0; $c < 256; $c++) {
-            $nn = sprintf("%s%02X", $h, $c);
-            if ($is_prefix{$nn}) {
-                die "$fname: ambiguous decoding of $nn\n"
-                    if (defined($dinstables{$nn}));
-                printf D "    /* 0x%02x */ { itable_%s, -1 },\n", $c, $nn;
-            } elsif (defined($dinstables{$nn})) {
-                printf D "    /* 0x%02x */ { itable_%s, %u },\n", $c,
-                       $nn, scalar(@{$dinstables{$nn}});
-            } else {
-                printf D "    /* 0x%02x */ { NULL, 0 },\n", $c;
-            }
-        }
-        print D "};\n";
-    }
-
-    printf D "\nconst struct disasm_index * const itable_vex[NASM_VEX_CLASSES][32][4] =\n";
-    print D "{\n";
-    for ($c = 0; $c < $vex_classes; $c++) {
-        print D "    {\n";
-        for ($m = 0; $m < 32; $m++) {
-            print D "        { ";
-            for ($p = 0; $p < 4; $p++) {
-                $vp = sprintf("%s%02X%01X", $vex_class[$c], $m, $p);
-                printf D "%-15s",
-                       ($is_prefix{$vp} ? sprintf("itable_%s,", $vp) : 'NULL,');
-            }
-            print D "},\n";
-        }
-        print D "    },\n";
-    }
-    print D "};\n";
-
-    close D;
-}
-
-if ( $output eq 'i' ) {
-    print STDERR "Writing $oname...\n";
-
-    open(I, '>', $oname);
-
-    print I "/* This file is auto-generated from insns.dat by insns.pl" .
-        " - don't edit it */\n\n";
-    print I "/* This file in included by nasm.h */\n\n";
-
-    print I "/* Instruction names */\n\n";
-    print I "#ifndef NASM_INSNSI_H\n";
-    print I "#define NASM_INSNSI_H 1\n\n";
-    print I "enum opcode {\n";
-    $maxlen = 0;
-    foreach $i (@opcodes, @opcodes_cc) {
-        print I "\tI_${i},\n";
-        $len = length($i);
-        $len++ if ( $i =~ /cc$/ ); # Condition codes can be 3 characters long
-        $maxlen = $len if ( $len > $maxlen );
-    }
-    print I "\tI_none = -1\n";
-    print I "};\n\n";
-    print I "#define MAX_INSLEN ", $maxlen, "\n";
-    print I "#define NASM_VEX_CLASSES ", $vex_classes, "\n";
-    print I "#define NO_DECORATOR\t{", join(',',(0) x $MAX_OPERANDS), "}\n";
-    print I "#define FIRST_COND_OPCODE I_", $opcodes_cc[0], "\n\n";
-    print I "#endif /* NASM_INSNSI_H */\n";
-
-    close I;
-}
-
-if ( $output eq 'n' ) {
-    print STDERR "Writing $oname...\n";
-
-    open(N, '>', $oname);
-
-    print N "/* This file is auto-generated from insns.dat by insns.pl" .
-        " - don't edit it */\n\n";
-    print N "#include \"tables.h\"\n\n";
-
-    print N "const char * const nasm_insn_names[] = {";
-    $first = 1;
-    foreach $i (@opcodes, @opcodes_cc) {
-        print N "," if ( !$first );
-        $first = 0;
-        $ilower = $i;
-        $ilower =~ s/cc$//;             # Remove conditional cc suffix
-        $ilower =~ tr/A-Z/a-z/;         # Change to lower case (Perl 4 compatible)
-        print N "\n\t\"${ilower}\"";
-    }
-    print N "\n};\n";
-    close N;
-}
-
-if ( $output eq 'fh') {
-    write_iflaggen_h();
-}
-
-if ( $output eq 'fc') {
-    write_iflag_c();
-}
-
-printf STDERR "Done: %d instructions\n", $insns;
-
-# Count primary bytecodes, for statistics
-sub count_bytecodes(@) {
-    my $skip = 0;
-    foreach my $bc (@_) {
-        if ($skip) {
-            $skip--;
-            next;
-        }
-        $bytecode_count[$bc]++;
-        if ($bc >= 01 && $bc <= 04) {
-            $skip = $bc;
-        } elsif (($bc & ~03) == 010) {
-            $skip = 1;
-        } elsif (($bc & ~013) == 0144) {
-            $skip = 1;
-        } elsif ($bc == 0172 || $bc == 0173) {
-            $skip = 1;
-        } elsif (($bc & ~3) == 0260 || $bc == 0270) {   # VEX
-            $skip = 2;
-        } elsif (($bc & ~3) == 0240 || $bc == 0250) {   # EVEX
-            $skip = 3;
-        } elsif ($bc == 0330) {
-            $skip = 1;
-        }
-    }
-}
-
-sub format_insn($$$$$) {
-    my ($opcode, $operands, $codes, $flags, $relax) = @_;
-    my $num, $nd = 0, $rawflags, $flagsindex;
-    my @bytecode;
-    my $op, @ops, $opp, @opx, @oppx, @decos, @opevex;
-
-    return (undef, undef) if $operands eq "ignore";
-
-    # format the operands
-    $operands =~ s/\*//g;
-    $operands =~ s/:/|colon,/g;
-    @ops = ();
-    @decos = ();
-    if ($operands ne 'void') {
-        foreach $op (split(/,/, $operands)) {
-            @opx = ();
-            @opevex = ();
-            foreach $opp (split(/\|/, $op)) {
-                @oppx = ();
-                if ($opp =~ s/^(b(32|64)|mask|z|er|sae)$//) {
-                    push(@opevex, $1);
-                }
-
-                if ($opp =~ s/(?<!\d)(8|16|32|64|80|128|256|512)$//) {
-                    push(@oppx, "bits$1");
-                }
-                $opp =~ s/^mem$/memory/;
-                $opp =~ s/^memory_offs$/mem_offs/;
-                $opp =~ s/^imm$/immediate/;
-                $opp =~ s/^([a-z]+)rm$/rm_$1/;
-                $opp =~ s/^rm$/rm_gpr/;
-                $opp =~ s/^reg$/reg_gpr/;
-                # only for evex insns, high-16 regs are allowed
-                if ($codes !~ /(^|\s)evex\./) {
-                    $opp =~ s/^(rm_[xyz]mm)$/$1_l16/;
-                    $opp =~ s/^([xyz]mm)reg$/$1_l16/;
-                }
-                push(@opx, $opp, @oppx) if $opp;
-            }
-            $op = join('|', @opx);
-            push(@ops, $op);
-            push(@decos, (@opevex ? join('|', @opevex) : '0'));
-        }
-    }
-
-    $num = scalar(@ops);
-    while (scalar(@ops) < $MAX_OPERANDS) {
-        push(@ops, '0');
-        push(@decos, '0');
-    }
-    $operands = join(',', @ops);
-    $operands =~ tr/a-z/A-Z/;
-
-    $decorators = "{" . join(',', @decos) . "}";
-    if ($decorators =~ /^{(0,)+0}$/) {
-        $decorators = "NO_DECORATOR";
-    }
-    $decorators =~ tr/a-z/A-Z/;
-
-    # format the flags
-    $nd = 1 if $flags =~ /(^|\,)ND($|\,)/;
-    $flags =~ s/(^|\,)ND($|\,)/\1/g;
-    $flags =~ s/(^|\,)X64($|\,)/\1LONG,X86_64\2/g;
-    if ($codes =~ /evex\./) {
-	$flags .= ",EVEX";
-    } elsif ($codes =~ /(vex|xop)\./) {
-	$flags .= ",VEX";
-    }
-    $rawflags = $flags;
-    $flagsindex = insns_flag_index(split(',',$flags));
-
-    die "Error in flags $rawflags" if not defined($flagsindex);
-
-    @bytecode = (decodify($codes, $relax), 0);
-    push(@bytecode_list, [@bytecode]);
-    $codes = hexstr(@bytecode);
-    count_bytecodes(@bytecode);
-
-    ("{I_$opcode, $num, {$operands}, $decorators, \@\@CODES-$codes\@\@, $flagsindex},", $nd);
-}
-
-#
-# Look for @@CODES-xxx@@ sequences and replace them with the appropriate
-# offset into nasm_bytecodes
-#
-sub codesubst($) {
-    my($s) = @_;
-    my $n;
-
-    while ($s =~ /\@\@CODES-([0-9A-F]+)\@\@/) {
-        my $pos = $bytecode_pos{$1};
-        if (!defined($pos)) {
-            die "$fname: no position assigned to byte code $1\n";
-        }
-        $s = $` . "nasm_bytecodes+${pos}" . "$'";
-    }
-    return $s;
-}
-
-sub addprefix ($@) {
-    my ($prefix, @list) = @_;
-    my $x;
-    my @l = ();
-
-    foreach $x (@list) {
-        push(@l, sprintf("%s%02X", $prefix, $x));
-    }
-
-    return @l;
-}
-
-#
-# Turn a code string into a sequence of bytes
-#
-sub decodify($$) {
-  # Although these are C-syntax strings, by convention they should have
-  # only octal escapes (for directives) and hexadecimal escapes
-  # (for verbatim bytes)
-    my($codestr, $relax) = @_;
-
-    if ($codestr =~ /^\s*\[([^\]]*)\]\s*$/) {
-        return byte_code_compile($1, $relax);
-    }
-
-    my $c = $codestr;
-    my @codes = ();
-
-    unless ($codestr eq 'ignore') {
-        while ($c ne '') {
-            if ($c =~ /^\\x([0-9a-f]+)(.*)$/i) {
-                push(@codes, hex $1);
-                $c = $2;
-                next;
-            } elsif ($c =~ /^\\([0-7]{1,3})(.*)$/) {
-                push(@codes, oct $1);
-                $c = $2;
-                next;
-            } else {
-                die "$fname: unknown code format in \"$codestr\"\n";
-            }
-        }
-    }
-
-    return @codes;
-}
-
-# Turn a numeric list into a hex string
-sub hexstr(@) {
-    my $s = '';
-    my $c;
-
-    foreach $c (@_) {
-        $s .= sprintf("%02X", $c);
-    }
-    return $s;
-}
-
-# Here we determine the range of possible starting bytes for a given
-# instruction. We need only consider the codes:
-# \[1234]      mean literal bytes, of course
-# \1[0123]     mean byte plus register value
-# \330         means byte plus condition code
-# \0 or \340   mean give up and return empty set
-# \34[4567]    mean PUSH/POP of segment registers: special case
-# \17[234]     skip is4 control byte
-# \26x \270    skip VEX control bytes
-# \24x \250    skip EVEX control bytes
-sub startseq($$) {
-    my ($codestr, $relax) = @_;
-    my $word, @range;
-    my @codes = ();
-    my $c = $codestr;
-    my $c0, $c1, $i;
-    my $prefix = '';
-
-    @codes = decodify($codestr, $relax);
-
-    while ($c0 = shift(@codes)) {
-        $c1 = $codes[0];
-        if ($c0 >= 01 && $c0 <= 04) {
-            # Fixed byte string
-            my $fbs = $prefix;
-            while (1) {
-                if ($c0 >= 01 && $c0 <= 04) {
-                    while ($c0--) {
-                        $fbs .= sprintf("%02X", shift(@codes));
-                    }
-                } else {
-                    last;
-                }
-                $c0 = shift(@codes);
-            }
-
-            foreach $pfx (@disasm_prefixes) {
-                if (substr($fbs, 0, length($pfx)) eq $pfx) {
-                    $prefix = $pfx;
-                    $fbs = substr($fbs, length($pfx));
-                    last;
-                }
-            }
-
-            if ($fbs ne '') {
-                return ($prefix.substr($fbs,0,2));
-            }
-
-            unshift(@codes, $c0);
-        } elsif ($c0 >= 010 && $c0 <= 013) {
-            return addprefix($prefix, $c1..($c1+7));
-        } elsif (($c0 & ~013) == 0144) {
-            return addprefix($prefix, $c1, $c1|2);
-        } elsif ($c0 == 0330) {
-            return addprefix($prefix, $c1..($c1+15));
-        } elsif ($c0 == 0 || $c0 == 0340) {
-            return $prefix;
-        } elsif (($c0 & ~3) == 0260 || $c0 == 0270 ||
-                 ($c0 & ~3) == 0240 || $c0 == 0250) {
-            my $c,$m,$wlp;
-            $m   = shift(@codes);
-            $wlp = shift(@codes);
-            $c = ($m >> 6);
-            $m = $m & 31;
-            $prefix .= sprintf('%s%02X%01X', $vex_class[$c], $m, $wlp & 3);
-            if ($c0 < 0260) {
-                my $tuple = shift(@codes);
-            }
-        } elsif ($c0 >= 0172 && $c0 <= 173) {
-            shift(@codes);      # Skip is4 control byte
-        } else {
-            # We really need to be able to distinguish "forbidden"
-            # and "ignorable" codes here
-        }
-    }
-    return $prefix;
-}
-
-# EVEX tuple types offset is 0300. e.g. 0301 is for full vector(fv).
-sub tupletype($) {
-    my ($tuplestr) = @_;
-    my %tuple_codes = (
-        ''      => 000,
-        'fv'    => 001,
-        'hv'    => 002,
-        'fvm'   => 003,
-        't1s8'  => 004,
-        't1s16' => 005,
-        't1s'   => 006,
-        't1f32' => 007,
-        't1f64' => 010,
-        't2'    => 011,
-        't4'    => 012,
-        't8'    => 013,
-        'hvm'   => 014,
-        'qvm'   => 015,
-        'ovm'   => 016,
-        'm128'  => 017,
-        'dup'   => 020,
-    );
-
-    if (defined $tuple_codes{$tuplestr}) {
-        return 0300 + $tuple_codes{$tuplestr};
-    } else {
-        die "Undefined tuple type : $tuplestr\n";
-    }
-}
-
-#
-# This function takes a series of byte codes in a format which is more
-# typical of the Intel documentation, and encode it.
-#
-# The format looks like:
-#
-# [operands: opcodes]
-#
-# The operands word lists the order of the operands:
-#
-# r = register field in the modr/m
-# m = modr/m
-# v = VEX "v" field
-# i = immediate
-# s = register field of is4/imz2 field
-# - = implicit (unencoded) operand
-# x = indeX register of mib. 014..017 bytecodes are used.
-#
-# For an operand that should be filled into more than one field,
-# enter it as e.g. "r+v".
-#
-sub byte_code_compile($$) {
-    my($str, $relax) = @_;
-    my $opr;
-    my $opc;
-    my @codes = ();
-    my $litix = undef;
-    my %oppos = ();
-    my $i;
-    my $op, $oq;
-    my $opex;
-
-    my %imm_codes = (
-        'ib'        => 020,     # imm8
-        'ib,u'      => 024,     # Unsigned imm8
-        'iw'        => 030,     # imm16
-        'ib,s'      => 0274,    # imm8 sign-extended to opsize or bits
-        'iwd'       => 034,     # imm16 or imm32, depending on opsize
-        'id'        => 040,     # imm32
-        'id,s'      => 0254,    # imm32 sign-extended to 64 bits
-        'iwdq'      => 044,     # imm16/32/64, depending on addrsize
-        'rel8'      => 050,
-        'iq'        => 054,
-        'rel16'     => 060,
-        'rel'       => 064,     # 16 or 32 bit relative operand
-        'rel32'     => 070,
-        'seg'       => 074,
-    );
-    my %plain_codes = (
-        'o16'       => 0320,    # 16-bit operand size
-        'o32'       => 0321,    # 32-bit operand size
-        'odf'       => 0322,    # Operand size is default
-        'o64'       => 0324,    # 64-bit operand size requiring REX.W
-        'o64nw'     => 0323,    # Implied 64-bit operand size (no REX.W)
-        'a16'       => 0310,
-        'a32'       => 0311,
-        'adf'       => 0312,    # Address size is default
-        'a64'       => 0313,
-        '!osp'      => 0364,
-        '!asp'      => 0365,
-        'f2i'       => 0332,    # F2 prefix, but 66 for operand size is OK
-        'f3i'       => 0333,    # F3 prefix, but 66 for operand size is OK
-        'mustrep'   => 0336,
-        'mustrepne' => 0337,
-        'rex.l'     => 0334,
-        'norexb'    => 0314,
-        'norexx'    => 0315,
-        'norexr'    => 0316,
-        'norexw'    => 0317,
-        'repe'      => 0335,
-        'nohi'      => 0325,    # Use spl/bpl/sil/dil even without REX
-        'nof3'      => 0326,    # No REP 0xF3 prefix permitted
-        'norep'     => 0331,    # No REP prefix permitted
-        'wait'      => 0341,    # Needs a wait prefix
-        'resb'      => 0340,
-        'np'        => 0360,    # No prefix
-        'jcc8'      => 0370,    # Match only if Jcc possible with single byte
-        'jmp8'      => 0371,    # Match only if JMP possible with single byte
-        'jlen'      => 0373,    # Length of jump
-        'hlexr'     => 0271,
-        'hlenl'     => 0272,
-        'hle'       => 0273,
-
-        # This instruction takes XMM VSIB
-        'vsibx'     => 0374,
-        'vm32x'     => 0374,
-        'vm64x'     => 0374,
-
-        # This instruction takes YMM VSIB
-        'vsiby'     => 0375,
-        'vm32y'     => 0375,
-        'vm64y'     => 0375,
-
-        # This instruction takes ZMM VSIB
-        'vsibz'     => 0376,
-        'vm32z'     => 0376,
-        'vm64z'     => 0376,
-    );
-
-    unless ($str =~ /^(([^\s:]*)\:*([^\s:]*)\:|)\s*(.*\S)\s*$/) {
-        die "$fname: $line: cannot parse: [$str]\n";
-    }
-    $opr = "\L$2";
-    $tuple = "\L$3";    # Tuple type for AVX512
-    $opc = "\L$4";
-
-    my $op = 0;
-    for ($i = 0; $i < length($opr); $i++) {
-        my $c = substr($opr,$i,1);
-        if ($c eq '+') {
-            $op--;
-        } else {
-            if ($relax & 1) {
-                $op--;
-            }
-            $relax >>= 1;
-            $oppos{$c} = $op++;
-        }
-    }
-    $tup = tupletype($tuple);
-
-    my $last_imm = 'h';
-    my $prefix_ok = 1;
-    foreach $op (split(/\s*(?:\s|(?=[\/\\]))/, $opc)) {
-        my $pc = $plain_codes{$op};
-
-        if (defined $pc) {
-            # Plain code
-            push(@codes, $pc);
-        } elsif ($prefix_ok && $op =~ /^(66|f2|f3)$/) {
-            # 66/F2/F3 prefix used as an opcode extension
-            if ($op eq '66') {
-                push(@codes, 0361);
-            } elsif ($op eq 'f2') {
-                push(@codes, 0332);
-            } else {
-                push(@codes, 0333);
-            }
-        } elsif ($op =~ /^[0-9a-f]{2}$/) {
-            if (defined($litix) && $litix+$codes[$litix]+1 == scalar @codes &&
-                $codes[$litix] < 4) {
-                $codes[$litix]++;
-                push(@codes, hex $op);
-            } else {
-                $litix = scalar(@codes);
-                push(@codes, 01, hex $op);
-            }
-            $prefix_ok = 0;
-        } elsif ($op eq '/r') {
-            if (!defined($oppos{'r'}) || !defined($oppos{'m'})) {
-                die "$fname: $line: $op requires r and m operands\n";
-            }
-            $opex = (($oppos{'m'} & 4) ? 06 : 0) |
-                (($oppos{'r'} & 4) ? 05 : 0);
-            push(@codes, $opex) if ($opex);
-            # if mib is composed with two separate operands - ICC style
-            push(@codes, 014 + ($oppos{'x'} & 3)) if (defined($oppos{'x'}));
-            push(@codes, 0100 + (($oppos{'m'} & 3) << 3) + ($oppos{'r'} & 3));
-            $prefix_ok = 0;
-        } elsif ($op =~ m:^/([0-7])$:) {
-            if (!defined($oppos{'m'})) {
-                die "$fname: $line: $op requires m operand\n";
-            }
-            push(@codes, 06) if ($oppos{'m'} & 4);
-            push(@codes, 0200 + (($oppos{'m'} & 3) << 3) + $1);
-            $prefix_ok = 0;
-        } elsif ($op =~ /^(vex|xop)(|\..*)$/) {
-            my $vexname = $1;
-            my $c = $vexmap{$vexname};
-            my ($m,$w,$l,$p) = (undef,2,undef,0);
-            my $has_nds = 0;
-            my @subops = split(/\./, $op);
-            shift @subops;      # Drop prefix
-                foreach $oq (@subops) {
-                    if ($oq eq '128' || $oq eq 'l0' || $oq eq 'lz') {
-                        $l = 0;
-                    } elsif ($oq eq '256' || $oq eq 'l1') {
-                        $l = 1;
-                    } elsif ($oq eq 'lig') {
-                        $l = 2;
-                    } elsif ($oq eq 'w0') {
-                        $w = 0;
-                    } elsif ($oq eq 'w1') {
-                        $w = 1;
-                    } elsif ($oq eq 'wig') {
-                        $w = 2;
-                    } elsif ($oq eq 'ww') {
-                        $w = 3;
-                    } elsif ($oq eq 'p0') {
-                        $p = 0;
-                    } elsif ($oq eq '66' || $oq eq 'p1') {
-                        $p = 1;
-                    } elsif ($oq eq 'f3' || $oq eq 'p2') {
-                        $p = 2;
-                    } elsif ($oq eq 'f2' || $oq eq 'p3') {
-                        $p = 3;
-                    } elsif ($oq eq '0f') {
-                        $m = 1;
-                    } elsif ($oq eq '0f38') {
-                        $m = 2;
-                    } elsif ($oq eq '0f3a') {
-                        $m = 3;
-                    } elsif ($oq =~ /^m([0-9]+)$/) {
-                        $m = $1+0;
-                    } elsif ($oq eq 'nds' || $oq eq 'ndd' || $oq eq 'dds') {
-                        if (!defined($oppos{'v'})) {
-                            die "$fname: $line: $vexname.$oq without 'v' operand\n";
-                        }
-                        $has_nds = 1;
-                    } else {
-                        die "$fname: $line: undefined \U$vexname\E subcode: $oq\n";
-                    }
-                }
-            if (!defined($m) || !defined($w) || !defined($l) || !defined($p)) {
-                die "$fname: $line: missing fields in \U$vexname\E specification\n";
-            }
-            if (defined($oppos{'v'}) && !$has_nds) {
-                die "$fname: $line: 'v' operand without ${vexname}.nds or ${vexname}.ndd\n";
-            }
-	    my $minmap = ($c == 1) ? 8 : 0; # 0-31 for VEX, 8-31 for XOP
-	    if ($m < $minmap || $m > 31) {
-		die "$fname: $line: Only maps ${minmap}-31 are valid for \U${vexname}\n";
-	    }
-            push(@codes, defined($oppos{'v'}) ? 0260+($oppos{'v'} & 3) : 0270,
-                 ($c << 6)+$m, ($w << 4)+($l << 2)+$p);
-            $prefix_ok = 0;
-        } elsif ($op =~ /^(evex)(|\..*)$/) {
-            my $c = $vexmap{$1};
-            my ($m,$w,$l,$p) = (undef,2,undef,0);
-            my $has_nds = 0;
-            my @subops = split(/\./, $op);
-            shift @subops;      # Drop prefix
-                foreach $oq (@subops) {
-                    if ($oq eq '128' || $oq eq 'l0' || $oq eq 'lz' || $oq eq 'lig') {
-                        $l = 0;
-                    } elsif ($oq eq '256' || $oq eq 'l1') {
-                        $l = 1;
-                    } elsif ($oq eq '512' || $oq eq 'l2') {
-                        $l = 2;
-                    } elsif ($oq eq 'w0') {
-                        $w = 0;
-                    } elsif ($oq eq 'w1') {
-                        $w = 1;
-                    } elsif ($oq eq 'wig') {
-                        $w = 2;
-                    } elsif ($oq eq 'ww') {
-                        $w = 3;
-                    } elsif ($oq eq 'p0') {
-                        $p = 0;
-                    } elsif ($oq eq '66' || $oq eq 'p1') {
-                        $p = 1;
-                    } elsif ($oq eq 'f3' || $oq eq 'p2') {
-                        $p = 2;
-                    } elsif ($oq eq 'f2' || $oq eq 'p3') {
-                        $p = 3;
-                    } elsif ($oq eq '0f') {
-                        $m = 1;
-                    } elsif ($oq eq '0f38') {
-                        $m = 2;
-                    } elsif ($oq eq '0f3a') {
-                        $m = 3;
-                    } elsif ($oq =~ /^m([0-9]+)$/) {
-                        $m = $1+0;
-                    } elsif ($oq eq 'nds' || $oq eq 'ndd' || $oq eq 'dds') {
-                        if (!defined($oppos{'v'})) {
-                            die "$fname: $line: evex.$oq without 'v' operand\n";
-                        }
-                        $has_nds = 1;
-                    } else {
-                        die "$fname: $line: undefined EVEX subcode: $oq\n";
-                    }
-                }
-            if (!defined($m) || !defined($w) || !defined($l) || !defined($p)) {
-                die "$fname: $line: missing fields in EVEX specification\n";
-            }
-            if (defined($oppos{'v'}) && !$has_nds) {
-                die "$fname: $line: 'v' operand without evex.nds or evex.ndd\n";
-            }
-	    if ($m > 15) {
-		die "$fname: $line: Only maps 0-15 are valid for EVEX\n";
-	    }
-            push(@codes, defined($oppos{'v'}) ? 0240+($oppos{'v'} & 3) : 0250,
-                 ($c << 6)+$m, ($w << 4)+($l << 2)+$p, $tup);
-            $prefix_ok = 0;
-        } elsif (defined $imm_codes{$op}) {
-            if ($op eq 'seg') {
-                if ($last_imm lt 'i') {
-                    die "$fname: $line: seg without an immediate operand\n";
-                }
-            } else {
-                $last_imm++;
-                if ($last_imm gt 'j') {
-                    die "$fname: $line: too many immediate operands\n";
-                }
-            }
-            if (!defined($oppos{$last_imm})) {
-                die "$fname: $line: $op without '$last_imm' operand\n";
-            }
-            push(@codes, 05) if ($oppos{$last_imm} & 4);
-            push(@codes, $imm_codes{$op} + ($oppos{$last_imm} & 3));
-            $prefix_ok = 0;
-        } elsif ($op eq '/is4') {
-            if (!defined($oppos{'s'})) {
-                die "$fname: $line: $op without 's' operand\n";
-            }
-            if (defined($oppos{'i'})) {
-                push(@codes, 0172, ($oppos{'s'} << 3)+$oppos{'i'});
-            } else {
-                push(@codes, 05) if ($oppos{'s'} & 4);
-                push(@codes, 0174+($oppos{'s'} & 3));
-            }
-            $prefix_ok = 0;
-        } elsif ($op =~ /^\/is4\=([0-9]+)$/) {
-            my $imm = $1;
-            if (!defined($oppos{'s'})) {
-                die "$fname: $line: $op without 's' operand\n";
-            }
-            if ($imm < 0 || $imm > 15) {
-                die "$fname: $line: invalid imm4 value for $op: $imm\n";
-            }
-            push(@codes, 0173, ($oppos{'s'} << 4) + $imm);
-            $prefix_ok = 0;
-        } elsif ($op =~ /^([0-9a-f]{2})\+c$/) {
-            push(@codes, 0330, hex $1);
-            $prefix_ok = 0;
-        } elsif ($op =~ /^([0-9a-f]{2})\+r$/) {
-            if (!defined($oppos{'r'})) {
-                die "$fname: $line: $op without 'r' operand\n";
-            }
-            push(@codes, 05) if ($oppos{'r'} & 4);
-            push(@codes, 010 + ($oppos{'r'} & 3), hex $1);
-            $prefix_ok = 0;
-        } elsif ($op =~ /^\\([0-7]+|x[0-9a-f]{2})$/) {
-            # Escape to enter literal bytecodes
-            push(@codes, oct $1);
-        } else {
-            die "$fname: $line: unknown operation: $op\n";
-        }
-    }
-
-    return @codes;
-}
--- a/nasmbuild/nasm-2.13rc9/x86/insnsa.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15457 +0,0 @@
-/* This file auto-generated from insns.dat by insns.pl - don't edit it */
-
-#include "nasm.h"
-#include "insns.h"
-
-static const struct itemplate instrux_AAA[] = {
-    {I_AAA, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39413, 1},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_AAD[] = {
-    {I_AAD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38421, 1},
-    {I_AAD, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38425, 2},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_AAM[] = {
-    {I_AAM, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38429, 1},
-    {I_AAM, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38433, 2},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_AAS[] = {
-    {I_AAS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39416, 1},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ADC[] = {
-    {I_ADC, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36646, 3},
-    {I_ADC, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36647, 0},
-    {I_ADC, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32992, 3},
-    {I_ADC, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32993, 0},
-    {I_ADC, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32998, 4},
-    {I_ADC, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32999, 5},
-    {I_ADC, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33004, 6},
-    {I_ADC, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33005, 7},
-    {I_ADC, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+27255, 8},
-    {I_ADC, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+27255, 0},
-    {I_ADC, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36651, 8},
-    {I_ADC, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+36651, 0},
-    {I_ADC, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36656, 9},
-    {I_ADC, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+36656, 5},
-    {I_ADC, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36661, 10},
-    {I_ADC, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+36661, 7},
-    {I_ADC, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23850, 11},
-    {I_ADC, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23857, 12},
-    {I_ADC, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23864, 13},
-    {I_ADC, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38437, 8},
-    {I_ADC, 2, {REG_AX,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23851, 8},
-    {I_ADC, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36666, 8},
-    {I_ADC, 2, {REG_EAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23858, 9},
-    {I_ADC, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36671, 9},
-    {I_ADC, 2, {REG_RAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23865, 10},
-    {I_ADC, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36676, 10},
-    {I_ADC, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33010, 3},
-    {I_ADC, 2, {RM_GPR|BITS16,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23850, 3},
-    {I_ADC, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23871, 3},
-    {I_ADC, 2, {RM_GPR|BITS32,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23857, 4},
-    {I_ADC, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23878, 4},
-    {I_ADC, 2, {RM_GPR|BITS64,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23864, 6},
-    {I_ADC, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23885, 6},
-    {I_ADC, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33010, 3},
-    {I_ADC, 2, {MEMORY,SBYTEWORD|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+23850, 3},
-    {I_ADC, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+23871, 3},
-    {I_ADC, 2, {MEMORY,SBYTEDWORD|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+23857, 4},
-    {I_ADC, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+23878, 4},
-    {I_ADC, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33016, 14},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ADCX[] = {
-    {I_ADCX, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+8946, 129},
-    {I_ADCX, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+8954, 130},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ADD[] = {
-    {I_ADD, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36681, 3},
-    {I_ADD, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36682, 0},
-    {I_ADD, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33022, 3},
-    {I_ADD, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33023, 0},
-    {I_ADD, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33028, 4},
-    {I_ADD, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33029, 5},
-    {I_ADD, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33034, 6},
-    {I_ADD, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33035, 7},
-    {I_ADD, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+31028, 8},
-    {I_ADD, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31028, 0},
-    {I_ADD, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36686, 8},
-    {I_ADD, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+36686, 0},
-    {I_ADD, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36691, 9},
-    {I_ADD, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+36691, 5},
-    {I_ADD, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36696, 10},
-    {I_ADD, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+36696, 7},
-    {I_ADD, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23892, 11},
-    {I_ADD, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23899, 12},
-    {I_ADD, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23906, 13},
-    {I_ADD, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38441, 8},
-    {I_ADD, 2, {REG_AX,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23893, 8},
-    {I_ADD, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36701, 8},
-    {I_ADD, 2, {REG_EAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23900, 9},
-    {I_ADD, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36706, 9},
-    {I_ADD, 2, {REG_RAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23907, 10},
-    {I_ADD, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36711, 10},
-    {I_ADD, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33040, 3},
-    {I_ADD, 2, {RM_GPR|BITS16,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23892, 3},
-    {I_ADD, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23913, 3},
-    {I_ADD, 2, {RM_GPR|BITS32,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23899, 4},
-    {I_ADD, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23920, 4},
-    {I_ADD, 2, {RM_GPR|BITS64,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23906, 6},
-    {I_ADD, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23927, 6},
-    {I_ADD, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33040, 3},
-    {I_ADD, 2, {MEMORY,SBYTEWORD|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+23892, 3},
-    {I_ADD, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+23913, 3},
-    {I_ADD, 2, {MEMORY,SBYTEDWORD|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+23899, 4},
-    {I_ADD, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+23920, 4},
-    {I_ADD, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33046, 14},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ADDPD[] = {
-    {I_ADDPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34918, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ADDPS[] = {
-    {I_ADDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34222, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ADDSD[] = {
-    {I_ADDSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34924, 141},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ADDSS[] = {
-    {I_ADDSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34228, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ADDSUBPD[] = {
-    {I_ADDSUBPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35194, 151},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ADDSUBPS[] = {
-    {I_ADDSUBPS, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35200, 151},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ADOX[] = {
-    {I_ADOX, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+8962, 129},
-    {I_ADOX, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+8970, 130},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_AESDEC[] = {
-    {I_AESDEC, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25782, 178},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_AESDECLAST[] = {
-    {I_AESDECLAST, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25789, 178},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_AESENC[] = {
-    {I_AESENC, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25768, 178},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_AESENCLAST[] = {
-    {I_AESENCLAST, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25775, 178},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_AESIMC[] = {
-    {I_AESIMC, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25796, 178},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_AESKEYGENASSIST[] = {
-    {I_AESKEYGENASSIST, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8010, 178},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_AND[] = {
-    {I_AND, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36716, 3},
-    {I_AND, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36717, 0},
-    {I_AND, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33052, 3},
-    {I_AND, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33053, 0},
-    {I_AND, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33058, 4},
-    {I_AND, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33059, 5},
-    {I_AND, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33064, 6},
-    {I_AND, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33065, 7},
-    {I_AND, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+31308, 8},
-    {I_AND, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31308, 0},
-    {I_AND, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36721, 8},
-    {I_AND, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+36721, 0},
-    {I_AND, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36726, 9},
-    {I_AND, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+36726, 5},
-    {I_AND, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36731, 10},
-    {I_AND, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+36731, 7},
-    {I_AND, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23934, 11},
-    {I_AND, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23941, 12},
-    {I_AND, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23948, 13},
-    {I_AND, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38445, 8},
-    {I_AND, 2, {REG_AX,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23935, 8},
-    {I_AND, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36736, 8},
-    {I_AND, 2, {REG_EAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23942, 9},
-    {I_AND, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36741, 9},
-    {I_AND, 2, {REG_RAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23949, 10},
-    {I_AND, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36746, 10},
-    {I_AND, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33070, 3},
-    {I_AND, 2, {RM_GPR|BITS16,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23934, 3},
-    {I_AND, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23955, 3},
-    {I_AND, 2, {RM_GPR|BITS32,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23941, 4},
-    {I_AND, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23962, 4},
-    {I_AND, 2, {RM_GPR|BITS64,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+23948, 6},
-    {I_AND, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23969, 6},
-    {I_AND, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33070, 3},
-    {I_AND, 2, {MEMORY,SBYTEWORD|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+23934, 3},
-    {I_AND, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+23955, 3},
-    {I_AND, 2, {MEMORY,SBYTEDWORD|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+23941, 4},
-    {I_AND, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+23962, 4},
-    {I_AND, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33076, 14},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ANDN[] = {
-    {I_ANDN, 3, {REG_GPR|BITS32,REG_GPR|BITS32,RM_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32257, 197},
-    {I_ANDN, 3, {REG_GPR|BITS64,REG_GPR|BITS64,RM_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32264, 198},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ANDNPD[] = {
-    {I_ANDNPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34930, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ANDNPS[] = {
-    {I_ANDNPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34234, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ANDPD[] = {
-    {I_ANDPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34936, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ANDPS[] = {
-    {I_ANDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34240, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ARPL[] = {
-    {I_ARPL, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+38449, 15},
-    {I_ARPL, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+38449, 16},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BB0_RESET[] = {
-    {I_BB0_RESET, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38453, 17},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BB1_RESET[] = {
-    {I_BB1_RESET, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38457, 17},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BEXTR[] = {
-    {I_BEXTR, 3, {REG_GPR|BITS32,RM_GPR|BITS32,REG_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32271, 197},
-    {I_BEXTR, 3, {REG_GPR|BITS64,RM_GPR|BITS64,REG_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32278, 198},
-    {I_BEXTR, 3, {REG_GPR|BITS32,RM_GPR|BITS32,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+10978, 199},
-    {I_BEXTR, 3, {REG_GPR|BITS64,RM_GPR|BITS64,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+10986, 200},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BLCFILL[] = {
-    {I_BLCFILL, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32341, 199},
-    {I_BLCFILL, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32348, 200},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BLCI[] = {
-    {I_BLCI, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32285, 199},
-    {I_BLCI, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32292, 200},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BLCIC[] = {
-    {I_BLCIC, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32299, 199},
-    {I_BLCIC, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32306, 200},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BLCMSK[] = {
-    {I_BLCMSK, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32369, 199},
-    {I_BLCMSK, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32376, 200},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BLCS[] = {
-    {I_BLCS, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32411, 199},
-    {I_BLCS, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32418, 200},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BLENDPD[] = {
-    {I_BLENDPD, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7794, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BLENDPS[] = {
-    {I_BLENDPS, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7802, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BLENDVPD[] = {
-    {I_BLENDVPD, 3, {XMM_L16,RM_XMM_L16,XMM0,0,0}, NO_DECORATOR, nasm_bytecodes+25530, 164},
-    {I_BLENDVPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25530, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BLENDVPS[] = {
-    {I_BLENDVPS, 3, {XMM_L16,RM_XMM_L16,XMM0,0,0}, NO_DECORATOR, nasm_bytecodes+25537, 164},
-    {I_BLENDVPS, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25537, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BLSFILL[] = {
-    {I_BLSFILL, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32355, 199},
-    {I_BLSFILL, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32362, 200},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BLSI[] = {
-    {I_BLSI, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32313, 197},
-    {I_BLSI, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32320, 198},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BLSIC[] = {
-    {I_BLSIC, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32327, 199},
-    {I_BLSIC, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32334, 200},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BLSMSK[] = {
-    {I_BLSMSK, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32383, 197},
-    {I_BLSMSK, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32390, 198},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BLSR[] = {
-    {I_BLSR, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32397, 197},
-    {I_BLSR, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32404, 198},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BNDCL[] = {
-    {I_BNDCL, 2, {BNDREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+32573, 207},
-    {I_BNDCL, 2, {BNDREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32573, 208},
-    {I_BNDCL, 2, {BNDREG,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32572, 209},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BNDCN[] = {
-    {I_BNDCN, 2, {BNDREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+32587, 207},
-    {I_BNDCN, 2, {BNDREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32587, 208},
-    {I_BNDCN, 2, {BNDREG,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32586, 209},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BNDCU[] = {
-    {I_BNDCU, 2, {BNDREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+32580, 207},
-    {I_BNDCU, 2, {BNDREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32580, 208},
-    {I_BNDCU, 2, {BNDREG,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32579, 209},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BNDLDX[] = {
-    {I_BNDLDX, 2, {BNDREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35429, 206},
-    {I_BNDLDX, 3, {BNDREG,MEMORY,REG_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+35440, 210},
-    {I_BNDLDX, 3, {BNDREG,MEMORY,REG_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+35440, 211},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BNDMK[] = {
-    {I_BNDMK, 2, {BNDREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35422, 206},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BNDMOV[] = {
-    {I_BNDMOV, 2, {BNDREG,BNDREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+35428, 207},
-    {I_BNDMOV, 2, {BNDREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35428, 207},
-    {I_BNDMOV, 2, {BNDREG,BNDREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+35434, 207},
-    {I_BNDMOV, 2, {MEMORY,BNDREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+35434, 207},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BNDSTX[] = {
-    {I_BNDSTX, 2, {MEMORY,BNDREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+35435, 206},
-    {I_BNDSTX, 3, {MEMORY,REG_GPR|BITS32,BNDREG,0,0}, NO_DECORATOR, nasm_bytecodes+35446, 210},
-    {I_BNDSTX, 3, {MEMORY,REG_GPR|BITS64,BNDREG,0,0}, NO_DECORATOR, nasm_bytecodes+35446, 211},
-    {I_BNDSTX, 3, {MEMORY,BNDREG,REG_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+35452, 210},
-    {I_BNDSTX, 3, {MEMORY,BNDREG,REG_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+35452, 211},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BOUND[] = {
-    {I_BOUND, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36751, 18},
-    {I_BOUND, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36756, 19},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BSF[] = {
-    {I_BSF, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+23976, 9},
-    {I_BSF, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+23976, 5},
-    {I_BSF, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+23983, 9},
-    {I_BSF, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+23983, 5},
-    {I_BSF, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+23990, 10},
-    {I_BSF, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+23990, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BSR[] = {
-    {I_BSR, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+23997, 9},
-    {I_BSR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+23997, 5},
-    {I_BSR, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24004, 9},
-    {I_BSR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24004, 5},
-    {I_BSR, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24011, 10},
-    {I_BSR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24011, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BSWAP[] = {
-    {I_BSWAP, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33082, 20},
-    {I_BSWAP, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33088, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BT[] = {
-    {I_BT, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33094, 9},
-    {I_BT, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33094, 5},
-    {I_BT, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33100, 9},
-    {I_BT, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33100, 5},
-    {I_BT, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33106, 10},
-    {I_BT, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33106, 7},
-    {I_BT, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24018, 21},
-    {I_BT, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24025, 21},
-    {I_BT, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24032, 22},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BTC[] = {
-    {I_BTC, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24039, 4},
-    {I_BTC, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24040, 5},
-    {I_BTC, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24046, 4},
-    {I_BTC, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24047, 5},
-    {I_BTC, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24053, 6},
-    {I_BTC, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24054, 7},
-    {I_BTC, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7218, 23},
-    {I_BTC, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7226, 23},
-    {I_BTC, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7234, 24},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BTR[] = {
-    {I_BTR, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24060, 4},
-    {I_BTR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24061, 5},
-    {I_BTR, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24067, 4},
-    {I_BTR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24068, 5},
-    {I_BTR, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24074, 6},
-    {I_BTR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24075, 7},
-    {I_BTR, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7242, 23},
-    {I_BTR, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7250, 23},
-    {I_BTR, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7258, 24},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BTS[] = {
-    {I_BTS, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24081, 4},
-    {I_BTS, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24082, 5},
-    {I_BTS, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24088, 4},
-    {I_BTS, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24089, 5},
-    {I_BTS, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24095, 6},
-    {I_BTS, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24096, 7},
-    {I_BTS, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7266, 23},
-    {I_BTS, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7274, 23},
-    {I_BTS, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7282, 24},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_BZHI[] = {
-    {I_BZHI, 3, {REG_GPR|BITS32,RM_GPR|BITS32,REG_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32425, 201},
-    {I_BZHI, 3, {REG_GPR|BITS64,RM_GPR|BITS64,REG_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32432, 202},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CALL[] = {
-    {I_CALL, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36761, 25},
-    {I_CALL, 1, {IMMEDIATE|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36761, 25},
-    {I_CALL, 1, {IMMEDIATE|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33112, 1},
-    {I_CALL, 1, {IMMEDIATE|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36766, 26},
-    {I_CALL, 1, {IMMEDIATE|BITS16|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36766, 26},
-    {I_CALL, 1, {IMMEDIATE|BITS16|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33118, 1},
-    {I_CALL, 1, {IMMEDIATE|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36771, 27},
-    {I_CALL, 1, {IMMEDIATE|BITS32|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36771, 27},
-    {I_CALL, 1, {IMMEDIATE|BITS32|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33124, 19},
-    {I_CALL, 1, {IMMEDIATE|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36776, 28},
-    {I_CALL, 1, {IMMEDIATE|BITS64|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36776, 28},
-    {I_CALL, 2, {IMMEDIATE|COLON,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33130, 1},
-    {I_CALL, 2, {IMMEDIATE|BITS16|COLON,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33136, 1},
-    {I_CALL, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33136, 1},
-    {I_CALL, 2, {IMMEDIATE|BITS32|COLON,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33142, 19},
-    {I_CALL, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33142, 19},
-    {I_CALL, 1, {MEMORY|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36781, 1},
-    {I_CALL, 1, {MEMORY|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36786, 7},
-    {I_CALL, 1, {MEMORY|BITS16|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36791, 0},
-    {I_CALL, 1, {MEMORY|BITS32|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36796, 5},
-    {I_CALL, 1, {MEMORY|BITS64|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36786, 7},
-    {I_CALL, 1, {MEMORY|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36801, 25},
-    {I_CALL, 1, {RM_GPR|BITS16|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36806, 26},
-    {I_CALL, 1, {RM_GPR|BITS32|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36811, 27},
-    {I_CALL, 1, {RM_GPR|BITS64|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36816, 28},
-    {I_CALL, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36801, 25},
-    {I_CALL, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36806, 26},
-    {I_CALL, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36811, 27},
-    {I_CALL, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36816, 28},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CBW[] = {
-    {I_CBW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38461, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CDQ[] = {
-    {I_CDQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38465, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CDQE[] = {
-    {I_CDQE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38469, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CLAC[] = {
-    {I_CLAC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38371, 188},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CLC[] = {
-    {I_CLC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38193, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CLD[] = {
-    {I_CLD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38418, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CLFLUSH[] = {
-    {I_CLFLUSH, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34498, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CLFLUSHOPT[] = {
-    {I_CLFLUSHOPT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35494, 129},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CLGI[] = {
-    {I_CLGI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38316, 153},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CLI[] = {
-    {I_CLI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37538, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CLTS[] = {
-    {I_CLTS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38473, 29},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CLWB[] = {
-    {I_CLWB, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35500, 129},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CLZERO[] = {
-    {I_CLZERO, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38416, 232},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMC[] = {
-    {I_CMC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39419, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMP[] = {
-    {I_CMP, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38477, 8},
-    {I_CMP, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38477, 0},
-    {I_CMP, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+36821, 8},
-    {I_CMP, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+36821, 0},
-    {I_CMP, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+36826, 9},
-    {I_CMP, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+36826, 5},
-    {I_CMP, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+36831, 10},
-    {I_CMP, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+36831, 7},
-    {I_CMP, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+31266, 8},
-    {I_CMP, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31266, 0},
-    {I_CMP, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36836, 8},
-    {I_CMP, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+36836, 0},
-    {I_CMP, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36841, 9},
-    {I_CMP, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+36841, 5},
-    {I_CMP, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36846, 10},
-    {I_CMP, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+36846, 7},
-    {I_CMP, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33148, 0},
-    {I_CMP, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33154, 5},
-    {I_CMP, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33160, 7},
-    {I_CMP, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38481, 8},
-    {I_CMP, 2, {REG_AX,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+33148, 8},
-    {I_CMP, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36851, 8},
-    {I_CMP, 2, {REG_EAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+33154, 9},
-    {I_CMP, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36856, 9},
-    {I_CMP, 2, {REG_RAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+33160, 10},
-    {I_CMP, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36861, 10},
-    {I_CMP, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36866, 8},
-    {I_CMP, 2, {RM_GPR|BITS16,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+33148, 8},
-    {I_CMP, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33166, 8},
-    {I_CMP, 2, {RM_GPR|BITS32,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+33154, 9},
-    {I_CMP, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33172, 9},
-    {I_CMP, 2, {RM_GPR|BITS64,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+33160, 10},
-    {I_CMP, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33178, 10},
-    {I_CMP, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36866, 8},
-    {I_CMP, 2, {MEMORY,SBYTEWORD|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33148, 8},
-    {I_CMP, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33166, 8},
-    {I_CMP, 2, {MEMORY,SBYTEDWORD|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33154, 9},
-    {I_CMP, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33172, 9},
-    {I_CMP, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36871, 30},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPEQPD[] = {
-    {I_CMPEQPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7618, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPEQPS[] = {
-    {I_CMPEQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7442, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPEQSD[] = {
-    {I_CMPEQSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7626, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPEQSS[] = {
-    {I_CMPEQSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7450, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPLEPD[] = {
-    {I_CMPLEPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7634, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPLEPS[] = {
-    {I_CMPLEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7458, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPLESD[] = {
-    {I_CMPLESD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7642, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPLESS[] = {
-    {I_CMPLESS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7466, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPLTPD[] = {
-    {I_CMPLTPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7650, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPLTPS[] = {
-    {I_CMPLTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7474, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPLTSD[] = {
-    {I_CMPLTSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7658, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPLTSS[] = {
-    {I_CMPLTSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7482, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPNEQPD[] = {
-    {I_CMPNEQPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7666, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPNEQPS[] = {
-    {I_CMPNEQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7490, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPNEQSD[] = {
-    {I_CMPNEQSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7674, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPNEQSS[] = {
-    {I_CMPNEQSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7498, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPNLEPD[] = {
-    {I_CMPNLEPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7682, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPNLEPS[] = {
-    {I_CMPNLEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7506, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPNLESD[] = {
-    {I_CMPNLESD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7690, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPNLESS[] = {
-    {I_CMPNLESS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7514, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPNLTPD[] = {
-    {I_CMPNLTPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7698, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPNLTPS[] = {
-    {I_CMPNLTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7522, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPNLTSD[] = {
-    {I_CMPNLTSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7706, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPNLTSS[] = {
-    {I_CMPNLTSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7530, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPORDPD[] = {
-    {I_CMPORDPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7714, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPORDPS[] = {
-    {I_CMPORDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7538, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPORDSD[] = {
-    {I_CMPORDSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7722, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPORDSS[] = {
-    {I_CMPORDSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7546, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPPD[] = {
-    {I_CMPPD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+25215, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPPS[] = {
-    {I_CMPPS, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24886, 117},
-    {I_CMPPS, 3, {XMM_L16,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24886, 117},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPSB[] = {
-    {I_CMPSB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38485, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPSD[] = {
-    {I_CMPSD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36876, 5},
-    {I_CMPSD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+25222, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPSQ[] = {
-    {I_CMPSQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36881, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPSS[] = {
-    {I_CMPSS, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24893, 117},
-    {I_CMPSS, 3, {XMM_L16,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24893, 117},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPSW[] = {
-    {I_CMPSW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36886, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPUNORDPD[] = {
-    {I_CMPUNORDPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7730, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPUNORDPS[] = {
-    {I_CMPUNORDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7554, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPUNORDSD[] = {
-    {I_CMPUNORDSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7738, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPUNORDSS[] = {
-    {I_CMPUNORDSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7562, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPXCHG[] = {
-    {I_CMPXCHG, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33184, 31},
-    {I_CMPXCHG, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33185, 32},
-    {I_CMPXCHG, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24102, 31},
-    {I_CMPXCHG, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24103, 32},
-    {I_CMPXCHG, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24109, 31},
-    {I_CMPXCHG, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24110, 32},
-    {I_CMPXCHG, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24116, 6},
-    {I_CMPXCHG, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24117, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPXCHG16B[] = {
-    {I_CMPXCHG16B, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33202, 13},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPXCHG486[] = {
-    {I_CMPXCHG486, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36891, 33},
-    {I_CMPXCHG486, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36891, 34},
-    {I_CMPXCHG486, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33190, 33},
-    {I_CMPXCHG486, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33190, 34},
-    {I_CMPXCHG486, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33196, 33},
-    {I_CMPXCHG486, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33196, 34},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMPXCHG8B[] = {
-    {I_CMPXCHG8B, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24123, 35},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_COMISD[] = {
-    {I_COMISD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34942, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_COMISS[] = {
-    {I_COMISS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34246, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CPUID[] = {
-    {I_CPUID, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38489, 32},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CPU_READ[] = {
-    {I_CPU_READ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38493, 36},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CPU_WRITE[] = {
-    {I_CPU_WRITE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38497, 36},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CQO[] = {
-    {I_CQO, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38501, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CRC32[] = {
-    {I_CRC32, 2, {REG_GPR|BITS32,RM_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+7899, 171},
-    {I_CRC32, 2, {REG_GPR|BITS32,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7882, 171},
-    {I_CRC32, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7890, 171},
-    {I_CRC32, 2, {REG_GPR|BITS64,RM_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+7898, 172},
-    {I_CRC32, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+7906, 172},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTDQ2PD[] = {
-    {I_CVTDQ2PD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34948, 141},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTDQ2PS[] = {
-    {I_CVTDQ2PS, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34954, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTPD2DQ[] = {
-    {I_CVTPD2DQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34960, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTPD2PI[] = {
-    {I_CVTPD2PI, 2, {MMXREG,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34966, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTPD2PS[] = {
-    {I_CVTPD2PS, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34972, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTPI2PD[] = {
-    {I_CVTPI2PD, 2, {XMM_L16,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+34978, 141},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTPI2PS[] = {
-    {I_CVTPI2PS, 2, {XMM_L16,RM_MMX|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34252, 118},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTPS2DQ[] = {
-    {I_CVTPS2DQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34984, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTPS2PD[] = {
-    {I_CVTPS2PD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34990, 141},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTPS2PI[] = {
-    {I_CVTPS2PI, 2, {MMXREG,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34258, 118},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTSD2SI[] = {
-    {I_CVTSD2SI, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25229, 147},
-    {I_CVTSD2SI, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+25229, 147},
-    {I_CVTSD2SI, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25236, 148},
-    {I_CVTSD2SI, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+25236, 148},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTSD2SS[] = {
-    {I_CVTSD2SS, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34996, 141},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTSI2SD[] = {
-    {I_CVTSI2SD, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+25251, 149},
-    {I_CVTSI2SD, 2, {XMM_L16,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25243, 149},
-    {I_CVTSI2SD, 2, {XMM_L16,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25250, 148},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTSI2SS[] = {
-    {I_CVTSI2SS, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24901, 119},
-    {I_CVTSI2SS, 2, {XMM_L16,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24901, 119},
-    {I_CVTSI2SS, 2, {XMM_L16,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24900, 120},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTSS2SD[] = {
-    {I_CVTSS2SD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35002, 140},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTSS2SI[] = {
-    {I_CVTSS2SI, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24908, 119},
-    {I_CVTSS2SI, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24908, 119},
-    {I_CVTSS2SI, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24907, 121},
-    {I_CVTSS2SI, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24907, 121},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTTPD2DQ[] = {
-    {I_CVTTPD2DQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35014, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTTPD2PI[] = {
-    {I_CVTTPD2PI, 2, {MMXREG,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35008, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTTPS2DQ[] = {
-    {I_CVTTPS2DQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35020, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTTPS2PI[] = {
-    {I_CVTTPS2PI, 2, {MMXREG,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34264, 122},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTTSD2SI[] = {
-    {I_CVTTSD2SI, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25257, 147},
-    {I_CVTTSD2SI, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+25257, 147},
-    {I_CVTTSD2SI, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25264, 148},
-    {I_CVTTSD2SI, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+25264, 148},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CVTTSS2SI[] = {
-    {I_CVTTSS2SI, 2, {REG_GPR|BITS32,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24915, 119},
-    {I_CVTTSS2SI, 2, {REG_GPR|BITS64,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24914, 121},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CWD[] = {
-    {I_CWD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38505, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CWDE[] = {
-    {I_CWDE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38509, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DAA[] = {
-    {I_DAA, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39422, 1},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DAS[] = {
-    {I_DAS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39425, 1},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DB[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DD[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DEC[] = {
-    {I_DEC, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38513, 1},
-    {I_DEC, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38517, 19},
-    {I_DEC, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36896, 11},
-    {I_DEC, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33208, 11},
-    {I_DEC, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33214, 12},
-    {I_DEC, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33220, 13},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DIV[] = {
-    {I_DIV, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38521, 0},
-    {I_DIV, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36901, 0},
-    {I_DIV, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36906, 5},
-    {I_DIV, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36911, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DIVPD[] = {
-    {I_DIVPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35026, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DIVPS[] = {
-    {I_DIVPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34270, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DIVSD[] = {
-    {I_DIVSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35032, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DIVSS[] = {
-    {I_DIVSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34276, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DMINT[] = {
-    {I_DMINT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38525, 37},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DO[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DPPD[] = {
-    {I_DPPD, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7810, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DPPS[] = {
-    {I_DPPS, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7818, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DQ[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DT[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DW[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DY[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_DZ[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_EMMS[] = {
-    {I_EMMS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38529, 38},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ENTER[] = {
-    {I_ENTER, 2, {IMMEDIATE,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36916, 39},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_EQU[] = {
-    {I_EQU, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39460, 0},
-    {I_EQU, 2, {IMMEDIATE|COLON,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39460, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_EXTRACTPS[] = {
-    {I_EXTRACTPS, 3, {RM_GPR|BITS32,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+1, 164},
-    {I_EXTRACTPS, 3, {REG_GPR|BITS64,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+0, 165},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_EXTRQ[] = {
-    {I_EXTRQ, 3, {XMM_L16,IMMEDIATE,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7778, 161},
-    {I_EXTRQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35278, 161},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_F2XM1[] = {
-    {I_F2XM1, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38533, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FABS[] = {
-    {I_FABS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38537, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FADD[] = {
-    {I_FADD, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38541, 40},
-    {I_FADD, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38545, 40},
-    {I_FADD, 1, {FPUREG|TO,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36921, 40},
-    {I_FADD, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36926, 40},
-    {I_FADD, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36921, 40},
-    {I_FADD, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+36931, 40},
-    {I_FADD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38549, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FADDP[] = {
-    {I_FADDP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36936, 40},
-    {I_FADDP, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36936, 40},
-    {I_FADDP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38549, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FBLD[] = {
-    {I_FBLD, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38553, 40},
-    {I_FBLD, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38553, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FBSTP[] = {
-    {I_FBSTP, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38557, 40},
-    {I_FBSTP, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38557, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCHS[] = {
-    {I_FCHS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38561, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCLEX[] = {
-    {I_FCLEX, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36941, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCMOVB[] = {
-    {I_FCMOVB, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36946, 41},
-    {I_FCMOVB, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+36951, 41},
-    {I_FCMOVB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38565, 41},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCMOVBE[] = {
-    {I_FCMOVBE, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36956, 41},
-    {I_FCMOVBE, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+36961, 41},
-    {I_FCMOVBE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38569, 41},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCMOVE[] = {
-    {I_FCMOVE, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36966, 41},
-    {I_FCMOVE, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+36971, 41},
-    {I_FCMOVE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38573, 41},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCMOVNB[] = {
-    {I_FCMOVNB, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36976, 41},
-    {I_FCMOVNB, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+36981, 41},
-    {I_FCMOVNB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38577, 41},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCMOVNBE[] = {
-    {I_FCMOVNBE, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36986, 41},
-    {I_FCMOVNBE, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+36991, 41},
-    {I_FCMOVNBE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38581, 41},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCMOVNE[] = {
-    {I_FCMOVNE, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36996, 41},
-    {I_FCMOVNE, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37001, 41},
-    {I_FCMOVNE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38585, 41},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCMOVNU[] = {
-    {I_FCMOVNU, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37006, 41},
-    {I_FCMOVNU, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37011, 41},
-    {I_FCMOVNU, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38589, 41},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCMOVU[] = {
-    {I_FCMOVU, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37016, 41},
-    {I_FCMOVU, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37021, 41},
-    {I_FCMOVU, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38593, 41},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCOM[] = {
-    {I_FCOM, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38597, 40},
-    {I_FCOM, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38601, 40},
-    {I_FCOM, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37026, 40},
-    {I_FCOM, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37031, 40},
-    {I_FCOM, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38605, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCOMI[] = {
-    {I_FCOMI, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37036, 41},
-    {I_FCOMI, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37041, 41},
-    {I_FCOMI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38609, 41},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCOMIP[] = {
-    {I_FCOMIP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37046, 41},
-    {I_FCOMIP, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37051, 41},
-    {I_FCOMIP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38613, 41},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCOMP[] = {
-    {I_FCOMP, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38617, 40},
-    {I_FCOMP, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38621, 40},
-    {I_FCOMP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37056, 40},
-    {I_FCOMP, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37061, 40},
-    {I_FCOMP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38625, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCOMPP[] = {
-    {I_FCOMPP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38629, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FCOS[] = {
-    {I_FCOS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38633, 42},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FDECSTP[] = {
-    {I_FDECSTP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38637, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FDISI[] = {
-    {I_FDISI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37066, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FDIV[] = {
-    {I_FDIV, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38641, 40},
-    {I_FDIV, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38645, 40},
-    {I_FDIV, 1, {FPUREG|TO,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37071, 40},
-    {I_FDIV, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37076, 40},
-    {I_FDIV, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37071, 40},
-    {I_FDIV, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37081, 40},
-    {I_FDIV, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38649, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FDIVP[] = {
-    {I_FDIVP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37086, 40},
-    {I_FDIVP, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37086, 40},
-    {I_FDIVP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38649, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FDIVR[] = {
-    {I_FDIVR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38653, 40},
-    {I_FDIVR, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38657, 40},
-    {I_FDIVR, 1, {FPUREG|TO,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37091, 40},
-    {I_FDIVR, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37091, 40},
-    {I_FDIVR, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37096, 40},
-    {I_FDIVR, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37101, 40},
-    {I_FDIVR, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38661, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FDIVRP[] = {
-    {I_FDIVRP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37106, 40},
-    {I_FDIVRP, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37106, 40},
-    {I_FDIVRP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38661, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FEMMS[] = {
-    {I_FEMMS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38665, 43},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FENI[] = {
-    {I_FENI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37111, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FFREE[] = {
-    {I_FFREE, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37116, 40},
-    {I_FFREE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38669, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FFREEP[] = {
-    {I_FFREEP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37121, 44},
-    {I_FFREEP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38673, 44},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FIADD[] = {
-    {I_FIADD, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38677, 40},
-    {I_FIADD, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38681, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FICOM[] = {
-    {I_FICOM, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38685, 40},
-    {I_FICOM, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38689, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FICOMP[] = {
-    {I_FICOMP, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38693, 40},
-    {I_FICOMP, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38697, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FIDIV[] = {
-    {I_FIDIV, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38701, 40},
-    {I_FIDIV, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38705, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FIDIVR[] = {
-    {I_FIDIVR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38709, 40},
-    {I_FIDIVR, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38713, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FILD[] = {
-    {I_FILD, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38717, 40},
-    {I_FILD, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38721, 40},
-    {I_FILD, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38725, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FIMUL[] = {
-    {I_FIMUL, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38729, 40},
-    {I_FIMUL, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38733, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FINCSTP[] = {
-    {I_FINCSTP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38737, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FINIT[] = {
-    {I_FINIT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37126, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FIST[] = {
-    {I_FIST, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38741, 40},
-    {I_FIST, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38745, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FISTP[] = {
-    {I_FISTP, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38749, 40},
-    {I_FISTP, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38753, 40},
-    {I_FISTP, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38757, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FISTTP[] = {
-    {I_FISTTP, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38761, 45},
-    {I_FISTTP, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38765, 45},
-    {I_FISTTP, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38769, 45},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FISUB[] = {
-    {I_FISUB, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38773, 40},
-    {I_FISUB, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38777, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FISUBR[] = {
-    {I_FISUBR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38781, 40},
-    {I_FISUBR, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38785, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FLD[] = {
-    {I_FLD, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38789, 40},
-    {I_FLD, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38793, 40},
-    {I_FLD, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38797, 40},
-    {I_FLD, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37131, 40},
-    {I_FLD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38801, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FLD1[] = {
-    {I_FLD1, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38805, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FLDCW[] = {
-    {I_FLDCW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38809, 46},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FLDENV[] = {
-    {I_FLDENV, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38813, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FLDL2E[] = {
-    {I_FLDL2E, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38817, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FLDL2T[] = {
-    {I_FLDL2T, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38821, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FLDLG2[] = {
-    {I_FLDLG2, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38825, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FLDLN2[] = {
-    {I_FLDLN2, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38829, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FLDPI[] = {
-    {I_FLDPI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38833, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FLDZ[] = {
-    {I_FLDZ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38837, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FMUL[] = {
-    {I_FMUL, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38841, 40},
-    {I_FMUL, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38845, 40},
-    {I_FMUL, 1, {FPUREG|TO,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37136, 40},
-    {I_FMUL, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37136, 40},
-    {I_FMUL, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37141, 40},
-    {I_FMUL, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37146, 40},
-    {I_FMUL, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38849, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FMULP[] = {
-    {I_FMULP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37151, 40},
-    {I_FMULP, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37151, 40},
-    {I_FMULP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38849, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FNCLEX[] = {
-    {I_FNCLEX, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36942, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FNDISI[] = {
-    {I_FNDISI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37067, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FNENI[] = {
-    {I_FNENI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37112, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FNINIT[] = {
-    {I_FNINIT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37127, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FNOP[] = {
-    {I_FNOP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38853, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FNSAVE[] = {
-    {I_FNSAVE, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37157, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FNSTCW[] = {
-    {I_FNSTCW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37167, 46},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FNSTENV[] = {
-    {I_FNSTENV, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37172, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FNSTSW[] = {
-    {I_FNSTSW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37182, 46},
-    {I_FNSTSW, 1, {REG_AX,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37187, 47},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FPATAN[] = {
-    {I_FPATAN, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38857, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FPREM[] = {
-    {I_FPREM, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38861, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FPREM1[] = {
-    {I_FPREM1, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38865, 42},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FPTAN[] = {
-    {I_FPTAN, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38869, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FRNDINT[] = {
-    {I_FRNDINT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38873, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FRSTOR[] = {
-    {I_FRSTOR, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38877, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FSAVE[] = {
-    {I_FSAVE, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37156, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FSCALE[] = {
-    {I_FSCALE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38881, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FSETPM[] = {
-    {I_FSETPM, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38885, 47},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FSIN[] = {
-    {I_FSIN, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38889, 42},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FSINCOS[] = {
-    {I_FSINCOS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38893, 42},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FSQRT[] = {
-    {I_FSQRT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38897, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FST[] = {
-    {I_FST, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38901, 40},
-    {I_FST, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38905, 40},
-    {I_FST, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37161, 40},
-    {I_FST, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38909, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FSTCW[] = {
-    {I_FSTCW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37166, 46},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FSTENV[] = {
-    {I_FSTENV, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37171, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FSTP[] = {
-    {I_FSTP, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38913, 40},
-    {I_FSTP, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38917, 40},
-    {I_FSTP, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38921, 40},
-    {I_FSTP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37176, 40},
-    {I_FSTP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38925, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FSTSW[] = {
-    {I_FSTSW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37181, 46},
-    {I_FSTSW, 1, {REG_AX,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37186, 47},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FSUB[] = {
-    {I_FSUB, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38929, 40},
-    {I_FSUB, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38933, 40},
-    {I_FSUB, 1, {FPUREG|TO,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37191, 40},
-    {I_FSUB, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37191, 40},
-    {I_FSUB, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37196, 40},
-    {I_FSUB, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37201, 40},
-    {I_FSUB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38937, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FSUBP[] = {
-    {I_FSUBP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37206, 40},
-    {I_FSUBP, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37206, 40},
-    {I_FSUBP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38937, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FSUBR[] = {
-    {I_FSUBR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38941, 40},
-    {I_FSUBR, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38945, 40},
-    {I_FSUBR, 1, {FPUREG|TO,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37211, 40},
-    {I_FSUBR, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37211, 40},
-    {I_FSUBR, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37216, 40},
-    {I_FSUBR, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37221, 40},
-    {I_FSUBR, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38949, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FSUBRP[] = {
-    {I_FSUBRP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37226, 40},
-    {I_FSUBRP, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37226, 40},
-    {I_FSUBRP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38949, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FTST[] = {
-    {I_FTST, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38953, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FUCOM[] = {
-    {I_FUCOM, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37231, 42},
-    {I_FUCOM, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37236, 42},
-    {I_FUCOM, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38957, 42},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FUCOMI[] = {
-    {I_FUCOMI, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37241, 41},
-    {I_FUCOMI, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37246, 41},
-    {I_FUCOMI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38961, 41},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FUCOMIP[] = {
-    {I_FUCOMIP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37251, 41},
-    {I_FUCOMIP, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37256, 41},
-    {I_FUCOMIP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38965, 41},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FUCOMP[] = {
-    {I_FUCOMP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37261, 42},
-    {I_FUCOMP, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37266, 42},
-    {I_FUCOMP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38969, 42},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FUCOMPP[] = {
-    {I_FUCOMPP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38973, 42},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FWAIT[] = {
-    {I_FWAIT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38959, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FXAM[] = {
-    {I_FXAM, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38977, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FXCH[] = {
-    {I_FXCH, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37271, 40},
-    {I_FXCH, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37271, 40},
-    {I_FXCH, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37276, 40},
-    {I_FXCH, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38981, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FXRSTOR[] = {
-    {I_FXRSTOR, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24936, 124},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FXRSTOR64[] = {
-    {I_FXRSTOR64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24935, 125},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FXSAVE[] = {
-    {I_FXSAVE, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24943, 124},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FXSAVE64[] = {
-    {I_FXSAVE64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24942, 125},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FXTRACT[] = {
-    {I_FXTRACT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38985, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FYL2X[] = {
-    {I_FYL2X, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38989, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_FYL2XP1[] = {
-    {I_FYL2XP1, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38993, 40},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_GETSEC[] = {
-    {I_GETSEC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39409, 131},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HADDPD[] = {
-    {I_HADDPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35206, 151},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HADDPS[] = {
-    {I_HADDPS, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35212, 151},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP0[] = {
-    {I_HINT_NOP0, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35512, 233},
-    {I_HINT_NOP0, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35518, 233},
-    {I_HINT_NOP0, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35524, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP1[] = {
-    {I_HINT_NOP1, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35530, 233},
-    {I_HINT_NOP1, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35536, 233},
-    {I_HINT_NOP1, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35542, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP10[] = {
-    {I_HINT_NOP10, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35692, 233},
-    {I_HINT_NOP10, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35698, 233},
-    {I_HINT_NOP10, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35704, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP11[] = {
-    {I_HINT_NOP11, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35710, 233},
-    {I_HINT_NOP11, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35716, 233},
-    {I_HINT_NOP11, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35722, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP12[] = {
-    {I_HINT_NOP12, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35728, 233},
-    {I_HINT_NOP12, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35734, 233},
-    {I_HINT_NOP12, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35740, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP13[] = {
-    {I_HINT_NOP13, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35746, 233},
-    {I_HINT_NOP13, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35752, 233},
-    {I_HINT_NOP13, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35758, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP14[] = {
-    {I_HINT_NOP14, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35764, 233},
-    {I_HINT_NOP14, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35770, 233},
-    {I_HINT_NOP14, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35776, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP15[] = {
-    {I_HINT_NOP15, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35782, 233},
-    {I_HINT_NOP15, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35788, 233},
-    {I_HINT_NOP15, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35794, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP16[] = {
-    {I_HINT_NOP16, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35800, 233},
-    {I_HINT_NOP16, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35806, 233},
-    {I_HINT_NOP16, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35812, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP17[] = {
-    {I_HINT_NOP17, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35818, 233},
-    {I_HINT_NOP17, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35824, 233},
-    {I_HINT_NOP17, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35830, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP18[] = {
-    {I_HINT_NOP18, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35836, 233},
-    {I_HINT_NOP18, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35842, 233},
-    {I_HINT_NOP18, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35848, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP19[] = {
-    {I_HINT_NOP19, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35854, 233},
-    {I_HINT_NOP19, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35860, 233},
-    {I_HINT_NOP19, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35866, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP2[] = {
-    {I_HINT_NOP2, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35548, 233},
-    {I_HINT_NOP2, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35554, 233},
-    {I_HINT_NOP2, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35560, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP20[] = {
-    {I_HINT_NOP20, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35872, 233},
-    {I_HINT_NOP20, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35878, 233},
-    {I_HINT_NOP20, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35884, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP21[] = {
-    {I_HINT_NOP21, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35890, 233},
-    {I_HINT_NOP21, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35896, 233},
-    {I_HINT_NOP21, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35902, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP22[] = {
-    {I_HINT_NOP22, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35908, 233},
-    {I_HINT_NOP22, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35914, 233},
-    {I_HINT_NOP22, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35920, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP23[] = {
-    {I_HINT_NOP23, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35926, 233},
-    {I_HINT_NOP23, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35932, 233},
-    {I_HINT_NOP23, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35938, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP24[] = {
-    {I_HINT_NOP24, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35944, 233},
-    {I_HINT_NOP24, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35950, 233},
-    {I_HINT_NOP24, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35956, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP25[] = {
-    {I_HINT_NOP25, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35962, 233},
-    {I_HINT_NOP25, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35968, 233},
-    {I_HINT_NOP25, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35974, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP26[] = {
-    {I_HINT_NOP26, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35980, 233},
-    {I_HINT_NOP26, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35986, 233},
-    {I_HINT_NOP26, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35992, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP27[] = {
-    {I_HINT_NOP27, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35998, 233},
-    {I_HINT_NOP27, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36004, 233},
-    {I_HINT_NOP27, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36010, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP28[] = {
-    {I_HINT_NOP28, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36016, 233},
-    {I_HINT_NOP28, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36022, 233},
-    {I_HINT_NOP28, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36028, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP29[] = {
-    {I_HINT_NOP29, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36034, 233},
-    {I_HINT_NOP29, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36040, 233},
-    {I_HINT_NOP29, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36046, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP3[] = {
-    {I_HINT_NOP3, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35566, 233},
-    {I_HINT_NOP3, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35572, 233},
-    {I_HINT_NOP3, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35578, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP30[] = {
-    {I_HINT_NOP30, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36052, 233},
-    {I_HINT_NOP30, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36058, 233},
-    {I_HINT_NOP30, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36064, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP31[] = {
-    {I_HINT_NOP31, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36070, 233},
-    {I_HINT_NOP31, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36076, 233},
-    {I_HINT_NOP31, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36082, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP32[] = {
-    {I_HINT_NOP32, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36088, 233},
-    {I_HINT_NOP32, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36094, 233},
-    {I_HINT_NOP32, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36100, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP33[] = {
-    {I_HINT_NOP33, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36106, 233},
-    {I_HINT_NOP33, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36112, 233},
-    {I_HINT_NOP33, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36118, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP34[] = {
-    {I_HINT_NOP34, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36124, 233},
-    {I_HINT_NOP34, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36130, 233},
-    {I_HINT_NOP34, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36136, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP35[] = {
-    {I_HINT_NOP35, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36142, 233},
-    {I_HINT_NOP35, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36148, 233},
-    {I_HINT_NOP35, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36154, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP36[] = {
-    {I_HINT_NOP36, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36160, 233},
-    {I_HINT_NOP36, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36166, 233},
-    {I_HINT_NOP36, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36172, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP37[] = {
-    {I_HINT_NOP37, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36178, 233},
-    {I_HINT_NOP37, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36184, 233},
-    {I_HINT_NOP37, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36190, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP38[] = {
-    {I_HINT_NOP38, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36196, 233},
-    {I_HINT_NOP38, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36202, 233},
-    {I_HINT_NOP38, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36208, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP39[] = {
-    {I_HINT_NOP39, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36214, 233},
-    {I_HINT_NOP39, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36220, 233},
-    {I_HINT_NOP39, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36226, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP4[] = {
-    {I_HINT_NOP4, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35584, 233},
-    {I_HINT_NOP4, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35590, 233},
-    {I_HINT_NOP4, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35596, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP40[] = {
-    {I_HINT_NOP40, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36232, 233},
-    {I_HINT_NOP40, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36238, 233},
-    {I_HINT_NOP40, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36244, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP41[] = {
-    {I_HINT_NOP41, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36250, 233},
-    {I_HINT_NOP41, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36256, 233},
-    {I_HINT_NOP41, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36262, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP42[] = {
-    {I_HINT_NOP42, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36268, 233},
-    {I_HINT_NOP42, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36274, 233},
-    {I_HINT_NOP42, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36280, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP43[] = {
-    {I_HINT_NOP43, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36286, 233},
-    {I_HINT_NOP43, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36292, 233},
-    {I_HINT_NOP43, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36298, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP44[] = {
-    {I_HINT_NOP44, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36304, 233},
-    {I_HINT_NOP44, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36310, 233},
-    {I_HINT_NOP44, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36316, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP45[] = {
-    {I_HINT_NOP45, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36322, 233},
-    {I_HINT_NOP45, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36328, 233},
-    {I_HINT_NOP45, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36334, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP46[] = {
-    {I_HINT_NOP46, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36340, 233},
-    {I_HINT_NOP46, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36346, 233},
-    {I_HINT_NOP46, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36352, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP47[] = {
-    {I_HINT_NOP47, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36358, 233},
-    {I_HINT_NOP47, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36364, 233},
-    {I_HINT_NOP47, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36370, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP48[] = {
-    {I_HINT_NOP48, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36376, 233},
-    {I_HINT_NOP48, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36382, 233},
-    {I_HINT_NOP48, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36388, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP49[] = {
-    {I_HINT_NOP49, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36394, 233},
-    {I_HINT_NOP49, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36400, 233},
-    {I_HINT_NOP49, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36406, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP5[] = {
-    {I_HINT_NOP5, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35602, 233},
-    {I_HINT_NOP5, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35608, 233},
-    {I_HINT_NOP5, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35614, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP50[] = {
-    {I_HINT_NOP50, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36412, 233},
-    {I_HINT_NOP50, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36418, 233},
-    {I_HINT_NOP50, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36424, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP51[] = {
-    {I_HINT_NOP51, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36430, 233},
-    {I_HINT_NOP51, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36436, 233},
-    {I_HINT_NOP51, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36442, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP52[] = {
-    {I_HINT_NOP52, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36448, 233},
-    {I_HINT_NOP52, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36454, 233},
-    {I_HINT_NOP52, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36460, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP53[] = {
-    {I_HINT_NOP53, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36466, 233},
-    {I_HINT_NOP53, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36472, 233},
-    {I_HINT_NOP53, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36478, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP54[] = {
-    {I_HINT_NOP54, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36484, 233},
-    {I_HINT_NOP54, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36490, 233},
-    {I_HINT_NOP54, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36496, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP55[] = {
-    {I_HINT_NOP55, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36502, 233},
-    {I_HINT_NOP55, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36508, 233},
-    {I_HINT_NOP55, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36514, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP56[] = {
-    {I_HINT_NOP56, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33682, 233},
-    {I_HINT_NOP56, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33688, 233},
-    {I_HINT_NOP56, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33694, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP57[] = {
-    {I_HINT_NOP57, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36520, 233},
-    {I_HINT_NOP57, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36526, 233},
-    {I_HINT_NOP57, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36532, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP58[] = {
-    {I_HINT_NOP58, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36538, 233},
-    {I_HINT_NOP58, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36544, 233},
-    {I_HINT_NOP58, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36550, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP59[] = {
-    {I_HINT_NOP59, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36556, 233},
-    {I_HINT_NOP59, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36562, 233},
-    {I_HINT_NOP59, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36568, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP6[] = {
-    {I_HINT_NOP6, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35620, 233},
-    {I_HINT_NOP6, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35626, 233},
-    {I_HINT_NOP6, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35632, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP60[] = {
-    {I_HINT_NOP60, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36574, 233},
-    {I_HINT_NOP60, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36580, 233},
-    {I_HINT_NOP60, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36586, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP61[] = {
-    {I_HINT_NOP61, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36592, 233},
-    {I_HINT_NOP61, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36598, 233},
-    {I_HINT_NOP61, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36604, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP62[] = {
-    {I_HINT_NOP62, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36610, 233},
-    {I_HINT_NOP62, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36616, 233},
-    {I_HINT_NOP62, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36622, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP63[] = {
-    {I_HINT_NOP63, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36628, 233},
-    {I_HINT_NOP63, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36634, 233},
-    {I_HINT_NOP63, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36640, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP7[] = {
-    {I_HINT_NOP7, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35638, 233},
-    {I_HINT_NOP7, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35644, 233},
-    {I_HINT_NOP7, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35650, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP8[] = {
-    {I_HINT_NOP8, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35656, 233},
-    {I_HINT_NOP8, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35662, 233},
-    {I_HINT_NOP8, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35668, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HINT_NOP9[] = {
-    {I_HINT_NOP9, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35674, 233},
-    {I_HINT_NOP9, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35680, 233},
-    {I_HINT_NOP9, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35686, 234},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HLT[] = {
-    {I_HLT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39428, 48},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HSUBPD[] = {
-    {I_HSUBPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35218, 151},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_HSUBPS[] = {
-    {I_HSUBPS, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35224, 151},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_IBTS[] = {
-    {I_IBTS, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33190, 49},
-    {I_IBTS, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33190, 50},
-    {I_IBTS, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33196, 51},
-    {I_IBTS, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33196, 50},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ICEBP[] = {
-    {I_ICEBP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39431, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_IDIV[] = {
-    {I_IDIV, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38997, 0},
-    {I_IDIV, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37281, 0},
-    {I_IDIV, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37286, 5},
-    {I_IDIV, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37291, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_IMUL[] = {
-    {I_IMUL, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39001, 0},
-    {I_IMUL, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37296, 0},
-    {I_IMUL, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37301, 5},
-    {I_IMUL, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37306, 7},
-    {I_IMUL, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33226, 9},
-    {I_IMUL, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33226, 5},
-    {I_IMUL, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33232, 9},
-    {I_IMUL, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33232, 5},
-    {I_IMUL, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33238, 10},
-    {I_IMUL, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33238, 7},
-    {I_IMUL, 3, {REG_GPR|BITS16,MEMORY,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+33244, 52},
-    {I_IMUL, 3, {REG_GPR|BITS16,MEMORY,SBYTEWORD,0,0}, NO_DECORATOR, nasm_bytecodes+33244, 52},
-    {I_IMUL, 3, {REG_GPR|BITS16,MEMORY,IMMEDIATE|BITS16,0,0}, NO_DECORATOR, nasm_bytecodes+33250, 52},
-    {I_IMUL, 3, {REG_GPR|BITS16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+33250, 52},
-    {I_IMUL, 3, {REG_GPR|BITS16,REG_GPR|BITS16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+33244, 39},
-    {I_IMUL, 3, {REG_GPR|BITS16,REG_GPR|BITS16,SBYTEWORD,0,0}, NO_DECORATOR, nasm_bytecodes+33244, 52},
-    {I_IMUL, 3, {REG_GPR|BITS16,REG_GPR|BITS16,IMMEDIATE|BITS16,0,0}, NO_DECORATOR, nasm_bytecodes+33250, 39},
-    {I_IMUL, 3, {REG_GPR|BITS16,REG_GPR|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+33250, 52},
-    {I_IMUL, 3, {REG_GPR|BITS32,MEMORY,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+33256, 9},
-    {I_IMUL, 3, {REG_GPR|BITS32,MEMORY,SBYTEDWORD,0,0}, NO_DECORATOR, nasm_bytecodes+33256, 9},
-    {I_IMUL, 3, {REG_GPR|BITS32,MEMORY,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+33262, 9},
-    {I_IMUL, 3, {REG_GPR|BITS32,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+33262, 9},
-    {I_IMUL, 3, {REG_GPR|BITS32,REG_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+33256, 5},
-    {I_IMUL, 3, {REG_GPR|BITS32,REG_GPR|BITS32,SBYTEDWORD,0,0}, NO_DECORATOR, nasm_bytecodes+33256, 9},
-    {I_IMUL, 3, {REG_GPR|BITS32,REG_GPR|BITS32,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+33262, 5},
-    {I_IMUL, 3, {REG_GPR|BITS32,REG_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+33262, 9},
-    {I_IMUL, 3, {REG_GPR|BITS64,MEMORY,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+33268, 10},
-    {I_IMUL, 3, {REG_GPR|BITS64,MEMORY,SBYTEDWORD,0,0}, NO_DECORATOR, nasm_bytecodes+33268, 10},
-    {I_IMUL, 3, {REG_GPR|BITS64,MEMORY,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+33274, 10},
-    {I_IMUL, 3, {REG_GPR|BITS64,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+33280, 10},
-    {I_IMUL, 3, {REG_GPR|BITS64,REG_GPR|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+33268, 7},
-    {I_IMUL, 3, {REG_GPR|BITS64,REG_GPR|BITS64,SBYTEDWORD,0,0}, NO_DECORATOR, nasm_bytecodes+33268, 10},
-    {I_IMUL, 3, {REG_GPR|BITS64,REG_GPR|BITS64,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+33274, 7},
-    {I_IMUL, 3, {REG_GPR|BITS64,REG_GPR|BITS64,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+33280, 10},
-    {I_IMUL, 2, {REG_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33286, 39},
-    {I_IMUL, 2, {REG_GPR|BITS16,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+33286, 52},
-    {I_IMUL, 2, {REG_GPR|BITS16,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33292, 39},
-    {I_IMUL, 2, {REG_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33292, 52},
-    {I_IMUL, 2, {REG_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33298, 5},
-    {I_IMUL, 2, {REG_GPR|BITS32,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+33298, 9},
-    {I_IMUL, 2, {REG_GPR|BITS32,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33304, 5},
-    {I_IMUL, 2, {REG_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33304, 9},
-    {I_IMUL, 2, {REG_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33310, 7},
-    {I_IMUL, 2, {REG_GPR|BITS64,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+33310, 10},
-    {I_IMUL, 2, {REG_GPR|BITS64,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33316, 7},
-    {I_IMUL, 2, {REG_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33316, 10},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_IN[] = {
-    {I_IN, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39005, 53},
-    {I_IN, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37311, 53},
-    {I_IN, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37316, 21},
-    {I_IN, 2, {REG_AL,REG_DX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39434, 0},
-    {I_IN, 2, {REG_AX,REG_DX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39009, 0},
-    {I_IN, 2, {REG_EAX,REG_DX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39013, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INC[] = {
-    {I_INC, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39017, 1},
-    {I_INC, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39021, 19},
-    {I_INC, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37321, 11},
-    {I_INC, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33322, 11},
-    {I_INC, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33328, 12},
-    {I_INC, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33334, 13},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INCBIN[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INSB[] = {
-    {I_INSB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39437, 39},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INSD[] = {
-    {I_INSD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39025, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INSERTPS[] = {
-    {I_INSERTPS, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7826, 166},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INSERTQ[] = {
-    {I_INSERTQ, 4, {XMM_L16,XMM_L16,IMMEDIATE,IMMEDIATE,0}, NO_DECORATOR, nasm_bytecodes+7786, 161},
-    {I_INSERTQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35284, 161},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INSW[] = {
-    {I_INSW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39029, 39},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INT[] = {
-    {I_INT, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39033, 53},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INT01[] = {
-    {I_INT01, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39431, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INT03[] = {
-    {I_INT03, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39440, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INT1[] = {
-    {I_INT1, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39431, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INT3[] = {
-    {I_INT3, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39440, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INTO[] = {
-    {I_INTO, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39443, 1},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INVD[] = {
-    {I_INVD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39037, 54},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INVEPT[] = {
-    {I_INVEPT, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+7747, 157},
-    {I_INVEPT, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+7746, 158},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INVLPG[] = {
-    {I_INVLPG, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37326, 54},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INVLPGA[] = {
-    {I_INVLPGA, 2, {REG_AX,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33340, 57},
-    {I_INVLPGA, 2, {REG_EAX,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33346, 58},
-    {I_INVLPGA, 2, {REG_RAX,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24137, 59},
-    {I_INVLPGA, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33347, 58},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INVPCID[] = {
-    {I_INVPCID, 2, {REG_GPR|BITS32,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+24130, 55},
-    {I_INVPCID, 2, {REG_GPR|BITS64,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+24130, 56},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_INVVPID[] = {
-    {I_INVVPID, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+7755, 157},
-    {I_INVVPID, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+7754, 158},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_IRET[] = {
-    {I_IRET, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39041, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_IRETD[] = {
-    {I_IRETD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39045, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_IRETQ[] = {
-    {I_IRETQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39049, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_IRETW[] = {
-    {I_IRETW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39053, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_JCXZ[] = {
-    {I_JCXZ, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37331, 1},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_JECXZ[] = {
-    {I_JECXZ, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37336, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_JMP[] = {
-    {I_JMP, 1, {IMMEDIATE|SHORT,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37347, 0},
-    {I_JMP, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37346, 0},
-    {I_JMP, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37351, 25},
-    {I_JMP, 1, {IMMEDIATE|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37351, 25},
-    {I_JMP, 1, {IMMEDIATE|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33352, 1},
-    {I_JMP, 1, {IMMEDIATE|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37356, 26},
-    {I_JMP, 1, {IMMEDIATE|BITS16|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37356, 26},
-    {I_JMP, 1, {IMMEDIATE|BITS16|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33358, 1},
-    {I_JMP, 1, {IMMEDIATE|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37361, 27},
-    {I_JMP, 1, {IMMEDIATE|BITS32|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37361, 27},
-    {I_JMP, 1, {IMMEDIATE|BITS32|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33364, 19},
-    {I_JMP, 1, {IMMEDIATE|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37366, 28},
-    {I_JMP, 1, {IMMEDIATE|BITS64|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37366, 28},
-    {I_JMP, 2, {IMMEDIATE|COLON,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33370, 1},
-    {I_JMP, 2, {IMMEDIATE|BITS16|COLON,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33376, 1},
-    {I_JMP, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33376, 1},
-    {I_JMP, 2, {IMMEDIATE|BITS32|COLON,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33382, 19},
-    {I_JMP, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33382, 19},
-    {I_JMP, 1, {MEMORY|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37371, 1},
-    {I_JMP, 1, {MEMORY|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37376, 7},
-    {I_JMP, 1, {MEMORY|BITS16|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37381, 0},
-    {I_JMP, 1, {MEMORY|BITS32|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37386, 5},
-    {I_JMP, 1, {MEMORY|BITS64|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37376, 7},
-    {I_JMP, 1, {MEMORY|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37391, 25},
-    {I_JMP, 1, {RM_GPR|BITS16|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37396, 26},
-    {I_JMP, 1, {RM_GPR|BITS32|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37401, 27},
-    {I_JMP, 1, {RM_GPR|BITS64|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37406, 28},
-    {I_JMP, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37391, 25},
-    {I_JMP, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37396, 26},
-    {I_JMP, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37401, 27},
-    {I_JMP, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37406, 28},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_JMPE[] = {
-    {I_JMPE, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33388, 60},
-    {I_JMPE, 1, {IMMEDIATE|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33394, 60},
-    {I_JMPE, 1, {IMMEDIATE|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33400, 60},
-    {I_JMPE, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33406, 60},
-    {I_JMPE, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33412, 60},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_JRCXZ[] = {
-    {I_JRCXZ, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37341, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KADDB[] = {
-    {I_KADDB, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32593, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KADDD[] = {
-    {I_KADDD, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32600, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KADDQ[] = {
-    {I_KADDQ, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32607, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KADDW[] = {
-    {I_KADDW, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32614, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KANDB[] = {
-    {I_KANDB, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32621, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KANDD[] = {
-    {I_KANDD, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32628, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KANDNB[] = {
-    {I_KANDNB, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32635, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KANDND[] = {
-    {I_KANDND, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32642, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KANDNQ[] = {
-    {I_KANDNQ, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32649, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KANDNW[] = {
-    {I_KANDNW, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32656, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KANDQ[] = {
-    {I_KANDQ, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32663, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KANDW[] = {
-    {I_KANDW, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32670, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KMOVB[] = {
-    {I_KMOVB, 2, {KREG,RM_K|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+32677, 212},
-    {I_KMOVB, 2, {MEMORY|BITS8,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32684, 212},
-    {I_KMOVB, 2, {KREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32691, 212},
-    {I_KMOVB, 2, {REG_GPR|BITS32,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32698, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KMOVD[] = {
-    {I_KMOVD, 2, {KREG,RM_K|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32705, 212},
-    {I_KMOVD, 2, {MEMORY|BITS32,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32712, 212},
-    {I_KMOVD, 2, {KREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32719, 212},
-    {I_KMOVD, 2, {REG_GPR|BITS32,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32726, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KMOVQ[] = {
-    {I_KMOVQ, 2, {KREG,RM_K|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32733, 212},
-    {I_KMOVQ, 2, {MEMORY|BITS64,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32740, 212},
-    {I_KMOVQ, 2, {KREG,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32747, 212},
-    {I_KMOVQ, 2, {REG_GPR|BITS64,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32754, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KMOVW[] = {
-    {I_KMOVW, 2, {KREG,RM_K|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32761, 212},
-    {I_KMOVW, 2, {MEMORY|BITS16,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32768, 212},
-    {I_KMOVW, 2, {KREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32775, 212},
-    {I_KMOVW, 2, {REG_GPR|BITS32,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32782, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KNOTB[] = {
-    {I_KNOTB, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32789, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KNOTD[] = {
-    {I_KNOTD, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32796, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KNOTQ[] = {
-    {I_KNOTQ, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32803, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KNOTW[] = {
-    {I_KNOTW, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32810, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KORB[] = {
-    {I_KORB, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32817, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KORD[] = {
-    {I_KORD, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32824, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KORQ[] = {
-    {I_KORQ, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32831, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KORTESTB[] = {
-    {I_KORTESTB, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32838, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KORTESTD[] = {
-    {I_KORTESTD, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32845, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KORTESTQ[] = {
-    {I_KORTESTQ, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32852, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KORTESTW[] = {
-    {I_KORTESTW, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32859, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KORW[] = {
-    {I_KORW, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32866, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KSHIFTLB[] = {
-    {I_KSHIFTLB, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11010, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KSHIFTLD[] = {
-    {I_KSHIFTLD, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11018, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KSHIFTLQ[] = {
-    {I_KSHIFTLQ, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11026, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KSHIFTLW[] = {
-    {I_KSHIFTLW, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11034, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KSHIFTRB[] = {
-    {I_KSHIFTRB, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11042, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KSHIFTRD[] = {
-    {I_KSHIFTRD, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11050, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KSHIFTRQ[] = {
-    {I_KSHIFTRQ, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11058, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KSHIFTRW[] = {
-    {I_KSHIFTRW, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11066, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KTESTB[] = {
-    {I_KTESTB, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32873, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KTESTD[] = {
-    {I_KTESTD, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32880, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KTESTQ[] = {
-    {I_KTESTQ, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32887, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KTESTW[] = {
-    {I_KTESTW, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32894, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KUNPCKBW[] = {
-    {I_KUNPCKBW, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32901, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KUNPCKDQ[] = {
-    {I_KUNPCKDQ, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32908, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KUNPCKWD[] = {
-    {I_KUNPCKWD, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32915, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KXNORB[] = {
-    {I_KXNORB, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32922, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KXNORD[] = {
-    {I_KXNORD, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32929, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KXNORQ[] = {
-    {I_KXNORQ, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32936, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KXNORW[] = {
-    {I_KXNORW, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32943, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KXORB[] = {
-    {I_KXORB, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32950, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KXORD[] = {
-    {I_KXORD, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32957, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KXORQ[] = {
-    {I_KXORQ, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32964, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_KXORW[] = {
-    {I_KXORW, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32971, 212},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LAHF[] = {
-    {I_LAHF, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39446, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LAR[] = {
-    {I_LAR, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33418, 61},
-    {I_LAR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33418, 62},
-    {I_LAR, 2, {REG_GPR|BITS16,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33418, 63},
-    {I_LAR, 2, {REG_GPR|BITS16,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24144, 64},
-    {I_LAR, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33424, 65},
-    {I_LAR, 2, {REG_GPR|BITS32,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33424, 63},
-    {I_LAR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33424, 63},
-    {I_LAR, 2, {REG_GPR|BITS32,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24151, 64},
-    {I_LAR, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33430, 66},
-    {I_LAR, 2, {REG_GPR|BITS64,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33430, 64},
-    {I_LAR, 2, {REG_GPR|BITS64,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33430, 64},
-    {I_LAR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33430, 64},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LDDQU[] = {
-    {I_LDDQU, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35230, 151},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LDMXCSR[] = {
-    {I_LDMXCSR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34282, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LDS[] = {
-    {I_LDS, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37411, 1},
-    {I_LDS, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37416, 19},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LEA[] = {
-    {I_LEA, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37421, 0},
-    {I_LEA, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37426, 5},
-    {I_LEA, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37431, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LEAVE[] = {
-    {I_LEAVE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37683, 39},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LES[] = {
-    {I_LES, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37436, 1},
-    {I_LES, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37441, 19},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LFENCE[] = {
-    {I_LFENCE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33436, 59},
-    {I_LFENCE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33436, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LFS[] = {
-    {I_LFS, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33442, 5},
-    {I_LFS, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33448, 5},
-    {I_LFS, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33454, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LGDT[] = {
-    {I_LGDT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37446, 29},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LGS[] = {
-    {I_LGS, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33460, 5},
-    {I_LGS, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33466, 5},
-    {I_LGS, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33472, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LIDT[] = {
-    {I_LIDT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37451, 29},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LLDT[] = {
-    {I_LLDT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37456, 67},
-    {I_LLDT, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37456, 67},
-    {I_LLDT, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37456, 67},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LLWPCB[] = {
-    {I_LLWPCB, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29989, 189},
-    {I_LLWPCB, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29996, 190},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LMSW[] = {
-    {I_LMSW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37461, 29},
-    {I_LMSW, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37461, 29},
-    {I_LMSW, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37461, 29},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LOADALL[] = {
-    {I_LOADALL, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39057, 50},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LOADALL286[] = {
-    {I_LOADALL286, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39061, 68},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LODSB[] = {
-    {I_LODSB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39449, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LODSD[] = {
-    {I_LODSD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39065, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LODSQ[] = {
-    {I_LODSQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39069, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LODSW[] = {
-    {I_LODSW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39073, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LOOP[] = {
-    {I_LOOP, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37466, 0},
-    {I_LOOP, 2, {IMMEDIATE,REG_CX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37471, 1},
-    {I_LOOP, 2, {IMMEDIATE,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37476, 5},
-    {I_LOOP, 2, {IMMEDIATE,REG_RCX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37481, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LOOPE[] = {
-    {I_LOOPE, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37486, 0},
-    {I_LOOPE, 2, {IMMEDIATE,REG_CX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37491, 1},
-    {I_LOOPE, 2, {IMMEDIATE,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37496, 5},
-    {I_LOOPE, 2, {IMMEDIATE,REG_RCX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37501, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LOOPNE[] = {
-    {I_LOOPNE, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37506, 0},
-    {I_LOOPNE, 2, {IMMEDIATE,REG_CX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37511, 1},
-    {I_LOOPNE, 2, {IMMEDIATE,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37516, 5},
-    {I_LOOPNE, 2, {IMMEDIATE,REG_RCX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37521, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LOOPNZ[] = {
-    {I_LOOPNZ, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37506, 0},
-    {I_LOOPNZ, 2, {IMMEDIATE,REG_CX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37511, 1},
-    {I_LOOPNZ, 2, {IMMEDIATE,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37516, 5},
-    {I_LOOPNZ, 2, {IMMEDIATE,REG_RCX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37521, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LOOPZ[] = {
-    {I_LOOPZ, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37486, 0},
-    {I_LOOPZ, 2, {IMMEDIATE,REG_CX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37491, 1},
-    {I_LOOPZ, 2, {IMMEDIATE,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37496, 5},
-    {I_LOOPZ, 2, {IMMEDIATE,REG_RCX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37501, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LSL[] = {
-    {I_LSL, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33478, 61},
-    {I_LSL, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33478, 62},
-    {I_LSL, 2, {REG_GPR|BITS16,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33478, 63},
-    {I_LSL, 2, {REG_GPR|BITS16,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24158, 64},
-    {I_LSL, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33484, 65},
-    {I_LSL, 2, {REG_GPR|BITS32,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33484, 63},
-    {I_LSL, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33484, 63},
-    {I_LSL, 2, {REG_GPR|BITS32,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24165, 64},
-    {I_LSL, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33490, 66},
-    {I_LSL, 2, {REG_GPR|BITS64,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33490, 64},
-    {I_LSL, 2, {REG_GPR|BITS64,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33490, 64},
-    {I_LSL, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33490, 64},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LSS[] = {
-    {I_LSS, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33496, 5},
-    {I_LSS, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33502, 5},
-    {I_LSS, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33508, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LTR[] = {
-    {I_LTR, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37526, 67},
-    {I_LTR, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37526, 67},
-    {I_LTR, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37526, 67},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LWPINS[] = {
-    {I_LWPINS, 3, {REG_GPR|BITS32,RM_GPR|BITS32,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+8994, 189},
-    {I_LWPINS, 3, {REG_GPR|BITS64,RM_GPR|BITS32,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+9002, 190},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LWPVAL[] = {
-    {I_LWPVAL, 3, {REG_GPR|BITS32,RM_GPR|BITS32,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+8978, 189},
-    {I_LWPVAL, 3, {REG_GPR|BITS64,RM_GPR|BITS32,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+8986, 190},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_LZCNT[] = {
-    {I_LZCNT, 2, {REG_GPR|BITS16,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25509, 107},
-    {I_LZCNT, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25516, 107},
-    {I_LZCNT, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25523, 59},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MASKMOVDQU[] = {
-    {I_MASKMOVDQU, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34492, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MASKMOVQ[] = {
-    {I_MASKMOVQ, 2, {MMXREG,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+34474, 132},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MAXPD[] = {
-    {I_MAXPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35038, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MAXPS[] = {
-    {I_MAXPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34288, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MAXSD[] = {
-    {I_MAXSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35044, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MAXSS[] = {
-    {I_MAXSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34294, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MFENCE[] = {
-    {I_MFENCE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33514, 59},
-    {I_MFENCE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33514, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MINPD[] = {
-    {I_MINPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35050, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MINPS[] = {
-    {I_MINPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34300, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MINSD[] = {
-    {I_MINSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35056, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MINSS[] = {
-    {I_MINSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34306, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MONITOR[] = {
-    {I_MONITOR, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37531, 69},
-    {I_MONITOR, 3, {REG_EAX,REG_ECX,REG_EDX,0,0}, NO_DECORATOR, nasm_bytecodes+37531, 70},
-    {I_MONITOR, 3, {REG_RAX,REG_ECX,REG_EDX,0,0}, NO_DECORATOR, nasm_bytecodes+37531, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MONITORX[] = {
-    {I_MONITORX, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37536, 71},
-    {I_MONITORX, 3, {REG_RAX,REG_ECX,REG_EDX,0,0}, NO_DECORATOR, nasm_bytecodes+37536, 59},
-    {I_MONITORX, 3, {REG_EAX,REG_ECX,REG_EDX,0,0}, NO_DECORATOR, nasm_bytecodes+37536, 71},
-    {I_MONITORX, 3, {REG_AX,REG_ECX,REG_EDX,0,0}, NO_DECORATOR, nasm_bytecodes+37536, 71},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MONTMUL[] = {
-    {I_MONTMUL, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35380, 36},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOV[] = {
-    {I_MOV, 2, {MEMORY,REG_SREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37557, 72},
-    {I_MOV, 2, {REG_GPR|BITS16,REG_SREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37541, 0},
-    {I_MOV, 2, {REG_GPR|BITS32,REG_SREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37546, 5},
-    {I_MOV, 2, {REG_GPR|BITS64,REG_SREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37551, 73},
-    {I_MOV, 2, {RM_GPR|BITS64,REG_SREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37556, 7},
-    {I_MOV, 2, {REG_SREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37577, 72},
-    {I_MOV, 2, {REG_SREG,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+37577, 74},
-    {I_MOV, 2, {REG_SREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+37577, 75},
-    {I_MOV, 2, {REG_SREG,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+37561, 73},
-    {I_MOV, 2, {REG_SREG,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+37566, 0},
-    {I_MOV, 2, {REG_SREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+37571, 5},
-    {I_MOV, 2, {REG_SREG,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+37576, 7},
-    {I_MOV, 2, {REG_AL,MEM_OFFS,0,0,0}, NO_DECORATOR, nasm_bytecodes+39077, 8},
-    {I_MOV, 2, {REG_AX,MEM_OFFS,0,0,0}, NO_DECORATOR, nasm_bytecodes+37581, 8},
-    {I_MOV, 2, {REG_EAX,MEM_OFFS,0,0,0}, NO_DECORATOR, nasm_bytecodes+37586, 9},
-    {I_MOV, 2, {REG_RAX,MEM_OFFS,0,0,0}, NO_DECORATOR, nasm_bytecodes+37591, 10},
-    {I_MOV, 2, {MEM_OFFS,REG_AL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39081, 76},
-    {I_MOV, 2, {MEM_OFFS,REG_AX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37596, 76},
-    {I_MOV, 2, {MEM_OFFS,REG_EAX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37601, 77},
-    {I_MOV, 2, {MEM_OFFS,REG_RAX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37606, 78},
-    {I_MOV, 2, {REG_GPR|BITS32,REG_CREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+33520, 79},
-    {I_MOV, 2, {REG_GPR|BITS64,REG_CREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+33526, 80},
-    {I_MOV, 2, {REG_CREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33532, 79},
-    {I_MOV, 2, {REG_CREG,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33538, 80},
-    {I_MOV, 2, {REG_GPR|BITS32,REG_DREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+33545, 79},
-    {I_MOV, 2, {REG_GPR|BITS64,REG_DREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+33544, 80},
-    {I_MOV, 2, {REG_DREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33551, 79},
-    {I_MOV, 2, {REG_DREG,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33550, 80},
-    {I_MOV, 2, {REG_GPR|BITS32,REG_TREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37611, 19},
-    {I_MOV, 2, {REG_TREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+37616, 19},
-    {I_MOV, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37621, 8},
-    {I_MOV, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37622, 0},
-    {I_MOV, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33556, 8},
-    {I_MOV, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33557, 0},
-    {I_MOV, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33562, 9},
-    {I_MOV, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33563, 5},
-    {I_MOV, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33568, 10},
-    {I_MOV, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33569, 7},
-    {I_MOV, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39085, 8},
-    {I_MOV, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+39085, 0},
-    {I_MOV, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37626, 8},
-    {I_MOV, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+37626, 0},
-    {I_MOV, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37631, 9},
-    {I_MOV, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+37631, 5},
-    {I_MOV, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37636, 10},
-    {I_MOV, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+37636, 7},
-    {I_MOV, 2, {REG_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39089, 8},
-    {I_MOV, 2, {REG_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37641, 8},
-    {I_MOV, 2, {REG_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37646, 9},
-    {I_MOV, 2, {REG_GPR|BITS64,UDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+37651, 81},
-    {I_MOV, 2, {REG_GPR|BITS64,SDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24187, 81},
-    {I_MOV, 2, {REG_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37656, 10},
-    {I_MOV, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33574, 8},
-    {I_MOV, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24172, 8},
-    {I_MOV, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24179, 9},
-    {I_MOV, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24186, 10},
-    {I_MOV, 2, {RM_GPR|BITS64,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24186, 7},
-    {I_MOV, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33574, 8},
-    {I_MOV, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24172, 8},
-    {I_MOV, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24179, 9},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVAPD[] = {
-    {I_MOVAPD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35062, 136},
-    {I_MOVAPD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35068, 136},
-    {I_MOVAPD, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35068, 137},
-    {I_MOVAPD, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35062, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVAPS[] = {
-    {I_MOVAPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34312, 116},
-    {I_MOVAPS, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34318, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVBE[] = {
-    {I_MOVBE, 2, {REG_GPR|BITS16,MEMORY|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7962, 177},
-    {I_MOVBE, 2, {REG_GPR|BITS32,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7970, 177},
-    {I_MOVBE, 2, {REG_GPR|BITS64,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+7978, 177},
-    {I_MOVBE, 2, {MEMORY|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7986, 177},
-    {I_MOVBE, 2, {MEMORY|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7994, 177},
-    {I_MOVBE, 2, {MEMORY|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+8002, 177},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVD[] = {
-    {I_MOVD, 2, {MMXREG,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33580, 82},
-    {I_MOVD, 2, {RM_GPR|BITS32,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+33586, 82},
-    {I_MOVD, 2, {MMXREG,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24193, 83},
-    {I_MOVD, 2, {RM_GPR|BITS64,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+24200, 83},
-    {I_MOVD, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25068, 140},
-    {I_MOVD, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+25075, 140},
-    {I_MOVD, 2, {XMM_L16,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25075, 136},
-    {I_MOVD, 2, {RM_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25068, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVDDUP[] = {
-    {I_MOVDDUP, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35236, 152},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVDQ2Q[] = {
-    {I_MOVDQ2Q, 2, {MMXREG,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34540, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVDQA[] = {
-    {I_MOVDQA, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34516, 136},
-    {I_MOVDQA, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34522, 137},
-    {I_MOVDQA, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34516, 137},
-    {I_MOVDQA, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34522, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVDQU[] = {
-    {I_MOVDQU, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34528, 136},
-    {I_MOVDQU, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34534, 137},
-    {I_MOVDQU, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34528, 137},
-    {I_MOVDQU, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34534, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVHLPS[] = {
-    {I_MOVHLPS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34120, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVHPD[] = {
-    {I_MOVHPD, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35074, 136},
-    {I_MOVHPD, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35080, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVHPS[] = {
-    {I_MOVHPS, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34324, 116},
-    {I_MOVHPS, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34330, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVLHPS[] = {
-    {I_MOVLHPS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34324, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVLPD[] = {
-    {I_MOVLPD, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35086, 136},
-    {I_MOVLPD, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+35092, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVLPS[] = {
-    {I_MOVLPS, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34120, 116},
-    {I_MOVLPS, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34336, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVMSKPD[] = {
-    {I_MOVMSKPD, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35098, 136},
-    {I_MOVMSKPD, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25271, 142},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVMSKPS[] = {
-    {I_MOVMSKPS, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34342, 116},
-    {I_MOVMSKPS, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24921, 123},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVNTDQ[] = {
-    {I_MOVNTDQ, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34504, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVNTDQA[] = {
-    {I_MOVNTDQA, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25544, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVNTI[] = {
-    {I_MOVNTI, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25062, 138},
-    {I_MOVNTI, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25061, 139},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVNTPD[] = {
-    {I_MOVNTPD, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34510, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVNTPS[] = {
-    {I_MOVNTPS, 2, {MEMORY|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34348, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVNTQ[] = {
-    {I_MOVNTQ, 2, {MEMORY,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+34480, 133},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVNTSD[] = {
-    {I_MOVNTSD, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35290, 162},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVNTSS[] = {
-    {I_MOVNTSS, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35296, 163},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVQ[] = {
-    {I_MOVQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33592, 84},
-    {I_MOVQ, 2, {RM_MMX,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+33598, 84},
-    {I_MOVQ, 2, {MMXREG,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24193, 85},
-    {I_MOVQ, 2, {RM_GPR|BITS64,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+24200, 85},
-    {I_MOVQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34546, 136},
-    {I_MOVQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34552, 136},
-    {I_MOVQ, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34552, 141},
-    {I_MOVQ, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34546, 141},
-    {I_MOVQ, 2, {XMM_L16,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25082, 142},
-    {I_MOVQ, 2, {RM_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25089, 142},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVQ2DQ[] = {
-    {I_MOVQ2DQ, 2, {XMM_L16,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+34558, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVSB[] = {
-    {I_MOVSB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+7351, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVSD[] = {
-    {I_MOVSD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39093, 5},
-    {I_MOVSD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35104, 136},
-    {I_MOVSD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35110, 136},
-    {I_MOVSD, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35110, 136},
-    {I_MOVSD, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+35104, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVSHDUP[] = {
-    {I_MOVSHDUP, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35242, 152},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVSLDUP[] = {
-    {I_MOVSLDUP, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35248, 152},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVSQ[] = {
-    {I_MOVSQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39097, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVSS[] = {
-    {I_MOVSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34354, 116},
-    {I_MOVSS, 2, {MEMORY|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34360, 116},
-    {I_MOVSS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34354, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVSW[] = {
-    {I_MOVSW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39101, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVSX[] = {
-    {I_MOVSX, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33604, 21},
-    {I_MOVSX, 2, {REG_GPR|BITS16,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33604, 5},
-    {I_MOVSX, 2, {REG_GPR|BITS32,RM_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33610, 5},
-    {I_MOVSX, 2, {REG_GPR|BITS32,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33616, 5},
-    {I_MOVSX, 2, {REG_GPR|BITS64,RM_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33622, 7},
-    {I_MOVSX, 2, {REG_GPR|BITS64,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33628, 7},
-    {I_MOVSX, 2, {REG_GPR|BITS64,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+37661, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVSXD[] = {
-    {I_MOVSXD, 2, {REG_GPR|BITS64,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+37661, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVUPD[] = {
-    {I_MOVUPD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35116, 136},
-    {I_MOVUPD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35122, 136},
-    {I_MOVUPD, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35122, 137},
-    {I_MOVUPD, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35116, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVUPS[] = {
-    {I_MOVUPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34366, 116},
-    {I_MOVUPS, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34372, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MOVZX[] = {
-    {I_MOVZX, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33634, 21},
-    {I_MOVZX, 2, {REG_GPR|BITS16,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33634, 5},
-    {I_MOVZX, 2, {REG_GPR|BITS32,RM_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33640, 5},
-    {I_MOVZX, 2, {REG_GPR|BITS32,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33646, 5},
-    {I_MOVZX, 2, {REG_GPR|BITS64,RM_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33652, 7},
-    {I_MOVZX, 2, {REG_GPR|BITS64,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33658, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MPSADBW[] = {
-    {I_MPSADBW, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7834, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MUL[] = {
-    {I_MUL, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39105, 0},
-    {I_MUL, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37666, 0},
-    {I_MUL, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37671, 5},
-    {I_MUL, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37676, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MULPD[] = {
-    {I_MULPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35128, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MULPS[] = {
-    {I_MULPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34378, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MULSD[] = {
-    {I_MULSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35134, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MULSS[] = {
-    {I_MULSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34384, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MULX[] = {
-    {I_MULX, 3, {REG_GPR|BITS32,REG_GPR|BITS32,RM_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32439, 201},
-    {I_MULX, 3, {REG_GPR|BITS64,REG_GPR|BITS64,RM_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32446, 202},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MWAIT[] = {
-    {I_MWAIT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37681, 69},
-    {I_MWAIT, 2, {REG_EAX,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37681, 69},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_MWAITX[] = {
-    {I_MWAITX, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37686, 71},
-    {I_MWAITX, 2, {REG_EAX,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37686, 71},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_NEG[] = {
-    {I_NEG, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37691, 11},
-    {I_NEG, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33664, 11},
-    {I_NEG, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33670, 12},
-    {I_NEG, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33676, 13},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_NOP[] = {
-    {I_NOP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37696, 0},
-    {I_NOP, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33682, 86},
-    {I_NOP, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33688, 86},
-    {I_NOP, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33694, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_NOT[] = {
-    {I_NOT, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37701, 11},
-    {I_NOT, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33700, 11},
-    {I_NOT, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33706, 12},
-    {I_NOT, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33712, 13},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_OR[] = {
-    {I_OR, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37706, 3},
-    {I_OR, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37707, 0},
-    {I_OR, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33718, 3},
-    {I_OR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33719, 0},
-    {I_OR, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33724, 4},
-    {I_OR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33725, 5},
-    {I_OR, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33730, 6},
-    {I_OR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33731, 7},
-    {I_OR, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+31553, 8},
-    {I_OR, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31553, 0},
-    {I_OR, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37711, 8},
-    {I_OR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+37711, 0},
-    {I_OR, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37716, 9},
-    {I_OR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+37716, 5},
-    {I_OR, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37721, 10},
-    {I_OR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+37721, 7},
-    {I_OR, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24207, 11},
-    {I_OR, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24214, 12},
-    {I_OR, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24221, 13},
-    {I_OR, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39109, 8},
-    {I_OR, 2, {REG_AX,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24208, 8},
-    {I_OR, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37726, 8},
-    {I_OR, 2, {REG_EAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24215, 9},
-    {I_OR, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37731, 9},
-    {I_OR, 2, {REG_RAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24222, 10},
-    {I_OR, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37736, 10},
-    {I_OR, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33736, 3},
-    {I_OR, 2, {RM_GPR|BITS16,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24207, 3},
-    {I_OR, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24228, 3},
-    {I_OR, 2, {RM_GPR|BITS32,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24214, 4},
-    {I_OR, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24235, 4},
-    {I_OR, 2, {RM_GPR|BITS64,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24221, 6},
-    {I_OR, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24242, 6},
-    {I_OR, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33736, 3},
-    {I_OR, 2, {MEMORY,SBYTEWORD|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24207, 3},
-    {I_OR, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24228, 3},
-    {I_OR, 2, {MEMORY,SBYTEDWORD|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24214, 4},
-    {I_OR, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24235, 4},
-    {I_OR, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33742, 14},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ORPD[] = {
-    {I_ORPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35140, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ORPS[] = {
-    {I_ORPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34390, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_OUT[] = {
-    {I_OUT, 2, {IMMEDIATE,REG_AL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39113, 53},
-    {I_OUT, 2, {IMMEDIATE,REG_AX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37741, 53},
-    {I_OUT, 2, {IMMEDIATE,REG_EAX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37746, 21},
-    {I_OUT, 2, {REG_DX,REG_AL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38408, 0},
-    {I_OUT, 2, {REG_DX,REG_AX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39117, 0},
-    {I_OUT, 2, {REG_DX,REG_EAX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39121, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_OUTSB[] = {
-    {I_OUTSB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39452, 39},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_OUTSD[] = {
-    {I_OUTSD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39125, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_OUTSW[] = {
-    {I_OUTSW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39129, 39},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PABSB[] = {
-    {I_PABSB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25299, 159},
-    {I_PABSB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25306, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PABSD[] = {
-    {I_PABSD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25327, 159},
-    {I_PABSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25334, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PABSW[] = {
-    {I_PABSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25313, 159},
-    {I_PABSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25320, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PACKSSDW[] = {
-    {I_PACKSSDW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24249, 84},
-    {I_PACKSSDW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34570, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PACKSSWB[] = {
-    {I_PACKSSWB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24256, 84},
-    {I_PACKSSWB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34564, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PACKUSDW[] = {
-    {I_PACKUSDW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25551, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PACKUSWB[] = {
-    {I_PACKUSWB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24263, 84},
-    {I_PACKUSWB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34576, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PADDB[] = {
-    {I_PADDB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24270, 84},
-    {I_PADDB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34582, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PADDD[] = {
-    {I_PADDD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24277, 84},
-    {I_PADDD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34594, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PADDQ[] = {
-    {I_PADDQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+34600, 143},
-    {I_PADDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34606, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PADDSB[] = {
-    {I_PADDSB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24284, 84},
-    {I_PADDSB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34612, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PADDSIW[] = {
-    {I_PADDSIW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33748, 87},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PADDSW[] = {
-    {I_PADDSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24291, 84},
-    {I_PADDSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34618, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PADDUSB[] = {
-    {I_PADDUSB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24298, 84},
-    {I_PADDUSB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34624, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PADDUSW[] = {
-    {I_PADDUSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24305, 84},
-    {I_PADDUSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34630, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PADDW[] = {
-    {I_PADDW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24312, 84},
-    {I_PADDW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34588, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PALIGNR[] = {
-    {I_PALIGNR, 3, {MMXREG,RM_MMX,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7762, 159},
-    {I_PALIGNR, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7770, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PAND[] = {
-    {I_PAND, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24319, 84},
-    {I_PAND, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34636, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PANDN[] = {
-    {I_PANDN, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24326, 84},
-    {I_PANDN, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34642, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PAUSE[] = {
-    {I_PAUSE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39133, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PAVEB[] = {
-    {I_PAVEB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33754, 87},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PAVGB[] = {
-    {I_PAVGB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24991, 133},
-    {I_PAVGB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34648, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PAVGUSB[] = {
-    {I_PAVGUSB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7290, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PAVGW[] = {
-    {I_PAVGW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24998, 133},
-    {I_PAVGW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34654, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PBLENDVB[] = {
-    {I_PBLENDVB, 3, {XMM_L16,RM_XMM_L16,XMM0,0,0}, NO_DECORATOR, nasm_bytecodes+25558, 164},
-    {I_PBLENDVB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25558, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PBLENDW[] = {
-    {I_PBLENDW, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7842, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCLMULHQHQDQ[] = {
-    {I_PCLMULHQHQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3555, 178},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCLMULHQLQDQ[] = {
-    {I_PCLMULHQLQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3537, 178},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCLMULLQHQDQ[] = {
-    {I_PCLMULLQHQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3546, 178},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCLMULLQLQDQ[] = {
-    {I_PCLMULLQLQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3528, 178},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCLMULQDQ[] = {
-    {I_PCLMULQDQ, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8906, 178},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCMPEQB[] = {
-    {I_PCMPEQB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24333, 84},
-    {I_PCMPEQB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34660, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCMPEQD[] = {
-    {I_PCMPEQD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24340, 84},
-    {I_PCMPEQD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34672, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCMPEQQ[] = {
-    {I_PCMPEQQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25565, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCMPEQW[] = {
-    {I_PCMPEQW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24347, 84},
-    {I_PCMPEQW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34666, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCMPESTRI[] = {
-    {I_PCMPESTRI, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7914, 171},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCMPESTRM[] = {
-    {I_PCMPESTRM, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7922, 171},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCMPGTB[] = {
-    {I_PCMPGTB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24354, 84},
-    {I_PCMPGTB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34678, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCMPGTD[] = {
-    {I_PCMPGTD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24361, 84},
-    {I_PCMPGTD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34690, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCMPGTQ[] = {
-    {I_PCMPGTQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25740, 171},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCMPGTW[] = {
-    {I_PCMPGTW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24368, 84},
-    {I_PCMPGTW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34684, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCMPISTRI[] = {
-    {I_PCMPISTRI, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7930, 171},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCMPISTRM[] = {
-    {I_PCMPISTRM, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7938, 171},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PCOMMIT[] = {
-    {I_PCOMMIT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35506, 231},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PDEP[] = {
-    {I_PDEP, 3, {REG_GPR|BITS32,REG_GPR|BITS32,RM_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32453, 201},
-    {I_PDEP, 3, {REG_GPR|BITS64,REG_GPR|BITS64,RM_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32460, 202},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PDISTIB[] = {
-    {I_PDISTIB, 2, {MMXREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34937, 89},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PEXT[] = {
-    {I_PEXT, 3, {REG_GPR|BITS32,REG_GPR|BITS32,RM_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32467, 201},
-    {I_PEXT, 3, {REG_GPR|BITS64,REG_GPR|BITS64,RM_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32474, 202},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PEXTRB[] = {
-    {I_PEXTRB, 3, {REG_GPR|BITS32,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+10, 164},
-    {I_PEXTRB, 3, {MEMORY|BITS8,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+10, 164},
-    {I_PEXTRB, 3, {REG_GPR|BITS64,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+9, 165},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PEXTRD[] = {
-    {I_PEXTRD, 3, {RM_GPR|BITS32,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+18, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PEXTRQ[] = {
-    {I_PEXTRQ, 3, {RM_GPR|BITS64,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+27, 165},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PEXTRW[] = {
-    {I_PEXTRW, 3, {REG_GPR|BITS32,MMXREG,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25005, 134},
-    {I_PEXTRW, 3, {REG_GPR|BITS32,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25096, 144},
-    {I_PEXTRW, 3, {REG_GPR|BITS32,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+37, 164},
-    {I_PEXTRW, 3, {MEMORY|BITS16,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+37, 164},
-    {I_PEXTRW, 3, {REG_GPR|BITS64,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+36, 165},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PF2ID[] = {
-    {I_PF2ID, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7298, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PF2IW[] = {
-    {I_PF2IW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7578, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFACC[] = {
-    {I_PFACC, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7306, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFADD[] = {
-    {I_PFADD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7314, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFCMPEQ[] = {
-    {I_PFCMPEQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7322, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFCMPGE[] = {
-    {I_PFCMPGE, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7330, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFCMPGT[] = {
-    {I_PFCMPGT, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7338, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFMAX[] = {
-    {I_PFMAX, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7346, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFMIN[] = {
-    {I_PFMIN, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7354, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFMUL[] = {
-    {I_PFMUL, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7362, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFNACC[] = {
-    {I_PFNACC, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7586, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFPNACC[] = {
-    {I_PFPNACC, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7594, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFRCP[] = {
-    {I_PFRCP, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7370, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFRCPIT1[] = {
-    {I_PFRCPIT1, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7378, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFRCPIT2[] = {
-    {I_PFRCPIT2, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7386, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFRCPV[] = {
-    {I_PFRCPV, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7946, 176},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFRSQIT1[] = {
-    {I_PFRSQIT1, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7394, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFRSQRT[] = {
-    {I_PFRSQRT, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7402, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFRSQRTV[] = {
-    {I_PFRSQRTV, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7954, 176},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFSUB[] = {
-    {I_PFSUB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7410, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PFSUBR[] = {
-    {I_PFSUBR, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7418, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PHADDD[] = {
-    {I_PHADDD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25355, 159},
-    {I_PHADDD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25362, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PHADDSW[] = {
-    {I_PHADDSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25369, 159},
-    {I_PHADDSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25376, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PHADDW[] = {
-    {I_PHADDW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25341, 159},
-    {I_PHADDW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25348, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PHMINPOSUW[] = {
-    {I_PHMINPOSUW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25572, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PHSUBD[] = {
-    {I_PHSUBD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25397, 159},
-    {I_PHSUBD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25404, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PHSUBSW[] = {
-    {I_PHSUBSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25411, 159},
-    {I_PHSUBSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25418, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PHSUBW[] = {
-    {I_PHSUBW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25383, 159},
-    {I_PHSUBW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25390, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PI2FD[] = {
-    {I_PI2FD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7426, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PI2FW[] = {
-    {I_PI2FW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7602, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PINSRB[] = {
-    {I_PINSRB, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+46, 167},
-    {I_PINSRB, 3, {XMM_L16,RM_GPR|BITS8,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+45, 167},
-    {I_PINSRB, 3, {XMM_L16,REG_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+46, 167},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PINSRD[] = {
-    {I_PINSRD, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+54, 167},
-    {I_PINSRD, 3, {XMM_L16,RM_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+54, 167},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PINSRQ[] = {
-    {I_PINSRQ, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+63, 168},
-    {I_PINSRQ, 3, {XMM_L16,RM_GPR|BITS64,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+63, 168},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PINSRW[] = {
-    {I_PINSRW, 3, {MMXREG,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25012, 134},
-    {I_PINSRW, 3, {MMXREG,RM_GPR|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25012, 134},
-    {I_PINSRW, 3, {MMXREG,REG_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25012, 134},
-    {I_PINSRW, 3, {XMM_L16,REG_GPR|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25103, 144},
-    {I_PINSRW, 3, {XMM_L16,REG_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25103, 144},
-    {I_PINSRW, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25103, 144},
-    {I_PINSRW, 3, {XMM_L16,MEMORY|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25103, 144},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMACHRIW[] = {
-    {I_PMACHRIW, 2, {MMXREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35033, 89},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMADDUBSW[] = {
-    {I_PMADDUBSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25425, 159},
-    {I_PMADDUBSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25432, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMADDWD[] = {
-    {I_PMADDWD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24375, 84},
-    {I_PMADDWD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34696, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMAGW[] = {
-    {I_PMAGW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33760, 87},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMAXSB[] = {
-    {I_PMAXSB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25579, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMAXSD[] = {
-    {I_PMAXSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25586, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMAXSW[] = {
-    {I_PMAXSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25019, 133},
-    {I_PMAXSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34702, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMAXUB[] = {
-    {I_PMAXUB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25026, 133},
-    {I_PMAXUB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34708, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMAXUD[] = {
-    {I_PMAXUD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25593, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMAXUW[] = {
-    {I_PMAXUW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25600, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMINSB[] = {
-    {I_PMINSB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25607, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMINSD[] = {
-    {I_PMINSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25614, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMINSW[] = {
-    {I_PMINSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25033, 133},
-    {I_PMINSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34714, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMINUB[] = {
-    {I_PMINUB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25040, 133},
-    {I_PMINUB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34720, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMINUD[] = {
-    {I_PMINUD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25621, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMINUW[] = {
-    {I_PMINUW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25628, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMOVMSKB[] = {
-    {I_PMOVMSKB, 2, {REG_GPR|BITS32,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+34486, 132},
-    {I_PMOVMSKB, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34726, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMOVSXBD[] = {
-    {I_PMOVSXBD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25642, 166},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMOVSXBQ[] = {
-    {I_PMOVSXBQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25649, 170},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMOVSXBW[] = {
-    {I_PMOVSXBW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25635, 169},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMOVSXDQ[] = {
-    {I_PMOVSXDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25670, 169},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMOVSXWD[] = {
-    {I_PMOVSXWD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25656, 169},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMOVSXWQ[] = {
-    {I_PMOVSXWQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25663, 166},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMOVZXBD[] = {
-    {I_PMOVZXBD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25684, 166},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMOVZXBQ[] = {
-    {I_PMOVZXBQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25691, 170},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMOVZXBW[] = {
-    {I_PMOVZXBW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25677, 169},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMOVZXDQ[] = {
-    {I_PMOVZXDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25712, 169},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMOVZXWD[] = {
-    {I_PMOVZXWD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25698, 169},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMOVZXWQ[] = {
-    {I_PMOVZXWQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25705, 166},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMULDQ[] = {
-    {I_PMULDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25719, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMULHRIW[] = {
-    {I_PMULHRIW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33766, 87},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMULHRSW[] = {
-    {I_PMULHRSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25439, 159},
-    {I_PMULHRSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25446, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMULHRWA[] = {
-    {I_PMULHRWA, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7434, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMULHRWC[] = {
-    {I_PMULHRWC, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33772, 87},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMULHUW[] = {
-    {I_PMULHUW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25047, 133},
-    {I_PMULHUW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34732, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMULHW[] = {
-    {I_PMULHW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24382, 84},
-    {I_PMULHW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34738, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMULLD[] = {
-    {I_PMULLD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25726, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMULLW[] = {
-    {I_PMULLW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24389, 84},
-    {I_PMULLW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34744, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMULUDQ[] = {
-    {I_PMULUDQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25110, 137},
-    {I_PMULUDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34750, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMVGEZB[] = {
-    {I_PMVGEZB, 2, {MMXREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35165, 87},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMVLZB[] = {
-    {I_PMVLZB, 2, {MMXREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35021, 87},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMVNZB[] = {
-    {I_PMVNZB, 2, {MMXREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35003, 87},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PMVZB[] = {
-    {I_PMVZB, 2, {MMXREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34925, 87},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_POP[] = {
-    {I_POP, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39137, 0},
-    {I_POP, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39141, 19},
-    {I_POP, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39145, 7},
-    {I_POP, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37751, 0},
-    {I_POP, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37756, 19},
-    {I_POP, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37761, 7},
-    {I_POP, 1, {REG_ES,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+7727, 1},
-    {I_POP, 1, {REG_CS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+3255, 90},
-    {I_POP, 1, {REG_SS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+3381, 1},
-    {I_POP, 1, {REG_DS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+3525, 1},
-    {I_POP, 1, {REG_FS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39149, 5},
-    {I_POP, 1, {REG_GS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39153, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_POPA[] = {
-    {I_POPA, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39157, 18},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_POPAD[] = {
-    {I_POPAD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39161, 19},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_POPAW[] = {
-    {I_POPAW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39165, 18},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_POPCNT[] = {
-    {I_POPCNT, 2, {REG_GPR|BITS16,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25747, 173},
-    {I_POPCNT, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25754, 174},
-    {I_POPCNT, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25761, 175},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_POPF[] = {
-    {I_POPF, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39169, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_POPFD[] = {
-    {I_POPFD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39173, 19},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_POPFQ[] = {
-    {I_POPFQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39173, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_POPFW[] = {
-    {I_POPFW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39177, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_POR[] = {
-    {I_POR, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24396, 84},
-    {I_POR, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34756, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PREFETCH[] = {
-    {I_PREFETCH, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37766, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PREFETCHNTA[] = {
-    {I_PREFETCHNTA, 1, {MEMORY|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35525, 131},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PREFETCHT0[] = {
-    {I_PREFETCHT0, 1, {MEMORY|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35543, 131},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PREFETCHT1[] = {
-    {I_PREFETCHT1, 1, {MEMORY|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35561, 131},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PREFETCHT2[] = {
-    {I_PREFETCHT2, 1, {MEMORY|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35579, 131},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PREFETCHW[] = {
-    {I_PREFETCHW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37771, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PREFETCHWT1[] = {
-    {I_PREFETCHWT1, 1, {MEMORY|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38401, 205},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSADBW[] = {
-    {I_PSADBW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25054, 133},
-    {I_PSADBW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34762, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSHUFB[] = {
-    {I_PSHUFB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25453, 159},
-    {I_PSHUFB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25460, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSHUFD[] = {
-    {I_PSHUFD, 3, {XMM_L16,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25117, 144},
-    {I_PSHUFD, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25117, 145},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSHUFHW[] = {
-    {I_PSHUFHW, 3, {XMM_L16,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25124, 144},
-    {I_PSHUFHW, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25124, 145},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSHUFLW[] = {
-    {I_PSHUFLW, 3, {XMM_L16,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25131, 144},
-    {I_PSHUFLW, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25131, 145},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSHUFW[] = {
-    {I_PSHUFW, 3, {MMXREG,RM_MMX,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7570, 135},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSIGNB[] = {
-    {I_PSIGNB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25467, 159},
-    {I_PSIGNB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25474, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSIGND[] = {
-    {I_PSIGND, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25495, 159},
-    {I_PSIGND, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25502, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSIGNW[] = {
-    {I_PSIGNW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25481, 159},
-    {I_PSIGNW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25488, 160},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSLLD[] = {
-    {I_PSLLD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24403, 84},
-    {I_PSLLD, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24410, 38},
-    {I_PSLLD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34774, 137},
-    {I_PSLLD, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25152, 146},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSLLDQ[] = {
-    {I_PSLLDQ, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25138, 146},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSLLQ[] = {
-    {I_PSLLQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24417, 84},
-    {I_PSLLQ, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24424, 38},
-    {I_PSLLQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34780, 137},
-    {I_PSLLQ, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25159, 146},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSLLW[] = {
-    {I_PSLLW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24431, 84},
-    {I_PSLLW, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24438, 38},
-    {I_PSLLW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34768, 137},
-    {I_PSLLW, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25145, 146},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSRAD[] = {
-    {I_PSRAD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24445, 84},
-    {I_PSRAD, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24452, 38},
-    {I_PSRAD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34792, 137},
-    {I_PSRAD, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25173, 146},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSRAW[] = {
-    {I_PSRAW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24459, 84},
-    {I_PSRAW, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24466, 38},
-    {I_PSRAW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34786, 137},
-    {I_PSRAW, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25166, 146},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSRLD[] = {
-    {I_PSRLD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24473, 84},
-    {I_PSRLD, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24480, 38},
-    {I_PSRLD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34804, 137},
-    {I_PSRLD, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25194, 146},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSRLDQ[] = {
-    {I_PSRLDQ, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25180, 146},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSRLQ[] = {
-    {I_PSRLQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24487, 84},
-    {I_PSRLQ, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24494, 38},
-    {I_PSRLQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34810, 137},
-    {I_PSRLQ, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25201, 146},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSRLW[] = {
-    {I_PSRLW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24501, 84},
-    {I_PSRLW, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24508, 38},
-    {I_PSRLW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34798, 137},
-    {I_PSRLW, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25187, 146},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSUBB[] = {
-    {I_PSUBB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24515, 84},
-    {I_PSUBB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34816, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSUBD[] = {
-    {I_PSUBD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24522, 84},
-    {I_PSUBD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34828, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSUBQ[] = {
-    {I_PSUBQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25208, 137},
-    {I_PSUBQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34834, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSUBSB[] = {
-    {I_PSUBSB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24529, 84},
-    {I_PSUBSB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34840, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSUBSIW[] = {
-    {I_PSUBSIW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33778, 87},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSUBSW[] = {
-    {I_PSUBSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24536, 84},
-    {I_PSUBSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34846, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSUBUSB[] = {
-    {I_PSUBUSB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24543, 84},
-    {I_PSUBUSB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34852, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSUBUSW[] = {
-    {I_PSUBUSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24550, 84},
-    {I_PSUBUSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34858, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSUBW[] = {
-    {I_PSUBW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24557, 84},
-    {I_PSUBW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34822, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PSWAPD[] = {
-    {I_PSWAPD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7610, 88},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PTEST[] = {
-    {I_PTEST, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25733, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUNPCKHBW[] = {
-    {I_PUNPCKHBW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24564, 84},
-    {I_PUNPCKHBW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34864, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUNPCKHDQ[] = {
-    {I_PUNPCKHDQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24571, 84},
-    {I_PUNPCKHDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34876, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUNPCKHQDQ[] = {
-    {I_PUNPCKHQDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34882, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUNPCKHWD[] = {
-    {I_PUNPCKHWD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24578, 84},
-    {I_PUNPCKHWD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34870, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUNPCKLBW[] = {
-    {I_PUNPCKLBW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24585, 84},
-    {I_PUNPCKLBW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34888, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUNPCKLDQ[] = {
-    {I_PUNPCKLDQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24592, 84},
-    {I_PUNPCKLDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34900, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUNPCKLQDQ[] = {
-    {I_PUNPCKLQDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34906, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUNPCKLWD[] = {
-    {I_PUNPCKLWD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24599, 84},
-    {I_PUNPCKLWD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34894, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUSH[] = {
-    {I_PUSH, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39181, 0},
-    {I_PUSH, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39185, 19},
-    {I_PUSH, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39189, 7},
-    {I_PUSH, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37776, 0},
-    {I_PUSH, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37781, 19},
-    {I_PUSH, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37786, 7},
-    {I_PUSH, 1, {REG_ES,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+7695, 1},
-    {I_PUSH, 1, {REG_CS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+3237, 1},
-    {I_PUSH, 1, {REG_SS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+3363, 1},
-    {I_PUSH, 1, {REG_DS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+3507, 1},
-    {I_PUSH, 1, {REG_FS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39193, 5},
-    {I_PUSH, 1, {REG_GS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39197, 5},
-    {I_PUSH, 1, {IMMEDIATE|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37812, 39},
-    {I_PUSH, 1, {SBYTEWORD|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37791, 91},
-    {I_PUSH, 1, {IMMEDIATE|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37796, 91},
-    {I_PUSH, 1, {SBYTEDWORD|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37801, 92},
-    {I_PUSH, 1, {IMMEDIATE|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37806, 92},
-    {I_PUSH, 1, {SBYTEDWORD|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37801, 93},
-    {I_PUSH, 1, {IMMEDIATE|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37806, 93},
-    {I_PUSH, 1, {SBYTEDWORD|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37811, 94},
-    {I_PUSH, 1, {IMMEDIATE|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37816, 94},
-    {I_PUSH, 1, {SBYTEDWORD|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37811, 94},
-    {I_PUSH, 1, {IMMEDIATE|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37816, 94},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUSHA[] = {
-    {I_PUSHA, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39201, 18},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUSHAD[] = {
-    {I_PUSHAD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39205, 19},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUSHAW[] = {
-    {I_PUSHAW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39209, 18},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUSHF[] = {
-    {I_PUSHF, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39213, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUSHFD[] = {
-    {I_PUSHFD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39217, 19},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUSHFQ[] = {
-    {I_PUSHFQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39217, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PUSHFW[] = {
-    {I_PUSHFW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39221, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_PXOR[] = {
-    {I_PXOR, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24606, 84},
-    {I_PXOR, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34912, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RCL[] = {
-    {I_RCL, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39225, 0},
-    {I_RCL, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39229, 0},
-    {I_RCL, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37821, 39},
-    {I_RCL, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37826, 0},
-    {I_RCL, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37831, 0},
-    {I_RCL, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33784, 39},
-    {I_RCL, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37836, 5},
-    {I_RCL, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37841, 5},
-    {I_RCL, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33790, 5},
-    {I_RCL, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37846, 7},
-    {I_RCL, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37851, 7},
-    {I_RCL, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33796, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RCPPS[] = {
-    {I_RCPPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34396, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RCPSS[] = {
-    {I_RCPSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34402, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RCR[] = {
-    {I_RCR, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39233, 0},
-    {I_RCR, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39237, 0},
-    {I_RCR, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37856, 39},
-    {I_RCR, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37861, 0},
-    {I_RCR, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37866, 0},
-    {I_RCR, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33802, 39},
-    {I_RCR, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37871, 5},
-    {I_RCR, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37876, 5},
-    {I_RCR, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33808, 5},
-    {I_RCR, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37881, 7},
-    {I_RCR, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37886, 7},
-    {I_RCR, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33814, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RDFSBASE[] = {
-    {I_RDFSBASE, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29919, 130},
-    {I_RDFSBASE, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29926, 130},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RDGSBASE[] = {
-    {I_RDGSBASE, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29933, 130},
-    {I_RDGSBASE, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29940, 130},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RDM[] = {
-    {I_RDM, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38453, 37},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RDMSR[] = {
-    {I_RDMSR, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39241, 96},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RDPID[] = {
-    {I_RDPID, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+32986, 229},
-    {I_RDPID, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+32985, 228},
-    {I_RDPID, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+32986, 230},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RDPKRU[] = {
-    {I_RDPKRU, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38406, 228},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RDPMC[] = {
-    {I_RDPMC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39245, 86},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RDRAND[] = {
-    {I_RDRAND, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35314, 129},
-    {I_RDRAND, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35320, 129},
-    {I_RDRAND, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35326, 130},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RDSEED[] = {
-    {I_RDSEED, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35332, 129},
-    {I_RDSEED, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35338, 129},
-    {I_RDSEED, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35344, 130},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RDSHR[] = {
-    {I_RDSHR, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33820, 95},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RDTSC[] = {
-    {I_RDTSC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39249, 32},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RDTSCP[] = {
-    {I_RDTSCP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37891, 97},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RESB[] = {
-    {I_RESB, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38563, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RESD[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RESO[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RESQ[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_REST[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RESW[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RESY[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RESZ[] = {
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RET[] = {
-    {I_RET, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38353, 25},
-    {I_RET, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39253, 98},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RETF[] = {
-    {I_RETF, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38378, 0},
-    {I_RETF, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39257, 72},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RETN[] = {
-    {I_RETN, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38353, 25},
-    {I_RETN, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39253, 98},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ROL[] = {
-    {I_ROL, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39261, 0},
-    {I_ROL, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39265, 0},
-    {I_ROL, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37896, 39},
-    {I_ROL, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37901, 0},
-    {I_ROL, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37906, 0},
-    {I_ROL, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33826, 39},
-    {I_ROL, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37911, 5},
-    {I_ROL, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37916, 5},
-    {I_ROL, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33832, 5},
-    {I_ROL, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37921, 7},
-    {I_ROL, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37926, 7},
-    {I_ROL, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33838, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ROR[] = {
-    {I_ROR, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39269, 0},
-    {I_ROR, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39273, 0},
-    {I_ROR, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37931, 39},
-    {I_ROR, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37936, 0},
-    {I_ROR, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37941, 0},
-    {I_ROR, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33844, 39},
-    {I_ROR, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37946, 5},
-    {I_ROR, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37951, 5},
-    {I_ROR, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33850, 5},
-    {I_ROR, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37956, 7},
-    {I_ROR, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37961, 7},
-    {I_ROR, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33856, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RORX[] = {
-    {I_RORX, 3, {REG_GPR|BITS32,RM_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10994, 201},
-    {I_RORX, 3, {REG_GPR|BITS64,RM_GPR|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11002, 202},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ROUNDPD[] = {
-    {I_ROUNDPD, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7850, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ROUNDPS[] = {
-    {I_ROUNDPS, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7858, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ROUNDSD[] = {
-    {I_ROUNDSD, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7866, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_ROUNDSS[] = {
-    {I_ROUNDSS, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7874, 164},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RSDC[] = {
-    {I_RSDC, 2, {REG_SREG,MEMORY|BITS80,0,0,0}, NO_DECORATOR, nasm_bytecodes+35285, 99},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RSLDT[] = {
-    {I_RSLDT, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37966, 99},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RSM[] = {
-    {I_RSM, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39277, 100},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RSQRTPS[] = {
-    {I_RSQRTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34408, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RSQRTSS[] = {
-    {I_RSQRTSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34414, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_RSTS[] = {
-    {I_RSTS, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37971, 99},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SAHF[] = {
-    {I_SAHF, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+7319, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SAL[] = {
-    {I_SAL, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39281, 0},
-    {I_SAL, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39285, 0},
-    {I_SAL, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37976, 39},
-    {I_SAL, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37981, 0},
-    {I_SAL, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37986, 0},
-    {I_SAL, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33862, 39},
-    {I_SAL, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37991, 5},
-    {I_SAL, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37996, 5},
-    {I_SAL, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33868, 5},
-    {I_SAL, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38001, 7},
-    {I_SAL, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38006, 7},
-    {I_SAL, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33874, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SALC[] = {
-    {I_SALC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38398, 101},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SAR[] = {
-    {I_SAR, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39289, 0},
-    {I_SAR, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39293, 0},
-    {I_SAR, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38011, 39},
-    {I_SAR, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38016, 0},
-    {I_SAR, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38021, 0},
-    {I_SAR, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33880, 39},
-    {I_SAR, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38026, 5},
-    {I_SAR, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38031, 5},
-    {I_SAR, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33886, 5},
-    {I_SAR, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38036, 7},
-    {I_SAR, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38041, 7},
-    {I_SAR, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33892, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SARX[] = {
-    {I_SARX, 3, {REG_GPR|BITS32,RM_GPR|BITS32,REG_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32481, 201},
-    {I_SARX, 3, {REG_GPR|BITS64,RM_GPR|BITS64,REG_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32488, 202},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SBB[] = {
-    {I_SBB, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38046, 3},
-    {I_SBB, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38047, 0},
-    {I_SBB, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33898, 3},
-    {I_SBB, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33899, 0},
-    {I_SBB, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33904, 4},
-    {I_SBB, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33905, 5},
-    {I_SBB, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33910, 6},
-    {I_SBB, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33911, 7},
-    {I_SBB, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+26142, 8},
-    {I_SBB, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+26142, 0},
-    {I_SBB, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38051, 8},
-    {I_SBB, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+38051, 0},
-    {I_SBB, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38056, 9},
-    {I_SBB, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+38056, 5},
-    {I_SBB, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38061, 10},
-    {I_SBB, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+38061, 7},
-    {I_SBB, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24613, 11},
-    {I_SBB, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24620, 12},
-    {I_SBB, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24627, 13},
-    {I_SBB, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39297, 8},
-    {I_SBB, 2, {REG_AX,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24614, 8},
-    {I_SBB, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38066, 8},
-    {I_SBB, 2, {REG_EAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24621, 9},
-    {I_SBB, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38071, 9},
-    {I_SBB, 2, {REG_RAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24628, 10},
-    {I_SBB, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38076, 10},
-    {I_SBB, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33916, 3},
-    {I_SBB, 2, {RM_GPR|BITS16,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24613, 3},
-    {I_SBB, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24634, 3},
-    {I_SBB, 2, {RM_GPR|BITS32,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24620, 4},
-    {I_SBB, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24641, 4},
-    {I_SBB, 2, {RM_GPR|BITS64,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24627, 6},
-    {I_SBB, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24648, 6},
-    {I_SBB, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33916, 3},
-    {I_SBB, 2, {MEMORY,SBYTEWORD|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24613, 3},
-    {I_SBB, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24634, 3},
-    {I_SBB, 2, {MEMORY,SBYTEDWORD|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24620, 4},
-    {I_SBB, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24641, 4},
-    {I_SBB, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33922, 14},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SCASB[] = {
-    {I_SCASB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39301, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SCASD[] = {
-    {I_SCASD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38081, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SCASQ[] = {
-    {I_SCASQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38086, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SCASW[] = {
-    {I_SCASW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38091, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SFENCE[] = {
-    {I_SFENCE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33928, 59},
-    {I_SFENCE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33928, 131},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SGDT[] = {
-    {I_SGDT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38096, 102},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHA1MSG1[] = {
-    {I_SHA1MSG1, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35458, 213},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHA1MSG2[] = {
-    {I_SHA1MSG2, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35464, 213},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHA1NEXTE[] = {
-    {I_SHA1NEXTE, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35470, 213},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHA1RNDS4[] = {
-    {I_SHA1RNDS4, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+32978, 213},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHA256MSG1[] = {
-    {I_SHA256MSG1, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35476, 213},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHA256MSG2[] = {
-    {I_SHA256MSG2, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35482, 213},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHA256RNDS2[] = {
-    {I_SHA256RNDS2, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM0,0,0}, NO_DECORATOR, nasm_bytecodes+35488, 213},
-    {I_SHA256RNDS2, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35488, 213},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHL[] = {
-    {I_SHL, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39281, 0},
-    {I_SHL, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39285, 0},
-    {I_SHL, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37976, 39},
-    {I_SHL, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37981, 0},
-    {I_SHL, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37986, 0},
-    {I_SHL, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33862, 39},
-    {I_SHL, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37991, 5},
-    {I_SHL, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37996, 5},
-    {I_SHL, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33868, 5},
-    {I_SHL, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38001, 7},
-    {I_SHL, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38006, 7},
-    {I_SHL, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33874, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHLD[] = {
-    {I_SHLD, 3, {MEMORY,REG_GPR|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24655, 103},
-    {I_SHLD, 3, {REG_GPR|BITS16,REG_GPR|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24655, 103},
-    {I_SHLD, 3, {MEMORY,REG_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24662, 103},
-    {I_SHLD, 3, {REG_GPR|BITS32,REG_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24662, 103},
-    {I_SHLD, 3, {MEMORY,REG_GPR|BITS64,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24669, 104},
-    {I_SHLD, 3, {REG_GPR|BITS64,REG_GPR|BITS64,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24669, 104},
-    {I_SHLD, 3, {MEMORY,REG_GPR|BITS16,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33934, 9},
-    {I_SHLD, 3, {REG_GPR|BITS16,REG_GPR|BITS16,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33934, 5},
-    {I_SHLD, 3, {MEMORY,REG_GPR|BITS32,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33940, 9},
-    {I_SHLD, 3, {REG_GPR|BITS32,REG_GPR|BITS32,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33940, 5},
-    {I_SHLD, 3, {MEMORY,REG_GPR|BITS64,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33946, 10},
-    {I_SHLD, 3, {REG_GPR|BITS64,REG_GPR|BITS64,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33946, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHLX[] = {
-    {I_SHLX, 3, {REG_GPR|BITS32,RM_GPR|BITS32,REG_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32495, 201},
-    {I_SHLX, 3, {REG_GPR|BITS64,RM_GPR|BITS64,REG_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32502, 202},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHR[] = {
-    {I_SHR, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39305, 0},
-    {I_SHR, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39309, 0},
-    {I_SHR, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38101, 39},
-    {I_SHR, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38106, 0},
-    {I_SHR, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38111, 0},
-    {I_SHR, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33952, 39},
-    {I_SHR, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38116, 5},
-    {I_SHR, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38121, 5},
-    {I_SHR, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33958, 5},
-    {I_SHR, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38126, 7},
-    {I_SHR, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38131, 7},
-    {I_SHR, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33964, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHRD[] = {
-    {I_SHRD, 3, {MEMORY,REG_GPR|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24676, 103},
-    {I_SHRD, 3, {REG_GPR|BITS16,REG_GPR|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24676, 103},
-    {I_SHRD, 3, {MEMORY,REG_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24683, 103},
-    {I_SHRD, 3, {REG_GPR|BITS32,REG_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24683, 103},
-    {I_SHRD, 3, {MEMORY,REG_GPR|BITS64,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24690, 104},
-    {I_SHRD, 3, {REG_GPR|BITS64,REG_GPR|BITS64,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24690, 104},
-    {I_SHRD, 3, {MEMORY,REG_GPR|BITS16,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33970, 9},
-    {I_SHRD, 3, {REG_GPR|BITS16,REG_GPR|BITS16,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33970, 5},
-    {I_SHRD, 3, {MEMORY,REG_GPR|BITS32,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33976, 9},
-    {I_SHRD, 3, {REG_GPR|BITS32,REG_GPR|BITS32,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33976, 5},
-    {I_SHRD, 3, {MEMORY,REG_GPR|BITS64,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33982, 10},
-    {I_SHRD, 3, {REG_GPR|BITS64,REG_GPR|BITS64,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33982, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHRX[] = {
-    {I_SHRX, 3, {REG_GPR|BITS32,RM_GPR|BITS32,REG_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32509, 201},
-    {I_SHRX, 3, {REG_GPR|BITS64,RM_GPR|BITS64,REG_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32516, 202},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHUFPD[] = {
-    {I_SHUFPD, 3, {XMM_L16,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25278, 144},
-    {I_SHUFPD, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25278, 150},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SHUFPS[] = {
-    {I_SHUFPS, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+24928, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SIDT[] = {
-    {I_SIDT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38136, 102},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SKINIT[] = {
-    {I_SKINIT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38141, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SLDT[] = {
-    {I_SLDT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34007, 102},
-    {I_SLDT, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34007, 102},
-    {I_SLDT, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33988, 102},
-    {I_SLDT, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33994, 5},
-    {I_SLDT, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34000, 7},
-    {I_SLDT, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34006, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SLWPCB[] = {
-    {I_SLWPCB, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30003, 189},
-    {I_SLWPCB, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30010, 190},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SMI[] = {
-    {I_SMI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39431, 105},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SMINT[] = {
-    {I_SMINT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39313, 37},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SMINTOLD[] = {
-    {I_SMINTOLD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39317, 106},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SMSW[] = {
-    {I_SMSW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34025, 102},
-    {I_SMSW, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34025, 102},
-    {I_SMSW, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34012, 102},
-    {I_SMSW, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34018, 5},
-    {I_SMSW, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34024, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SQRTPD[] = {
-    {I_SQRTPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35146, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SQRTPS[] = {
-    {I_SQRTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34420, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SQRTSD[] = {
-    {I_SQRTSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35152, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SQRTSS[] = {
-    {I_SQRTSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34426, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_STAC[] = {
-    {I_STAC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38376, 188},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_STC[] = {
-    {I_STC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37893, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_STD[] = {
-    {I_STD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39455, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_STGI[] = {
-    {I_STGI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38321, 153},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_STI[] = {
-    {I_STI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37688, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_STMXCSR[] = {
-    {I_STMXCSR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34432, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_STOSB[] = {
-    {I_STOSB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+7423, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_STOSD[] = {
-    {I_STOSD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39321, 5},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_STOSQ[] = {
-    {I_STOSQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39325, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_STOSW[] = {
-    {I_STOSW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39329, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_STR[] = {
-    {I_STR, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34043, 62},
-    {I_STR, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34043, 62},
-    {I_STR, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34030, 62},
-    {I_STR, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34036, 63},
-    {I_STR, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34042, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SUB[] = {
-    {I_SUB, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38146, 3},
-    {I_SUB, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38147, 0},
-    {I_SUB, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34048, 3},
-    {I_SUB, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34049, 0},
-    {I_SUB, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34054, 4},
-    {I_SUB, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34055, 5},
-    {I_SUB, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34060, 6},
-    {I_SUB, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34061, 7},
-    {I_SUB, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+31910, 8},
-    {I_SUB, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31910, 0},
-    {I_SUB, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38151, 8},
-    {I_SUB, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+38151, 0},
-    {I_SUB, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38156, 9},
-    {I_SUB, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+38156, 5},
-    {I_SUB, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38161, 10},
-    {I_SUB, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+38161, 7},
-    {I_SUB, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24697, 11},
-    {I_SUB, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24704, 12},
-    {I_SUB, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24711, 13},
-    {I_SUB, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39333, 8},
-    {I_SUB, 2, {REG_AX,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24698, 8},
-    {I_SUB, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38166, 8},
-    {I_SUB, 2, {REG_EAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24705, 9},
-    {I_SUB, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38171, 9},
-    {I_SUB, 2, {REG_RAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24712, 10},
-    {I_SUB, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38176, 10},
-    {I_SUB, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+34066, 3},
-    {I_SUB, 2, {RM_GPR|BITS16,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24697, 3},
-    {I_SUB, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24718, 3},
-    {I_SUB, 2, {RM_GPR|BITS32,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24704, 4},
-    {I_SUB, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24725, 4},
-    {I_SUB, 2, {RM_GPR|BITS64,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24711, 6},
-    {I_SUB, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24732, 6},
-    {I_SUB, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+34066, 3},
-    {I_SUB, 2, {MEMORY,SBYTEWORD|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24697, 3},
-    {I_SUB, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24718, 3},
-    {I_SUB, 2, {MEMORY,SBYTEDWORD|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24704, 4},
-    {I_SUB, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24725, 4},
-    {I_SUB, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+34072, 14},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SUBPD[] = {
-    {I_SUBPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35158, 137},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SUBPS[] = {
-    {I_SUBPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34438, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SUBSD[] = {
-    {I_SUBSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35164, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SUBSS[] = {
-    {I_SUBSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34444, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SVDC[] = {
-    {I_SVDC, 2, {MEMORY|BITS80,REG_SREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+25287, 99},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SVLDT[] = {
-    {I_SVLDT, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38181, 99},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SVTS[] = {
-    {I_SVTS, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38186, 99},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SWAPGS[] = {
-    {I_SWAPGS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38191, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SYSCALL[] = {
-    {I_SYSCALL, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39061, 107},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SYSENTER[] = {
-    {I_SYSENTER, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39337, 86},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SYSEXIT[] = {
-    {I_SYSEXIT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39341, 108},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SYSRET[] = {
-    {I_SYSRET, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39057, 109},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_T1MSKC[] = {
-    {I_T1MSKC, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32558, 199},
-    {I_T1MSKC, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32565, 200},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_TEST[] = {
-    {I_TEST, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+39345, 8},
-    {I_TEST, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+39345, 0},
-    {I_TEST, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+38196, 8},
-    {I_TEST, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+38196, 0},
-    {I_TEST, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+38201, 9},
-    {I_TEST, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+38201, 5},
-    {I_TEST, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+38206, 10},
-    {I_TEST, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+38206, 7},
-    {I_TEST, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39349, 8},
-    {I_TEST, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38211, 8},
-    {I_TEST, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38216, 9},
-    {I_TEST, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38221, 10},
-    {I_TEST, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39353, 8},
-    {I_TEST, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38226, 8},
-    {I_TEST, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38231, 9},
-    {I_TEST, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38236, 10},
-    {I_TEST, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38241, 8},
-    {I_TEST, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+34078, 8},
-    {I_TEST, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+34084, 9},
-    {I_TEST, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+34090, 10},
-    {I_TEST, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38241, 8},
-    {I_TEST, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34078, 8},
-    {I_TEST, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34084, 9},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_TZCNT[] = {
-    {I_TZCNT, 2, {REG_GPR|BITS16,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32523, 203},
-    {I_TZCNT, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32530, 203},
-    {I_TZCNT, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32537, 204},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_TZMSK[] = {
-    {I_TZMSK, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32544, 199},
-    {I_TZMSK, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32551, 200},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_UCOMISD[] = {
-    {I_UCOMISD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35170, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_UCOMISS[] = {
-    {I_UCOMISS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34450, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_UD0[] = {
-    {I_UD0, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39357, 39},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_UD1[] = {
-    {I_UD1, 2, {REG_GPR,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34096, 39},
-    {I_UD1, 2, {REG_GPR,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34102, 39},
-    {I_UD1, 2, {REG_GPR,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34108, 39},
-    {I_UD1, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39361, 39},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_UD2[] = {
-    {I_UD2, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39365, 39},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_UD2A[] = {
-    {I_UD2A, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39365, 39},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_UD2B[] = {
-    {I_UD2B, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39361, 39},
-    {I_UD2B, 2, {REG_GPR,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34096, 39},
-    {I_UD2B, 2, {REG_GPR,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34102, 39},
-    {I_UD2B, 2, {REG_GPR,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34108, 39},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_UMOV[] = {
-    {I_UMOV, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+34114, 110},
-    {I_UMOV, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+34114, 105},
-    {I_UMOV, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24739, 110},
-    {I_UMOV, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24739, 105},
-    {I_UMOV, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24746, 110},
-    {I_UMOV, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24746, 105},
-    {I_UMOV, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34120, 110},
-    {I_UMOV, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+34120, 105},
-    {I_UMOV, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24753, 110},
-    {I_UMOV, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24753, 105},
-    {I_UMOV, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24760, 110},
-    {I_UMOV, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24760, 105},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_UNPCKHPD[] = {
-    {I_UNPCKHPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35176, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_UNPCKHPS[] = {
-    {I_UNPCKHPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34456, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_UNPCKLPD[] = {
-    {I_UNPCKLPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35182, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_UNPCKLPS[] = {
-    {I_UNPCKLPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34462, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VADDPD[] = {
-    {I_VADDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25866, 179},
-    {I_VADDPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25873, 179},
-    {I_VADDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+25880, 179},
-    {I_VADDPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+25887, 179},
-    {I_VADDPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11074, 214},
-    {I_VADDPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11082, 214},
-    {I_VADDPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11090, 214},
-    {I_VADDPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11098, 214},
-    {I_VADDPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+11106, 215},
-    {I_VADDPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+11114, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VADDPS[] = {
-    {I_VADDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25894, 179},
-    {I_VADDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25901, 179},
-    {I_VADDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+25908, 179},
-    {I_VADDPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+25915, 179},
-    {I_VADDPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11122, 214},
-    {I_VADDPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11130, 214},
-    {I_VADDPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11138, 214},
-    {I_VADDPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11146, 214},
-    {I_VADDPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+11154, 215},
-    {I_VADDPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+11162, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VADDSD[] = {
-    {I_VADDSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+25922, 179},
-    {I_VADDSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25929, 179},
-    {I_VADDSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+11170, 215},
-    {I_VADDSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+11178, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VADDSS[] = {
-    {I_VADDSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+25936, 179},
-    {I_VADDSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25943, 179},
-    {I_VADDSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+11186, 215},
-    {I_VADDSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+11194, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VADDSUBPD[] = {
-    {I_VADDSUBPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25950, 179},
-    {I_VADDSUBPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25957, 179},
-    {I_VADDSUBPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+25964, 179},
-    {I_VADDSUBPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+25971, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VADDSUBPS[] = {
-    {I_VADDSUBPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25978, 179},
-    {I_VADDSUBPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25985, 179},
-    {I_VADDSUBPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+25992, 179},
-    {I_VADDSUBPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+25999, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VAESDEC[] = {
-    {I_VAESDEC, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25831, 179},
-    {I_VAESDEC, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25838, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VAESDECLAST[] = {
-    {I_VAESDECLAST, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25845, 179},
-    {I_VAESDECLAST, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25852, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VAESENC[] = {
-    {I_VAESENC, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25803, 179},
-    {I_VAESENC, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25810, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VAESENCLAST[] = {
-    {I_VAESENCLAST, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25817, 179},
-    {I_VAESENCLAST, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25824, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VAESIMC[] = {
-    {I_VAESIMC, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25859, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VAESKEYGENASSIST[] = {
-    {I_VAESKEYGENASSIST, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8018, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VALIGND[] = {
-    {I_VALIGND, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+3636, 214},
-    {I_VALIGND, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+3645, 214},
-    {I_VALIGND, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+3654, 214},
-    {I_VALIGND, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+3663, 214},
-    {I_VALIGND, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+3672, 215},
-    {I_VALIGND, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+3681, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VALIGNQ[] = {
-    {I_VALIGNQ, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+3690, 214},
-    {I_VALIGNQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+3699, 214},
-    {I_VALIGNQ, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+3708, 214},
-    {I_VALIGNQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+3717, 214},
-    {I_VALIGNQ, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+3726, 215},
-    {I_VALIGNQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+3735, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VANDNPD[] = {
-    {I_VANDNPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26062, 179},
-    {I_VANDNPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26069, 179},
-    {I_VANDNPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26076, 179},
-    {I_VANDNPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26083, 179},
-    {I_VANDNPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11202, 216},
-    {I_VANDNPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11210, 216},
-    {I_VANDNPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11218, 216},
-    {I_VANDNPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11226, 216},
-    {I_VANDNPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11234, 217},
-    {I_VANDNPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11242, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VANDNPS[] = {
-    {I_VANDNPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26090, 179},
-    {I_VANDNPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26097, 179},
-    {I_VANDNPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26104, 179},
-    {I_VANDNPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26111, 179},
-    {I_VANDNPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11250, 216},
-    {I_VANDNPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11258, 216},
-    {I_VANDNPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11266, 216},
-    {I_VANDNPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11274, 216},
-    {I_VANDNPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11282, 217},
-    {I_VANDNPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11290, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VANDPD[] = {
-    {I_VANDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26006, 179},
-    {I_VANDPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26013, 179},
-    {I_VANDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26020, 179},
-    {I_VANDPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26027, 179},
-    {I_VANDPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11298, 216},
-    {I_VANDPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11306, 216},
-    {I_VANDPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11314, 216},
-    {I_VANDPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11322, 216},
-    {I_VANDPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11330, 217},
-    {I_VANDPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11338, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VANDPS[] = {
-    {I_VANDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26034, 179},
-    {I_VANDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26041, 179},
-    {I_VANDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26048, 179},
-    {I_VANDPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26055, 179},
-    {I_VANDPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11346, 216},
-    {I_VANDPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11354, 216},
-    {I_VANDPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11362, 216},
-    {I_VANDPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11370, 216},
-    {I_VANDPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11378, 217},
-    {I_VANDPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11386, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBLENDMPD[] = {
-    {I_VBLENDMPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11394, 214},
-    {I_VBLENDMPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11402, 214},
-    {I_VBLENDMPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11410, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBLENDMPS[] = {
-    {I_VBLENDMPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11418, 214},
-    {I_VBLENDMPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11426, 214},
-    {I_VBLENDMPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11434, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBLENDPD[] = {
-    {I_VBLENDPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8026, 179},
-    {I_VBLENDPD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8034, 179},
-    {I_VBLENDPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8042, 179},
-    {I_VBLENDPD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8050, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBLENDPS[] = {
-    {I_VBLENDPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8058, 179},
-    {I_VBLENDPS, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8066, 179},
-    {I_VBLENDPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8074, 179},
-    {I_VBLENDPS, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8082, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBLENDVPD[] = {
-    {I_VBLENDVPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+8090, 179},
-    {I_VBLENDVPD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+8098, 179},
-    {I_VBLENDVPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+8106, 179},
-    {I_VBLENDVPD, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+8114, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBLENDVPS[] = {
-    {I_VBLENDVPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+8122, 179},
-    {I_VBLENDVPS, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+8130, 179},
-    {I_VBLENDVPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+8138, 179},
-    {I_VBLENDVPS, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+8146, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBROADCASTF128[] = {
-    {I_VBROADCASTF128, 2, {YMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26139, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBROADCASTF32X2[] = {
-    {I_VBROADCASTF32X2, 2, {YMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11442, 216},
-    {I_VBROADCASTF32X2, 2, {ZMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11450, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBROADCASTF32X4[] = {
-    {I_VBROADCASTF32X4, 2, {YMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11458, 214},
-    {I_VBROADCASTF32X4, 2, {ZMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11466, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBROADCASTF32X8[] = {
-    {I_VBROADCASTF32X8, 2, {ZMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11474, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBROADCASTF64X2[] = {
-    {I_VBROADCASTF64X2, 2, {YMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11482, 216},
-    {I_VBROADCASTF64X2, 2, {ZMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11490, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBROADCASTF64X4[] = {
-    {I_VBROADCASTF64X4, 2, {ZMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11498, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBROADCASTI128[] = {
-    {I_VBROADCASTI128, 2, {YMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31914, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBROADCASTI32X2[] = {
-    {I_VBROADCASTI32X2, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11506, 216},
-    {I_VBROADCASTI32X2, 2, {YMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11514, 216},
-    {I_VBROADCASTI32X2, 2, {ZMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11522, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBROADCASTI32X4[] = {
-    {I_VBROADCASTI32X4, 2, {YMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11530, 214},
-    {I_VBROADCASTI32X4, 2, {ZMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11538, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBROADCASTI32X8[] = {
-    {I_VBROADCASTI32X8, 2, {ZMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11546, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBROADCASTI64X2[] = {
-    {I_VBROADCASTI64X2, 2, {YMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11554, 216},
-    {I_VBROADCASTI64X2, 2, {ZMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11562, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBROADCASTI64X4[] = {
-    {I_VBROADCASTI64X4, 2, {ZMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11570, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBROADCASTSD[] = {
-    {I_VBROADCASTSD, 2, {YMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26132, 179},
-    {I_VBROADCASTSD, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26132, 192},
-    {I_VBROADCASTSD, 2, {YMMREG,MEMORY|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11578, 214},
-    {I_VBROADCASTSD, 2, {ZMMREG,MEMORY|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11586, 215},
-    {I_VBROADCASTSD, 2, {YMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11594, 214},
-    {I_VBROADCASTSD, 2, {ZMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11602, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VBROADCASTSS[] = {
-    {I_VBROADCASTSS, 2, {XMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26118, 179},
-    {I_VBROADCASTSS, 2, {YMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26125, 179},
-    {I_VBROADCASTSS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26118, 192},
-    {I_VBROADCASTSS, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26125, 192},
-    {I_VBROADCASTSS, 2, {XMMREG,MEMORY|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11610, 214},
-    {I_VBROADCASTSS, 2, {YMMREG,MEMORY|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11618, 214},
-    {I_VBROADCASTSS, 2, {ZMMREG,MEMORY|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11626, 215},
-    {I_VBROADCASTSS, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11634, 214},
-    {I_VBROADCASTSS, 2, {YMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11642, 214},
-    {I_VBROADCASTSS, 2, {ZMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11650, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQPD[] = {
-    {I_VCMPEQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+108, 179},
-    {I_VCMPEQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+117, 179},
-    {I_VCMPEQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+126, 179},
-    {I_VCMPEQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+135, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQPS[] = {
-    {I_VCMPEQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1260, 179},
-    {I_VCMPEQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1269, 179},
-    {I_VCMPEQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1278, 179},
-    {I_VCMPEQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1287, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQSD[] = {
-    {I_VCMPEQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2394, 179},
-    {I_VCMPEQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2403, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQSS[] = {
-    {I_VCMPEQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2970, 179},
-    {I_VCMPEQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2979, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQ_OSPD[] = {
-    {I_VCMPEQ_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+72, 179},
-    {I_VCMPEQ_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+81, 179},
-    {I_VCMPEQ_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+90, 179},
-    {I_VCMPEQ_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+99, 179},
-    {I_VCMPEQ_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+72, 179},
-    {I_VCMPEQ_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+81, 179},
-    {I_VCMPEQ_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+90, 179},
-    {I_VCMPEQ_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+99, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQ_OSPS[] = {
-    {I_VCMPEQ_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1224, 179},
-    {I_VCMPEQ_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1233, 179},
-    {I_VCMPEQ_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1242, 179},
-    {I_VCMPEQ_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1251, 179},
-    {I_VCMPEQ_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1224, 179},
-    {I_VCMPEQ_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1233, 179},
-    {I_VCMPEQ_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1242, 179},
-    {I_VCMPEQ_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1251, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQ_OSSD[] = {
-    {I_VCMPEQ_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2376, 179},
-    {I_VCMPEQ_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2385, 179},
-    {I_VCMPEQ_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2376, 179},
-    {I_VCMPEQ_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2385, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQ_OSSS[] = {
-    {I_VCMPEQ_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2952, 179},
-    {I_VCMPEQ_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2961, 179},
-    {I_VCMPEQ_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2952, 179},
-    {I_VCMPEQ_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2961, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQ_UQPD[] = {
-    {I_VCMPEQ_UQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+396, 179},
-    {I_VCMPEQ_UQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+405, 179},
-    {I_VCMPEQ_UQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+414, 179},
-    {I_VCMPEQ_UQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+423, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQ_UQPS[] = {
-    {I_VCMPEQ_UQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1548, 179},
-    {I_VCMPEQ_UQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1557, 179},
-    {I_VCMPEQ_UQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1566, 179},
-    {I_VCMPEQ_UQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1575, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQ_UQSD[] = {
-    {I_VCMPEQ_UQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2538, 179},
-    {I_VCMPEQ_UQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2547, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQ_UQSS[] = {
-    {I_VCMPEQ_UQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3114, 179},
-    {I_VCMPEQ_UQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3123, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQ_USPD[] = {
-    {I_VCMPEQ_USPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+936, 179},
-    {I_VCMPEQ_USPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+945, 179},
-    {I_VCMPEQ_USPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+954, 179},
-    {I_VCMPEQ_USPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+963, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQ_USPS[] = {
-    {I_VCMPEQ_USPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2088, 179},
-    {I_VCMPEQ_USPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2097, 179},
-    {I_VCMPEQ_USPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2106, 179},
-    {I_VCMPEQ_USPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2115, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQ_USSD[] = {
-    {I_VCMPEQ_USSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2808, 179},
-    {I_VCMPEQ_USSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2817, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPEQ_USSS[] = {
-    {I_VCMPEQ_USSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3384, 179},
-    {I_VCMPEQ_USSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3393, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPFALSEPD[] = {
-    {I_VCMPFALSEPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+504, 179},
-    {I_VCMPFALSEPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+513, 179},
-    {I_VCMPFALSEPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+522, 179},
-    {I_VCMPFALSEPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+531, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPFALSEPS[] = {
-    {I_VCMPFALSEPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1656, 179},
-    {I_VCMPFALSEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1665, 179},
-    {I_VCMPFALSEPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1674, 179},
-    {I_VCMPFALSEPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1683, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPFALSESD[] = {
-    {I_VCMPFALSESD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2592, 179},
-    {I_VCMPFALSESD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2601, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPFALSESS[] = {
-    {I_VCMPFALSESS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3168, 179},
-    {I_VCMPFALSESS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3177, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPFALSE_OQPD[] = {
-    {I_VCMPFALSE_OQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+504, 179},
-    {I_VCMPFALSE_OQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+513, 179},
-    {I_VCMPFALSE_OQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+522, 179},
-    {I_VCMPFALSE_OQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+531, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPFALSE_OQPS[] = {
-    {I_VCMPFALSE_OQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1656, 179},
-    {I_VCMPFALSE_OQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1665, 179},
-    {I_VCMPFALSE_OQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1674, 179},
-    {I_VCMPFALSE_OQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1683, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPFALSE_OQSD[] = {
-    {I_VCMPFALSE_OQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2592, 179},
-    {I_VCMPFALSE_OQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2601, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPFALSE_OQSS[] = {
-    {I_VCMPFALSE_OQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3168, 179},
-    {I_VCMPFALSE_OQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3177, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPFALSE_OSPD[] = {
-    {I_VCMPFALSE_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1044, 179},
-    {I_VCMPFALSE_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1053, 179},
-    {I_VCMPFALSE_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1062, 179},
-    {I_VCMPFALSE_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1071, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPFALSE_OSPS[] = {
-    {I_VCMPFALSE_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2196, 179},
-    {I_VCMPFALSE_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2205, 179},
-    {I_VCMPFALSE_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2214, 179},
-    {I_VCMPFALSE_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2223, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPFALSE_OSSD[] = {
-    {I_VCMPFALSE_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2862, 179},
-    {I_VCMPFALSE_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2871, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPFALSE_OSSS[] = {
-    {I_VCMPFALSE_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3438, 179},
-    {I_VCMPFALSE_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3447, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGEPD[] = {
-    {I_VCMPGEPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+576, 179},
-    {I_VCMPGEPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+585, 179},
-    {I_VCMPGEPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+594, 179},
-    {I_VCMPGEPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+603, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGEPS[] = {
-    {I_VCMPGEPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1728, 179},
-    {I_VCMPGEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1737, 179},
-    {I_VCMPGEPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1746, 179},
-    {I_VCMPGEPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1755, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGESD[] = {
-    {I_VCMPGESD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2628, 179},
-    {I_VCMPGESD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2637, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGESS[] = {
-    {I_VCMPGESS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3204, 179},
-    {I_VCMPGESS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3213, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGE_OQPD[] = {
-    {I_VCMPGE_OQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1116, 179},
-    {I_VCMPGE_OQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1125, 179},
-    {I_VCMPGE_OQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1134, 179},
-    {I_VCMPGE_OQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1143, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGE_OQPS[] = {
-    {I_VCMPGE_OQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2268, 179},
-    {I_VCMPGE_OQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2277, 179},
-    {I_VCMPGE_OQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2286, 179},
-    {I_VCMPGE_OQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2295, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGE_OQSD[] = {
-    {I_VCMPGE_OQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2898, 179},
-    {I_VCMPGE_OQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2907, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGE_OQSS[] = {
-    {I_VCMPGE_OQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3474, 179},
-    {I_VCMPGE_OQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3483, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGE_OSPD[] = {
-    {I_VCMPGE_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+576, 179},
-    {I_VCMPGE_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+585, 179},
-    {I_VCMPGE_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+594, 179},
-    {I_VCMPGE_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+603, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGE_OSPS[] = {
-    {I_VCMPGE_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1728, 179},
-    {I_VCMPGE_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1737, 179},
-    {I_VCMPGE_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1746, 179},
-    {I_VCMPGE_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1755, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGE_OSSD[] = {
-    {I_VCMPGE_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2628, 179},
-    {I_VCMPGE_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2637, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGE_OSSS[] = {
-    {I_VCMPGE_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3204, 179},
-    {I_VCMPGE_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3213, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGTPD[] = {
-    {I_VCMPGTPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+612, 179},
-    {I_VCMPGTPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+621, 179},
-    {I_VCMPGTPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+630, 179},
-    {I_VCMPGTPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+639, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGTPS[] = {
-    {I_VCMPGTPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1764, 179},
-    {I_VCMPGTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1773, 179},
-    {I_VCMPGTPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1782, 179},
-    {I_VCMPGTPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1791, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGTSD[] = {
-    {I_VCMPGTSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2646, 179},
-    {I_VCMPGTSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2655, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGTSS[] = {
-    {I_VCMPGTSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3222, 179},
-    {I_VCMPGTSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3231, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGT_OQPD[] = {
-    {I_VCMPGT_OQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1152, 179},
-    {I_VCMPGT_OQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1161, 179},
-    {I_VCMPGT_OQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1170, 179},
-    {I_VCMPGT_OQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1179, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGT_OQPS[] = {
-    {I_VCMPGT_OQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2304, 179},
-    {I_VCMPGT_OQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2313, 179},
-    {I_VCMPGT_OQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2322, 179},
-    {I_VCMPGT_OQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2331, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGT_OQSD[] = {
-    {I_VCMPGT_OQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2916, 179},
-    {I_VCMPGT_OQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2925, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGT_OQSS[] = {
-    {I_VCMPGT_OQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3492, 179},
-    {I_VCMPGT_OQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3501, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGT_OSPD[] = {
-    {I_VCMPGT_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+612, 179},
-    {I_VCMPGT_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+621, 179},
-    {I_VCMPGT_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+630, 179},
-    {I_VCMPGT_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+639, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGT_OSPS[] = {
-    {I_VCMPGT_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1764, 179},
-    {I_VCMPGT_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1773, 179},
-    {I_VCMPGT_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1782, 179},
-    {I_VCMPGT_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1791, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGT_OSSD[] = {
-    {I_VCMPGT_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2646, 179},
-    {I_VCMPGT_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2655, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPGT_OSSS[] = {
-    {I_VCMPGT_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3222, 179},
-    {I_VCMPGT_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3231, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLEPD[] = {
-    {I_VCMPLEPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+180, 179},
-    {I_VCMPLEPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+189, 179},
-    {I_VCMPLEPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+198, 179},
-    {I_VCMPLEPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+207, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLEPS[] = {
-    {I_VCMPLEPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1332, 179},
-    {I_VCMPLEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1341, 179},
-    {I_VCMPLEPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1350, 179},
-    {I_VCMPLEPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1359, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLESD[] = {
-    {I_VCMPLESD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2430, 179},
-    {I_VCMPLESD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2439, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLESS[] = {
-    {I_VCMPLESS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3006, 179},
-    {I_VCMPLESS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3015, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLE_OQPD[] = {
-    {I_VCMPLE_OQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+720, 179},
-    {I_VCMPLE_OQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+729, 179},
-    {I_VCMPLE_OQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+738, 179},
-    {I_VCMPLE_OQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+747, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLE_OQPS[] = {
-    {I_VCMPLE_OQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1872, 179},
-    {I_VCMPLE_OQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1881, 179},
-    {I_VCMPLE_OQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1890, 179},
-    {I_VCMPLE_OQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1899, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLE_OQSD[] = {
-    {I_VCMPLE_OQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2700, 179},
-    {I_VCMPLE_OQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2709, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLE_OQSS[] = {
-    {I_VCMPLE_OQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3276, 179},
-    {I_VCMPLE_OQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3285, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLE_OSPD[] = {
-    {I_VCMPLE_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+180, 179},
-    {I_VCMPLE_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+189, 179},
-    {I_VCMPLE_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+198, 179},
-    {I_VCMPLE_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+207, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLE_OSPS[] = {
-    {I_VCMPLE_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1332, 179},
-    {I_VCMPLE_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1341, 179},
-    {I_VCMPLE_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1350, 179},
-    {I_VCMPLE_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1359, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLE_OSSD[] = {
-    {I_VCMPLE_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2430, 179},
-    {I_VCMPLE_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2439, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLE_OSSS[] = {
-    {I_VCMPLE_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3006, 179},
-    {I_VCMPLE_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3015, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLTPD[] = {
-    {I_VCMPLTPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+144, 179},
-    {I_VCMPLTPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+153, 179},
-    {I_VCMPLTPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+162, 179},
-    {I_VCMPLTPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+171, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLTPS[] = {
-    {I_VCMPLTPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1296, 179},
-    {I_VCMPLTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1305, 179},
-    {I_VCMPLTPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1314, 179},
-    {I_VCMPLTPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1323, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLTSD[] = {
-    {I_VCMPLTSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2412, 179},
-    {I_VCMPLTSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2421, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLTSS[] = {
-    {I_VCMPLTSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2988, 179},
-    {I_VCMPLTSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2997, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLT_OQPD[] = {
-    {I_VCMPLT_OQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+684, 179},
-    {I_VCMPLT_OQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+693, 179},
-    {I_VCMPLT_OQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+702, 179},
-    {I_VCMPLT_OQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+711, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLT_OQPS[] = {
-    {I_VCMPLT_OQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1836, 179},
-    {I_VCMPLT_OQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1845, 179},
-    {I_VCMPLT_OQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1854, 179},
-    {I_VCMPLT_OQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1863, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLT_OQSD[] = {
-    {I_VCMPLT_OQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2682, 179},
-    {I_VCMPLT_OQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2691, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLT_OQSS[] = {
-    {I_VCMPLT_OQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3258, 179},
-    {I_VCMPLT_OQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3267, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLT_OSPD[] = {
-    {I_VCMPLT_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+144, 179},
-    {I_VCMPLT_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+153, 179},
-    {I_VCMPLT_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+162, 179},
-    {I_VCMPLT_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+171, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLT_OSPS[] = {
-    {I_VCMPLT_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1296, 179},
-    {I_VCMPLT_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1305, 179},
-    {I_VCMPLT_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1314, 179},
-    {I_VCMPLT_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1323, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLT_OSSD[] = {
-    {I_VCMPLT_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2412, 179},
-    {I_VCMPLT_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2421, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPLT_OSSS[] = {
-    {I_VCMPLT_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2988, 179},
-    {I_VCMPLT_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2997, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQPD[] = {
-    {I_VCMPNEQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+252, 179},
-    {I_VCMPNEQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+261, 179},
-    {I_VCMPNEQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+270, 179},
-    {I_VCMPNEQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+279, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQPS[] = {
-    {I_VCMPNEQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1404, 179},
-    {I_VCMPNEQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1413, 179},
-    {I_VCMPNEQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1422, 179},
-    {I_VCMPNEQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1431, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQSD[] = {
-    {I_VCMPNEQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2466, 179},
-    {I_VCMPNEQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2475, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQSS[] = {
-    {I_VCMPNEQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3042, 179},
-    {I_VCMPNEQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3051, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_OQPD[] = {
-    {I_VCMPNEQ_OQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+540, 179},
-    {I_VCMPNEQ_OQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+549, 179},
-    {I_VCMPNEQ_OQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+558, 179},
-    {I_VCMPNEQ_OQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+567, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_OQPS[] = {
-    {I_VCMPNEQ_OQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1692, 179},
-    {I_VCMPNEQ_OQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1701, 179},
-    {I_VCMPNEQ_OQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1710, 179},
-    {I_VCMPNEQ_OQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1719, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_OQSD[] = {
-    {I_VCMPNEQ_OQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2610, 179},
-    {I_VCMPNEQ_OQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2619, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_OQSS[] = {
-    {I_VCMPNEQ_OQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3186, 179},
-    {I_VCMPNEQ_OQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3195, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_OSPD[] = {
-    {I_VCMPNEQ_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1080, 179},
-    {I_VCMPNEQ_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1089, 179},
-    {I_VCMPNEQ_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1098, 179},
-    {I_VCMPNEQ_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1107, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_OSPS[] = {
-    {I_VCMPNEQ_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2232, 179},
-    {I_VCMPNEQ_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2241, 179},
-    {I_VCMPNEQ_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2250, 179},
-    {I_VCMPNEQ_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2259, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_OSSD[] = {
-    {I_VCMPNEQ_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2880, 179},
-    {I_VCMPNEQ_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2889, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_OSSS[] = {
-    {I_VCMPNEQ_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3456, 179},
-    {I_VCMPNEQ_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3465, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_UQPD[] = {
-    {I_VCMPNEQ_UQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+252, 179},
-    {I_VCMPNEQ_UQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+261, 179},
-    {I_VCMPNEQ_UQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+270, 179},
-    {I_VCMPNEQ_UQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+279, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_UQPS[] = {
-    {I_VCMPNEQ_UQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1404, 179},
-    {I_VCMPNEQ_UQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1413, 179},
-    {I_VCMPNEQ_UQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1422, 179},
-    {I_VCMPNEQ_UQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1431, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_UQSD[] = {
-    {I_VCMPNEQ_UQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2466, 179},
-    {I_VCMPNEQ_UQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2475, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_UQSS[] = {
-    {I_VCMPNEQ_UQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3042, 179},
-    {I_VCMPNEQ_UQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3051, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_USPD[] = {
-    {I_VCMPNEQ_USPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+792, 179},
-    {I_VCMPNEQ_USPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+801, 179},
-    {I_VCMPNEQ_USPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+810, 179},
-    {I_VCMPNEQ_USPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+819, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_USPS[] = {
-    {I_VCMPNEQ_USPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1944, 179},
-    {I_VCMPNEQ_USPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1953, 179},
-    {I_VCMPNEQ_USPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1962, 179},
-    {I_VCMPNEQ_USPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1971, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_USSD[] = {
-    {I_VCMPNEQ_USSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2736, 179},
-    {I_VCMPNEQ_USSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2745, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNEQ_USSS[] = {
-    {I_VCMPNEQ_USSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3312, 179},
-    {I_VCMPNEQ_USSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3321, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGEPD[] = {
-    {I_VCMPNGEPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+432, 179},
-    {I_VCMPNGEPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+441, 179},
-    {I_VCMPNGEPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+450, 179},
-    {I_VCMPNGEPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+459, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGEPS[] = {
-    {I_VCMPNGEPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1584, 179},
-    {I_VCMPNGEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1593, 179},
-    {I_VCMPNGEPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1602, 179},
-    {I_VCMPNGEPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1611, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGESD[] = {
-    {I_VCMPNGESD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2556, 179},
-    {I_VCMPNGESD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2565, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGESS[] = {
-    {I_VCMPNGESS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3132, 179},
-    {I_VCMPNGESS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3141, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGE_UQPD[] = {
-    {I_VCMPNGE_UQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+972, 179},
-    {I_VCMPNGE_UQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+981, 179},
-    {I_VCMPNGE_UQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+990, 179},
-    {I_VCMPNGE_UQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+999, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGE_UQPS[] = {
-    {I_VCMPNGE_UQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2124, 179},
-    {I_VCMPNGE_UQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2133, 179},
-    {I_VCMPNGE_UQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2142, 179},
-    {I_VCMPNGE_UQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2151, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGE_UQSD[] = {
-    {I_VCMPNGE_UQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2826, 179},
-    {I_VCMPNGE_UQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2835, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGE_UQSS[] = {
-    {I_VCMPNGE_UQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3402, 179},
-    {I_VCMPNGE_UQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3411, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGE_USPD[] = {
-    {I_VCMPNGE_USPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+432, 179},
-    {I_VCMPNGE_USPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+441, 179},
-    {I_VCMPNGE_USPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+450, 179},
-    {I_VCMPNGE_USPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+459, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGE_USPS[] = {
-    {I_VCMPNGE_USPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1584, 179},
-    {I_VCMPNGE_USPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1593, 179},
-    {I_VCMPNGE_USPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1602, 179},
-    {I_VCMPNGE_USPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1611, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGE_USSD[] = {
-    {I_VCMPNGE_USSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2556, 179},
-    {I_VCMPNGE_USSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2565, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGE_USSS[] = {
-    {I_VCMPNGE_USSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3132, 179},
-    {I_VCMPNGE_USSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3141, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGTPD[] = {
-    {I_VCMPNGTPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+468, 179},
-    {I_VCMPNGTPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+477, 179},
-    {I_VCMPNGTPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+486, 179},
-    {I_VCMPNGTPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+495, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGTPS[] = {
-    {I_VCMPNGTPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1620, 179},
-    {I_VCMPNGTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1629, 179},
-    {I_VCMPNGTPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1638, 179},
-    {I_VCMPNGTPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1647, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGTSD[] = {
-    {I_VCMPNGTSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2574, 179},
-    {I_VCMPNGTSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2583, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGTSS[] = {
-    {I_VCMPNGTSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3150, 179},
-    {I_VCMPNGTSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3159, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGT_UQPD[] = {
-    {I_VCMPNGT_UQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1008, 179},
-    {I_VCMPNGT_UQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1017, 179},
-    {I_VCMPNGT_UQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1026, 179},
-    {I_VCMPNGT_UQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1035, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGT_UQPS[] = {
-    {I_VCMPNGT_UQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2160, 179},
-    {I_VCMPNGT_UQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2169, 179},
-    {I_VCMPNGT_UQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2178, 179},
-    {I_VCMPNGT_UQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2187, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGT_UQSD[] = {
-    {I_VCMPNGT_UQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2844, 179},
-    {I_VCMPNGT_UQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2853, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGT_UQSS[] = {
-    {I_VCMPNGT_UQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3420, 179},
-    {I_VCMPNGT_UQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3429, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGT_USPD[] = {
-    {I_VCMPNGT_USPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+468, 179},
-    {I_VCMPNGT_USPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+477, 179},
-    {I_VCMPNGT_USPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+486, 179},
-    {I_VCMPNGT_USPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+495, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGT_USPS[] = {
-    {I_VCMPNGT_USPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1620, 179},
-    {I_VCMPNGT_USPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1629, 179},
-    {I_VCMPNGT_USPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1638, 179},
-    {I_VCMPNGT_USPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1647, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGT_USSD[] = {
-    {I_VCMPNGT_USSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2574, 179},
-    {I_VCMPNGT_USSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2583, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNGT_USSS[] = {
-    {I_VCMPNGT_USSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3150, 179},
-    {I_VCMPNGT_USSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3159, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLEPD[] = {
-    {I_VCMPNLEPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+324, 179},
-    {I_VCMPNLEPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+333, 179},
-    {I_VCMPNLEPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+342, 179},
-    {I_VCMPNLEPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+351, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLEPS[] = {
-    {I_VCMPNLEPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1476, 179},
-    {I_VCMPNLEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1485, 179},
-    {I_VCMPNLEPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1494, 179},
-    {I_VCMPNLEPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1503, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLESD[] = {
-    {I_VCMPNLESD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2502, 179},
-    {I_VCMPNLESD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2511, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLESS[] = {
-    {I_VCMPNLESS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3078, 179},
-    {I_VCMPNLESS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3087, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLE_UQPD[] = {
-    {I_VCMPNLE_UQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+864, 179},
-    {I_VCMPNLE_UQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+873, 179},
-    {I_VCMPNLE_UQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+882, 179},
-    {I_VCMPNLE_UQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+891, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLE_UQPS[] = {
-    {I_VCMPNLE_UQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2016, 179},
-    {I_VCMPNLE_UQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2025, 179},
-    {I_VCMPNLE_UQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2034, 179},
-    {I_VCMPNLE_UQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2043, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLE_UQSD[] = {
-    {I_VCMPNLE_UQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2772, 179},
-    {I_VCMPNLE_UQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2781, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLE_UQSS[] = {
-    {I_VCMPNLE_UQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3348, 179},
-    {I_VCMPNLE_UQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3357, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLE_USPD[] = {
-    {I_VCMPNLE_USPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+324, 179},
-    {I_VCMPNLE_USPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+333, 179},
-    {I_VCMPNLE_USPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+342, 179},
-    {I_VCMPNLE_USPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+351, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLE_USPS[] = {
-    {I_VCMPNLE_USPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1476, 179},
-    {I_VCMPNLE_USPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1485, 179},
-    {I_VCMPNLE_USPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1494, 179},
-    {I_VCMPNLE_USPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1503, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLE_USSD[] = {
-    {I_VCMPNLE_USSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2502, 179},
-    {I_VCMPNLE_USSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2511, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLE_USSS[] = {
-    {I_VCMPNLE_USSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3078, 179},
-    {I_VCMPNLE_USSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3087, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLTPD[] = {
-    {I_VCMPNLTPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+288, 179},
-    {I_VCMPNLTPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+297, 179},
-    {I_VCMPNLTPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+306, 179},
-    {I_VCMPNLTPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+315, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLTPS[] = {
-    {I_VCMPNLTPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1440, 179},
-    {I_VCMPNLTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1449, 179},
-    {I_VCMPNLTPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1458, 179},
-    {I_VCMPNLTPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1467, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLTSD[] = {
-    {I_VCMPNLTSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2484, 179},
-    {I_VCMPNLTSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2493, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLTSS[] = {
-    {I_VCMPNLTSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3060, 179},
-    {I_VCMPNLTSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3069, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLT_UQPD[] = {
-    {I_VCMPNLT_UQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+828, 179},
-    {I_VCMPNLT_UQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+837, 179},
-    {I_VCMPNLT_UQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+846, 179},
-    {I_VCMPNLT_UQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+855, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLT_UQPS[] = {
-    {I_VCMPNLT_UQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1980, 179},
-    {I_VCMPNLT_UQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1989, 179},
-    {I_VCMPNLT_UQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1998, 179},
-    {I_VCMPNLT_UQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2007, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLT_UQSD[] = {
-    {I_VCMPNLT_UQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2754, 179},
-    {I_VCMPNLT_UQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2763, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLT_UQSS[] = {
-    {I_VCMPNLT_UQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3330, 179},
-    {I_VCMPNLT_UQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3339, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLT_USPD[] = {
-    {I_VCMPNLT_USPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+288, 179},
-    {I_VCMPNLT_USPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+297, 179},
-    {I_VCMPNLT_USPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+306, 179},
-    {I_VCMPNLT_USPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+315, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLT_USPS[] = {
-    {I_VCMPNLT_USPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1440, 179},
-    {I_VCMPNLT_USPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1449, 179},
-    {I_VCMPNLT_USPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1458, 179},
-    {I_VCMPNLT_USPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1467, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLT_USSD[] = {
-    {I_VCMPNLT_USSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2484, 179},
-    {I_VCMPNLT_USSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2493, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPNLT_USSS[] = {
-    {I_VCMPNLT_USSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3060, 179},
-    {I_VCMPNLT_USSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3069, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPORDPD[] = {
-    {I_VCMPORDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+360, 179},
-    {I_VCMPORDPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+369, 179},
-    {I_VCMPORDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+378, 179},
-    {I_VCMPORDPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+387, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPORDPS[] = {
-    {I_VCMPORDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1512, 179},
-    {I_VCMPORDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1521, 179},
-    {I_VCMPORDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1530, 179},
-    {I_VCMPORDPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1539, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPORDSD[] = {
-    {I_VCMPORDSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2520, 179},
-    {I_VCMPORDSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2529, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPORDSS[] = {
-    {I_VCMPORDSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3096, 179},
-    {I_VCMPORDSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3105, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPORD_QPD[] = {
-    {I_VCMPORD_QPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+360, 179},
-    {I_VCMPORD_QPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+369, 179},
-    {I_VCMPORD_QPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+378, 179},
-    {I_VCMPORD_QPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+387, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPORD_QPS[] = {
-    {I_VCMPORD_QPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1512, 179},
-    {I_VCMPORD_QPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1521, 179},
-    {I_VCMPORD_QPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1530, 179},
-    {I_VCMPORD_QPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1539, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPORD_QSD[] = {
-    {I_VCMPORD_QSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2520, 179},
-    {I_VCMPORD_QSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2529, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPORD_QSS[] = {
-    {I_VCMPORD_QSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3096, 179},
-    {I_VCMPORD_QSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3105, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPORD_SPD[] = {
-    {I_VCMPORD_SPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+900, 179},
-    {I_VCMPORD_SPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+909, 179},
-    {I_VCMPORD_SPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+918, 179},
-    {I_VCMPORD_SPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+927, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPORD_SPS[] = {
-    {I_VCMPORD_SPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2052, 179},
-    {I_VCMPORD_SPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2061, 179},
-    {I_VCMPORD_SPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2070, 179},
-    {I_VCMPORD_SPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2079, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPORD_SSD[] = {
-    {I_VCMPORD_SSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2790, 179},
-    {I_VCMPORD_SSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2799, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPORD_SSS[] = {
-    {I_VCMPORD_SSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3366, 179},
-    {I_VCMPORD_SSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3375, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPPD[] = {
-    {I_VCMPPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8154, 179},
-    {I_VCMPPD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8162, 179},
-    {I_VCMPPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8170, 179},
-    {I_VCMPPD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8178, 179},
-    {I_VCMPPD, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+3744, 214},
-    {I_VCMPPD, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+3753, 214},
-    {I_VCMPPD, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,B64|SAE,0,0}, nasm_bytecodes+3762, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPPS[] = {
-    {I_VCMPPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8186, 179},
-    {I_VCMPPS, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8194, 179},
-    {I_VCMPPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8202, 179},
-    {I_VCMPPS, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8210, 179},
-    {I_VCMPPS, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+3771, 214},
-    {I_VCMPPS, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+3780, 214},
-    {I_VCMPPS, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,B32|SAE,0,0}, nasm_bytecodes+3789, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPSD[] = {
-    {I_VCMPSD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8218, 179},
-    {I_VCMPSD, 3, {XMM_L16,RM_XMM_L16|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8226, 179},
-    {I_VCMPSD, 4, {KREG,XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0}, {MASK,0,SAE,0,0}, nasm_bytecodes+3798, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPSS[] = {
-    {I_VCMPSS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8234, 179},
-    {I_VCMPSS, 3, {XMM_L16,RM_XMM_L16|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8242, 179},
-    {I_VCMPSS, 4, {KREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, {MASK,0,SAE,0,0}, nasm_bytecodes+3807, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPTRUEPD[] = {
-    {I_VCMPTRUEPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+648, 179},
-    {I_VCMPTRUEPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+657, 179},
-    {I_VCMPTRUEPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+666, 179},
-    {I_VCMPTRUEPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+675, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPTRUEPS[] = {
-    {I_VCMPTRUEPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1800, 179},
-    {I_VCMPTRUEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1809, 179},
-    {I_VCMPTRUEPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1818, 179},
-    {I_VCMPTRUEPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1827, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPTRUESD[] = {
-    {I_VCMPTRUESD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2664, 179},
-    {I_VCMPTRUESD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2673, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPTRUESS[] = {
-    {I_VCMPTRUESS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3240, 179},
-    {I_VCMPTRUESS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3249, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPTRUE_UQPD[] = {
-    {I_VCMPTRUE_UQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+648, 179},
-    {I_VCMPTRUE_UQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+657, 179},
-    {I_VCMPTRUE_UQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+666, 179},
-    {I_VCMPTRUE_UQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+675, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPTRUE_UQPS[] = {
-    {I_VCMPTRUE_UQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1800, 179},
-    {I_VCMPTRUE_UQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1809, 179},
-    {I_VCMPTRUE_UQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1818, 179},
-    {I_VCMPTRUE_UQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1827, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPTRUE_UQSD[] = {
-    {I_VCMPTRUE_UQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2664, 179},
-    {I_VCMPTRUE_UQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2673, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPTRUE_UQSS[] = {
-    {I_VCMPTRUE_UQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3240, 179},
-    {I_VCMPTRUE_UQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3249, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPTRUE_USPD[] = {
-    {I_VCMPTRUE_USPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1188, 179},
-    {I_VCMPTRUE_USPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1197, 179},
-    {I_VCMPTRUE_USPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1206, 179},
-    {I_VCMPTRUE_USPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1215, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPTRUE_USPS[] = {
-    {I_VCMPTRUE_USPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2340, 179},
-    {I_VCMPTRUE_USPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2349, 179},
-    {I_VCMPTRUE_USPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2358, 179},
-    {I_VCMPTRUE_USPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2367, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPTRUE_USSD[] = {
-    {I_VCMPTRUE_USSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2934, 179},
-    {I_VCMPTRUE_USSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2943, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPTRUE_USSS[] = {
-    {I_VCMPTRUE_USSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3510, 179},
-    {I_VCMPTRUE_USSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3519, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPUNORDPD[] = {
-    {I_VCMPUNORDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+216, 179},
-    {I_VCMPUNORDPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+225, 179},
-    {I_VCMPUNORDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+234, 179},
-    {I_VCMPUNORDPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+243, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPUNORDPS[] = {
-    {I_VCMPUNORDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1368, 179},
-    {I_VCMPUNORDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1377, 179},
-    {I_VCMPUNORDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1386, 179},
-    {I_VCMPUNORDPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1395, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPUNORDSD[] = {
-    {I_VCMPUNORDSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2448, 179},
-    {I_VCMPUNORDSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2457, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPUNORDSS[] = {
-    {I_VCMPUNORDSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3024, 179},
-    {I_VCMPUNORDSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3033, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPUNORD_QPD[] = {
-    {I_VCMPUNORD_QPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+216, 179},
-    {I_VCMPUNORD_QPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+225, 179},
-    {I_VCMPUNORD_QPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+234, 179},
-    {I_VCMPUNORD_QPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+243, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPUNORD_QPS[] = {
-    {I_VCMPUNORD_QPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1368, 179},
-    {I_VCMPUNORD_QPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1377, 179},
-    {I_VCMPUNORD_QPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1386, 179},
-    {I_VCMPUNORD_QPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1395, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPUNORD_QSD[] = {
-    {I_VCMPUNORD_QSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2448, 179},
-    {I_VCMPUNORD_QSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2457, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPUNORD_QSS[] = {
-    {I_VCMPUNORD_QSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3024, 179},
-    {I_VCMPUNORD_QSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3033, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPUNORD_SPD[] = {
-    {I_VCMPUNORD_SPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+756, 179},
-    {I_VCMPUNORD_SPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+765, 179},
-    {I_VCMPUNORD_SPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+774, 179},
-    {I_VCMPUNORD_SPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+783, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPUNORD_SPS[] = {
-    {I_VCMPUNORD_SPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1908, 179},
-    {I_VCMPUNORD_SPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1917, 179},
-    {I_VCMPUNORD_SPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1926, 179},
-    {I_VCMPUNORD_SPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1935, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPUNORD_SSD[] = {
-    {I_VCMPUNORD_SSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2718, 179},
-    {I_VCMPUNORD_SSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2727, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCMPUNORD_SSS[] = {
-    {I_VCMPUNORD_SSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3294, 179},
-    {I_VCMPUNORD_SSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3303, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCOMISD[] = {
-    {I_VCOMISD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26146, 179},
-    {I_VCOMISD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+11658, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCOMISS[] = {
-    {I_VCOMISS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26153, 179},
-    {I_VCOMISS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+11666, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCOMPRESSPD[] = {
-    {I_VCOMPRESSPD, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+11674, 214},
-    {I_VCOMPRESSPD, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+11682, 214},
-    {I_VCOMPRESSPD, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+11690, 215},
-    {I_VCOMPRESSPD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11698, 214},
-    {I_VCOMPRESSPD, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11706, 214},
-    {I_VCOMPRESSPD, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11714, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCOMPRESSPS[] = {
-    {I_VCOMPRESSPS, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+11722, 214},
-    {I_VCOMPRESSPS, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+11730, 214},
-    {I_VCOMPRESSPS, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+11738, 215},
-    {I_VCOMPRESSPS, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11746, 214},
-    {I_VCOMPRESSPS, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11754, 214},
-    {I_VCOMPRESSPS, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11762, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTDQ2PD[] = {
-    {I_VCVTDQ2PD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26160, 179},
-    {I_VCVTDQ2PD, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26167, 179},
-    {I_VCVTDQ2PD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11770, 214},
-    {I_VCVTDQ2PD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11778, 214},
-    {I_VCVTDQ2PD, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+11786, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTDQ2PS[] = {
-    {I_VCVTDQ2PS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26174, 179},
-    {I_VCVTDQ2PS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26181, 179},
-    {I_VCVTDQ2PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11794, 214},
-    {I_VCVTDQ2PS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11802, 214},
-    {I_VCVTDQ2PS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+11810, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTPD2DQ[] = {
-    {I_VCVTPD2DQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26188, 179},
-    {I_VCVTPD2DQ, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26188, 180},
-    {I_VCVTPD2DQ, 2, {XMM_L16,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26195, 179},
-    {I_VCVTPD2DQ, 2, {XMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26195, 181},
-    {I_VCVTPD2DQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11818, 214},
-    {I_VCVTPD2DQ, 2, {XMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11826, 214},
-    {I_VCVTPD2DQ, 2, {YMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+11834, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTPD2PS[] = {
-    {I_VCVTPD2PS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26202, 179},
-    {I_VCVTPD2PS, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26202, 180},
-    {I_VCVTPD2PS, 2, {XMM_L16,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26209, 179},
-    {I_VCVTPD2PS, 2, {XMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26209, 181},
-    {I_VCVTPD2PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11842, 214},
-    {I_VCVTPD2PS, 2, {XMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11850, 214},
-    {I_VCVTPD2PS, 2, {YMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+11858, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTPD2QQ[] = {
-    {I_VCVTPD2QQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11866, 216},
-    {I_VCVTPD2QQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11874, 216},
-    {I_VCVTPD2QQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+11882, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTPD2UDQ[] = {
-    {I_VCVTPD2UDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11890, 214},
-    {I_VCVTPD2UDQ, 2, {XMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11898, 214},
-    {I_VCVTPD2UDQ, 2, {YMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+11906, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTPD2UQQ[] = {
-    {I_VCVTPD2UQQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11914, 216},
-    {I_VCVTPD2UQQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11922, 216},
-    {I_VCVTPD2UQQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+11930, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTPH2PS[] = {
-    {I_VCVTPH2PS, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29975, 187},
-    {I_VCVTPH2PS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+29982, 187},
-    {I_VCVTPH2PS, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11938, 214},
-    {I_VCVTPH2PS, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11946, 214},
-    {I_VCVTPH2PS, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+11954, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTPS2DQ[] = {
-    {I_VCVTPS2DQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26216, 179},
-    {I_VCVTPS2DQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26223, 179},
-    {I_VCVTPS2DQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11962, 214},
-    {I_VCVTPS2DQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11970, 214},
-    {I_VCVTPS2DQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+11978, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTPS2PD[] = {
-    {I_VCVTPS2PD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26230, 179},
-    {I_VCVTPS2PD, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26237, 179},
-    {I_VCVTPS2PD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11986, 214},
-    {I_VCVTPS2PD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11994, 214},
-    {I_VCVTPS2PD, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+12002, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTPS2PH[] = {
-    {I_VCVTPS2PH, 3, {RM_XMM_L16|BITS128,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8930, 187},
-    {I_VCVTPS2PH, 3, {RM_XMM_L16|BITS64,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8938, 187},
-    {I_VCVTPS2PH, 3, {XMMREG,XMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3816, 214},
-    {I_VCVTPS2PH, 3, {XMMREG,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3825, 214},
-    {I_VCVTPS2PH, 3, {YMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+3834, 215},
-    {I_VCVTPS2PH, 3, {MEMORY|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3816, 214},
-    {I_VCVTPS2PH, 3, {MEMORY|BITS128,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3825, 214},
-    {I_VCVTPS2PH, 3, {MEMORY|BITS256,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,SAE,0,0,0}, nasm_bytecodes+3834, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTPS2QQ[] = {
-    {I_VCVTPS2QQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12010, 216},
-    {I_VCVTPS2QQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12018, 216},
-    {I_VCVTPS2QQ, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+12026, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTPS2UDQ[] = {
-    {I_VCVTPS2UDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12034, 214},
-    {I_VCVTPS2UDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12042, 214},
-    {I_VCVTPS2UDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+12050, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTPS2UQQ[] = {
-    {I_VCVTPS2UQQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12058, 216},
-    {I_VCVTPS2UQQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12066, 216},
-    {I_VCVTPS2UQQ, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+12074, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTQQ2PD[] = {
-    {I_VCVTQQ2PD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12082, 216},
-    {I_VCVTQQ2PD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12090, 216},
-    {I_VCVTQQ2PD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+12098, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTQQ2PS[] = {
-    {I_VCVTQQ2PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12106, 216},
-    {I_VCVTQQ2PS, 2, {XMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12114, 216},
-    {I_VCVTQQ2PS, 2, {YMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+12122, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTSD2SI[] = {
-    {I_VCVTSD2SI, 2, {REG_GPR|BITS32,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26244, 179},
-    {I_VCVTSD2SI, 2, {REG_GPR|BITS64,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26251, 182},
-    {I_VCVTSD2SI, 2, {REG_GPR|BITS32,RM_XMM|BITS64,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12130, 215},
-    {I_VCVTSD2SI, 2, {REG_GPR|BITS64,RM_XMM|BITS64,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12138, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTSD2SS[] = {
-    {I_VCVTSD2SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+26258, 179},
-    {I_VCVTSD2SS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26265, 179},
-    {I_VCVTSD2SS, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12146, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTSD2USI[] = {
-    {I_VCVTSD2USI, 2, {REG_GPR|BITS32,RM_XMM|BITS64,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12154, 215},
-    {I_VCVTSD2USI, 2, {REG_GPR|BITS64,RM_XMM|BITS64,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12162, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTSI2SD[] = {
-    {I_VCVTSI2SD, 3, {XMM_L16,XMM_L16,RM_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+26272, 183},
-    {I_VCVTSI2SD, 2, {XMM_L16,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26279, 183},
-    {I_VCVTSI2SD, 3, {XMM_L16,XMM_L16,MEMORY|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+26272, 183},
-    {I_VCVTSI2SD, 2, {XMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26279, 183},
-    {I_VCVTSI2SD, 3, {XMM_L16,XMM_L16,RM_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+26286, 184},
-    {I_VCVTSI2SD, 2, {XMM_L16,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26293, 184},
-    {I_VCVTSI2SD, 3, {XMMREG,XMMREG,RM_GPR|BITS32,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12170, 215},
-    {I_VCVTSI2SD, 3, {XMMREG,XMMREG,RM_GPR|BITS64,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12178, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTSI2SS[] = {
-    {I_VCVTSI2SS, 3, {XMM_L16,XMM_L16,RM_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+26300, 183},
-    {I_VCVTSI2SS, 2, {XMM_L16,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26307, 183},
-    {I_VCVTSI2SS, 3, {XMM_L16,XMM_L16,MEMORY|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+26300, 183},
-    {I_VCVTSI2SS, 2, {XMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26307, 183},
-    {I_VCVTSI2SS, 3, {XMM_L16,XMM_L16,RM_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+26314, 184},
-    {I_VCVTSI2SS, 2, {XMM_L16,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26321, 184},
-    {I_VCVTSI2SS, 3, {XMMREG,XMMREG,RM_GPR|BITS32,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12186, 215},
-    {I_VCVTSI2SS, 3, {XMMREG,XMMREG,RM_GPR|BITS64,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12194, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTSS2SD[] = {
-    {I_VCVTSS2SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+26328, 179},
-    {I_VCVTSS2SD, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26335, 179},
-    {I_VCVTSS2SD, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+12202, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTSS2SI[] = {
-    {I_VCVTSS2SI, 2, {REG_GPR|BITS32,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26342, 179},
-    {I_VCVTSS2SI, 2, {REG_GPR|BITS64,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26349, 182},
-    {I_VCVTSS2SI, 2, {REG_GPR|BITS32,RM_XMM|BITS32,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12210, 215},
-    {I_VCVTSS2SI, 2, {REG_GPR|BITS64,RM_XMM|BITS32,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12218, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTSS2USI[] = {
-    {I_VCVTSS2USI, 2, {REG_GPR|BITS32,RM_XMM|BITS32,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12226, 215},
-    {I_VCVTSS2USI, 2, {REG_GPR|BITS64,RM_XMM|BITS32,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12234, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTTPD2DQ[] = {
-    {I_VCVTTPD2DQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26356, 179},
-    {I_VCVTTPD2DQ, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26356, 180},
-    {I_VCVTTPD2DQ, 2, {XMM_L16,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26363, 179},
-    {I_VCVTTPD2DQ, 2, {XMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26363, 181},
-    {I_VCVTTPD2DQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12242, 214},
-    {I_VCVTTPD2DQ, 2, {XMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12250, 214},
-    {I_VCVTTPD2DQ, 2, {YMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+12258, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTTPD2QQ[] = {
-    {I_VCVTTPD2QQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12266, 216},
-    {I_VCVTTPD2QQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12274, 216},
-    {I_VCVTTPD2QQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+12282, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTTPD2UDQ[] = {
-    {I_VCVTTPD2UDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12290, 214},
-    {I_VCVTTPD2UDQ, 2, {XMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12298, 214},
-    {I_VCVTTPD2UDQ, 2, {YMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+12306, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTTPD2UQQ[] = {
-    {I_VCVTTPD2UQQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12314, 216},
-    {I_VCVTTPD2UQQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12322, 216},
-    {I_VCVTTPD2UQQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+12330, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTTPS2DQ[] = {
-    {I_VCVTTPS2DQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26370, 179},
-    {I_VCVTTPS2DQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26377, 179},
-    {I_VCVTTPS2DQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12338, 214},
-    {I_VCVTTPS2DQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12346, 214},
-    {I_VCVTTPS2DQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+12354, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTTPS2QQ[] = {
-    {I_VCVTTPS2QQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12362, 216},
-    {I_VCVTTPS2QQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12370, 216},
-    {I_VCVTTPS2QQ, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+12378, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTTPS2UDQ[] = {
-    {I_VCVTTPS2UDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12386, 214},
-    {I_VCVTTPS2UDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12394, 214},
-    {I_VCVTTPS2UDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+12402, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTTPS2UQQ[] = {
-    {I_VCVTTPS2UQQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12410, 216},
-    {I_VCVTTPS2UQQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12418, 216},
-    {I_VCVTTPS2UQQ, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+12426, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTTSD2SI[] = {
-    {I_VCVTTSD2SI, 2, {REG_GPR|BITS32,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26384, 179},
-    {I_VCVTTSD2SI, 2, {REG_GPR|BITS64,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26391, 182},
-    {I_VCVTTSD2SI, 2, {REG_GPR|BITS32,RM_XMM|BITS64,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12434, 215},
-    {I_VCVTTSD2SI, 2, {REG_GPR|BITS64,RM_XMM|BITS64,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12442, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTTSD2USI[] = {
-    {I_VCVTTSD2USI, 2, {REG_GPR|BITS32,RM_XMM|BITS64,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12450, 215},
-    {I_VCVTTSD2USI, 2, {REG_GPR|BITS64,RM_XMM|BITS64,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12458, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTTSS2SI[] = {
-    {I_VCVTTSS2SI, 2, {REG_GPR|BITS32,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26398, 179},
-    {I_VCVTTSS2SI, 2, {REG_GPR|BITS64,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26405, 182},
-    {I_VCVTTSS2SI, 2, {REG_GPR|BITS32,RM_XMM|BITS32,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12466, 215},
-    {I_VCVTTSS2SI, 2, {REG_GPR|BITS64,RM_XMM|BITS32,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12474, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTTSS2USI[] = {
-    {I_VCVTTSS2USI, 2, {REG_GPR|BITS32,RM_XMM|BITS32,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12482, 215},
-    {I_VCVTTSS2USI, 2, {REG_GPR|BITS64,RM_XMM|BITS32,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12490, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTUDQ2PD[] = {
-    {I_VCVTUDQ2PD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12498, 214},
-    {I_VCVTUDQ2PD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12506, 214},
-    {I_VCVTUDQ2PD, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+12514, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTUDQ2PS[] = {
-    {I_VCVTUDQ2PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12522, 214},
-    {I_VCVTUDQ2PS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12530, 214},
-    {I_VCVTUDQ2PS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+12538, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTUQQ2PD[] = {
-    {I_VCVTUQQ2PD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12546, 216},
-    {I_VCVTUQQ2PD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12554, 216},
-    {I_VCVTUQQ2PD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+12562, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTUQQ2PS[] = {
-    {I_VCVTUQQ2PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12570, 216},
-    {I_VCVTUQQ2PS, 2, {XMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12578, 216},
-    {I_VCVTUQQ2PS, 2, {YMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+12586, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTUSI2SD[] = {
-    {I_VCVTUSI2SD, 3, {XMMREG,XMMREG,RM_GPR|BITS32,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12594, 215},
-    {I_VCVTUSI2SD, 3, {XMMREG,XMMREG,RM_GPR|BITS64,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12602, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VCVTUSI2SS[] = {
-    {I_VCVTUSI2SS, 3, {XMMREG,XMMREG,RM_GPR|BITS32,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12610, 215},
-    {I_VCVTUSI2SS, 3, {XMMREG,XMMREG,RM_GPR|BITS64,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12618, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VDBPSADBW[] = {
-    {I_VDBPSADBW, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3843, 218},
-    {I_VDBPSADBW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3852, 218},
-    {I_VDBPSADBW, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3861, 218},
-    {I_VDBPSADBW, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3870, 218},
-    {I_VDBPSADBW, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3879, 219},
-    {I_VDBPSADBW, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3888, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VDIVPD[] = {
-    {I_VDIVPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26412, 179},
-    {I_VDIVPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26419, 179},
-    {I_VDIVPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26426, 179},
-    {I_VDIVPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26433, 179},
-    {I_VDIVPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12626, 214},
-    {I_VDIVPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12634, 214},
-    {I_VDIVPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12642, 214},
-    {I_VDIVPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12650, 214},
-    {I_VDIVPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+12658, 215},
-    {I_VDIVPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+12666, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VDIVPS[] = {
-    {I_VDIVPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26440, 179},
-    {I_VDIVPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26447, 179},
-    {I_VDIVPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26454, 179},
-    {I_VDIVPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26461, 179},
-    {I_VDIVPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12674, 214},
-    {I_VDIVPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12682, 214},
-    {I_VDIVPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12690, 214},
-    {I_VDIVPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12698, 214},
-    {I_VDIVPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+12706, 215},
-    {I_VDIVPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+12714, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VDIVSD[] = {
-    {I_VDIVSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+26468, 179},
-    {I_VDIVSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26475, 179},
-    {I_VDIVSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12722, 215},
-    {I_VDIVSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+12730, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VDIVSS[] = {
-    {I_VDIVSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+26482, 179},
-    {I_VDIVSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26489, 179},
-    {I_VDIVSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12738, 215},
-    {I_VDIVSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+12746, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VDPPD[] = {
-    {I_VDPPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8250, 179},
-    {I_VDPPD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8258, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VDPPS[] = {
-    {I_VDPPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8266, 179},
-    {I_VDPPS, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8274, 179},
-    {I_VDPPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8282, 179},
-    {I_VDPPS, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8290, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VERR[] = {
-    {I_VERR, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38246, 62},
-    {I_VERR, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38246, 62},
-    {I_VERR, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38246, 62},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VERW[] = {
-    {I_VERW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38251, 62},
-    {I_VERW, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38251, 62},
-    {I_VERW, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38251, 62},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXP2PD[] = {
-    {I_VEXP2PD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+12754, 220},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXP2PS[] = {
-    {I_VEXP2PS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+12762, 220},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXPANDPD[] = {
-    {I_VEXPANDPD, 2, {XMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12770, 214},
-    {I_VEXPANDPD, 2, {YMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12778, 214},
-    {I_VEXPANDPD, 2, {ZMMREG,MEMORY|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12786, 215},
-    {I_VEXPANDPD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12770, 214},
-    {I_VEXPANDPD, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12778, 214},
-    {I_VEXPANDPD, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12786, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXPANDPS[] = {
-    {I_VEXPANDPS, 2, {XMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12794, 214},
-    {I_VEXPANDPS, 2, {YMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12802, 214},
-    {I_VEXPANDPS, 2, {ZMMREG,MEMORY|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12810, 215},
-    {I_VEXPANDPS, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12794, 214},
-    {I_VEXPANDPS, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12802, 214},
-    {I_VEXPANDPS, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12810, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXTRACTF128[] = {
-    {I_VEXTRACTF128, 3, {RM_XMM_L16|BITS128,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8298, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXTRACTF32X4[] = {
-    {I_VEXTRACTF32X4, 3, {XMMREG,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3897, 214},
-    {I_VEXTRACTF32X4, 3, {XMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3906, 215},
-    {I_VEXTRACTF32X4, 3, {MEMORY|BITS128,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3915, 214},
-    {I_VEXTRACTF32X4, 3, {MEMORY|BITS128,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3924, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXTRACTF32X8[] = {
-    {I_VEXTRACTF32X8, 3, {YMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3933, 217},
-    {I_VEXTRACTF32X8, 3, {MEMORY|BITS256,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3942, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXTRACTF64X2[] = {
-    {I_VEXTRACTF64X2, 3, {XMMREG,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3951, 216},
-    {I_VEXTRACTF64X2, 3, {XMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3960, 217},
-    {I_VEXTRACTF64X2, 3, {MEMORY|BITS128,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3969, 216},
-    {I_VEXTRACTF64X2, 3, {MEMORY|BITS128,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3978, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXTRACTF64X4[] = {
-    {I_VEXTRACTF64X4, 3, {YMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3987, 215},
-    {I_VEXTRACTF64X4, 3, {MEMORY|BITS256,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3996, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXTRACTI128[] = {
-    {I_VEXTRACTI128, 3, {RM_XMM_L16|BITS128,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10826, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXTRACTI32X4[] = {
-    {I_VEXTRACTI32X4, 3, {XMMREG,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4005, 214},
-    {I_VEXTRACTI32X4, 3, {XMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4014, 215},
-    {I_VEXTRACTI32X4, 3, {MEMORY|BITS128,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4023, 214},
-    {I_VEXTRACTI32X4, 3, {MEMORY|BITS128,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4032, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXTRACTI32X8[] = {
-    {I_VEXTRACTI32X8, 3, {YMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4041, 217},
-    {I_VEXTRACTI32X8, 3, {MEMORY|BITS256,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4050, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXTRACTI64X2[] = {
-    {I_VEXTRACTI64X2, 3, {XMMREG,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4059, 216},
-    {I_VEXTRACTI64X2, 3, {XMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4068, 217},
-    {I_VEXTRACTI64X2, 3, {MEMORY|BITS128,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4077, 216},
-    {I_VEXTRACTI64X2, 3, {MEMORY|BITS128,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4086, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXTRACTI64X4[] = {
-    {I_VEXTRACTI64X4, 3, {YMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4095, 215},
-    {I_VEXTRACTI64X4, 3, {MEMORY|BITS256,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4104, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VEXTRACTPS[] = {
-    {I_VEXTRACTPS, 3, {RM_GPR|BITS32,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8306, 179},
-    {I_VEXTRACTPS, 3, {REG_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+4113, 215},
-    {I_VEXTRACTPS, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+4113, 215},
-    {I_VEXTRACTPS, 3, {MEMORY|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+4113, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFIXUPIMMPD[] = {
-    {I_VFIXUPIMMPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+4122, 214},
-    {I_VFIXUPIMMPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+4131, 214},
-    {I_VFIXUPIMMPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+4140, 214},
-    {I_VFIXUPIMMPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+4149, 214},
-    {I_VFIXUPIMMPD, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64|SAE,0,0}, nasm_bytecodes+4158, 215},
-    {I_VFIXUPIMMPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+4167, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFIXUPIMMPS[] = {
-    {I_VFIXUPIMMPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+4176, 214},
-    {I_VFIXUPIMMPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+4185, 214},
-    {I_VFIXUPIMMPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+4194, 214},
-    {I_VFIXUPIMMPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+4203, 214},
-    {I_VFIXUPIMMPS, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32|SAE,0,0}, nasm_bytecodes+4212, 215},
-    {I_VFIXUPIMMPS, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+4221, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFIXUPIMMSD[] = {
-    {I_VFIXUPIMMSD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+4230, 215},
-    {I_VFIXUPIMMSD, 3, {XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+4239, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFIXUPIMMSS[] = {
-    {I_VFIXUPIMMSS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+4248, 215},
-    {I_VFIXUPIMMSS, 3, {XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+4257, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD123PD[] = {
-    {I_VFMADD123PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29289, 186},
-    {I_VFMADD123PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29296, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD123PS[] = {
-    {I_VFMADD123PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29275, 186},
-    {I_VFMADD123PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29282, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD123SD[] = {
-    {I_VFMADD123SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29772, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD123SS[] = {
-    {I_VFMADD123SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29765, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD132PD[] = {
-    {I_VFMADD132PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29261, 186},
-    {I_VFMADD132PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29268, 186},
-    {I_VFMADD132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12818, 214},
-    {I_VFMADD132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12826, 214},
-    {I_VFMADD132PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+12834, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD132PS[] = {
-    {I_VFMADD132PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29247, 186},
-    {I_VFMADD132PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29254, 186},
-    {I_VFMADD132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12842, 214},
-    {I_VFMADD132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12850, 214},
-    {I_VFMADD132PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+12858, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD132SD[] = {
-    {I_VFMADD132SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29758, 186},
-    {I_VFMADD132SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12866, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD132SS[] = {
-    {I_VFMADD132SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29751, 186},
-    {I_VFMADD132SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12874, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD213PD[] = {
-    {I_VFMADD213PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29289, 186},
-    {I_VFMADD213PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29296, 186},
-    {I_VFMADD213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12882, 214},
-    {I_VFMADD213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12890, 214},
-    {I_VFMADD213PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+12898, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD213PS[] = {
-    {I_VFMADD213PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29275, 186},
-    {I_VFMADD213PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29282, 186},
-    {I_VFMADD213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12906, 214},
-    {I_VFMADD213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12914, 214},
-    {I_VFMADD213PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+12922, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD213SD[] = {
-    {I_VFMADD213SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29772, 186},
-    {I_VFMADD213SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12930, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD213SS[] = {
-    {I_VFMADD213SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29765, 186},
-    {I_VFMADD213SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12938, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD231PD[] = {
-    {I_VFMADD231PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29317, 186},
-    {I_VFMADD231PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29324, 186},
-    {I_VFMADD231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12946, 214},
-    {I_VFMADD231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12954, 214},
-    {I_VFMADD231PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+12962, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD231PS[] = {
-    {I_VFMADD231PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29303, 186},
-    {I_VFMADD231PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29310, 186},
-    {I_VFMADD231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12970, 214},
-    {I_VFMADD231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12978, 214},
-    {I_VFMADD231PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+12986, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD231SD[] = {
-    {I_VFMADD231SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29786, 186},
-    {I_VFMADD231SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12994, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD231SS[] = {
-    {I_VFMADD231SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29779, 186},
-    {I_VFMADD231SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13002, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD312PD[] = {
-    {I_VFMADD312PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29261, 186},
-    {I_VFMADD312PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29268, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD312PS[] = {
-    {I_VFMADD312PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29247, 186},
-    {I_VFMADD312PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29254, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD312SD[] = {
-    {I_VFMADD312SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29758, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD312SS[] = {
-    {I_VFMADD312SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29751, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD321PD[] = {
-    {I_VFMADD321PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29317, 186},
-    {I_VFMADD321PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29324, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD321PS[] = {
-    {I_VFMADD321PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29303, 186},
-    {I_VFMADD321PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29310, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD321SD[] = {
-    {I_VFMADD321SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29786, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADD321SS[] = {
-    {I_VFMADD321SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29779, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDPD[] = {
-    {I_VFMADDPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9010, 191},
-    {I_VFMADDPD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9018, 191},
-    {I_VFMADDPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9026, 191},
-    {I_VFMADDPD, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9034, 191},
-    {I_VFMADDPD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9042, 191},
-    {I_VFMADDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9050, 191},
-    {I_VFMADDPD, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9058, 191},
-    {I_VFMADDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9066, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDPS[] = {
-    {I_VFMADDPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9074, 191},
-    {I_VFMADDPS, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9082, 191},
-    {I_VFMADDPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9090, 191},
-    {I_VFMADDPS, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9098, 191},
-    {I_VFMADDPS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9106, 191},
-    {I_VFMADDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9114, 191},
-    {I_VFMADDPS, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9122, 191},
-    {I_VFMADDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9130, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSD[] = {
-    {I_VFMADDSD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9138, 191},
-    {I_VFMADDSD, 3, {XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9146, 191},
-    {I_VFMADDSD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0}, NO_DECORATOR, nasm_bytecodes+9154, 191},
-    {I_VFMADDSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+9162, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSS[] = {
-    {I_VFMADDSS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9170, 191},
-    {I_VFMADDSS, 3, {XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9178, 191},
-    {I_VFMADDSS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0}, NO_DECORATOR, nasm_bytecodes+9186, 191},
-    {I_VFMADDSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+9194, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSUB123PD[] = {
-    {I_VFMADDSUB123PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29373, 186},
-    {I_VFMADDSUB123PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29380, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSUB123PS[] = {
-    {I_VFMADDSUB123PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29359, 186},
-    {I_VFMADDSUB123PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29366, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSUB132PD[] = {
-    {I_VFMADDSUB132PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29345, 186},
-    {I_VFMADDSUB132PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29352, 186},
-    {I_VFMADDSUB132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13010, 214},
-    {I_VFMADDSUB132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13018, 214},
-    {I_VFMADDSUB132PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13026, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSUB132PS[] = {
-    {I_VFMADDSUB132PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29331, 186},
-    {I_VFMADDSUB132PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29338, 186},
-    {I_VFMADDSUB132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13034, 214},
-    {I_VFMADDSUB132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13042, 214},
-    {I_VFMADDSUB132PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13050, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSUB213PD[] = {
-    {I_VFMADDSUB213PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29373, 186},
-    {I_VFMADDSUB213PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29380, 186},
-    {I_VFMADDSUB213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13058, 214},
-    {I_VFMADDSUB213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13066, 214},
-    {I_VFMADDSUB213PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13074, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSUB213PS[] = {
-    {I_VFMADDSUB213PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29359, 186},
-    {I_VFMADDSUB213PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29366, 186},
-    {I_VFMADDSUB213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13082, 214},
-    {I_VFMADDSUB213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13090, 214},
-    {I_VFMADDSUB213PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13098, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSUB231PD[] = {
-    {I_VFMADDSUB231PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29401, 186},
-    {I_VFMADDSUB231PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29408, 186},
-    {I_VFMADDSUB231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13106, 214},
-    {I_VFMADDSUB231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13114, 214},
-    {I_VFMADDSUB231PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13122, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSUB231PS[] = {
-    {I_VFMADDSUB231PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29387, 186},
-    {I_VFMADDSUB231PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29394, 186},
-    {I_VFMADDSUB231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13130, 214},
-    {I_VFMADDSUB231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13138, 214},
-    {I_VFMADDSUB231PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13146, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSUB312PD[] = {
-    {I_VFMADDSUB312PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29345, 186},
-    {I_VFMADDSUB312PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29352, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSUB312PS[] = {
-    {I_VFMADDSUB312PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29331, 186},
-    {I_VFMADDSUB312PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29338, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSUB321PD[] = {
-    {I_VFMADDSUB321PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29401, 186},
-    {I_VFMADDSUB321PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29408, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSUB321PS[] = {
-    {I_VFMADDSUB321PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29387, 186},
-    {I_VFMADDSUB321PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29394, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSUBPD[] = {
-    {I_VFMADDSUBPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9202, 191},
-    {I_VFMADDSUBPD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9210, 191},
-    {I_VFMADDSUBPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9218, 191},
-    {I_VFMADDSUBPD, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9226, 191},
-    {I_VFMADDSUBPD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9234, 191},
-    {I_VFMADDSUBPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9242, 191},
-    {I_VFMADDSUBPD, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9250, 191},
-    {I_VFMADDSUBPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9258, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMADDSUBPS[] = {
-    {I_VFMADDSUBPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9266, 191},
-    {I_VFMADDSUBPS, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9274, 191},
-    {I_VFMADDSUBPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9282, 191},
-    {I_VFMADDSUBPS, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9290, 191},
-    {I_VFMADDSUBPS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9298, 191},
-    {I_VFMADDSUBPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9306, 191},
-    {I_VFMADDSUBPS, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9314, 191},
-    {I_VFMADDSUBPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9322, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB123PD[] = {
-    {I_VFMSUB123PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29457, 186},
-    {I_VFMSUB123PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29464, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB123PS[] = {
-    {I_VFMSUB123PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29443, 186},
-    {I_VFMSUB123PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29450, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB123SD[] = {
-    {I_VFMSUB123SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29814, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB123SS[] = {
-    {I_VFMSUB123SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29807, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB132PD[] = {
-    {I_VFMSUB132PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29429, 186},
-    {I_VFMSUB132PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29436, 186},
-    {I_VFMSUB132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13154, 214},
-    {I_VFMSUB132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13162, 214},
-    {I_VFMSUB132PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13170, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB132PS[] = {
-    {I_VFMSUB132PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29415, 186},
-    {I_VFMSUB132PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29422, 186},
-    {I_VFMSUB132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13178, 214},
-    {I_VFMSUB132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13186, 214},
-    {I_VFMSUB132PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13194, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB132SD[] = {
-    {I_VFMSUB132SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29800, 186},
-    {I_VFMSUB132SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13202, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB132SS[] = {
-    {I_VFMSUB132SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29793, 186},
-    {I_VFMSUB132SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13210, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB213PD[] = {
-    {I_VFMSUB213PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29457, 186},
-    {I_VFMSUB213PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29464, 186},
-    {I_VFMSUB213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13218, 214},
-    {I_VFMSUB213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13226, 214},
-    {I_VFMSUB213PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13234, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB213PS[] = {
-    {I_VFMSUB213PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29443, 186},
-    {I_VFMSUB213PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29450, 186},
-    {I_VFMSUB213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13242, 214},
-    {I_VFMSUB213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13250, 214},
-    {I_VFMSUB213PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13258, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB213SD[] = {
-    {I_VFMSUB213SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29814, 186},
-    {I_VFMSUB213SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13266, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB213SS[] = {
-    {I_VFMSUB213SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29807, 186},
-    {I_VFMSUB213SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13274, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB231PD[] = {
-    {I_VFMSUB231PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29485, 186},
-    {I_VFMSUB231PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29492, 186},
-    {I_VFMSUB231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13282, 214},
-    {I_VFMSUB231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13290, 214},
-    {I_VFMSUB231PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13298, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB231PS[] = {
-    {I_VFMSUB231PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29471, 186},
-    {I_VFMSUB231PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29478, 186},
-    {I_VFMSUB231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13306, 214},
-    {I_VFMSUB231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13314, 214},
-    {I_VFMSUB231PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13322, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB231SD[] = {
-    {I_VFMSUB231SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29828, 186},
-    {I_VFMSUB231SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13330, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB231SS[] = {
-    {I_VFMSUB231SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29821, 186},
-    {I_VFMSUB231SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13338, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB312PD[] = {
-    {I_VFMSUB312PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29429, 186},
-    {I_VFMSUB312PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29436, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB312PS[] = {
-    {I_VFMSUB312PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29415, 186},
-    {I_VFMSUB312PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29422, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB312SD[] = {
-    {I_VFMSUB312SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29800, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB312SS[] = {
-    {I_VFMSUB312SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29793, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB321PD[] = {
-    {I_VFMSUB321PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29485, 186},
-    {I_VFMSUB321PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29492, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB321PS[] = {
-    {I_VFMSUB321PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29471, 186},
-    {I_VFMSUB321PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29478, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB321SD[] = {
-    {I_VFMSUB321SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29828, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUB321SS[] = {
-    {I_VFMSUB321SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29821, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBADD123PD[] = {
-    {I_VFMSUBADD123PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29541, 186},
-    {I_VFMSUBADD123PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29548, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBADD123PS[] = {
-    {I_VFMSUBADD123PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29527, 186},
-    {I_VFMSUBADD123PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29534, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBADD132PD[] = {
-    {I_VFMSUBADD132PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29513, 186},
-    {I_VFMSUBADD132PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29520, 186},
-    {I_VFMSUBADD132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13346, 214},
-    {I_VFMSUBADD132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13354, 214},
-    {I_VFMSUBADD132PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13362, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBADD132PS[] = {
-    {I_VFMSUBADD132PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29499, 186},
-    {I_VFMSUBADD132PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29506, 186},
-    {I_VFMSUBADD132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13370, 214},
-    {I_VFMSUBADD132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13378, 214},
-    {I_VFMSUBADD132PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13386, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBADD213PD[] = {
-    {I_VFMSUBADD213PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29541, 186},
-    {I_VFMSUBADD213PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29548, 186},
-    {I_VFMSUBADD213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13394, 214},
-    {I_VFMSUBADD213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13402, 214},
-    {I_VFMSUBADD213PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13410, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBADD213PS[] = {
-    {I_VFMSUBADD213PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29527, 186},
-    {I_VFMSUBADD213PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29534, 186},
-    {I_VFMSUBADD213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13418, 214},
-    {I_VFMSUBADD213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13426, 214},
-    {I_VFMSUBADD213PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13434, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBADD231PD[] = {
-    {I_VFMSUBADD231PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29569, 186},
-    {I_VFMSUBADD231PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29576, 186},
-    {I_VFMSUBADD231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13442, 214},
-    {I_VFMSUBADD231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13450, 214},
-    {I_VFMSUBADD231PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13458, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBADD231PS[] = {
-    {I_VFMSUBADD231PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29555, 186},
-    {I_VFMSUBADD231PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29562, 186},
-    {I_VFMSUBADD231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13466, 214},
-    {I_VFMSUBADD231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13474, 214},
-    {I_VFMSUBADD231PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13482, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBADD312PD[] = {
-    {I_VFMSUBADD312PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29513, 186},
-    {I_VFMSUBADD312PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29520, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBADD312PS[] = {
-    {I_VFMSUBADD312PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29499, 186},
-    {I_VFMSUBADD312PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29506, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBADD321PD[] = {
-    {I_VFMSUBADD321PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29569, 186},
-    {I_VFMSUBADD321PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29576, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBADD321PS[] = {
-    {I_VFMSUBADD321PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29555, 186},
-    {I_VFMSUBADD321PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29562, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBADDPD[] = {
-    {I_VFMSUBADDPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9330, 191},
-    {I_VFMSUBADDPD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9338, 191},
-    {I_VFMSUBADDPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9346, 191},
-    {I_VFMSUBADDPD, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9354, 191},
-    {I_VFMSUBADDPD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9362, 191},
-    {I_VFMSUBADDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9370, 191},
-    {I_VFMSUBADDPD, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9378, 191},
-    {I_VFMSUBADDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9386, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBADDPS[] = {
-    {I_VFMSUBADDPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9394, 191},
-    {I_VFMSUBADDPS, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9402, 191},
-    {I_VFMSUBADDPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9410, 191},
-    {I_VFMSUBADDPS, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9418, 191},
-    {I_VFMSUBADDPS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9426, 191},
-    {I_VFMSUBADDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9434, 191},
-    {I_VFMSUBADDPS, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9442, 191},
-    {I_VFMSUBADDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9450, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBPD[] = {
-    {I_VFMSUBPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9458, 191},
-    {I_VFMSUBPD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9466, 191},
-    {I_VFMSUBPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9474, 191},
-    {I_VFMSUBPD, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9482, 191},
-    {I_VFMSUBPD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9490, 191},
-    {I_VFMSUBPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9498, 191},
-    {I_VFMSUBPD, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9506, 191},
-    {I_VFMSUBPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9514, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBPS[] = {
-    {I_VFMSUBPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9522, 191},
-    {I_VFMSUBPS, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9530, 191},
-    {I_VFMSUBPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9538, 191},
-    {I_VFMSUBPS, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9546, 191},
-    {I_VFMSUBPS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9554, 191},
-    {I_VFMSUBPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9562, 191},
-    {I_VFMSUBPS, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9570, 191},
-    {I_VFMSUBPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9578, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBSD[] = {
-    {I_VFMSUBSD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9586, 191},
-    {I_VFMSUBSD, 3, {XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9594, 191},
-    {I_VFMSUBSD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0}, NO_DECORATOR, nasm_bytecodes+9602, 191},
-    {I_VFMSUBSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+9610, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFMSUBSS[] = {
-    {I_VFMSUBSS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9618, 191},
-    {I_VFMSUBSS, 3, {XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9626, 191},
-    {I_VFMSUBSS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0}, NO_DECORATOR, nasm_bytecodes+9634, 191},
-    {I_VFMSUBSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+9642, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD123PD[] = {
-    {I_VFNMADD123PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29625, 186},
-    {I_VFNMADD123PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29632, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD123PS[] = {
-    {I_VFNMADD123PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29611, 186},
-    {I_VFNMADD123PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29618, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD123SD[] = {
-    {I_VFNMADD123SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29856, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD123SS[] = {
-    {I_VFNMADD123SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29849, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD132PD[] = {
-    {I_VFNMADD132PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29597, 186},
-    {I_VFNMADD132PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29604, 186},
-    {I_VFNMADD132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13490, 214},
-    {I_VFNMADD132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13498, 214},
-    {I_VFNMADD132PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13506, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD132PS[] = {
-    {I_VFNMADD132PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29583, 186},
-    {I_VFNMADD132PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29590, 186},
-    {I_VFNMADD132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13514, 214},
-    {I_VFNMADD132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13522, 214},
-    {I_VFNMADD132PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13530, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD132SD[] = {
-    {I_VFNMADD132SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29842, 186},
-    {I_VFNMADD132SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13538, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD132SS[] = {
-    {I_VFNMADD132SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29835, 186},
-    {I_VFNMADD132SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13546, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD213PD[] = {
-    {I_VFNMADD213PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29625, 186},
-    {I_VFNMADD213PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29632, 186},
-    {I_VFNMADD213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13554, 214},
-    {I_VFNMADD213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13562, 214},
-    {I_VFNMADD213PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13570, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD213PS[] = {
-    {I_VFNMADD213PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29611, 186},
-    {I_VFNMADD213PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29618, 186},
-    {I_VFNMADD213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13578, 214},
-    {I_VFNMADD213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13586, 214},
-    {I_VFNMADD213PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13594, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD213SD[] = {
-    {I_VFNMADD213SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29856, 186},
-    {I_VFNMADD213SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13602, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD213SS[] = {
-    {I_VFNMADD213SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29849, 186},
-    {I_VFNMADD213SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13610, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD231PD[] = {
-    {I_VFNMADD231PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29653, 186},
-    {I_VFNMADD231PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29660, 186},
-    {I_VFNMADD231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13618, 214},
-    {I_VFNMADD231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13626, 214},
-    {I_VFNMADD231PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13634, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD231PS[] = {
-    {I_VFNMADD231PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29639, 186},
-    {I_VFNMADD231PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29646, 186},
-    {I_VFNMADD231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13642, 214},
-    {I_VFNMADD231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13650, 214},
-    {I_VFNMADD231PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13658, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD231SD[] = {
-    {I_VFNMADD231SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29870, 186},
-    {I_VFNMADD231SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13666, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD231SS[] = {
-    {I_VFNMADD231SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29863, 186},
-    {I_VFNMADD231SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13674, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD312PD[] = {
-    {I_VFNMADD312PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29597, 186},
-    {I_VFNMADD312PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29604, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD312PS[] = {
-    {I_VFNMADD312PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29583, 186},
-    {I_VFNMADD312PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29590, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD312SD[] = {
-    {I_VFNMADD312SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29842, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD312SS[] = {
-    {I_VFNMADD312SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29835, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD321PD[] = {
-    {I_VFNMADD321PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29653, 186},
-    {I_VFNMADD321PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29660, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD321PS[] = {
-    {I_VFNMADD321PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29639, 186},
-    {I_VFNMADD321PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29646, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD321SD[] = {
-    {I_VFNMADD321SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29870, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADD321SS[] = {
-    {I_VFNMADD321SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29863, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADDPD[] = {
-    {I_VFNMADDPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9650, 191},
-    {I_VFNMADDPD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9658, 191},
-    {I_VFNMADDPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9666, 191},
-    {I_VFNMADDPD, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9674, 191},
-    {I_VFNMADDPD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9682, 191},
-    {I_VFNMADDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9690, 191},
-    {I_VFNMADDPD, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9698, 191},
-    {I_VFNMADDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9706, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADDPS[] = {
-    {I_VFNMADDPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9714, 191},
-    {I_VFNMADDPS, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9722, 191},
-    {I_VFNMADDPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9730, 191},
-    {I_VFNMADDPS, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9738, 191},
-    {I_VFNMADDPS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9746, 191},
-    {I_VFNMADDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9754, 191},
-    {I_VFNMADDPS, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9762, 191},
-    {I_VFNMADDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9770, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADDSD[] = {
-    {I_VFNMADDSD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9778, 191},
-    {I_VFNMADDSD, 3, {XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9786, 191},
-    {I_VFNMADDSD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0}, NO_DECORATOR, nasm_bytecodes+9794, 191},
-    {I_VFNMADDSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+9802, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMADDSS[] = {
-    {I_VFNMADDSS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9810, 191},
-    {I_VFNMADDSS, 3, {XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9818, 191},
-    {I_VFNMADDSS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0}, NO_DECORATOR, nasm_bytecodes+9826, 191},
-    {I_VFNMADDSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+9834, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB123PD[] = {
-    {I_VFNMSUB123PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29709, 186},
-    {I_VFNMSUB123PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29716, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB123PS[] = {
-    {I_VFNMSUB123PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29695, 186},
-    {I_VFNMSUB123PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29702, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB123SD[] = {
-    {I_VFNMSUB123SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29898, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB123SS[] = {
-    {I_VFNMSUB123SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29891, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB132PD[] = {
-    {I_VFNMSUB132PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29681, 186},
-    {I_VFNMSUB132PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29688, 186},
-    {I_VFNMSUB132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13682, 214},
-    {I_VFNMSUB132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13690, 214},
-    {I_VFNMSUB132PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13698, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB132PS[] = {
-    {I_VFNMSUB132PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29667, 186},
-    {I_VFNMSUB132PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29674, 186},
-    {I_VFNMSUB132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13706, 214},
-    {I_VFNMSUB132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13714, 214},
-    {I_VFNMSUB132PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13722, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB132SD[] = {
-    {I_VFNMSUB132SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29884, 186},
-    {I_VFNMSUB132SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13730, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB132SS[] = {
-    {I_VFNMSUB132SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29877, 186},
-    {I_VFNMSUB132SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13738, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB213PD[] = {
-    {I_VFNMSUB213PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29709, 186},
-    {I_VFNMSUB213PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29716, 186},
-    {I_VFNMSUB213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13746, 214},
-    {I_VFNMSUB213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13754, 214},
-    {I_VFNMSUB213PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13762, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB213PS[] = {
-    {I_VFNMSUB213PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29695, 186},
-    {I_VFNMSUB213PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29702, 186},
-    {I_VFNMSUB213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13770, 214},
-    {I_VFNMSUB213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13778, 214},
-    {I_VFNMSUB213PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13786, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB213SD[] = {
-    {I_VFNMSUB213SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29898, 186},
-    {I_VFNMSUB213SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13794, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB213SS[] = {
-    {I_VFNMSUB213SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29891, 186},
-    {I_VFNMSUB213SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13802, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB231PD[] = {
-    {I_VFNMSUB231PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29737, 186},
-    {I_VFNMSUB231PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29744, 186},
-    {I_VFNMSUB231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13810, 214},
-    {I_VFNMSUB231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13818, 214},
-    {I_VFNMSUB231PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13826, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB231PS[] = {
-    {I_VFNMSUB231PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29723, 186},
-    {I_VFNMSUB231PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29730, 186},
-    {I_VFNMSUB231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13834, 214},
-    {I_VFNMSUB231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13842, 214},
-    {I_VFNMSUB231PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13850, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB231SD[] = {
-    {I_VFNMSUB231SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29912, 186},
-    {I_VFNMSUB231SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13858, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB231SS[] = {
-    {I_VFNMSUB231SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29905, 186},
-    {I_VFNMSUB231SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13866, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB312PD[] = {
-    {I_VFNMSUB312PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29681, 186},
-    {I_VFNMSUB312PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29688, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB312PS[] = {
-    {I_VFNMSUB312PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29667, 186},
-    {I_VFNMSUB312PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29674, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB312SD[] = {
-    {I_VFNMSUB312SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29884, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB312SS[] = {
-    {I_VFNMSUB312SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29877, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB321PD[] = {
-    {I_VFNMSUB321PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29737, 186},
-    {I_VFNMSUB321PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29744, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB321PS[] = {
-    {I_VFNMSUB321PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29723, 186},
-    {I_VFNMSUB321PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29730, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB321SD[] = {
-    {I_VFNMSUB321SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29912, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUB321SS[] = {
-    {I_VFNMSUB321SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29905, 186},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUBPD[] = {
-    {I_VFNMSUBPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9842, 191},
-    {I_VFNMSUBPD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9850, 191},
-    {I_VFNMSUBPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9858, 191},
-    {I_VFNMSUBPD, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9866, 191},
-    {I_VFNMSUBPD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9874, 191},
-    {I_VFNMSUBPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9882, 191},
-    {I_VFNMSUBPD, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9890, 191},
-    {I_VFNMSUBPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9898, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUBPS[] = {
-    {I_VFNMSUBPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9906, 191},
-    {I_VFNMSUBPS, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9914, 191},
-    {I_VFNMSUBPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9922, 191},
-    {I_VFNMSUBPS, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9930, 191},
-    {I_VFNMSUBPS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9938, 191},
-    {I_VFNMSUBPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9946, 191},
-    {I_VFNMSUBPS, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9954, 191},
-    {I_VFNMSUBPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9962, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUBSD[] = {
-    {I_VFNMSUBSD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9970, 191},
-    {I_VFNMSUBSD, 3, {XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9978, 191},
-    {I_VFNMSUBSD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0}, NO_DECORATOR, nasm_bytecodes+9986, 191},
-    {I_VFNMSUBSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+9994, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFNMSUBSS[] = {
-    {I_VFNMSUBSS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10002, 191},
-    {I_VFNMSUBSS, 3, {XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10010, 191},
-    {I_VFNMSUBSS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0}, NO_DECORATOR, nasm_bytecodes+10018, 191},
-    {I_VFNMSUBSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+10026, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFPCLASSPD[] = {
-    {I_VFPCLASSPD, 3, {KREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK,B64,0,0,0}, nasm_bytecodes+4266, 216},
-    {I_VFPCLASSPD, 3, {KREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK,B64,0,0,0}, nasm_bytecodes+4275, 216},
-    {I_VFPCLASSPD, 3, {KREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK,B64,0,0,0}, nasm_bytecodes+4284, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFPCLASSPS[] = {
-    {I_VFPCLASSPS, 3, {KREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK,B32,0,0,0}, nasm_bytecodes+4293, 216},
-    {I_VFPCLASSPS, 3, {KREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK,B32,0,0,0}, nasm_bytecodes+4302, 216},
-    {I_VFPCLASSPS, 3, {KREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK,B32,0,0,0}, nasm_bytecodes+4311, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFPCLASSSD[] = {
-    {I_VFPCLASSSD, 3, {KREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4320, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFPCLASSSS[] = {
-    {I_VFPCLASSSS, 3, {KREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4329, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFRCZPD[] = {
-    {I_VFRCZPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30017, 191},
-    {I_VFRCZPD, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30024, 191},
-    {I_VFRCZPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30031, 191},
-    {I_VFRCZPD, 1, {YMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30038, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFRCZPS[] = {
-    {I_VFRCZPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30045, 191},
-    {I_VFRCZPS, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30052, 191},
-    {I_VFRCZPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30059, 191},
-    {I_VFRCZPS, 1, {YMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30066, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFRCZSD[] = {
-    {I_VFRCZSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+30073, 191},
-    {I_VFRCZSD, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30080, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VFRCZSS[] = {
-    {I_VFRCZSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+30087, 191},
-    {I_VFRCZSS, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30094, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGATHERDPD[] = {
-    {I_VGATHERDPD, 3, {XMM_L16,XMEM|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10850, 192},
-    {I_VGATHERDPD, 3, {YMM_L16,XMEM|BITS64,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10866, 192},
-    {I_VGATHERDPD, 2, {XMMREG,XMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4338, 214},
-    {I_VGATHERDPD, 2, {YMMREG,XMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4347, 214},
-    {I_VGATHERDPD, 2, {ZMMREG,YMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4356, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGATHERDPS[] = {
-    {I_VGATHERDPS, 3, {XMM_L16,XMEM|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10882, 192},
-    {I_VGATHERDPS, 3, {YMM_L16,YMEM|BITS32,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10898, 192},
-    {I_VGATHERDPS, 2, {XMMREG,XMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4365, 214},
-    {I_VGATHERDPS, 2, {YMMREG,YMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4374, 214},
-    {I_VGATHERDPS, 2, {ZMMREG,ZMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4383, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGATHERPF0DPD[] = {
-    {I_VGATHERPF0DPD, 1, {YMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4392, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGATHERPF0DPS[] = {
-    {I_VGATHERPF0DPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4401, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGATHERPF0QPD[] = {
-    {I_VGATHERPF0QPD, 1, {ZMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4410, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGATHERPF0QPS[] = {
-    {I_VGATHERPF0QPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4419, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGATHERPF1DPD[] = {
-    {I_VGATHERPF1DPD, 1, {YMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4428, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGATHERPF1DPS[] = {
-    {I_VGATHERPF1DPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4437, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGATHERPF1QPD[] = {
-    {I_VGATHERPF1QPD, 1, {ZMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4446, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGATHERPF1QPS[] = {
-    {I_VGATHERPF1QPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4455, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGATHERQPD[] = {
-    {I_VGATHERQPD, 3, {XMM_L16,XMEM|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10858, 192},
-    {I_VGATHERQPD, 3, {YMM_L16,YMEM|BITS64,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10874, 192},
-    {I_VGATHERQPD, 2, {XMMREG,XMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4464, 214},
-    {I_VGATHERQPD, 2, {YMMREG,YMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4473, 214},
-    {I_VGATHERQPD, 2, {ZMMREG,ZMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4482, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGATHERQPS[] = {
-    {I_VGATHERQPS, 3, {XMM_L16,XMEM|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10890, 192},
-    {I_VGATHERQPS, 3, {XMM_L16,YMEM|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10906, 192},
-    {I_VGATHERQPS, 2, {XMMREG,XMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4491, 214},
-    {I_VGATHERQPS, 2, {XMMREG,YMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4500, 214},
-    {I_VGATHERQPS, 2, {YMMREG,ZMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4509, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGETEXPPD[] = {
-    {I_VGETEXPPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+13874, 214},
-    {I_VGETEXPPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+13882, 214},
-    {I_VGETEXPPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+13890, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGETEXPPS[] = {
-    {I_VGETEXPPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+13898, 214},
-    {I_VGETEXPPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+13906, 214},
-    {I_VGETEXPPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+13914, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGETEXPSD[] = {
-    {I_VGETEXPSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+13922, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGETEXPSS[] = {
-    {I_VGETEXPSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+13930, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGETMANTPD[] = {
-    {I_VGETMANTPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+4518, 214},
-    {I_VGETMANTPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+4527, 214},
-    {I_VGETMANTPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+4536, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGETMANTPS[] = {
-    {I_VGETMANTPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+4545, 214},
-    {I_VGETMANTPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+4554, 214},
-    {I_VGETMANTPS, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+4563, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGETMANTSD[] = {
-    {I_VGETMANTSD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+4572, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VGETMANTSS[] = {
-    {I_VGETMANTSS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+4581, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VHADDPD[] = {
-    {I_VHADDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26496, 179},
-    {I_VHADDPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26503, 179},
-    {I_VHADDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26510, 179},
-    {I_VHADDPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26517, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VHADDPS[] = {
-    {I_VHADDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26524, 179},
-    {I_VHADDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26531, 179},
-    {I_VHADDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26538, 179},
-    {I_VHADDPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26545, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VHSUBPD[] = {
-    {I_VHSUBPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26552, 179},
-    {I_VHSUBPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26559, 179},
-    {I_VHSUBPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26566, 179},
-    {I_VHSUBPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26573, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VHSUBPS[] = {
-    {I_VHSUBPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26580, 179},
-    {I_VHSUBPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26587, 179},
-    {I_VHSUBPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26594, 179},
-    {I_VHSUBPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26601, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VINSERTF128[] = {
-    {I_VINSERTF128, 4, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8314, 179},
-    {I_VINSERTF128, 3, {YMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8322, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VINSERTF32X4[] = {
-    {I_VINSERTF32X4, 4, {YMMREG,YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4590, 214},
-    {I_VINSERTF32X4, 3, {YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4599, 214},
-    {I_VINSERTF32X4, 4, {ZMMREG,ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4608, 215},
-    {I_VINSERTF32X4, 3, {ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4617, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VINSERTF32X8[] = {
-    {I_VINSERTF32X8, 4, {ZMMREG,ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4626, 217},
-    {I_VINSERTF32X8, 3, {ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4635, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VINSERTF64X2[] = {
-    {I_VINSERTF64X2, 4, {YMMREG,YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4644, 216},
-    {I_VINSERTF64X2, 3, {YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4653, 216},
-    {I_VINSERTF64X2, 4, {ZMMREG,ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4662, 217},
-    {I_VINSERTF64X2, 3, {ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4671, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VINSERTF64X4[] = {
-    {I_VINSERTF64X4, 4, {ZMMREG,ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4680, 215},
-    {I_VINSERTF64X4, 3, {ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4689, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VINSERTI128[] = {
-    {I_VINSERTI128, 4, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10834, 192},
-    {I_VINSERTI128, 3, {YMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10842, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VINSERTI32X4[] = {
-    {I_VINSERTI32X4, 4, {YMMREG,YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4698, 214},
-    {I_VINSERTI32X4, 3, {YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4707, 214},
-    {I_VINSERTI32X4, 4, {ZMMREG,ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4716, 215},
-    {I_VINSERTI32X4, 3, {ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4725, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VINSERTI32X8[] = {
-    {I_VINSERTI32X8, 4, {ZMMREG,ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4734, 217},
-    {I_VINSERTI32X8, 3, {ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4743, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VINSERTI64X2[] = {
-    {I_VINSERTI64X2, 4, {YMMREG,YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4752, 216},
-    {I_VINSERTI64X2, 3, {YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4761, 216},
-    {I_VINSERTI64X2, 4, {ZMMREG,ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4770, 217},
-    {I_VINSERTI64X2, 3, {ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4779, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VINSERTI64X4[] = {
-    {I_VINSERTI64X4, 4, {ZMMREG,ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4788, 215},
-    {I_VINSERTI64X4, 3, {ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4797, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VINSERTPS[] = {
-    {I_VINSERTPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8330, 179},
-    {I_VINSERTPS, 3, {XMM_L16,RM_XMM_L16|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8338, 179},
-    {I_VINSERTPS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+4806, 215},
-    {I_VINSERTPS, 3, {XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+4815, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VLDDQU[] = {
-    {I_VLDDQU, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26608, 179},
-    {I_VLDDQU, 2, {YMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26615, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VLDMXCSR[] = {
-    {I_VLDMXCSR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+26622, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VLDQQU[] = {
-    {I_VLDQQU, 2, {YMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26615, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMASKMOVDQU[] = {
-    {I_VMASKMOVDQU, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26629, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMASKMOVPD[] = {
-    {I_VMASKMOVPD, 3, {XMM_L16,XMM_L16,MEMORY|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26664, 179},
-    {I_VMASKMOVPD, 3, {YMM_L16,YMM_L16,MEMORY|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26671, 179},
-    {I_VMASKMOVPD, 3, {MEMORY|BITS128,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+26678, 179},
-    {I_VMASKMOVPD, 3, {MEMORY|BITS256,YMM_L16,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+26685, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMASKMOVPS[] = {
-    {I_VMASKMOVPS, 3, {XMM_L16,XMM_L16,MEMORY|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26636, 179},
-    {I_VMASKMOVPS, 3, {YMM_L16,YMM_L16,MEMORY|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26643, 179},
-    {I_VMASKMOVPS, 3, {MEMORY|BITS128,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+26650, 180},
-    {I_VMASKMOVPS, 3, {MEMORY|BITS256,YMM_L16,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+26657, 181},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMAXPD[] = {
-    {I_VMAXPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26692, 179},
-    {I_VMAXPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26699, 179},
-    {I_VMAXPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26706, 179},
-    {I_VMAXPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26713, 179},
-    {I_VMAXPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13938, 214},
-    {I_VMAXPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+13946, 214},
-    {I_VMAXPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13954, 214},
-    {I_VMAXPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+13962, 214},
-    {I_VMAXPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|SAE,0,0}, nasm_bytecodes+13970, 215},
-    {I_VMAXPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+13978, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMAXPS[] = {
-    {I_VMAXPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26720, 179},
-    {I_VMAXPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26727, 179},
-    {I_VMAXPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26734, 179},
-    {I_VMAXPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26741, 179},
-    {I_VMAXPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13986, 214},
-    {I_VMAXPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+13994, 214},
-    {I_VMAXPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+14002, 214},
-    {I_VMAXPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+14010, 214},
-    {I_VMAXPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|SAE,0,0}, nasm_bytecodes+14018, 215},
-    {I_VMAXPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+14026, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMAXSD[] = {
-    {I_VMAXSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+26748, 179},
-    {I_VMAXSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26755, 179},
-    {I_VMAXSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+14034, 215},
-    {I_VMAXSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+14042, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMAXSS[] = {
-    {I_VMAXSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+26762, 179},
-    {I_VMAXSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26769, 179},
-    {I_VMAXSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+14050, 215},
-    {I_VMAXSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+14058, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMCALL[] = {
-    {I_VMCALL, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38326, 154},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMCLEAR[] = {
-    {I_VMCLEAR, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35254, 154},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMFUNC[] = {
-    {I_VMFUNC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38331, 154},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMINPD[] = {
-    {I_VMINPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26776, 179},
-    {I_VMINPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26783, 179},
-    {I_VMINPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26790, 179},
-    {I_VMINPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26797, 179},
-    {I_VMINPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+14066, 214},
-    {I_VMINPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+14074, 214},
-    {I_VMINPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+14082, 214},
-    {I_VMINPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+14090, 214},
-    {I_VMINPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|SAE,0,0}, nasm_bytecodes+14098, 215},
-    {I_VMINPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+14106, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMINPS[] = {
-    {I_VMINPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26804, 179},
-    {I_VMINPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26811, 179},
-    {I_VMINPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26818, 179},
-    {I_VMINPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26825, 179},
-    {I_VMINPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+14114, 214},
-    {I_VMINPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+14122, 214},
-    {I_VMINPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+14130, 214},
-    {I_VMINPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+14138, 214},
-    {I_VMINPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|SAE,0,0}, nasm_bytecodes+14146, 215},
-    {I_VMINPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+14154, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMINSD[] = {
-    {I_VMINSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+26832, 179},
-    {I_VMINSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26839, 179},
-    {I_VMINSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+14162, 215},
-    {I_VMINSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+14170, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMINSS[] = {
-    {I_VMINSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+26846, 179},
-    {I_VMINSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26853, 179},
-    {I_VMINSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+14178, 215},
-    {I_VMINSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+14186, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMLAUNCH[] = {
-    {I_VMLAUNCH, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38336, 154},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMLOAD[] = {
-    {I_VMLOAD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38341, 153},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMMCALL[] = {
-    {I_VMMCALL, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38346, 153},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVAPD[] = {
-    {I_VMOVAPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26860, 179},
-    {I_VMOVAPD, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26867, 179},
-    {I_VMOVAPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26874, 179},
-    {I_VMOVAPD, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26881, 179},
-    {I_VMOVAPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14194, 214},
-    {I_VMOVAPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14202, 214},
-    {I_VMOVAPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14210, 215},
-    {I_VMOVAPD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14218, 214},
-    {I_VMOVAPD, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14226, 214},
-    {I_VMOVAPD, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14234, 215},
-    {I_VMOVAPD, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14242, 214},
-    {I_VMOVAPD, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14250, 214},
-    {I_VMOVAPD, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14258, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVAPS[] = {
-    {I_VMOVAPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26888, 179},
-    {I_VMOVAPS, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26895, 179},
-    {I_VMOVAPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26902, 179},
-    {I_VMOVAPS, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26909, 179},
-    {I_VMOVAPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14266, 214},
-    {I_VMOVAPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14274, 214},
-    {I_VMOVAPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14282, 215},
-    {I_VMOVAPS, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14290, 214},
-    {I_VMOVAPS, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14298, 214},
-    {I_VMOVAPS, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14306, 215},
-    {I_VMOVAPS, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14314, 214},
-    {I_VMOVAPS, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14322, 214},
-    {I_VMOVAPS, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14330, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVD[] = {
-    {I_VMOVD, 2, {XMM_L16,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26916, 179},
-    {I_VMOVD, 2, {RM_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26923, 179},
-    {I_VMOVD, 2, {XMMREG,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+14338, 215},
-    {I_VMOVD, 2, {RM_GPR|BITS32,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14346, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVDDUP[] = {
-    {I_VMOVDDUP, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26958, 179},
-    {I_VMOVDDUP, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26965, 179},
-    {I_VMOVDDUP, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14354, 214},
-    {I_VMOVDDUP, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14362, 214},
-    {I_VMOVDDUP, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14370, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVDQA[] = {
-    {I_VMOVDQA, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26972, 179},
-    {I_VMOVDQA, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26979, 179},
-    {I_VMOVDQA, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26986, 179},
-    {I_VMOVDQA, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26993, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVDQA32[] = {
-    {I_VMOVDQA32, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14378, 214},
-    {I_VMOVDQA32, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14386, 214},
-    {I_VMOVDQA32, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14394, 215},
-    {I_VMOVDQA32, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14402, 214},
-    {I_VMOVDQA32, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14410, 214},
-    {I_VMOVDQA32, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14418, 215},
-    {I_VMOVDQA32, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14426, 214},
-    {I_VMOVDQA32, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14434, 214},
-    {I_VMOVDQA32, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14442, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVDQA64[] = {
-    {I_VMOVDQA64, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14450, 214},
-    {I_VMOVDQA64, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14458, 214},
-    {I_VMOVDQA64, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14466, 215},
-    {I_VMOVDQA64, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14474, 214},
-    {I_VMOVDQA64, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14482, 214},
-    {I_VMOVDQA64, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14490, 215},
-    {I_VMOVDQA64, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14498, 214},
-    {I_VMOVDQA64, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14506, 214},
-    {I_VMOVDQA64, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14514, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVDQU[] = {
-    {I_VMOVDQU, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27000, 179},
-    {I_VMOVDQU, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27007, 179},
-    {I_VMOVDQU, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27014, 179},
-    {I_VMOVDQU, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27021, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVDQU16[] = {
-    {I_VMOVDQU16, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14522, 218},
-    {I_VMOVDQU16, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14530, 218},
-    {I_VMOVDQU16, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14538, 219},
-    {I_VMOVDQU16, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14546, 218},
-    {I_VMOVDQU16, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14554, 218},
-    {I_VMOVDQU16, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14562, 219},
-    {I_VMOVDQU16, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14570, 218},
-    {I_VMOVDQU16, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14578, 218},
-    {I_VMOVDQU16, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14586, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVDQU32[] = {
-    {I_VMOVDQU32, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14594, 214},
-    {I_VMOVDQU32, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14602, 214},
-    {I_VMOVDQU32, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14610, 215},
-    {I_VMOVDQU32, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14618, 214},
-    {I_VMOVDQU32, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14626, 214},
-    {I_VMOVDQU32, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14634, 215},
-    {I_VMOVDQU32, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14642, 214},
-    {I_VMOVDQU32, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14650, 214},
-    {I_VMOVDQU32, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14658, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVDQU64[] = {
-    {I_VMOVDQU64, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14666, 214},
-    {I_VMOVDQU64, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14674, 214},
-    {I_VMOVDQU64, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14682, 215},
-    {I_VMOVDQU64, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14690, 214},
-    {I_VMOVDQU64, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14698, 214},
-    {I_VMOVDQU64, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14706, 215},
-    {I_VMOVDQU64, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14714, 214},
-    {I_VMOVDQU64, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14722, 214},
-    {I_VMOVDQU64, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14730, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVDQU8[] = {
-    {I_VMOVDQU8, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14738, 218},
-    {I_VMOVDQU8, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14746, 218},
-    {I_VMOVDQU8, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14754, 219},
-    {I_VMOVDQU8, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14762, 218},
-    {I_VMOVDQU8, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14770, 218},
-    {I_VMOVDQU8, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14778, 219},
-    {I_VMOVDQU8, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14786, 218},
-    {I_VMOVDQU8, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14794, 218},
-    {I_VMOVDQU8, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14802, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVHLPS[] = {
-    {I_VMOVHLPS, 3, {XMM_L16,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+27028, 179},
-    {I_VMOVHLPS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27035, 179},
-    {I_VMOVHLPS, 3, {XMMREG,XMMREG,XMMREG,0,0}, NO_DECORATOR, nasm_bytecodes+14810, 215},
-    {I_VMOVHLPS, 2, {XMMREG,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14818, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVHPD[] = {
-    {I_VMOVHPD, 3, {XMM_L16,XMM_L16,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+27042, 179},
-    {I_VMOVHPD, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+27049, 179},
-    {I_VMOVHPD, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27056, 179},
-    {I_VMOVHPD, 3, {XMMREG,XMMREG,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+14826, 215},
-    {I_VMOVHPD, 2, {XMMREG,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+14834, 215},
-    {I_VMOVHPD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14842, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVHPS[] = {
-    {I_VMOVHPS, 3, {XMM_L16,XMM_L16,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+27063, 179},
-    {I_VMOVHPS, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+27070, 179},
-    {I_VMOVHPS, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27077, 179},
-    {I_VMOVHPS, 3, {XMMREG,XMMREG,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+14850, 215},
-    {I_VMOVHPS, 2, {XMMREG,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+14858, 215},
-    {I_VMOVHPS, 2, {MEMORY|BITS64,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14866, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVLHPS[] = {
-    {I_VMOVLHPS, 3, {XMM_L16,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+27063, 179},
-    {I_VMOVLHPS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27070, 179},
-    {I_VMOVLHPS, 3, {XMMREG,XMMREG,XMMREG,0,0}, NO_DECORATOR, nasm_bytecodes+14874, 215},
-    {I_VMOVLHPS, 2, {XMMREG,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14882, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVLPD[] = {
-    {I_VMOVLPD, 3, {XMM_L16,XMM_L16,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+27084, 179},
-    {I_VMOVLPD, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+27091, 179},
-    {I_VMOVLPD, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27098, 179},
-    {I_VMOVLPD, 3, {XMMREG,XMMREG,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+14890, 215},
-    {I_VMOVLPD, 2, {XMMREG,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+14898, 215},
-    {I_VMOVLPD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14906, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVLPS[] = {
-    {I_VMOVLPS, 3, {XMM_L16,XMM_L16,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+27028, 179},
-    {I_VMOVLPS, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+27035, 179},
-    {I_VMOVLPS, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27105, 179},
-    {I_VMOVLPS, 3, {XMMREG,XMMREG,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+14914, 215},
-    {I_VMOVLPS, 2, {XMMREG,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+14922, 215},
-    {I_VMOVLPS, 2, {MEMORY|BITS64,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14930, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVMSKPD[] = {
-    {I_VMOVMSKPD, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27112, 182},
-    {I_VMOVMSKPD, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27112, 179},
-    {I_VMOVMSKPD, 2, {REG_GPR|BITS64,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27119, 182},
-    {I_VMOVMSKPD, 2, {REG_GPR|BITS32,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27119, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVMSKPS[] = {
-    {I_VMOVMSKPS, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27126, 182},
-    {I_VMOVMSKPS, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27126, 179},
-    {I_VMOVMSKPS, 2, {REG_GPR|BITS64,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27133, 182},
-    {I_VMOVMSKPS, 2, {REG_GPR|BITS32,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27133, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVNTDQ[] = {
-    {I_VMOVNTDQ, 2, {MEMORY|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27140, 179},
-    {I_VMOVNTDQ, 2, {MEMORY|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27147, 179},
-    {I_VMOVNTDQ, 2, {MEMORY|BITS128,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14938, 214},
-    {I_VMOVNTDQ, 2, {MEMORY|BITS256,YMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14946, 214},
-    {I_VMOVNTDQ, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14954, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVNTDQA[] = {
-    {I_VMOVNTDQA, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27154, 179},
-    {I_VMOVNTDQA, 2, {YMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31907, 192},
-    {I_VMOVNTDQA, 2, {XMMREG,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+14962, 214},
-    {I_VMOVNTDQA, 2, {YMMREG,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+14970, 214},
-    {I_VMOVNTDQA, 2, {ZMMREG,MEMORY|BITS512,0,0,0}, NO_DECORATOR, nasm_bytecodes+14978, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVNTPD[] = {
-    {I_VMOVNTPD, 2, {MEMORY|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27161, 179},
-    {I_VMOVNTPD, 2, {MEMORY|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27168, 179},
-    {I_VMOVNTPD, 2, {MEMORY|BITS128,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14986, 214},
-    {I_VMOVNTPD, 2, {MEMORY|BITS256,YMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14994, 214},
-    {I_VMOVNTPD, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+15002, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVNTPS[] = {
-    {I_VMOVNTPS, 2, {MEMORY|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27175, 179},
-    {I_VMOVNTPS, 2, {MEMORY|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27182, 179},
-    {I_VMOVNTPS, 2, {MEMORY|BITS128,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+15010, 214},
-    {I_VMOVNTPS, 2, {MEMORY|BITS256,YMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+15018, 214},
-    {I_VMOVNTPS, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+15026, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVNTQQ[] = {
-    {I_VMOVNTQQ, 2, {MEMORY|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27147, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVQ[] = {
-    {I_VMOVQ, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26930, 185},
-    {I_VMOVQ, 2, {RM_XMM_L16|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26937, 185},
-    {I_VMOVQ, 2, {XMM_L16,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26944, 184},
-    {I_VMOVQ, 2, {RM_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26951, 184},
-    {I_VMOVQ, 2, {XMMREG,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+15034, 215},
-    {I_VMOVQ, 2, {RM_GPR|BITS64,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+15042, 215},
-    {I_VMOVQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+15050, 215},
-    {I_VMOVQ, 2, {RM_XMM|BITS64,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+15058, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVQQA[] = {
-    {I_VMOVQQA, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26986, 179},
-    {I_VMOVQQA, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26993, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVQQU[] = {
-    {I_VMOVQQU, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27014, 179},
-    {I_VMOVQQU, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27021, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVSD[] = {
-    {I_VMOVSD, 3, {XMM_L16,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+27189, 179},
-    {I_VMOVSD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27196, 179},
-    {I_VMOVSD, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+27203, 179},
-    {I_VMOVSD, 3, {XMM_L16,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+27210, 179},
-    {I_VMOVSD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27217, 179},
-    {I_VMOVSD, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27224, 179},
-    {I_VMOVSD, 2, {XMMREG,MEMORY|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15066, 215},
-    {I_VMOVSD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15074, 215},
-    {I_VMOVSD, 3, {XMMREG,XMMREG,XMMREG,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15082, 215},
-    {I_VMOVSD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15090, 215},
-    {I_VMOVSD, 3, {XMMREG,XMMREG,XMMREG,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15098, 215},
-    {I_VMOVSD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15106, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVSHDUP[] = {
-    {I_VMOVSHDUP, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27231, 179},
-    {I_VMOVSHDUP, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27238, 179},
-    {I_VMOVSHDUP, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15114, 214},
-    {I_VMOVSHDUP, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15122, 214},
-    {I_VMOVSHDUP, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15130, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVSLDUP[] = {
-    {I_VMOVSLDUP, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27245, 179},
-    {I_VMOVSLDUP, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27252, 179},
-    {I_VMOVSLDUP, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15138, 214},
-    {I_VMOVSLDUP, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15146, 214},
-    {I_VMOVSLDUP, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15154, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVSS[] = {
-    {I_VMOVSS, 3, {XMM_L16,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+27259, 179},
-    {I_VMOVSS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27266, 179},
-    {I_VMOVSS, 2, {XMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+27273, 179},
-    {I_VMOVSS, 3, {XMM_L16,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+27280, 179},
-    {I_VMOVSS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27287, 179},
-    {I_VMOVSS, 2, {MEMORY|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27294, 179},
-    {I_VMOVSS, 2, {XMMREG,MEMORY|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15162, 215},
-    {I_VMOVSS, 2, {MEMORY|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15170, 215},
-    {I_VMOVSS, 3, {XMMREG,XMMREG,XMMREG,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15178, 215},
-    {I_VMOVSS, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15186, 215},
-    {I_VMOVSS, 3, {XMMREG,XMMREG,XMMREG,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15194, 215},
-    {I_VMOVSS, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15202, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVUPD[] = {
-    {I_VMOVUPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27301, 179},
-    {I_VMOVUPD, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27308, 179},
-    {I_VMOVUPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27315, 179},
-    {I_VMOVUPD, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27322, 179},
-    {I_VMOVUPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15210, 214},
-    {I_VMOVUPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15218, 214},
-    {I_VMOVUPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15226, 215},
-    {I_VMOVUPD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15234, 214},
-    {I_VMOVUPD, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15242, 214},
-    {I_VMOVUPD, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15250, 215},
-    {I_VMOVUPD, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15258, 214},
-    {I_VMOVUPD, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15266, 214},
-    {I_VMOVUPD, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15274, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMOVUPS[] = {
-    {I_VMOVUPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27329, 179},
-    {I_VMOVUPS, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27336, 179},
-    {I_VMOVUPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27343, 179},
-    {I_VMOVUPS, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27350, 179},
-    {I_VMOVUPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15282, 214},
-    {I_VMOVUPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15290, 214},
-    {I_VMOVUPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15298, 215},
-    {I_VMOVUPS, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15306, 214},
-    {I_VMOVUPS, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15314, 214},
-    {I_VMOVUPS, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15322, 215},
-    {I_VMOVUPS, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15330, 214},
-    {I_VMOVUPS, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15338, 214},
-    {I_VMOVUPS, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15346, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMPSADBW[] = {
-    {I_VMPSADBW, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8346, 179},
-    {I_VMPSADBW, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8354, 179},
-    {I_VMPSADBW, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10514, 192},
-    {I_VMPSADBW, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10522, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMPTRLD[] = {
-    {I_VMPTRLD, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35260, 154},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMPTRST[] = {
-    {I_VMPTRST, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35266, 154},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMREAD[] = {
-    {I_VMREAD, 2, {RM_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25286, 155},
-    {I_VMREAD, 2, {RM_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25285, 156},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMRESUME[] = {
-    {I_VMRESUME, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38351, 154},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMRUN[] = {
-    {I_VMRUN, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38356, 153},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMSAVE[] = {
-    {I_VMSAVE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38361, 153},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMULPD[] = {
-    {I_VMULPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27357, 179},
-    {I_VMULPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27364, 179},
-    {I_VMULPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+27371, 179},
-    {I_VMULPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27378, 179},
-    {I_VMULPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15354, 214},
-    {I_VMULPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15362, 214},
-    {I_VMULPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15370, 214},
-    {I_VMULPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15378, 214},
-    {I_VMULPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+15386, 215},
-    {I_VMULPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+15394, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMULPS[] = {
-    {I_VMULPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27385, 179},
-    {I_VMULPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27392, 179},
-    {I_VMULPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+27399, 179},
-    {I_VMULPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27406, 179},
-    {I_VMULPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15402, 214},
-    {I_VMULPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15410, 214},
-    {I_VMULPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15418, 214},
-    {I_VMULPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15426, 214},
-    {I_VMULPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+15434, 215},
-    {I_VMULPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+15442, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMULSD[] = {
-    {I_VMULSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+27413, 179},
-    {I_VMULSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+27420, 179},
-    {I_VMULSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+15450, 215},
-    {I_VMULSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+15458, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMULSS[] = {
-    {I_VMULSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+27427, 179},
-    {I_VMULSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+27434, 179},
-    {I_VMULSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+15466, 215},
-    {I_VMULSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+15474, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMWRITE[] = {
-    {I_VMWRITE, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25293, 155},
-    {I_VMWRITE, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25292, 156},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMXOFF[] = {
-    {I_VMXOFF, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38366, 154},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VMXON[] = {
-    {I_VMXON, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35272, 154},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VORPD[] = {
-    {I_VORPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27441, 179},
-    {I_VORPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27448, 179},
-    {I_VORPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+27455, 179},
-    {I_VORPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27462, 179},
-    {I_VORPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15482, 216},
-    {I_VORPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15490, 216},
-    {I_VORPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15498, 216},
-    {I_VORPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15506, 216},
-    {I_VORPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15514, 217},
-    {I_VORPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15522, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VORPS[] = {
-    {I_VORPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27469, 179},
-    {I_VORPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27476, 179},
-    {I_VORPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+27483, 179},
-    {I_VORPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27490, 179},
-    {I_VORPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15530, 216},
-    {I_VORPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15538, 216},
-    {I_VORPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15546, 216},
-    {I_VORPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15554, 216},
-    {I_VORPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15562, 217},
-    {I_VORPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15570, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPABSB[] = {
-    {I_VPABSB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27497, 179},
-    {I_VPABSB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30647, 192},
-    {I_VPABSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15578, 218},
-    {I_VPABSB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15586, 218},
-    {I_VPABSB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15594, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPABSD[] = {
-    {I_VPABSD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27511, 179},
-    {I_VPABSD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30661, 192},
-    {I_VPABSD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15602, 214},
-    {I_VPABSD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15610, 214},
-    {I_VPABSD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15618, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPABSQ[] = {
-    {I_VPABSQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15626, 214},
-    {I_VPABSQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15634, 214},
-    {I_VPABSQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15642, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPABSW[] = {
-    {I_VPABSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27504, 179},
-    {I_VPABSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30654, 192},
-    {I_VPABSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15650, 218},
-    {I_VPABSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15658, 218},
-    {I_VPABSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15666, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPACKSSDW[] = {
-    {I_VPACKSSDW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27532, 179},
-    {I_VPACKSSDW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27539, 179},
-    {I_VPACKSSDW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30682, 192},
-    {I_VPACKSSDW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30689, 192},
-    {I_VPACKSSDW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15674, 218},
-    {I_VPACKSSDW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15682, 218},
-    {I_VPACKSSDW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15690, 218},
-    {I_VPACKSSDW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15698, 218},
-    {I_VPACKSSDW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15706, 219},
-    {I_VPACKSSDW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15714, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPACKSSWB[] = {
-    {I_VPACKSSWB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27518, 179},
-    {I_VPACKSSWB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27525, 179},
-    {I_VPACKSSWB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30668, 192},
-    {I_VPACKSSWB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30675, 192},
-    {I_VPACKSSWB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15722, 218},
-    {I_VPACKSSWB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15730, 218},
-    {I_VPACKSSWB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15738, 218},
-    {I_VPACKSSWB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15746, 218},
-    {I_VPACKSSWB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15754, 219},
-    {I_VPACKSSWB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15762, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPACKUSDW[] = {
-    {I_VPACKUSDW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27560, 179},
-    {I_VPACKUSDW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27567, 179},
-    {I_VPACKUSDW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30696, 192},
-    {I_VPACKUSDW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30703, 192},
-    {I_VPACKUSDW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15770, 218},
-    {I_VPACKUSDW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15778, 218},
-    {I_VPACKUSDW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15786, 218},
-    {I_VPACKUSDW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15794, 218},
-    {I_VPACKUSDW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15802, 219},
-    {I_VPACKUSDW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15810, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPACKUSWB[] = {
-    {I_VPACKUSWB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27546, 179},
-    {I_VPACKUSWB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27553, 179},
-    {I_VPACKUSWB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30710, 192},
-    {I_VPACKUSWB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30717, 192},
-    {I_VPACKUSWB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15818, 218},
-    {I_VPACKUSWB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15826, 218},
-    {I_VPACKUSWB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15834, 218},
-    {I_VPACKUSWB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15842, 218},
-    {I_VPACKUSWB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15850, 219},
-    {I_VPACKUSWB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15858, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPADDB[] = {
-    {I_VPADDB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27574, 179},
-    {I_VPADDB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27581, 179},
-    {I_VPADDB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30724, 192},
-    {I_VPADDB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30731, 192},
-    {I_VPADDB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15866, 218},
-    {I_VPADDB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15874, 218},
-    {I_VPADDB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15882, 218},
-    {I_VPADDB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15890, 218},
-    {I_VPADDB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15898, 219},
-    {I_VPADDB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15906, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPADDD[] = {
-    {I_VPADDD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27602, 179},
-    {I_VPADDD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27609, 179},
-    {I_VPADDD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30752, 192},
-    {I_VPADDD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30759, 192},
-    {I_VPADDD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15914, 214},
-    {I_VPADDD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15922, 214},
-    {I_VPADDD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15930, 214},
-    {I_VPADDD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15938, 214},
-    {I_VPADDD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15946, 215},
-    {I_VPADDD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15954, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPADDQ[] = {
-    {I_VPADDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27616, 179},
-    {I_VPADDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27623, 179},
-    {I_VPADDQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30766, 192},
-    {I_VPADDQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30773, 192},
-    {I_VPADDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15962, 214},
-    {I_VPADDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15970, 214},
-    {I_VPADDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15978, 214},
-    {I_VPADDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15986, 214},
-    {I_VPADDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15994, 215},
-    {I_VPADDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+16002, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPADDSB[] = {
-    {I_VPADDSB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27630, 179},
-    {I_VPADDSB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27637, 179},
-    {I_VPADDSB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30780, 192},
-    {I_VPADDSB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30787, 192},
-    {I_VPADDSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16010, 218},
-    {I_VPADDSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16018, 218},
-    {I_VPADDSB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16026, 218},
-    {I_VPADDSB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16034, 218},
-    {I_VPADDSB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16042, 219},
-    {I_VPADDSB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16050, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPADDSW[] = {
-    {I_VPADDSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27644, 179},
-    {I_VPADDSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27651, 179},
-    {I_VPADDSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30794, 192},
-    {I_VPADDSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30801, 192},
-    {I_VPADDSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16058, 218},
-    {I_VPADDSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16066, 218},
-    {I_VPADDSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16074, 218},
-    {I_VPADDSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16082, 218},
-    {I_VPADDSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16090, 219},
-    {I_VPADDSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16098, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPADDUSB[] = {
-    {I_VPADDUSB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27658, 179},
-    {I_VPADDUSB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27665, 179},
-    {I_VPADDUSB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30808, 192},
-    {I_VPADDUSB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30815, 192},
-    {I_VPADDUSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16106, 218},
-    {I_VPADDUSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16114, 218},
-    {I_VPADDUSB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16122, 218},
-    {I_VPADDUSB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16130, 218},
-    {I_VPADDUSB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16138, 219},
-    {I_VPADDUSB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16146, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPADDUSW[] = {
-    {I_VPADDUSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27672, 179},
-    {I_VPADDUSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27679, 179},
-    {I_VPADDUSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30822, 192},
-    {I_VPADDUSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30829, 192},
-    {I_VPADDUSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16154, 218},
-    {I_VPADDUSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16162, 218},
-    {I_VPADDUSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16170, 218},
-    {I_VPADDUSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16178, 218},
-    {I_VPADDUSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16186, 219},
-    {I_VPADDUSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16194, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPADDW[] = {
-    {I_VPADDW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27588, 179},
-    {I_VPADDW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27595, 179},
-    {I_VPADDW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30738, 192},
-    {I_VPADDW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30745, 192},
-    {I_VPADDW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16202, 218},
-    {I_VPADDW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16210, 218},
-    {I_VPADDW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16218, 218},
-    {I_VPADDW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16226, 218},
-    {I_VPADDW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16234, 219},
-    {I_VPADDW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16242, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPALIGNR[] = {
-    {I_VPALIGNR, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8362, 179},
-    {I_VPALIGNR, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8370, 179},
-    {I_VPALIGNR, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10530, 192},
-    {I_VPALIGNR, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10538, 192},
-    {I_VPALIGNR, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4824, 218},
-    {I_VPALIGNR, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4833, 218},
-    {I_VPALIGNR, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4842, 218},
-    {I_VPALIGNR, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4851, 218},
-    {I_VPALIGNR, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4860, 219},
-    {I_VPALIGNR, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4869, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPAND[] = {
-    {I_VPAND, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27686, 179},
-    {I_VPAND, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27693, 179},
-    {I_VPAND, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30836, 192},
-    {I_VPAND, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30843, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPANDD[] = {
-    {I_VPANDD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16250, 214},
-    {I_VPANDD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+16258, 214},
-    {I_VPANDD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16266, 214},
-    {I_VPANDD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+16274, 214},
-    {I_VPANDD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16282, 215},
-    {I_VPANDD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+16290, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPANDN[] = {
-    {I_VPANDN, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27700, 179},
-    {I_VPANDN, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27707, 179},
-    {I_VPANDN, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30850, 192},
-    {I_VPANDN, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30857, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPANDND[] = {
-    {I_VPANDND, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16298, 214},
-    {I_VPANDND, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+16306, 214},
-    {I_VPANDND, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16314, 214},
-    {I_VPANDND, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+16322, 214},
-    {I_VPANDND, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16330, 215},
-    {I_VPANDND, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+16338, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPANDNQ[] = {
-    {I_VPANDNQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16346, 214},
-    {I_VPANDNQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+16354, 214},
-    {I_VPANDNQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16362, 214},
-    {I_VPANDNQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+16370, 214},
-    {I_VPANDNQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16378, 215},
-    {I_VPANDNQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+16386, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPANDQ[] = {
-    {I_VPANDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16394, 214},
-    {I_VPANDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+16402, 214},
-    {I_VPANDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16410, 214},
-    {I_VPANDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+16418, 214},
-    {I_VPANDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16426, 215},
-    {I_VPANDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+16434, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPAVGB[] = {
-    {I_VPAVGB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27714, 179},
-    {I_VPAVGB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27721, 179},
-    {I_VPAVGB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30864, 192},
-    {I_VPAVGB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30871, 192},
-    {I_VPAVGB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16442, 218},
-    {I_VPAVGB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16450, 218},
-    {I_VPAVGB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16458, 218},
-    {I_VPAVGB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16466, 218},
-    {I_VPAVGB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16474, 219},
-    {I_VPAVGB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16482, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPAVGW[] = {
-    {I_VPAVGW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27728, 179},
-    {I_VPAVGW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27735, 179},
-    {I_VPAVGW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30878, 192},
-    {I_VPAVGW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30885, 192},
-    {I_VPAVGW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16490, 218},
-    {I_VPAVGW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16498, 218},
-    {I_VPAVGW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16506, 218},
-    {I_VPAVGW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16514, 218},
-    {I_VPAVGW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16522, 219},
-    {I_VPAVGW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16530, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPBLENDD[] = {
-    {I_VPBLENDD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10762, 192},
-    {I_VPBLENDD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10770, 192},
-    {I_VPBLENDD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10778, 192},
-    {I_VPBLENDD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10786, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPBLENDMB[] = {
-    {I_VPBLENDMB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16538, 218},
-    {I_VPBLENDMB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16546, 218},
-    {I_VPBLENDMB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16554, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPBLENDMD[] = {
-    {I_VPBLENDMD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16562, 214},
-    {I_VPBLENDMD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16570, 214},
-    {I_VPBLENDMD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16578, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPBLENDMQ[] = {
-    {I_VPBLENDMQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16586, 214},
-    {I_VPBLENDMQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16594, 214},
-    {I_VPBLENDMQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16602, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPBLENDMW[] = {
-    {I_VPBLENDMW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16610, 218},
-    {I_VPBLENDMW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16618, 218},
-    {I_VPBLENDMW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16626, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPBLENDVB[] = {
-    {I_VPBLENDVB, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+8378, 179},
-    {I_VPBLENDVB, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+8386, 179},
-    {I_VPBLENDVB, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10546, 192},
-    {I_VPBLENDVB, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10554, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPBLENDW[] = {
-    {I_VPBLENDW, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8394, 179},
-    {I_VPBLENDW, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8402, 179},
-    {I_VPBLENDW, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10562, 192},
-    {I_VPBLENDW, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10570, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPBROADCASTB[] = {
-    {I_VPBROADCASTB, 2, {XMM_L16,MEMORY|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31921, 192},
-    {I_VPBROADCASTB, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31921, 192},
-    {I_VPBROADCASTB, 2, {YMM_L16,MEMORY|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31928, 192},
-    {I_VPBROADCASTB, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31928, 192},
-    {I_VPBROADCASTB, 2, {XMMREG,RM_XMM|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16634, 218},
-    {I_VPBROADCASTB, 2, {YMMREG,RM_XMM|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16642, 218},
-    {I_VPBROADCASTB, 2, {ZMMREG,RM_XMM|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16650, 219},
-    {I_VPBROADCASTB, 2, {XMMREG,REG_GPR|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16658, 218},
-    {I_VPBROADCASTB, 2, {XMMREG,REG_GPR|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16658, 218},
-    {I_VPBROADCASTB, 2, {XMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16658, 218},
-    {I_VPBROADCASTB, 2, {XMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16658, 218},
-    {I_VPBROADCASTB, 2, {YMMREG,REG_GPR|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16666, 218},
-    {I_VPBROADCASTB, 2, {YMMREG,REG_GPR|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16666, 218},
-    {I_VPBROADCASTB, 2, {YMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16666, 218},
-    {I_VPBROADCASTB, 2, {YMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16666, 218},
-    {I_VPBROADCASTB, 2, {ZMMREG,REG_GPR|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16674, 219},
-    {I_VPBROADCASTB, 2, {ZMMREG,REG_GPR|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16674, 219},
-    {I_VPBROADCASTB, 2, {ZMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16674, 219},
-    {I_VPBROADCASTB, 2, {ZMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16674, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPBROADCASTD[] = {
-    {I_VPBROADCASTD, 2, {XMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+31949, 192},
-    {I_VPBROADCASTD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31949, 192},
-    {I_VPBROADCASTD, 2, {YMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+31956, 192},
-    {I_VPBROADCASTD, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31956, 192},
-    {I_VPBROADCASTD, 2, {XMMREG,MEMORY|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16682, 214},
-    {I_VPBROADCASTD, 2, {YMMREG,MEMORY|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16690, 214},
-    {I_VPBROADCASTD, 2, {ZMMREG,MEMORY|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16698, 215},
-    {I_VPBROADCASTD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16706, 214},
-    {I_VPBROADCASTD, 2, {YMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16714, 214},
-    {I_VPBROADCASTD, 2, {ZMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16722, 215},
-    {I_VPBROADCASTD, 2, {XMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16730, 214},
-    {I_VPBROADCASTD, 2, {YMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16738, 214},
-    {I_VPBROADCASTD, 2, {ZMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16746, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPBROADCASTMB2Q[] = {
-    {I_VPBROADCASTMB2Q, 2, {XMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+16754, 222},
-    {I_VPBROADCASTMB2Q, 2, {YMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+16762, 222},
-    {I_VPBROADCASTMB2Q, 2, {ZMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+16770, 223},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPBROADCASTMW2D[] = {
-    {I_VPBROADCASTMW2D, 2, {XMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+16778, 222},
-    {I_VPBROADCASTMW2D, 2, {YMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+16786, 222},
-    {I_VPBROADCASTMW2D, 2, {ZMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+16794, 223},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPBROADCASTQ[] = {
-    {I_VPBROADCASTQ, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+31963, 192},
-    {I_VPBROADCASTQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31963, 192},
-    {I_VPBROADCASTQ, 2, {YMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+31970, 192},
-    {I_VPBROADCASTQ, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31970, 192},
-    {I_VPBROADCASTQ, 2, {XMMREG,MEMORY|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16802, 214},
-    {I_VPBROADCASTQ, 2, {YMMREG,MEMORY|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16810, 214},
-    {I_VPBROADCASTQ, 2, {ZMMREG,MEMORY|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16818, 215},
-    {I_VPBROADCASTQ, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16826, 214},
-    {I_VPBROADCASTQ, 2, {YMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16834, 214},
-    {I_VPBROADCASTQ, 2, {ZMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16842, 215},
-    {I_VPBROADCASTQ, 2, {XMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16850, 214},
-    {I_VPBROADCASTQ, 2, {YMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16858, 214},
-    {I_VPBROADCASTQ, 2, {ZMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16866, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPBROADCASTW[] = {
-    {I_VPBROADCASTW, 2, {XMM_L16,MEMORY|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31935, 192},
-    {I_VPBROADCASTW, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31935, 192},
-    {I_VPBROADCASTW, 2, {YMM_L16,MEMORY|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31942, 192},
-    {I_VPBROADCASTW, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31942, 192},
-    {I_VPBROADCASTW, 2, {XMMREG,RM_XMM|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16874, 218},
-    {I_VPBROADCASTW, 2, {YMMREG,RM_XMM|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16882, 218},
-    {I_VPBROADCASTW, 2, {ZMMREG,RM_XMM|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16890, 219},
-    {I_VPBROADCASTW, 2, {XMMREG,REG_GPR|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16898, 218},
-    {I_VPBROADCASTW, 2, {XMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16898, 218},
-    {I_VPBROADCASTW, 2, {XMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16898, 218},
-    {I_VPBROADCASTW, 2, {YMMREG,REG_GPR|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16906, 218},
-    {I_VPBROADCASTW, 2, {YMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16906, 218},
-    {I_VPBROADCASTW, 2, {YMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16906, 218},
-    {I_VPBROADCASTW, 2, {ZMMREG,REG_GPR|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16914, 219},
-    {I_VPBROADCASTW, 2, {ZMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16914, 219},
-    {I_VPBROADCASTW, 2, {ZMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16914, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCLMULHQHQDQ[] = {
-    {I_VPCLMULHQHQDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+3618, 179},
-    {I_VPCLMULHQHQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3627, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCLMULHQLQDQ[] = {
-    {I_VPCLMULHQLQDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+3582, 179},
-    {I_VPCLMULHQLQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3591, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCLMULLQHQDQ[] = {
-    {I_VPCLMULLQHQDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+3600, 179},
-    {I_VPCLMULLQHQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3609, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCLMULLQLQDQ[] = {
-    {I_VPCLMULLQLQDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+3564, 179},
-    {I_VPCLMULLQLQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3573, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCLMULQDQ[] = {
-    {I_VPCLMULQDQ, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8914, 179},
-    {I_VPCLMULQDQ, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8922, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMOV[] = {
-    {I_VPCMOV, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10034, 191},
-    {I_VPCMOV, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10042, 191},
-    {I_VPCMOV, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10050, 191},
-    {I_VPCMOV, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10058, 191},
-    {I_VPCMOV, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+10066, 191},
-    {I_VPCMOV, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+10074, 191},
-    {I_VPCMOV, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+10082, 191},
-    {I_VPCMOV, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+10090, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPB[] = {
-    {I_VPCMPB, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+4878, 218},
-    {I_VPCMPB, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+4887, 218},
-    {I_VPCMPB, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+4896, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPD[] = {
-    {I_VPCMPD, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+4905, 214},
-    {I_VPCMPD, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+4914, 214},
-    {I_VPCMPD, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+4923, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPEQB[] = {
-    {I_VPCMPEQB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27742, 179},
-    {I_VPCMPEQB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27749, 179},
-    {I_VPCMPEQB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30892, 192},
-    {I_VPCMPEQB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30899, 192},
-    {I_VPCMPEQB, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+16922, 218},
-    {I_VPCMPEQB, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+16930, 218},
-    {I_VPCMPEQB, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+16938, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPEQD[] = {
-    {I_VPCMPEQD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27770, 179},
-    {I_VPCMPEQD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27777, 179},
-    {I_VPCMPEQD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30920, 192},
-    {I_VPCMPEQD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30927, 192},
-    {I_VPCMPEQD, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+16946, 214},
-    {I_VPCMPEQD, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+16954, 214},
-    {I_VPCMPEQD, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+16962, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPEQQ[] = {
-    {I_VPCMPEQQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27784, 179},
-    {I_VPCMPEQQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27791, 179},
-    {I_VPCMPEQQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30934, 192},
-    {I_VPCMPEQQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30941, 192},
-    {I_VPCMPEQQ, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+16970, 214},
-    {I_VPCMPEQQ, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+16978, 214},
-    {I_VPCMPEQQ, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+16986, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPEQW[] = {
-    {I_VPCMPEQW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27756, 179},
-    {I_VPCMPEQW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27763, 179},
-    {I_VPCMPEQW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30906, 192},
-    {I_VPCMPEQW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30913, 192},
-    {I_VPCMPEQW, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+16994, 218},
-    {I_VPCMPEQW, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17002, 218},
-    {I_VPCMPEQW, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17010, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPESTRI[] = {
-    {I_VPCMPESTRI, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8410, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPESTRM[] = {
-    {I_VPCMPESTRM, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8418, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPGTB[] = {
-    {I_VPCMPGTB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27798, 179},
-    {I_VPCMPGTB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27805, 179},
-    {I_VPCMPGTB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30948, 192},
-    {I_VPCMPGTB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30955, 192},
-    {I_VPCMPGTB, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17018, 218},
-    {I_VPCMPGTB, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17026, 218},
-    {I_VPCMPGTB, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17034, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPGTD[] = {
-    {I_VPCMPGTD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27826, 179},
-    {I_VPCMPGTD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27833, 179},
-    {I_VPCMPGTD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30976, 192},
-    {I_VPCMPGTD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30983, 192},
-    {I_VPCMPGTD, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+17042, 214},
-    {I_VPCMPGTD, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+17050, 214},
-    {I_VPCMPGTD, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+17058, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPGTQ[] = {
-    {I_VPCMPGTQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27840, 179},
-    {I_VPCMPGTQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27847, 179},
-    {I_VPCMPGTQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30990, 192},
-    {I_VPCMPGTQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30997, 192},
-    {I_VPCMPGTQ, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+17066, 214},
-    {I_VPCMPGTQ, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+17074, 214},
-    {I_VPCMPGTQ, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+17082, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPGTW[] = {
-    {I_VPCMPGTW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27812, 179},
-    {I_VPCMPGTW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27819, 179},
-    {I_VPCMPGTW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30962, 192},
-    {I_VPCMPGTW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30969, 192},
-    {I_VPCMPGTW, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17090, 218},
-    {I_VPCMPGTW, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17098, 218},
-    {I_VPCMPGTW, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17106, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPISTRI[] = {
-    {I_VPCMPISTRI, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8426, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPISTRM[] = {
-    {I_VPCMPISTRM, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8434, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPQ[] = {
-    {I_VPCMPQ, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+4932, 214},
-    {I_VPCMPQ, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+4941, 214},
-    {I_VPCMPQ, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+4950, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPUB[] = {
-    {I_VPCMPUB, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+4959, 218},
-    {I_VPCMPUB, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+4968, 218},
-    {I_VPCMPUB, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+4977, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPUD[] = {
-    {I_VPCMPUD, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+4986, 214},
-    {I_VPCMPUD, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+4995, 214},
-    {I_VPCMPUD, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+5004, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPUQ[] = {
-    {I_VPCMPUQ, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+5013, 214},
-    {I_VPCMPUQ, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+5022, 214},
-    {I_VPCMPUQ, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+5031, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPUW[] = {
-    {I_VPCMPUW, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+5040, 218},
-    {I_VPCMPUW, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+5049, 218},
-    {I_VPCMPUW, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+5058, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCMPW[] = {
-    {I_VPCMPW, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+5067, 218},
-    {I_VPCMPW, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+5076, 218},
-    {I_VPCMPW, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+5085, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCOMB[] = {
-    {I_VPCOMB, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10098, 191},
-    {I_VPCOMB, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10106, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCOMD[] = {
-    {I_VPCOMD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10114, 191},
-    {I_VPCOMD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10122, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCOMPRESSD[] = {
-    {I_VPCOMPRESSD, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17114, 214},
-    {I_VPCOMPRESSD, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17122, 214},
-    {I_VPCOMPRESSD, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17130, 215},
-    {I_VPCOMPRESSD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17138, 214},
-    {I_VPCOMPRESSD, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17146, 214},
-    {I_VPCOMPRESSD, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17154, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCOMPRESSQ[] = {
-    {I_VPCOMPRESSQ, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17162, 214},
-    {I_VPCOMPRESSQ, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17170, 214},
-    {I_VPCOMPRESSQ, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17178, 215},
-    {I_VPCOMPRESSQ, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17186, 214},
-    {I_VPCOMPRESSQ, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17194, 214},
-    {I_VPCOMPRESSQ, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17202, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCOMQ[] = {
-    {I_VPCOMQ, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10130, 191},
-    {I_VPCOMQ, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10138, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCOMUB[] = {
-    {I_VPCOMUB, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10146, 191},
-    {I_VPCOMUB, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10154, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCOMUD[] = {
-    {I_VPCOMUD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10162, 191},
-    {I_VPCOMUD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10170, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCOMUQ[] = {
-    {I_VPCOMUQ, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10178, 191},
-    {I_VPCOMUQ, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10186, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCOMUW[] = {
-    {I_VPCOMUW, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10194, 191},
-    {I_VPCOMUW, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10202, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCOMW[] = {
-    {I_VPCOMW, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10210, 191},
-    {I_VPCOMW, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10218, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCONFLICTD[] = {
-    {I_VPCONFLICTD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17210, 222},
-    {I_VPCONFLICTD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17218, 222},
-    {I_VPCONFLICTD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17226, 223},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPCONFLICTQ[] = {
-    {I_VPCONFLICTQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17234, 222},
-    {I_VPCONFLICTQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17242, 222},
-    {I_VPCONFLICTQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17250, 223},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERM2F128[] = {
-    {I_VPERM2F128, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8474, 179},
-    {I_VPERM2F128, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8482, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERM2I128[] = {
-    {I_VPERM2I128, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10810, 192},
-    {I_VPERM2I128, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10818, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMB[] = {
-    {I_VPERMB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17258, 224},
-    {I_VPERMB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17266, 224},
-    {I_VPERMB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17274, 224},
-    {I_VPERMB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17282, 224},
-    {I_VPERMB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17290, 225},
-    {I_VPERMB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17298, 225},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMD[] = {
-    {I_VPERMD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31977, 192},
-    {I_VPERMD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31984, 192},
-    {I_VPERMD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17306, 214},
-    {I_VPERMD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17314, 214},
-    {I_VPERMD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17322, 215},
-    {I_VPERMD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17330, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMI2B[] = {
-    {I_VPERMI2B, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17338, 224},
-    {I_VPERMI2B, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17346, 224},
-    {I_VPERMI2B, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17354, 225},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMI2D[] = {
-    {I_VPERMI2D, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17362, 214},
-    {I_VPERMI2D, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17370, 214},
-    {I_VPERMI2D, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17378, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMI2PD[] = {
-    {I_VPERMI2PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17386, 214},
-    {I_VPERMI2PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17394, 214},
-    {I_VPERMI2PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17402, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMI2PS[] = {
-    {I_VPERMI2PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17410, 214},
-    {I_VPERMI2PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17418, 214},
-    {I_VPERMI2PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17426, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMI2Q[] = {
-    {I_VPERMI2Q, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17434, 214},
-    {I_VPERMI2Q, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17442, 214},
-    {I_VPERMI2Q, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17450, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMI2W[] = {
-    {I_VPERMI2W, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17458, 218},
-    {I_VPERMI2W, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17466, 218},
-    {I_VPERMI2W, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17474, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMILPD[] = {
-    {I_VPERMILPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27854, 179},
-    {I_VPERMILPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27861, 179},
-    {I_VPERMILPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+27868, 179},
-    {I_VPERMILPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27875, 179},
-    {I_VPERMILPD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8442, 179},
-    {I_VPERMILPD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8450, 179},
-    {I_VPERMILPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5094, 214},
-    {I_VPERMILPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5103, 214},
-    {I_VPERMILPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5112, 215},
-    {I_VPERMILPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17482, 214},
-    {I_VPERMILPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17490, 214},
-    {I_VPERMILPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17498, 214},
-    {I_VPERMILPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17506, 214},
-    {I_VPERMILPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17514, 215},
-    {I_VPERMILPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17522, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMILPS[] = {
-    {I_VPERMILPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27882, 179},
-    {I_VPERMILPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27889, 179},
-    {I_VPERMILPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+27896, 179},
-    {I_VPERMILPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27903, 179},
-    {I_VPERMILPS, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8458, 179},
-    {I_VPERMILPS, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8466, 179},
-    {I_VPERMILPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5121, 214},
-    {I_VPERMILPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5130, 214},
-    {I_VPERMILPS, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5139, 215},
-    {I_VPERMILPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17530, 214},
-    {I_VPERMILPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17538, 214},
-    {I_VPERMILPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17546, 214},
-    {I_VPERMILPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17554, 214},
-    {I_VPERMILPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17562, 215},
-    {I_VPERMILPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17570, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMPD[] = {
-    {I_VPERMPD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10794, 192},
-    {I_VPERMPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5148, 214},
-    {I_VPERMPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5157, 215},
-    {I_VPERMPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17578, 214},
-    {I_VPERMPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17586, 214},
-    {I_VPERMPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17594, 215},
-    {I_VPERMPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17602, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMPS[] = {
-    {I_VPERMPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31991, 192},
-    {I_VPERMPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31998, 192},
-    {I_VPERMPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17610, 214},
-    {I_VPERMPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17618, 214},
-    {I_VPERMPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17626, 215},
-    {I_VPERMPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17634, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMQ[] = {
-    {I_VPERMQ, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10802, 192},
-    {I_VPERMQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5166, 214},
-    {I_VPERMQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5175, 215},
-    {I_VPERMQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17642, 214},
-    {I_VPERMQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17650, 214},
-    {I_VPERMQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17658, 215},
-    {I_VPERMQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17666, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMT2B[] = {
-    {I_VPERMT2B, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17674, 224},
-    {I_VPERMT2B, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17682, 224},
-    {I_VPERMT2B, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17690, 225},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMT2D[] = {
-    {I_VPERMT2D, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17698, 214},
-    {I_VPERMT2D, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17706, 214},
-    {I_VPERMT2D, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17714, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMT2PD[] = {
-    {I_VPERMT2PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17722, 214},
-    {I_VPERMT2PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17730, 214},
-    {I_VPERMT2PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17738, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMT2PS[] = {
-    {I_VPERMT2PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17746, 214},
-    {I_VPERMT2PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17754, 214},
-    {I_VPERMT2PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17762, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMT2Q[] = {
-    {I_VPERMT2Q, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17770, 214},
-    {I_VPERMT2Q, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17778, 214},
-    {I_VPERMT2Q, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17786, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMT2W[] = {
-    {I_VPERMT2W, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17794, 218},
-    {I_VPERMT2W, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17802, 218},
-    {I_VPERMT2W, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17810, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPERMW[] = {
-    {I_VPERMW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17818, 218},
-    {I_VPERMW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17826, 218},
-    {I_VPERMW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17834, 218},
-    {I_VPERMW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17842, 218},
-    {I_VPERMW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17850, 219},
-    {I_VPERMW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17858, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPEXPANDD[] = {
-    {I_VPEXPANDD, 2, {XMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17866, 214},
-    {I_VPEXPANDD, 2, {YMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17874, 214},
-    {I_VPEXPANDD, 2, {ZMMREG,MEMORY|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17882, 215},
-    {I_VPEXPANDD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17866, 214},
-    {I_VPEXPANDD, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17874, 214},
-    {I_VPEXPANDD, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17882, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPEXPANDQ[] = {
-    {I_VPEXPANDQ, 2, {XMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17890, 214},
-    {I_VPEXPANDQ, 2, {YMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17898, 214},
-    {I_VPEXPANDQ, 2, {ZMMREG,MEMORY|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17906, 215},
-    {I_VPEXPANDQ, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17890, 214},
-    {I_VPEXPANDQ, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17898, 214},
-    {I_VPEXPANDQ, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17906, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPEXTRB[] = {
-    {I_VPEXTRB, 3, {REG_GPR|BITS64,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8490, 182},
-    {I_VPEXTRB, 3, {REG_GPR|BITS32,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8490, 179},
-    {I_VPEXTRB, 3, {MEMORY|BITS8,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8490, 179},
-    {I_VPEXTRB, 3, {REG_GPR|BITS8,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5184, 219},
-    {I_VPEXTRB, 3, {REG_GPR|BITS16,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5184, 219},
-    {I_VPEXTRB, 3, {REG_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5184, 219},
-    {I_VPEXTRB, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5184, 219},
-    {I_VPEXTRB, 3, {MEMORY|BITS8,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5184, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPEXTRD[] = {
-    {I_VPEXTRD, 3, {REG_GPR|BITS64,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8514, 182},
-    {I_VPEXTRD, 3, {RM_GPR|BITS32,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8514, 179},
-    {I_VPEXTRD, 3, {RM_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5193, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPEXTRQ[] = {
-    {I_VPEXTRQ, 3, {RM_GPR|BITS64,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8522, 182},
-    {I_VPEXTRQ, 3, {RM_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5202, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPEXTRW[] = {
-    {I_VPEXTRW, 3, {REG_GPR|BITS64,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8498, 182},
-    {I_VPEXTRW, 3, {REG_GPR|BITS32,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8498, 179},
-    {I_VPEXTRW, 3, {REG_GPR|BITS64,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8506, 182},
-    {I_VPEXTRW, 3, {REG_GPR|BITS32,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8506, 179},
-    {I_VPEXTRW, 3, {MEMORY|BITS16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8506, 179},
-    {I_VPEXTRW, 3, {REG_GPR|BITS16,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5211, 219},
-    {I_VPEXTRW, 3, {REG_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5211, 219},
-    {I_VPEXTRW, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5211, 219},
-    {I_VPEXTRW, 3, {MEMORY|BITS16,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5211, 219},
-    {I_VPEXTRW, 3, {REG_GPR|BITS16,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5220, 219},
-    {I_VPEXTRW, 3, {REG_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5220, 219},
-    {I_VPEXTRW, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5220, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPGATHERDD[] = {
-    {I_VPGATHERDD, 3, {XMM_L16,XMEM|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10914, 192},
-    {I_VPGATHERDD, 3, {YMM_L16,YMEM|BITS32,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10930, 192},
-    {I_VPGATHERDD, 2, {XMMREG,XMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5229, 214},
-    {I_VPGATHERDD, 2, {YMMREG,YMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5238, 214},
-    {I_VPGATHERDD, 2, {ZMMREG,ZMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5247, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPGATHERDQ[] = {
-    {I_VPGATHERDQ, 3, {XMM_L16,XMEM|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10946, 192},
-    {I_VPGATHERDQ, 3, {YMM_L16,XMEM|BITS64,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10962, 192},
-    {I_VPGATHERDQ, 2, {XMMREG,XMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5256, 214},
-    {I_VPGATHERDQ, 2, {YMMREG,XMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5265, 214},
-    {I_VPGATHERDQ, 2, {ZMMREG,YMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5274, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPGATHERQD[] = {
-    {I_VPGATHERQD, 3, {XMM_L16,XMEM|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10922, 192},
-    {I_VPGATHERQD, 3, {XMM_L16,YMEM|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10938, 192},
-    {I_VPGATHERQD, 2, {XMMREG,XMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5283, 214},
-    {I_VPGATHERQD, 2, {XMMREG,YMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5292, 214},
-    {I_VPGATHERQD, 2, {YMMREG,ZMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5301, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPGATHERQQ[] = {
-    {I_VPGATHERQQ, 3, {XMM_L16,XMEM|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10954, 192},
-    {I_VPGATHERQQ, 3, {YMM_L16,YMEM|BITS64,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10970, 192},
-    {I_VPGATHERQQ, 2, {XMMREG,XMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5310, 214},
-    {I_VPGATHERQQ, 2, {YMMREG,YMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5319, 214},
-    {I_VPGATHERQQ, 2, {ZMMREG,ZMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5328, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDBD[] = {
-    {I_VPHADDBD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30101, 191},
-    {I_VPHADDBD, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30108, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDBQ[] = {
-    {I_VPHADDBQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30115, 191},
-    {I_VPHADDBQ, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30122, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDBW[] = {
-    {I_VPHADDBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30129, 191},
-    {I_VPHADDBW, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30136, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDD[] = {
-    {I_VPHADDD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27924, 179},
-    {I_VPHADDD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27931, 179},
-    {I_VPHADDD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31018, 192},
-    {I_VPHADDD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31025, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDDQ[] = {
-    {I_VPHADDDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30143, 191},
-    {I_VPHADDDQ, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30150, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDSW[] = {
-    {I_VPHADDSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27938, 179},
-    {I_VPHADDSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27945, 179},
-    {I_VPHADDSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31032, 192},
-    {I_VPHADDSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31039, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDUBD[] = {
-    {I_VPHADDUBD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30157, 191},
-    {I_VPHADDUBD, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30164, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDUBQ[] = {
-    {I_VPHADDUBQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30171, 191},
-    {I_VPHADDUBQ, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30178, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDUBW[] = {
-    {I_VPHADDUBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30185, 191},
-    {I_VPHADDUBW, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30192, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDUDQ[] = {
-    {I_VPHADDUDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30199, 191},
-    {I_VPHADDUDQ, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30206, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDUWD[] = {
-    {I_VPHADDUWD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30213, 191},
-    {I_VPHADDUWD, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30220, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDUWQ[] = {
-    {I_VPHADDUWQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30227, 191},
-    {I_VPHADDUWQ, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30234, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDW[] = {
-    {I_VPHADDW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27910, 179},
-    {I_VPHADDW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27917, 179},
-    {I_VPHADDW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31004, 192},
-    {I_VPHADDW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31011, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDWD[] = {
-    {I_VPHADDWD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30241, 191},
-    {I_VPHADDWD, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30248, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHADDWQ[] = {
-    {I_VPHADDWQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30255, 191},
-    {I_VPHADDWQ, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30262, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHMINPOSUW[] = {
-    {I_VPHMINPOSUW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27952, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHSUBBW[] = {
-    {I_VPHSUBBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30269, 191},
-    {I_VPHSUBBW, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30276, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHSUBD[] = {
-    {I_VPHSUBD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27973, 179},
-    {I_VPHSUBD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27980, 179},
-    {I_VPHSUBD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31060, 192},
-    {I_VPHSUBD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31067, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHSUBDQ[] = {
-    {I_VPHSUBDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30283, 191},
-    {I_VPHSUBDQ, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30290, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHSUBSW[] = {
-    {I_VPHSUBSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27987, 179},
-    {I_VPHSUBSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27994, 179},
-    {I_VPHSUBSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31074, 192},
-    {I_VPHSUBSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31081, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHSUBW[] = {
-    {I_VPHSUBW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27959, 179},
-    {I_VPHSUBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27966, 179},
-    {I_VPHSUBW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31046, 192},
-    {I_VPHSUBW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31053, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPHSUBWD[] = {
-    {I_VPHSUBWD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30297, 191},
-    {I_VPHSUBWD, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30304, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPINSRB[] = {
-    {I_VPINSRB, 4, {XMM_L16,XMM_L16,MEMORY|BITS8,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8530, 179},
-    {I_VPINSRB, 3, {XMM_L16,MEMORY|BITS8,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8538, 179},
-    {I_VPINSRB, 4, {XMM_L16,XMM_L16,RM_GPR|BITS8,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8530, 179},
-    {I_VPINSRB, 3, {XMM_L16,RM_GPR|BITS8,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8538, 179},
-    {I_VPINSRB, 4, {XMM_L16,XMM_L16,REG_GPR|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8530, 179},
-    {I_VPINSRB, 3, {XMM_L16,REG_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8538, 179},
-    {I_VPINSRB, 4, {XMMREG,XMMREG,REG_GPR|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+5337, 219},
-    {I_VPINSRB, 3, {XMMREG,REG_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5346, 219},
-    {I_VPINSRB, 4, {XMMREG,XMMREG,MEMORY|BITS8,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+5337, 219},
-    {I_VPINSRB, 3, {XMMREG,MEMORY|BITS8,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5346, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPINSRD[] = {
-    {I_VPINSRD, 4, {XMM_L16,XMM_L16,MEMORY|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8562, 179},
-    {I_VPINSRD, 3, {XMM_L16,MEMORY|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8570, 179},
-    {I_VPINSRD, 4, {XMM_L16,XMM_L16,RM_GPR|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8562, 179},
-    {I_VPINSRD, 3, {XMM_L16,RM_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8570, 179},
-    {I_VPINSRD, 4, {XMMREG,XMMREG,RM_GPR|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+5355, 217},
-    {I_VPINSRD, 3, {XMMREG,RM_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5364, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPINSRQ[] = {
-    {I_VPINSRQ, 4, {XMM_L16,XMM_L16,MEMORY|BITS64,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8578, 182},
-    {I_VPINSRQ, 3, {XMM_L16,MEMORY|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8586, 182},
-    {I_VPINSRQ, 4, {XMM_L16,XMM_L16,RM_GPR|BITS64,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8578, 182},
-    {I_VPINSRQ, 3, {XMM_L16,RM_GPR|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8586, 182},
-    {I_VPINSRQ, 4, {XMMREG,XMMREG,RM_GPR|BITS64,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+5373, 217},
-    {I_VPINSRQ, 3, {XMMREG,RM_GPR|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5382, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPINSRW[] = {
-    {I_VPINSRW, 4, {XMM_L16,XMM_L16,MEMORY|BITS16,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8546, 179},
-    {I_VPINSRW, 3, {XMM_L16,MEMORY|BITS16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8554, 179},
-    {I_VPINSRW, 4, {XMM_L16,XMM_L16,RM_GPR|BITS16,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8546, 179},
-    {I_VPINSRW, 3, {XMM_L16,RM_GPR|BITS16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8554, 179},
-    {I_VPINSRW, 4, {XMM_L16,XMM_L16,REG_GPR|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8546, 179},
-    {I_VPINSRW, 3, {XMM_L16,REG_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8554, 179},
-    {I_VPINSRW, 4, {XMMREG,XMMREG,REG_GPR|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+5391, 219},
-    {I_VPINSRW, 3, {XMMREG,REG_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5400, 219},
-    {I_VPINSRW, 4, {XMMREG,XMMREG,MEMORY|BITS16,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+5391, 219},
-    {I_VPINSRW, 3, {XMMREG,MEMORY|BITS16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5400, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPLZCNTD[] = {
-    {I_VPLZCNTD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17914, 222},
-    {I_VPLZCNTD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17922, 222},
-    {I_VPLZCNTD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17930, 223},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPLZCNTQ[] = {
-    {I_VPLZCNTQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17938, 222},
-    {I_VPLZCNTQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17946, 222},
-    {I_VPLZCNTQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17954, 223},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMACSDD[] = {
-    {I_VPMACSDD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10226, 191},
-    {I_VPMACSDD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10234, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMACSDQH[] = {
-    {I_VPMACSDQH, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10242, 191},
-    {I_VPMACSDQH, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10250, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMACSDQL[] = {
-    {I_VPMACSDQL, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10258, 191},
-    {I_VPMACSDQL, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10266, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMACSSDD[] = {
-    {I_VPMACSSDD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10274, 191},
-    {I_VPMACSSDD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10282, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMACSSDQH[] = {
-    {I_VPMACSSDQH, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10290, 191},
-    {I_VPMACSSDQH, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10298, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMACSSDQL[] = {
-    {I_VPMACSSDQL, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10306, 191},
-    {I_VPMACSSDQL, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10314, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMACSSWD[] = {
-    {I_VPMACSSWD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10322, 191},
-    {I_VPMACSSWD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10330, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMACSSWW[] = {
-    {I_VPMACSSWW, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10338, 191},
-    {I_VPMACSSWW, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10346, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMACSWD[] = {
-    {I_VPMACSWD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10354, 191},
-    {I_VPMACSWD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10362, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMACSWW[] = {
-    {I_VPMACSWW, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10370, 191},
-    {I_VPMACSWW, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10378, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMADCSSWD[] = {
-    {I_VPMADCSSWD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10386, 191},
-    {I_VPMADCSSWD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10394, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMADCSWD[] = {
-    {I_VPMADCSWD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10402, 191},
-    {I_VPMADCSWD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10410, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMADD52HUQ[] = {
-    {I_VPMADD52HUQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17962, 226},
-    {I_VPMADD52HUQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17970, 226},
-    {I_VPMADD52HUQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17978, 227},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMADD52LUQ[] = {
-    {I_VPMADD52LUQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17986, 226},
-    {I_VPMADD52LUQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17994, 226},
-    {I_VPMADD52LUQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18002, 227},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMADDUBSW[] = {
-    {I_VPMADDUBSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28015, 179},
-    {I_VPMADDUBSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28022, 179},
-    {I_VPMADDUBSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31088, 192},
-    {I_VPMADDUBSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31095, 192},
-    {I_VPMADDUBSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18010, 218},
-    {I_VPMADDUBSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18018, 218},
-    {I_VPMADDUBSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18026, 218},
-    {I_VPMADDUBSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18034, 218},
-    {I_VPMADDUBSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18042, 219},
-    {I_VPMADDUBSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18050, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMADDWD[] = {
-    {I_VPMADDWD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28001, 179},
-    {I_VPMADDWD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28008, 179},
-    {I_VPMADDWD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31102, 192},
-    {I_VPMADDWD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31109, 192},
-    {I_VPMADDWD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18058, 218},
-    {I_VPMADDWD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18066, 218},
-    {I_VPMADDWD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18074, 218},
-    {I_VPMADDWD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18082, 218},
-    {I_VPMADDWD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18090, 219},
-    {I_VPMADDWD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18098, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMASKMOVD[] = {
-    {I_VPMASKMOVD, 3, {XMM_L16,XMM_L16,MEMORY|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+32005, 192},
-    {I_VPMASKMOVD, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+32012, 192},
-    {I_VPMASKMOVD, 3, {YMM_L16,YMM_L16,MEMORY|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+32019, 192},
-    {I_VPMASKMOVD, 2, {YMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+32026, 192},
-    {I_VPMASKMOVD, 3, {MEMORY|BITS128,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+32061, 192},
-    {I_VPMASKMOVD, 2, {MEMORY|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32068, 192},
-    {I_VPMASKMOVD, 3, {MEMORY|BITS256,YMM_L16,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+32075, 192},
-    {I_VPMASKMOVD, 2, {MEMORY|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32082, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMASKMOVQ[] = {
-    {I_VPMASKMOVQ, 3, {XMM_L16,XMM_L16,MEMORY|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+32033, 192},
-    {I_VPMASKMOVQ, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+32040, 192},
-    {I_VPMASKMOVQ, 3, {YMM_L16,YMM_L16,MEMORY|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+32047, 192},
-    {I_VPMASKMOVQ, 2, {YMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+32054, 192},
-    {I_VPMASKMOVQ, 3, {MEMORY|BITS128,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+32089, 192},
-    {I_VPMASKMOVQ, 2, {MEMORY|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32096, 192},
-    {I_VPMASKMOVQ, 3, {MEMORY|BITS256,YMM_L16,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+32103, 192},
-    {I_VPMASKMOVQ, 2, {MEMORY|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32110, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMAXSB[] = {
-    {I_VPMAXSB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28029, 179},
-    {I_VPMAXSB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28036, 179},
-    {I_VPMAXSB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31116, 192},
-    {I_VPMAXSB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31123, 192},
-    {I_VPMAXSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18106, 218},
-    {I_VPMAXSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18114, 218},
-    {I_VPMAXSB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18122, 218},
-    {I_VPMAXSB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18130, 218},
-    {I_VPMAXSB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18138, 219},
-    {I_VPMAXSB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18146, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMAXSD[] = {
-    {I_VPMAXSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28057, 179},
-    {I_VPMAXSD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28064, 179},
-    {I_VPMAXSD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31144, 192},
-    {I_VPMAXSD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31151, 192},
-    {I_VPMAXSD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18154, 214},
-    {I_VPMAXSD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18162, 214},
-    {I_VPMAXSD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18170, 214},
-    {I_VPMAXSD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18178, 214},
-    {I_VPMAXSD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18186, 215},
-    {I_VPMAXSD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18194, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMAXSQ[] = {
-    {I_VPMAXSQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18202, 214},
-    {I_VPMAXSQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18210, 214},
-    {I_VPMAXSQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18218, 214},
-    {I_VPMAXSQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18226, 214},
-    {I_VPMAXSQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18234, 215},
-    {I_VPMAXSQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18242, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMAXSW[] = {
-    {I_VPMAXSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28043, 179},
-    {I_VPMAXSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28050, 179},
-    {I_VPMAXSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31130, 192},
-    {I_VPMAXSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31137, 192},
-    {I_VPMAXSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18250, 218},
-    {I_VPMAXSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18258, 218},
-    {I_VPMAXSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18266, 218},
-    {I_VPMAXSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18274, 218},
-    {I_VPMAXSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18282, 219},
-    {I_VPMAXSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18290, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMAXUB[] = {
-    {I_VPMAXUB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28071, 179},
-    {I_VPMAXUB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28078, 179},
-    {I_VPMAXUB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31158, 192},
-    {I_VPMAXUB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31165, 192},
-    {I_VPMAXUB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18298, 218},
-    {I_VPMAXUB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18306, 218},
-    {I_VPMAXUB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18314, 218},
-    {I_VPMAXUB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18322, 218},
-    {I_VPMAXUB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18330, 219},
-    {I_VPMAXUB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18338, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMAXUD[] = {
-    {I_VPMAXUD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28099, 179},
-    {I_VPMAXUD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28106, 179},
-    {I_VPMAXUD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31186, 192},
-    {I_VPMAXUD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31193, 192},
-    {I_VPMAXUD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18346, 214},
-    {I_VPMAXUD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18354, 214},
-    {I_VPMAXUD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18362, 214},
-    {I_VPMAXUD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18370, 214},
-    {I_VPMAXUD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18378, 215},
-    {I_VPMAXUD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18386, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMAXUQ[] = {
-    {I_VPMAXUQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18394, 214},
-    {I_VPMAXUQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18402, 214},
-    {I_VPMAXUQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18410, 214},
-    {I_VPMAXUQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18418, 214},
-    {I_VPMAXUQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18426, 215},
-    {I_VPMAXUQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18434, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMAXUW[] = {
-    {I_VPMAXUW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28085, 179},
-    {I_VPMAXUW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28092, 179},
-    {I_VPMAXUW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31172, 192},
-    {I_VPMAXUW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31179, 192},
-    {I_VPMAXUW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18442, 218},
-    {I_VPMAXUW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18450, 218},
-    {I_VPMAXUW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18458, 218},
-    {I_VPMAXUW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18466, 218},
-    {I_VPMAXUW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18474, 219},
-    {I_VPMAXUW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18482, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMINSB[] = {
-    {I_VPMINSB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28113, 179},
-    {I_VPMINSB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28120, 179},
-    {I_VPMINSB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31200, 192},
-    {I_VPMINSB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31207, 192},
-    {I_VPMINSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18490, 218},
-    {I_VPMINSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18498, 218},
-    {I_VPMINSB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18506, 218},
-    {I_VPMINSB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18514, 218},
-    {I_VPMINSB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18522, 219},
-    {I_VPMINSB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18530, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMINSD[] = {
-    {I_VPMINSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28141, 179},
-    {I_VPMINSD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28148, 179},
-    {I_VPMINSD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31228, 192},
-    {I_VPMINSD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31235, 192},
-    {I_VPMINSD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18538, 214},
-    {I_VPMINSD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18546, 214},
-    {I_VPMINSD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18554, 214},
-    {I_VPMINSD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18562, 214},
-    {I_VPMINSD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18570, 215},
-    {I_VPMINSD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18578, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMINSQ[] = {
-    {I_VPMINSQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18586, 214},
-    {I_VPMINSQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18594, 214},
-    {I_VPMINSQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18602, 214},
-    {I_VPMINSQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18610, 214},
-    {I_VPMINSQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18618, 215},
-    {I_VPMINSQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18626, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMINSW[] = {
-    {I_VPMINSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28127, 179},
-    {I_VPMINSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28134, 179},
-    {I_VPMINSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31214, 192},
-    {I_VPMINSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31221, 192},
-    {I_VPMINSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18634, 218},
-    {I_VPMINSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18642, 218},
-    {I_VPMINSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18650, 218},
-    {I_VPMINSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18658, 218},
-    {I_VPMINSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18666, 219},
-    {I_VPMINSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18674, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMINUB[] = {
-    {I_VPMINUB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28155, 179},
-    {I_VPMINUB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28162, 179},
-    {I_VPMINUB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31242, 192},
-    {I_VPMINUB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31249, 192},
-    {I_VPMINUB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18682, 218},
-    {I_VPMINUB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18690, 218},
-    {I_VPMINUB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18698, 218},
-    {I_VPMINUB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18706, 218},
-    {I_VPMINUB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18714, 219},
-    {I_VPMINUB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18722, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMINUD[] = {
-    {I_VPMINUD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28183, 179},
-    {I_VPMINUD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28190, 179},
-    {I_VPMINUD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31270, 192},
-    {I_VPMINUD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31277, 192},
-    {I_VPMINUD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18730, 214},
-    {I_VPMINUD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18738, 214},
-    {I_VPMINUD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18746, 214},
-    {I_VPMINUD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18754, 214},
-    {I_VPMINUD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18762, 215},
-    {I_VPMINUD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18770, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMINUQ[] = {
-    {I_VPMINUQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18778, 214},
-    {I_VPMINUQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18786, 214},
-    {I_VPMINUQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18794, 214},
-    {I_VPMINUQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18802, 214},
-    {I_VPMINUQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18810, 215},
-    {I_VPMINUQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18818, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMINUW[] = {
-    {I_VPMINUW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28169, 179},
-    {I_VPMINUW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28176, 179},
-    {I_VPMINUW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31256, 192},
-    {I_VPMINUW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31263, 192},
-    {I_VPMINUW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18826, 218},
-    {I_VPMINUW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18834, 218},
-    {I_VPMINUW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18842, 218},
-    {I_VPMINUW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18850, 218},
-    {I_VPMINUW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18858, 219},
-    {I_VPMINUW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18866, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVB2M[] = {
-    {I_VPMOVB2M, 2, {KREG,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+18874, 218},
-    {I_VPMOVB2M, 2, {KREG,YMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+18882, 218},
-    {I_VPMOVB2M, 2, {KREG,ZMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+18890, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVD2M[] = {
-    {I_VPMOVD2M, 2, {KREG,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+18898, 216},
-    {I_VPMOVD2M, 2, {KREG,YMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+18906, 216},
-    {I_VPMOVD2M, 2, {KREG,ZMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+18914, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVDB[] = {
-    {I_VPMOVDB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18922, 214},
-    {I_VPMOVDB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18930, 214},
-    {I_VPMOVDB, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18938, 215},
-    {I_VPMOVDB, 2, {MEMORY|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+18946, 214},
-    {I_VPMOVDB, 2, {MEMORY|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+18954, 214},
-    {I_VPMOVDB, 2, {MEMORY|BITS128,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+18962, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVDW[] = {
-    {I_VPMOVDW, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18970, 214},
-    {I_VPMOVDW, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18978, 214},
-    {I_VPMOVDW, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18986, 215},
-    {I_VPMOVDW, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+18994, 214},
-    {I_VPMOVDW, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19002, 214},
-    {I_VPMOVDW, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19010, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVM2B[] = {
-    {I_VPMOVM2B, 2, {XMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19018, 218},
-    {I_VPMOVM2B, 2, {YMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19026, 218},
-    {I_VPMOVM2B, 2, {ZMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19034, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVM2D[] = {
-    {I_VPMOVM2D, 2, {XMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19042, 216},
-    {I_VPMOVM2D, 2, {YMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19050, 216},
-    {I_VPMOVM2D, 2, {ZMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19058, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVM2Q[] = {
-    {I_VPMOVM2Q, 2, {XMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19066, 216},
-    {I_VPMOVM2Q, 2, {YMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19074, 216},
-    {I_VPMOVM2Q, 2, {ZMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19082, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVM2W[] = {
-    {I_VPMOVM2W, 2, {XMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19090, 218},
-    {I_VPMOVM2W, 2, {YMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19098, 218},
-    {I_VPMOVM2W, 2, {ZMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19106, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVMSKB[] = {
-    {I_VPMOVMSKB, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+28197, 182},
-    {I_VPMOVMSKB, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+28197, 179},
-    {I_VPMOVMSKB, 2, {REG_GPR|BITS32,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31284, 192},
-    {I_VPMOVMSKB, 2, {REG_GPR|BITS64,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31284, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVQ2M[] = {
-    {I_VPMOVQ2M, 2, {KREG,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19114, 216},
-    {I_VPMOVQ2M, 2, {KREG,YMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19122, 216},
-    {I_VPMOVQ2M, 2, {KREG,ZMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19130, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVQB[] = {
-    {I_VPMOVQB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19138, 214},
-    {I_VPMOVQB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19146, 214},
-    {I_VPMOVQB, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19154, 215},
-    {I_VPMOVQB, 2, {MEMORY|BITS16,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19162, 214},
-    {I_VPMOVQB, 2, {MEMORY|BITS32,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19170, 214},
-    {I_VPMOVQB, 2, {MEMORY|BITS64,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19178, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVQD[] = {
-    {I_VPMOVQD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19186, 214},
-    {I_VPMOVQD, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19194, 214},
-    {I_VPMOVQD, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19202, 215},
-    {I_VPMOVQD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19210, 214},
-    {I_VPMOVQD, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19218, 214},
-    {I_VPMOVQD, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19226, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVQW[] = {
-    {I_VPMOVQW, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19234, 214},
-    {I_VPMOVQW, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19242, 214},
-    {I_VPMOVQW, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19250, 215},
-    {I_VPMOVQW, 2, {MEMORY|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19258, 214},
-    {I_VPMOVQW, 2, {MEMORY|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19266, 214},
-    {I_VPMOVQW, 2, {MEMORY|BITS128,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19274, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVSDB[] = {
-    {I_VPMOVSDB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19282, 214},
-    {I_VPMOVSDB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19290, 214},
-    {I_VPMOVSDB, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19298, 215},
-    {I_VPMOVSDB, 2, {MEMORY|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19306, 214},
-    {I_VPMOVSDB, 2, {MEMORY|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19314, 214},
-    {I_VPMOVSDB, 2, {MEMORY|BITS128,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19322, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVSDW[] = {
-    {I_VPMOVSDW, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19330, 214},
-    {I_VPMOVSDW, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19338, 214},
-    {I_VPMOVSDW, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19346, 215},
-    {I_VPMOVSDW, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19354, 214},
-    {I_VPMOVSDW, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19362, 214},
-    {I_VPMOVSDW, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19370, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVSQB[] = {
-    {I_VPMOVSQB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19378, 214},
-    {I_VPMOVSQB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19386, 214},
-    {I_VPMOVSQB, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19394, 215},
-    {I_VPMOVSQB, 2, {MEMORY|BITS16,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19402, 214},
-    {I_VPMOVSQB, 2, {MEMORY|BITS32,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19410, 214},
-    {I_VPMOVSQB, 2, {MEMORY|BITS64,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19418, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVSQD[] = {
-    {I_VPMOVSQD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19426, 214},
-    {I_VPMOVSQD, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19434, 214},
-    {I_VPMOVSQD, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19442, 215},
-    {I_VPMOVSQD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19450, 214},
-    {I_VPMOVSQD, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19458, 214},
-    {I_VPMOVSQD, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19466, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVSQW[] = {
-    {I_VPMOVSQW, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19474, 214},
-    {I_VPMOVSQW, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19482, 214},
-    {I_VPMOVSQW, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19490, 215},
-    {I_VPMOVSQW, 2, {MEMORY|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19498, 214},
-    {I_VPMOVSQW, 2, {MEMORY|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19506, 214},
-    {I_VPMOVSQW, 2, {MEMORY|BITS128,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19514, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVSWB[] = {
-    {I_VPMOVSWB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19522, 218},
-    {I_VPMOVSWB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19530, 218},
-    {I_VPMOVSWB, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19538, 219},
-    {I_VPMOVSWB, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19546, 218},
-    {I_VPMOVSWB, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19554, 218},
-    {I_VPMOVSWB, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19562, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVSXBD[] = {
-    {I_VPMOVSXBD, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+28211, 179},
-    {I_VPMOVSXBD, 2, {YMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+31298, 192},
-    {I_VPMOVSXBD, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31298, 192},
-    {I_VPMOVSXBD, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19570, 214},
-    {I_VPMOVSXBD, 2, {YMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19578, 214},
-    {I_VPMOVSXBD, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19586, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVSXBQ[] = {
-    {I_VPMOVSXBQ, 2, {XMM_L16,RM_XMM_L16|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+28218, 179},
-    {I_VPMOVSXBQ, 2, {YMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+31305, 192},
-    {I_VPMOVSXBQ, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31305, 192},
-    {I_VPMOVSXBQ, 2, {XMMREG,RM_XMM|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19594, 214},
-    {I_VPMOVSXBQ, 2, {YMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19602, 214},
-    {I_VPMOVSXBQ, 2, {ZMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19610, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVSXBW[] = {
-    {I_VPMOVSXBW, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+28204, 179},
-    {I_VPMOVSXBW, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31291, 192},
-    {I_VPMOVSXBW, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19618, 218},
-    {I_VPMOVSXBW, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19626, 218},
-    {I_VPMOVSXBW, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19634, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVSXDQ[] = {
-    {I_VPMOVSXDQ, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+28239, 179},
-    {I_VPMOVSXDQ, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31326, 192},
-    {I_VPMOVSXDQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19642, 214},
-    {I_VPMOVSXDQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19650, 214},
-    {I_VPMOVSXDQ, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19658, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVSXWD[] = {
-    {I_VPMOVSXWD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+28225, 179},
-    {I_VPMOVSXWD, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31312, 192},
-    {I_VPMOVSXWD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19666, 214},
-    {I_VPMOVSXWD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19674, 214},
-    {I_VPMOVSXWD, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19682, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVSXWQ[] = {
-    {I_VPMOVSXWQ, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+28232, 179},
-    {I_VPMOVSXWQ, 2, {YMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+31319, 192},
-    {I_VPMOVSXWQ, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31319, 192},
-    {I_VPMOVSXWQ, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19690, 214},
-    {I_VPMOVSXWQ, 2, {YMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19698, 214},
-    {I_VPMOVSXWQ, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19706, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVUSDB[] = {
-    {I_VPMOVUSDB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19714, 214},
-    {I_VPMOVUSDB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19722, 214},
-    {I_VPMOVUSDB, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19730, 215},
-    {I_VPMOVUSDB, 2, {MEMORY|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19738, 214},
-    {I_VPMOVUSDB, 2, {MEMORY|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19746, 214},
-    {I_VPMOVUSDB, 2, {MEMORY|BITS128,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19754, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVUSDW[] = {
-    {I_VPMOVUSDW, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19762, 214},
-    {I_VPMOVUSDW, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19770, 214},
-    {I_VPMOVUSDW, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19778, 215},
-    {I_VPMOVUSDW, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19786, 214},
-    {I_VPMOVUSDW, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19794, 214},
-    {I_VPMOVUSDW, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19802, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVUSQB[] = {
-    {I_VPMOVUSQB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19810, 214},
-    {I_VPMOVUSQB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19818, 214},
-    {I_VPMOVUSQB, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19826, 215},
-    {I_VPMOVUSQB, 2, {MEMORY|BITS16,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19834, 214},
-    {I_VPMOVUSQB, 2, {MEMORY|BITS32,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19842, 214},
-    {I_VPMOVUSQB, 2, {MEMORY|BITS64,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19850, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVUSQD[] = {
-    {I_VPMOVUSQD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19858, 214},
-    {I_VPMOVUSQD, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19866, 214},
-    {I_VPMOVUSQD, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19874, 215},
-    {I_VPMOVUSQD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19882, 214},
-    {I_VPMOVUSQD, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19890, 214},
-    {I_VPMOVUSQD, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19898, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVUSQW[] = {
-    {I_VPMOVUSQW, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19906, 214},
-    {I_VPMOVUSQW, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19914, 214},
-    {I_VPMOVUSQW, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19922, 215},
-    {I_VPMOVUSQW, 2, {MEMORY|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19930, 214},
-    {I_VPMOVUSQW, 2, {MEMORY|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19938, 214},
-    {I_VPMOVUSQW, 2, {MEMORY|BITS128,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19946, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVUSWB[] = {
-    {I_VPMOVUSWB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19954, 218},
-    {I_VPMOVUSWB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19962, 218},
-    {I_VPMOVUSWB, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19970, 219},
-    {I_VPMOVUSWB, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19978, 218},
-    {I_VPMOVUSWB, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19986, 218},
-    {I_VPMOVUSWB, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19994, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVW2M[] = {
-    {I_VPMOVW2M, 2, {KREG,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+20002, 218},
-    {I_VPMOVW2M, 2, {KREG,YMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+20010, 218},
-    {I_VPMOVW2M, 2, {KREG,ZMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+20018, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVWB[] = {
-    {I_VPMOVWB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20026, 218},
-    {I_VPMOVWB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20034, 218},
-    {I_VPMOVWB, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20042, 219},
-    {I_VPMOVWB, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+20050, 218},
-    {I_VPMOVWB, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+20058, 218},
-    {I_VPMOVWB, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+20066, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVZXBD[] = {
-    {I_VPMOVZXBD, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+28253, 179},
-    {I_VPMOVZXBD, 2, {YMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+31340, 192},
-    {I_VPMOVZXBD, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31340, 192},
-    {I_VPMOVZXBD, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20074, 214},
-    {I_VPMOVZXBD, 2, {YMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20082, 214},
-    {I_VPMOVZXBD, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20090, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVZXBQ[] = {
-    {I_VPMOVZXBQ, 2, {XMM_L16,RM_XMM_L16|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+28260, 179},
-    {I_VPMOVZXBQ, 2, {YMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+31347, 192},
-    {I_VPMOVZXBQ, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31347, 192},
-    {I_VPMOVZXBQ, 2, {XMMREG,RM_XMM|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20098, 214},
-    {I_VPMOVZXBQ, 2, {YMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20106, 214},
-    {I_VPMOVZXBQ, 2, {ZMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20114, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVZXBW[] = {
-    {I_VPMOVZXBW, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+28246, 179},
-    {I_VPMOVZXBW, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31333, 192},
-    {I_VPMOVZXBW, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20122, 218},
-    {I_VPMOVZXBW, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20130, 218},
-    {I_VPMOVZXBW, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20138, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVZXDQ[] = {
-    {I_VPMOVZXDQ, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+28281, 179},
-    {I_VPMOVZXDQ, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31368, 192},
-    {I_VPMOVZXDQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20146, 214},
-    {I_VPMOVZXDQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20154, 214},
-    {I_VPMOVZXDQ, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20162, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVZXWD[] = {
-    {I_VPMOVZXWD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+28267, 179},
-    {I_VPMOVZXWD, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31354, 192},
-    {I_VPMOVZXWD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20170, 214},
-    {I_VPMOVZXWD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20178, 214},
-    {I_VPMOVZXWD, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20186, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMOVZXWQ[] = {
-    {I_VPMOVZXWQ, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+28274, 179},
-    {I_VPMOVZXWQ, 2, {YMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+31361, 192},
-    {I_VPMOVZXWQ, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31361, 192},
-    {I_VPMOVZXWQ, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20194, 214},
-    {I_VPMOVZXWQ, 2, {YMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20202, 214},
-    {I_VPMOVZXWQ, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20210, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMULDQ[] = {
-    {I_VPMULDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28372, 179},
-    {I_VPMULDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28379, 179},
-    {I_VPMULDQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31375, 192},
-    {I_VPMULDQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31382, 192},
-    {I_VPMULDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20218, 214},
-    {I_VPMULDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20226, 214},
-    {I_VPMULDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20234, 214},
-    {I_VPMULDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20242, 214},
-    {I_VPMULDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20250, 215},
-    {I_VPMULDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20258, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMULHRSW[] = {
-    {I_VPMULHRSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28302, 179},
-    {I_VPMULHRSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28309, 179},
-    {I_VPMULHRSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31389, 192},
-    {I_VPMULHRSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31396, 192},
-    {I_VPMULHRSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20266, 218},
-    {I_VPMULHRSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20274, 218},
-    {I_VPMULHRSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20282, 218},
-    {I_VPMULHRSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20290, 218},
-    {I_VPMULHRSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20298, 219},
-    {I_VPMULHRSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20306, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMULHUW[] = {
-    {I_VPMULHUW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28288, 179},
-    {I_VPMULHUW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28295, 179},
-    {I_VPMULHUW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31403, 192},
-    {I_VPMULHUW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31410, 192},
-    {I_VPMULHUW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20314, 218},
-    {I_VPMULHUW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20322, 218},
-    {I_VPMULHUW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20330, 218},
-    {I_VPMULHUW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20338, 218},
-    {I_VPMULHUW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20346, 219},
-    {I_VPMULHUW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20354, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMULHW[] = {
-    {I_VPMULHW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28316, 179},
-    {I_VPMULHW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28323, 179},
-    {I_VPMULHW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31417, 192},
-    {I_VPMULHW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31424, 192},
-    {I_VPMULHW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20362, 218},
-    {I_VPMULHW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20370, 218},
-    {I_VPMULHW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20378, 218},
-    {I_VPMULHW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20386, 218},
-    {I_VPMULHW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20394, 219},
-    {I_VPMULHW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20402, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMULLD[] = {
-    {I_VPMULLD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28344, 179},
-    {I_VPMULLD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28351, 179},
-    {I_VPMULLD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31445, 192},
-    {I_VPMULLD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31452, 192},
-    {I_VPMULLD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20410, 214},
-    {I_VPMULLD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20418, 214},
-    {I_VPMULLD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20426, 214},
-    {I_VPMULLD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20434, 214},
-    {I_VPMULLD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20442, 215},
-    {I_VPMULLD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20450, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMULLQ[] = {
-    {I_VPMULLQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20458, 216},
-    {I_VPMULLQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20466, 216},
-    {I_VPMULLQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20474, 216},
-    {I_VPMULLQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20482, 216},
-    {I_VPMULLQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20490, 217},
-    {I_VPMULLQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20498, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMULLW[] = {
-    {I_VPMULLW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28330, 179},
-    {I_VPMULLW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28337, 179},
-    {I_VPMULLW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31431, 192},
-    {I_VPMULLW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31438, 192},
-    {I_VPMULLW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20506, 218},
-    {I_VPMULLW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20514, 218},
-    {I_VPMULLW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20522, 218},
-    {I_VPMULLW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20530, 218},
-    {I_VPMULLW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20538, 219},
-    {I_VPMULLW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20546, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMULTISHIFTQB[] = {
-    {I_VPMULTISHIFTQB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20554, 224},
-    {I_VPMULTISHIFTQB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20562, 224},
-    {I_VPMULTISHIFTQB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20570, 224},
-    {I_VPMULTISHIFTQB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20578, 224},
-    {I_VPMULTISHIFTQB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20586, 225},
-    {I_VPMULTISHIFTQB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20594, 225},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPMULUDQ[] = {
-    {I_VPMULUDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28358, 179},
-    {I_VPMULUDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28365, 179},
-    {I_VPMULUDQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31459, 192},
-    {I_VPMULUDQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31466, 192},
-    {I_VPMULUDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20602, 214},
-    {I_VPMULUDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20610, 214},
-    {I_VPMULUDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20618, 214},
-    {I_VPMULUDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20626, 214},
-    {I_VPMULUDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20634, 215},
-    {I_VPMULUDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20642, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPOR[] = {
-    {I_VPOR, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28386, 179},
-    {I_VPOR, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28393, 179},
-    {I_VPOR, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31473, 192},
-    {I_VPOR, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31480, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPORD[] = {
-    {I_VPORD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20650, 214},
-    {I_VPORD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20658, 214},
-    {I_VPORD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20666, 214},
-    {I_VPORD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20674, 214},
-    {I_VPORD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20682, 215},
-    {I_VPORD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20690, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPORQ[] = {
-    {I_VPORQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20698, 214},
-    {I_VPORQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20706, 214},
-    {I_VPORQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20714, 214},
-    {I_VPORQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20722, 214},
-    {I_VPORQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20730, 215},
-    {I_VPORQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20738, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPPERM[] = {
-    {I_VPPERM, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+10418, 191},
-    {I_VPPERM, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+10426, 191},
-    {I_VPPERM, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10434, 191},
-    {I_VPPERM, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10442, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPROLD[] = {
-    {I_VPROLD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5409, 214},
-    {I_VPROLD, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5418, 214},
-    {I_VPROLD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5427, 214},
-    {I_VPROLD, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5436, 214},
-    {I_VPROLD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5445, 215},
-    {I_VPROLD, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5454, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPROLQ[] = {
-    {I_VPROLQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5463, 214},
-    {I_VPROLQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5472, 214},
-    {I_VPROLQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5481, 214},
-    {I_VPROLQ, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5490, 214},
-    {I_VPROLQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5499, 215},
-    {I_VPROLQ, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5508, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPROLVD[] = {
-    {I_VPROLVD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20746, 214},
-    {I_VPROLVD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20754, 214},
-    {I_VPROLVD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20762, 214},
-    {I_VPROLVD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20770, 214},
-    {I_VPROLVD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20778, 215},
-    {I_VPROLVD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20786, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPROLVQ[] = {
-    {I_VPROLVQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20794, 214},
-    {I_VPROLVQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20802, 214},
-    {I_VPROLVQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20810, 214},
-    {I_VPROLVQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20818, 214},
-    {I_VPROLVQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20826, 215},
-    {I_VPROLVQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20834, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPRORD[] = {
-    {I_VPRORD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5517, 214},
-    {I_VPRORD, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5526, 214},
-    {I_VPRORD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5535, 214},
-    {I_VPRORD, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5544, 214},
-    {I_VPRORD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5553, 215},
-    {I_VPRORD, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5562, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPRORQ[] = {
-    {I_VPRORQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5571, 214},
-    {I_VPRORQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5580, 214},
-    {I_VPRORQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5589, 214},
-    {I_VPRORQ, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5598, 214},
-    {I_VPRORQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5607, 215},
-    {I_VPRORQ, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5616, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPRORVD[] = {
-    {I_VPRORVD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20842, 214},
-    {I_VPRORVD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20850, 214},
-    {I_VPRORVD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20858, 214},
-    {I_VPRORVD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20866, 214},
-    {I_VPRORVD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20874, 215},
-    {I_VPRORVD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20882, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPRORVQ[] = {
-    {I_VPRORVQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20890, 214},
-    {I_VPRORVQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20898, 214},
-    {I_VPRORVQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20906, 214},
-    {I_VPRORVQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20914, 214},
-    {I_VPRORVQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20922, 215},
-    {I_VPRORVQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20930, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPROTB[] = {
-    {I_VPROTB, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30311, 191},
-    {I_VPROTB, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30318, 191},
-    {I_VPROTB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30325, 191},
-    {I_VPROTB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30332, 191},
-    {I_VPROTB, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10450, 191},
-    {I_VPROTB, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10458, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPROTD[] = {
-    {I_VPROTD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30339, 191},
-    {I_VPROTD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30346, 191},
-    {I_VPROTD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30353, 191},
-    {I_VPROTD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30360, 191},
-    {I_VPROTD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10466, 191},
-    {I_VPROTD, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10474, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPROTQ[] = {
-    {I_VPROTQ, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30367, 191},
-    {I_VPROTQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30374, 191},
-    {I_VPROTQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30381, 191},
-    {I_VPROTQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30388, 191},
-    {I_VPROTQ, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10482, 191},
-    {I_VPROTQ, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10490, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPROTW[] = {
-    {I_VPROTW, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30395, 191},
-    {I_VPROTW, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30402, 191},
-    {I_VPROTW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30409, 191},
-    {I_VPROTW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30416, 191},
-    {I_VPROTW, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10498, 191},
-    {I_VPROTW, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10506, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSADBW[] = {
-    {I_VPSADBW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28400, 179},
-    {I_VPSADBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28407, 179},
-    {I_VPSADBW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31487, 192},
-    {I_VPSADBW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31494, 192},
-    {I_VPSADBW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+20938, 218},
-    {I_VPSADBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+20946, 218},
-    {I_VPSADBW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+20954, 218},
-    {I_VPSADBW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+20962, 218},
-    {I_VPSADBW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, NO_DECORATOR, nasm_bytecodes+20970, 219},
-    {I_VPSADBW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, NO_DECORATOR, nasm_bytecodes+20978, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSCATTERDD[] = {
-    {I_VPSCATTERDD, 2, {XMEM|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5625, 214},
-    {I_VPSCATTERDD, 2, {YMEM|BITS32,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5634, 214},
-    {I_VPSCATTERDD, 2, {ZMEM|BITS32,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5643, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSCATTERDQ[] = {
-    {I_VPSCATTERDQ, 2, {XMEM|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5652, 214},
-    {I_VPSCATTERDQ, 2, {XMEM|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5661, 214},
-    {I_VPSCATTERDQ, 2, {YMEM|BITS64,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5670, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSCATTERQD[] = {
-    {I_VPSCATTERQD, 2, {XMEM|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5679, 214},
-    {I_VPSCATTERQD, 2, {YMEM|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5688, 214},
-    {I_VPSCATTERQD, 2, {ZMEM|BITS32,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5697, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSCATTERQQ[] = {
-    {I_VPSCATTERQQ, 2, {XMEM|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5706, 214},
-    {I_VPSCATTERQQ, 2, {YMEM|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5715, 214},
-    {I_VPSCATTERQQ, 2, {ZMEM|BITS64,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5724, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSHAB[] = {
-    {I_VPSHAB, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30423, 191},
-    {I_VPSHAB, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30430, 191},
-    {I_VPSHAB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30437, 191},
-    {I_VPSHAB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30444, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSHAD[] = {
-    {I_VPSHAD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30451, 191},
-    {I_VPSHAD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30458, 191},
-    {I_VPSHAD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30465, 191},
-    {I_VPSHAD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30472, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSHAQ[] = {
-    {I_VPSHAQ, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30479, 191},
-    {I_VPSHAQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30486, 191},
-    {I_VPSHAQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30493, 191},
-    {I_VPSHAQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30500, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSHAW[] = {
-    {I_VPSHAW, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30507, 191},
-    {I_VPSHAW, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30514, 191},
-    {I_VPSHAW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30521, 191},
-    {I_VPSHAW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30528, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSHLB[] = {
-    {I_VPSHLB, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30535, 191},
-    {I_VPSHLB, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30542, 191},
-    {I_VPSHLB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30549, 191},
-    {I_VPSHLB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30556, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSHLD[] = {
-    {I_VPSHLD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30563, 191},
-    {I_VPSHLD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30570, 191},
-    {I_VPSHLD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30577, 191},
-    {I_VPSHLD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30584, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSHLQ[] = {
-    {I_VPSHLQ, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30591, 191},
-    {I_VPSHLQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30598, 191},
-    {I_VPSHLQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30605, 191},
-    {I_VPSHLQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30612, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSHLW[] = {
-    {I_VPSHLW, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30619, 191},
-    {I_VPSHLW, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30626, 191},
-    {I_VPSHLW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30633, 191},
-    {I_VPSHLW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30640, 191},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSHUFB[] = {
-    {I_VPSHUFB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28414, 179},
-    {I_VPSHUFB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28421, 179},
-    {I_VPSHUFB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31501, 192},
-    {I_VPSHUFB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31508, 192},
-    {I_VPSHUFB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20986, 218},
-    {I_VPSHUFB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20994, 218},
-    {I_VPSHUFB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21002, 218},
-    {I_VPSHUFB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21010, 218},
-    {I_VPSHUFB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21018, 219},
-    {I_VPSHUFB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21026, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSHUFD[] = {
-    {I_VPSHUFD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8594, 179},
-    {I_VPSHUFD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10578, 192},
-    {I_VPSHUFD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5733, 214},
-    {I_VPSHUFD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5742, 214},
-    {I_VPSHUFD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5751, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSHUFHW[] = {
-    {I_VPSHUFHW, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8602, 179},
-    {I_VPSHUFHW, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10586, 192},
-    {I_VPSHUFHW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5760, 218},
-    {I_VPSHUFHW, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5769, 218},
-    {I_VPSHUFHW, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5778, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSHUFLW[] = {
-    {I_VPSHUFLW, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8610, 179},
-    {I_VPSHUFLW, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10594, 192},
-    {I_VPSHUFLW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5787, 218},
-    {I_VPSHUFLW, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5796, 218},
-    {I_VPSHUFLW, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5805, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSIGNB[] = {
-    {I_VPSIGNB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28428, 179},
-    {I_VPSIGNB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28435, 179},
-    {I_VPSIGNB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31515, 192},
-    {I_VPSIGNB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31522, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSIGND[] = {
-    {I_VPSIGND, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28456, 179},
-    {I_VPSIGND, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28463, 179},
-    {I_VPSIGND, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31543, 192},
-    {I_VPSIGND, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31550, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSIGNW[] = {
-    {I_VPSIGNW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28442, 179},
-    {I_VPSIGNW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28449, 179},
-    {I_VPSIGNW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31529, 192},
-    {I_VPSIGNW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31536, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSLLD[] = {
-    {I_VPSLLD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28484, 179},
-    {I_VPSLLD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28491, 179},
-    {I_VPSLLD, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8666, 179},
-    {I_VPSLLD, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8674, 179},
-    {I_VPSLLD, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31571, 192},
-    {I_VPSLLD, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31578, 192},
-    {I_VPSLLD, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10634, 192},
-    {I_VPSLLD, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10642, 192},
-    {I_VPSLLD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21034, 214},
-    {I_VPSLLD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21042, 214},
-    {I_VPSLLD, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21050, 214},
-    {I_VPSLLD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21058, 214},
-    {I_VPSLLD, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21066, 215},
-    {I_VPSLLD, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21074, 215},
-    {I_VPSLLD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5814, 214},
-    {I_VPSLLD, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5823, 214},
-    {I_VPSLLD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5832, 214},
-    {I_VPSLLD, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5841, 214},
-    {I_VPSLLD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5850, 215},
-    {I_VPSLLD, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5859, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSLLDQ[] = {
-    {I_VPSLLDQ, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8618, 179},
-    {I_VPSLLDQ, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8626, 179},
-    {I_VPSLLDQ, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10602, 192},
-    {I_VPSLLDQ, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10610, 192},
-    {I_VPSLLDQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5868, 218},
-    {I_VPSLLDQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+5877, 218},
-    {I_VPSLLDQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5886, 218},
-    {I_VPSLLDQ, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+5895, 218},
-    {I_VPSLLDQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5904, 219},
-    {I_VPSLLDQ, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+5913, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSLLQ[] = {
-    {I_VPSLLQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28498, 179},
-    {I_VPSLLQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28505, 179},
-    {I_VPSLLQ, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8682, 179},
-    {I_VPSLLQ, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8690, 179},
-    {I_VPSLLQ, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31585, 192},
-    {I_VPSLLQ, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31592, 192},
-    {I_VPSLLQ, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10650, 192},
-    {I_VPSLLQ, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10658, 192},
-    {I_VPSLLQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21082, 214},
-    {I_VPSLLQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21090, 214},
-    {I_VPSLLQ, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21098, 214},
-    {I_VPSLLQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21106, 214},
-    {I_VPSLLQ, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21114, 215},
-    {I_VPSLLQ, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21122, 215},
-    {I_VPSLLQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5922, 214},
-    {I_VPSLLQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5931, 214},
-    {I_VPSLLQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5940, 214},
-    {I_VPSLLQ, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5949, 214},
-    {I_VPSLLQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5958, 215},
-    {I_VPSLLQ, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5967, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSLLVD[] = {
-    {I_VPSLLVD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+32117, 192},
-    {I_VPSLLVD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+32124, 192},
-    {I_VPSLLVD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+32145, 192},
-    {I_VPSLLVD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+32152, 192},
-    {I_VPSLLVD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21130, 214},
-    {I_VPSLLVD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21138, 214},
-    {I_VPSLLVD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21146, 214},
-    {I_VPSLLVD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21154, 214},
-    {I_VPSLLVD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21162, 215},
-    {I_VPSLLVD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21170, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSLLVQ[] = {
-    {I_VPSLLVQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+32131, 192},
-    {I_VPSLLVQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+32138, 192},
-    {I_VPSLLVQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+32159, 192},
-    {I_VPSLLVQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+32166, 192},
-    {I_VPSLLVQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21178, 214},
-    {I_VPSLLVQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21186, 214},
-    {I_VPSLLVQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21194, 214},
-    {I_VPSLLVQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21202, 214},
-    {I_VPSLLVQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21210, 215},
-    {I_VPSLLVQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21218, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSLLVW[] = {
-    {I_VPSLLVW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21226, 218},
-    {I_VPSLLVW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21234, 218},
-    {I_VPSLLVW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21242, 218},
-    {I_VPSLLVW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21250, 218},
-    {I_VPSLLVW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21258, 219},
-    {I_VPSLLVW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21266, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSLLW[] = {
-    {I_VPSLLW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28470, 179},
-    {I_VPSLLW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28477, 179},
-    {I_VPSLLW, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8650, 179},
-    {I_VPSLLW, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8658, 179},
-    {I_VPSLLW, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31557, 192},
-    {I_VPSLLW, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31564, 192},
-    {I_VPSLLW, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10618, 192},
-    {I_VPSLLW, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10626, 192},
-    {I_VPSLLW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21274, 218},
-    {I_VPSLLW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21282, 218},
-    {I_VPSLLW, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21290, 218},
-    {I_VPSLLW, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21298, 218},
-    {I_VPSLLW, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21306, 219},
-    {I_VPSLLW, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21314, 219},
-    {I_VPSLLW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5976, 218},
-    {I_VPSLLW, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5985, 218},
-    {I_VPSLLW, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5994, 218},
-    {I_VPSLLW, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6003, 218},
-    {I_VPSLLW, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6012, 219},
-    {I_VPSLLW, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6021, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSRAD[] = {
-    {I_VPSRAD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28526, 179},
-    {I_VPSRAD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28533, 179},
-    {I_VPSRAD, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8714, 179},
-    {I_VPSRAD, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8722, 179},
-    {I_VPSRAD, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31613, 192},
-    {I_VPSRAD, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31620, 192},
-    {I_VPSRAD, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10682, 192},
-    {I_VPSRAD, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10690, 192},
-    {I_VPSRAD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21322, 214},
-    {I_VPSRAD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21330, 214},
-    {I_VPSRAD, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21338, 214},
-    {I_VPSRAD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21346, 214},
-    {I_VPSRAD, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21354, 215},
-    {I_VPSRAD, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21362, 215},
-    {I_VPSRAD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6030, 214},
-    {I_VPSRAD, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6039, 214},
-    {I_VPSRAD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6048, 214},
-    {I_VPSRAD, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6057, 214},
-    {I_VPSRAD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6066, 215},
-    {I_VPSRAD, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6075, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSRAQ[] = {
-    {I_VPSRAQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21370, 214},
-    {I_VPSRAQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21378, 214},
-    {I_VPSRAQ, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21386, 214},
-    {I_VPSRAQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21394, 214},
-    {I_VPSRAQ, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21402, 215},
-    {I_VPSRAQ, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21410, 215},
-    {I_VPSRAQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6084, 214},
-    {I_VPSRAQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6093, 214},
-    {I_VPSRAQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6102, 214},
-    {I_VPSRAQ, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6111, 214},
-    {I_VPSRAQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6120, 215},
-    {I_VPSRAQ, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6129, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSRAVD[] = {
-    {I_VPSRAVD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+32173, 192},
-    {I_VPSRAVD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+32180, 192},
-    {I_VPSRAVD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+32187, 192},
-    {I_VPSRAVD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+32194, 192},
-    {I_VPSRAVD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21418, 214},
-    {I_VPSRAVD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21426, 214},
-    {I_VPSRAVD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21434, 214},
-    {I_VPSRAVD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21442, 214},
-    {I_VPSRAVD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21450, 215},
-    {I_VPSRAVD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21458, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSRAVQ[] = {
-    {I_VPSRAVQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21466, 214},
-    {I_VPSRAVQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21474, 214},
-    {I_VPSRAVQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21482, 214},
-    {I_VPSRAVQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21490, 214},
-    {I_VPSRAVQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21498, 215},
-    {I_VPSRAVQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21506, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSRAVW[] = {
-    {I_VPSRAVW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21514, 218},
-    {I_VPSRAVW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21522, 218},
-    {I_VPSRAVW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21530, 218},
-    {I_VPSRAVW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21538, 218},
-    {I_VPSRAVW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21546, 219},
-    {I_VPSRAVW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21554, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSRAW[] = {
-    {I_VPSRAW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28512, 179},
-    {I_VPSRAW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28519, 179},
-    {I_VPSRAW, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8698, 179},
-    {I_VPSRAW, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8706, 179},
-    {I_VPSRAW, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31599, 192},
-    {I_VPSRAW, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31606, 192},
-    {I_VPSRAW, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10666, 192},
-    {I_VPSRAW, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10674, 192},
-    {I_VPSRAW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21562, 218},
-    {I_VPSRAW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21570, 218},
-    {I_VPSRAW, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21578, 218},
-    {I_VPSRAW, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21586, 218},
-    {I_VPSRAW, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21594, 219},
-    {I_VPSRAW, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21602, 219},
-    {I_VPSRAW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6138, 218},
-    {I_VPSRAW, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6147, 218},
-    {I_VPSRAW, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6156, 218},
-    {I_VPSRAW, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6165, 218},
-    {I_VPSRAW, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6174, 219},
-    {I_VPSRAW, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6183, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSRLD[] = {
-    {I_VPSRLD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28554, 179},
-    {I_VPSRLD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28561, 179},
-    {I_VPSRLD, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8746, 179},
-    {I_VPSRLD, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8754, 179},
-    {I_VPSRLD, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31641, 192},
-    {I_VPSRLD, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31648, 192},
-    {I_VPSRLD, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10730, 192},
-    {I_VPSRLD, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10738, 192},
-    {I_VPSRLD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21610, 214},
-    {I_VPSRLD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21618, 214},
-    {I_VPSRLD, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21626, 214},
-    {I_VPSRLD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21634, 214},
-    {I_VPSRLD, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21642, 215},
-    {I_VPSRLD, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21650, 215},
-    {I_VPSRLD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6192, 214},
-    {I_VPSRLD, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6201, 214},
-    {I_VPSRLD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6210, 214},
-    {I_VPSRLD, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6219, 214},
-    {I_VPSRLD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6228, 215},
-    {I_VPSRLD, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6237, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSRLDQ[] = {
-    {I_VPSRLDQ, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8634, 179},
-    {I_VPSRLDQ, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8642, 179},
-    {I_VPSRLDQ, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10698, 192},
-    {I_VPSRLDQ, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10706, 192},
-    {I_VPSRLDQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+6246, 218},
-    {I_VPSRLDQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+6255, 218},
-    {I_VPSRLDQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+6264, 218},
-    {I_VPSRLDQ, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+6273, 218},
-    {I_VPSRLDQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+6282, 219},
-    {I_VPSRLDQ, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+6291, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSRLQ[] = {
-    {I_VPSRLQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28568, 179},
-    {I_VPSRLQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28575, 179},
-    {I_VPSRLQ, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8762, 179},
-    {I_VPSRLQ, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8770, 179},
-    {I_VPSRLQ, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31655, 192},
-    {I_VPSRLQ, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31662, 192},
-    {I_VPSRLQ, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10746, 192},
-    {I_VPSRLQ, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10754, 192},
-    {I_VPSRLQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21658, 214},
-    {I_VPSRLQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21666, 214},
-    {I_VPSRLQ, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21674, 214},
-    {I_VPSRLQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21682, 214},
-    {I_VPSRLQ, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21690, 215},
-    {I_VPSRLQ, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21698, 215},
-    {I_VPSRLQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6300, 214},
-    {I_VPSRLQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6309, 214},
-    {I_VPSRLQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6318, 214},
-    {I_VPSRLQ, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6327, 214},
-    {I_VPSRLQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6336, 215},
-    {I_VPSRLQ, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6345, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSRLVD[] = {
-    {I_VPSRLVD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+32201, 192},
-    {I_VPSRLVD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+32208, 192},
-    {I_VPSRLVD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+32229, 192},
-    {I_VPSRLVD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+32236, 192},
-    {I_VPSRLVD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21706, 214},
-    {I_VPSRLVD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21714, 214},
-    {I_VPSRLVD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21722, 214},
-    {I_VPSRLVD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21730, 214},
-    {I_VPSRLVD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21738, 215},
-    {I_VPSRLVD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21746, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSRLVQ[] = {
-    {I_VPSRLVQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+32215, 192},
-    {I_VPSRLVQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+32222, 192},
-    {I_VPSRLVQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+32243, 192},
-    {I_VPSRLVQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+32250, 192},
-    {I_VPSRLVQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21754, 214},
-    {I_VPSRLVQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21762, 214},
-    {I_VPSRLVQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21770, 214},
-    {I_VPSRLVQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21778, 214},
-    {I_VPSRLVQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21786, 215},
-    {I_VPSRLVQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21794, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSRLVW[] = {
-    {I_VPSRLVW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21802, 218},
-    {I_VPSRLVW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21810, 218},
-    {I_VPSRLVW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21818, 218},
-    {I_VPSRLVW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21826, 218},
-    {I_VPSRLVW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21834, 219},
-    {I_VPSRLVW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21842, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSRLW[] = {
-    {I_VPSRLW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28540, 179},
-    {I_VPSRLW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28547, 179},
-    {I_VPSRLW, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8730, 179},
-    {I_VPSRLW, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8738, 179},
-    {I_VPSRLW, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31627, 192},
-    {I_VPSRLW, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31634, 192},
-    {I_VPSRLW, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10714, 192},
-    {I_VPSRLW, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10722, 192},
-    {I_VPSRLW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21850, 218},
-    {I_VPSRLW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21858, 218},
-    {I_VPSRLW, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21866, 218},
-    {I_VPSRLW, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21874, 218},
-    {I_VPSRLW, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21882, 219},
-    {I_VPSRLW, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21890, 219},
-    {I_VPSRLW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6354, 218},
-    {I_VPSRLW, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6363, 218},
-    {I_VPSRLW, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6372, 218},
-    {I_VPSRLW, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6381, 218},
-    {I_VPSRLW, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6390, 219},
-    {I_VPSRLW, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6399, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSUBB[] = {
-    {I_VPSUBB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28596, 179},
-    {I_VPSUBB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28603, 179},
-    {I_VPSUBB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31669, 192},
-    {I_VPSUBB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31676, 192},
-    {I_VPSUBB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21898, 218},
-    {I_VPSUBB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21906, 218},
-    {I_VPSUBB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21914, 218},
-    {I_VPSUBB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21922, 218},
-    {I_VPSUBB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21930, 219},
-    {I_VPSUBB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21938, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSUBD[] = {
-    {I_VPSUBD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28624, 179},
-    {I_VPSUBD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28631, 179},
-    {I_VPSUBD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31697, 192},
-    {I_VPSUBD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31704, 192},
-    {I_VPSUBD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21946, 214},
-    {I_VPSUBD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21954, 214},
-    {I_VPSUBD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21962, 214},
-    {I_VPSUBD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21970, 214},
-    {I_VPSUBD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21978, 215},
-    {I_VPSUBD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21986, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSUBQ[] = {
-    {I_VPSUBQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28638, 179},
-    {I_VPSUBQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28645, 179},
-    {I_VPSUBQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31711, 192},
-    {I_VPSUBQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31718, 192},
-    {I_VPSUBQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21994, 214},
-    {I_VPSUBQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22002, 214},
-    {I_VPSUBQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22010, 214},
-    {I_VPSUBQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22018, 214},
-    {I_VPSUBQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22026, 215},
-    {I_VPSUBQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22034, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSUBSB[] = {
-    {I_VPSUBSB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28652, 179},
-    {I_VPSUBSB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28659, 179},
-    {I_VPSUBSB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31725, 192},
-    {I_VPSUBSB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31732, 192},
-    {I_VPSUBSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22042, 218},
-    {I_VPSUBSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22050, 218},
-    {I_VPSUBSB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22058, 218},
-    {I_VPSUBSB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22066, 218},
-    {I_VPSUBSB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22074, 219},
-    {I_VPSUBSB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22082, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSUBSW[] = {
-    {I_VPSUBSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28666, 179},
-    {I_VPSUBSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28673, 179},
-    {I_VPSUBSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31739, 192},
-    {I_VPSUBSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31746, 192},
-    {I_VPSUBSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22090, 218},
-    {I_VPSUBSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22098, 218},
-    {I_VPSUBSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22106, 218},
-    {I_VPSUBSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22114, 218},
-    {I_VPSUBSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22122, 219},
-    {I_VPSUBSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22130, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSUBUSB[] = {
-    {I_VPSUBUSB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28680, 179},
-    {I_VPSUBUSB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28687, 179},
-    {I_VPSUBUSB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31753, 192},
-    {I_VPSUBUSB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31760, 192},
-    {I_VPSUBUSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22138, 218},
-    {I_VPSUBUSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22146, 218},
-    {I_VPSUBUSB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22154, 218},
-    {I_VPSUBUSB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22162, 218},
-    {I_VPSUBUSB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22170, 219},
-    {I_VPSUBUSB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22178, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSUBUSW[] = {
-    {I_VPSUBUSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28694, 179},
-    {I_VPSUBUSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28701, 179},
-    {I_VPSUBUSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31767, 192},
-    {I_VPSUBUSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31774, 192},
-    {I_VPSUBUSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22186, 218},
-    {I_VPSUBUSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22194, 218},
-    {I_VPSUBUSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22202, 218},
-    {I_VPSUBUSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22210, 218},
-    {I_VPSUBUSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22218, 219},
-    {I_VPSUBUSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22226, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPSUBW[] = {
-    {I_VPSUBW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28610, 179},
-    {I_VPSUBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28617, 179},
-    {I_VPSUBW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31683, 192},
-    {I_VPSUBW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31690, 192},
-    {I_VPSUBW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22234, 218},
-    {I_VPSUBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22242, 218},
-    {I_VPSUBW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22250, 218},
-    {I_VPSUBW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22258, 218},
-    {I_VPSUBW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22266, 219},
-    {I_VPSUBW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22274, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPTERNLOGD[] = {
-    {I_VPTERNLOGD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+6408, 214},
-    {I_VPTERNLOGD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+6417, 214},
-    {I_VPTERNLOGD, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+6426, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPTERNLOGQ[] = {
-    {I_VPTERNLOGQ, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+6435, 214},
-    {I_VPTERNLOGQ, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+6444, 214},
-    {I_VPTERNLOGQ, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+6453, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPTEST[] = {
-    {I_VPTEST, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28582, 179},
-    {I_VPTEST, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+28589, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPTESTMB[] = {
-    {I_VPTESTMB, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22282, 218},
-    {I_VPTESTMB, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22290, 218},
-    {I_VPTESTMB, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22298, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPTESTMD[] = {
-    {I_VPTESTMD, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+22306, 214},
-    {I_VPTESTMD, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+22314, 214},
-    {I_VPTESTMD, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+22322, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPTESTMQ[] = {
-    {I_VPTESTMQ, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+22330, 214},
-    {I_VPTESTMQ, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+22338, 214},
-    {I_VPTESTMQ, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+22346, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPTESTMW[] = {
-    {I_VPTESTMW, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22354, 218},
-    {I_VPTESTMW, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22362, 218},
-    {I_VPTESTMW, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22370, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPTESTNMB[] = {
-    {I_VPTESTNMB, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22378, 218},
-    {I_VPTESTNMB, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22386, 218},
-    {I_VPTESTNMB, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22394, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPTESTNMD[] = {
-    {I_VPTESTNMD, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+22402, 214},
-    {I_VPTESTNMD, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+22410, 214},
-    {I_VPTESTNMD, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+22418, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPTESTNMQ[] = {
-    {I_VPTESTNMQ, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+22426, 214},
-    {I_VPTESTNMQ, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+22434, 214},
-    {I_VPTESTNMQ, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+22442, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPTESTNMW[] = {
-    {I_VPTESTNMW, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22450, 218},
-    {I_VPTESTNMW, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22458, 218},
-    {I_VPTESTNMW, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22466, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPUNPCKHBW[] = {
-    {I_VPUNPCKHBW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28708, 179},
-    {I_VPUNPCKHBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28715, 179},
-    {I_VPUNPCKHBW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31781, 192},
-    {I_VPUNPCKHBW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31788, 192},
-    {I_VPUNPCKHBW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22474, 218},
-    {I_VPUNPCKHBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22482, 218},
-    {I_VPUNPCKHBW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22490, 218},
-    {I_VPUNPCKHBW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22498, 218},
-    {I_VPUNPCKHBW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22506, 219},
-    {I_VPUNPCKHBW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22514, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPUNPCKHDQ[] = {
-    {I_VPUNPCKHDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28736, 179},
-    {I_VPUNPCKHDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28743, 179},
-    {I_VPUNPCKHDQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31809, 192},
-    {I_VPUNPCKHDQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31816, 192},
-    {I_VPUNPCKHDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22522, 214},
-    {I_VPUNPCKHDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22530, 214},
-    {I_VPUNPCKHDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22538, 214},
-    {I_VPUNPCKHDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22546, 214},
-    {I_VPUNPCKHDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22554, 215},
-    {I_VPUNPCKHDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22562, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPUNPCKHQDQ[] = {
-    {I_VPUNPCKHQDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28750, 179},
-    {I_VPUNPCKHQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28757, 179},
-    {I_VPUNPCKHQDQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31823, 192},
-    {I_VPUNPCKHQDQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31830, 192},
-    {I_VPUNPCKHQDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22570, 214},
-    {I_VPUNPCKHQDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22578, 214},
-    {I_VPUNPCKHQDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22586, 214},
-    {I_VPUNPCKHQDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22594, 214},
-    {I_VPUNPCKHQDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22602, 215},
-    {I_VPUNPCKHQDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22610, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPUNPCKHWD[] = {
-    {I_VPUNPCKHWD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28722, 179},
-    {I_VPUNPCKHWD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28729, 179},
-    {I_VPUNPCKHWD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31795, 192},
-    {I_VPUNPCKHWD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31802, 192},
-    {I_VPUNPCKHWD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22618, 218},
-    {I_VPUNPCKHWD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22626, 218},
-    {I_VPUNPCKHWD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22634, 218},
-    {I_VPUNPCKHWD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22642, 218},
-    {I_VPUNPCKHWD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22650, 219},
-    {I_VPUNPCKHWD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22658, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPUNPCKLBW[] = {
-    {I_VPUNPCKLBW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28764, 179},
-    {I_VPUNPCKLBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28771, 179},
-    {I_VPUNPCKLBW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31837, 192},
-    {I_VPUNPCKLBW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31844, 192},
-    {I_VPUNPCKLBW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22666, 218},
-    {I_VPUNPCKLBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22674, 218},
-    {I_VPUNPCKLBW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22682, 218},
-    {I_VPUNPCKLBW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22690, 218},
-    {I_VPUNPCKLBW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22698, 219},
-    {I_VPUNPCKLBW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22706, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPUNPCKLDQ[] = {
-    {I_VPUNPCKLDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28792, 179},
-    {I_VPUNPCKLDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28799, 179},
-    {I_VPUNPCKLDQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31865, 192},
-    {I_VPUNPCKLDQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31872, 192},
-    {I_VPUNPCKLDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22714, 214},
-    {I_VPUNPCKLDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22722, 214},
-    {I_VPUNPCKLDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22730, 214},
-    {I_VPUNPCKLDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22738, 214},
-    {I_VPUNPCKLDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22746, 215},
-    {I_VPUNPCKLDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22754, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPUNPCKLQDQ[] = {
-    {I_VPUNPCKLQDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28806, 179},
-    {I_VPUNPCKLQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28813, 179},
-    {I_VPUNPCKLQDQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31879, 192},
-    {I_VPUNPCKLQDQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31886, 192},
-    {I_VPUNPCKLQDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22762, 214},
-    {I_VPUNPCKLQDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22770, 214},
-    {I_VPUNPCKLQDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22778, 214},
-    {I_VPUNPCKLQDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22786, 214},
-    {I_VPUNPCKLQDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22794, 215},
-    {I_VPUNPCKLQDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22802, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPUNPCKLWD[] = {
-    {I_VPUNPCKLWD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28778, 179},
-    {I_VPUNPCKLWD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28785, 179},
-    {I_VPUNPCKLWD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31851, 192},
-    {I_VPUNPCKLWD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31858, 192},
-    {I_VPUNPCKLWD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22810, 218},
-    {I_VPUNPCKLWD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22818, 218},
-    {I_VPUNPCKLWD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22826, 218},
-    {I_VPUNPCKLWD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22834, 218},
-    {I_VPUNPCKLWD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22842, 219},
-    {I_VPUNPCKLWD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22850, 219},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPXOR[] = {
-    {I_VPXOR, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28820, 179},
-    {I_VPXOR, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28827, 179},
-    {I_VPXOR, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31893, 192},
-    {I_VPXOR, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31900, 192},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPXORD[] = {
-    {I_VPXORD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22858, 214},
-    {I_VPXORD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22866, 214},
-    {I_VPXORD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22874, 214},
-    {I_VPXORD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22882, 214},
-    {I_VPXORD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22890, 215},
-    {I_VPXORD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22898, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VPXORQ[] = {
-    {I_VPXORQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22906, 214},
-    {I_VPXORQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22914, 214},
-    {I_VPXORQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22922, 214},
-    {I_VPXORQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22930, 214},
-    {I_VPXORQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22938, 215},
-    {I_VPXORQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22946, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRANGEPD[] = {
-    {I_VRANGEPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+6462, 216},
-    {I_VRANGEPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6471, 216},
-    {I_VRANGEPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+6480, 216},
-    {I_VRANGEPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6489, 216},
-    {I_VRANGEPD, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64|SAE,0,0}, nasm_bytecodes+6498, 217},
-    {I_VRANGEPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+6507, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRANGEPS[] = {
-    {I_VRANGEPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+6516, 216},
-    {I_VRANGEPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6525, 216},
-    {I_VRANGEPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+6534, 216},
-    {I_VRANGEPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6543, 216},
-    {I_VRANGEPS, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32|SAE,0,0}, nasm_bytecodes+6552, 217},
-    {I_VRANGEPS, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+6561, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRANGESD[] = {
-    {I_VRANGESD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+6570, 217},
-    {I_VRANGESD, 3, {XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+6579, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRANGESS[] = {
-    {I_VRANGESS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+6588, 217},
-    {I_VRANGESS, 3, {XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+6597, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRCP14PD[] = {
-    {I_VRCP14PD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22954, 214},
-    {I_VRCP14PD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22962, 214},
-    {I_VRCP14PD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22970, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRCP14PS[] = {
-    {I_VRCP14PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22978, 214},
-    {I_VRCP14PS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22986, 214},
-    {I_VRCP14PS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22994, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRCP14SD[] = {
-    {I_VRCP14SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23002, 215},
-    {I_VRCP14SD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23010, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRCP14SS[] = {
-    {I_VRCP14SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23018, 215},
-    {I_VRCP14SS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23026, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRCP28PD[] = {
-    {I_VRCP28PD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+23034, 220},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRCP28PS[] = {
-    {I_VRCP28PS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+23042, 220},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRCP28SD[] = {
-    {I_VRCP28SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+23050, 220},
-    {I_VRCP28SD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+23058, 220},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRCP28SS[] = {
-    {I_VRCP28SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+23066, 220},
-    {I_VRCP28SS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+23074, 220},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRCPPS[] = {
-    {I_VRCPPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28834, 179},
-    {I_VRCPPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+28841, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRCPSS[] = {
-    {I_VRCPSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+28848, 179},
-    {I_VRCPSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+28855, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VREDUCEPD[] = {
-    {I_VREDUCEPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6606, 216},
-    {I_VREDUCEPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6615, 216},
-    {I_VREDUCEPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+6624, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VREDUCEPS[] = {
-    {I_VREDUCEPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6633, 216},
-    {I_VREDUCEPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6642, 216},
-    {I_VREDUCEPS, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+6651, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VREDUCESD[] = {
-    {I_VREDUCESD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+6660, 217},
-    {I_VREDUCESD, 3, {XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+6669, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VREDUCESS[] = {
-    {I_VREDUCESS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+6678, 217},
-    {I_VREDUCESS, 3, {XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+6687, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRNDSCALEPD[] = {
-    {I_VRNDSCALEPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6696, 214},
-    {I_VRNDSCALEPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6705, 214},
-    {I_VRNDSCALEPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+6714, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRNDSCALEPS[] = {
-    {I_VRNDSCALEPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6723, 214},
-    {I_VRNDSCALEPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6732, 214},
-    {I_VRNDSCALEPS, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+6741, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRNDSCALESD[] = {
-    {I_VRNDSCALESD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+6750, 215},
-    {I_VRNDSCALESD, 3, {XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+6759, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRNDSCALESS[] = {
-    {I_VRNDSCALESS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+6768, 215},
-    {I_VRNDSCALESS, 3, {XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+6777, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VROUNDPD[] = {
-    {I_VROUNDPD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8778, 179},
-    {I_VROUNDPD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8786, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VROUNDPS[] = {
-    {I_VROUNDPS, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8794, 179},
-    {I_VROUNDPS, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8802, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VROUNDSD[] = {
-    {I_VROUNDSD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8810, 179},
-    {I_VROUNDSD, 3, {XMM_L16,RM_XMM_L16|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8818, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VROUNDSS[] = {
-    {I_VROUNDSS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8826, 179},
-    {I_VROUNDSS, 3, {XMM_L16,RM_XMM_L16|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8834, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRSQRT14PD[] = {
-    {I_VRSQRT14PD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23082, 214},
-    {I_VRSQRT14PD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23090, 214},
-    {I_VRSQRT14PD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23098, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRSQRT14PS[] = {
-    {I_VRSQRT14PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23106, 214},
-    {I_VRSQRT14PS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23114, 214},
-    {I_VRSQRT14PS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23122, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRSQRT14SD[] = {
-    {I_VRSQRT14SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23130, 215},
-    {I_VRSQRT14SD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23138, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRSQRT14SS[] = {
-    {I_VRSQRT14SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23146, 215},
-    {I_VRSQRT14SS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23154, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRSQRT28PD[] = {
-    {I_VRSQRT28PD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+23162, 220},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRSQRT28PS[] = {
-    {I_VRSQRT28PS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+23170, 220},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRSQRT28SD[] = {
-    {I_VRSQRT28SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+23178, 220},
-    {I_VRSQRT28SD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+23186, 220},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRSQRT28SS[] = {
-    {I_VRSQRT28SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+23194, 220},
-    {I_VRSQRT28SS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+23202, 220},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRSQRTPS[] = {
-    {I_VRSQRTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28862, 179},
-    {I_VRSQRTPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+28869, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VRSQRTSS[] = {
-    {I_VRSQRTSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+28876, 179},
-    {I_VRSQRTSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+28883, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCALEFPD[] = {
-    {I_VSCALEFPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23210, 214},
-    {I_VSCALEFPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23218, 214},
-    {I_VSCALEFPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23226, 214},
-    {I_VSCALEFPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23234, 214},
-    {I_VSCALEFPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+23242, 215},
-    {I_VSCALEFPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+23250, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCALEFPS[] = {
-    {I_VSCALEFPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23258, 214},
-    {I_VSCALEFPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23266, 214},
-    {I_VSCALEFPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23274, 214},
-    {I_VSCALEFPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23282, 214},
-    {I_VSCALEFPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+23290, 215},
-    {I_VSCALEFPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+23298, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCALEFSD[] = {
-    {I_VSCALEFSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+23306, 215},
-    {I_VSCALEFSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+23314, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCALEFSS[] = {
-    {I_VSCALEFSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+23322, 215},
-    {I_VSCALEFSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+23330, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCATTERDPD[] = {
-    {I_VSCATTERDPD, 2, {XMEM|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6786, 214},
-    {I_VSCATTERDPD, 2, {XMEM|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6795, 214},
-    {I_VSCATTERDPD, 2, {YMEM|BITS64,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6804, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCATTERDPS[] = {
-    {I_VSCATTERDPS, 2, {XMEM|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6813, 214},
-    {I_VSCATTERDPS, 2, {YMEM|BITS32,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6822, 214},
-    {I_VSCATTERDPS, 2, {ZMEM|BITS32,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6831, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCATTERPF0DPD[] = {
-    {I_VSCATTERPF0DPD, 1, {YMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6840, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCATTERPF0DPS[] = {
-    {I_VSCATTERPF0DPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6849, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCATTERPF0QPD[] = {
-    {I_VSCATTERPF0QPD, 1, {ZMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6858, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCATTERPF0QPS[] = {
-    {I_VSCATTERPF0QPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6867, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCATTERPF1DPD[] = {
-    {I_VSCATTERPF1DPD, 1, {YMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6876, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCATTERPF1DPS[] = {
-    {I_VSCATTERPF1DPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6885, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCATTERPF1QPD[] = {
-    {I_VSCATTERPF1QPD, 1, {ZMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6894, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCATTERPF1QPS[] = {
-    {I_VSCATTERPF1QPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6903, 221},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCATTERQPD[] = {
-    {I_VSCATTERQPD, 2, {XMEM|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6912, 214},
-    {I_VSCATTERQPD, 2, {YMEM|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6921, 214},
-    {I_VSCATTERQPD, 2, {ZMEM|BITS64,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6930, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSCATTERQPS[] = {
-    {I_VSCATTERQPS, 2, {XMEM|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6939, 214},
-    {I_VSCATTERQPS, 2, {YMEM|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6948, 214},
-    {I_VSCATTERQPS, 2, {ZMEM|BITS32,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6957, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSHUFF32X4[] = {
-    {I_VSHUFF32X4, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+6966, 214},
-    {I_VSHUFF32X4, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6975, 214},
-    {I_VSHUFF32X4, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+6984, 215},
-    {I_VSHUFF32X4, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6993, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSHUFF64X2[] = {
-    {I_VSHUFF64X2, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+7002, 214},
-    {I_VSHUFF64X2, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+7011, 214},
-    {I_VSHUFF64X2, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+7020, 215},
-    {I_VSHUFF64X2, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+7029, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSHUFI32X4[] = {
-    {I_VSHUFI32X4, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+7038, 214},
-    {I_VSHUFI32X4, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+7047, 214},
-    {I_VSHUFI32X4, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+7056, 215},
-    {I_VSHUFI32X4, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+7065, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSHUFI64X2[] = {
-    {I_VSHUFI64X2, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+7074, 214},
-    {I_VSHUFI64X2, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+7083, 214},
-    {I_VSHUFI64X2, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+7092, 215},
-    {I_VSHUFI64X2, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+7101, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSHUFPD[] = {
-    {I_VSHUFPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8842, 179},
-    {I_VSHUFPD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8850, 179},
-    {I_VSHUFPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8858, 179},
-    {I_VSHUFPD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8866, 179},
-    {I_VSHUFPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+7110, 214},
-    {I_VSHUFPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+7119, 214},
-    {I_VSHUFPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+7128, 214},
-    {I_VSHUFPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+7137, 214},
-    {I_VSHUFPD, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+7146, 215},
-    {I_VSHUFPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+7155, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSHUFPS[] = {
-    {I_VSHUFPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8874, 179},
-    {I_VSHUFPS, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8882, 179},
-    {I_VSHUFPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8890, 179},
-    {I_VSHUFPS, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8898, 179},
-    {I_VSHUFPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+7164, 214},
-    {I_VSHUFPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+7173, 214},
-    {I_VSHUFPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+7182, 214},
-    {I_VSHUFPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+7191, 214},
-    {I_VSHUFPS, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+7200, 215},
-    {I_VSHUFPS, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+7209, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSQRTPD[] = {
-    {I_VSQRTPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28890, 179},
-    {I_VSQRTPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+28897, 179},
-    {I_VSQRTPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23338, 214},
-    {I_VSQRTPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23346, 214},
-    {I_VSQRTPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+23354, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSQRTPS[] = {
-    {I_VSQRTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28904, 179},
-    {I_VSQRTPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+28911, 179},
-    {I_VSQRTPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23362, 214},
-    {I_VSQRTPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23370, 214},
-    {I_VSQRTPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+23378, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSQRTSD[] = {
-    {I_VSQRTSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+28918, 179},
-    {I_VSQRTSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+28925, 179},
-    {I_VSQRTSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+23386, 215},
-    {I_VSQRTSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+23394, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSQRTSS[] = {
-    {I_VSQRTSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+28932, 179},
-    {I_VSQRTSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+28939, 179},
-    {I_VSQRTSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+23402, 215},
-    {I_VSQRTSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+23410, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSTMXCSR[] = {
-    {I_VSTMXCSR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+28946, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSUBPD[] = {
-    {I_VSUBPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28953, 179},
-    {I_VSUBPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28960, 179},
-    {I_VSUBPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+28967, 179},
-    {I_VSUBPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+28974, 179},
-    {I_VSUBPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23418, 214},
-    {I_VSUBPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23426, 214},
-    {I_VSUBPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23434, 214},
-    {I_VSUBPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23442, 214},
-    {I_VSUBPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+23450, 215},
-    {I_VSUBPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+23458, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSUBPS[] = {
-    {I_VSUBPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28981, 179},
-    {I_VSUBPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28988, 179},
-    {I_VSUBPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+28995, 179},
-    {I_VSUBPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29002, 179},
-    {I_VSUBPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23466, 214},
-    {I_VSUBPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23474, 214},
-    {I_VSUBPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23482, 214},
-    {I_VSUBPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23490, 214},
-    {I_VSUBPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+23498, 215},
-    {I_VSUBPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+23506, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSUBSD[] = {
-    {I_VSUBSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29009, 179},
-    {I_VSUBSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+29016, 179},
-    {I_VSUBSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+23514, 215},
-    {I_VSUBSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+23522, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VSUBSS[] = {
-    {I_VSUBSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29023, 179},
-    {I_VSUBSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+29030, 179},
-    {I_VSUBSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+23530, 215},
-    {I_VSUBSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+23538, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VTESTPD[] = {
-    {I_VTESTPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29051, 179},
-    {I_VTESTPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29058, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VTESTPS[] = {
-    {I_VTESTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29037, 179},
-    {I_VTESTPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29044, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VUCOMISD[] = {
-    {I_VUCOMISD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+29065, 179},
-    {I_VUCOMISD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+23546, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VUCOMISS[] = {
-    {I_VUCOMISS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+29072, 179},
-    {I_VUCOMISS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+23554, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VUNPCKHPD[] = {
-    {I_VUNPCKHPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29079, 179},
-    {I_VUNPCKHPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29086, 179},
-    {I_VUNPCKHPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29093, 179},
-    {I_VUNPCKHPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29100, 179},
-    {I_VUNPCKHPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23562, 214},
-    {I_VUNPCKHPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23570, 214},
-    {I_VUNPCKHPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23578, 214},
-    {I_VUNPCKHPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23586, 214},
-    {I_VUNPCKHPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23594, 215},
-    {I_VUNPCKHPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23602, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VUNPCKHPS[] = {
-    {I_VUNPCKHPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29107, 179},
-    {I_VUNPCKHPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29114, 179},
-    {I_VUNPCKHPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29121, 179},
-    {I_VUNPCKHPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29128, 179},
-    {I_VUNPCKHPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23610, 214},
-    {I_VUNPCKHPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23618, 214},
-    {I_VUNPCKHPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23626, 214},
-    {I_VUNPCKHPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23634, 214},
-    {I_VUNPCKHPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23642, 215},
-    {I_VUNPCKHPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23650, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VUNPCKLPD[] = {
-    {I_VUNPCKLPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29135, 179},
-    {I_VUNPCKLPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29142, 179},
-    {I_VUNPCKLPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29149, 179},
-    {I_VUNPCKLPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29156, 179},
-    {I_VUNPCKLPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23658, 214},
-    {I_VUNPCKLPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23666, 214},
-    {I_VUNPCKLPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23674, 214},
-    {I_VUNPCKLPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23682, 214},
-    {I_VUNPCKLPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23690, 215},
-    {I_VUNPCKLPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23698, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VUNPCKLPS[] = {
-    {I_VUNPCKLPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29163, 179},
-    {I_VUNPCKLPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29170, 179},
-    {I_VUNPCKLPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29177, 179},
-    {I_VUNPCKLPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29184, 179},
-    {I_VUNPCKLPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23706, 214},
-    {I_VUNPCKLPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23714, 214},
-    {I_VUNPCKLPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23722, 214},
-    {I_VUNPCKLPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23730, 214},
-    {I_VUNPCKLPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23738, 215},
-    {I_VUNPCKLPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23746, 215},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VXORPD[] = {
-    {I_VXORPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29191, 179},
-    {I_VXORPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29198, 179},
-    {I_VXORPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29205, 179},
-    {I_VXORPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29212, 179},
-    {I_VXORPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23754, 216},
-    {I_VXORPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23762, 216},
-    {I_VXORPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23770, 216},
-    {I_VXORPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23778, 216},
-    {I_VXORPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23786, 217},
-    {I_VXORPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23794, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VXORPS[] = {
-    {I_VXORPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29219, 179},
-    {I_VXORPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29226, 179},
-    {I_VXORPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29233, 179},
-    {I_VXORPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29240, 179},
-    {I_VXORPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23802, 216},
-    {I_VXORPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23810, 216},
-    {I_VXORPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23818, 216},
-    {I_VXORPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23826, 216},
-    {I_VXORPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23834, 217},
-    {I_VXORPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23842, 217},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VZEROALL[] = {
-    {I_VZEROALL, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35302, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_VZEROUPPER[] = {
-    {I_VZEROUPPER, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35308, 179},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_WBINVD[] = {
-    {I_WBINVD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39369, 54},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_WRFSBASE[] = {
-    {I_WRFSBASE, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29947, 130},
-    {I_WRFSBASE, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29954, 130},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_WRGSBASE[] = {
-    {I_WRGSBASE, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29961, 130},
-    {I_WRGSBASE, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29968, 130},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_WRMSR[] = {
-    {I_WRMSR, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39373, 96},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_WRPKRU[] = {
-    {I_WRPKRU, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38411, 228},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_WRSHR[] = {
-    {I_WRSHR, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34126, 95},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XABORT[] = {
-    {I_XABORT, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38386, 193},
-    {I_XABORT, 1, {IMMEDIATE|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38386, 193},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XADD[] = {
-    {I_XADD, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+34132, 111},
-    {I_XADD, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+34133, 20},
-    {I_XADD, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24767, 111},
-    {I_XADD, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24768, 20},
-    {I_XADD, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24774, 111},
-    {I_XADD, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24775, 20},
-    {I_XADD, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24781, 6},
-    {I_XADD, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24782, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XBEGIN[] = {
-    {I_XBEGIN, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35398, 193},
-    {I_XBEGIN, 1, {IMMEDIATE|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35398, 193},
-    {I_XBEGIN, 1, {IMMEDIATE|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35404, 194},
-    {I_XBEGIN, 1, {IMMEDIATE|BITS16|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35404, 194},
-    {I_XBEGIN, 1, {IMMEDIATE|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35410, 194},
-    {I_XBEGIN, 1, {IMMEDIATE|BITS32|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35410, 194},
-    {I_XBEGIN, 1, {IMMEDIATE|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35416, 195},
-    {I_XBEGIN, 1, {IMMEDIATE|BITS64|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35416, 195},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XBTS[] = {
-    {I_XBTS, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34138, 112},
-    {I_XBTS, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34138, 105},
-    {I_XBTS, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34144, 113},
-    {I_XBTS, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34144, 105},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XCHG[] = {
-    {I_XCHG, 2, {REG_AX,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+39377, 0},
-    {I_XCHG, 2, {REG_EAX,REG32NA,0,0,0}, NO_DECORATOR, nasm_bytecodes+39381, 5},
-    {I_XCHG, 2, {REG_RAX,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+39385, 7},
-    {I_XCHG, 2, {REG_GPR|BITS16,REG_AX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39389, 0},
-    {I_XCHG, 2, {REG32NA,REG_EAX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39393, 5},
-    {I_XCHG, 2, {REG_GPR|BITS64,REG_RAX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39397, 7},
-    {I_XCHG, 2, {REG_EAX,REG_EAX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39401, 19},
-    {I_XCHG, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38256, 3},
-    {I_XCHG, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38257, 0},
-    {I_XCHG, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34150, 3},
-    {I_XCHG, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34151, 0},
-    {I_XCHG, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34156, 4},
-    {I_XCHG, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34157, 5},
-    {I_XCHG, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34162, 6},
-    {I_XCHG, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34163, 7},
-    {I_XCHG, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38261, 3},
-    {I_XCHG, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38262, 0},
-    {I_XCHG, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34168, 3},
-    {I_XCHG, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34169, 0},
-    {I_XCHG, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34174, 4},
-    {I_XCHG, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34175, 5},
-    {I_XCHG, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34180, 6},
-    {I_XCHG, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34181, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XCRYPTCBC[] = {
-    {I_XCRYPTCBC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35356, 36},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XCRYPTCFB[] = {
-    {I_XCRYPTCFB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35368, 36},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XCRYPTCTR[] = {
-    {I_XCRYPTCTR, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35362, 36},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XCRYPTECB[] = {
-    {I_XCRYPTECB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35350, 36},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XCRYPTOFB[] = {
-    {I_XCRYPTOFB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35374, 36},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XEND[] = {
-    {I_XEND, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38391, 193},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XGETBV[] = {
-    {I_XGETBV, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38306, 126},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XLAT[] = {
-    {I_XLAT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39458, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XLATB[] = {
-    {I_XLATB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39458, 0},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XOR[] = {
-    {I_XOR, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38266, 3},
-    {I_XOR, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38267, 0},
-    {I_XOR, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34186, 3},
-    {I_XOR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34187, 0},
-    {I_XOR, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34192, 4},
-    {I_XOR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34193, 5},
-    {I_XOR, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34198, 6},
-    {I_XOR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34199, 7},
-    {I_XOR, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+31350, 8},
-    {I_XOR, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31350, 0},
-    {I_XOR, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38271, 8},
-    {I_XOR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+38271, 0},
-    {I_XOR, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38276, 9},
-    {I_XOR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+38276, 5},
-    {I_XOR, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38281, 10},
-    {I_XOR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+38281, 7},
-    {I_XOR, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24788, 11},
-    {I_XOR, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24795, 12},
-    {I_XOR, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24802, 13},
-    {I_XOR, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39405, 8},
-    {I_XOR, 2, {REG_AX,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24789, 8},
-    {I_XOR, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38286, 8},
-    {I_XOR, 2, {REG_EAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24796, 9},
-    {I_XOR, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38291, 9},
-    {I_XOR, 2, {REG_RAX,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24803, 10},
-    {I_XOR, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38296, 10},
-    {I_XOR, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+34204, 3},
-    {I_XOR, 2, {RM_GPR|BITS16,SBYTEWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24788, 3},
-    {I_XOR, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24809, 3},
-    {I_XOR, 2, {RM_GPR|BITS32,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24795, 4},
-    {I_XOR, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24816, 4},
-    {I_XOR, 2, {RM_GPR|BITS64,SBYTEDWORD,0,0,0}, NO_DECORATOR, nasm_bytecodes+24802, 6},
-    {I_XOR, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24823, 6},
-    {I_XOR, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+34204, 3},
-    {I_XOR, 2, {MEMORY,SBYTEWORD|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24788, 3},
-    {I_XOR, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24809, 3},
-    {I_XOR, 2, {MEMORY,SBYTEDWORD|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24795, 4},
-    {I_XOR, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24816, 4},
-    {I_XOR, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+34210, 14},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XORPD[] = {
-    {I_XORPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35188, 136},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XORPS[] = {
-    {I_XORPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34468, 116},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XRSTOR[] = {
-    {I_XRSTOR, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24978, 126},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XRSTOR64[] = {
-    {I_XRSTOR64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24977, 128},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XRSTORS[] = {
-    {I_XRSTORS, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24985, 129},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XRSTORS64[] = {
-    {I_XRSTORS64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24984, 130},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XSAVE[] = {
-    {I_XSAVE, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24950, 126},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XSAVE64[] = {
-    {I_XSAVE64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24949, 128},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XSAVEC[] = {
-    {I_XSAVEC, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24957, 129},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XSAVEC64[] = {
-    {I_XSAVEC64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24956, 130},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XSAVEOPT[] = {
-    {I_XSAVEOPT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24964, 129},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XSAVEOPT64[] = {
-    {I_XSAVEOPT64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24963, 130},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XSAVES[] = {
-    {I_XSAVES, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24971, 129},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XSAVES64[] = {
-    {I_XSAVES64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24970, 130},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XSETBV[] = {
-    {I_XSETBV, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38311, 127},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XSHA1[] = {
-    {I_XSHA1, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35386, 36},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XSHA256[] = {
-    {I_XSHA256, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35392, 36},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XSTORE[] = {
-    {I_XSTORE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38381, 36},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_XTEST[] = {
-    {I_XTEST, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38396, 196},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_CMOVcc[] = {
-    {I_CMOVcc, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24830, 114},
-    {I_CMOVcc, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24830, 86},
-    {I_CMOVcc, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24837, 114},
-    {I_CMOVcc, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24837, 86},
-    {I_CMOVcc, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24844, 10},
-    {I_CMOVcc, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24844, 7},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_Jcc[] = {
-    {I_Jcc, 1, {IMMEDIATE|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24851, 115},
-    {I_Jcc, 1, {IMMEDIATE|BITS16|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24858, 27},
-    {I_Jcc, 1, {IMMEDIATE|BITS32|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24865, 27},
-    {I_Jcc, 1, {IMMEDIATE|BITS64|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24872, 28},
-    {I_Jcc, 1, {IMMEDIATE|SHORT,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38302, 25},
-    {I_Jcc, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38301, 25},
-    {I_Jcc, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24873, 115},
-    {I_Jcc, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24879, 25},
-    {I_Jcc, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38302, 25},
-    ITEMPLATE_END
-};
-
-static const struct itemplate instrux_SETcc[] = {
-    {I_SETcc, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34216, 21},
-    {I_SETcc, 1, {REG_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34216, 5},
-    ITEMPLATE_END
-};
-
-const struct itemplate * const nasm_instructions[] = {
-    instrux_AAA,
-    instrux_AAD,
-    instrux_AAM,
-    instrux_AAS,
-    instrux_ADC,
-    instrux_ADCX,
-    instrux_ADD,
-    instrux_ADDPD,
-    instrux_ADDPS,
-    instrux_ADDSD,
-    instrux_ADDSS,
-    instrux_ADDSUBPD,
-    instrux_ADDSUBPS,
-    instrux_ADOX,
-    instrux_AESDEC,
-    instrux_AESDECLAST,
-    instrux_AESENC,
-    instrux_AESENCLAST,
-    instrux_AESIMC,
-    instrux_AESKEYGENASSIST,
-    instrux_AND,
-    instrux_ANDN,
-    instrux_ANDNPD,
-    instrux_ANDNPS,
-    instrux_ANDPD,
-    instrux_ANDPS,
-    instrux_ARPL,
-    instrux_BB0_RESET,
-    instrux_BB1_RESET,
-    instrux_BEXTR,
-    instrux_BLCFILL,
-    instrux_BLCI,
-    instrux_BLCIC,
-    instrux_BLCMSK,
-    instrux_BLCS,
-    instrux_BLENDPD,
-    instrux_BLENDPS,
-    instrux_BLENDVPD,
-    instrux_BLENDVPS,
-    instrux_BLSFILL,
-    instrux_BLSI,
-    instrux_BLSIC,
-    instrux_BLSMSK,
-    instrux_BLSR,
-    instrux_BNDCL,
-    instrux_BNDCN,
-    instrux_BNDCU,
-    instrux_BNDLDX,
-    instrux_BNDMK,
-    instrux_BNDMOV,
-    instrux_BNDSTX,
-    instrux_BOUND,
-    instrux_BSF,
-    instrux_BSR,
-    instrux_BSWAP,
-    instrux_BT,
-    instrux_BTC,
-    instrux_BTR,
-    instrux_BTS,
-    instrux_BZHI,
-    instrux_CALL,
-    instrux_CBW,
-    instrux_CDQ,
-    instrux_CDQE,
-    instrux_CLAC,
-    instrux_CLC,
-    instrux_CLD,
-    instrux_CLFLUSH,
-    instrux_CLFLUSHOPT,
-    instrux_CLGI,
-    instrux_CLI,
-    instrux_CLTS,
-    instrux_CLWB,
-    instrux_CLZERO,
-    instrux_CMC,
-    instrux_CMP,
-    instrux_CMPEQPD,
-    instrux_CMPEQPS,
-    instrux_CMPEQSD,
-    instrux_CMPEQSS,
-    instrux_CMPLEPD,
-    instrux_CMPLEPS,
-    instrux_CMPLESD,
-    instrux_CMPLESS,
-    instrux_CMPLTPD,
-    instrux_CMPLTPS,
-    instrux_CMPLTSD,
-    instrux_CMPLTSS,
-    instrux_CMPNEQPD,
-    instrux_CMPNEQPS,
-    instrux_CMPNEQSD,
-    instrux_CMPNEQSS,
-    instrux_CMPNLEPD,
-    instrux_CMPNLEPS,
-    instrux_CMPNLESD,
-    instrux_CMPNLESS,
-    instrux_CMPNLTPD,
-    instrux_CMPNLTPS,
-    instrux_CMPNLTSD,
-    instrux_CMPNLTSS,
-    instrux_CMPORDPD,
-    instrux_CMPORDPS,
-    instrux_CMPORDSD,
-    instrux_CMPORDSS,
-    instrux_CMPPD,
-    instrux_CMPPS,
-    instrux_CMPSB,
-    instrux_CMPSD,
-    instrux_CMPSQ,
-    instrux_CMPSS,
-    instrux_CMPSW,
-    instrux_CMPUNORDPD,
-    instrux_CMPUNORDPS,
-    instrux_CMPUNORDSD,
-    instrux_CMPUNORDSS,
-    instrux_CMPXCHG,
-    instrux_CMPXCHG16B,
-    instrux_CMPXCHG486,
-    instrux_CMPXCHG8B,
-    instrux_COMISD,
-    instrux_COMISS,
-    instrux_CPUID,
-    instrux_CPU_READ,
-    instrux_CPU_WRITE,
-    instrux_CQO,
-    instrux_CRC32,
-    instrux_CVTDQ2PD,
-    instrux_CVTDQ2PS,
-    instrux_CVTPD2DQ,
-    instrux_CVTPD2PI,
-    instrux_CVTPD2PS,
-    instrux_CVTPI2PD,
-    instrux_CVTPI2PS,
-    instrux_CVTPS2DQ,
-    instrux_CVTPS2PD,
-    instrux_CVTPS2PI,
-    instrux_CVTSD2SI,
-    instrux_CVTSD2SS,
-    instrux_CVTSI2SD,
-    instrux_CVTSI2SS,
-    instrux_CVTSS2SD,
-    instrux_CVTSS2SI,
-    instrux_CVTTPD2DQ,
-    instrux_CVTTPD2PI,
-    instrux_CVTTPS2DQ,
-    instrux_CVTTPS2PI,
-    instrux_CVTTSD2SI,
-    instrux_CVTTSS2SI,
-    instrux_CWD,
-    instrux_CWDE,
-    instrux_DAA,
-    instrux_DAS,
-    instrux_DB,
-    instrux_DD,
-    instrux_DEC,
-    instrux_DIV,
-    instrux_DIVPD,
-    instrux_DIVPS,
-    instrux_DIVSD,
-    instrux_DIVSS,
-    instrux_DMINT,
-    instrux_DO,
-    instrux_DPPD,
-    instrux_DPPS,
-    instrux_DQ,
-    instrux_DT,
-    instrux_DW,
-    instrux_DY,
-    instrux_DZ,
-    instrux_EMMS,
-    instrux_ENTER,
-    instrux_EQU,
-    instrux_EXTRACTPS,
-    instrux_EXTRQ,
-    instrux_F2XM1,
-    instrux_FABS,
-    instrux_FADD,
-    instrux_FADDP,
-    instrux_FBLD,
-    instrux_FBSTP,
-    instrux_FCHS,
-    instrux_FCLEX,
-    instrux_FCMOVB,
-    instrux_FCMOVBE,
-    instrux_FCMOVE,
-    instrux_FCMOVNB,
-    instrux_FCMOVNBE,
-    instrux_FCMOVNE,
-    instrux_FCMOVNU,
-    instrux_FCMOVU,
-    instrux_FCOM,
-    instrux_FCOMI,
-    instrux_FCOMIP,
-    instrux_FCOMP,
-    instrux_FCOMPP,
-    instrux_FCOS,
-    instrux_FDECSTP,
-    instrux_FDISI,
-    instrux_FDIV,
-    instrux_FDIVP,
-    instrux_FDIVR,
-    instrux_FDIVRP,
-    instrux_FEMMS,
-    instrux_FENI,
-    instrux_FFREE,
-    instrux_FFREEP,
-    instrux_FIADD,
-    instrux_FICOM,
-    instrux_FICOMP,
-    instrux_FIDIV,
-    instrux_FIDIVR,
-    instrux_FILD,
-    instrux_FIMUL,
-    instrux_FINCSTP,
-    instrux_FINIT,
-    instrux_FIST,
-    instrux_FISTP,
-    instrux_FISTTP,
-    instrux_FISUB,
-    instrux_FISUBR,
-    instrux_FLD,
-    instrux_FLD1,
-    instrux_FLDCW,
-    instrux_FLDENV,
-    instrux_FLDL2E,
-    instrux_FLDL2T,
-    instrux_FLDLG2,
-    instrux_FLDLN2,
-    instrux_FLDPI,
-    instrux_FLDZ,
-    instrux_FMUL,
-    instrux_FMULP,
-    instrux_FNCLEX,
-    instrux_FNDISI,
-    instrux_FNENI,
-    instrux_FNINIT,
-    instrux_FNOP,
-    instrux_FNSAVE,
-    instrux_FNSTCW,
-    instrux_FNSTENV,
-    instrux_FNSTSW,
-    instrux_FPATAN,
-    instrux_FPREM,
-    instrux_FPREM1,
-    instrux_FPTAN,
-    instrux_FRNDINT,
-    instrux_FRSTOR,
-    instrux_FSAVE,
-    instrux_FSCALE,
-    instrux_FSETPM,
-    instrux_FSIN,
-    instrux_FSINCOS,
-    instrux_FSQRT,
-    instrux_FST,
-    instrux_FSTCW,
-    instrux_FSTENV,
-    instrux_FSTP,
-    instrux_FSTSW,
-    instrux_FSUB,
-    instrux_FSUBP,
-    instrux_FSUBR,
-    instrux_FSUBRP,
-    instrux_FTST,
-    instrux_FUCOM,
-    instrux_FUCOMI,
-    instrux_FUCOMIP,
-    instrux_FUCOMP,
-    instrux_FUCOMPP,
-    instrux_FWAIT,
-    instrux_FXAM,
-    instrux_FXCH,
-    instrux_FXRSTOR,
-    instrux_FXRSTOR64,
-    instrux_FXSAVE,
-    instrux_FXSAVE64,
-    instrux_FXTRACT,
-    instrux_FYL2X,
-    instrux_FYL2XP1,
-    instrux_GETSEC,
-    instrux_HADDPD,
-    instrux_HADDPS,
-    instrux_HINT_NOP0,
-    instrux_HINT_NOP1,
-    instrux_HINT_NOP10,
-    instrux_HINT_NOP11,
-    instrux_HINT_NOP12,
-    instrux_HINT_NOP13,
-    instrux_HINT_NOP14,
-    instrux_HINT_NOP15,
-    instrux_HINT_NOP16,
-    instrux_HINT_NOP17,
-    instrux_HINT_NOP18,
-    instrux_HINT_NOP19,
-    instrux_HINT_NOP2,
-    instrux_HINT_NOP20,
-    instrux_HINT_NOP21,
-    instrux_HINT_NOP22,
-    instrux_HINT_NOP23,
-    instrux_HINT_NOP24,
-    instrux_HINT_NOP25,
-    instrux_HINT_NOP26,
-    instrux_HINT_NOP27,
-    instrux_HINT_NOP28,
-    instrux_HINT_NOP29,
-    instrux_HINT_NOP3,
-    instrux_HINT_NOP30,
-    instrux_HINT_NOP31,
-    instrux_HINT_NOP32,
-    instrux_HINT_NOP33,
-    instrux_HINT_NOP34,
-    instrux_HINT_NOP35,
-    instrux_HINT_NOP36,
-    instrux_HINT_NOP37,
-    instrux_HINT_NOP38,
-    instrux_HINT_NOP39,
-    instrux_HINT_NOP4,
-    instrux_HINT_NOP40,
-    instrux_HINT_NOP41,
-    instrux_HINT_NOP42,
-    instrux_HINT_NOP43,
-    instrux_HINT_NOP44,
-    instrux_HINT_NOP45,
-    instrux_HINT_NOP46,
-    instrux_HINT_NOP47,
-    instrux_HINT_NOP48,
-    instrux_HINT_NOP49,
-    instrux_HINT_NOP5,
-    instrux_HINT_NOP50,
-    instrux_HINT_NOP51,
-    instrux_HINT_NOP52,
-    instrux_HINT_NOP53,
-    instrux_HINT_NOP54,
-    instrux_HINT_NOP55,
-    instrux_HINT_NOP56,
-    instrux_HINT_NOP57,
-    instrux_HINT_NOP58,
-    instrux_HINT_NOP59,
-    instrux_HINT_NOP6,
-    instrux_HINT_NOP60,
-    instrux_HINT_NOP61,
-    instrux_HINT_NOP62,
-    instrux_HINT_NOP63,
-    instrux_HINT_NOP7,
-    instrux_HINT_NOP8,
-    instrux_HINT_NOP9,
-    instrux_HLT,
-    instrux_HSUBPD,
-    instrux_HSUBPS,
-    instrux_IBTS,
-    instrux_ICEBP,
-    instrux_IDIV,
-    instrux_IMUL,
-    instrux_IN,
-    instrux_INC,
-    instrux_INCBIN,
-    instrux_INSB,
-    instrux_INSD,
-    instrux_INSERTPS,
-    instrux_INSERTQ,
-    instrux_INSW,
-    instrux_INT,
-    instrux_INT01,
-    instrux_INT03,
-    instrux_INT1,
-    instrux_INT3,
-    instrux_INTO,
-    instrux_INVD,
-    instrux_INVEPT,
-    instrux_INVLPG,
-    instrux_INVLPGA,
-    instrux_INVPCID,
-    instrux_INVVPID,
-    instrux_IRET,
-    instrux_IRETD,
-    instrux_IRETQ,
-    instrux_IRETW,
-    instrux_JCXZ,
-    instrux_JECXZ,
-    instrux_JMP,
-    instrux_JMPE,
-    instrux_JRCXZ,
-    instrux_KADDB,
-    instrux_KADDD,
-    instrux_KADDQ,
-    instrux_KADDW,
-    instrux_KANDB,
-    instrux_KANDD,
-    instrux_KANDNB,
-    instrux_KANDND,
-    instrux_KANDNQ,
-    instrux_KANDNW,
-    instrux_KANDQ,
-    instrux_KANDW,
-    instrux_KMOVB,
-    instrux_KMOVD,
-    instrux_KMOVQ,
-    instrux_KMOVW,
-    instrux_KNOTB,
-    instrux_KNOTD,
-    instrux_KNOTQ,
-    instrux_KNOTW,
-    instrux_KORB,
-    instrux_KORD,
-    instrux_KORQ,
-    instrux_KORTESTB,
-    instrux_KORTESTD,
-    instrux_KORTESTQ,
-    instrux_KORTESTW,
-    instrux_KORW,
-    instrux_KSHIFTLB,
-    instrux_KSHIFTLD,
-    instrux_KSHIFTLQ,
-    instrux_KSHIFTLW,
-    instrux_KSHIFTRB,
-    instrux_KSHIFTRD,
-    instrux_KSHIFTRQ,
-    instrux_KSHIFTRW,
-    instrux_KTESTB,
-    instrux_KTESTD,
-    instrux_KTESTQ,
-    instrux_KTESTW,
-    instrux_KUNPCKBW,
-    instrux_KUNPCKDQ,
-    instrux_KUNPCKWD,
-    instrux_KXNORB,
-    instrux_KXNORD,
-    instrux_KXNORQ,
-    instrux_KXNORW,
-    instrux_KXORB,
-    instrux_KXORD,
-    instrux_KXORQ,
-    instrux_KXORW,
-    instrux_LAHF,
-    instrux_LAR,
-    instrux_LDDQU,
-    instrux_LDMXCSR,
-    instrux_LDS,
-    instrux_LEA,
-    instrux_LEAVE,
-    instrux_LES,
-    instrux_LFENCE,
-    instrux_LFS,
-    instrux_LGDT,
-    instrux_LGS,
-    instrux_LIDT,
-    instrux_LLDT,
-    instrux_LLWPCB,
-    instrux_LMSW,
-    instrux_LOADALL,
-    instrux_LOADALL286,
-    instrux_LODSB,
-    instrux_LODSD,
-    instrux_LODSQ,
-    instrux_LODSW,
-    instrux_LOOP,
-    instrux_LOOPE,
-    instrux_LOOPNE,
-    instrux_LOOPNZ,
-    instrux_LOOPZ,
-    instrux_LSL,
-    instrux_LSS,
-    instrux_LTR,
-    instrux_LWPINS,
-    instrux_LWPVAL,
-    instrux_LZCNT,
-    instrux_MASKMOVDQU,
-    instrux_MASKMOVQ,
-    instrux_MAXPD,
-    instrux_MAXPS,
-    instrux_MAXSD,
-    instrux_MAXSS,
-    instrux_MFENCE,
-    instrux_MINPD,
-    instrux_MINPS,
-    instrux_MINSD,
-    instrux_MINSS,
-    instrux_MONITOR,
-    instrux_MONITORX,
-    instrux_MONTMUL,
-    instrux_MOV,
-    instrux_MOVAPD,
-    instrux_MOVAPS,
-    instrux_MOVBE,
-    instrux_MOVD,
-    instrux_MOVDDUP,
-    instrux_MOVDQ2Q,
-    instrux_MOVDQA,
-    instrux_MOVDQU,
-    instrux_MOVHLPS,
-    instrux_MOVHPD,
-    instrux_MOVHPS,
-    instrux_MOVLHPS,
-    instrux_MOVLPD,
-    instrux_MOVLPS,
-    instrux_MOVMSKPD,
-    instrux_MOVMSKPS,
-    instrux_MOVNTDQ,
-    instrux_MOVNTDQA,
-    instrux_MOVNTI,
-    instrux_MOVNTPD,
-    instrux_MOVNTPS,
-    instrux_MOVNTQ,
-    instrux_MOVNTSD,
-    instrux_MOVNTSS,
-    instrux_MOVQ,
-    instrux_MOVQ2DQ,
-    instrux_MOVSB,
-    instrux_MOVSD,
-    instrux_MOVSHDUP,
-    instrux_MOVSLDUP,
-    instrux_MOVSQ,
-    instrux_MOVSS,
-    instrux_MOVSW,
-    instrux_MOVSX,
-    instrux_MOVSXD,
-    instrux_MOVUPD,
-    instrux_MOVUPS,
-    instrux_MOVZX,
-    instrux_MPSADBW,
-    instrux_MUL,
-    instrux_MULPD,
-    instrux_MULPS,
-    instrux_MULSD,
-    instrux_MULSS,
-    instrux_MULX,
-    instrux_MWAIT,
-    instrux_MWAITX,
-    instrux_NEG,
-    instrux_NOP,
-    instrux_NOT,
-    instrux_OR,
-    instrux_ORPD,
-    instrux_ORPS,
-    instrux_OUT,
-    instrux_OUTSB,
-    instrux_OUTSD,
-    instrux_OUTSW,
-    instrux_PABSB,
-    instrux_PABSD,
-    instrux_PABSW,
-    instrux_PACKSSDW,
-    instrux_PACKSSWB,
-    instrux_PACKUSDW,
-    instrux_PACKUSWB,
-    instrux_PADDB,
-    instrux_PADDD,
-    instrux_PADDQ,
-    instrux_PADDSB,
-    instrux_PADDSIW,
-    instrux_PADDSW,
-    instrux_PADDUSB,
-    instrux_PADDUSW,
-    instrux_PADDW,
-    instrux_PALIGNR,
-    instrux_PAND,
-    instrux_PANDN,
-    instrux_PAUSE,
-    instrux_PAVEB,
-    instrux_PAVGB,
-    instrux_PAVGUSB,
-    instrux_PAVGW,
-    instrux_PBLENDVB,
-    instrux_PBLENDW,
-    instrux_PCLMULHQHQDQ,
-    instrux_PCLMULHQLQDQ,
-    instrux_PCLMULLQHQDQ,
-    instrux_PCLMULLQLQDQ,
-    instrux_PCLMULQDQ,
-    instrux_PCMPEQB,
-    instrux_PCMPEQD,
-    instrux_PCMPEQQ,
-    instrux_PCMPEQW,
-    instrux_PCMPESTRI,
-    instrux_PCMPESTRM,
-    instrux_PCMPGTB,
-    instrux_PCMPGTD,
-    instrux_PCMPGTQ,
-    instrux_PCMPGTW,
-    instrux_PCMPISTRI,
-    instrux_PCMPISTRM,
-    instrux_PCOMMIT,
-    instrux_PDEP,
-    instrux_PDISTIB,
-    instrux_PEXT,
-    instrux_PEXTRB,
-    instrux_PEXTRD,
-    instrux_PEXTRQ,
-    instrux_PEXTRW,
-    instrux_PF2ID,
-    instrux_PF2IW,
-    instrux_PFACC,
-    instrux_PFADD,
-    instrux_PFCMPEQ,
-    instrux_PFCMPGE,
-    instrux_PFCMPGT,
-    instrux_PFMAX,
-    instrux_PFMIN,
-    instrux_PFMUL,
-    instrux_PFNACC,
-    instrux_PFPNACC,
-    instrux_PFRCP,
-    instrux_PFRCPIT1,
-    instrux_PFRCPIT2,
-    instrux_PFRCPV,
-    instrux_PFRSQIT1,
-    instrux_PFRSQRT,
-    instrux_PFRSQRTV,
-    instrux_PFSUB,
-    instrux_PFSUBR,
-    instrux_PHADDD,
-    instrux_PHADDSW,
-    instrux_PHADDW,
-    instrux_PHMINPOSUW,
-    instrux_PHSUBD,
-    instrux_PHSUBSW,
-    instrux_PHSUBW,
-    instrux_PI2FD,
-    instrux_PI2FW,
-    instrux_PINSRB,
-    instrux_PINSRD,
-    instrux_PINSRQ,
-    instrux_PINSRW,
-    instrux_PMACHRIW,
-    instrux_PMADDUBSW,
-    instrux_PMADDWD,
-    instrux_PMAGW,
-    instrux_PMAXSB,
-    instrux_PMAXSD,
-    instrux_PMAXSW,
-    instrux_PMAXUB,
-    instrux_PMAXUD,
-    instrux_PMAXUW,
-    instrux_PMINSB,
-    instrux_PMINSD,
-    instrux_PMINSW,
-    instrux_PMINUB,
-    instrux_PMINUD,
-    instrux_PMINUW,
-    instrux_PMOVMSKB,
-    instrux_PMOVSXBD,
-    instrux_PMOVSXBQ,
-    instrux_PMOVSXBW,
-    instrux_PMOVSXDQ,
-    instrux_PMOVSXWD,
-    instrux_PMOVSXWQ,
-    instrux_PMOVZXBD,
-    instrux_PMOVZXBQ,
-    instrux_PMOVZXBW,
-    instrux_PMOVZXDQ,
-    instrux_PMOVZXWD,
-    instrux_PMOVZXWQ,
-    instrux_PMULDQ,
-    instrux_PMULHRIW,
-    instrux_PMULHRSW,
-    instrux_PMULHRWA,
-    instrux_PMULHRWC,
-    instrux_PMULHUW,
-    instrux_PMULHW,
-    instrux_PMULLD,
-    instrux_PMULLW,
-    instrux_PMULUDQ,
-    instrux_PMVGEZB,
-    instrux_PMVLZB,
-    instrux_PMVNZB,
-    instrux_PMVZB,
-    instrux_POP,
-    instrux_POPA,
-    instrux_POPAD,
-    instrux_POPAW,
-    instrux_POPCNT,
-    instrux_POPF,
-    instrux_POPFD,
-    instrux_POPFQ,
-    instrux_POPFW,
-    instrux_POR,
-    instrux_PREFETCH,
-    instrux_PREFETCHNTA,
-    instrux_PREFETCHT0,
-    instrux_PREFETCHT1,
-    instrux_PREFETCHT2,
-    instrux_PREFETCHW,
-    instrux_PREFETCHWT1,
-    instrux_PSADBW,
-    instrux_PSHUFB,
-    instrux_PSHUFD,
-    instrux_PSHUFHW,
-    instrux_PSHUFLW,
-    instrux_PSHUFW,
-    instrux_PSIGNB,
-    instrux_PSIGND,
-    instrux_PSIGNW,
-    instrux_PSLLD,
-    instrux_PSLLDQ,
-    instrux_PSLLQ,
-    instrux_PSLLW,
-    instrux_PSRAD,
-    instrux_PSRAW,
-    instrux_PSRLD,
-    instrux_PSRLDQ,
-    instrux_PSRLQ,
-    instrux_PSRLW,
-    instrux_PSUBB,
-    instrux_PSUBD,
-    instrux_PSUBQ,
-    instrux_PSUBSB,
-    instrux_PSUBSIW,
-    instrux_PSUBSW,
-    instrux_PSUBUSB,
-    instrux_PSUBUSW,
-    instrux_PSUBW,
-    instrux_PSWAPD,
-    instrux_PTEST,
-    instrux_PUNPCKHBW,
-    instrux_PUNPCKHDQ,
-    instrux_PUNPCKHQDQ,
-    instrux_PUNPCKHWD,
-    instrux_PUNPCKLBW,
-    instrux_PUNPCKLDQ,
-    instrux_PUNPCKLQDQ,
-    instrux_PUNPCKLWD,
-    instrux_PUSH,
-    instrux_PUSHA,
-    instrux_PUSHAD,
-    instrux_PUSHAW,
-    instrux_PUSHF,
-    instrux_PUSHFD,
-    instrux_PUSHFQ,
-    instrux_PUSHFW,
-    instrux_PXOR,
-    instrux_RCL,
-    instrux_RCPPS,
-    instrux_RCPSS,
-    instrux_RCR,
-    instrux_RDFSBASE,
-    instrux_RDGSBASE,
-    instrux_RDM,
-    instrux_RDMSR,
-    instrux_RDPID,
-    instrux_RDPKRU,
-    instrux_RDPMC,
-    instrux_RDRAND,
-    instrux_RDSEED,
-    instrux_RDSHR,
-    instrux_RDTSC,
-    instrux_RDTSCP,
-    instrux_RESB,
-    instrux_RESD,
-    instrux_RESO,
-    instrux_RESQ,
-    instrux_REST,
-    instrux_RESW,
-    instrux_RESY,
-    instrux_RESZ,
-    instrux_RET,
-    instrux_RETF,
-    instrux_RETN,
-    instrux_ROL,
-    instrux_ROR,
-    instrux_RORX,
-    instrux_ROUNDPD,
-    instrux_ROUNDPS,
-    instrux_ROUNDSD,
-    instrux_ROUNDSS,
-    instrux_RSDC,
-    instrux_RSLDT,
-    instrux_RSM,
-    instrux_RSQRTPS,
-    instrux_RSQRTSS,
-    instrux_RSTS,
-    instrux_SAHF,
-    instrux_SAL,
-    instrux_SALC,
-    instrux_SAR,
-    instrux_SARX,
-    instrux_SBB,
-    instrux_SCASB,
-    instrux_SCASD,
-    instrux_SCASQ,
-    instrux_SCASW,
-    instrux_SFENCE,
-    instrux_SGDT,
-    instrux_SHA1MSG1,
-    instrux_SHA1MSG2,
-    instrux_SHA1NEXTE,
-    instrux_SHA1RNDS4,
-    instrux_SHA256MSG1,
-    instrux_SHA256MSG2,
-    instrux_SHA256RNDS2,
-    instrux_SHL,
-    instrux_SHLD,
-    instrux_SHLX,
-    instrux_SHR,
-    instrux_SHRD,
-    instrux_SHRX,
-    instrux_SHUFPD,
-    instrux_SHUFPS,
-    instrux_SIDT,
-    instrux_SKINIT,
-    instrux_SLDT,
-    instrux_SLWPCB,
-    instrux_SMI,
-    instrux_SMINT,
-    instrux_SMINTOLD,
-    instrux_SMSW,
-    instrux_SQRTPD,
-    instrux_SQRTPS,
-    instrux_SQRTSD,
-    instrux_SQRTSS,
-    instrux_STAC,
-    instrux_STC,
-    instrux_STD,
-    instrux_STGI,
-    instrux_STI,
-    instrux_STMXCSR,
-    instrux_STOSB,
-    instrux_STOSD,
-    instrux_STOSQ,
-    instrux_STOSW,
-    instrux_STR,
-    instrux_SUB,
-    instrux_SUBPD,
-    instrux_SUBPS,
-    instrux_SUBSD,
-    instrux_SUBSS,
-    instrux_SVDC,
-    instrux_SVLDT,
-    instrux_SVTS,
-    instrux_SWAPGS,
-    instrux_SYSCALL,
-    instrux_SYSENTER,
-    instrux_SYSEXIT,
-    instrux_SYSRET,
-    instrux_T1MSKC,
-    instrux_TEST,
-    instrux_TZCNT,
-    instrux_TZMSK,
-    instrux_UCOMISD,
-    instrux_UCOMISS,
-    instrux_UD0,
-    instrux_UD1,
-    instrux_UD2,
-    instrux_UD2A,
-    instrux_UD2B,
-    instrux_UMOV,
-    instrux_UNPCKHPD,
-    instrux_UNPCKHPS,
-    instrux_UNPCKLPD,
-    instrux_UNPCKLPS,
-    instrux_VADDPD,
-    instrux_VADDPS,
-    instrux_VADDSD,
-    instrux_VADDSS,
-    instrux_VADDSUBPD,
-    instrux_VADDSUBPS,
-    instrux_VAESDEC,
-    instrux_VAESDECLAST,
-    instrux_VAESENC,
-    instrux_VAESENCLAST,
-    instrux_VAESIMC,
-    instrux_VAESKEYGENASSIST,
-    instrux_VALIGND,
-    instrux_VALIGNQ,
-    instrux_VANDNPD,
-    instrux_VANDNPS,
-    instrux_VANDPD,
-    instrux_VANDPS,
-    instrux_VBLENDMPD,
-    instrux_VBLENDMPS,
-    instrux_VBLENDPD,
-    instrux_VBLENDPS,
-    instrux_VBLENDVPD,
-    instrux_VBLENDVPS,
-    instrux_VBROADCASTF128,
-    instrux_VBROADCASTF32X2,
-    instrux_VBROADCASTF32X4,
-    instrux_VBROADCASTF32X8,
-    instrux_VBROADCASTF64X2,
-    instrux_VBROADCASTF64X4,
-    instrux_VBROADCASTI128,
-    instrux_VBROADCASTI32X2,
-    instrux_VBROADCASTI32X4,
-    instrux_VBROADCASTI32X8,
-    instrux_VBROADCASTI64X2,
-    instrux_VBROADCASTI64X4,
-    instrux_VBROADCASTSD,
-    instrux_VBROADCASTSS,
-    instrux_VCMPEQPD,
-    instrux_VCMPEQPS,
-    instrux_VCMPEQSD,
-    instrux_VCMPEQSS,
-    instrux_VCMPEQ_OSPD,
-    instrux_VCMPEQ_OSPS,
-    instrux_VCMPEQ_OSSD,
-    instrux_VCMPEQ_OSSS,
-    instrux_VCMPEQ_UQPD,
-    instrux_VCMPEQ_UQPS,
-    instrux_VCMPEQ_UQSD,
-    instrux_VCMPEQ_UQSS,
-    instrux_VCMPEQ_USPD,
-    instrux_VCMPEQ_USPS,
-    instrux_VCMPEQ_USSD,
-    instrux_VCMPEQ_USSS,
-    instrux_VCMPFALSEPD,
-    instrux_VCMPFALSEPS,
-    instrux_VCMPFALSESD,
-    instrux_VCMPFALSESS,
-    instrux_VCMPFALSE_OQPD,
-    instrux_VCMPFALSE_OQPS,
-    instrux_VCMPFALSE_OQSD,
-    instrux_VCMPFALSE_OQSS,
-    instrux_VCMPFALSE_OSPD,
-    instrux_VCMPFALSE_OSPS,
-    instrux_VCMPFALSE_OSSD,
-    instrux_VCMPFALSE_OSSS,
-    instrux_VCMPGEPD,
-    instrux_VCMPGEPS,
-    instrux_VCMPGESD,
-    instrux_VCMPGESS,
-    instrux_VCMPGE_OQPD,
-    instrux_VCMPGE_OQPS,
-    instrux_VCMPGE_OQSD,
-    instrux_VCMPGE_OQSS,
-    instrux_VCMPGE_OSPD,
-    instrux_VCMPGE_OSPS,
-    instrux_VCMPGE_OSSD,
-    instrux_VCMPGE_OSSS,
-    instrux_VCMPGTPD,
-    instrux_VCMPGTPS,
-    instrux_VCMPGTSD,
-    instrux_VCMPGTSS,
-    instrux_VCMPGT_OQPD,
-    instrux_VCMPGT_OQPS,
-    instrux_VCMPGT_OQSD,
-    instrux_VCMPGT_OQSS,
-    instrux_VCMPGT_OSPD,
-    instrux_VCMPGT_OSPS,
-    instrux_VCMPGT_OSSD,
-    instrux_VCMPGT_OSSS,
-    instrux_VCMPLEPD,
-    instrux_VCMPLEPS,
-    instrux_VCMPLESD,
-    instrux_VCMPLESS,
-    instrux_VCMPLE_OQPD,
-    instrux_VCMPLE_OQPS,
-    instrux_VCMPLE_OQSD,
-    instrux_VCMPLE_OQSS,
-    instrux_VCMPLE_OSPD,
-    instrux_VCMPLE_OSPS,
-    instrux_VCMPLE_OSSD,
-    instrux_VCMPLE_OSSS,
-    instrux_VCMPLTPD,
-    instrux_VCMPLTPS,
-    instrux_VCMPLTSD,
-    instrux_VCMPLTSS,
-    instrux_VCMPLT_OQPD,
-    instrux_VCMPLT_OQPS,
-    instrux_VCMPLT_OQSD,
-    instrux_VCMPLT_OQSS,
-    instrux_VCMPLT_OSPD,
-    instrux_VCMPLT_OSPS,
-    instrux_VCMPLT_OSSD,
-    instrux_VCMPLT_OSSS,
-    instrux_VCMPNEQPD,
-    instrux_VCMPNEQPS,
-    instrux_VCMPNEQSD,
-    instrux_VCMPNEQSS,
-    instrux_VCMPNEQ_OQPD,
-    instrux_VCMPNEQ_OQPS,
-    instrux_VCMPNEQ_OQSD,
-    instrux_VCMPNEQ_OQSS,
-    instrux_VCMPNEQ_OSPD,
-    instrux_VCMPNEQ_OSPS,
-    instrux_VCMPNEQ_OSSD,
-    instrux_VCMPNEQ_OSSS,
-    instrux_VCMPNEQ_UQPD,
-    instrux_VCMPNEQ_UQPS,
-    instrux_VCMPNEQ_UQSD,
-    instrux_VCMPNEQ_UQSS,
-    instrux_VCMPNEQ_USPD,
-    instrux_VCMPNEQ_USPS,
-    instrux_VCMPNEQ_USSD,
-    instrux_VCMPNEQ_USSS,
-    instrux_VCMPNGEPD,
-    instrux_VCMPNGEPS,
-    instrux_VCMPNGESD,
-    instrux_VCMPNGESS,
-    instrux_VCMPNGE_UQPD,
-    instrux_VCMPNGE_UQPS,
-    instrux_VCMPNGE_UQSD,
-    instrux_VCMPNGE_UQSS,
-    instrux_VCMPNGE_USPD,
-    instrux_VCMPNGE_USPS,
-    instrux_VCMPNGE_USSD,
-    instrux_VCMPNGE_USSS,
-    instrux_VCMPNGTPD,
-    instrux_VCMPNGTPS,
-    instrux_VCMPNGTSD,
-    instrux_VCMPNGTSS,
-    instrux_VCMPNGT_UQPD,
-    instrux_VCMPNGT_UQPS,
-    instrux_VCMPNGT_UQSD,
-    instrux_VCMPNGT_UQSS,
-    instrux_VCMPNGT_USPD,
-    instrux_VCMPNGT_USPS,
-    instrux_VCMPNGT_USSD,
-    instrux_VCMPNGT_USSS,
-    instrux_VCMPNLEPD,
-    instrux_VCMPNLEPS,
-    instrux_VCMPNLESD,
-    instrux_VCMPNLESS,
-    instrux_VCMPNLE_UQPD,
-    instrux_VCMPNLE_UQPS,
-    instrux_VCMPNLE_UQSD,
-    instrux_VCMPNLE_UQSS,
-    instrux_VCMPNLE_USPD,
-    instrux_VCMPNLE_USPS,
-    instrux_VCMPNLE_USSD,
-    instrux_VCMPNLE_USSS,
-    instrux_VCMPNLTPD,
-    instrux_VCMPNLTPS,
-    instrux_VCMPNLTSD,
-    instrux_VCMPNLTSS,
-    instrux_VCMPNLT_UQPD,
-    instrux_VCMPNLT_UQPS,
-    instrux_VCMPNLT_UQSD,
-    instrux_VCMPNLT_UQSS,
-    instrux_VCMPNLT_USPD,
-    instrux_VCMPNLT_USPS,
-    instrux_VCMPNLT_USSD,
-    instrux_VCMPNLT_USSS,
-    instrux_VCMPORDPD,
-    instrux_VCMPORDPS,
-    instrux_VCMPORDSD,
-    instrux_VCMPORDSS,
-    instrux_VCMPORD_QPD,
-    instrux_VCMPORD_QPS,
-    instrux_VCMPORD_QSD,
-    instrux_VCMPORD_QSS,
-    instrux_VCMPORD_SPD,
-    instrux_VCMPORD_SPS,
-    instrux_VCMPORD_SSD,
-    instrux_VCMPORD_SSS,
-    instrux_VCMPPD,
-    instrux_VCMPPS,
-    instrux_VCMPSD,
-    instrux_VCMPSS,
-    instrux_VCMPTRUEPD,
-    instrux_VCMPTRUEPS,
-    instrux_VCMPTRUESD,
-    instrux_VCMPTRUESS,
-    instrux_VCMPTRUE_UQPD,
-    instrux_VCMPTRUE_UQPS,
-    instrux_VCMPTRUE_UQSD,
-    instrux_VCMPTRUE_UQSS,
-    instrux_VCMPTRUE_USPD,
-    instrux_VCMPTRUE_USPS,
-    instrux_VCMPTRUE_USSD,
-    instrux_VCMPTRUE_USSS,
-    instrux_VCMPUNORDPD,
-    instrux_VCMPUNORDPS,
-    instrux_VCMPUNORDSD,
-    instrux_VCMPUNORDSS,
-    instrux_VCMPUNORD_QPD,
-    instrux_VCMPUNORD_QPS,
-    instrux_VCMPUNORD_QSD,
-    instrux_VCMPUNORD_QSS,
-    instrux_VCMPUNORD_SPD,
-    instrux_VCMPUNORD_SPS,
-    instrux_VCMPUNORD_SSD,
-    instrux_VCMPUNORD_SSS,
-    instrux_VCOMISD,
-    instrux_VCOMISS,
-    instrux_VCOMPRESSPD,
-    instrux_VCOMPRESSPS,
-    instrux_VCVTDQ2PD,
-    instrux_VCVTDQ2PS,
-    instrux_VCVTPD2DQ,
-    instrux_VCVTPD2PS,
-    instrux_VCVTPD2QQ,
-    instrux_VCVTPD2UDQ,
-    instrux_VCVTPD2UQQ,
-    instrux_VCVTPH2PS,
-    instrux_VCVTPS2DQ,
-    instrux_VCVTPS2PD,
-    instrux_VCVTPS2PH,
-    instrux_VCVTPS2QQ,
-    instrux_VCVTPS2UDQ,
-    instrux_VCVTPS2UQQ,
-    instrux_VCVTQQ2PD,
-    instrux_VCVTQQ2PS,
-    instrux_VCVTSD2SI,
-    instrux_VCVTSD2SS,
-    instrux_VCVTSD2USI,
-    instrux_VCVTSI2SD,
-    instrux_VCVTSI2SS,
-    instrux_VCVTSS2SD,
-    instrux_VCVTSS2SI,
-    instrux_VCVTSS2USI,
-    instrux_VCVTTPD2DQ,
-    instrux_VCVTTPD2QQ,
-    instrux_VCVTTPD2UDQ,
-    instrux_VCVTTPD2UQQ,
-    instrux_VCVTTPS2DQ,
-    instrux_VCVTTPS2QQ,
-    instrux_VCVTTPS2UDQ,
-    instrux_VCVTTPS2UQQ,
-    instrux_VCVTTSD2SI,
-    instrux_VCVTTSD2USI,
-    instrux_VCVTTSS2SI,
-    instrux_VCVTTSS2USI,
-    instrux_VCVTUDQ2PD,
-    instrux_VCVTUDQ2PS,
-    instrux_VCVTUQQ2PD,
-    instrux_VCVTUQQ2PS,
-    instrux_VCVTUSI2SD,
-    instrux_VCVTUSI2SS,
-    instrux_VDBPSADBW,
-    instrux_VDIVPD,
-    instrux_VDIVPS,
-    instrux_VDIVSD,
-    instrux_VDIVSS,
-    instrux_VDPPD,
-    instrux_VDPPS,
-    instrux_VERR,
-    instrux_VERW,
-    instrux_VEXP2PD,
-    instrux_VEXP2PS,
-    instrux_VEXPANDPD,
-    instrux_VEXPANDPS,
-    instrux_VEXTRACTF128,
-    instrux_VEXTRACTF32X4,
-    instrux_VEXTRACTF32X8,
-    instrux_VEXTRACTF64X2,
-    instrux_VEXTRACTF64X4,
-    instrux_VEXTRACTI128,
-    instrux_VEXTRACTI32X4,
-    instrux_VEXTRACTI32X8,
-    instrux_VEXTRACTI64X2,
-    instrux_VEXTRACTI64X4,
-    instrux_VEXTRACTPS,
-    instrux_VFIXUPIMMPD,
-    instrux_VFIXUPIMMPS,
-    instrux_VFIXUPIMMSD,
-    instrux_VFIXUPIMMSS,
-    instrux_VFMADD123PD,
-    instrux_VFMADD123PS,
-    instrux_VFMADD123SD,
-    instrux_VFMADD123SS,
-    instrux_VFMADD132PD,
-    instrux_VFMADD132PS,
-    instrux_VFMADD132SD,
-    instrux_VFMADD132SS,
-    instrux_VFMADD213PD,
-    instrux_VFMADD213PS,
-    instrux_VFMADD213SD,
-    instrux_VFMADD213SS,
-    instrux_VFMADD231PD,
-    instrux_VFMADD231PS,
-    instrux_VFMADD231SD,
-    instrux_VFMADD231SS,
-    instrux_VFMADD312PD,
-    instrux_VFMADD312PS,
-    instrux_VFMADD312SD,
-    instrux_VFMADD312SS,
-    instrux_VFMADD321PD,
-    instrux_VFMADD321PS,
-    instrux_VFMADD321SD,
-    instrux_VFMADD321SS,
-    instrux_VFMADDPD,
-    instrux_VFMADDPS,
-    instrux_VFMADDSD,
-    instrux_VFMADDSS,
-    instrux_VFMADDSUB123PD,
-    instrux_VFMADDSUB123PS,
-    instrux_VFMADDSUB132PD,
-    instrux_VFMADDSUB132PS,
-    instrux_VFMADDSUB213PD,
-    instrux_VFMADDSUB213PS,
-    instrux_VFMADDSUB231PD,
-    instrux_VFMADDSUB231PS,
-    instrux_VFMADDSUB312PD,
-    instrux_VFMADDSUB312PS,
-    instrux_VFMADDSUB321PD,
-    instrux_VFMADDSUB321PS,
-    instrux_VFMADDSUBPD,
-    instrux_VFMADDSUBPS,
-    instrux_VFMSUB123PD,
-    instrux_VFMSUB123PS,
-    instrux_VFMSUB123SD,
-    instrux_VFMSUB123SS,
-    instrux_VFMSUB132PD,
-    instrux_VFMSUB132PS,
-    instrux_VFMSUB132SD,
-    instrux_VFMSUB132SS,
-    instrux_VFMSUB213PD,
-    instrux_VFMSUB213PS,
-    instrux_VFMSUB213SD,
-    instrux_VFMSUB213SS,
-    instrux_VFMSUB231PD,
-    instrux_VFMSUB231PS,
-    instrux_VFMSUB231SD,
-    instrux_VFMSUB231SS,
-    instrux_VFMSUB312PD,
-    instrux_VFMSUB312PS,
-    instrux_VFMSUB312SD,
-    instrux_VFMSUB312SS,
-    instrux_VFMSUB321PD,
-    instrux_VFMSUB321PS,
-    instrux_VFMSUB321SD,
-    instrux_VFMSUB321SS,
-    instrux_VFMSUBADD123PD,
-    instrux_VFMSUBADD123PS,
-    instrux_VFMSUBADD132PD,
-    instrux_VFMSUBADD132PS,
-    instrux_VFMSUBADD213PD,
-    instrux_VFMSUBADD213PS,
-    instrux_VFMSUBADD231PD,
-    instrux_VFMSUBADD231PS,
-    instrux_VFMSUBADD312PD,
-    instrux_VFMSUBADD312PS,
-    instrux_VFMSUBADD321PD,
-    instrux_VFMSUBADD321PS,
-    instrux_VFMSUBADDPD,
-    instrux_VFMSUBADDPS,
-    instrux_VFMSUBPD,
-    instrux_VFMSUBPS,
-    instrux_VFMSUBSD,
-    instrux_VFMSUBSS,
-    instrux_VFNMADD123PD,
-    instrux_VFNMADD123PS,
-    instrux_VFNMADD123SD,
-    instrux_VFNMADD123SS,
-    instrux_VFNMADD132PD,
-    instrux_VFNMADD132PS,
-    instrux_VFNMADD132SD,
-    instrux_VFNMADD132SS,
-    instrux_VFNMADD213PD,
-    instrux_VFNMADD213PS,
-    instrux_VFNMADD213SD,
-    instrux_VFNMADD213SS,
-    instrux_VFNMADD231PD,
-    instrux_VFNMADD231PS,
-    instrux_VFNMADD231SD,
-    instrux_VFNMADD231SS,
-    instrux_VFNMADD312PD,
-    instrux_VFNMADD312PS,
-    instrux_VFNMADD312SD,
-    instrux_VFNMADD312SS,
-    instrux_VFNMADD321PD,
-    instrux_VFNMADD321PS,
-    instrux_VFNMADD321SD,
-    instrux_VFNMADD321SS,
-    instrux_VFNMADDPD,
-    instrux_VFNMADDPS,
-    instrux_VFNMADDSD,
-    instrux_VFNMADDSS,
-    instrux_VFNMSUB123PD,
-    instrux_VFNMSUB123PS,
-    instrux_VFNMSUB123SD,
-    instrux_VFNMSUB123SS,
-    instrux_VFNMSUB132PD,
-    instrux_VFNMSUB132PS,
-    instrux_VFNMSUB132SD,
-    instrux_VFNMSUB132SS,
-    instrux_VFNMSUB213PD,
-    instrux_VFNMSUB213PS,
-    instrux_VFNMSUB213SD,
-    instrux_VFNMSUB213SS,
-    instrux_VFNMSUB231PD,
-    instrux_VFNMSUB231PS,
-    instrux_VFNMSUB231SD,
-    instrux_VFNMSUB231SS,
-    instrux_VFNMSUB312PD,
-    instrux_VFNMSUB312PS,
-    instrux_VFNMSUB312SD,
-    instrux_VFNMSUB312SS,
-    instrux_VFNMSUB321PD,
-    instrux_VFNMSUB321PS,
-    instrux_VFNMSUB321SD,
-    instrux_VFNMSUB321SS,
-    instrux_VFNMSUBPD,
-    instrux_VFNMSUBPS,
-    instrux_VFNMSUBSD,
-    instrux_VFNMSUBSS,
-    instrux_VFPCLASSPD,
-    instrux_VFPCLASSPS,
-    instrux_VFPCLASSSD,
-    instrux_VFPCLASSSS,
-    instrux_VFRCZPD,
-    instrux_VFRCZPS,
-    instrux_VFRCZSD,
-    instrux_VFRCZSS,
-    instrux_VGATHERDPD,
-    instrux_VGATHERDPS,
-    instrux_VGATHERPF0DPD,
-    instrux_VGATHERPF0DPS,
-    instrux_VGATHERPF0QPD,
-    instrux_VGATHERPF0QPS,
-    instrux_VGATHERPF1DPD,
-    instrux_VGATHERPF1DPS,
-    instrux_VGATHERPF1QPD,
-    instrux_VGATHERPF1QPS,
-    instrux_VGATHERQPD,
-    instrux_VGATHERQPS,
-    instrux_VGETEXPPD,
-    instrux_VGETEXPPS,
-    instrux_VGETEXPSD,
-    instrux_VGETEXPSS,
-    instrux_VGETMANTPD,
-    instrux_VGETMANTPS,
-    instrux_VGETMANTSD,
-    instrux_VGETMANTSS,
-    instrux_VHADDPD,
-    instrux_VHADDPS,
-    instrux_VHSUBPD,
-    instrux_VHSUBPS,
-    instrux_VINSERTF128,
-    instrux_VINSERTF32X4,
-    instrux_VINSERTF32X8,
-    instrux_VINSERTF64X2,
-    instrux_VINSERTF64X4,
-    instrux_VINSERTI128,
-    instrux_VINSERTI32X4,
-    instrux_VINSERTI32X8,
-    instrux_VINSERTI64X2,
-    instrux_VINSERTI64X4,
-    instrux_VINSERTPS,
-    instrux_VLDDQU,
-    instrux_VLDMXCSR,
-    instrux_VLDQQU,
-    instrux_VMASKMOVDQU,
-    instrux_VMASKMOVPD,
-    instrux_VMASKMOVPS,
-    instrux_VMAXPD,
-    instrux_VMAXPS,
-    instrux_VMAXSD,
-    instrux_VMAXSS,
-    instrux_VMCALL,
-    instrux_VMCLEAR,
-    instrux_VMFUNC,
-    instrux_VMINPD,
-    instrux_VMINPS,
-    instrux_VMINSD,
-    instrux_VMINSS,
-    instrux_VMLAUNCH,
-    instrux_VMLOAD,
-    instrux_VMMCALL,
-    instrux_VMOVAPD,
-    instrux_VMOVAPS,
-    instrux_VMOVD,
-    instrux_VMOVDDUP,
-    instrux_VMOVDQA,
-    instrux_VMOVDQA32,
-    instrux_VMOVDQA64,
-    instrux_VMOVDQU,
-    instrux_VMOVDQU16,
-    instrux_VMOVDQU32,
-    instrux_VMOVDQU64,
-    instrux_VMOVDQU8,
-    instrux_VMOVHLPS,
-    instrux_VMOVHPD,
-    instrux_VMOVHPS,
-    instrux_VMOVLHPS,
-    instrux_VMOVLPD,
-    instrux_VMOVLPS,
-    instrux_VMOVMSKPD,
-    instrux_VMOVMSKPS,
-    instrux_VMOVNTDQ,
-    instrux_VMOVNTDQA,
-    instrux_VMOVNTPD,
-    instrux_VMOVNTPS,
-    instrux_VMOVNTQQ,
-    instrux_VMOVQ,
-    instrux_VMOVQQA,
-    instrux_VMOVQQU,
-    instrux_VMOVSD,
-    instrux_VMOVSHDUP,
-    instrux_VMOVSLDUP,
-    instrux_VMOVSS,
-    instrux_VMOVUPD,
-    instrux_VMOVUPS,
-    instrux_VMPSADBW,
-    instrux_VMPTRLD,
-    instrux_VMPTRST,
-    instrux_VMREAD,
-    instrux_VMRESUME,
-    instrux_VMRUN,
-    instrux_VMSAVE,
-    instrux_VMULPD,
-    instrux_VMULPS,
-    instrux_VMULSD,
-    instrux_VMULSS,
-    instrux_VMWRITE,
-    instrux_VMXOFF,
-    instrux_VMXON,
-    instrux_VORPD,
-    instrux_VORPS,
-    instrux_VPABSB,
-    instrux_VPABSD,
-    instrux_VPABSQ,
-    instrux_VPABSW,
-    instrux_VPACKSSDW,
-    instrux_VPACKSSWB,
-    instrux_VPACKUSDW,
-    instrux_VPACKUSWB,
-    instrux_VPADDB,
-    instrux_VPADDD,
-    instrux_VPADDQ,
-    instrux_VPADDSB,
-    instrux_VPADDSW,
-    instrux_VPADDUSB,
-    instrux_VPADDUSW,
-    instrux_VPADDW,
-    instrux_VPALIGNR,
-    instrux_VPAND,
-    instrux_VPANDD,
-    instrux_VPANDN,
-    instrux_VPANDND,
-    instrux_VPANDNQ,
-    instrux_VPANDQ,
-    instrux_VPAVGB,
-    instrux_VPAVGW,
-    instrux_VPBLENDD,
-    instrux_VPBLENDMB,
-    instrux_VPBLENDMD,
-    instrux_VPBLENDMQ,
-    instrux_VPBLENDMW,
-    instrux_VPBLENDVB,
-    instrux_VPBLENDW,
-    instrux_VPBROADCASTB,
-    instrux_VPBROADCASTD,
-    instrux_VPBROADCASTMB2Q,
-    instrux_VPBROADCASTMW2D,
-    instrux_VPBROADCASTQ,
-    instrux_VPBROADCASTW,
-    instrux_VPCLMULHQHQDQ,
-    instrux_VPCLMULHQLQDQ,
-    instrux_VPCLMULLQHQDQ,
-    instrux_VPCLMULLQLQDQ,
-    instrux_VPCLMULQDQ,
-    instrux_VPCMOV,
-    instrux_VPCMPB,
-    instrux_VPCMPD,
-    instrux_VPCMPEQB,
-    instrux_VPCMPEQD,
-    instrux_VPCMPEQQ,
-    instrux_VPCMPEQW,
-    instrux_VPCMPESTRI,
-    instrux_VPCMPESTRM,
-    instrux_VPCMPGTB,
-    instrux_VPCMPGTD,
-    instrux_VPCMPGTQ,
-    instrux_VPCMPGTW,
-    instrux_VPCMPISTRI,
-    instrux_VPCMPISTRM,
-    instrux_VPCMPQ,
-    instrux_VPCMPUB,
-    instrux_VPCMPUD,
-    instrux_VPCMPUQ,
-    instrux_VPCMPUW,
-    instrux_VPCMPW,
-    instrux_VPCOMB,
-    instrux_VPCOMD,
-    instrux_VPCOMPRESSD,
-    instrux_VPCOMPRESSQ,
-    instrux_VPCOMQ,
-    instrux_VPCOMUB,
-    instrux_VPCOMUD,
-    instrux_VPCOMUQ,
-    instrux_VPCOMUW,
-    instrux_VPCOMW,
-    instrux_VPCONFLICTD,
-    instrux_VPCONFLICTQ,
-    instrux_VPERM2F128,
-    instrux_VPERM2I128,
-    instrux_VPERMB,
-    instrux_VPERMD,
-    instrux_VPERMI2B,
-    instrux_VPERMI2D,
-    instrux_VPERMI2PD,
-    instrux_VPERMI2PS,
-    instrux_VPERMI2Q,
-    instrux_VPERMI2W,
-    instrux_VPERMILPD,
-    instrux_VPERMILPS,
-    instrux_VPERMPD,
-    instrux_VPERMPS,
-    instrux_VPERMQ,
-    instrux_VPERMT2B,
-    instrux_VPERMT2D,
-    instrux_VPERMT2PD,
-    instrux_VPERMT2PS,
-    instrux_VPERMT2Q,
-    instrux_VPERMT2W,
-    instrux_VPERMW,
-    instrux_VPEXPANDD,
-    instrux_VPEXPANDQ,
-    instrux_VPEXTRB,
-    instrux_VPEXTRD,
-    instrux_VPEXTRQ,
-    instrux_VPEXTRW,
-    instrux_VPGATHERDD,
-    instrux_VPGATHERDQ,
-    instrux_VPGATHERQD,
-    instrux_VPGATHERQQ,
-    instrux_VPHADDBD,
-    instrux_VPHADDBQ,
-    instrux_VPHADDBW,
-    instrux_VPHADDD,
-    instrux_VPHADDDQ,
-    instrux_VPHADDSW,
-    instrux_VPHADDUBD,
-    instrux_VPHADDUBQ,
-    instrux_VPHADDUBW,
-    instrux_VPHADDUDQ,
-    instrux_VPHADDUWD,
-    instrux_VPHADDUWQ,
-    instrux_VPHADDW,
-    instrux_VPHADDWD,
-    instrux_VPHADDWQ,
-    instrux_VPHMINPOSUW,
-    instrux_VPHSUBBW,
-    instrux_VPHSUBD,
-    instrux_VPHSUBDQ,
-    instrux_VPHSUBSW,
-    instrux_VPHSUBW,
-    instrux_VPHSUBWD,
-    instrux_VPINSRB,
-    instrux_VPINSRD,
-    instrux_VPINSRQ,
-    instrux_VPINSRW,
-    instrux_VPLZCNTD,
-    instrux_VPLZCNTQ,
-    instrux_VPMACSDD,
-    instrux_VPMACSDQH,
-    instrux_VPMACSDQL,
-    instrux_VPMACSSDD,
-    instrux_VPMACSSDQH,
-    instrux_VPMACSSDQL,
-    instrux_VPMACSSWD,
-    instrux_VPMACSSWW,
-    instrux_VPMACSWD,
-    instrux_VPMACSWW,
-    instrux_VPMADCSSWD,
-    instrux_VPMADCSWD,
-    instrux_VPMADD52HUQ,
-    instrux_VPMADD52LUQ,
-    instrux_VPMADDUBSW,
-    instrux_VPMADDWD,
-    instrux_VPMASKMOVD,
-    instrux_VPMASKMOVQ,
-    instrux_VPMAXSB,
-    instrux_VPMAXSD,
-    instrux_VPMAXSQ,
-    instrux_VPMAXSW,
-    instrux_VPMAXUB,
-    instrux_VPMAXUD,
-    instrux_VPMAXUQ,
-    instrux_VPMAXUW,
-    instrux_VPMINSB,
-    instrux_VPMINSD,
-    instrux_VPMINSQ,
-    instrux_VPMINSW,
-    instrux_VPMINUB,
-    instrux_VPMINUD,
-    instrux_VPMINUQ,
-    instrux_VPMINUW,
-    instrux_VPMOVB2M,
-    instrux_VPMOVD2M,
-    instrux_VPMOVDB,
-    instrux_VPMOVDW,
-    instrux_VPMOVM2B,
-    instrux_VPMOVM2D,
-    instrux_VPMOVM2Q,
-    instrux_VPMOVM2W,
-    instrux_VPMOVMSKB,
-    instrux_VPMOVQ2M,
-    instrux_VPMOVQB,
-    instrux_VPMOVQD,
-    instrux_VPMOVQW,
-    instrux_VPMOVSDB,
-    instrux_VPMOVSDW,
-    instrux_VPMOVSQB,
-    instrux_VPMOVSQD,
-    instrux_VPMOVSQW,
-    instrux_VPMOVSWB,
-    instrux_VPMOVSXBD,
-    instrux_VPMOVSXBQ,
-    instrux_VPMOVSXBW,
-    instrux_VPMOVSXDQ,
-    instrux_VPMOVSXWD,
-    instrux_VPMOVSXWQ,
-    instrux_VPMOVUSDB,
-    instrux_VPMOVUSDW,
-    instrux_VPMOVUSQB,
-    instrux_VPMOVUSQD,
-    instrux_VPMOVUSQW,
-    instrux_VPMOVUSWB,
-    instrux_VPMOVW2M,
-    instrux_VPMOVWB,
-    instrux_VPMOVZXBD,
-    instrux_VPMOVZXBQ,
-    instrux_VPMOVZXBW,
-    instrux_VPMOVZXDQ,
-    instrux_VPMOVZXWD,
-    instrux_VPMOVZXWQ,
-    instrux_VPMULDQ,
-    instrux_VPMULHRSW,
-    instrux_VPMULHUW,
-    instrux_VPMULHW,
-    instrux_VPMULLD,
-    instrux_VPMULLQ,
-    instrux_VPMULLW,
-    instrux_VPMULTISHIFTQB,
-    instrux_VPMULUDQ,
-    instrux_VPOR,
-    instrux_VPORD,
-    instrux_VPORQ,
-    instrux_VPPERM,
-    instrux_VPROLD,
-    instrux_VPROLQ,
-    instrux_VPROLVD,
-    instrux_VPROLVQ,
-    instrux_VPRORD,
-    instrux_VPRORQ,
-    instrux_VPRORVD,
-    instrux_VPRORVQ,
-    instrux_VPROTB,
-    instrux_VPROTD,
-    instrux_VPROTQ,
-    instrux_VPROTW,
-    instrux_VPSADBW,
-    instrux_VPSCATTERDD,
-    instrux_VPSCATTERDQ,
-    instrux_VPSCATTERQD,
-    instrux_VPSCATTERQQ,
-    instrux_VPSHAB,
-    instrux_VPSHAD,
-    instrux_VPSHAQ,
-    instrux_VPSHAW,
-    instrux_VPSHLB,
-    instrux_VPSHLD,
-    instrux_VPSHLQ,
-    instrux_VPSHLW,
-    instrux_VPSHUFB,
-    instrux_VPSHUFD,
-    instrux_VPSHUFHW,
-    instrux_VPSHUFLW,
-    instrux_VPSIGNB,
-    instrux_VPSIGND,
-    instrux_VPSIGNW,
-    instrux_VPSLLD,
-    instrux_VPSLLDQ,
-    instrux_VPSLLQ,
-    instrux_VPSLLVD,
-    instrux_VPSLLVQ,
-    instrux_VPSLLVW,
-    instrux_VPSLLW,
-    instrux_VPSRAD,
-    instrux_VPSRAQ,
-    instrux_VPSRAVD,
-    instrux_VPSRAVQ,
-    instrux_VPSRAVW,
-    instrux_VPSRAW,
-    instrux_VPSRLD,
-    instrux_VPSRLDQ,
-    instrux_VPSRLQ,
-    instrux_VPSRLVD,
-    instrux_VPSRLVQ,
-    instrux_VPSRLVW,
-    instrux_VPSRLW,
-    instrux_VPSUBB,
-    instrux_VPSUBD,
-    instrux_VPSUBQ,
-    instrux_VPSUBSB,
-    instrux_VPSUBSW,
-    instrux_VPSUBUSB,
-    instrux_VPSUBUSW,
-    instrux_VPSUBW,
-    instrux_VPTERNLOGD,
-    instrux_VPTERNLOGQ,
-    instrux_VPTEST,
-    instrux_VPTESTMB,
-    instrux_VPTESTMD,
-    instrux_VPTESTMQ,
-    instrux_VPTESTMW,
-    instrux_VPTESTNMB,
-    instrux_VPTESTNMD,
-    instrux_VPTESTNMQ,
-    instrux_VPTESTNMW,
-    instrux_VPUNPCKHBW,
-    instrux_VPUNPCKHDQ,
-    instrux_VPUNPCKHQDQ,
-    instrux_VPUNPCKHWD,
-    instrux_VPUNPCKLBW,
-    instrux_VPUNPCKLDQ,
-    instrux_VPUNPCKLQDQ,
-    instrux_VPUNPCKLWD,
-    instrux_VPXOR,
-    instrux_VPXORD,
-    instrux_VPXORQ,
-    instrux_VRANGEPD,
-    instrux_VRANGEPS,
-    instrux_VRANGESD,
-    instrux_VRANGESS,
-    instrux_VRCP14PD,
-    instrux_VRCP14PS,
-    instrux_VRCP14SD,
-    instrux_VRCP14SS,
-    instrux_VRCP28PD,
-    instrux_VRCP28PS,
-    instrux_VRCP28SD,
-    instrux_VRCP28SS,
-    instrux_VRCPPS,
-    instrux_VRCPSS,
-    instrux_VREDUCEPD,
-    instrux_VREDUCEPS,
-    instrux_VREDUCESD,
-    instrux_VREDUCESS,
-    instrux_VRNDSCALEPD,
-    instrux_VRNDSCALEPS,
-    instrux_VRNDSCALESD,
-    instrux_VRNDSCALESS,
-    instrux_VROUNDPD,
-    instrux_VROUNDPS,
-    instrux_VROUNDSD,
-    instrux_VROUNDSS,
-    instrux_VRSQRT14PD,
-    instrux_VRSQRT14PS,
-    instrux_VRSQRT14SD,
-    instrux_VRSQRT14SS,
-    instrux_VRSQRT28PD,
-    instrux_VRSQRT28PS,
-    instrux_VRSQRT28SD,
-    instrux_VRSQRT28SS,
-    instrux_VRSQRTPS,
-    instrux_VRSQRTSS,
-    instrux_VSCALEFPD,
-    instrux_VSCALEFPS,
-    instrux_VSCALEFSD,
-    instrux_VSCALEFSS,
-    instrux_VSCATTERDPD,
-    instrux_VSCATTERDPS,
-    instrux_VSCATTERPF0DPD,
-    instrux_VSCATTERPF0DPS,
-    instrux_VSCATTERPF0QPD,
-    instrux_VSCATTERPF0QPS,
-    instrux_VSCATTERPF1DPD,
-    instrux_VSCATTERPF1DPS,
-    instrux_VSCATTERPF1QPD,
-    instrux_VSCATTERPF1QPS,
-    instrux_VSCATTERQPD,
-    instrux_VSCATTERQPS,
-    instrux_VSHUFF32X4,
-    instrux_VSHUFF64X2,
-    instrux_VSHUFI32X4,
-    instrux_VSHUFI64X2,
-    instrux_VSHUFPD,
-    instrux_VSHUFPS,
-    instrux_VSQRTPD,
-    instrux_VSQRTPS,
-    instrux_VSQRTSD,
-    instrux_VSQRTSS,
-    instrux_VSTMXCSR,
-    instrux_VSUBPD,
-    instrux_VSUBPS,
-    instrux_VSUBSD,
-    instrux_VSUBSS,
-    instrux_VTESTPD,
-    instrux_VTESTPS,
-    instrux_VUCOMISD,
-    instrux_VUCOMISS,
-    instrux_VUNPCKHPD,
-    instrux_VUNPCKHPS,
-    instrux_VUNPCKLPD,
-    instrux_VUNPCKLPS,
-    instrux_VXORPD,
-    instrux_VXORPS,
-    instrux_VZEROALL,
-    instrux_VZEROUPPER,
-    instrux_WBINVD,
-    instrux_WRFSBASE,
-    instrux_WRGSBASE,
-    instrux_WRMSR,
-    instrux_WRPKRU,
-    instrux_WRSHR,
-    instrux_XABORT,
-    instrux_XADD,
-    instrux_XBEGIN,
-    instrux_XBTS,
-    instrux_XCHG,
-    instrux_XCRYPTCBC,
-    instrux_XCRYPTCFB,
-    instrux_XCRYPTCTR,
-    instrux_XCRYPTECB,
-    instrux_XCRYPTOFB,
-    instrux_XEND,
-    instrux_XGETBV,
-    instrux_XLAT,
-    instrux_XLATB,
-    instrux_XOR,
-    instrux_XORPD,
-    instrux_XORPS,
-    instrux_XRSTOR,
-    instrux_XRSTOR64,
-    instrux_XRSTORS,
-    instrux_XRSTORS64,
-    instrux_XSAVE,
-    instrux_XSAVE64,
-    instrux_XSAVEC,
-    instrux_XSAVEC64,
-    instrux_XSAVEOPT,
-    instrux_XSAVEOPT64,
-    instrux_XSAVES,
-    instrux_XSAVES64,
-    instrux_XSETBV,
-    instrux_XSHA1,
-    instrux_XSHA256,
-    instrux_XSTORE,
-    instrux_XTEST,
-    instrux_CMOVcc,
-    instrux_Jcc,
-    instrux_SETcc,
-};
--- a/nasmbuild/nasm-2.13rc9/x86/insnsb.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5459 +0,0 @@
-/* This file auto-generated from insns.dat by insns.pl - don't edit it */
-
-#include "nasm.h"
-#include "insns.h"
-
-const uint8_t nasm_bytecodes[39461] = {
-    /*     0 */ 0324,0361,03,017,072,027,0101,026,0,
-    /*     9 */ 0324,0361,03,017,072,024,0101,026,0,
-    /*    18 */ 0317,0361,03,017,072,026,0101,026,0,
-    /*    27 */ 0324,0361,03,017,072,026,0101,026,0,
-    /*    36 */ 0324,0361,03,017,072,025,0101,026,0,
-    /*    45 */ 0325,0361,03,017,072,040,0110,026,0,
-    /*    54 */ 0317,0361,03,017,072,042,0110,026,0,
-    /*    63 */ 0324,0361,03,017,072,042,0110,026,0,
-    /*    72 */ 0261,01,041,01,0302,0120,01,020,0,
-    /*    81 */ 0260,01,041,01,0302,0110,01,020,0,
-    /*    90 */ 0261,01,045,01,0302,0120,01,020,0,
-    /*    99 */ 0260,01,045,01,0302,0110,01,020,0,
-    /*   108 */ 0261,01,041,01,0302,0120,01,0,0,
-    /*   117 */ 0260,01,041,01,0302,0110,01,0,0,
-    /*   126 */ 0261,01,045,01,0302,0120,01,0,0,
-    /*   135 */ 0260,01,045,01,0302,0110,01,0,0,
-    /*   144 */ 0261,01,041,01,0302,0120,01,01,0,
-    /*   153 */ 0260,01,041,01,0302,0110,01,01,0,
-    /*   162 */ 0261,01,045,01,0302,0120,01,01,0,
-    /*   171 */ 0260,01,045,01,0302,0110,01,01,0,
-    /*   180 */ 0261,01,041,01,0302,0120,01,02,0,
-    /*   189 */ 0260,01,041,01,0302,0110,01,02,0,
-    /*   198 */ 0261,01,045,01,0302,0120,01,02,0,
-    /*   207 */ 0260,01,045,01,0302,0110,01,02,0,
-    /*   216 */ 0261,01,041,01,0302,0120,01,03,0,
-    /*   225 */ 0260,01,041,01,0302,0110,01,03,0,
-    /*   234 */ 0261,01,045,01,0302,0120,01,03,0,
-    /*   243 */ 0260,01,045,01,0302,0110,01,03,0,
-    /*   252 */ 0261,01,041,01,0302,0120,01,04,0,
-    /*   261 */ 0260,01,041,01,0302,0110,01,04,0,
-    /*   270 */ 0261,01,045,01,0302,0120,01,04,0,
-    /*   279 */ 0260,01,045,01,0302,0110,01,04,0,
-    /*   288 */ 0261,01,041,01,0302,0120,01,05,0,
-    /*   297 */ 0260,01,041,01,0302,0110,01,05,0,
-    /*   306 */ 0261,01,045,01,0302,0120,01,05,0,
-    /*   315 */ 0260,01,045,01,0302,0110,01,05,0,
-    /*   324 */ 0261,01,041,01,0302,0120,01,06,0,
-    /*   333 */ 0260,01,041,01,0302,0110,01,06,0,
-    /*   342 */ 0261,01,045,01,0302,0120,01,06,0,
-    /*   351 */ 0260,01,045,01,0302,0110,01,06,0,
-    /*   360 */ 0261,01,041,01,0302,0120,01,07,0,
-    /*   369 */ 0260,01,041,01,0302,0110,01,07,0,
-    /*   378 */ 0261,01,045,01,0302,0120,01,07,0,
-    /*   387 */ 0260,01,045,01,0302,0110,01,07,0,
-    /*   396 */ 0261,01,041,01,0302,0120,01,010,0,
-    /*   405 */ 0260,01,041,01,0302,0110,01,010,0,
-    /*   414 */ 0261,01,045,01,0302,0120,01,010,0,
-    /*   423 */ 0260,01,045,01,0302,0110,01,010,0,
-    /*   432 */ 0261,01,041,01,0302,0120,01,011,0,
-    /*   441 */ 0260,01,041,01,0302,0110,01,011,0,
-    /*   450 */ 0261,01,045,01,0302,0120,01,011,0,
-    /*   459 */ 0260,01,045,01,0302,0110,01,011,0,
-    /*   468 */ 0261,01,041,01,0302,0120,01,012,0,
-    /*   477 */ 0260,01,041,01,0302,0110,01,012,0,
-    /*   486 */ 0261,01,045,01,0302,0120,01,012,0,
-    /*   495 */ 0260,01,045,01,0302,0110,01,012,0,
-    /*   504 */ 0261,01,041,01,0302,0120,01,013,0,
-    /*   513 */ 0260,01,041,01,0302,0110,01,013,0,
-    /*   522 */ 0261,01,045,01,0302,0120,01,013,0,
-    /*   531 */ 0260,01,045,01,0302,0110,01,013,0,
-    /*   540 */ 0261,01,041,01,0302,0120,01,014,0,
-    /*   549 */ 0260,01,041,01,0302,0110,01,014,0,
-    /*   558 */ 0261,01,045,01,0302,0120,01,014,0,
-    /*   567 */ 0260,01,045,01,0302,0110,01,014,0,
-    /*   576 */ 0261,01,041,01,0302,0120,01,015,0,
-    /*   585 */ 0260,01,041,01,0302,0110,01,015,0,
-    /*   594 */ 0261,01,045,01,0302,0120,01,015,0,
-    /*   603 */ 0260,01,045,01,0302,0110,01,015,0,
-    /*   612 */ 0261,01,041,01,0302,0120,01,016,0,
-    /*   621 */ 0260,01,041,01,0302,0110,01,016,0,
-    /*   630 */ 0261,01,045,01,0302,0120,01,016,0,
-    /*   639 */ 0260,01,045,01,0302,0110,01,016,0,
-    /*   648 */ 0261,01,041,01,0302,0120,01,017,0,
-    /*   657 */ 0260,01,041,01,0302,0110,01,017,0,
-    /*   666 */ 0261,01,045,01,0302,0120,01,017,0,
-    /*   675 */ 0260,01,045,01,0302,0110,01,017,0,
-    /*   684 */ 0261,01,041,01,0302,0120,01,021,0,
-    /*   693 */ 0260,01,041,01,0302,0110,01,021,0,
-    /*   702 */ 0261,01,045,01,0302,0120,01,021,0,
-    /*   711 */ 0260,01,045,01,0302,0110,01,021,0,
-    /*   720 */ 0261,01,041,01,0302,0120,01,022,0,
-    /*   729 */ 0260,01,041,01,0302,0110,01,022,0,
-    /*   738 */ 0261,01,045,01,0302,0120,01,022,0,
-    /*   747 */ 0260,01,045,01,0302,0110,01,022,0,
-    /*   756 */ 0261,01,041,01,0302,0120,01,023,0,
-    /*   765 */ 0260,01,041,01,0302,0110,01,023,0,
-    /*   774 */ 0261,01,045,01,0302,0120,01,023,0,
-    /*   783 */ 0260,01,045,01,0302,0110,01,023,0,
-    /*   792 */ 0261,01,041,01,0302,0120,01,024,0,
-    /*   801 */ 0260,01,041,01,0302,0110,01,024,0,
-    /*   810 */ 0261,01,045,01,0302,0120,01,024,0,
-    /*   819 */ 0260,01,045,01,0302,0110,01,024,0,
-    /*   828 */ 0261,01,041,01,0302,0120,01,025,0,
-    /*   837 */ 0260,01,041,01,0302,0110,01,025,0,
-    /*   846 */ 0261,01,045,01,0302,0120,01,025,0,
-    /*   855 */ 0260,01,045,01,0302,0110,01,025,0,
-    /*   864 */ 0261,01,041,01,0302,0120,01,026,0,
-    /*   873 */ 0260,01,041,01,0302,0110,01,026,0,
-    /*   882 */ 0261,01,045,01,0302,0120,01,026,0,
-    /*   891 */ 0260,01,045,01,0302,0110,01,026,0,
-    /*   900 */ 0261,01,041,01,0302,0120,01,027,0,
-    /*   909 */ 0260,01,041,01,0302,0110,01,027,0,
-    /*   918 */ 0261,01,045,01,0302,0120,01,027,0,
-    /*   927 */ 0260,01,045,01,0302,0110,01,027,0,
-    /*   936 */ 0261,01,041,01,0302,0120,01,030,0,
-    /*   945 */ 0260,01,041,01,0302,0110,01,030,0,
-    /*   954 */ 0261,01,045,01,0302,0120,01,030,0,
-    /*   963 */ 0260,01,045,01,0302,0110,01,030,0,
-    /*   972 */ 0261,01,041,01,0302,0120,01,031,0,
-    /*   981 */ 0260,01,041,01,0302,0110,01,031,0,
-    /*   990 */ 0261,01,045,01,0302,0120,01,031,0,
-    /*   999 */ 0260,01,045,01,0302,0110,01,031,0,
-    /*  1008 */ 0261,01,041,01,0302,0120,01,032,0,
-    /*  1017 */ 0260,01,041,01,0302,0110,01,032,0,
-    /*  1026 */ 0261,01,045,01,0302,0120,01,032,0,
-    /*  1035 */ 0260,01,045,01,0302,0110,01,032,0,
-    /*  1044 */ 0261,01,041,01,0302,0120,01,033,0,
-    /*  1053 */ 0260,01,041,01,0302,0110,01,033,0,
-    /*  1062 */ 0261,01,045,01,0302,0120,01,033,0,
-    /*  1071 */ 0260,01,045,01,0302,0110,01,033,0,
-    /*  1080 */ 0261,01,041,01,0302,0120,01,034,0,
-    /*  1089 */ 0260,01,041,01,0302,0110,01,034,0,
-    /*  1098 */ 0261,01,045,01,0302,0120,01,034,0,
-    /*  1107 */ 0260,01,045,01,0302,0110,01,034,0,
-    /*  1116 */ 0261,01,041,01,0302,0120,01,035,0,
-    /*  1125 */ 0260,01,041,01,0302,0110,01,035,0,
-    /*  1134 */ 0261,01,045,01,0302,0120,01,035,0,
-    /*  1143 */ 0260,01,045,01,0302,0110,01,035,0,
-    /*  1152 */ 0261,01,041,01,0302,0120,01,036,0,
-    /*  1161 */ 0260,01,041,01,0302,0110,01,036,0,
-    /*  1170 */ 0261,01,045,01,0302,0120,01,036,0,
-    /*  1179 */ 0260,01,045,01,0302,0110,01,036,0,
-    /*  1188 */ 0261,01,041,01,0302,0120,01,037,0,
-    /*  1197 */ 0260,01,041,01,0302,0110,01,037,0,
-    /*  1206 */ 0261,01,045,01,0302,0120,01,037,0,
-    /*  1215 */ 0260,01,045,01,0302,0110,01,037,0,
-    /*  1224 */ 0261,01,040,01,0302,0120,01,020,0,
-    /*  1233 */ 0260,01,040,01,0302,0110,01,020,0,
-    /*  1242 */ 0261,01,044,01,0302,0120,01,020,0,
-    /*  1251 */ 0260,01,044,01,0302,0110,01,020,0,
-    /*  1260 */ 0261,01,040,01,0302,0120,01,0,0,
-    /*  1269 */ 0260,01,040,01,0302,0110,01,0,0,
-    /*  1278 */ 0261,01,044,01,0302,0120,01,0,0,
-    /*  1287 */ 0260,01,044,01,0302,0110,01,0,0,
-    /*  1296 */ 0261,01,040,01,0302,0120,01,01,0,
-    /*  1305 */ 0260,01,040,01,0302,0110,01,01,0,
-    /*  1314 */ 0261,01,044,01,0302,0120,01,01,0,
-    /*  1323 */ 0260,01,044,01,0302,0110,01,01,0,
-    /*  1332 */ 0261,01,040,01,0302,0120,01,02,0,
-    /*  1341 */ 0260,01,040,01,0302,0110,01,02,0,
-    /*  1350 */ 0261,01,044,01,0302,0120,01,02,0,
-    /*  1359 */ 0260,01,044,01,0302,0110,01,02,0,
-    /*  1368 */ 0261,01,040,01,0302,0120,01,03,0,
-    /*  1377 */ 0260,01,040,01,0302,0110,01,03,0,
-    /*  1386 */ 0261,01,044,01,0302,0120,01,03,0,
-    /*  1395 */ 0260,01,044,01,0302,0110,01,03,0,
-    /*  1404 */ 0261,01,040,01,0302,0120,01,04,0,
-    /*  1413 */ 0260,01,040,01,0302,0110,01,04,0,
-    /*  1422 */ 0261,01,044,01,0302,0120,01,04,0,
-    /*  1431 */ 0260,01,044,01,0302,0110,01,04,0,
-    /*  1440 */ 0261,01,040,01,0302,0120,01,05,0,
-    /*  1449 */ 0260,01,040,01,0302,0110,01,05,0,
-    /*  1458 */ 0261,01,044,01,0302,0120,01,05,0,
-    /*  1467 */ 0260,01,044,01,0302,0110,01,05,0,
-    /*  1476 */ 0261,01,040,01,0302,0120,01,06,0,
-    /*  1485 */ 0260,01,040,01,0302,0110,01,06,0,
-    /*  1494 */ 0261,01,044,01,0302,0120,01,06,0,
-    /*  1503 */ 0260,01,044,01,0302,0110,01,06,0,
-    /*  1512 */ 0261,01,040,01,0302,0120,01,07,0,
-    /*  1521 */ 0260,01,040,01,0302,0110,01,07,0,
-    /*  1530 */ 0261,01,044,01,0302,0120,01,07,0,
-    /*  1539 */ 0260,01,044,01,0302,0110,01,07,0,
-    /*  1548 */ 0261,01,040,01,0302,0120,01,010,0,
-    /*  1557 */ 0260,01,040,01,0302,0110,01,010,0,
-    /*  1566 */ 0261,01,044,01,0302,0120,01,010,0,
-    /*  1575 */ 0260,01,044,01,0302,0110,01,010,0,
-    /*  1584 */ 0261,01,040,01,0302,0120,01,011,0,
-    /*  1593 */ 0260,01,040,01,0302,0110,01,011,0,
-    /*  1602 */ 0261,01,044,01,0302,0120,01,011,0,
-    /*  1611 */ 0260,01,044,01,0302,0110,01,011,0,
-    /*  1620 */ 0261,01,040,01,0302,0120,01,012,0,
-    /*  1629 */ 0260,01,040,01,0302,0110,01,012,0,
-    /*  1638 */ 0261,01,044,01,0302,0120,01,012,0,
-    /*  1647 */ 0260,01,044,01,0302,0110,01,012,0,
-    /*  1656 */ 0261,01,040,01,0302,0120,01,013,0,
-    /*  1665 */ 0260,01,040,01,0302,0110,01,013,0,
-    /*  1674 */ 0261,01,044,01,0302,0120,01,013,0,
-    /*  1683 */ 0260,01,044,01,0302,0110,01,013,0,
-    /*  1692 */ 0261,01,040,01,0302,0120,01,014,0,
-    /*  1701 */ 0260,01,040,01,0302,0110,01,014,0,
-    /*  1710 */ 0261,01,044,01,0302,0120,01,014,0,
-    /*  1719 */ 0260,01,044,01,0302,0110,01,014,0,
-    /*  1728 */ 0261,01,040,01,0302,0120,01,015,0,
-    /*  1737 */ 0260,01,040,01,0302,0110,01,015,0,
-    /*  1746 */ 0261,01,044,01,0302,0120,01,015,0,
-    /*  1755 */ 0260,01,044,01,0302,0110,01,015,0,
-    /*  1764 */ 0261,01,040,01,0302,0120,01,016,0,
-    /*  1773 */ 0260,01,040,01,0302,0110,01,016,0,
-    /*  1782 */ 0261,01,044,01,0302,0120,01,016,0,
-    /*  1791 */ 0260,01,044,01,0302,0110,01,016,0,
-    /*  1800 */ 0261,01,040,01,0302,0120,01,017,0,
-    /*  1809 */ 0260,01,040,01,0302,0110,01,017,0,
-    /*  1818 */ 0261,01,044,01,0302,0120,01,017,0,
-    /*  1827 */ 0260,01,044,01,0302,0110,01,017,0,
-    /*  1836 */ 0261,01,040,01,0302,0120,01,021,0,
-    /*  1845 */ 0260,01,040,01,0302,0110,01,021,0,
-    /*  1854 */ 0261,01,044,01,0302,0120,01,021,0,
-    /*  1863 */ 0260,01,044,01,0302,0110,01,021,0,
-    /*  1872 */ 0261,01,040,01,0302,0120,01,022,0,
-    /*  1881 */ 0260,01,040,01,0302,0110,01,022,0,
-    /*  1890 */ 0261,01,044,01,0302,0120,01,022,0,
-    /*  1899 */ 0260,01,044,01,0302,0110,01,022,0,
-    /*  1908 */ 0261,01,040,01,0302,0120,01,023,0,
-    /*  1917 */ 0260,01,040,01,0302,0110,01,023,0,
-    /*  1926 */ 0261,01,044,01,0302,0120,01,023,0,
-    /*  1935 */ 0260,01,044,01,0302,0110,01,023,0,
-    /*  1944 */ 0261,01,040,01,0302,0120,01,024,0,
-    /*  1953 */ 0260,01,040,01,0302,0110,01,024,0,
-    /*  1962 */ 0261,01,044,01,0302,0120,01,024,0,
-    /*  1971 */ 0260,01,044,01,0302,0110,01,024,0,
-    /*  1980 */ 0261,01,040,01,0302,0120,01,025,0,
-    /*  1989 */ 0260,01,040,01,0302,0110,01,025,0,
-    /*  1998 */ 0261,01,044,01,0302,0120,01,025,0,
-    /*  2007 */ 0260,01,044,01,0302,0110,01,025,0,
-    /*  2016 */ 0261,01,040,01,0302,0120,01,026,0,
-    /*  2025 */ 0260,01,040,01,0302,0110,01,026,0,
-    /*  2034 */ 0261,01,044,01,0302,0120,01,026,0,
-    /*  2043 */ 0260,01,044,01,0302,0110,01,026,0,
-    /*  2052 */ 0261,01,040,01,0302,0120,01,027,0,
-    /*  2061 */ 0260,01,040,01,0302,0110,01,027,0,
-    /*  2070 */ 0261,01,044,01,0302,0120,01,027,0,
-    /*  2079 */ 0260,01,044,01,0302,0110,01,027,0,
-    /*  2088 */ 0261,01,040,01,0302,0120,01,030,0,
-    /*  2097 */ 0260,01,040,01,0302,0110,01,030,0,
-    /*  2106 */ 0261,01,044,01,0302,0120,01,030,0,
-    /*  2115 */ 0260,01,044,01,0302,0110,01,030,0,
-    /*  2124 */ 0261,01,040,01,0302,0120,01,031,0,
-    /*  2133 */ 0260,01,040,01,0302,0110,01,031,0,
-    /*  2142 */ 0261,01,044,01,0302,0120,01,031,0,
-    /*  2151 */ 0260,01,044,01,0302,0110,01,031,0,
-    /*  2160 */ 0261,01,040,01,0302,0120,01,032,0,
-    /*  2169 */ 0260,01,040,01,0302,0110,01,032,0,
-    /*  2178 */ 0261,01,044,01,0302,0120,01,032,0,
-    /*  2187 */ 0260,01,044,01,0302,0110,01,032,0,
-    /*  2196 */ 0261,01,040,01,0302,0120,01,033,0,
-    /*  2205 */ 0260,01,040,01,0302,0110,01,033,0,
-    /*  2214 */ 0261,01,044,01,0302,0120,01,033,0,
-    /*  2223 */ 0260,01,044,01,0302,0110,01,033,0,
-    /*  2232 */ 0261,01,040,01,0302,0120,01,034,0,
-    /*  2241 */ 0260,01,040,01,0302,0110,01,034,0,
-    /*  2250 */ 0261,01,044,01,0302,0120,01,034,0,
-    /*  2259 */ 0260,01,044,01,0302,0110,01,034,0,
-    /*  2268 */ 0261,01,040,01,0302,0120,01,035,0,
-    /*  2277 */ 0260,01,040,01,0302,0110,01,035,0,
-    /*  2286 */ 0261,01,044,01,0302,0120,01,035,0,
-    /*  2295 */ 0260,01,044,01,0302,0110,01,035,0,
-    /*  2304 */ 0261,01,040,01,0302,0120,01,036,0,
-    /*  2313 */ 0260,01,040,01,0302,0110,01,036,0,
-    /*  2322 */ 0261,01,044,01,0302,0120,01,036,0,
-    /*  2331 */ 0260,01,044,01,0302,0110,01,036,0,
-    /*  2340 */ 0261,01,040,01,0302,0120,01,037,0,
-    /*  2349 */ 0260,01,040,01,0302,0110,01,037,0,
-    /*  2358 */ 0261,01,044,01,0302,0120,01,037,0,
-    /*  2367 */ 0260,01,044,01,0302,0110,01,037,0,
-    /*  2376 */ 0261,01,053,01,0302,0120,01,020,0,
-    /*  2385 */ 0260,01,053,01,0302,0110,01,020,0,
-    /*  2394 */ 0261,01,053,01,0302,0120,01,0,0,
-    /*  2403 */ 0260,01,053,01,0302,0110,01,0,0,
-    /*  2412 */ 0261,01,053,01,0302,0120,01,01,0,
-    /*  2421 */ 0260,01,053,01,0302,0110,01,01,0,
-    /*  2430 */ 0261,01,053,01,0302,0120,01,02,0,
-    /*  2439 */ 0260,01,053,01,0302,0110,01,02,0,
-    /*  2448 */ 0261,01,053,01,0302,0120,01,03,0,
-    /*  2457 */ 0260,01,053,01,0302,0110,01,03,0,
-    /*  2466 */ 0261,01,053,01,0302,0120,01,04,0,
-    /*  2475 */ 0260,01,053,01,0302,0110,01,04,0,
-    /*  2484 */ 0261,01,053,01,0302,0120,01,05,0,
-    /*  2493 */ 0260,01,053,01,0302,0110,01,05,0,
-    /*  2502 */ 0261,01,053,01,0302,0120,01,06,0,
-    /*  2511 */ 0260,01,053,01,0302,0110,01,06,0,
-    /*  2520 */ 0261,01,053,01,0302,0120,01,07,0,
-    /*  2529 */ 0260,01,053,01,0302,0110,01,07,0,
-    /*  2538 */ 0261,01,053,01,0302,0120,01,010,0,
-    /*  2547 */ 0260,01,053,01,0302,0110,01,010,0,
-    /*  2556 */ 0261,01,053,01,0302,0120,01,011,0,
-    /*  2565 */ 0260,01,053,01,0302,0110,01,011,0,
-    /*  2574 */ 0261,01,053,01,0302,0120,01,012,0,
-    /*  2583 */ 0260,01,053,01,0302,0110,01,012,0,
-    /*  2592 */ 0261,01,053,01,0302,0120,01,013,0,
-    /*  2601 */ 0260,01,053,01,0302,0110,01,013,0,
-    /*  2610 */ 0261,01,053,01,0302,0120,01,014,0,
-    /*  2619 */ 0260,01,053,01,0302,0110,01,014,0,
-    /*  2628 */ 0261,01,053,01,0302,0120,01,015,0,
-    /*  2637 */ 0260,01,053,01,0302,0110,01,015,0,
-    /*  2646 */ 0261,01,053,01,0302,0120,01,016,0,
-    /*  2655 */ 0260,01,053,01,0302,0110,01,016,0,
-    /*  2664 */ 0261,01,053,01,0302,0120,01,017,0,
-    /*  2673 */ 0260,01,053,01,0302,0110,01,017,0,
-    /*  2682 */ 0261,01,053,01,0302,0120,01,021,0,
-    /*  2691 */ 0260,01,053,01,0302,0110,01,021,0,
-    /*  2700 */ 0261,01,053,01,0302,0120,01,022,0,
-    /*  2709 */ 0260,01,053,01,0302,0110,01,022,0,
-    /*  2718 */ 0261,01,053,01,0302,0120,01,023,0,
-    /*  2727 */ 0260,01,053,01,0302,0110,01,023,0,
-    /*  2736 */ 0261,01,053,01,0302,0120,01,024,0,
-    /*  2745 */ 0260,01,053,01,0302,0110,01,024,0,
-    /*  2754 */ 0261,01,053,01,0302,0120,01,025,0,
-    /*  2763 */ 0260,01,053,01,0302,0110,01,025,0,
-    /*  2772 */ 0261,01,053,01,0302,0120,01,026,0,
-    /*  2781 */ 0260,01,053,01,0302,0110,01,026,0,
-    /*  2790 */ 0261,01,053,01,0302,0120,01,027,0,
-    /*  2799 */ 0260,01,053,01,0302,0110,01,027,0,
-    /*  2808 */ 0261,01,053,01,0302,0120,01,030,0,
-    /*  2817 */ 0260,01,053,01,0302,0110,01,030,0,
-    /*  2826 */ 0261,01,053,01,0302,0120,01,031,0,
-    /*  2835 */ 0260,01,053,01,0302,0110,01,031,0,
-    /*  2844 */ 0261,01,053,01,0302,0120,01,032,0,
-    /*  2853 */ 0260,01,053,01,0302,0110,01,032,0,
-    /*  2862 */ 0261,01,053,01,0302,0120,01,033,0,
-    /*  2871 */ 0260,01,053,01,0302,0110,01,033,0,
-    /*  2880 */ 0261,01,053,01,0302,0120,01,034,0,
-    /*  2889 */ 0260,01,053,01,0302,0110,01,034,0,
-    /*  2898 */ 0261,01,053,01,0302,0120,01,035,0,
-    /*  2907 */ 0260,01,053,01,0302,0110,01,035,0,
-    /*  2916 */ 0261,01,053,01,0302,0120,01,036,0,
-    /*  2925 */ 0260,01,053,01,0302,0110,01,036,0,
-    /*  2934 */ 0261,01,053,01,0302,0120,01,037,0,
-    /*  2943 */ 0260,01,053,01,0302,0110,01,037,0,
-    /*  2952 */ 0261,01,052,01,0302,0120,01,020,0,
-    /*  2961 */ 0260,01,052,01,0302,0110,01,020,0,
-    /*  2970 */ 0261,01,052,01,0302,0120,01,0,0,
-    /*  2979 */ 0260,01,052,01,0302,0110,01,0,0,
-    /*  2988 */ 0261,01,052,01,0302,0120,01,01,0,
-    /*  2997 */ 0260,01,052,01,0302,0110,01,01,0,
-    /*  3006 */ 0261,01,052,01,0302,0120,01,02,0,
-    /*  3015 */ 0260,01,052,01,0302,0110,01,02,0,
-    /*  3024 */ 0261,01,052,01,0302,0120,01,03,0,
-    /*  3033 */ 0260,01,052,01,0302,0110,01,03,0,
-    /*  3042 */ 0261,01,052,01,0302,0120,01,04,0,
-    /*  3051 */ 0260,01,052,01,0302,0110,01,04,0,
-    /*  3060 */ 0261,01,052,01,0302,0120,01,05,0,
-    /*  3069 */ 0260,01,052,01,0302,0110,01,05,0,
-    /*  3078 */ 0261,01,052,01,0302,0120,01,06,0,
-    /*  3087 */ 0260,01,052,01,0302,0110,01,06,0,
-    /*  3096 */ 0261,01,052,01,0302,0120,01,07,0,
-    /*  3105 */ 0260,01,052,01,0302,0110,01,07,0,
-    /*  3114 */ 0261,01,052,01,0302,0120,01,010,0,
-    /*  3123 */ 0260,01,052,01,0302,0110,01,010,0,
-    /*  3132 */ 0261,01,052,01,0302,0120,01,011,0,
-    /*  3141 */ 0260,01,052,01,0302,0110,01,011,0,
-    /*  3150 */ 0261,01,052,01,0302,0120,01,012,0,
-    /*  3159 */ 0260,01,052,01,0302,0110,01,012,0,
-    /*  3168 */ 0261,01,052,01,0302,0120,01,013,0,
-    /*  3177 */ 0260,01,052,01,0302,0110,01,013,0,
-    /*  3186 */ 0261,01,052,01,0302,0120,01,014,0,
-    /*  3195 */ 0260,01,052,01,0302,0110,01,014,0,
-    /*  3204 */ 0261,01,052,01,0302,0120,01,015,0,
-    /*  3213 */ 0260,01,052,01,0302,0110,01,015,0,
-    /*  3222 */ 0261,01,052,01,0302,0120,01,016,0,
-    /*  3231 */ 0260,01,052,01,0302,0110,01,016,0,
-    /*  3240 */ 0261,01,052,01,0302,0120,01,017,0,
-    /*  3249 */ 0260,01,052,01,0302,0110,01,017,0,
-    /*  3258 */ 0261,01,052,01,0302,0120,01,021,0,
-    /*  3267 */ 0260,01,052,01,0302,0110,01,021,0,
-    /*  3276 */ 0261,01,052,01,0302,0120,01,022,0,
-    /*  3285 */ 0260,01,052,01,0302,0110,01,022,0,
-    /*  3294 */ 0261,01,052,01,0302,0120,01,023,0,
-    /*  3303 */ 0260,01,052,01,0302,0110,01,023,0,
-    /*  3312 */ 0261,01,052,01,0302,0120,01,024,0,
-    /*  3321 */ 0260,01,052,01,0302,0110,01,024,0,
-    /*  3330 */ 0261,01,052,01,0302,0120,01,025,0,
-    /*  3339 */ 0260,01,052,01,0302,0110,01,025,0,
-    /*  3348 */ 0261,01,052,01,0302,0120,01,026,0,
-    /*  3357 */ 0260,01,052,01,0302,0110,01,026,0,
-    /*  3366 */ 0261,01,052,01,0302,0120,01,027,0,
-    /*  3375 */ 0260,01,052,01,0302,0110,01,027,0,
-    /*  3384 */ 0261,01,052,01,0302,0120,01,030,0,
-    /*  3393 */ 0260,01,052,01,0302,0110,01,030,0,
-    /*  3402 */ 0261,01,052,01,0302,0120,01,031,0,
-    /*  3411 */ 0260,01,052,01,0302,0110,01,031,0,
-    /*  3420 */ 0261,01,052,01,0302,0120,01,032,0,
-    /*  3429 */ 0260,01,052,01,0302,0110,01,032,0,
-    /*  3438 */ 0261,01,052,01,0302,0120,01,033,0,
-    /*  3447 */ 0260,01,052,01,0302,0110,01,033,0,
-    /*  3456 */ 0261,01,052,01,0302,0120,01,034,0,
-    /*  3465 */ 0260,01,052,01,0302,0110,01,034,0,
-    /*  3474 */ 0261,01,052,01,0302,0120,01,035,0,
-    /*  3483 */ 0260,01,052,01,0302,0110,01,035,0,
-    /*  3492 */ 0261,01,052,01,0302,0120,01,036,0,
-    /*  3501 */ 0260,01,052,01,0302,0110,01,036,0,
-    /*  3510 */ 0261,01,052,01,0302,0120,01,037,0,
-    /*  3519 */ 0260,01,052,01,0302,0110,01,037,0,
-    /*  3528 */ 0361,03,017,072,0104,0110,01,0,0,
-    /*  3537 */ 0361,03,017,072,0104,0110,01,01,0,
-    /*  3546 */ 0361,03,017,072,0104,0110,01,020,0,
-    /*  3555 */ 0361,03,017,072,0104,0110,01,021,0,
-    /*  3564 */ 0261,03,041,01,0104,0120,01,0,0,
-    /*  3573 */ 0260,03,041,01,0104,0110,01,0,0,
-    /*  3582 */ 0261,03,041,01,0104,0120,01,01,0,
-    /*  3591 */ 0260,03,041,01,0104,0110,01,01,0,
-    /*  3600 */ 0261,03,041,01,0104,0120,01,020,0,
-    /*  3609 */ 0260,03,041,01,0104,0110,01,020,0,
-    /*  3618 */ 0261,03,041,01,0104,0120,01,021,0,
-    /*  3627 */ 0260,03,041,01,0104,0110,01,021,0,
-    /*  3636 */ 0241,0203,01,0301,01,03,0120,023,0,
-    /*  3645 */ 0240,0203,01,0301,01,03,0110,022,0,
-    /*  3654 */ 0241,0203,05,0301,01,03,0120,023,0,
-    /*  3663 */ 0240,0203,05,0301,01,03,0110,022,0,
-    /*  3672 */ 0241,0203,011,0301,01,03,0120,023,0,
-    /*  3681 */ 0240,0203,011,0301,01,03,0110,022,0,
-    /*  3690 */ 0241,0203,021,0301,01,03,0120,023,0,
-    /*  3699 */ 0240,0203,021,0301,01,03,0110,022,0,
-    /*  3708 */ 0241,0203,025,0301,01,03,0120,023,0,
-    /*  3717 */ 0240,0203,025,0301,01,03,0110,022,0,
-    /*  3726 */ 0241,0203,031,0301,01,03,0120,023,0,
-    /*  3735 */ 0240,0203,031,0301,01,03,0110,022,0,
-    /*  3744 */ 0241,0201,021,0301,01,0302,0120,023,0,
-    /*  3753 */ 0241,0201,025,0301,01,0302,0120,023,0,
-    /*  3762 */ 0241,0201,031,0301,01,0302,0120,023,0,
-    /*  3771 */ 0241,0201,0,0301,01,0302,0120,023,0,
-    /*  3780 */ 0241,0201,04,0301,01,0302,0120,023,0,
-    /*  3789 */ 0241,0201,010,0301,01,0302,0120,023,0,
-    /*  3798 */ 0241,0201,023,0306,01,0302,0120,023,0,
-    /*  3807 */ 0241,0201,02,0306,01,0302,0120,023,0,
-    /*  3816 */ 0250,0203,01,0314,01,035,0101,022,0,
-    /*  3825 */ 0250,0203,05,0314,01,035,0101,022,0,
-    /*  3834 */ 0250,0203,011,0314,01,035,0101,022,0,
-    /*  3843 */ 0241,0203,01,0303,01,0102,0120,023,0,
-    /*  3852 */ 0240,0203,01,0303,01,0102,0110,022,0,
-    /*  3861 */ 0241,0203,05,0303,01,0102,0120,023,0,
-    /*  3870 */ 0240,0203,05,0303,01,0102,0110,022,0,
-    /*  3879 */ 0241,0203,011,0303,01,0102,0120,023,0,
-    /*  3888 */ 0240,0203,011,0303,01,0102,0110,022,0,
-    /*  3897 */ 0250,0203,05,0300,01,031,0101,022,0,
-    /*  3906 */ 0250,0203,011,0300,01,031,0101,022,0,
-    /*  3915 */ 0250,0203,05,0312,01,031,0101,022,0,
-    /*  3924 */ 0250,0203,011,0312,01,031,0101,022,0,
-    /*  3933 */ 0250,0203,011,0300,01,033,0101,022,0,
-    /*  3942 */ 0250,0203,011,0313,01,033,0101,022,0,
-    /*  3951 */ 0250,0203,025,0300,01,031,0101,022,0,
-    /*  3960 */ 0250,0203,031,0300,01,031,0101,022,0,
-    /*  3969 */ 0250,0203,025,0311,01,031,0101,022,0,
-    /*  3978 */ 0250,0203,031,0311,01,031,0101,022,0,
-    /*  3987 */ 0250,0203,031,0300,01,033,0101,022,0,
-    /*  3996 */ 0250,0203,031,0312,01,033,0101,022,0,
-    /*  4005 */ 0250,0203,05,0300,01,071,0101,022,0,
-    /*  4014 */ 0250,0203,011,0300,01,071,0101,022,0,
-    /*  4023 */ 0250,0203,05,0312,01,071,0101,022,0,
-    /*  4032 */ 0250,0203,011,0312,01,071,0101,022,0,
-    /*  4041 */ 0250,0203,011,0300,01,073,0101,022,0,
-    /*  4050 */ 0250,0203,011,0313,01,073,0101,022,0,
-    /*  4059 */ 0250,0203,025,0300,01,071,0101,022,0,
-    /*  4068 */ 0250,0203,031,0300,01,071,0101,022,0,
-    /*  4077 */ 0250,0203,025,0311,01,071,0101,022,0,
-    /*  4086 */ 0250,0203,031,0311,01,071,0101,022,0,
-    /*  4095 */ 0250,0203,031,0300,01,073,0101,022,0,
-    /*  4104 */ 0250,0203,031,0312,01,073,0101,022,0,
-    /*  4113 */ 0250,0203,041,0306,01,027,0101,022,0,
-    /*  4122 */ 0241,0203,021,0301,01,0124,0120,023,0,
-    /*  4131 */ 0240,0203,021,0301,01,0124,0110,022,0,
-    /*  4140 */ 0241,0203,025,0301,01,0124,0120,023,0,
-    /*  4149 */ 0240,0203,025,0301,01,0124,0110,022,0,
-    /*  4158 */ 0241,0203,031,0301,01,0124,0120,023,0,
-    /*  4167 */ 0240,0203,031,0301,01,0124,0110,022,0,
-    /*  4176 */ 0241,0203,01,0301,01,0124,0120,023,0,
-    /*  4185 */ 0240,0203,01,0301,01,0124,0110,022,0,
-    /*  4194 */ 0241,0203,05,0301,01,0124,0120,023,0,
-    /*  4203 */ 0240,0203,05,0301,01,0124,0110,022,0,
-    /*  4212 */ 0241,0203,011,0301,01,0124,0120,023,0,
-    /*  4221 */ 0240,0203,011,0301,01,0124,0110,022,0,
-    /*  4230 */ 0241,0203,021,0306,01,0125,0120,023,0,
-    /*  4239 */ 0240,0203,021,0306,01,0125,0110,022,0,
-    /*  4248 */ 0241,0203,01,0306,01,0125,0120,023,0,
-    /*  4257 */ 0240,0203,01,0306,01,0125,0110,022,0,
-    /*  4266 */ 0250,0203,021,0301,01,0146,0110,022,0,
-    /*  4275 */ 0250,0203,025,0301,01,0146,0110,022,0,
-    /*  4284 */ 0250,0203,031,0301,01,0146,0110,022,0,
-    /*  4293 */ 0250,0203,01,0301,01,0146,0110,022,0,
-    /*  4302 */ 0250,0203,05,0301,01,0146,0110,022,0,
-    /*  4311 */ 0250,0203,011,0301,01,0146,0110,022,0,
-    /*  4320 */ 0250,0203,021,0306,01,0147,0110,022,0,
-    /*  4329 */ 0250,0203,01,0306,01,0147,0110,022,0,
-    /*  4338 */ 0374,0250,0202,021,0306,01,0222,0110,0,
-    /*  4347 */ 0374,0250,0202,025,0306,01,0222,0110,0,
-    /*  4356 */ 0375,0250,0202,031,0306,01,0222,0110,0,
-    /*  4365 */ 0374,0250,0202,01,0306,01,0222,0110,0,
-    /*  4374 */ 0375,0250,0202,05,0306,01,0222,0110,0,
-    /*  4383 */ 0376,0250,0202,011,0306,01,0222,0110,0,
-    /*  4392 */ 0375,0250,0202,031,0306,01,0306,0201,0,
-    /*  4401 */ 0376,0250,0202,011,0306,01,0306,0201,0,
-    /*  4410 */ 0376,0250,0202,031,0306,01,0307,0201,0,
-    /*  4419 */ 0376,0250,0202,011,0306,01,0307,0201,0,
-    /*  4428 */ 0375,0250,0202,031,0306,01,0306,0202,0,
-    /*  4437 */ 0376,0250,0202,011,0306,01,0306,0202,0,
-    /*  4446 */ 0376,0250,0202,031,0306,01,0307,0202,0,
-    /*  4455 */ 0376,0250,0202,011,0306,01,0307,0202,0,
-    /*  4464 */ 0374,0250,0202,021,0306,01,0223,0110,0,
-    /*  4473 */ 0375,0250,0202,025,0306,01,0223,0110,0,
-    /*  4482 */ 0376,0250,0202,031,0306,01,0223,0110,0,
-    /*  4491 */ 0374,0250,0202,01,0306,01,0223,0110,0,
-    /*  4500 */ 0375,0250,0202,05,0306,01,0223,0110,0,
-    /*  4509 */ 0376,0250,0202,011,0306,01,0223,0110,0,
-    /*  4518 */ 0250,0203,021,0301,01,046,0110,022,0,
-    /*  4527 */ 0250,0203,025,0301,01,046,0110,022,0,
-    /*  4536 */ 0250,0203,031,0301,01,046,0110,022,0,
-    /*  4545 */ 0250,0203,01,0301,01,046,0110,022,0,
-    /*  4554 */ 0250,0203,05,0301,01,046,0110,022,0,
-    /*  4563 */ 0250,0203,011,0301,01,046,0110,022,0,
-    /*  4572 */ 0241,0203,021,0306,01,047,0120,023,0,
-    /*  4581 */ 0241,0203,01,0306,01,047,0120,023,0,
-    /*  4590 */ 0241,0203,05,0312,01,030,0120,023,0,
-    /*  4599 */ 0240,0203,05,0312,01,030,0110,022,0,
-    /*  4608 */ 0241,0203,011,0312,01,030,0120,023,0,
-    /*  4617 */ 0240,0203,011,0312,01,030,0110,022,0,
-    /*  4626 */ 0241,0203,011,0313,01,032,0120,023,0,
-    /*  4635 */ 0240,0203,011,0313,01,032,0110,022,0,
-    /*  4644 */ 0241,0203,025,0311,01,030,0120,023,0,
-    /*  4653 */ 0240,0203,025,0311,01,030,0110,022,0,
-    /*  4662 */ 0241,0203,031,0311,01,030,0120,023,0,
-    /*  4671 */ 0240,0203,031,0311,01,030,0110,022,0,
-    /*  4680 */ 0241,0203,031,0312,01,032,0120,023,0,
-    /*  4689 */ 0240,0203,031,0312,01,032,0110,022,0,
-    /*  4698 */ 0241,0203,05,0312,01,070,0120,023,0,
-    /*  4707 */ 0240,0203,05,0312,01,070,0110,022,0,
-    /*  4716 */ 0241,0203,011,0312,01,070,0120,023,0,
-    /*  4725 */ 0240,0203,011,0312,01,070,0110,022,0,
-    /*  4734 */ 0241,0203,011,0313,01,072,0120,023,0,
-    /*  4743 */ 0240,0203,011,0313,01,072,0110,022,0,
-    /*  4752 */ 0241,0203,025,0311,01,070,0120,023,0,
-    /*  4761 */ 0240,0203,025,0311,01,070,0110,022,0,
-    /*  4770 */ 0241,0203,031,0311,01,070,0120,023,0,
-    /*  4779 */ 0240,0203,031,0311,01,070,0110,022,0,
-    /*  4788 */ 0241,0203,031,0312,01,072,0120,023,0,
-    /*  4797 */ 0240,0203,031,0312,01,072,0110,022,0,
-    /*  4806 */ 0241,0203,01,0306,01,041,0120,023,0,
-    /*  4815 */ 0240,0203,01,0306,01,041,0110,022,0,
-    /*  4824 */ 0241,0203,041,0303,01,017,0120,023,0,
-    /*  4833 */ 0240,0203,041,0303,01,017,0110,022,0,
-    /*  4842 */ 0241,0203,045,0303,01,017,0120,023,0,
-    /*  4851 */ 0240,0203,045,0303,01,017,0110,022,0,
-    /*  4860 */ 0241,0203,051,0303,01,017,0120,023,0,
-    /*  4869 */ 0240,0203,051,0303,01,017,0110,022,0,
-    /*  4878 */ 0241,0203,01,0303,01,077,0120,023,0,
-    /*  4887 */ 0241,0203,05,0303,01,077,0120,023,0,
-    /*  4896 */ 0241,0203,011,0303,01,077,0120,023,0,
-    /*  4905 */ 0241,0203,01,0301,01,037,0120,023,0,
-    /*  4914 */ 0241,0203,05,0301,01,037,0120,023,0,
-    /*  4923 */ 0241,0203,011,0301,01,037,0120,023,0,
-    /*  4932 */ 0241,0203,021,0301,01,037,0120,023,0,
-    /*  4941 */ 0241,0203,025,0301,01,037,0120,023,0,
-    /*  4950 */ 0241,0203,031,0301,01,037,0120,023,0,
-    /*  4959 */ 0241,0203,01,0303,01,076,0120,023,0,
-    /*  4968 */ 0241,0203,05,0303,01,076,0120,023,0,
-    /*  4977 */ 0241,0203,011,0303,01,076,0120,023,0,
-    /*  4986 */ 0241,0203,01,0301,01,036,0120,023,0,
-    /*  4995 */ 0241,0203,05,0301,01,036,0120,023,0,
-    /*  5004 */ 0241,0203,011,0301,01,036,0120,023,0,
-    /*  5013 */ 0241,0203,021,0301,01,036,0120,023,0,
-    /*  5022 */ 0241,0203,025,0301,01,036,0120,023,0,
-    /*  5031 */ 0241,0203,031,0301,01,036,0120,023,0,
-    /*  5040 */ 0241,0203,021,0303,01,076,0120,023,0,
-    /*  5049 */ 0241,0203,025,0303,01,076,0120,023,0,
-    /*  5058 */ 0241,0203,031,0303,01,076,0120,023,0,
-    /*  5067 */ 0241,0203,021,0303,01,077,0120,023,0,
-    /*  5076 */ 0241,0203,025,0303,01,077,0120,023,0,
-    /*  5085 */ 0241,0203,031,0303,01,077,0120,023,0,
-    /*  5094 */ 0250,0203,021,0301,01,05,0110,022,0,
-    /*  5103 */ 0250,0203,025,0301,01,05,0110,022,0,
-    /*  5112 */ 0250,0203,031,0301,01,05,0110,022,0,
-    /*  5121 */ 0250,0203,01,0301,01,04,0110,022,0,
-    /*  5130 */ 0250,0203,05,0301,01,04,0110,022,0,
-    /*  5139 */ 0250,0203,011,0301,01,04,0110,022,0,
-    /*  5148 */ 0250,0203,025,0301,01,01,0110,022,0,
-    /*  5157 */ 0250,0203,031,0301,01,01,0110,022,0,
-    /*  5166 */ 0250,0203,025,0301,01,0,0110,022,0,
-    /*  5175 */ 0250,0203,031,0301,01,0,0110,022,0,
-    /*  5184 */ 0250,0203,041,0304,01,024,0101,022,0,
-    /*  5193 */ 0250,0203,01,0306,01,026,0101,022,0,
-    /*  5202 */ 0250,0203,021,0306,01,026,0101,022,0,
-    /*  5211 */ 0250,0203,041,0305,01,025,0101,022,0,
-    /*  5220 */ 0250,0201,041,0300,01,0305,0110,022,0,
-    /*  5229 */ 0374,0250,0202,01,0306,01,0220,0110,0,
-    /*  5238 */ 0375,0250,0202,05,0306,01,0220,0110,0,
-    /*  5247 */ 0376,0250,0202,011,0306,01,0220,0110,0,
-    /*  5256 */ 0374,0250,0202,021,0306,01,0220,0110,0,
-    /*  5265 */ 0374,0250,0202,025,0306,01,0220,0110,0,
-    /*  5274 */ 0375,0250,0202,031,0306,01,0220,0110,0,
-    /*  5283 */ 0374,0250,0202,01,0306,01,0221,0110,0,
-    /*  5292 */ 0375,0250,0202,05,0306,01,0221,0110,0,
-    /*  5301 */ 0376,0250,0202,011,0306,01,0221,0110,0,
-    /*  5310 */ 0374,0250,0202,021,0306,01,0221,0110,0,
-    /*  5319 */ 0375,0250,0202,025,0306,01,0221,0110,0,
-    /*  5328 */ 0376,0250,0202,031,0306,01,0221,0110,0,
-    /*  5337 */ 0241,0203,041,0304,01,040,0120,023,0,
-    /*  5346 */ 0240,0203,041,0304,01,040,0110,022,0,
-    /*  5355 */ 0241,0203,01,0306,01,042,0120,023,0,
-    /*  5364 */ 0240,0203,01,0306,01,042,0110,022,0,
-    /*  5373 */ 0241,0203,021,0306,01,042,0120,023,0,
-    /*  5382 */ 0240,0203,021,0306,01,042,0110,022,0,
-    /*  5391 */ 0241,0201,041,0305,01,0304,0120,023,0,
-    /*  5400 */ 0240,0201,041,0305,01,0304,0110,022,0,
-    /*  5409 */ 0240,0201,01,0301,01,0162,0211,022,0,
-    /*  5418 */ 0240,0201,01,0301,01,0162,0201,021,0,
-    /*  5427 */ 0240,0201,05,0301,01,0162,0211,022,0,
-    /*  5436 */ 0240,0201,05,0301,01,0162,0201,021,0,
-    /*  5445 */ 0240,0201,011,0301,01,0162,0211,022,0,
-    /*  5454 */ 0240,0201,011,0301,01,0162,0201,021,0,
-    /*  5463 */ 0240,0201,021,0301,01,0162,0211,022,0,
-    /*  5472 */ 0240,0201,021,0301,01,0162,0201,021,0,
-    /*  5481 */ 0240,0201,025,0301,01,0162,0211,022,0,
-    /*  5490 */ 0240,0201,025,0301,01,0162,0201,021,0,
-    /*  5499 */ 0240,0201,031,0301,01,0162,0211,022,0,
-    /*  5508 */ 0240,0201,031,0301,01,0162,0201,021,0,
-    /*  5517 */ 0240,0201,01,0301,01,0162,0210,022,0,
-    /*  5526 */ 0240,0201,01,0301,01,0162,0200,021,0,
-    /*  5535 */ 0240,0201,05,0301,01,0162,0210,022,0,
-    /*  5544 */ 0240,0201,05,0301,01,0162,0200,021,0,
-    /*  5553 */ 0240,0201,011,0301,01,0162,0210,022,0,
-    /*  5562 */ 0240,0201,011,0301,01,0162,0200,021,0,
-    /*  5571 */ 0240,0201,021,0301,01,0162,0210,022,0,
-    /*  5580 */ 0240,0201,021,0301,01,0162,0200,021,0,
-    /*  5589 */ 0240,0201,025,0301,01,0162,0210,022,0,
-    /*  5598 */ 0240,0201,025,0301,01,0162,0200,021,0,
-    /*  5607 */ 0240,0201,031,0301,01,0162,0210,022,0,
-    /*  5616 */ 0240,0201,031,0301,01,0162,0200,021,0,
-    /*  5625 */ 0374,0250,0202,01,0306,01,0240,0101,0,
-    /*  5634 */ 0375,0250,0202,05,0306,01,0240,0101,0,
-    /*  5643 */ 0376,0250,0202,011,0306,01,0240,0101,0,
-    /*  5652 */ 0374,0250,0202,021,0306,01,0240,0101,0,
-    /*  5661 */ 0374,0250,0202,025,0306,01,0240,0101,0,
-    /*  5670 */ 0375,0250,0202,031,0306,01,0240,0101,0,
-    /*  5679 */ 0374,0250,0202,01,0306,01,0241,0101,0,
-    /*  5688 */ 0375,0250,0202,05,0306,01,0241,0101,0,
-    /*  5697 */ 0376,0250,0202,011,0306,01,0241,0101,0,
-    /*  5706 */ 0374,0250,0202,021,0306,01,0241,0101,0,
-    /*  5715 */ 0375,0250,0202,025,0306,01,0241,0101,0,
-    /*  5724 */ 0376,0250,0202,031,0306,01,0241,0101,0,
-    /*  5733 */ 0250,0201,01,0301,01,0160,0110,022,0,
-    /*  5742 */ 0250,0201,05,0301,01,0160,0110,022,0,
-    /*  5751 */ 0250,0201,011,0301,01,0160,0110,022,0,
-    /*  5760 */ 0250,0201,042,0303,01,0160,0110,022,0,
-    /*  5769 */ 0250,0201,046,0303,01,0160,0110,022,0,
-    /*  5778 */ 0250,0201,052,0303,01,0160,0110,022,0,
-    /*  5787 */ 0250,0201,043,0303,01,0160,0110,022,0,
-    /*  5796 */ 0250,0201,047,0303,01,0160,0110,022,0,
-    /*  5805 */ 0250,0201,053,0303,01,0160,0110,022,0,
-    /*  5814 */ 0240,0201,01,0301,01,0162,0216,022,0,
-    /*  5823 */ 0240,0201,01,0301,01,0162,0206,021,0,
-    /*  5832 */ 0240,0201,05,0301,01,0162,0216,022,0,
-    /*  5841 */ 0240,0201,05,0301,01,0162,0206,021,0,
-    /*  5850 */ 0240,0201,011,0301,01,0162,0216,022,0,
-    /*  5859 */ 0240,0201,011,0301,01,0162,0206,021,0,
-    /*  5868 */ 0240,0201,041,0303,01,0163,0217,022,0,
-    /*  5877 */ 0240,0201,041,0303,01,0163,0207,021,0,
-    /*  5886 */ 0240,0201,045,0303,01,0163,0217,022,0,
-    /*  5895 */ 0240,0201,045,0303,01,0163,0207,021,0,
-    /*  5904 */ 0240,0201,051,0303,01,0163,0217,022,0,
-    /*  5913 */ 0240,0201,051,0303,01,0163,0207,021,0,
-    /*  5922 */ 0240,0201,021,0301,01,0163,0216,022,0,
-    /*  5931 */ 0240,0201,021,0301,01,0163,0206,021,0,
-    /*  5940 */ 0240,0201,025,0301,01,0163,0216,022,0,
-    /*  5949 */ 0240,0201,025,0301,01,0163,0206,021,0,
-    /*  5958 */ 0240,0201,031,0301,01,0163,0216,022,0,
-    /*  5967 */ 0240,0201,031,0301,01,0163,0206,021,0,
-    /*  5976 */ 0240,0201,041,0303,01,0161,0216,022,0,
-    /*  5985 */ 0240,0201,041,0303,01,0161,0206,021,0,
-    /*  5994 */ 0240,0201,045,0303,01,0161,0216,022,0,
-    /*  6003 */ 0240,0201,045,0303,01,0161,0206,021,0,
-    /*  6012 */ 0240,0201,051,0303,01,0161,0216,022,0,
-    /*  6021 */ 0240,0201,051,0303,01,0161,0206,021,0,
-    /*  6030 */ 0240,0201,01,0301,01,0162,0214,022,0,
-    /*  6039 */ 0240,0201,01,0301,01,0162,0204,021,0,
-    /*  6048 */ 0240,0201,05,0301,01,0162,0214,022,0,
-    /*  6057 */ 0240,0201,05,0301,01,0162,0204,021,0,
-    /*  6066 */ 0240,0201,011,0301,01,0162,0214,022,0,
-    /*  6075 */ 0240,0201,011,0301,01,0162,0204,021,0,
-    /*  6084 */ 0240,0201,021,0301,01,0162,0214,022,0,
-    /*  6093 */ 0240,0201,021,0301,01,0162,0204,021,0,
-    /*  6102 */ 0240,0201,025,0301,01,0162,0214,022,0,
-    /*  6111 */ 0240,0201,025,0301,01,0162,0204,021,0,
-    /*  6120 */ 0240,0201,031,0301,01,0162,0214,022,0,
-    /*  6129 */ 0240,0201,031,0301,01,0162,0204,021,0,
-    /*  6138 */ 0240,0201,041,0303,01,0161,0214,022,0,
-    /*  6147 */ 0240,0201,041,0303,01,0161,0204,021,0,
-    /*  6156 */ 0240,0201,045,0303,01,0161,0214,022,0,
-    /*  6165 */ 0240,0201,045,0303,01,0161,0204,021,0,
-    /*  6174 */ 0240,0201,051,0303,01,0161,0214,022,0,
-    /*  6183 */ 0240,0201,051,0303,01,0161,0204,021,0,
-    /*  6192 */ 0240,0201,01,0301,01,0162,0212,022,0,
-    /*  6201 */ 0240,0201,01,0301,01,0162,0202,021,0,
-    /*  6210 */ 0240,0201,05,0301,01,0162,0212,022,0,
-    /*  6219 */ 0240,0201,05,0301,01,0162,0202,021,0,
-    /*  6228 */ 0240,0201,011,0301,01,0162,0212,022,0,
-    /*  6237 */ 0240,0201,011,0301,01,0162,0202,021,0,
-    /*  6246 */ 0240,0201,041,0303,01,0163,0213,022,0,
-    /*  6255 */ 0240,0201,041,0303,01,0163,0203,021,0,
-    /*  6264 */ 0240,0201,045,0303,01,0163,0213,022,0,
-    /*  6273 */ 0240,0201,045,0303,01,0163,0203,021,0,
-    /*  6282 */ 0240,0201,051,0303,01,0163,0213,022,0,
-    /*  6291 */ 0240,0201,051,0303,01,0163,0203,021,0,
-    /*  6300 */ 0240,0201,021,0301,01,0163,0212,022,0,
-    /*  6309 */ 0240,0201,021,0301,01,0163,0202,021,0,
-    /*  6318 */ 0240,0201,025,0301,01,0163,0212,022,0,
-    /*  6327 */ 0240,0201,025,0301,01,0163,0202,021,0,
-    /*  6336 */ 0240,0201,031,0301,01,0163,0212,022,0,
-    /*  6345 */ 0240,0201,031,0301,01,0163,0202,021,0,
-    /*  6354 */ 0240,0201,041,0303,01,0161,0212,022,0,
-    /*  6363 */ 0240,0201,041,0303,01,0161,0202,021,0,
-    /*  6372 */ 0240,0201,045,0303,01,0161,0212,022,0,
-    /*  6381 */ 0240,0201,045,0303,01,0161,0202,021,0,
-    /*  6390 */ 0240,0201,051,0303,01,0161,0212,022,0,
-    /*  6399 */ 0240,0201,051,0303,01,0161,0202,021,0,
-    /*  6408 */ 0241,0203,01,0301,01,045,0120,023,0,
-    /*  6417 */ 0241,0203,05,0301,01,045,0120,023,0,
-    /*  6426 */ 0241,0203,011,0301,01,045,0120,023,0,
-    /*  6435 */ 0241,0203,021,0301,01,045,0120,023,0,
-    /*  6444 */ 0241,0203,025,0301,01,045,0120,023,0,
-    /*  6453 */ 0241,0203,031,0301,01,045,0120,023,0,
-    /*  6462 */ 0241,0203,021,0301,01,0120,0120,023,0,
-    /*  6471 */ 0240,0203,021,0301,01,0120,0110,022,0,
-    /*  6480 */ 0241,0203,025,0301,01,0120,0120,023,0,
-    /*  6489 */ 0240,0203,025,0301,01,0120,0110,022,0,
-    /*  6498 */ 0241,0203,031,0301,01,0120,0120,023,0,
-    /*  6507 */ 0240,0203,031,0301,01,0120,0110,022,0,
-    /*  6516 */ 0241,0203,01,0301,01,0120,0120,023,0,
-    /*  6525 */ 0240,0203,01,0301,01,0120,0110,022,0,
-    /*  6534 */ 0241,0203,05,0301,01,0120,0120,023,0,
-    /*  6543 */ 0240,0203,05,0301,01,0120,0110,022,0,
-    /*  6552 */ 0241,0203,011,0301,01,0120,0120,023,0,
-    /*  6561 */ 0240,0203,011,0301,01,0120,0110,022,0,
-    /*  6570 */ 0241,0203,021,0306,01,0121,0120,023,0,
-    /*  6579 */ 0240,0203,021,0306,01,0121,0110,022,0,
-    /*  6588 */ 0241,0203,01,0306,01,0121,0120,023,0,
-    /*  6597 */ 0240,0203,01,0306,01,0121,0110,022,0,
-    /*  6606 */ 0250,0203,021,0301,01,0126,0110,022,0,
-    /*  6615 */ 0250,0203,025,0301,01,0126,0110,022,0,
-    /*  6624 */ 0250,0203,031,0301,01,0126,0110,022,0,
-    /*  6633 */ 0250,0203,01,0301,01,0126,0110,022,0,
-    /*  6642 */ 0250,0203,05,0301,01,0126,0110,022,0,
-    /*  6651 */ 0250,0203,011,0301,01,0126,0110,022,0,
-    /*  6660 */ 0241,0203,021,0306,01,0127,0120,023,0,
-    /*  6669 */ 0240,0203,021,0306,01,0127,0110,022,0,
-    /*  6678 */ 0241,0203,01,0306,01,0127,0120,023,0,
-    /*  6687 */ 0240,0203,01,0306,01,0127,0110,022,0,
-    /*  6696 */ 0250,0203,021,0301,01,011,0110,022,0,
-    /*  6705 */ 0250,0203,025,0301,01,011,0110,022,0,
-    /*  6714 */ 0250,0203,031,0301,01,011,0110,022,0,
-    /*  6723 */ 0250,0203,01,0301,01,010,0110,022,0,
-    /*  6732 */ 0250,0203,05,0301,01,010,0110,022,0,
-    /*  6741 */ 0250,0203,011,0301,01,010,0110,022,0,
-    /*  6750 */ 0241,0203,021,0306,01,013,0120,023,0,
-    /*  6759 */ 0240,0203,021,0306,01,013,0110,022,0,
-    /*  6768 */ 0241,0203,01,0306,01,012,0120,023,0,
-    /*  6777 */ 0240,0203,01,0306,01,012,0110,022,0,
-    /*  6786 */ 0374,0250,0202,021,0306,01,0242,0101,0,
-    /*  6795 */ 0374,0250,0202,025,0306,01,0242,0101,0,
-    /*  6804 */ 0375,0250,0202,031,0306,01,0242,0101,0,
-    /*  6813 */ 0374,0250,0202,01,0306,01,0242,0101,0,
-    /*  6822 */ 0375,0250,0202,05,0306,01,0242,0101,0,
-    /*  6831 */ 0376,0250,0202,011,0306,01,0242,0101,0,
-    /*  6840 */ 0375,0250,0202,031,0306,01,0306,0205,0,
-    /*  6849 */ 0376,0250,0202,011,0306,01,0306,0205,0,
-    /*  6858 */ 0376,0250,0202,031,0306,01,0307,0205,0,
-    /*  6867 */ 0376,0250,0202,011,0306,01,0307,0205,0,
-    /*  6876 */ 0375,0250,0202,031,0306,01,0306,0206,0,
-    /*  6885 */ 0376,0250,0202,011,0306,01,0306,0206,0,
-    /*  6894 */ 0376,0250,0202,031,0306,01,0307,0206,0,
-    /*  6903 */ 0376,0250,0202,011,0306,01,0307,0206,0,
-    /*  6912 */ 0374,0250,0202,021,0306,01,0243,0101,0,
-    /*  6921 */ 0375,0250,0202,025,0306,01,0243,0101,0,
-    /*  6930 */ 0376,0250,0202,031,0306,01,0243,0101,0,
-    /*  6939 */ 0374,0250,0202,01,0306,01,0243,0101,0,
-    /*  6948 */ 0375,0250,0202,05,0306,01,0243,0101,0,
-    /*  6957 */ 0376,0250,0202,011,0306,01,0243,0101,0,
-    /*  6966 */ 0241,0203,05,0301,01,043,0120,023,0,
-    /*  6975 */ 0240,0203,05,0301,01,043,0110,022,0,
-    /*  6984 */ 0241,0203,011,0301,01,043,0120,023,0,
-    /*  6993 */ 0240,0203,011,0301,01,043,0110,022,0,
-    /*  7002 */ 0241,0203,025,0301,01,043,0120,023,0,
-    /*  7011 */ 0240,0203,025,0301,01,043,0110,022,0,
-    /*  7020 */ 0241,0203,031,0301,01,043,0120,023,0,
-    /*  7029 */ 0240,0203,031,0301,01,043,0110,022,0,
-    /*  7038 */ 0241,0203,05,0301,01,0103,0120,023,0,
-    /*  7047 */ 0240,0203,05,0301,01,0103,0110,022,0,
-    /*  7056 */ 0241,0203,011,0301,01,0103,0120,023,0,
-    /*  7065 */ 0240,0203,011,0301,01,0103,0110,022,0,
-    /*  7074 */ 0241,0203,025,0301,01,0103,0120,023,0,
-    /*  7083 */ 0240,0203,025,0301,01,0103,0110,022,0,
-    /*  7092 */ 0241,0203,031,0301,01,0103,0120,023,0,
-    /*  7101 */ 0240,0203,031,0301,01,0103,0110,022,0,
-    /*  7110 */ 0241,0201,021,0301,01,0306,0120,023,0,
-    /*  7119 */ 0240,0201,021,0301,01,0306,0110,022,0,
-    /*  7128 */ 0241,0201,025,0301,01,0306,0120,023,0,
-    /*  7137 */ 0240,0201,025,0301,01,0306,0110,022,0,
-    /*  7146 */ 0241,0201,031,0301,01,0306,0120,023,0,
-    /*  7155 */ 0240,0201,031,0301,01,0306,0110,022,0,
-    /*  7164 */ 0241,0201,0,0301,01,0306,0120,023,0,
-    /*  7173 */ 0240,0201,0,0301,01,0306,0110,022,0,
-    /*  7182 */ 0241,0201,04,0301,01,0306,0120,023,0,
-    /*  7191 */ 0240,0201,04,0301,01,0306,0110,022,0,
-    /*  7200 */ 0241,0201,010,0301,01,0306,0120,023,0,
-    /*  7209 */ 0240,0201,010,0301,01,0306,0110,022,0,
-    /*  7218 */ 0273,0320,02,017,0272,0207,025,0,
-    /*  7226 */ 0273,0321,02,017,0272,0207,025,0,
-    /*  7234 */ 0273,0324,02,017,0272,0207,025,0,
-    /*  7242 */ 0273,0320,02,017,0272,0206,025,0,
-    /*  7250 */ 0273,0321,02,017,0272,0206,025,0,
-    /*  7258 */ 0273,0324,02,017,0272,0206,025,0,
-    /*  7266 */ 0273,0320,02,017,0272,0205,025,0,
-    /*  7274 */ 0273,0321,02,017,0272,0205,025,0,
-    /*  7282 */ 0273,0324,02,017,0272,0205,025,0,
-    /*  7290 */ 0323,02,017,017,0110,01,0277,0,
-    /*  7298 */ 0323,02,017,017,0110,01,035,0,
-    /*  7306 */ 0323,02,017,017,0110,01,0256,0,
-    /*  7314 */ 0323,02,017,017,0110,01,0236,0,
-    /*  7322 */ 0323,02,017,017,0110,01,0260,0,
-    /*  7330 */ 0323,02,017,017,0110,01,0220,0,
-    /*  7338 */ 0323,02,017,017,0110,01,0240,0,
-    /*  7346 */ 0323,02,017,017,0110,01,0244,0,
-    /*  7354 */ 0323,02,017,017,0110,01,0224,0,
-    /*  7362 */ 0323,02,017,017,0110,01,0264,0,
-    /*  7370 */ 0323,02,017,017,0110,01,0226,0,
-    /*  7378 */ 0323,02,017,017,0110,01,0246,0,
-    /*  7386 */ 0323,02,017,017,0110,01,0266,0,
-    /*  7394 */ 0323,02,017,017,0110,01,0247,0,
-    /*  7402 */ 0323,02,017,017,0110,01,0227,0,
-    /*  7410 */ 0323,02,017,017,0110,01,0232,0,
-    /*  7418 */ 0323,02,017,017,0110,01,0252,0,
-    /*  7426 */ 0323,02,017,017,0110,01,015,0,
-    /*  7434 */ 0323,02,017,017,0110,01,0267,0,
-    /*  7442 */ 0360,02,017,0302,0110,01,0,0,
-    /*  7450 */ 0333,02,017,0302,0110,01,0,0,
-    /*  7458 */ 0360,02,017,0302,0110,01,02,0,
-    /*  7466 */ 0333,02,017,0302,0110,01,02,0,
-    /*  7474 */ 0360,02,017,0302,0110,01,01,0,
-    /*  7482 */ 0333,02,017,0302,0110,01,01,0,
-    /*  7490 */ 0360,02,017,0302,0110,01,04,0,
-    /*  7498 */ 0333,02,017,0302,0110,01,04,0,
-    /*  7506 */ 0360,02,017,0302,0110,01,06,0,
-    /*  7514 */ 0333,02,017,0302,0110,01,06,0,
-    /*  7522 */ 0360,02,017,0302,0110,01,05,0,
-    /*  7530 */ 0333,02,017,0302,0110,01,05,0,
-    /*  7538 */ 0360,02,017,0302,0110,01,07,0,
-    /*  7546 */ 0333,02,017,0302,0110,01,07,0,
-    /*  7554 */ 0360,02,017,0302,0110,01,03,0,
-    /*  7562 */ 0333,02,017,0302,0110,01,03,0,
-    /*  7570 */ 0360,0323,02,017,0160,0110,022,0,
-    /*  7578 */ 0323,02,017,017,0110,01,034,0,
-    /*  7586 */ 0323,02,017,017,0110,01,0212,0,
-    /*  7594 */ 0323,02,017,017,0110,01,0216,0,
-    /*  7602 */ 0323,02,017,017,0110,01,014,0,
-    /*  7610 */ 0323,02,017,017,0110,01,0273,0,
-    /*  7618 */ 0361,02,017,0302,0110,01,0,0,
-    /*  7626 */ 0332,02,017,0302,0110,01,0,0,
-    /*  7634 */ 0361,02,017,0302,0110,01,02,0,
-    /*  7642 */ 0332,02,017,0302,0110,01,02,0,
-    /*  7650 */ 0361,02,017,0302,0110,01,01,0,
-    /*  7658 */ 0332,02,017,0302,0110,01,01,0,
-    /*  7666 */ 0361,02,017,0302,0110,01,04,0,
-    /*  7674 */ 0332,02,017,0302,0110,01,04,0,
-    /*  7682 */ 0361,02,017,0302,0110,01,06,0,
-    /*  7690 */ 0332,02,017,0302,0110,01,06,0,
-    /*  7698 */ 0361,02,017,0302,0110,01,05,0,
-    /*  7706 */ 0332,02,017,0302,0110,01,05,0,
-    /*  7714 */ 0361,02,017,0302,0110,01,07,0,
-    /*  7722 */ 0332,02,017,0302,0110,01,07,0,
-    /*  7730 */ 0361,02,017,0302,0110,01,03,0,
-    /*  7738 */ 0332,02,017,0302,0110,01,03,0,
-    /*  7746 */ 0323,0361,03,017,070,0200,0110,0,
-    /*  7754 */ 0323,0361,03,017,070,0201,0110,0,
-    /*  7762 */ 0360,03,017,072,017,0110,026,0,
-    /*  7770 */ 0361,03,017,072,017,0110,026,0,
-    /*  7778 */ 0361,02,017,0170,0200,025,026,0,
-    /*  7786 */ 0332,02,017,0170,0110,026,027,0,
-    /*  7794 */ 0361,03,017,072,015,0110,026,0,
-    /*  7802 */ 0361,03,017,072,014,0110,026,0,
-    /*  7810 */ 0361,03,017,072,0101,0110,026,0,
-    /*  7818 */ 0361,03,017,072,0100,0110,026,0,
-    /*  7826 */ 0361,03,017,072,041,0110,026,0,
-    /*  7834 */ 0361,03,017,072,0102,0110,026,0,
-    /*  7842 */ 0361,03,017,072,016,0110,026,0,
-    /*  7850 */ 0361,03,017,072,011,0110,026,0,
-    /*  7858 */ 0361,03,017,072,010,0110,026,0,
-    /*  7866 */ 0361,03,017,072,013,0110,026,0,
-    /*  7874 */ 0361,03,017,072,012,0110,026,0,
-    /*  7882 */ 0320,0332,03,017,070,0361,0110,0,
-    /*  7890 */ 0321,0332,03,017,070,0361,0110,0,
-    /*  7898 */ 0324,0332,03,017,070,0360,0110,0,
-    /*  7906 */ 0324,0332,03,017,070,0361,0110,0,
-    /*  7914 */ 0361,03,017,072,0141,0110,026,0,
-    /*  7922 */ 0361,03,017,072,0140,0110,026,0,
-    /*  7930 */ 0361,03,017,072,0143,0110,026,0,
-    /*  7938 */ 0361,03,017,072,0142,0110,026,0,
-    /*  7946 */ 0323,02,017,017,0110,01,0206,0,
-    /*  7954 */ 0323,02,017,017,0110,01,0207,0,
-    /*  7962 */ 0320,0331,03,017,070,0360,0110,0,
-    /*  7970 */ 0321,0331,03,017,070,0360,0110,0,
-    /*  7978 */ 0324,0331,03,017,070,0360,0110,0,
-    /*  7986 */ 0320,0331,03,017,070,0361,0101,0,
-    /*  7994 */ 0321,0331,03,017,070,0361,0101,0,
-    /*  8002 */ 0324,0331,03,017,070,0361,0101,0,
-    /*  8010 */ 0361,03,017,072,0337,0110,022,0,
-    /*  8018 */ 0270,03,041,01,0337,0110,022,0,
-    /*  8026 */ 0261,03,041,01,015,0120,023,0,
-    /*  8034 */ 0260,03,041,01,015,0110,022,0,
-    /*  8042 */ 0261,03,045,01,015,0120,023,0,
-    /*  8050 */ 0260,03,045,01,015,0110,022,0,
-    /*  8058 */ 0261,03,041,01,014,0120,023,0,
-    /*  8066 */ 0260,03,041,01,014,0110,022,0,
-    /*  8074 */ 0261,03,045,01,014,0120,023,0,
-    /*  8082 */ 0260,03,045,01,014,0110,022,0,
-    /*  8090 */ 0261,03,01,01,0113,0120,0177,0,
-    /*  8098 */ 0260,03,01,01,0113,0110,0176,0,
-    /*  8106 */ 0261,03,05,01,0113,0120,0177,0,
-    /*  8114 */ 0260,03,05,01,0113,0110,0176,0,
-    /*  8122 */ 0261,03,01,01,0112,0120,0177,0,
-    /*  8130 */ 0260,03,01,01,0112,0110,0176,0,
-    /*  8138 */ 0261,03,05,01,0112,0120,0177,0,
-    /*  8146 */ 0260,03,05,01,0112,0110,0176,0,
-    /*  8154 */ 0261,01,041,01,0302,0120,023,0,
-    /*  8162 */ 0260,01,041,01,0302,0110,022,0,
-    /*  8170 */ 0261,01,045,01,0302,0120,023,0,
-    /*  8178 */ 0260,01,045,01,0302,0110,022,0,
-    /*  8186 */ 0261,01,040,01,0302,0120,023,0,
-    /*  8194 */ 0260,01,040,01,0302,0110,022,0,
-    /*  8202 */ 0261,01,044,01,0302,0120,023,0,
-    /*  8210 */ 0260,01,044,01,0302,0110,022,0,
-    /*  8218 */ 0261,01,053,01,0302,0120,023,0,
-    /*  8226 */ 0260,01,053,01,0302,0110,022,0,
-    /*  8234 */ 0261,01,052,01,0302,0120,023,0,
-    /*  8242 */ 0260,01,052,01,0302,0110,022,0,
-    /*  8250 */ 0261,03,041,01,0101,0120,023,0,
-    /*  8258 */ 0260,03,041,01,0101,0110,022,0,
-    /*  8266 */ 0261,03,041,01,0100,0120,023,0,
-    /*  8274 */ 0260,03,041,01,0100,0110,022,0,
-    /*  8282 */ 0261,03,045,01,0100,0120,023,0,
-    /*  8290 */ 0260,03,045,01,0100,0110,022,0,
-    /*  8298 */ 0270,03,05,01,031,0101,022,0,
-    /*  8306 */ 0270,03,041,01,027,0101,022,0,
-    /*  8314 */ 0261,03,05,01,030,0120,023,0,
-    /*  8322 */ 0260,03,05,01,030,0110,022,0,
-    /*  8330 */ 0261,03,041,01,041,0120,023,0,
-    /*  8338 */ 0260,03,041,01,041,0110,022,0,
-    /*  8346 */ 0261,03,041,01,0102,0120,023,0,
-    /*  8354 */ 0260,03,041,01,0102,0110,022,0,
-    /*  8362 */ 0261,03,041,01,017,0120,023,0,
-    /*  8370 */ 0260,03,041,01,017,0110,022,0,
-    /*  8378 */ 0261,03,01,01,0114,0120,0177,0,
-    /*  8386 */ 0260,03,01,01,0114,0110,0176,0,
-    /*  8394 */ 0261,03,041,01,016,0120,023,0,
-    /*  8402 */ 0260,03,041,01,016,0110,022,0,
-    /*  8410 */ 0270,03,041,01,0141,0110,022,0,
-    /*  8418 */ 0270,03,041,01,0140,0110,022,0,
-    /*  8426 */ 0270,03,041,01,0143,0110,022,0,
-    /*  8434 */ 0270,03,041,01,0142,0110,022,0,
-    /*  8442 */ 0270,03,01,01,05,0110,022,0,
-    /*  8450 */ 0270,03,05,01,05,0110,022,0,
-    /*  8458 */ 0270,03,01,01,04,0110,022,0,
-    /*  8466 */ 0270,03,05,01,04,0110,022,0,
-    /*  8474 */ 0261,03,05,01,06,0120,023,0,
-    /*  8482 */ 0260,03,05,01,06,0110,022,0,
-    /*  8490 */ 0270,03,01,01,024,0101,022,0,
-    /*  8498 */ 0270,01,01,01,0305,0110,022,0,
-    /*  8506 */ 0270,03,01,01,025,0101,022,0,
-    /*  8514 */ 0270,03,01,01,026,0101,022,0,
-    /*  8522 */ 0270,03,021,01,026,0101,022,0,
-    /*  8530 */ 0261,03,041,01,040,0120,023,0,
-    /*  8538 */ 0260,03,041,01,040,0110,022,0,
-    /*  8546 */ 0261,01,041,01,0304,0120,023,0,
-    /*  8554 */ 0260,01,041,01,0304,0110,022,0,
-    /*  8562 */ 0261,03,01,01,042,0120,023,0,
-    /*  8570 */ 0260,03,01,01,042,0110,022,0,
-    /*  8578 */ 0261,03,021,01,042,0120,023,0,
-    /*  8586 */ 0260,03,021,01,042,0110,022,0,
-    /*  8594 */ 0270,01,041,01,0160,0110,022,0,
-    /*  8602 */ 0270,01,042,01,0160,0110,022,0,
-    /*  8610 */ 0270,01,043,01,0160,0110,022,0,
-    /*  8618 */ 0260,01,041,01,0163,0217,022,0,
-    /*  8626 */ 0260,01,041,01,0163,0207,021,0,
-    /*  8634 */ 0260,01,041,01,0163,0213,022,0,
-    /*  8642 */ 0260,01,041,01,0163,0203,021,0,
-    /*  8650 */ 0260,01,041,01,0161,0216,022,0,
-    /*  8658 */ 0260,01,041,01,0161,0206,021,0,
-    /*  8666 */ 0260,01,041,01,0162,0216,022,0,
-    /*  8674 */ 0260,01,041,01,0162,0206,021,0,
-    /*  8682 */ 0260,01,041,01,0163,0216,022,0,
-    /*  8690 */ 0260,01,041,01,0163,0206,021,0,
-    /*  8698 */ 0260,01,041,01,0161,0214,022,0,
-    /*  8706 */ 0260,01,041,01,0161,0204,021,0,
-    /*  8714 */ 0260,01,041,01,0162,0214,022,0,
-    /*  8722 */ 0260,01,041,01,0162,0204,021,0,
-    /*  8730 */ 0260,01,041,01,0161,0212,022,0,
-    /*  8738 */ 0260,01,041,01,0161,0202,021,0,
-    /*  8746 */ 0260,01,041,01,0162,0212,022,0,
-    /*  8754 */ 0260,01,041,01,0162,0202,021,0,
-    /*  8762 */ 0260,01,041,01,0163,0212,022,0,
-    /*  8770 */ 0260,01,041,01,0163,0202,021,0,
-    /*  8778 */ 0270,03,041,01,011,0110,022,0,
-    /*  8786 */ 0270,03,045,01,011,0110,022,0,
-    /*  8794 */ 0270,03,041,01,010,0110,022,0,
-    /*  8802 */ 0270,03,045,01,010,0110,022,0,
-    /*  8810 */ 0261,03,041,01,013,0120,023,0,
-    /*  8818 */ 0260,03,041,01,013,0110,022,0,
-    /*  8826 */ 0261,03,041,01,012,0120,023,0,
-    /*  8834 */ 0260,03,041,01,012,0110,022,0,
-    /*  8842 */ 0261,01,041,01,0306,0120,023,0,
-    /*  8850 */ 0260,01,041,01,0306,0110,022,0,
-    /*  8858 */ 0261,01,045,01,0306,0120,023,0,
-    /*  8866 */ 0260,01,045,01,0306,0110,022,0,
-    /*  8874 */ 0261,01,040,01,0306,0120,023,0,
-    /*  8882 */ 0260,01,040,01,0306,0110,022,0,
-    /*  8890 */ 0261,01,044,01,0306,0120,023,0,
-    /*  8898 */ 0260,01,044,01,0306,0110,022,0,
-    /*  8906 */ 0361,03,017,072,0104,0110,022,0,
-    /*  8914 */ 0261,03,041,01,0104,0120,023,0,
-    /*  8922 */ 0260,03,041,01,0104,0110,022,0,
-    /*  8930 */ 0270,03,05,01,035,0101,022,0,
-    /*  8938 */ 0270,03,01,01,035,0101,022,0,
-    /*  8946 */ 0317,0361,03,017,070,0366,0110,0,
-    /*  8954 */ 0324,0361,03,017,070,0366,0110,0,
-    /*  8962 */ 0317,0333,03,017,070,0366,0110,0,
-    /*  8970 */ 0324,0333,03,017,070,0366,0110,0,
-    /*  8978 */ 0260,0112,0,01,022,0211,042,0,
-    /*  8986 */ 0260,0112,020,01,022,0211,042,0,
-    /*  8994 */ 0260,0112,0,01,022,0210,042,0,
-    /*  9002 */ 0260,0112,020,01,022,0210,042,0,
-    /*  9010 */ 0261,03,01,01,0151,0120,0177,0,
-    /*  9018 */ 0260,03,01,01,0151,0110,0176,0,
-    /*  9026 */ 0261,03,05,01,0151,0120,0177,0,
-    /*  9034 */ 0260,03,05,01,0151,0110,0176,0,
-    /*  9042 */ 0261,03,021,01,0151,0130,0176,0,
-    /*  9050 */ 0260,03,021,01,0151,0120,0175,0,
-    /*  9058 */ 0261,03,025,01,0151,0130,0176,0,
-    /*  9066 */ 0260,03,025,01,0151,0120,0175,0,
-    /*  9074 */ 0261,03,01,01,0150,0120,0177,0,
-    /*  9082 */ 0260,03,01,01,0150,0110,0176,0,
-    /*  9090 */ 0261,03,05,01,0150,0120,0177,0,
-    /*  9098 */ 0260,03,05,01,0150,0110,0176,0,
-    /*  9106 */ 0261,03,021,01,0150,0130,0176,0,
-    /*  9114 */ 0260,03,021,01,0150,0120,0175,0,
-    /*  9122 */ 0261,03,025,01,0150,0130,0176,0,
-    /*  9130 */ 0260,03,025,01,0150,0120,0175,0,
-    /*  9138 */ 0261,03,01,01,0153,0120,0177,0,
-    /*  9146 */ 0260,03,01,01,0153,0110,0176,0,
-    /*  9154 */ 0261,03,021,01,0153,0130,0176,0,
-    /*  9162 */ 0260,03,021,01,0153,0120,0175,0,
-    /*  9170 */ 0261,03,01,01,0152,0120,0177,0,
-    /*  9178 */ 0260,03,01,01,0152,0110,0176,0,
-    /*  9186 */ 0261,03,021,01,0152,0130,0176,0,
-    /*  9194 */ 0260,03,021,01,0152,0120,0175,0,
-    /*  9202 */ 0261,03,01,01,0135,0120,0177,0,
-    /*  9210 */ 0260,03,01,01,0135,0110,0176,0,
-    /*  9218 */ 0261,03,05,01,0135,0120,0177,0,
-    /*  9226 */ 0260,03,05,01,0135,0110,0176,0,
-    /*  9234 */ 0261,03,021,01,0135,0130,0176,0,
-    /*  9242 */ 0260,03,021,01,0135,0120,0175,0,
-    /*  9250 */ 0261,03,025,01,0135,0130,0176,0,
-    /*  9258 */ 0260,03,025,01,0135,0120,0175,0,
-    /*  9266 */ 0261,03,01,01,0134,0120,0177,0,
-    /*  9274 */ 0260,03,01,01,0134,0110,0176,0,
-    /*  9282 */ 0261,03,05,01,0134,0120,0177,0,
-    /*  9290 */ 0260,03,05,01,0134,0110,0176,0,
-    /*  9298 */ 0261,03,021,01,0134,0130,0176,0,
-    /*  9306 */ 0260,03,021,01,0134,0120,0175,0,
-    /*  9314 */ 0261,03,025,01,0134,0130,0176,0,
-    /*  9322 */ 0260,03,025,01,0134,0120,0175,0,
-    /*  9330 */ 0261,03,01,01,0137,0120,0177,0,
-    /*  9338 */ 0260,03,01,01,0137,0110,0176,0,
-    /*  9346 */ 0261,03,05,01,0137,0120,0177,0,
-    /*  9354 */ 0260,03,05,01,0137,0110,0176,0,
-    /*  9362 */ 0261,03,021,01,0137,0130,0176,0,
-    /*  9370 */ 0260,03,021,01,0137,0120,0175,0,
-    /*  9378 */ 0261,03,025,01,0137,0130,0176,0,
-    /*  9386 */ 0260,03,025,01,0137,0120,0175,0,
-    /*  9394 */ 0261,03,01,01,0136,0120,0177,0,
-    /*  9402 */ 0260,03,01,01,0136,0110,0176,0,
-    /*  9410 */ 0261,03,05,01,0136,0120,0177,0,
-    /*  9418 */ 0260,03,05,01,0136,0110,0176,0,
-    /*  9426 */ 0261,03,021,01,0136,0130,0176,0,
-    /*  9434 */ 0260,03,021,01,0136,0120,0175,0,
-    /*  9442 */ 0261,03,025,01,0136,0130,0176,0,
-    /*  9450 */ 0260,03,025,01,0136,0120,0175,0,
-    /*  9458 */ 0261,03,01,01,0155,0120,0177,0,
-    /*  9466 */ 0260,03,01,01,0155,0110,0176,0,
-    /*  9474 */ 0261,03,05,01,0155,0120,0177,0,
-    /*  9482 */ 0260,03,05,01,0155,0110,0176,0,
-    /*  9490 */ 0261,03,021,01,0155,0130,0176,0,
-    /*  9498 */ 0260,03,021,01,0155,0120,0175,0,
-    /*  9506 */ 0261,03,025,01,0155,0130,0176,0,
-    /*  9514 */ 0260,03,025,01,0155,0120,0175,0,
-    /*  9522 */ 0261,03,01,01,0154,0120,0177,0,
-    /*  9530 */ 0260,03,01,01,0154,0110,0176,0,
-    /*  9538 */ 0261,03,05,01,0154,0120,0177,0,
-    /*  9546 */ 0260,03,05,01,0154,0110,0176,0,
-    /*  9554 */ 0261,03,021,01,0154,0130,0176,0,
-    /*  9562 */ 0260,03,021,01,0154,0120,0175,0,
-    /*  9570 */ 0261,03,025,01,0154,0130,0176,0,
-    /*  9578 */ 0260,03,025,01,0154,0120,0175,0,
-    /*  9586 */ 0261,03,01,01,0157,0120,0177,0,
-    /*  9594 */ 0260,03,01,01,0157,0110,0176,0,
-    /*  9602 */ 0261,03,021,01,0157,0130,0176,0,
-    /*  9610 */ 0260,03,021,01,0157,0120,0175,0,
-    /*  9618 */ 0261,03,01,01,0156,0120,0177,0,
-    /*  9626 */ 0260,03,01,01,0156,0110,0176,0,
-    /*  9634 */ 0261,03,021,01,0156,0130,0176,0,
-    /*  9642 */ 0260,03,021,01,0156,0120,0175,0,
-    /*  9650 */ 0261,03,01,01,0171,0120,0177,0,
-    /*  9658 */ 0260,03,01,01,0171,0110,0176,0,
-    /*  9666 */ 0261,03,05,01,0171,0120,0177,0,
-    /*  9674 */ 0260,03,05,01,0171,0110,0176,0,
-    /*  9682 */ 0261,03,021,01,0171,0130,0176,0,
-    /*  9690 */ 0260,03,021,01,0171,0120,0175,0,
-    /*  9698 */ 0261,03,025,01,0171,0130,0176,0,
-    /*  9706 */ 0260,03,025,01,0171,0120,0175,0,
-    /*  9714 */ 0261,03,01,01,0170,0120,0177,0,
-    /*  9722 */ 0260,03,01,01,0170,0110,0176,0,
-    /*  9730 */ 0261,03,05,01,0170,0120,0177,0,
-    /*  9738 */ 0260,03,05,01,0170,0110,0176,0,
-    /*  9746 */ 0261,03,021,01,0170,0130,0176,0,
-    /*  9754 */ 0260,03,021,01,0170,0120,0175,0,
-    /*  9762 */ 0261,03,025,01,0170,0130,0176,0,
-    /*  9770 */ 0260,03,025,01,0170,0120,0175,0,
-    /*  9778 */ 0261,03,01,01,0173,0120,0177,0,
-    /*  9786 */ 0260,03,01,01,0173,0110,0176,0,
-    /*  9794 */ 0261,03,021,01,0173,0130,0176,0,
-    /*  9802 */ 0260,03,021,01,0173,0120,0175,0,
-    /*  9810 */ 0261,03,01,01,0172,0120,0177,0,
-    /*  9818 */ 0260,03,01,01,0172,0110,0176,0,
-    /*  9826 */ 0261,03,021,01,0172,0130,0176,0,
-    /*  9834 */ 0260,03,021,01,0172,0120,0175,0,
-    /*  9842 */ 0261,03,01,01,0175,0120,0177,0,
-    /*  9850 */ 0260,03,01,01,0175,0110,0176,0,
-    /*  9858 */ 0261,03,05,01,0175,0120,0177,0,
-    /*  9866 */ 0260,03,05,01,0175,0110,0176,0,
-    /*  9874 */ 0261,03,021,01,0175,0130,0176,0,
-    /*  9882 */ 0260,03,021,01,0175,0120,0175,0,
-    /*  9890 */ 0261,03,025,01,0175,0130,0176,0,
-    /*  9898 */ 0260,03,025,01,0175,0120,0175,0,
-    /*  9906 */ 0261,03,01,01,0174,0120,0177,0,
-    /*  9914 */ 0260,03,01,01,0174,0110,0176,0,
-    /*  9922 */ 0261,03,05,01,0174,0120,0177,0,
-    /*  9930 */ 0260,03,05,01,0174,0110,0176,0,
-    /*  9938 */ 0261,03,021,01,0174,0130,0176,0,
-    /*  9946 */ 0260,03,021,01,0174,0120,0175,0,
-    /*  9954 */ 0261,03,025,01,0174,0130,0176,0,
-    /*  9962 */ 0260,03,025,01,0174,0120,0175,0,
-    /*  9970 */ 0261,03,01,01,0177,0120,0177,0,
-    /*  9978 */ 0260,03,01,01,0177,0110,0176,0,
-    /*  9986 */ 0261,03,021,01,0177,0130,0176,0,
-    /*  9994 */ 0260,03,021,01,0177,0120,0175,0,
-    /* 10002 */ 0261,03,01,01,0176,0120,0177,0,
-    /* 10010 */ 0260,03,01,01,0176,0110,0176,0,
-    /* 10018 */ 0261,03,021,01,0176,0130,0176,0,
-    /* 10026 */ 0260,03,021,01,0176,0120,0175,0,
-    /* 10034 */ 0261,0110,0,01,0242,0120,0177,0,
-    /* 10042 */ 0260,0110,0,01,0242,0110,0176,0,
-    /* 10050 */ 0261,0110,04,01,0242,0120,0177,0,
-    /* 10058 */ 0260,0110,04,01,0242,0110,0176,0,
-    /* 10066 */ 0261,0110,020,01,0242,0130,0176,0,
-    /* 10074 */ 0260,0110,020,01,0242,0120,0175,0,
-    /* 10082 */ 0261,0110,024,01,0242,0130,0176,0,
-    /* 10090 */ 0260,0110,024,01,0242,0120,0175,0,
-    /* 10098 */ 0261,0110,0,01,0314,0120,023,0,
-    /* 10106 */ 0260,0110,0,01,0314,0110,022,0,
-    /* 10114 */ 0261,0110,0,01,0316,0120,023,0,
-    /* 10122 */ 0260,0110,0,01,0316,0110,022,0,
-    /* 10130 */ 0261,0110,0,01,0317,0120,023,0,
-    /* 10138 */ 0260,0110,0,01,0317,0110,022,0,
-    /* 10146 */ 0261,0110,0,01,0354,0120,023,0,
-    /* 10154 */ 0260,0110,0,01,0354,0110,022,0,
-    /* 10162 */ 0261,0110,0,01,0356,0120,023,0,
-    /* 10170 */ 0260,0110,0,01,0356,0110,022,0,
-    /* 10178 */ 0261,0110,0,01,0357,0120,023,0,
-    /* 10186 */ 0260,0110,0,01,0357,0110,022,0,
-    /* 10194 */ 0261,0110,0,01,0355,0120,023,0,
-    /* 10202 */ 0260,0110,0,01,0355,0110,022,0,
-    /* 10210 */ 0261,0110,0,01,0315,0120,023,0,
-    /* 10218 */ 0260,0110,0,01,0315,0110,022,0,
-    /* 10226 */ 0261,0110,0,01,0236,0120,0177,0,
-    /* 10234 */ 0260,0110,0,01,0236,0110,0176,0,
-    /* 10242 */ 0261,0110,0,01,0237,0120,0177,0,
-    /* 10250 */ 0260,0110,0,01,0237,0110,0176,0,
-    /* 10258 */ 0261,0110,0,01,0227,0120,0177,0,
-    /* 10266 */ 0260,0110,0,01,0227,0110,0176,0,
-    /* 10274 */ 0261,0110,0,01,0216,0120,0177,0,
-    /* 10282 */ 0260,0110,0,01,0216,0110,0176,0,
-    /* 10290 */ 0261,0110,0,01,0217,0120,0177,0,
-    /* 10298 */ 0260,0110,0,01,0217,0110,0176,0,
-    /* 10306 */ 0261,0110,0,01,0207,0120,0177,0,
-    /* 10314 */ 0260,0110,0,01,0207,0110,0176,0,
-    /* 10322 */ 0261,0110,0,01,0206,0120,0177,0,
-    /* 10330 */ 0260,0110,0,01,0206,0110,0176,0,
-    /* 10338 */ 0261,0110,0,01,0205,0120,0177,0,
-    /* 10346 */ 0260,0110,0,01,0205,0110,0176,0,
-    /* 10354 */ 0261,0110,0,01,0226,0120,0177,0,
-    /* 10362 */ 0260,0110,0,01,0226,0110,0176,0,
-    /* 10370 */ 0261,0110,0,01,0225,0120,0177,0,
-    /* 10378 */ 0260,0110,0,01,0225,0110,0176,0,
-    /* 10386 */ 0261,0110,0,01,0246,0120,0177,0,
-    /* 10394 */ 0260,0110,0,01,0246,0110,0176,0,
-    /* 10402 */ 0261,0110,0,01,0266,0120,0177,0,
-    /* 10410 */ 0260,0110,0,01,0266,0110,0176,0,
-    /* 10418 */ 0261,0110,020,01,0243,0130,0176,0,
-    /* 10426 */ 0260,0110,020,01,0243,0120,0175,0,
-    /* 10434 */ 0261,0110,0,01,0243,0120,0177,0,
-    /* 10442 */ 0260,0110,0,01,0243,0110,0176,0,
-    /* 10450 */ 0270,0110,0,01,0300,0110,022,0,
-    /* 10458 */ 0270,0110,0,01,0300,0100,021,0,
-    /* 10466 */ 0270,0110,0,01,0302,0110,022,0,
-    /* 10474 */ 0270,0110,0,01,0302,0100,021,0,
-    /* 10482 */ 0270,0110,0,01,0303,0110,022,0,
-    /* 10490 */ 0270,0110,0,01,0303,0100,021,0,
-    /* 10498 */ 0270,0110,0,01,0301,0110,022,0,
-    /* 10506 */ 0270,0110,0,01,0301,0100,021,0,
-    /* 10514 */ 0261,03,045,01,0102,0120,023,0,
-    /* 10522 */ 0260,03,045,01,0102,0110,022,0,
-    /* 10530 */ 0261,03,045,01,017,0120,023,0,
-    /* 10538 */ 0260,03,045,01,017,0110,022,0,
-    /* 10546 */ 0261,03,045,01,0114,0120,0177,0,
-    /* 10554 */ 0260,03,045,01,0114,0110,0176,0,
-    /* 10562 */ 0261,03,045,01,016,0120,023,0,
-    /* 10570 */ 0260,03,045,01,016,0110,022,0,
-    /* 10578 */ 0270,01,045,01,0160,0110,022,0,
-    /* 10586 */ 0270,01,046,01,0160,0110,022,0,
-    /* 10594 */ 0270,01,047,01,0160,0110,022,0,
-    /* 10602 */ 0260,01,045,01,0163,0217,022,0,
-    /* 10610 */ 0260,01,045,01,0163,0207,021,0,
-    /* 10618 */ 0260,01,045,01,0161,0216,022,0,
-    /* 10626 */ 0260,01,045,01,0161,0206,021,0,
-    /* 10634 */ 0260,01,045,01,0162,0216,022,0,
-    /* 10642 */ 0260,01,045,01,0162,0206,021,0,
-    /* 10650 */ 0260,01,045,01,0163,0216,022,0,
-    /* 10658 */ 0260,01,045,01,0163,0206,021,0,
-    /* 10666 */ 0260,01,045,01,0161,0214,022,0,
-    /* 10674 */ 0260,01,045,01,0161,0204,021,0,
-    /* 10682 */ 0260,01,045,01,0162,0214,022,0,
-    /* 10690 */ 0260,01,045,01,0162,0204,021,0,
-    /* 10698 */ 0260,01,045,01,0163,0213,022,0,
-    /* 10706 */ 0260,01,045,01,0163,0203,021,0,
-    /* 10714 */ 0260,01,045,01,0161,0212,022,0,
-    /* 10722 */ 0260,01,045,01,0161,0202,021,0,
-    /* 10730 */ 0260,01,045,01,0162,0212,022,0,
-    /* 10738 */ 0260,01,045,01,0162,0202,021,0,
-    /* 10746 */ 0260,01,045,01,0163,0212,022,0,
-    /* 10754 */ 0260,01,045,01,0163,0202,021,0,
-    /* 10762 */ 0261,03,01,01,02,0120,023,0,
-    /* 10770 */ 0260,03,01,01,02,0110,022,0,
-    /* 10778 */ 0261,03,05,01,02,0120,023,0,
-    /* 10786 */ 0260,03,05,01,02,0110,022,0,
-    /* 10794 */ 0270,03,025,01,01,0110,022,0,
-    /* 10802 */ 0270,03,025,01,0,0110,022,0,
-    /* 10810 */ 0261,03,05,01,0106,0120,023,0,
-    /* 10818 */ 0260,03,05,01,0106,0110,022,0,
-    /* 10826 */ 0270,03,05,01,071,0101,022,0,
-    /* 10834 */ 0261,03,05,01,070,0120,023,0,
-    /* 10842 */ 0260,03,05,01,070,0110,022,0,
-    /* 10850 */ 0374,0262,02,021,01,0222,0110,0,
-    /* 10858 */ 0374,0262,02,021,01,0223,0110,0,
-    /* 10866 */ 0374,0262,02,025,01,0222,0110,0,
-    /* 10874 */ 0375,0262,02,025,01,0223,0110,0,
-    /* 10882 */ 0374,0262,02,01,01,0222,0110,0,
-    /* 10890 */ 0374,0262,02,01,01,0223,0110,0,
-    /* 10898 */ 0375,0262,02,05,01,0222,0110,0,
-    /* 10906 */ 0375,0262,02,05,01,0223,0110,0,
-    /* 10914 */ 0374,0262,02,01,01,0220,0110,0,
-    /* 10922 */ 0374,0262,02,01,01,0221,0110,0,
-    /* 10930 */ 0375,0262,02,05,01,0220,0110,0,
-    /* 10938 */ 0375,0262,02,05,01,0221,0110,0,
-    /* 10946 */ 0374,0262,02,021,01,0220,0110,0,
-    /* 10954 */ 0374,0262,02,021,01,0221,0110,0,
-    /* 10962 */ 0374,0262,02,025,01,0220,0110,0,
-    /* 10970 */ 0375,0262,02,025,01,0221,0110,0,
-    /* 10978 */ 0270,0112,0,01,020,0110,042,0,
-    /* 10986 */ 0270,0112,020,01,020,0110,042,0,
-    /* 10994 */ 0270,03,03,01,0360,0110,022,0,
-    /* 11002 */ 0270,03,023,01,0360,0110,022,0,
-    /* 11010 */ 0270,03,01,01,062,0110,022,0,
-    /* 11018 */ 0270,03,01,01,063,0110,022,0,
-    /* 11026 */ 0270,03,021,01,063,0110,022,0,
-    /* 11034 */ 0270,03,021,01,062,0110,022,0,
-    /* 11042 */ 0270,03,01,01,060,0110,022,0,
-    /* 11050 */ 0270,03,01,01,061,0110,022,0,
-    /* 11058 */ 0270,03,021,01,061,0110,022,0,
-    /* 11066 */ 0270,03,021,01,060,0110,022,0,
-    /* 11074 */ 0241,0201,021,0301,01,0130,0120,0,
-    /* 11082 */ 0240,0201,021,0301,01,0130,0110,0,
-    /* 11090 */ 0241,0201,025,0301,01,0130,0120,0,
-    /* 11098 */ 0240,0201,025,0301,01,0130,0110,0,
-    /* 11106 */ 0241,0201,031,0301,01,0130,0120,0,
-    /* 11114 */ 0240,0201,031,0301,01,0130,0110,0,
-    /* 11122 */ 0241,0201,0,0301,01,0130,0120,0,
-    /* 11130 */ 0240,0201,0,0301,01,0130,0110,0,
-    /* 11138 */ 0241,0201,04,0301,01,0130,0120,0,
-    /* 11146 */ 0240,0201,04,0301,01,0130,0110,0,
-    /* 11154 */ 0241,0201,010,0301,01,0130,0120,0,
-    /* 11162 */ 0240,0201,010,0301,01,0130,0110,0,
-    /* 11170 */ 0241,0201,023,0306,01,0130,0120,0,
-    /* 11178 */ 0240,0201,023,0306,01,0130,0110,0,
-    /* 11186 */ 0241,0201,02,0306,01,0130,0120,0,
-    /* 11194 */ 0240,0201,02,0306,01,0130,0110,0,
-    /* 11202 */ 0241,0201,021,0301,01,0125,0120,0,
-    /* 11210 */ 0240,0201,021,0301,01,0125,0110,0,
-    /* 11218 */ 0241,0201,025,0301,01,0125,0120,0,
-    /* 11226 */ 0240,0201,025,0301,01,0125,0110,0,
-    /* 11234 */ 0241,0201,031,0301,01,0125,0120,0,
-    /* 11242 */ 0240,0201,031,0301,01,0125,0110,0,
-    /* 11250 */ 0241,0201,0,0301,01,0125,0120,0,
-    /* 11258 */ 0240,0201,0,0301,01,0125,0110,0,
-    /* 11266 */ 0241,0201,04,0301,01,0125,0120,0,
-    /* 11274 */ 0240,0201,04,0301,01,0125,0110,0,
-    /* 11282 */ 0241,0201,010,0301,01,0125,0120,0,
-    /* 11290 */ 0240,0201,010,0301,01,0125,0110,0,
-    /* 11298 */ 0241,0201,021,0301,01,0124,0120,0,
-    /* 11306 */ 0240,0201,021,0301,01,0124,0110,0,
-    /* 11314 */ 0241,0201,025,0301,01,0124,0120,0,
-    /* 11322 */ 0240,0201,025,0301,01,0124,0110,0,
-    /* 11330 */ 0241,0201,031,0301,01,0124,0120,0,
-    /* 11338 */ 0240,0201,031,0301,01,0124,0110,0,
-    /* 11346 */ 0241,0201,0,0301,01,0124,0120,0,
-    /* 11354 */ 0240,0201,0,0301,01,0124,0110,0,
-    /* 11362 */ 0241,0201,04,0301,01,0124,0120,0,
-    /* 11370 */ 0240,0201,04,0301,01,0124,0110,0,
-    /* 11378 */ 0241,0201,010,0301,01,0124,0120,0,
-    /* 11386 */ 0240,0201,010,0301,01,0124,0110,0,
-    /* 11394 */ 0241,0202,021,0301,01,0145,0120,0,
-    /* 11402 */ 0241,0202,025,0301,01,0145,0120,0,
-    /* 11410 */ 0241,0202,031,0301,01,0145,0120,0,
-    /* 11418 */ 0241,0202,01,0301,01,0145,0120,0,
-    /* 11426 */ 0241,0202,05,0301,01,0145,0120,0,
-    /* 11434 */ 0241,0202,011,0301,01,0145,0120,0,
-    /* 11442 */ 0250,0202,05,0311,01,031,0110,0,
-    /* 11450 */ 0250,0202,011,0311,01,031,0110,0,
-    /* 11458 */ 0250,0202,05,0312,01,032,0110,0,
-    /* 11466 */ 0250,0202,011,0312,01,032,0110,0,
-    /* 11474 */ 0250,0202,011,0313,01,033,0110,0,
-    /* 11482 */ 0250,0202,025,0311,01,032,0110,0,
-    /* 11490 */ 0250,0202,031,0311,01,032,0110,0,
-    /* 11498 */ 0250,0202,031,0312,01,033,0110,0,
-    /* 11506 */ 0250,0202,01,0311,01,0131,0110,0,
-    /* 11514 */ 0250,0202,05,0311,01,0131,0110,0,
-    /* 11522 */ 0250,0202,011,0311,01,0131,0110,0,
-    /* 11530 */ 0250,0202,05,0312,01,0132,0110,0,
-    /* 11538 */ 0250,0202,011,0312,01,0132,0110,0,
-    /* 11546 */ 0250,0202,011,0313,01,0133,0110,0,
-    /* 11554 */ 0250,0202,025,0311,01,0132,0110,0,
-    /* 11562 */ 0250,0202,031,0311,01,0132,0110,0,
-    /* 11570 */ 0250,0202,031,0312,01,0133,0110,0,
-    /* 11578 */ 0250,0202,025,0306,01,031,0110,0,
-    /* 11586 */ 0250,0202,031,0306,01,031,0110,0,
-    /* 11594 */ 0250,0202,025,0300,01,031,0110,0,
-    /* 11602 */ 0250,0202,031,0300,01,031,0110,0,
-    /* 11610 */ 0250,0202,01,0306,01,030,0110,0,
-    /* 11618 */ 0250,0202,05,0306,01,030,0110,0,
-    /* 11626 */ 0250,0202,011,0306,01,030,0110,0,
-    /* 11634 */ 0250,0202,01,0300,01,030,0110,0,
-    /* 11642 */ 0250,0202,05,0300,01,030,0110,0,
-    /* 11650 */ 0250,0202,011,0300,01,030,0110,0,
-    /* 11658 */ 0250,0201,021,0306,01,057,0110,0,
-    /* 11666 */ 0250,0201,0,0306,01,057,0110,0,
-    /* 11674 */ 0250,0202,021,0306,01,0212,0101,0,
-    /* 11682 */ 0250,0202,025,0306,01,0212,0101,0,
-    /* 11690 */ 0250,0202,031,0306,01,0212,0101,0,
-    /* 11698 */ 0250,0202,021,0300,01,0212,0101,0,
-    /* 11706 */ 0250,0202,025,0300,01,0212,0101,0,
-    /* 11714 */ 0250,0202,031,0300,01,0212,0101,0,
-    /* 11722 */ 0250,0202,01,0306,01,0212,0101,0,
-    /* 11730 */ 0250,0202,05,0306,01,0212,0101,0,
-    /* 11738 */ 0250,0202,011,0306,01,0212,0101,0,
-    /* 11746 */ 0250,0202,01,0300,01,0212,0101,0,
-    /* 11754 */ 0250,0202,05,0300,01,0212,0101,0,
-    /* 11762 */ 0250,0202,011,0300,01,0212,0101,0,
-    /* 11770 */ 0250,0201,02,0302,01,0346,0110,0,
-    /* 11778 */ 0250,0201,06,0302,01,0346,0110,0,
-    /* 11786 */ 0250,0201,012,0302,01,0346,0110,0,
-    /* 11794 */ 0250,0201,0,0301,01,0133,0110,0,
-    /* 11802 */ 0250,0201,04,0301,01,0133,0110,0,
-    /* 11810 */ 0250,0201,010,0301,01,0133,0110,0,
-    /* 11818 */ 0250,0201,023,0301,01,0346,0110,0,
-    /* 11826 */ 0250,0201,027,0301,01,0346,0110,0,
-    /* 11834 */ 0250,0201,033,0301,01,0346,0110,0,
-    /* 11842 */ 0250,0201,021,0301,01,0132,0110,0,
-    /* 11850 */ 0250,0201,025,0301,01,0132,0110,0,
-    /* 11858 */ 0250,0201,031,0301,01,0132,0110,0,
-    /* 11866 */ 0250,0201,021,0301,01,0173,0110,0,
-    /* 11874 */ 0250,0201,025,0301,01,0173,0110,0,
-    /* 11882 */ 0250,0201,031,0301,01,0173,0110,0,
-    /* 11890 */ 0250,0201,020,0301,01,0171,0110,0,
-    /* 11898 */ 0250,0201,024,0301,01,0171,0110,0,
-    /* 11906 */ 0250,0201,030,0301,01,0171,0110,0,
-    /* 11914 */ 0250,0201,021,0301,01,0171,0110,0,
-    /* 11922 */ 0250,0201,025,0301,01,0171,0110,0,
-    /* 11930 */ 0250,0201,031,0301,01,0171,0110,0,
-    /* 11938 */ 0250,0202,01,0314,01,023,0110,0,
-    /* 11946 */ 0250,0202,05,0314,01,023,0110,0,
-    /* 11954 */ 0250,0202,011,0314,01,023,0110,0,
-    /* 11962 */ 0250,0201,01,0301,01,0133,0110,0,
-    /* 11970 */ 0250,0201,05,0301,01,0133,0110,0,
-    /* 11978 */ 0250,0201,011,0301,01,0133,0110,0,
-    /* 11986 */ 0250,0201,0,0302,01,0132,0110,0,
-    /* 11994 */ 0250,0201,04,0302,01,0132,0110,0,
-    /* 12002 */ 0250,0201,010,0302,01,0132,0110,0,
-    /* 12010 */ 0250,0201,01,0302,01,0173,0110,0,
-    /* 12018 */ 0250,0201,05,0302,01,0173,0110,0,
-    /* 12026 */ 0250,0201,011,0302,01,0173,0110,0,
-    /* 12034 */ 0250,0201,0,0301,01,0171,0110,0,
-    /* 12042 */ 0250,0201,04,0301,01,0171,0110,0,
-    /* 12050 */ 0250,0201,010,0301,01,0171,0110,0,
-    /* 12058 */ 0250,0201,01,0302,01,0171,0110,0,
-    /* 12066 */ 0250,0201,05,0302,01,0171,0110,0,
-    /* 12074 */ 0250,0201,011,0302,01,0171,0110,0,
-    /* 12082 */ 0250,0201,022,0301,01,0346,0110,0,
-    /* 12090 */ 0250,0201,026,0301,01,0346,0110,0,
-    /* 12098 */ 0250,0201,032,0301,01,0346,0110,0,
-    /* 12106 */ 0250,0201,020,0301,01,0133,0110,0,
-    /* 12114 */ 0250,0201,024,0301,01,0133,0110,0,
-    /* 12122 */ 0250,0201,030,0301,01,0133,0110,0,
-    /* 12130 */ 0250,0201,03,0310,01,055,0110,0,
-    /* 12138 */ 0250,0201,023,0310,01,055,0110,0,
-    /* 12146 */ 0241,0201,023,0306,01,0132,0120,0,
-    /* 12154 */ 0250,0201,03,0310,01,0171,0110,0,
-    /* 12162 */ 0250,0201,023,0310,01,0171,0110,0,
-    /* 12170 */ 0241,0201,03,0306,01,052,0120,0,
-    /* 12178 */ 0241,0201,023,0306,01,052,0120,0,
-    /* 12186 */ 0241,0201,02,0306,01,052,0120,0,
-    /* 12194 */ 0241,0201,022,0306,01,052,0120,0,
-    /* 12202 */ 0241,0201,02,0306,01,0132,0120,0,
-    /* 12210 */ 0250,0201,02,0307,01,055,0110,0,
-    /* 12218 */ 0250,0201,022,0307,01,055,0110,0,
-    /* 12226 */ 0250,0201,02,0307,01,0171,0110,0,
-    /* 12234 */ 0250,0201,022,0307,01,0171,0110,0,
-    /* 12242 */ 0250,0201,021,0301,01,0346,0110,0,
-    /* 12250 */ 0250,0201,025,0301,01,0346,0110,0,
-    /* 12258 */ 0250,0201,031,0301,01,0346,0110,0,
-    /* 12266 */ 0250,0201,021,0301,01,0172,0110,0,
-    /* 12274 */ 0250,0201,025,0301,01,0172,0110,0,
-    /* 12282 */ 0250,0201,031,0301,01,0172,0110,0,
-    /* 12290 */ 0250,0201,020,0301,01,0170,0110,0,
-    /* 12298 */ 0250,0201,024,0301,01,0170,0110,0,
-    /* 12306 */ 0250,0201,030,0301,01,0170,0110,0,
-    /* 12314 */ 0250,0201,021,0301,01,0170,0110,0,
-    /* 12322 */ 0250,0201,025,0301,01,0170,0110,0,
-    /* 12330 */ 0250,0201,031,0301,01,0170,0110,0,
-    /* 12338 */ 0250,0201,02,0301,01,0133,0110,0,
-    /* 12346 */ 0250,0201,06,0301,01,0133,0110,0,
-    /* 12354 */ 0250,0201,012,0301,01,0133,0110,0,
-    /* 12362 */ 0250,0201,01,0302,01,0172,0110,0,
-    /* 12370 */ 0250,0201,05,0302,01,0172,0110,0,
-    /* 12378 */ 0250,0201,011,0302,01,0172,0110,0,
-    /* 12386 */ 0250,0201,0,0301,01,0170,0110,0,
-    /* 12394 */ 0250,0201,04,0301,01,0170,0110,0,
-    /* 12402 */ 0250,0201,010,0301,01,0170,0110,0,
-    /* 12410 */ 0250,0201,01,0302,01,0170,0110,0,
-    /* 12418 */ 0250,0201,05,0302,01,0170,0110,0,
-    /* 12426 */ 0250,0201,011,0302,01,0170,0110,0,
-    /* 12434 */ 0250,0201,03,0310,01,054,0110,0,
-    /* 12442 */ 0250,0201,023,0310,01,054,0110,0,
-    /* 12450 */ 0250,0201,03,0310,01,0170,0110,0,
-    /* 12458 */ 0250,0201,023,0310,01,0170,0110,0,
-    /* 12466 */ 0250,0201,02,0307,01,054,0110,0,
-    /* 12474 */ 0250,0201,022,0307,01,054,0110,0,
-    /* 12482 */ 0250,0201,02,0307,01,0170,0110,0,
-    /* 12490 */ 0250,0201,022,0307,01,0170,0110,0,
-    /* 12498 */ 0250,0201,02,0302,01,0172,0110,0,
-    /* 12506 */ 0250,0201,06,0302,01,0172,0110,0,
-    /* 12514 */ 0250,0201,012,0302,01,0172,0110,0,
-    /* 12522 */ 0250,0201,03,0301,01,0172,0110,0,
-    /* 12530 */ 0250,0201,07,0301,01,0172,0110,0,
-    /* 12538 */ 0250,0201,013,0301,01,0172,0110,0,
-    /* 12546 */ 0250,0201,022,0301,01,0172,0110,0,
-    /* 12554 */ 0250,0201,026,0301,01,0172,0110,0,
-    /* 12562 */ 0250,0201,032,0301,01,0172,0110,0,
-    /* 12570 */ 0250,0201,023,0301,01,0172,0110,0,
-    /* 12578 */ 0250,0201,027,0301,01,0172,0110,0,
-    /* 12586 */ 0250,0201,033,0301,01,0172,0110,0,
-    /* 12594 */ 0241,0201,03,0306,01,0173,0120,0,
-    /* 12602 */ 0241,0201,023,0306,01,0173,0120,0,
-    /* 12610 */ 0241,0201,02,0306,01,0173,0120,0,
-    /* 12618 */ 0241,0201,022,0306,01,0173,0120,0,
-    /* 12626 */ 0241,0201,021,0301,01,0136,0120,0,
-    /* 12634 */ 0240,0201,021,0301,01,0136,0110,0,
-    /* 12642 */ 0241,0201,025,0301,01,0136,0120,0,
-    /* 12650 */ 0240,0201,025,0301,01,0136,0110,0,
-    /* 12658 */ 0241,0201,031,0301,01,0136,0120,0,
-    /* 12666 */ 0240,0201,031,0301,01,0136,0110,0,
-    /* 12674 */ 0241,0201,0,0301,01,0136,0120,0,
-    /* 12682 */ 0240,0201,0,0301,01,0136,0110,0,
-    /* 12690 */ 0241,0201,04,0301,01,0136,0120,0,
-    /* 12698 */ 0240,0201,04,0301,01,0136,0110,0,
-    /* 12706 */ 0241,0201,010,0301,01,0136,0120,0,
-    /* 12714 */ 0240,0201,010,0301,01,0136,0110,0,
-    /* 12722 */ 0241,0201,023,0306,01,0136,0120,0,
-    /* 12730 */ 0240,0201,023,0306,01,0136,0110,0,
-    /* 12738 */ 0241,0201,02,0306,01,0136,0120,0,
-    /* 12746 */ 0240,0201,02,0306,01,0136,0110,0,
-    /* 12754 */ 0250,0202,031,0301,01,0310,0110,0,
-    /* 12762 */ 0250,0202,011,0301,01,0310,0110,0,
-    /* 12770 */ 0250,0202,021,0306,01,0210,0110,0,
-    /* 12778 */ 0250,0202,025,0306,01,0210,0110,0,
-    /* 12786 */ 0250,0202,031,0306,01,0210,0110,0,
-    /* 12794 */ 0250,0202,01,0306,01,0210,0110,0,
-    /* 12802 */ 0250,0202,05,0306,01,0210,0110,0,
-    /* 12810 */ 0250,0202,011,0306,01,0210,0110,0,
-    /* 12818 */ 0241,0202,021,0301,01,0230,0120,0,
-    /* 12826 */ 0241,0202,025,0301,01,0230,0120,0,
-    /* 12834 */ 0241,0202,031,0301,01,0230,0120,0,
-    /* 12842 */ 0241,0202,01,0301,01,0230,0120,0,
-    /* 12850 */ 0241,0202,05,0301,01,0230,0120,0,
-    /* 12858 */ 0241,0202,011,0301,01,0230,0120,0,
-    /* 12866 */ 0241,0202,021,0306,01,0231,0120,0,
-    /* 12874 */ 0241,0202,01,0306,01,0231,0120,0,
-    /* 12882 */ 0241,0202,021,0301,01,0250,0120,0,
-    /* 12890 */ 0241,0202,025,0301,01,0250,0120,0,
-    /* 12898 */ 0241,0202,031,0301,01,0250,0120,0,
-    /* 12906 */ 0241,0202,01,0301,01,0250,0120,0,
-    /* 12914 */ 0241,0202,05,0301,01,0250,0120,0,
-    /* 12922 */ 0241,0202,011,0301,01,0250,0120,0,
-    /* 12930 */ 0241,0202,021,0306,01,0251,0120,0,
-    /* 12938 */ 0241,0202,01,0306,01,0251,0120,0,
-    /* 12946 */ 0241,0202,021,0301,01,0270,0120,0,
-    /* 12954 */ 0241,0202,025,0301,01,0270,0120,0,
-    /* 12962 */ 0241,0202,031,0301,01,0270,0120,0,
-    /* 12970 */ 0241,0202,01,0301,01,0270,0120,0,
-    /* 12978 */ 0241,0202,05,0301,01,0270,0120,0,
-    /* 12986 */ 0241,0202,011,0301,01,0270,0120,0,
-    /* 12994 */ 0241,0202,021,0306,01,0271,0120,0,
-    /* 13002 */ 0241,0202,01,0306,01,0271,0120,0,
-    /* 13010 */ 0241,0202,021,0301,01,0226,0120,0,
-    /* 13018 */ 0241,0202,025,0301,01,0226,0120,0,
-    /* 13026 */ 0241,0202,031,0301,01,0226,0120,0,
-    /* 13034 */ 0241,0202,01,0301,01,0226,0120,0,
-    /* 13042 */ 0241,0202,05,0301,01,0226,0120,0,
-    /* 13050 */ 0241,0202,011,0301,01,0226,0120,0,
-    /* 13058 */ 0241,0202,021,0301,01,0246,0120,0,
-    /* 13066 */ 0241,0202,025,0301,01,0246,0120,0,
-    /* 13074 */ 0241,0202,031,0301,01,0246,0120,0,
-    /* 13082 */ 0241,0202,01,0301,01,0246,0120,0,
-    /* 13090 */ 0241,0202,05,0301,01,0246,0120,0,
-    /* 13098 */ 0241,0202,011,0301,01,0246,0120,0,
-    /* 13106 */ 0241,0202,021,0301,01,0266,0120,0,
-    /* 13114 */ 0241,0202,025,0301,01,0266,0120,0,
-    /* 13122 */ 0241,0202,031,0301,01,0266,0120,0,
-    /* 13130 */ 0241,0202,01,0301,01,0266,0120,0,
-    /* 13138 */ 0241,0202,05,0301,01,0266,0120,0,
-    /* 13146 */ 0241,0202,011,0301,01,0266,0120,0,
-    /* 13154 */ 0241,0202,021,0301,01,0232,0120,0,
-    /* 13162 */ 0241,0202,025,0301,01,0232,0120,0,
-    /* 13170 */ 0241,0202,031,0301,01,0232,0120,0,
-    /* 13178 */ 0241,0202,01,0301,01,0232,0120,0,
-    /* 13186 */ 0241,0202,05,0301,01,0232,0120,0,
-    /* 13194 */ 0241,0202,011,0301,01,0232,0120,0,
-    /* 13202 */ 0241,0202,021,0306,01,0233,0120,0,
-    /* 13210 */ 0241,0202,01,0306,01,0233,0120,0,
-    /* 13218 */ 0241,0202,021,0301,01,0252,0120,0,
-    /* 13226 */ 0241,0202,025,0301,01,0252,0120,0,
-    /* 13234 */ 0241,0202,031,0301,01,0252,0120,0,
-    /* 13242 */ 0241,0202,01,0301,01,0252,0120,0,
-    /* 13250 */ 0241,0202,05,0301,01,0252,0120,0,
-    /* 13258 */ 0241,0202,011,0301,01,0252,0120,0,
-    /* 13266 */ 0241,0202,021,0306,01,0253,0120,0,
-    /* 13274 */ 0241,0202,01,0306,01,0253,0120,0,
-    /* 13282 */ 0241,0202,021,0301,01,0272,0120,0,
-    /* 13290 */ 0241,0202,025,0301,01,0272,0120,0,
-    /* 13298 */ 0241,0202,031,0301,01,0272,0120,0,
-    /* 13306 */ 0241,0202,01,0301,01,0272,0120,0,
-    /* 13314 */ 0241,0202,05,0301,01,0272,0120,0,
-    /* 13322 */ 0241,0202,011,0301,01,0272,0120,0,
-    /* 13330 */ 0241,0202,021,0306,01,0273,0120,0,
-    /* 13338 */ 0241,0202,01,0306,01,0273,0120,0,
-    /* 13346 */ 0241,0202,021,0301,01,0227,0120,0,
-    /* 13354 */ 0241,0202,025,0301,01,0227,0120,0,
-    /* 13362 */ 0241,0202,031,0301,01,0227,0120,0,
-    /* 13370 */ 0241,0202,01,0301,01,0227,0120,0,
-    /* 13378 */ 0241,0202,05,0301,01,0227,0120,0,
-    /* 13386 */ 0241,0202,011,0301,01,0227,0120,0,
-    /* 13394 */ 0241,0202,021,0301,01,0247,0120,0,
-    /* 13402 */ 0241,0202,025,0301,01,0247,0120,0,
-    /* 13410 */ 0241,0202,031,0301,01,0247,0120,0,
-    /* 13418 */ 0241,0202,01,0301,01,0247,0120,0,
-    /* 13426 */ 0241,0202,05,0301,01,0247,0120,0,
-    /* 13434 */ 0241,0202,011,0301,01,0247,0120,0,
-    /* 13442 */ 0241,0202,021,0301,01,0267,0120,0,
-    /* 13450 */ 0241,0202,025,0301,01,0267,0120,0,
-    /* 13458 */ 0241,0202,031,0301,01,0267,0120,0,
-    /* 13466 */ 0241,0202,01,0301,01,0267,0120,0,
-    /* 13474 */ 0241,0202,05,0301,01,0267,0120,0,
-    /* 13482 */ 0241,0202,011,0301,01,0267,0120,0,
-    /* 13490 */ 0241,0202,021,0301,01,0234,0120,0,
-    /* 13498 */ 0241,0202,025,0301,01,0234,0120,0,
-    /* 13506 */ 0241,0202,031,0301,01,0234,0120,0,
-    /* 13514 */ 0241,0202,01,0301,01,0234,0120,0,
-    /* 13522 */ 0241,0202,05,0301,01,0234,0120,0,
-    /* 13530 */ 0241,0202,011,0301,01,0234,0120,0,
-    /* 13538 */ 0241,0202,021,0306,01,0235,0120,0,
-    /* 13546 */ 0241,0202,01,0306,01,0235,0120,0,
-    /* 13554 */ 0241,0202,021,0301,01,0254,0120,0,
-    /* 13562 */ 0241,0202,025,0301,01,0254,0120,0,
-    /* 13570 */ 0241,0202,031,0301,01,0254,0120,0,
-    /* 13578 */ 0241,0202,01,0301,01,0254,0120,0,
-    /* 13586 */ 0241,0202,05,0301,01,0254,0120,0,
-    /* 13594 */ 0241,0202,011,0301,01,0254,0120,0,
-    /* 13602 */ 0241,0202,021,0306,01,0255,0120,0,
-    /* 13610 */ 0241,0202,01,0306,01,0255,0120,0,
-    /* 13618 */ 0241,0202,021,0301,01,0274,0120,0,
-    /* 13626 */ 0241,0202,025,0301,01,0274,0120,0,
-    /* 13634 */ 0241,0202,031,0301,01,0274,0120,0,
-    /* 13642 */ 0241,0202,01,0301,01,0274,0120,0,
-    /* 13650 */ 0241,0202,05,0301,01,0274,0120,0,
-    /* 13658 */ 0241,0202,011,0301,01,0274,0120,0,
-    /* 13666 */ 0241,0202,021,0306,01,0275,0120,0,
-    /* 13674 */ 0241,0202,01,0306,01,0275,0120,0,
-    /* 13682 */ 0241,0202,021,0301,01,0236,0120,0,
-    /* 13690 */ 0241,0202,025,0301,01,0236,0120,0,
-    /* 13698 */ 0241,0202,031,0301,01,0236,0120,0,
-    /* 13706 */ 0241,0202,01,0301,01,0236,0120,0,
-    /* 13714 */ 0241,0202,05,0301,01,0236,0120,0,
-    /* 13722 */ 0241,0202,011,0301,01,0236,0120,0,
-    /* 13730 */ 0241,0202,021,0306,01,0237,0120,0,
-    /* 13738 */ 0241,0202,01,0306,01,0237,0120,0,
-    /* 13746 */ 0241,0202,021,0301,01,0256,0120,0,
-    /* 13754 */ 0241,0202,025,0301,01,0256,0120,0,
-    /* 13762 */ 0241,0202,031,0301,01,0256,0120,0,
-    /* 13770 */ 0241,0202,01,0301,01,0256,0120,0,
-    /* 13778 */ 0241,0202,05,0301,01,0256,0120,0,
-    /* 13786 */ 0241,0202,011,0301,01,0256,0120,0,
-    /* 13794 */ 0241,0202,021,0306,01,0257,0120,0,
-    /* 13802 */ 0241,0202,01,0306,01,0257,0120,0,
-    /* 13810 */ 0241,0202,021,0301,01,0276,0120,0,
-    /* 13818 */ 0241,0202,025,0301,01,0276,0120,0,
-    /* 13826 */ 0241,0202,031,0301,01,0276,0120,0,
-    /* 13834 */ 0241,0202,01,0301,01,0276,0120,0,
-    /* 13842 */ 0241,0202,05,0301,01,0276,0120,0,
-    /* 13850 */ 0241,0202,011,0301,01,0276,0120,0,
-    /* 13858 */ 0241,0202,021,0306,01,0277,0120,0,
-    /* 13866 */ 0241,0202,01,0306,01,0277,0120,0,
-    /* 13874 */ 0250,0202,021,0301,01,0102,0110,0,
-    /* 13882 */ 0250,0202,025,0301,01,0102,0110,0,
-    /* 13890 */ 0250,0202,031,0301,01,0102,0110,0,
-    /* 13898 */ 0250,0202,01,0301,01,0102,0110,0,
-    /* 13906 */ 0250,0202,05,0301,01,0102,0110,0,
-    /* 13914 */ 0250,0202,011,0301,01,0102,0110,0,
-    /* 13922 */ 0241,0202,021,0306,01,0103,0120,0,
-    /* 13930 */ 0241,0202,01,0306,01,0103,0120,0,
-    /* 13938 */ 0241,0201,021,0301,01,0137,0120,0,
-    /* 13946 */ 0240,0201,021,0301,01,0137,0110,0,
-    /* 13954 */ 0241,0201,025,0301,01,0137,0120,0,
-    /* 13962 */ 0240,0201,025,0301,01,0137,0110,0,
-    /* 13970 */ 0241,0201,031,0301,01,0137,0120,0,
-    /* 13978 */ 0240,0201,031,0301,01,0137,0110,0,
-    /* 13986 */ 0241,0201,0,0301,01,0137,0120,0,
-    /* 13994 */ 0240,0201,0,0301,01,0137,0110,0,
-    /* 14002 */ 0241,0201,04,0301,01,0137,0120,0,
-    /* 14010 */ 0240,0201,04,0301,01,0137,0110,0,
-    /* 14018 */ 0241,0201,010,0301,01,0137,0120,0,
-    /* 14026 */ 0240,0201,010,0301,01,0137,0110,0,
-    /* 14034 */ 0241,0201,023,0306,01,0137,0120,0,
-    /* 14042 */ 0240,0201,023,0306,01,0137,0110,0,
-    /* 14050 */ 0241,0201,02,0306,01,0137,0120,0,
-    /* 14058 */ 0240,0201,02,0306,01,0137,0110,0,
-    /* 14066 */ 0241,0201,021,0301,01,0135,0120,0,
-    /* 14074 */ 0240,0201,021,0301,01,0135,0110,0,
-    /* 14082 */ 0241,0201,025,0301,01,0135,0120,0,
-    /* 14090 */ 0240,0201,025,0301,01,0135,0110,0,
-    /* 14098 */ 0241,0201,031,0301,01,0135,0120,0,
-    /* 14106 */ 0240,0201,031,0301,01,0135,0110,0,
-    /* 14114 */ 0241,0201,0,0301,01,0135,0120,0,
-    /* 14122 */ 0240,0201,0,0301,01,0135,0110,0,
-    /* 14130 */ 0241,0201,04,0301,01,0135,0120,0,
-    /* 14138 */ 0240,0201,04,0301,01,0135,0110,0,
-    /* 14146 */ 0241,0201,010,0301,01,0135,0120,0,
-    /* 14154 */ 0240,0201,010,0301,01,0135,0110,0,
-    /* 14162 */ 0241,0201,023,0306,01,0135,0120,0,
-    /* 14170 */ 0240,0201,023,0306,01,0135,0110,0,
-    /* 14178 */ 0241,0201,02,0306,01,0135,0120,0,
-    /* 14186 */ 0240,0201,02,0306,01,0135,0110,0,
-    /* 14194 */ 0250,0201,021,0303,01,050,0110,0,
-    /* 14202 */ 0250,0201,025,0303,01,050,0110,0,
-    /* 14210 */ 0250,0201,031,0303,01,050,0110,0,
-    /* 14218 */ 0250,0201,021,0300,01,051,0101,0,
-    /* 14226 */ 0250,0201,025,0300,01,051,0101,0,
-    /* 14234 */ 0250,0201,031,0300,01,051,0101,0,
-    /* 14242 */ 0250,0201,021,0303,01,051,0101,0,
-    /* 14250 */ 0250,0201,025,0303,01,051,0101,0,
-    /* 14258 */ 0250,0201,031,0303,01,051,0101,0,
-    /* 14266 */ 0250,0201,0,0303,01,050,0110,0,
-    /* 14274 */ 0250,0201,04,0303,01,050,0110,0,
-    /* 14282 */ 0250,0201,010,0303,01,050,0110,0,
-    /* 14290 */ 0250,0201,0,0300,01,051,0101,0,
-    /* 14298 */ 0250,0201,04,0300,01,051,0101,0,
-    /* 14306 */ 0250,0201,010,0300,01,051,0101,0,
-    /* 14314 */ 0250,0201,0,0303,01,051,0101,0,
-    /* 14322 */ 0250,0201,04,0303,01,051,0101,0,
-    /* 14330 */ 0250,0201,010,0303,01,051,0101,0,
-    /* 14338 */ 0250,0201,01,0306,01,0156,0110,0,
-    /* 14346 */ 0250,0201,01,0306,01,0176,0101,0,
-    /* 14354 */ 0250,0201,023,0320,01,022,0110,0,
-    /* 14362 */ 0250,0201,027,0320,01,022,0110,0,
-    /* 14370 */ 0250,0201,033,0320,01,022,0110,0,
-    /* 14378 */ 0250,0201,01,0303,01,0157,0110,0,
-    /* 14386 */ 0250,0201,05,0303,01,0157,0110,0,
-    /* 14394 */ 0250,0201,011,0303,01,0157,0110,0,
-    /* 14402 */ 0250,0201,01,0300,01,0177,0101,0,
-    /* 14410 */ 0250,0201,05,0300,01,0177,0101,0,
-    /* 14418 */ 0250,0201,011,0300,01,0177,0101,0,
-    /* 14426 */ 0250,0201,01,0303,01,0177,0101,0,
-    /* 14434 */ 0250,0201,05,0303,01,0177,0101,0,
-    /* 14442 */ 0250,0201,011,0303,01,0177,0101,0,
-    /* 14450 */ 0250,0201,021,0303,01,0157,0110,0,
-    /* 14458 */ 0250,0201,025,0303,01,0157,0110,0,
-    /* 14466 */ 0250,0201,031,0303,01,0157,0110,0,
-    /* 14474 */ 0250,0201,021,0300,01,0177,0101,0,
-    /* 14482 */ 0250,0201,025,0300,01,0177,0101,0,
-    /* 14490 */ 0250,0201,031,0300,01,0177,0101,0,
-    /* 14498 */ 0250,0201,021,0303,01,0177,0101,0,
-    /* 14506 */ 0250,0201,025,0303,01,0177,0101,0,
-    /* 14514 */ 0250,0201,031,0303,01,0177,0101,0,
-    /* 14522 */ 0250,0201,023,0303,01,0157,0110,0,
-    /* 14530 */ 0250,0201,027,0303,01,0157,0110,0,
-    /* 14538 */ 0250,0201,033,0303,01,0157,0110,0,
-    /* 14546 */ 0250,0201,023,0300,01,0177,0101,0,
-    /* 14554 */ 0250,0201,027,0300,01,0177,0101,0,
-    /* 14562 */ 0250,0201,033,0300,01,0177,0101,0,
-    /* 14570 */ 0250,0201,023,0303,01,0177,0101,0,
-    /* 14578 */ 0250,0201,027,0303,01,0177,0101,0,
-    /* 14586 */ 0250,0201,033,0303,01,0177,0101,0,
-    /* 14594 */ 0250,0201,02,0303,01,0157,0110,0,
-    /* 14602 */ 0250,0201,06,0303,01,0157,0110,0,
-    /* 14610 */ 0250,0201,012,0303,01,0157,0110,0,
-    /* 14618 */ 0250,0201,02,0300,01,0177,0101,0,
-    /* 14626 */ 0250,0201,06,0300,01,0177,0101,0,
-    /* 14634 */ 0250,0201,012,0300,01,0177,0101,0,
-    /* 14642 */ 0250,0201,02,0303,01,0177,0101,0,
-    /* 14650 */ 0250,0201,06,0303,01,0177,0101,0,
-    /* 14658 */ 0250,0201,012,0303,01,0177,0101,0,
-    /* 14666 */ 0250,0201,022,0303,01,0157,0110,0,
-    /* 14674 */ 0250,0201,026,0303,01,0157,0110,0,
-    /* 14682 */ 0250,0201,032,0303,01,0157,0110,0,
-    /* 14690 */ 0250,0201,022,0300,01,0177,0101,0,
-    /* 14698 */ 0250,0201,026,0300,01,0177,0101,0,
-    /* 14706 */ 0250,0201,032,0300,01,0177,0101,0,
-    /* 14714 */ 0250,0201,022,0303,01,0177,0101,0,
-    /* 14722 */ 0250,0201,026,0303,01,0177,0101,0,
-    /* 14730 */ 0250,0201,032,0303,01,0177,0101,0,
-    /* 14738 */ 0250,0201,03,0303,01,0157,0110,0,
-    /* 14746 */ 0250,0201,07,0303,01,0157,0110,0,
-    /* 14754 */ 0250,0201,013,0303,01,0157,0110,0,
-    /* 14762 */ 0250,0201,03,0300,01,0177,0101,0,
-    /* 14770 */ 0250,0201,07,0300,01,0177,0101,0,
-    /* 14778 */ 0250,0201,013,0300,01,0177,0101,0,
-    /* 14786 */ 0250,0201,03,0303,01,0177,0101,0,
-    /* 14794 */ 0250,0201,07,0303,01,0177,0101,0,
-    /* 14802 */ 0250,0201,013,0303,01,0177,0101,0,
-    /* 14810 */ 0241,0201,0,0300,01,022,0120,0,
-    /* 14818 */ 0240,0201,0,0300,01,022,0110,0,
-    /* 14826 */ 0241,0201,021,0306,01,026,0120,0,
-    /* 14834 */ 0240,0201,021,0306,01,026,0110,0,
-    /* 14842 */ 0250,0201,021,0306,01,027,0101,0,
-    /* 14850 */ 0241,0201,0,0311,01,026,0120,0,
-    /* 14858 */ 0240,0201,0,0311,01,026,0110,0,
-    /* 14866 */ 0250,0201,0,0311,01,027,0101,0,
-    /* 14874 */ 0241,0201,0,0300,01,026,0120,0,
-    /* 14882 */ 0240,0201,0,0300,01,026,0110,0,
-    /* 14890 */ 0241,0201,021,0306,01,022,0120,0,
-    /* 14898 */ 0240,0201,021,0306,01,022,0110,0,
-    /* 14906 */ 0250,0201,021,0306,01,023,0101,0,
-    /* 14914 */ 0241,0201,0,0311,01,022,0120,0,
-    /* 14922 */ 0240,0201,0,0311,01,022,0110,0,
-    /* 14930 */ 0250,0201,0,0311,01,023,0101,0,
-    /* 14938 */ 0250,0201,01,0303,01,0347,0101,0,
-    /* 14946 */ 0250,0201,05,0303,01,0347,0101,0,
-    /* 14954 */ 0250,0201,011,0303,01,0347,0101,0,
-    /* 14962 */ 0250,0202,01,0303,01,052,0110,0,
-    /* 14970 */ 0250,0202,05,0303,01,052,0110,0,
-    /* 14978 */ 0250,0202,011,0303,01,052,0110,0,
-    /* 14986 */ 0250,0201,021,0303,01,053,0101,0,
-    /* 14994 */ 0250,0201,025,0303,01,053,0101,0,
-    /* 15002 */ 0250,0201,031,0303,01,053,0101,0,
-    /* 15010 */ 0250,0201,0,0303,01,053,0101,0,
-    /* 15018 */ 0250,0201,04,0303,01,053,0101,0,
-    /* 15026 */ 0250,0201,010,0303,01,053,0101,0,
-    /* 15034 */ 0250,0201,021,0306,01,0156,0110,0,
-    /* 15042 */ 0250,0201,021,0306,01,0176,0101,0,
-    /* 15050 */ 0250,0201,022,0306,01,0176,0110,0,
-    /* 15058 */ 0250,0201,021,0306,01,0326,0101,0,
-    /* 15066 */ 0250,0201,023,0306,01,020,0110,0,
-    /* 15074 */ 0250,0201,023,0306,01,021,0101,0,
-    /* 15082 */ 0241,0201,023,0300,01,020,0120,0,
-    /* 15090 */ 0240,0201,023,0300,01,020,0110,0,
-    /* 15098 */ 0241,0201,023,0300,01,021,0102,0,
-    /* 15106 */ 0240,0201,023,0300,01,021,0101,0,
-    /* 15114 */ 0250,0201,02,0303,01,026,0110,0,
-    /* 15122 */ 0250,0201,06,0303,01,026,0110,0,
-    /* 15130 */ 0250,0201,012,0303,01,026,0110,0,
-    /* 15138 */ 0250,0201,02,0303,01,022,0110,0,
-    /* 15146 */ 0250,0201,06,0303,01,022,0110,0,
-    /* 15154 */ 0250,0201,012,0303,01,022,0110,0,
-    /* 15162 */ 0250,0201,02,0306,01,020,0110,0,
-    /* 15170 */ 0250,0201,02,0306,01,021,0101,0,
-    /* 15178 */ 0241,0201,02,0300,01,020,0120,0,
-    /* 15186 */ 0240,0201,02,0300,01,020,0110,0,
-    /* 15194 */ 0241,0201,02,0300,01,021,0102,0,
-    /* 15202 */ 0240,0201,02,0300,01,021,0101,0,
-    /* 15210 */ 0250,0201,021,0303,01,020,0110,0,
-    /* 15218 */ 0250,0201,025,0303,01,020,0110,0,
-    /* 15226 */ 0250,0201,031,0303,01,020,0110,0,
-    /* 15234 */ 0250,0201,021,0300,01,021,0101,0,
-    /* 15242 */ 0250,0201,025,0300,01,021,0101,0,
-    /* 15250 */ 0250,0201,031,0300,01,021,0101,0,
-    /* 15258 */ 0250,0201,021,0303,01,021,0101,0,
-    /* 15266 */ 0250,0201,025,0303,01,021,0101,0,
-    /* 15274 */ 0250,0201,031,0303,01,021,0101,0,
-    /* 15282 */ 0250,0201,0,0303,01,020,0110,0,
-    /* 15290 */ 0250,0201,04,0303,01,020,0110,0,
-    /* 15298 */ 0250,0201,010,0303,01,020,0110,0,
-    /* 15306 */ 0250,0201,0,0300,01,021,0101,0,
-    /* 15314 */ 0250,0201,04,0300,01,021,0101,0,
-    /* 15322 */ 0250,0201,010,0300,01,021,0101,0,
-    /* 15330 */ 0250,0201,0,0303,01,021,0101,0,
-    /* 15338 */ 0250,0201,04,0303,01,021,0101,0,
-    /* 15346 */ 0250,0201,010,0303,01,021,0101,0,
-    /* 15354 */ 0241,0201,021,0301,01,0131,0120,0,
-    /* 15362 */ 0240,0201,021,0301,01,0131,0110,0,
-    /* 15370 */ 0241,0201,025,0301,01,0131,0120,0,
-    /* 15378 */ 0240,0201,025,0301,01,0131,0110,0,
-    /* 15386 */ 0241,0201,031,0301,01,0131,0120,0,
-    /* 15394 */ 0240,0201,031,0301,01,0131,0110,0,
-    /* 15402 */ 0241,0201,0,0301,01,0131,0120,0,
-    /* 15410 */ 0240,0201,0,0301,01,0131,0110,0,
-    /* 15418 */ 0241,0201,04,0301,01,0131,0120,0,
-    /* 15426 */ 0240,0201,04,0301,01,0131,0110,0,
-    /* 15434 */ 0241,0201,010,0301,01,0131,0120,0,
-    /* 15442 */ 0240,0201,010,0301,01,0131,0110,0,
-    /* 15450 */ 0241,0201,023,0306,01,0131,0120,0,
-    /* 15458 */ 0240,0201,023,0306,01,0131,0110,0,
-    /* 15466 */ 0241,0201,02,0306,01,0131,0120,0,
-    /* 15474 */ 0240,0201,02,0306,01,0131,0110,0,
-    /* 15482 */ 0241,0201,021,0301,01,0126,0120,0,
-    /* 15490 */ 0240,0201,021,0301,01,0126,0110,0,
-    /* 15498 */ 0241,0201,025,0301,01,0126,0120,0,
-    /* 15506 */ 0240,0201,025,0301,01,0126,0110,0,
-    /* 15514 */ 0241,0201,031,0301,01,0126,0120,0,
-    /* 15522 */ 0240,0201,031,0301,01,0126,0110,0,
-    /* 15530 */ 0241,0201,0,0301,01,0126,0120,0,
-    /* 15538 */ 0240,0201,0,0301,01,0126,0110,0,
-    /* 15546 */ 0241,0201,04,0301,01,0126,0120,0,
-    /* 15554 */ 0240,0201,04,0301,01,0126,0110,0,
-    /* 15562 */ 0241,0201,010,0301,01,0126,0120,0,
-    /* 15570 */ 0240,0201,010,0301,01,0126,0110,0,
-    /* 15578 */ 0250,0202,041,0303,01,034,0110,0,
-    /* 15586 */ 0250,0202,045,0303,01,034,0110,0,
-    /* 15594 */ 0250,0202,051,0303,01,034,0110,0,
-    /* 15602 */ 0250,0202,01,0301,01,036,0110,0,
-    /* 15610 */ 0250,0202,05,0301,01,036,0110,0,
-    /* 15618 */ 0250,0202,011,0301,01,036,0110,0,
-    /* 15626 */ 0250,0202,021,0301,01,037,0110,0,
-    /* 15634 */ 0250,0202,025,0301,01,037,0110,0,
-    /* 15642 */ 0250,0202,031,0301,01,037,0110,0,
-    /* 15650 */ 0250,0202,041,0303,01,035,0110,0,
-    /* 15658 */ 0250,0202,045,0303,01,035,0110,0,
-    /* 15666 */ 0250,0202,051,0303,01,035,0110,0,
-    /* 15674 */ 0241,0201,01,0301,01,0153,0120,0,
-    /* 15682 */ 0240,0201,01,0301,01,0153,0110,0,
-    /* 15690 */ 0241,0201,05,0301,01,0153,0120,0,
-    /* 15698 */ 0240,0201,05,0301,01,0153,0110,0,
-    /* 15706 */ 0241,0201,011,0301,01,0153,0120,0,
-    /* 15714 */ 0240,0201,011,0301,01,0153,0110,0,
-    /* 15722 */ 0241,0201,041,0303,01,0143,0120,0,
-    /* 15730 */ 0240,0201,041,0303,01,0143,0110,0,
-    /* 15738 */ 0241,0201,045,0303,01,0143,0120,0,
-    /* 15746 */ 0240,0201,045,0303,01,0143,0110,0,
-    /* 15754 */ 0241,0201,051,0303,01,0143,0120,0,
-    /* 15762 */ 0240,0201,051,0303,01,0143,0110,0,
-    /* 15770 */ 0241,0202,01,0301,01,053,0120,0,
-    /* 15778 */ 0240,0202,01,0301,01,053,0110,0,
-    /* 15786 */ 0241,0202,05,0301,01,053,0120,0,
-    /* 15794 */ 0240,0202,05,0301,01,053,0110,0,
-    /* 15802 */ 0241,0202,011,0301,01,053,0120,0,
-    /* 15810 */ 0240,0202,011,0301,01,053,0110,0,
-    /* 15818 */ 0241,0201,041,0303,01,0147,0120,0,
-    /* 15826 */ 0240,0201,041,0303,01,0147,0110,0,
-    /* 15834 */ 0241,0201,045,0303,01,0147,0120,0,
-    /* 15842 */ 0240,0201,045,0303,01,0147,0110,0,
-    /* 15850 */ 0241,0201,051,0303,01,0147,0120,0,
-    /* 15858 */ 0240,0201,051,0303,01,0147,0110,0,
-    /* 15866 */ 0241,0201,041,0303,01,0374,0120,0,
-    /* 15874 */ 0240,0201,041,0303,01,0374,0110,0,
-    /* 15882 */ 0241,0201,045,0303,01,0374,0120,0,
-    /* 15890 */ 0240,0201,045,0303,01,0374,0110,0,
-    /* 15898 */ 0241,0201,051,0303,01,0374,0120,0,
-    /* 15906 */ 0240,0201,051,0303,01,0374,0110,0,
-    /* 15914 */ 0241,0201,01,0301,01,0376,0120,0,
-    /* 15922 */ 0240,0201,01,0301,01,0376,0110,0,
-    /* 15930 */ 0241,0201,05,0301,01,0376,0120,0,
-    /* 15938 */ 0240,0201,05,0301,01,0376,0110,0,
-    /* 15946 */ 0241,0201,011,0301,01,0376,0120,0,
-    /* 15954 */ 0240,0201,011,0301,01,0376,0110,0,
-    /* 15962 */ 0241,0201,021,0301,01,0324,0120,0,
-    /* 15970 */ 0240,0201,021,0301,01,0324,0110,0,
-    /* 15978 */ 0241,0201,025,0301,01,0324,0120,0,
-    /* 15986 */ 0240,0201,025,0301,01,0324,0110,0,
-    /* 15994 */ 0241,0201,031,0301,01,0324,0120,0,
-    /* 16002 */ 0240,0201,031,0301,01,0324,0110,0,
-    /* 16010 */ 0241,0201,041,0303,01,0354,0120,0,
-    /* 16018 */ 0240,0201,041,0303,01,0354,0110,0,
-    /* 16026 */ 0241,0201,045,0303,01,0354,0120,0,
-    /* 16034 */ 0240,0201,045,0303,01,0354,0110,0,
-    /* 16042 */ 0241,0201,051,0303,01,0354,0120,0,
-    /* 16050 */ 0240,0201,051,0303,01,0354,0110,0,
-    /* 16058 */ 0241,0201,041,0303,01,0355,0120,0,
-    /* 16066 */ 0240,0201,041,0303,01,0355,0110,0,
-    /* 16074 */ 0241,0201,045,0303,01,0355,0120,0,
-    /* 16082 */ 0240,0201,045,0303,01,0355,0110,0,
-    /* 16090 */ 0241,0201,051,0303,01,0355,0120,0,
-    /* 16098 */ 0240,0201,051,0303,01,0355,0110,0,
-    /* 16106 */ 0241,0201,041,0303,01,0334,0120,0,
-    /* 16114 */ 0240,0201,041,0303,01,0334,0110,0,
-    /* 16122 */ 0241,0201,045,0303,01,0334,0120,0,
-    /* 16130 */ 0240,0201,045,0303,01,0334,0110,0,
-    /* 16138 */ 0241,0201,051,0303,01,0334,0120,0,
-    /* 16146 */ 0240,0201,051,0303,01,0334,0110,0,
-    /* 16154 */ 0241,0201,041,0303,01,0335,0120,0,
-    /* 16162 */ 0240,0201,041,0303,01,0335,0110,0,
-    /* 16170 */ 0241,0201,045,0303,01,0335,0120,0,
-    /* 16178 */ 0240,0201,045,0303,01,0335,0110,0,
-    /* 16186 */ 0241,0201,051,0303,01,0335,0120,0,
-    /* 16194 */ 0240,0201,051,0303,01,0335,0110,0,
-    /* 16202 */ 0241,0201,041,0303,01,0375,0120,0,
-    /* 16210 */ 0240,0201,041,0303,01,0375,0110,0,
-    /* 16218 */ 0241,0201,045,0303,01,0375,0120,0,
-    /* 16226 */ 0240,0201,045,0303,01,0375,0110,0,
-    /* 16234 */ 0241,0201,051,0303,01,0375,0120,0,
-    /* 16242 */ 0240,0201,051,0303,01,0375,0110,0,
-    /* 16250 */ 0241,0201,01,0301,01,0333,0120,0,
-    /* 16258 */ 0240,0201,01,0301,01,0333,0110,0,
-    /* 16266 */ 0241,0201,05,0301,01,0333,0120,0,
-    /* 16274 */ 0240,0201,05,0301,01,0333,0110,0,
-    /* 16282 */ 0241,0201,011,0301,01,0333,0120,0,
-    /* 16290 */ 0240,0201,011,0301,01,0333,0110,0,
-    /* 16298 */ 0241,0201,01,0301,01,0337,0120,0,
-    /* 16306 */ 0240,0201,01,0301,01,0337,0110,0,
-    /* 16314 */ 0241,0201,05,0301,01,0337,0120,0,
-    /* 16322 */ 0240,0201,05,0301,01,0337,0110,0,
-    /* 16330 */ 0241,0201,011,0301,01,0337,0120,0,
-    /* 16338 */ 0240,0201,011,0301,01,0337,0110,0,
-    /* 16346 */ 0241,0201,021,0301,01,0337,0120,0,
-    /* 16354 */ 0240,0201,021,0301,01,0337,0110,0,
-    /* 16362 */ 0241,0201,025,0301,01,0337,0120,0,
-    /* 16370 */ 0240,0201,025,0301,01,0337,0110,0,
-    /* 16378 */ 0241,0201,031,0301,01,0337,0120,0,
-    /* 16386 */ 0240,0201,031,0301,01,0337,0110,0,
-    /* 16394 */ 0241,0201,021,0301,01,0333,0120,0,
-    /* 16402 */ 0240,0201,021,0301,01,0333,0110,0,
-    /* 16410 */ 0241,0201,025,0301,01,0333,0120,0,
-    /* 16418 */ 0240,0201,025,0301,01,0333,0110,0,
-    /* 16426 */ 0241,0201,031,0301,01,0333,0120,0,
-    /* 16434 */ 0240,0201,031,0301,01,0333,0110,0,
-    /* 16442 */ 0241,0201,041,0303,01,0340,0120,0,
-    /* 16450 */ 0240,0201,041,0303,01,0340,0110,0,
-    /* 16458 */ 0241,0201,045,0303,01,0340,0120,0,
-    /* 16466 */ 0240,0201,045,0303,01,0340,0110,0,
-    /* 16474 */ 0241,0201,051,0303,01,0340,0120,0,
-    /* 16482 */ 0240,0201,051,0303,01,0340,0110,0,
-    /* 16490 */ 0241,0201,041,0303,01,0343,0120,0,
-    /* 16498 */ 0240,0201,041,0303,01,0343,0110,0,
-    /* 16506 */ 0241,0201,045,0303,01,0343,0120,0,
-    /* 16514 */ 0240,0201,045,0303,01,0343,0110,0,
-    /* 16522 */ 0241,0201,051,0303,01,0343,0120,0,
-    /* 16530 */ 0240,0201,051,0303,01,0343,0110,0,
-    /* 16538 */ 0241,0202,01,0303,01,0146,0120,0,
-    /* 16546 */ 0241,0202,05,0303,01,0146,0120,0,
-    /* 16554 */ 0241,0202,011,0303,01,0146,0120,0,
-    /* 16562 */ 0241,0202,01,0301,01,0144,0120,0,
-    /* 16570 */ 0241,0202,05,0301,01,0144,0120,0,
-    /* 16578 */ 0241,0202,011,0301,01,0144,0120,0,
-    /* 16586 */ 0241,0202,021,0301,01,0144,0120,0,
-    /* 16594 */ 0241,0202,025,0301,01,0144,0120,0,
-    /* 16602 */ 0241,0202,031,0301,01,0144,0120,0,
-    /* 16610 */ 0241,0202,021,0303,01,0146,0120,0,
-    /* 16618 */ 0241,0202,025,0303,01,0146,0120,0,
-    /* 16626 */ 0241,0202,031,0303,01,0146,0120,0,
-    /* 16634 */ 0250,0202,01,0304,01,0170,0110,0,
-    /* 16642 */ 0250,0202,05,0304,01,0170,0110,0,
-    /* 16650 */ 0250,0202,011,0304,01,0170,0110,0,
-    /* 16658 */ 0250,0202,01,0300,01,0172,0110,0,
-    /* 16666 */ 0250,0202,05,0300,01,0172,0110,0,
-    /* 16674 */ 0250,0202,011,0300,01,0172,0110,0,
-    /* 16682 */ 0250,0202,01,0306,01,0130,0110,0,
-    /* 16690 */ 0250,0202,05,0306,01,0130,0110,0,
-    /* 16698 */ 0250,0202,011,0306,01,0130,0110,0,
-    /* 16706 */ 0250,0202,01,0300,01,0130,0110,0,
-    /* 16714 */ 0250,0202,05,0300,01,0130,0110,0,
-    /* 16722 */ 0250,0202,011,0300,01,0130,0110,0,
-    /* 16730 */ 0250,0202,01,0300,01,0174,0110,0,
-    /* 16738 */ 0250,0202,05,0300,01,0174,0110,0,
-    /* 16746 */ 0250,0202,011,0300,01,0174,0110,0,
-    /* 16754 */ 0250,0202,022,0300,01,052,0110,0,
-    /* 16762 */ 0250,0202,026,0300,01,052,0110,0,
-    /* 16770 */ 0250,0202,032,0300,01,052,0110,0,
-    /* 16778 */ 0250,0202,02,0300,01,072,0110,0,
-    /* 16786 */ 0250,0202,06,0300,01,072,0110,0,
-    /* 16794 */ 0250,0202,012,0300,01,072,0110,0,
-    /* 16802 */ 0250,0202,021,0306,01,0131,0110,0,
-    /* 16810 */ 0250,0202,025,0306,01,0131,0110,0,
-    /* 16818 */ 0250,0202,031,0306,01,0131,0110,0,
-    /* 16826 */ 0250,0202,021,0300,01,0131,0110,0,
-    /* 16834 */ 0250,0202,025,0300,01,0131,0110,0,
-    /* 16842 */ 0250,0202,031,0300,01,0131,0110,0,
-    /* 16850 */ 0250,0202,021,0300,01,0174,0110,0,
-    /* 16858 */ 0250,0202,025,0300,01,0174,0110,0,
-    /* 16866 */ 0250,0202,031,0300,01,0174,0110,0,
-    /* 16874 */ 0250,0202,01,0305,01,0171,0110,0,
-    /* 16882 */ 0250,0202,05,0305,01,0171,0110,0,
-    /* 16890 */ 0250,0202,011,0305,01,0171,0110,0,
-    /* 16898 */ 0250,0202,01,0300,01,0173,0110,0,
-    /* 16906 */ 0250,0202,05,0300,01,0173,0110,0,
-    /* 16914 */ 0250,0202,011,0300,01,0173,0110,0,
-    /* 16922 */ 0241,0201,041,0303,01,0164,0120,0,
-    /* 16930 */ 0241,0201,045,0303,01,0164,0120,0,
-    /* 16938 */ 0241,0201,051,0303,01,0164,0120,0,
-    /* 16946 */ 0241,0201,01,0301,01,0166,0120,0,
-    /* 16954 */ 0241,0201,05,0301,01,0166,0120,0,
-    /* 16962 */ 0241,0201,011,0301,01,0166,0120,0,
-    /* 16970 */ 0241,0202,021,0301,01,051,0120,0,
-    /* 16978 */ 0241,0202,025,0301,01,051,0120,0,
-    /* 16986 */ 0241,0202,031,0301,01,051,0120,0,
-    /* 16994 */ 0241,0201,041,0303,01,0165,0120,0,
-    /* 17002 */ 0241,0201,045,0303,01,0165,0120,0,
-    /* 17010 */ 0241,0201,051,0303,01,0165,0120,0,
-    /* 17018 */ 0241,0201,041,0303,01,0144,0120,0,
-    /* 17026 */ 0241,0201,045,0303,01,0144,0120,0,
-    /* 17034 */ 0241,0201,051,0303,01,0144,0120,0,
-    /* 17042 */ 0241,0201,01,0301,01,0146,0120,0,
-    /* 17050 */ 0241,0201,05,0301,01,0146,0120,0,
-    /* 17058 */ 0241,0201,011,0301,01,0146,0120,0,
-    /* 17066 */ 0241,0202,021,0301,01,067,0120,0,
-    /* 17074 */ 0241,0202,025,0301,01,067,0120,0,
-    /* 17082 */ 0241,0202,031,0301,01,067,0120,0,
-    /* 17090 */ 0241,0201,041,0303,01,0145,0120,0,
-    /* 17098 */ 0241,0201,045,0303,01,0145,0120,0,
-    /* 17106 */ 0241,0201,051,0303,01,0145,0120,0,
-    /* 17114 */ 0250,0202,01,0306,01,0213,0101,0,
-    /* 17122 */ 0250,0202,05,0306,01,0213,0101,0,
-    /* 17130 */ 0250,0202,011,0306,01,0213,0101,0,
-    /* 17138 */ 0250,0202,01,0300,01,0213,0101,0,
-    /* 17146 */ 0250,0202,05,0300,01,0213,0101,0,
-    /* 17154 */ 0250,0202,011,0300,01,0213,0101,0,
-    /* 17162 */ 0250,0202,021,0306,01,0213,0101,0,
-    /* 17170 */ 0250,0202,025,0306,01,0213,0101,0,
-    /* 17178 */ 0250,0202,031,0306,01,0213,0101,0,
-    /* 17186 */ 0250,0202,021,0300,01,0213,0101,0,
-    /* 17194 */ 0250,0202,025,0300,01,0213,0101,0,
-    /* 17202 */ 0250,0202,031,0300,01,0213,0101,0,
-    /* 17210 */ 0250,0202,01,0301,01,0304,0110,0,
-    /* 17218 */ 0250,0202,05,0301,01,0304,0110,0,
-    /* 17226 */ 0250,0202,011,0301,01,0304,0110,0,
-    /* 17234 */ 0250,0202,021,0301,01,0304,0110,0,
-    /* 17242 */ 0250,0202,025,0301,01,0304,0110,0,
-    /* 17250 */ 0250,0202,031,0301,01,0304,0110,0,
-    /* 17258 */ 0241,0202,01,0303,01,0215,0120,0,
-    /* 17266 */ 0240,0202,01,0303,01,0215,0110,0,
-    /* 17274 */ 0241,0202,05,0303,01,0215,0120,0,
-    /* 17282 */ 0240,0202,05,0303,01,0215,0110,0,
-    /* 17290 */ 0241,0202,011,0303,01,0215,0120,0,
-    /* 17298 */ 0240,0202,011,0303,01,0215,0110,0,
-    /* 17306 */ 0241,0202,05,0301,01,066,0120,0,
-    /* 17314 */ 0240,0202,05,0301,01,066,0110,0,
-    /* 17322 */ 0241,0202,011,0301,01,066,0120,0,
-    /* 17330 */ 0240,0202,011,0301,01,066,0110,0,
-    /* 17338 */ 0241,0202,01,0303,01,0165,0120,0,
-    /* 17346 */ 0241,0202,05,0303,01,0165,0120,0,
-    /* 17354 */ 0241,0202,011,0303,01,0165,0120,0,
-    /* 17362 */ 0241,0202,01,0301,01,0166,0120,0,
-    /* 17370 */ 0241,0202,05,0301,01,0166,0120,0,
-    /* 17378 */ 0241,0202,011,0301,01,0166,0120,0,
-    /* 17386 */ 0241,0202,021,0301,01,0167,0120,0,
-    /* 17394 */ 0241,0202,025,0301,01,0167,0120,0,
-    /* 17402 */ 0241,0202,031,0301,01,0167,0120,0,
-    /* 17410 */ 0241,0202,01,0301,01,0167,0120,0,
-    /* 17418 */ 0241,0202,05,0301,01,0167,0120,0,
-    /* 17426 */ 0241,0202,011,0301,01,0167,0120,0,
-    /* 17434 */ 0241,0202,021,0301,01,0166,0120,0,
-    /* 17442 */ 0241,0202,025,0301,01,0166,0120,0,
-    /* 17450 */ 0241,0202,031,0301,01,0166,0120,0,
-    /* 17458 */ 0241,0202,021,0303,01,0165,0120,0,
-    /* 17466 */ 0241,0202,025,0303,01,0165,0120,0,
-    /* 17474 */ 0241,0202,031,0303,01,0165,0120,0,
-    /* 17482 */ 0241,0202,021,0301,01,015,0120,0,
-    /* 17490 */ 0240,0202,021,0301,01,015,0110,0,
-    /* 17498 */ 0241,0202,025,0301,01,015,0120,0,
-    /* 17506 */ 0240,0202,025,0301,01,015,0110,0,
-    /* 17514 */ 0241,0202,031,0301,01,015,0120,0,
-    /* 17522 */ 0240,0202,031,0301,01,015,0110,0,
-    /* 17530 */ 0241,0202,01,0301,01,014,0120,0,
-    /* 17538 */ 0240,0202,01,0301,01,014,0110,0,
-    /* 17546 */ 0241,0202,05,0301,01,014,0120,0,
-    /* 17554 */ 0240,0202,05,0301,01,014,0110,0,
-    /* 17562 */ 0241,0202,011,0301,01,014,0120,0,
-    /* 17570 */ 0240,0202,011,0301,01,014,0110,0,
-    /* 17578 */ 0241,0202,025,0301,01,026,0120,0,
-    /* 17586 */ 0240,0202,025,0301,01,026,0110,0,
-    /* 17594 */ 0241,0202,031,0301,01,026,0120,0,
-    /* 17602 */ 0240,0202,031,0301,01,026,0110,0,
-    /* 17610 */ 0241,0202,05,0301,01,026,0120,0,
-    /* 17618 */ 0240,0202,05,0301,01,026,0110,0,
-    /* 17626 */ 0241,0202,011,0301,01,026,0120,0,
-    /* 17634 */ 0240,0202,011,0301,01,026,0110,0,
-    /* 17642 */ 0241,0202,025,0301,01,066,0120,0,
-    /* 17650 */ 0240,0202,025,0301,01,066,0110,0,
-    /* 17658 */ 0241,0202,031,0301,01,066,0120,0,
-    /* 17666 */ 0240,0202,031,0301,01,066,0110,0,
-    /* 17674 */ 0241,0202,01,0303,01,0175,0120,0,
-    /* 17682 */ 0241,0202,05,0303,01,0175,0120,0,
-    /* 17690 */ 0241,0202,011,0303,01,0175,0120,0,
-    /* 17698 */ 0241,0202,01,0301,01,0176,0120,0,
-    /* 17706 */ 0241,0202,05,0301,01,0176,0120,0,
-    /* 17714 */ 0241,0202,011,0301,01,0176,0120,0,
-    /* 17722 */ 0241,0202,021,0301,01,0177,0120,0,
-    /* 17730 */ 0241,0202,025,0301,01,0177,0120,0,
-    /* 17738 */ 0241,0202,031,0301,01,0177,0120,0,
-    /* 17746 */ 0241,0202,01,0301,01,0177,0120,0,
-    /* 17754 */ 0241,0202,05,0301,01,0177,0120,0,
-    /* 17762 */ 0241,0202,011,0301,01,0177,0120,0,
-    /* 17770 */ 0241,0202,021,0301,01,0176,0120,0,
-    /* 17778 */ 0241,0202,025,0301,01,0176,0120,0,
-    /* 17786 */ 0241,0202,031,0301,01,0176,0120,0,
-    /* 17794 */ 0241,0202,021,0303,01,0175,0120,0,
-    /* 17802 */ 0241,0202,025,0303,01,0175,0120,0,
-    /* 17810 */ 0241,0202,031,0303,01,0175,0120,0,
-    /* 17818 */ 0241,0202,021,0303,01,0215,0120,0,
-    /* 17826 */ 0240,0202,021,0303,01,0215,0110,0,
-    /* 17834 */ 0241,0202,025,0303,01,0215,0120,0,
-    /* 17842 */ 0240,0202,025,0303,01,0215,0110,0,
-    /* 17850 */ 0241,0202,031,0303,01,0215,0120,0,
-    /* 17858 */ 0240,0202,031,0303,01,0215,0110,0,
-    /* 17866 */ 0250,0202,01,0306,01,0211,0110,0,
-    /* 17874 */ 0250,0202,05,0306,01,0211,0110,0,
-    /* 17882 */ 0250,0202,011,0306,01,0211,0110,0,
-    /* 17890 */ 0250,0202,021,0306,01,0211,0110,0,
-    /* 17898 */ 0250,0202,025,0306,01,0211,0110,0,
-    /* 17906 */ 0250,0202,031,0306,01,0211,0110,0,
-    /* 17914 */ 0250,0202,01,0301,01,0104,0110,0,
-    /* 17922 */ 0250,0202,05,0301,01,0104,0110,0,
-    /* 17930 */ 0250,0202,011,0301,01,0104,0110,0,
-    /* 17938 */ 0250,0202,021,0301,01,0104,0110,0,
-    /* 17946 */ 0250,0202,025,0301,01,0104,0110,0,
-    /* 17954 */ 0250,0202,031,0301,01,0104,0110,0,
-    /* 17962 */ 0241,0202,021,0301,01,0265,0120,0,
-    /* 17970 */ 0241,0202,025,0301,01,0265,0120,0,
-    /* 17978 */ 0241,0202,031,0301,01,0265,0120,0,
-    /* 17986 */ 0241,0202,021,0301,01,0264,0120,0,
-    /* 17994 */ 0241,0202,025,0301,01,0264,0120,0,
-    /* 18002 */ 0241,0202,031,0301,01,0264,0120,0,
-    /* 18010 */ 0241,0202,041,0303,01,04,0120,0,
-    /* 18018 */ 0240,0202,041,0303,01,04,0110,0,
-    /* 18026 */ 0241,0202,045,0303,01,04,0120,0,
-    /* 18034 */ 0240,0202,045,0303,01,04,0110,0,
-    /* 18042 */ 0241,0202,051,0303,01,04,0120,0,
-    /* 18050 */ 0240,0202,051,0303,01,04,0110,0,
-    /* 18058 */ 0241,0201,041,0303,01,0365,0120,0,
-    /* 18066 */ 0240,0201,041,0303,01,0365,0110,0,
-    /* 18074 */ 0241,0201,045,0303,01,0365,0120,0,
-    /* 18082 */ 0240,0201,045,0303,01,0365,0110,0,
-    /* 18090 */ 0241,0201,051,0303,01,0365,0120,0,
-    /* 18098 */ 0240,0201,051,0303,01,0365,0110,0,
-    /* 18106 */ 0241,0202,041,0303,01,074,0120,0,
-    /* 18114 */ 0240,0202,041,0303,01,074,0110,0,
-    /* 18122 */ 0241,0202,045,0303,01,074,0120,0,
-    /* 18130 */ 0240,0202,045,0303,01,074,0110,0,
-    /* 18138 */ 0241,0202,051,0303,01,074,0120,0,
-    /* 18146 */ 0240,0202,051,0303,01,074,0110,0,
-    /* 18154 */ 0241,0202,01,0301,01,075,0120,0,
-    /* 18162 */ 0240,0202,01,0301,01,075,0110,0,
-    /* 18170 */ 0241,0202,05,0301,01,075,0120,0,
-    /* 18178 */ 0240,0202,05,0301,01,075,0110,0,
-    /* 18186 */ 0241,0202,011,0301,01,075,0120,0,
-    /* 18194 */ 0240,0202,011,0301,01,075,0110,0,
-    /* 18202 */ 0241,0202,021,0301,01,075,0120,0,
-    /* 18210 */ 0240,0202,021,0301,01,075,0110,0,
-    /* 18218 */ 0241,0202,025,0301,01,075,0120,0,
-    /* 18226 */ 0240,0202,025,0301,01,075,0110,0,
-    /* 18234 */ 0241,0202,031,0301,01,075,0120,0,
-    /* 18242 */ 0240,0202,031,0301,01,075,0110,0,
-    /* 18250 */ 0241,0201,041,0303,01,0356,0120,0,
-    /* 18258 */ 0240,0201,041,0303,01,0356,0110,0,
-    /* 18266 */ 0241,0201,045,0303,01,0356,0120,0,
-    /* 18274 */ 0240,0201,045,0303,01,0356,0110,0,
-    /* 18282 */ 0241,0201,051,0303,01,0356,0120,0,
-    /* 18290 */ 0240,0201,051,0303,01,0356,0110,0,
-    /* 18298 */ 0241,0201,041,0303,01,0336,0120,0,
-    /* 18306 */ 0240,0201,041,0303,01,0336,0110,0,
-    /* 18314 */ 0241,0201,045,0303,01,0336,0120,0,
-    /* 18322 */ 0240,0201,045,0303,01,0336,0110,0,
-    /* 18330 */ 0241,0201,051,0303,01,0336,0120,0,
-    /* 18338 */ 0240,0201,051,0303,01,0336,0110,0,
-    /* 18346 */ 0241,0202,01,0301,01,077,0120,0,
-    /* 18354 */ 0240,0202,01,0301,01,077,0110,0,
-    /* 18362 */ 0241,0202,05,0301,01,077,0120,0,
-    /* 18370 */ 0240,0202,05,0301,01,077,0110,0,
-    /* 18378 */ 0241,0202,011,0301,01,077,0120,0,
-    /* 18386 */ 0240,0202,011,0301,01,077,0110,0,
-    /* 18394 */ 0241,0202,021,0301,01,077,0120,0,
-    /* 18402 */ 0240,0202,021,0301,01,077,0110,0,
-    /* 18410 */ 0241,0202,025,0301,01,077,0120,0,
-    /* 18418 */ 0240,0202,025,0301,01,077,0110,0,
-    /* 18426 */ 0241,0202,031,0301,01,077,0120,0,
-    /* 18434 */ 0240,0202,031,0301,01,077,0110,0,
-    /* 18442 */ 0241,0202,041,0303,01,076,0120,0,
-    /* 18450 */ 0240,0202,041,0303,01,076,0110,0,
-    /* 18458 */ 0241,0202,045,0303,01,076,0120,0,
-    /* 18466 */ 0240,0202,045,0303,01,076,0110,0,
-    /* 18474 */ 0241,0202,051,0303,01,076,0120,0,
-    /* 18482 */ 0240,0202,051,0303,01,076,0110,0,
-    /* 18490 */ 0241,0202,041,0303,01,070,0120,0,
-    /* 18498 */ 0240,0202,041,0303,01,070,0110,0,
-    /* 18506 */ 0241,0202,045,0303,01,070,0120,0,
-    /* 18514 */ 0240,0202,045,0303,01,070,0110,0,
-    /* 18522 */ 0241,0202,051,0303,01,070,0120,0,
-    /* 18530 */ 0240,0202,051,0303,01,070,0110,0,
-    /* 18538 */ 0241,0202,01,0301,01,071,0120,0,
-    /* 18546 */ 0240,0202,01,0301,01,071,0110,0,
-    /* 18554 */ 0241,0202,05,0301,01,071,0120,0,
-    /* 18562 */ 0240,0202,05,0301,01,071,0110,0,
-    /* 18570 */ 0241,0202,011,0301,01,071,0120,0,
-    /* 18578 */ 0240,0202,011,0301,01,071,0110,0,
-    /* 18586 */ 0241,0202,021,0301,01,071,0120,0,
-    /* 18594 */ 0240,0202,021,0301,01,071,0110,0,
-    /* 18602 */ 0241,0202,025,0301,01,071,0120,0,
-    /* 18610 */ 0240,0202,025,0301,01,071,0110,0,
-    /* 18618 */ 0241,0202,031,0301,01,071,0120,0,
-    /* 18626 */ 0240,0202,031,0301,01,071,0110,0,
-    /* 18634 */ 0241,0201,041,0303,01,0352,0120,0,
-    /* 18642 */ 0240,0201,041,0303,01,0352,0110,0,
-    /* 18650 */ 0241,0201,045,0303,01,0352,0120,0,
-    /* 18658 */ 0240,0201,045,0303,01,0352,0110,0,
-    /* 18666 */ 0241,0201,051,0303,01,0352,0120,0,
-    /* 18674 */ 0240,0201,051,0303,01,0352,0110,0,
-    /* 18682 */ 0241,0201,041,0303,01,0332,0120,0,
-    /* 18690 */ 0240,0201,041,0303,01,0332,0110,0,
-    /* 18698 */ 0241,0201,045,0303,01,0332,0120,0,
-    /* 18706 */ 0240,0201,045,0303,01,0332,0110,0,
-    /* 18714 */ 0241,0201,051,0303,01,0332,0120,0,
-    /* 18722 */ 0240,0201,051,0303,01,0332,0110,0,
-    /* 18730 */ 0241,0202,01,0301,01,073,0120,0,
-    /* 18738 */ 0240,0202,01,0301,01,073,0110,0,
-    /* 18746 */ 0241,0202,05,0301,01,073,0120,0,
-    /* 18754 */ 0240,0202,05,0301,01,073,0110,0,
-    /* 18762 */ 0241,0202,011,0301,01,073,0120,0,
-    /* 18770 */ 0240,0202,011,0301,01,073,0110,0,
-    /* 18778 */ 0241,0202,021,0301,01,073,0120,0,
-    /* 18786 */ 0240,0202,021,0301,01,073,0110,0,
-    /* 18794 */ 0241,0202,025,0301,01,073,0120,0,
-    /* 18802 */ 0240,0202,025,0301,01,073,0110,0,
-    /* 18810 */ 0241,0202,031,0301,01,073,0120,0,
-    /* 18818 */ 0240,0202,031,0301,01,073,0110,0,
-    /* 18826 */ 0241,0202,041,0303,01,072,0120,0,
-    /* 18834 */ 0240,0202,041,0303,01,072,0110,0,
-    /* 18842 */ 0241,0202,045,0303,01,072,0120,0,
-    /* 18850 */ 0240,0202,045,0303,01,072,0110,0,
-    /* 18858 */ 0241,0202,051,0303,01,072,0120,0,
-    /* 18866 */ 0240,0202,051,0303,01,072,0110,0,
-    /* 18874 */ 0250,0202,02,0300,01,051,0110,0,
-    /* 18882 */ 0250,0202,06,0300,01,051,0110,0,
-    /* 18890 */ 0250,0202,012,0300,01,051,0110,0,
-    /* 18898 */ 0250,0202,02,0300,01,071,0110,0,
-    /* 18906 */ 0250,0202,06,0300,01,071,0110,0,
-    /* 18914 */ 0250,0202,012,0300,01,071,0110,0,
-    /* 18922 */ 0250,0202,02,0300,01,061,0101,0,
-    /* 18930 */ 0250,0202,06,0300,01,061,0101,0,
-    /* 18938 */ 0250,0202,012,0300,01,061,0101,0,
-    /* 18946 */ 0250,0202,02,0315,01,061,0101,0,
-    /* 18954 */ 0250,0202,06,0315,01,061,0101,0,
-    /* 18962 */ 0250,0202,012,0315,01,061,0101,0,
-    /* 18970 */ 0250,0202,02,0300,01,063,0101,0,
-    /* 18978 */ 0250,0202,06,0300,01,063,0101,0,
-    /* 18986 */ 0250,0202,012,0300,01,063,0101,0,
-    /* 18994 */ 0250,0202,02,0314,01,063,0101,0,
-    /* 19002 */ 0250,0202,06,0314,01,063,0101,0,
-    /* 19010 */ 0250,0202,012,0314,01,063,0101,0,
-    /* 19018 */ 0250,0202,02,0300,01,050,0110,0,
-    /* 19026 */ 0250,0202,06,0300,01,050,0110,0,
-    /* 19034 */ 0250,0202,012,0300,01,050,0110,0,
-    /* 19042 */ 0250,0202,02,0300,01,070,0110,0,
-    /* 19050 */ 0250,0202,06,0300,01,070,0110,0,
-    /* 19058 */ 0250,0202,012,0300,01,070,0110,0,
-    /* 19066 */ 0250,0202,022,0300,01,070,0110,0,
-    /* 19074 */ 0250,0202,026,0300,01,070,0110,0,
-    /* 19082 */ 0250,0202,032,0300,01,070,0110,0,
-    /* 19090 */ 0250,0202,022,0300,01,050,0110,0,
-    /* 19098 */ 0250,0202,026,0300,01,050,0110,0,
-    /* 19106 */ 0250,0202,032,0300,01,050,0110,0,
-    /* 19114 */ 0250,0202,022,0300,01,071,0110,0,
-    /* 19122 */ 0250,0202,026,0300,01,071,0110,0,
-    /* 19130 */ 0250,0202,032,0300,01,071,0110,0,
-    /* 19138 */ 0250,0202,02,0300,01,062,0101,0,
-    /* 19146 */ 0250,0202,06,0300,01,062,0101,0,
-    /* 19154 */ 0250,0202,012,0300,01,062,0101,0,
-    /* 19162 */ 0250,0202,02,0316,01,062,0101,0,
-    /* 19170 */ 0250,0202,06,0316,01,062,0101,0,
-    /* 19178 */ 0250,0202,012,0316,01,062,0101,0,
-    /* 19186 */ 0250,0202,02,0300,01,065,0101,0,
-    /* 19194 */ 0250,0202,06,0300,01,065,0101,0,
-    /* 19202 */ 0250,0202,012,0300,01,065,0101,0,
-    /* 19210 */ 0250,0202,02,0314,01,065,0101,0,
-    /* 19218 */ 0250,0202,06,0314,01,065,0101,0,
-    /* 19226 */ 0250,0202,012,0314,01,065,0101,0,
-    /* 19234 */ 0250,0202,02,0300,01,064,0101,0,
-    /* 19242 */ 0250,0202,06,0300,01,064,0101,0,
-    /* 19250 */ 0250,0202,012,0300,01,064,0101,0,
-    /* 19258 */ 0250,0202,02,0315,01,064,0101,0,
-    /* 19266 */ 0250,0202,06,0315,01,064,0101,0,
-    /* 19274 */ 0250,0202,012,0315,01,064,0101,0,
-    /* 19282 */ 0250,0202,02,0300,01,041,0101,0,
-    /* 19290 */ 0250,0202,06,0300,01,041,0101,0,
-    /* 19298 */ 0250,0202,012,0300,01,041,0101,0,
-    /* 19306 */ 0250,0202,02,0315,01,041,0101,0,
-    /* 19314 */ 0250,0202,06,0315,01,041,0101,0,
-    /* 19322 */ 0250,0202,012,0315,01,041,0101,0,
-    /* 19330 */ 0250,0202,02,0300,01,043,0101,0,
-    /* 19338 */ 0250,0202,06,0300,01,043,0101,0,
-    /* 19346 */ 0250,0202,012,0300,01,043,0101,0,
-    /* 19354 */ 0250,0202,02,0314,01,043,0101,0,
-    /* 19362 */ 0250,0202,06,0314,01,043,0101,0,
-    /* 19370 */ 0250,0202,012,0314,01,043,0101,0,
-    /* 19378 */ 0250,0202,02,0300,01,042,0101,0,
-    /* 19386 */ 0250,0202,06,0300,01,042,0101,0,
-    /* 19394 */ 0250,0202,012,0300,01,042,0101,0,
-    /* 19402 */ 0250,0202,02,0316,01,042,0101,0,
-    /* 19410 */ 0250,0202,06,0316,01,042,0101,0,
-    /* 19418 */ 0250,0202,012,0316,01,042,0101,0,
-    /* 19426 */ 0250,0202,02,0300,01,045,0101,0,
-    /* 19434 */ 0250,0202,06,0300,01,045,0101,0,
-    /* 19442 */ 0250,0202,012,0300,01,045,0101,0,
-    /* 19450 */ 0250,0202,02,0314,01,045,0101,0,
-    /* 19458 */ 0250,0202,06,0314,01,045,0101,0,
-    /* 19466 */ 0250,0202,012,0314,01,045,0101,0,
-    /* 19474 */ 0250,0202,02,0300,01,044,0101,0,
-    /* 19482 */ 0250,0202,06,0300,01,044,0101,0,
-    /* 19490 */ 0250,0202,012,0300,01,044,0101,0,
-    /* 19498 */ 0250,0202,02,0315,01,044,0101,0,
-    /* 19506 */ 0250,0202,06,0315,01,044,0101,0,
-    /* 19514 */ 0250,0202,012,0315,01,044,0101,0,
-    /* 19522 */ 0250,0202,02,0300,01,040,0101,0,
-    /* 19530 */ 0250,0202,06,0300,01,040,0101,0,
-    /* 19538 */ 0250,0202,012,0300,01,040,0101,0,
-    /* 19546 */ 0250,0202,02,0314,01,040,0101,0,
-    /* 19554 */ 0250,0202,06,0314,01,040,0101,0,
-    /* 19562 */ 0250,0202,012,0314,01,040,0101,0,
-    /* 19570 */ 0250,0202,041,0315,01,041,0110,0,
-    /* 19578 */ 0250,0202,045,0315,01,041,0110,0,
-    /* 19586 */ 0250,0202,051,0315,01,041,0110,0,
-    /* 19594 */ 0250,0202,041,0316,01,042,0110,0,
-    /* 19602 */ 0250,0202,045,0316,01,042,0110,0,
-    /* 19610 */ 0250,0202,051,0316,01,042,0110,0,
-    /* 19618 */ 0250,0202,041,0314,01,040,0110,0,
-    /* 19626 */ 0250,0202,045,0314,01,040,0110,0,
-    /* 19634 */ 0250,0202,051,0314,01,040,0110,0,
-    /* 19642 */ 0250,0202,01,0314,01,045,0110,0,
-    /* 19650 */ 0250,0202,05,0314,01,045,0110,0,
-    /* 19658 */ 0250,0202,011,0314,01,045,0110,0,
-    /* 19666 */ 0250,0202,041,0314,01,043,0110,0,
-    /* 19674 */ 0250,0202,045,0314,01,043,0110,0,
-    /* 19682 */ 0250,0202,051,0314,01,043,0110,0,
-    /* 19690 */ 0250,0202,041,0315,01,044,0110,0,
-    /* 19698 */ 0250,0202,045,0315,01,044,0110,0,
-    /* 19706 */ 0250,0202,051,0315,01,044,0110,0,
-    /* 19714 */ 0250,0202,02,0300,01,021,0101,0,
-    /* 19722 */ 0250,0202,06,0300,01,021,0101,0,
-    /* 19730 */ 0250,0202,012,0300,01,021,0101,0,
-    /* 19738 */ 0250,0202,02,0315,01,021,0101,0,
-    /* 19746 */ 0250,0202,06,0315,01,021,0101,0,
-    /* 19754 */ 0250,0202,012,0315,01,021,0101,0,
-    /* 19762 */ 0250,0202,02,0300,01,023,0101,0,
-    /* 19770 */ 0250,0202,06,0300,01,023,0101,0,
-    /* 19778 */ 0250,0202,012,0300,01,023,0101,0,
-    /* 19786 */ 0250,0202,02,0314,01,023,0101,0,
-    /* 19794 */ 0250,0202,06,0314,01,023,0101,0,
-    /* 19802 */ 0250,0202,012,0314,01,023,0101,0,
-    /* 19810 */ 0250,0202,02,0300,01,022,0101,0,
-    /* 19818 */ 0250,0202,06,0300,01,022,0101,0,
-    /* 19826 */ 0250,0202,012,0300,01,022,0101,0,
-    /* 19834 */ 0250,0202,02,0316,01,022,0101,0,
-    /* 19842 */ 0250,0202,06,0316,01,022,0101,0,
-    /* 19850 */ 0250,0202,012,0316,01,022,0101,0,
-    /* 19858 */ 0250,0202,02,0300,01,025,0101,0,
-    /* 19866 */ 0250,0202,06,0300,01,025,0101,0,
-    /* 19874 */ 0250,0202,012,0300,01,025,0101,0,
-    /* 19882 */ 0250,0202,02,0314,01,025,0101,0,
-    /* 19890 */ 0250,0202,06,0314,01,025,0101,0,
-    /* 19898 */ 0250,0202,012,0314,01,025,0101,0,
-    /* 19906 */ 0250,0202,02,0300,01,024,0101,0,
-    /* 19914 */ 0250,0202,06,0300,01,024,0101,0,
-    /* 19922 */ 0250,0202,012,0300,01,024,0101,0,
-    /* 19930 */ 0250,0202,02,0315,01,024,0101,0,
-    /* 19938 */ 0250,0202,06,0315,01,024,0101,0,
-    /* 19946 */ 0250,0202,012,0315,01,024,0101,0,
-    /* 19954 */ 0250,0202,02,0300,01,020,0101,0,
-    /* 19962 */ 0250,0202,06,0300,01,020,0101,0,
-    /* 19970 */ 0250,0202,012,0300,01,020,0101,0,
-    /* 19978 */ 0250,0202,02,0314,01,020,0101,0,
-    /* 19986 */ 0250,0202,06,0314,01,020,0101,0,
-    /* 19994 */ 0250,0202,012,0314,01,020,0101,0,
-    /* 20002 */ 0250,0202,022,0300,01,051,0110,0,
-    /* 20010 */ 0250,0202,026,0300,01,051,0110,0,
-    /* 20018 */ 0250,0202,032,0300,01,051,0110,0,
-    /* 20026 */ 0250,0202,02,0300,01,060,0101,0,
-    /* 20034 */ 0250,0202,06,0300,01,060,0101,0,
-    /* 20042 */ 0250,0202,012,0300,01,060,0101,0,
-    /* 20050 */ 0250,0202,02,0314,01,060,0101,0,
-    /* 20058 */ 0250,0202,06,0314,01,060,0101,0,
-    /* 20066 */ 0250,0202,012,0314,01,060,0101,0,
-    /* 20074 */ 0250,0202,041,0315,01,061,0110,0,
-    /* 20082 */ 0250,0202,045,0315,01,061,0110,0,
-    /* 20090 */ 0250,0202,051,0315,01,061,0110,0,
-    /* 20098 */ 0250,0202,041,0316,01,062,0110,0,
-    /* 20106 */ 0250,0202,045,0316,01,062,0110,0,
-    /* 20114 */ 0250,0202,051,0316,01,062,0110,0,
-    /* 20122 */ 0250,0202,041,0314,01,060,0110,0,
-    /* 20130 */ 0250,0202,045,0314,01,060,0110,0,
-    /* 20138 */ 0250,0202,051,0314,01,060,0110,0,
-    /* 20146 */ 0250,0202,01,0314,01,065,0110,0,
-    /* 20154 */ 0250,0202,05,0314,01,065,0110,0,
-    /* 20162 */ 0250,0202,011,0314,01,065,0110,0,
-    /* 20170 */ 0250,0202,041,0314,01,063,0110,0,
-    /* 20178 */ 0250,0202,045,0314,01,063,0110,0,
-    /* 20186 */ 0250,0202,051,0314,01,063,0110,0,
-    /* 20194 */ 0250,0202,041,0315,01,064,0110,0,
-    /* 20202 */ 0250,0202,045,0315,01,064,0110,0,
-    /* 20210 */ 0250,0202,051,0315,01,064,0110,0,
-    /* 20218 */ 0241,0202,021,0301,01,050,0120,0,
-    /* 20226 */ 0240,0202,021,0301,01,050,0110,0,
-    /* 20234 */ 0241,0202,025,0301,01,050,0120,0,
-    /* 20242 */ 0240,0202,025,0301,01,050,0110,0,
-    /* 20250 */ 0241,0202,031,0301,01,050,0120,0,
-    /* 20258 */ 0240,0202,031,0301,01,050,0110,0,
-    /* 20266 */ 0241,0202,041,0303,01,013,0120,0,
-    /* 20274 */ 0240,0202,041,0303,01,013,0110,0,
-    /* 20282 */ 0241,0202,045,0303,01,013,0120,0,
-    /* 20290 */ 0240,0202,045,0303,01,013,0110,0,
-    /* 20298 */ 0241,0202,051,0303,01,013,0120,0,
-    /* 20306 */ 0240,0202,051,0303,01,013,0110,0,
-    /* 20314 */ 0241,0201,041,0303,01,0344,0120,0,
-    /* 20322 */ 0240,0201,041,0303,01,0344,0110,0,
-    /* 20330 */ 0241,0201,045,0303,01,0344,0120,0,
-    /* 20338 */ 0240,0201,045,0303,01,0344,0110,0,
-    /* 20346 */ 0241,0201,051,0303,01,0344,0120,0,
-    /* 20354 */ 0240,0201,051,0303,01,0344,0110,0,
-    /* 20362 */ 0241,0201,041,0303,01,0345,0120,0,
-    /* 20370 */ 0240,0201,041,0303,01,0345,0110,0,
-    /* 20378 */ 0241,0201,045,0303,01,0345,0120,0,
-    /* 20386 */ 0240,0201,045,0303,01,0345,0110,0,
-    /* 20394 */ 0241,0201,051,0303,01,0345,0120,0,
-    /* 20402 */ 0240,0201,051,0303,01,0345,0110,0,
-    /* 20410 */ 0241,0202,01,0301,01,0100,0120,0,
-    /* 20418 */ 0240,0202,01,0301,01,0100,0110,0,
-    /* 20426 */ 0241,0202,05,0301,01,0100,0120,0,
-    /* 20434 */ 0240,0202,05,0301,01,0100,0110,0,
-    /* 20442 */ 0241,0202,011,0301,01,0100,0120,0,
-    /* 20450 */ 0240,0202,011,0301,01,0100,0110,0,
-    /* 20458 */ 0241,0202,021,0301,01,0100,0120,0,
-    /* 20466 */ 0240,0202,021,0301,01,0100,0110,0,
-    /* 20474 */ 0241,0202,025,0301,01,0100,0120,0,
-    /* 20482 */ 0240,0202,025,0301,01,0100,0110,0,
-    /* 20490 */ 0241,0202,031,0301,01,0100,0120,0,
-    /* 20498 */ 0240,0202,031,0301,01,0100,0110,0,
-    /* 20506 */ 0241,0201,041,0303,01,0325,0120,0,
-    /* 20514 */ 0240,0201,041,0303,01,0325,0110,0,
-    /* 20522 */ 0241,0201,045,0303,01,0325,0120,0,
-    /* 20530 */ 0240,0201,045,0303,01,0325,0110,0,
-    /* 20538 */ 0241,0201,051,0303,01,0325,0120,0,
-    /* 20546 */ 0240,0201,051,0303,01,0325,0110,0,
-    /* 20554 */ 0241,0202,021,0301,01,0203,0120,0,
-    /* 20562 */ 0240,0202,021,0301,01,0203,0110,0,
-    /* 20570 */ 0241,0202,025,0301,01,0203,0120,0,
-    /* 20578 */ 0240,0202,025,0301,01,0203,0110,0,
-    /* 20586 */ 0241,0202,031,0301,01,0203,0120,0,
-    /* 20594 */ 0240,0202,031,0301,01,0203,0110,0,
-    /* 20602 */ 0241,0201,021,0301,01,0364,0120,0,
-    /* 20610 */ 0240,0201,021,0301,01,0364,0110,0,
-    /* 20618 */ 0241,0201,025,0301,01,0364,0120,0,
-    /* 20626 */ 0240,0201,025,0301,01,0364,0110,0,
-    /* 20634 */ 0241,0201,031,0301,01,0364,0120,0,
-    /* 20642 */ 0240,0201,031,0301,01,0364,0110,0,
-    /* 20650 */ 0241,0201,01,0301,01,0353,0120,0,
-    /* 20658 */ 0240,0201,01,0301,01,0353,0110,0,
-    /* 20666 */ 0241,0201,05,0301,01,0353,0120,0,
-    /* 20674 */ 0240,0201,05,0301,01,0353,0110,0,
-    /* 20682 */ 0241,0201,011,0301,01,0353,0120,0,
-    /* 20690 */ 0240,0201,011,0301,01,0353,0110,0,
-    /* 20698 */ 0241,0201,021,0301,01,0353,0120,0,
-    /* 20706 */ 0240,0201,021,0301,01,0353,0110,0,
-    /* 20714 */ 0241,0201,025,0301,01,0353,0120,0,
-    /* 20722 */ 0240,0201,025,0301,01,0353,0110,0,
-    /* 20730 */ 0241,0201,031,0301,01,0353,0120,0,
-    /* 20738 */ 0240,0201,031,0301,01,0353,0110,0,
-    /* 20746 */ 0241,0202,01,0301,01,025,0120,0,
-    /* 20754 */ 0240,0202,01,0301,01,025,0110,0,
-    /* 20762 */ 0241,0202,05,0301,01,025,0120,0,
-    /* 20770 */ 0240,0202,05,0301,01,025,0110,0,
-    /* 20778 */ 0241,0202,011,0301,01,025,0120,0,
-    /* 20786 */ 0240,0202,011,0301,01,025,0110,0,
-    /* 20794 */ 0241,0202,021,0301,01,025,0120,0,
-    /* 20802 */ 0240,0202,021,0301,01,025,0110,0,
-    /* 20810 */ 0241,0202,025,0301,01,025,0120,0,
-    /* 20818 */ 0240,0202,025,0301,01,025,0110,0,
-    /* 20826 */ 0241,0202,031,0301,01,025,0120,0,
-    /* 20834 */ 0240,0202,031,0301,01,025,0110,0,
-    /* 20842 */ 0241,0202,01,0301,01,024,0120,0,
-    /* 20850 */ 0240,0202,01,0301,01,024,0110,0,
-    /* 20858 */ 0241,0202,05,0301,01,024,0120,0,
-    /* 20866 */ 0240,0202,05,0301,01,024,0110,0,
-    /* 20874 */ 0241,0202,011,0301,01,024,0120,0,
-    /* 20882 */ 0240,0202,011,0301,01,024,0110,0,
-    /* 20890 */ 0241,0202,021,0301,01,024,0120,0,
-    /* 20898 */ 0240,0202,021,0301,01,024,0110,0,
-    /* 20906 */ 0241,0202,025,0301,01,024,0120,0,
-    /* 20914 */ 0240,0202,025,0301,01,024,0110,0,
-    /* 20922 */ 0241,0202,031,0301,01,024,0120,0,
-    /* 20930 */ 0240,0202,031,0301,01,024,0110,0,
-    /* 20938 */ 0241,0201,041,0303,01,0366,0120,0,
-    /* 20946 */ 0240,0201,041,0303,01,0366,0110,0,
-    /* 20954 */ 0241,0201,045,0303,01,0366,0120,0,
-    /* 20962 */ 0240,0201,045,0303,01,0366,0110,0,
-    /* 20970 */ 0241,0201,051,0303,01,0366,0120,0,
-    /* 20978 */ 0240,0201,051,0303,01,0366,0110,0,
-    /* 20986 */ 0241,0202,041,0303,01,0,0120,0,
-    /* 20994 */ 0240,0202,041,0303,01,0,0110,0,
-    /* 21002 */ 0241,0202,045,0303,01,0,0120,0,
-    /* 21010 */ 0240,0202,045,0303,01,0,0110,0,
-    /* 21018 */ 0241,0202,051,0303,01,0,0120,0,
-    /* 21026 */ 0240,0202,051,0303,01,0,0110,0,
-    /* 21034 */ 0241,0201,01,0317,01,0362,0120,0,
-    /* 21042 */ 0240,0201,01,0317,01,0362,0110,0,
-    /* 21050 */ 0241,0201,05,0317,01,0362,0120,0,
-    /* 21058 */ 0240,0201,05,0317,01,0362,0110,0,
-    /* 21066 */ 0241,0201,011,0317,01,0362,0120,0,
-    /* 21074 */ 0240,0201,011,0317,01,0362,0110,0,
-    /* 21082 */ 0241,0201,021,0317,01,0363,0120,0,
-    /* 21090 */ 0240,0201,021,0317,01,0363,0110,0,
-    /* 21098 */ 0241,0201,025,0317,01,0363,0120,0,
-    /* 21106 */ 0240,0201,025,0317,01,0363,0110,0,
-    /* 21114 */ 0241,0201,031,0317,01,0363,0120,0,
-    /* 21122 */ 0240,0201,031,0317,01,0363,0110,0,
-    /* 21130 */ 0241,0202,01,0301,01,0107,0120,0,
-    /* 21138 */ 0240,0202,01,0301,01,0107,0110,0,
-    /* 21146 */ 0241,0202,05,0301,01,0107,0120,0,
-    /* 21154 */ 0240,0202,05,0301,01,0107,0110,0,
-    /* 21162 */ 0241,0202,011,0301,01,0107,0120,0,
-    /* 21170 */ 0240,0202,011,0301,01,0107,0110,0,
-    /* 21178 */ 0241,0202,021,0301,01,0107,0120,0,
-    /* 21186 */ 0240,0202,021,0301,01,0107,0110,0,
-    /* 21194 */ 0241,0202,025,0301,01,0107,0120,0,
-    /* 21202 */ 0240,0202,025,0301,01,0107,0110,0,
-    /* 21210 */ 0241,0202,031,0301,01,0107,0120,0,
-    /* 21218 */ 0240,0202,031,0301,01,0107,0110,0,
-    /* 21226 */ 0241,0202,021,0303,01,022,0120,0,
-    /* 21234 */ 0240,0202,021,0303,01,022,0110,0,
-    /* 21242 */ 0241,0202,025,0303,01,022,0120,0,
-    /* 21250 */ 0240,0202,025,0303,01,022,0110,0,
-    /* 21258 */ 0241,0202,031,0303,01,022,0120,0,
-    /* 21266 */ 0240,0202,031,0303,01,022,0110,0,
-    /* 21274 */ 0241,0201,041,0317,01,0361,0120,0,
-    /* 21282 */ 0240,0201,041,0317,01,0361,0110,0,
-    /* 21290 */ 0241,0201,045,0317,01,0361,0120,0,
-    /* 21298 */ 0240,0201,045,0317,01,0361,0110,0,
-    /* 21306 */ 0241,0201,051,0317,01,0361,0120,0,
-    /* 21314 */ 0240,0201,051,0317,01,0361,0110,0,
-    /* 21322 */ 0241,0201,01,0317,01,0342,0120,0,
-    /* 21330 */ 0240,0201,01,0317,01,0342,0110,0,
-    /* 21338 */ 0241,0201,05,0317,01,0342,0120,0,
-    /* 21346 */ 0240,0201,05,0317,01,0342,0110,0,
-    /* 21354 */ 0241,0201,011,0317,01,0342,0120,0,
-    /* 21362 */ 0240,0201,011,0317,01,0342,0110,0,
-    /* 21370 */ 0241,0201,021,0317,01,0342,0120,0,
-    /* 21378 */ 0240,0201,021,0317,01,0342,0110,0,
-    /* 21386 */ 0241,0201,025,0317,01,0342,0120,0,
-    /* 21394 */ 0240,0201,025,0317,01,0342,0110,0,
-    /* 21402 */ 0241,0201,031,0317,01,0342,0120,0,
-    /* 21410 */ 0240,0201,031,0317,01,0342,0110,0,
-    /* 21418 */ 0241,0202,01,0301,01,0106,0120,0,
-    /* 21426 */ 0240,0202,01,0301,01,0106,0110,0,
-    /* 21434 */ 0241,0202,05,0301,01,0106,0120,0,
-    /* 21442 */ 0240,0202,05,0301,01,0106,0110,0,
-    /* 21450 */ 0241,0202,011,0301,01,0106,0120,0,
-    /* 21458 */ 0240,0202,011,0301,01,0106,0110,0,
-    /* 21466 */ 0241,0202,021,0301,01,0106,0120,0,
-    /* 21474 */ 0240,0202,021,0301,01,0106,0110,0,
-    /* 21482 */ 0241,0202,025,0301,01,0106,0120,0,
-    /* 21490 */ 0240,0202,025,0301,01,0106,0110,0,
-    /* 21498 */ 0241,0202,031,0301,01,0106,0120,0,
-    /* 21506 */ 0240,0202,031,0301,01,0106,0110,0,
-    /* 21514 */ 0241,0202,021,0303,01,021,0120,0,
-    /* 21522 */ 0240,0202,021,0303,01,021,0110,0,
-    /* 21530 */ 0241,0202,025,0303,01,021,0120,0,
-    /* 21538 */ 0240,0202,025,0303,01,021,0110,0,
-    /* 21546 */ 0241,0202,031,0303,01,021,0120,0,
-    /* 21554 */ 0240,0202,031,0303,01,021,0110,0,
-    /* 21562 */ 0241,0201,041,0317,01,0341,0120,0,
-    /* 21570 */ 0240,0201,041,0317,01,0341,0110,0,
-    /* 21578 */ 0241,0201,045,0317,01,0341,0120,0,
-    /* 21586 */ 0240,0201,045,0317,01,0341,0110,0,
-    /* 21594 */ 0241,0201,051,0317,01,0341,0120,0,
-    /* 21602 */ 0240,0201,051,0317,01,0341,0110,0,
-    /* 21610 */ 0241,0201,01,0317,01,0322,0120,0,
-    /* 21618 */ 0240,0201,01,0317,01,0322,0110,0,
-    /* 21626 */ 0241,0201,05,0317,01,0322,0120,0,
-    /* 21634 */ 0240,0201,05,0317,01,0322,0110,0,
-    /* 21642 */ 0241,0201,011,0317,01,0322,0120,0,
-    /* 21650 */ 0240,0201,011,0317,01,0322,0110,0,
-    /* 21658 */ 0241,0201,021,0317,01,0323,0120,0,
-    /* 21666 */ 0240,0201,021,0317,01,0323,0110,0,
-    /* 21674 */ 0241,0201,025,0317,01,0323,0120,0,
-    /* 21682 */ 0240,0201,025,0317,01,0323,0110,0,
-    /* 21690 */ 0241,0201,031,0317,01,0323,0120,0,
-    /* 21698 */ 0240,0201,031,0317,01,0323,0110,0,
-    /* 21706 */ 0241,0202,01,0301,01,0105,0120,0,
-    /* 21714 */ 0240,0202,01,0301,01,0105,0110,0,
-    /* 21722 */ 0241,0202,05,0301,01,0105,0120,0,
-    /* 21730 */ 0240,0202,05,0301,01,0105,0110,0,
-    /* 21738 */ 0241,0202,011,0301,01,0105,0120,0,
-    /* 21746 */ 0240,0202,011,0301,01,0105,0110,0,
-    /* 21754 */ 0241,0202,021,0301,01,0105,0120,0,
-    /* 21762 */ 0240,0202,021,0301,01,0105,0110,0,
-    /* 21770 */ 0241,0202,025,0301,01,0105,0120,0,
-    /* 21778 */ 0240,0202,025,0301,01,0105,0110,0,
-    /* 21786 */ 0241,0202,031,0301,01,0105,0120,0,
-    /* 21794 */ 0240,0202,031,0301,01,0105,0110,0,
-    /* 21802 */ 0241,0202,021,0303,01,020,0120,0,
-    /* 21810 */ 0240,0202,021,0303,01,020,0110,0,
-    /* 21818 */ 0241,0202,025,0303,01,020,0120,0,
-    /* 21826 */ 0240,0202,025,0303,01,020,0110,0,
-    /* 21834 */ 0241,0202,031,0303,01,020,0120,0,
-    /* 21842 */ 0240,0202,031,0303,01,020,0110,0,
-    /* 21850 */ 0241,0201,041,0317,01,0321,0120,0,
-    /* 21858 */ 0240,0201,041,0317,01,0321,0110,0,
-    /* 21866 */ 0241,0201,045,0317,01,0321,0120,0,
-    /* 21874 */ 0240,0201,045,0317,01,0321,0110,0,
-    /* 21882 */ 0241,0201,051,0317,01,0321,0120,0,
-    /* 21890 */ 0240,0201,051,0317,01,0321,0110,0,
-    /* 21898 */ 0241,0201,041,0303,01,0370,0120,0,
-    /* 21906 */ 0240,0201,041,0303,01,0370,0110,0,
-    /* 21914 */ 0241,0201,045,0303,01,0370,0120,0,
-    /* 21922 */ 0240,0201,045,0303,01,0370,0110,0,
-    /* 21930 */ 0241,0201,051,0303,01,0370,0120,0,
-    /* 21938 */ 0240,0201,051,0303,01,0370,0110,0,
-    /* 21946 */ 0241,0201,01,0301,01,0372,0120,0,
-    /* 21954 */ 0240,0201,01,0301,01,0372,0110,0,
-    /* 21962 */ 0241,0201,05,0301,01,0372,0120,0,
-    /* 21970 */ 0240,0201,05,0301,01,0372,0110,0,
-    /* 21978 */ 0241,0201,011,0301,01,0372,0120,0,
-    /* 21986 */ 0240,0201,011,0301,01,0372,0110,0,
-    /* 21994 */ 0241,0201,021,0301,01,0373,0120,0,
-    /* 22002 */ 0240,0201,021,0301,01,0373,0110,0,
-    /* 22010 */ 0241,0201,025,0301,01,0373,0120,0,
-    /* 22018 */ 0240,0201,025,0301,01,0373,0110,0,
-    /* 22026 */ 0241,0201,031,0301,01,0373,0120,0,
-    /* 22034 */ 0240,0201,031,0301,01,0373,0110,0,
-    /* 22042 */ 0241,0201,041,0303,01,0350,0120,0,
-    /* 22050 */ 0240,0201,041,0303,01,0350,0110,0,
-    /* 22058 */ 0241,0201,045,0303,01,0350,0120,0,
-    /* 22066 */ 0240,0201,045,0303,01,0350,0110,0,
-    /* 22074 */ 0241,0201,051,0303,01,0350,0120,0,
-    /* 22082 */ 0240,0201,051,0303,01,0350,0110,0,
-    /* 22090 */ 0241,0201,041,0303,01,0351,0120,0,
-    /* 22098 */ 0240,0201,041,0303,01,0351,0110,0,
-    /* 22106 */ 0241,0201,045,0303,01,0351,0120,0,
-    /* 22114 */ 0240,0201,045,0303,01,0351,0110,0,
-    /* 22122 */ 0241,0201,051,0303,01,0351,0120,0,
-    /* 22130 */ 0240,0201,051,0303,01,0351,0110,0,
-    /* 22138 */ 0241,0201,041,0303,01,0330,0120,0,
-    /* 22146 */ 0240,0201,041,0303,01,0330,0110,0,
-    /* 22154 */ 0241,0201,045,0303,01,0330,0120,0,
-    /* 22162 */ 0240,0201,045,0303,01,0330,0110,0,
-    /* 22170 */ 0241,0201,051,0303,01,0330,0120,0,
-    /* 22178 */ 0240,0201,051,0303,01,0330,0110,0,
-    /* 22186 */ 0241,0201,041,0303,01,0331,0120,0,
-    /* 22194 */ 0240,0201,041,0303,01,0331,0110,0,
-    /* 22202 */ 0241,0201,045,0303,01,0331,0120,0,
-    /* 22210 */ 0240,0201,045,0303,01,0331,0110,0,
-    /* 22218 */ 0241,0201,051,0303,01,0331,0120,0,
-    /* 22226 */ 0240,0201,051,0303,01,0331,0110,0,
-    /* 22234 */ 0241,0201,041,0303,01,0371,0120,0,
-    /* 22242 */ 0240,0201,041,0303,01,0371,0110,0,
-    /* 22250 */ 0241,0201,045,0303,01,0371,0120,0,
-    /* 22258 */ 0240,0201,045,0303,01,0371,0110,0,
-    /* 22266 */ 0241,0201,051,0303,01,0371,0120,0,
-    /* 22274 */ 0240,0201,051,0303,01,0371,0110,0,
-    /* 22282 */ 0241,0202,01,0303,01,046,0120,0,
-    /* 22290 */ 0241,0202,05,0303,01,046,0120,0,
-    /* 22298 */ 0241,0202,011,0303,01,046,0120,0,
-    /* 22306 */ 0241,0202,01,0301,01,047,0120,0,
-    /* 22314 */ 0241,0202,05,0301,01,047,0120,0,
-    /* 22322 */ 0241,0202,011,0301,01,047,0120,0,
-    /* 22330 */ 0241,0202,021,0301,01,047,0120,0,
-    /* 22338 */ 0241,0202,025,0301,01,047,0120,0,
-    /* 22346 */ 0241,0202,031,0301,01,047,0120,0,
-    /* 22354 */ 0241,0202,021,0303,01,046,0120,0,
-    /* 22362 */ 0241,0202,025,0303,01,046,0120,0,
-    /* 22370 */ 0241,0202,031,0303,01,046,0120,0,
-    /* 22378 */ 0241,0202,02,0303,01,046,0120,0,
-    /* 22386 */ 0241,0202,06,0303,01,046,0120,0,
-    /* 22394 */ 0241,0202,012,0303,01,046,0120,0,
-    /* 22402 */ 0241,0202,02,0301,01,047,0120,0,
-    /* 22410 */ 0241,0202,06,0301,01,047,0120,0,
-    /* 22418 */ 0241,0202,012,0301,01,047,0120,0,
-    /* 22426 */ 0241,0202,022,0301,01,047,0120,0,
-    /* 22434 */ 0241,0202,026,0301,01,047,0120,0,
-    /* 22442 */ 0241,0202,032,0301,01,047,0120,0,
-    /* 22450 */ 0241,0202,022,0303,01,046,0120,0,
-    /* 22458 */ 0241,0202,026,0303,01,046,0120,0,
-    /* 22466 */ 0241,0202,032,0303,01,046,0120,0,
-    /* 22474 */ 0241,0201,041,0303,01,0150,0120,0,
-    /* 22482 */ 0240,0201,041,0303,01,0150,0110,0,
-    /* 22490 */ 0241,0201,045,0303,01,0150,0120,0,
-    /* 22498 */ 0240,0201,045,0303,01,0150,0110,0,
-    /* 22506 */ 0241,0201,051,0303,01,0150,0120,0,
-    /* 22514 */ 0240,0201,051,0303,01,0150,0110,0,
-    /* 22522 */ 0241,0201,01,0301,01,0152,0120,0,
-    /* 22530 */ 0240,0201,01,0301,01,0152,0110,0,
-    /* 22538 */ 0241,0201,05,0301,01,0152,0120,0,
-    /* 22546 */ 0240,0201,05,0301,01,0152,0110,0,
-    /* 22554 */ 0241,0201,011,0301,01,0152,0120,0,
-    /* 22562 */ 0240,0201,011,0301,01,0152,0110,0,
-    /* 22570 */ 0241,0201,021,0301,01,0155,0120,0,
-    /* 22578 */ 0240,0201,021,0301,01,0155,0110,0,
-    /* 22586 */ 0241,0201,025,0301,01,0155,0120,0,
-    /* 22594 */ 0240,0201,025,0301,01,0155,0110,0,
-    /* 22602 */ 0241,0201,031,0301,01,0155,0120,0,
-    /* 22610 */ 0240,0201,031,0301,01,0155,0110,0,
-    /* 22618 */ 0241,0201,041,0303,01,0151,0120,0,
-    /* 22626 */ 0240,0201,041,0303,01,0151,0110,0,
-    /* 22634 */ 0241,0201,045,0303,01,0151,0120,0,
-    /* 22642 */ 0240,0201,045,0303,01,0151,0110,0,
-    /* 22650 */ 0241,0201,051,0303,01,0151,0120,0,
-    /* 22658 */ 0240,0201,051,0303,01,0151,0110,0,
-    /* 22666 */ 0241,0201,041,0303,01,0140,0120,0,
-    /* 22674 */ 0240,0201,041,0303,01,0140,0110,0,
-    /* 22682 */ 0241,0201,045,0303,01,0140,0120,0,
-    /* 22690 */ 0240,0201,045,0303,01,0140,0110,0,
-    /* 22698 */ 0241,0201,051,0303,01,0140,0120,0,
-    /* 22706 */ 0240,0201,051,0303,01,0140,0110,0,
-    /* 22714 */ 0241,0201,01,0301,01,0142,0120,0,
-    /* 22722 */ 0240,0201,01,0301,01,0142,0110,0,
-    /* 22730 */ 0241,0201,05,0301,01,0142,0120,0,
-    /* 22738 */ 0240,0201,05,0301,01,0142,0110,0,
-    /* 22746 */ 0241,0201,011,0301,01,0142,0120,0,
-    /* 22754 */ 0240,0201,011,0301,01,0142,0110,0,
-    /* 22762 */ 0241,0201,021,0301,01,0154,0120,0,
-    /* 22770 */ 0240,0201,021,0301,01,0154,0110,0,
-    /* 22778 */ 0241,0201,025,0301,01,0154,0120,0,
-    /* 22786 */ 0240,0201,025,0301,01,0154,0110,0,
-    /* 22794 */ 0241,0201,031,0301,01,0154,0120,0,
-    /* 22802 */ 0240,0201,031,0301,01,0154,0110,0,
-    /* 22810 */ 0241,0201,041,0303,01,0141,0120,0,
-    /* 22818 */ 0240,0201,041,0303,01,0141,0110,0,
-    /* 22826 */ 0241,0201,045,0303,01,0141,0120,0,
-    /* 22834 */ 0240,0201,045,0303,01,0141,0110,0,
-    /* 22842 */ 0241,0201,051,0303,01,0141,0120,0,
-    /* 22850 */ 0240,0201,051,0303,01,0141,0110,0,
-    /* 22858 */ 0241,0201,01,0301,01,0357,0120,0,
-    /* 22866 */ 0240,0201,01,0301,01,0357,0110,0,
-    /* 22874 */ 0241,0201,05,0301,01,0357,0120,0,
-    /* 22882 */ 0240,0201,05,0301,01,0357,0110,0,
-    /* 22890 */ 0241,0201,011,0301,01,0357,0120,0,
-    /* 22898 */ 0240,0201,011,0301,01,0357,0110,0,
-    /* 22906 */ 0241,0201,021,0301,01,0357,0120,0,
-    /* 22914 */ 0240,0201,021,0301,01,0357,0110,0,
-    /* 22922 */ 0241,0201,025,0301,01,0357,0120,0,
-    /* 22930 */ 0240,0201,025,0301,01,0357,0110,0,
-    /* 22938 */ 0241,0201,031,0301,01,0357,0120,0,
-    /* 22946 */ 0240,0201,031,0301,01,0357,0110,0,
-    /* 22954 */ 0250,0202,021,0301,01,0114,0110,0,
-    /* 22962 */ 0250,0202,025,0301,01,0114,0110,0,
-    /* 22970 */ 0250,0202,031,0301,01,0114,0110,0,
-    /* 22978 */ 0250,0202,01,0301,01,0114,0110,0,
-    /* 22986 */ 0250,0202,05,0301,01,0114,0110,0,
-    /* 22994 */ 0250,0202,011,0301,01,0114,0110,0,
-    /* 23002 */ 0241,0202,021,0306,01,0115,0120,0,
-    /* 23010 */ 0240,0202,021,0306,01,0115,0110,0,
-    /* 23018 */ 0241,0202,01,0306,01,0115,0120,0,
-    /* 23026 */ 0240,0202,01,0306,01,0115,0110,0,
-    /* 23034 */ 0250,0202,031,0301,01,0312,0110,0,
-    /* 23042 */ 0250,0202,011,0301,01,0312,0110,0,
-    /* 23050 */ 0241,0202,021,0306,01,0313,0120,0,
-    /* 23058 */ 0240,0202,021,0306,01,0313,0110,0,
-    /* 23066 */ 0241,0202,01,0306,01,0313,0120,0,
-    /* 23074 */ 0240,0202,01,0306,01,0313,0110,0,
-    /* 23082 */ 0250,0202,021,0301,01,0116,0110,0,
-    /* 23090 */ 0250,0202,025,0301,01,0116,0110,0,
-    /* 23098 */ 0250,0202,031,0301,01,0116,0110,0,
-    /* 23106 */ 0250,0202,01,0301,01,0116,0110,0,
-    /* 23114 */ 0250,0202,05,0301,01,0116,0110,0,
-    /* 23122 */ 0250,0202,011,0301,01,0116,0110,0,
-    /* 23130 */ 0241,0202,021,0306,01,0117,0120,0,
-    /* 23138 */ 0240,0202,021,0306,01,0117,0110,0,
-    /* 23146 */ 0241,0202,01,0306,01,0117,0120,0,
-    /* 23154 */ 0240,0202,01,0306,01,0117,0110,0,
-    /* 23162 */ 0250,0202,031,0301,01,0314,0110,0,
-    /* 23170 */ 0250,0202,011,0301,01,0314,0110,0,
-    /* 23178 */ 0241,0202,021,0306,01,0315,0120,0,
-    /* 23186 */ 0240,0202,021,0306,01,0315,0110,0,
-    /* 23194 */ 0241,0202,01,0306,01,0315,0120,0,
-    /* 23202 */ 0240,0202,01,0306,01,0315,0110,0,
-    /* 23210 */ 0241,0202,021,0301,01,054,0120,0,
-    /* 23218 */ 0240,0202,021,0301,01,054,0110,0,
-    /* 23226 */ 0241,0202,025,0301,01,054,0120,0,
-    /* 23234 */ 0240,0202,025,0301,01,054,0110,0,
-    /* 23242 */ 0241,0202,031,0301,01,054,0120,0,
-    /* 23250 */ 0240,0202,031,0301,01,054,0110,0,
-    /* 23258 */ 0241,0202,01,0301,01,054,0120,0,
-    /* 23266 */ 0240,0202,01,0301,01,054,0110,0,
-    /* 23274 */ 0241,0202,05,0301,01,054,0120,0,
-    /* 23282 */ 0240,0202,05,0301,01,054,0110,0,
-    /* 23290 */ 0241,0202,011,0301,01,054,0120,0,
-    /* 23298 */ 0240,0202,011,0301,01,054,0110,0,
-    /* 23306 */ 0241,0202,021,0306,01,055,0120,0,
-    /* 23314 */ 0240,0202,021,0306,01,055,0110,0,
-    /* 23322 */ 0241,0202,01,0306,01,055,0120,0,
-    /* 23330 */ 0240,0202,01,0306,01,055,0110,0,
-    /* 23338 */ 0250,0201,021,0301,01,0121,0110,0,
-    /* 23346 */ 0250,0201,025,0301,01,0121,0110,0,
-    /* 23354 */ 0250,0201,031,0301,01,0121,0110,0,
-    /* 23362 */ 0250,0201,0,0301,01,0121,0110,0,
-    /* 23370 */ 0250,0201,04,0301,01,0121,0110,0,
-    /* 23378 */ 0250,0201,010,0301,01,0121,0110,0,
-    /* 23386 */ 0241,0201,023,0306,01,0121,0120,0,
-    /* 23394 */ 0240,0201,023,0306,01,0121,0110,0,
-    /* 23402 */ 0241,0201,02,0306,01,0121,0120,0,
-    /* 23410 */ 0240,0201,02,0306,01,0121,0110,0,
-    /* 23418 */ 0241,0201,021,0301,01,0134,0120,0,
-    /* 23426 */ 0240,0201,021,0301,01,0134,0110,0,
-    /* 23434 */ 0241,0201,025,0301,01,0134,0120,0,
-    /* 23442 */ 0240,0201,025,0301,01,0134,0110,0,
-    /* 23450 */ 0241,0201,031,0301,01,0134,0120,0,
-    /* 23458 */ 0240,0201,031,0301,01,0134,0110,0,
-    /* 23466 */ 0241,0201,0,0301,01,0134,0120,0,
-    /* 23474 */ 0240,0201,0,0301,01,0134,0110,0,
-    /* 23482 */ 0241,0201,04,0301,01,0134,0120,0,
-    /* 23490 */ 0240,0201,04,0301,01,0134,0110,0,
-    /* 23498 */ 0241,0201,010,0301,01,0134,0120,0,
-    /* 23506 */ 0240,0201,010,0301,01,0134,0110,0,
-    /* 23514 */ 0241,0201,023,0306,01,0134,0120,0,
-    /* 23522 */ 0240,0201,023,0306,01,0134,0110,0,
-    /* 23530 */ 0241,0201,02,0306,01,0134,0120,0,
-    /* 23538 */ 0240,0201,02,0306,01,0134,0110,0,
-    /* 23546 */ 0250,0201,021,0306,01,056,0110,0,
-    /* 23554 */ 0250,0201,0,0306,01,056,0110,0,
-    /* 23562 */ 0241,0201,021,0301,01,025,0120,0,
-    /* 23570 */ 0240,0201,021,0301,01,025,0110,0,
-    /* 23578 */ 0241,0201,025,0301,01,025,0120,0,
-    /* 23586 */ 0240,0201,025,0301,01,025,0110,0,
-    /* 23594 */ 0241,0201,031,0301,01,025,0120,0,
-    /* 23602 */ 0240,0201,031,0301,01,025,0110,0,
-    /* 23610 */ 0241,0201,0,0301,01,025,0120,0,
-    /* 23618 */ 0240,0201,0,0301,01,025,0110,0,
-    /* 23626 */ 0241,0201,04,0301,01,025,0120,0,
-    /* 23634 */ 0240,0201,04,0301,01,025,0110,0,
-    /* 23642 */ 0241,0201,010,0301,01,025,0120,0,
-    /* 23650 */ 0240,0201,010,0301,01,025,0110,0,
-    /* 23658 */ 0241,0201,021,0301,01,024,0120,0,
-    /* 23666 */ 0240,0201,021,0301,01,024,0110,0,
-    /* 23674 */ 0241,0201,025,0301,01,024,0120,0,
-    /* 23682 */ 0240,0201,025,0301,01,024,0110,0,
-    /* 23690 */ 0241,0201,031,0301,01,024,0120,0,
-    /* 23698 */ 0240,0201,031,0301,01,024,0110,0,
-    /* 23706 */ 0241,0201,0,0301,01,024,0120,0,
-    /* 23714 */ 0240,0201,0,0301,01,024,0110,0,
-    /* 23722 */ 0241,0201,04,0301,01,024,0120,0,
-    /* 23730 */ 0240,0201,04,0301,01,024,0110,0,
-    /* 23738 */ 0241,0201,010,0301,01,024,0120,0,
-    /* 23746 */ 0240,0201,010,0301,01,024,0110,0,
-    /* 23754 */ 0241,0201,021,0301,01,0127,0120,0,
-    /* 23762 */ 0240,0201,021,0301,01,0127,0110,0,
-    /* 23770 */ 0241,0201,025,0301,01,0127,0120,0,
-    /* 23778 */ 0240,0201,025,0301,01,0127,0110,0,
-    /* 23786 */ 0241,0201,031,0301,01,0127,0120,0,
-    /* 23794 */ 0240,0201,031,0301,01,0127,0110,0,
-    /* 23802 */ 0241,0201,0,0301,01,0127,0120,0,
-    /* 23810 */ 0240,0201,0,0301,01,0127,0110,0,
-    /* 23818 */ 0241,0201,04,0301,01,0127,0120,0,
-    /* 23826 */ 0240,0201,04,0301,01,0127,0110,0,
-    /* 23834 */ 0241,0201,010,0301,01,0127,0120,0,
-    /* 23842 */ 0240,0201,010,0301,01,0127,0110,0,
-    /* 23850 */ 0273,0320,01,0203,0202,0275,0,
-    /* 23857 */ 0273,0321,01,0203,0202,0275,0,
-    /* 23864 */ 0273,0324,01,0203,0202,0275,0,
-    /* 23871 */ 0273,0320,01,0201,0202,031,0,
-    /* 23878 */ 0273,0321,01,0201,0202,041,0,
-    /* 23885 */ 0273,0324,01,0201,0202,0255,0,
-    /* 23892 */ 0273,0320,01,0203,0200,0275,0,
-    /* 23899 */ 0273,0321,01,0203,0200,0275,0,
-    /* 23906 */ 0273,0324,01,0203,0200,0275,0,
-    /* 23913 */ 0273,0320,01,0201,0200,031,0,
-    /* 23920 */ 0273,0321,01,0201,0200,041,0,
-    /* 23927 */ 0273,0324,01,0201,0200,0255,0,
-    /* 23934 */ 0273,0320,01,0203,0204,0275,0,
-    /* 23941 */ 0273,0321,01,0203,0204,0275,0,
-    /* 23948 */ 0273,0324,01,0203,0204,0275,0,
-    /* 23955 */ 0273,0320,01,0201,0204,031,0,
-    /* 23962 */ 0273,0321,01,0201,0204,041,0,
-    /* 23969 */ 0273,0324,01,0201,0204,0255,0,
-    /* 23976 */ 0320,0326,02,017,0274,0110,0,
-    /* 23983 */ 0321,0326,02,017,0274,0110,0,
-    /* 23990 */ 0324,0326,02,017,0274,0110,0,
-    /* 23997 */ 0320,0326,02,017,0275,0110,0,
-    /* 24004 */ 0321,0326,02,017,0275,0110,0,
-    /* 24011 */ 0324,0326,02,017,0275,0110,0,
-    /* 24018 */ 0320,02,017,0272,0204,025,0,
-    /* 24025 */ 0321,02,017,0272,0204,025,0,
-    /* 24032 */ 0324,02,017,0272,0204,025,0,
-    /* 24039 */ 0273,0320,02,017,0273,0101,0,
-    /* 24046 */ 0273,0321,02,017,0273,0101,0,
-    /* 24053 */ 0273,0324,02,017,0273,0101,0,
-    /* 24060 */ 0273,0320,02,017,0263,0101,0,
-    /* 24067 */ 0273,0321,02,017,0263,0101,0,
-    /* 24074 */ 0273,0324,02,017,0263,0101,0,
-    /* 24081 */ 0273,0320,02,017,0253,0101,0,
-    /* 24088 */ 0273,0321,02,017,0253,0101,0,
-    /* 24095 */ 0273,0324,02,017,0253,0101,0,
-    /* 24102 */ 0273,0320,02,017,0261,0101,0,
-    /* 24109 */ 0273,0321,02,017,0261,0101,0,
-    /* 24116 */ 0273,0324,02,017,0261,0101,0,
-    /* 24123 */ 0273,0317,02,017,0307,0201,0,
-    /* 24130 */ 0361,03,017,070,0202,0110,0,
-    /* 24137 */ 0323,0313,03,017,01,0337,0,
-    /* 24144 */ 0320,0323,02,017,02,0110,0,
-    /* 24151 */ 0321,0323,02,017,02,0110,0,
-    /* 24158 */ 0320,0323,02,017,03,0110,0,
-    /* 24165 */ 0321,0323,02,017,03,0110,0,
-    /* 24172 */ 0271,0320,01,0307,0200,031,0,
-    /* 24179 */ 0271,0321,01,0307,0200,041,0,
-    /* 24186 */ 0271,0324,01,0307,0200,0255,0,
-    /* 24193 */ 0360,0324,02,017,0156,0110,0,
-    /* 24200 */ 0360,0324,02,017,0176,0101,0,
-    /* 24207 */ 0273,0320,01,0203,0201,0275,0,
-    /* 24214 */ 0273,0321,01,0203,0201,0275,0,
-    /* 24221 */ 0273,0324,01,0203,0201,0275,0,
-    /* 24228 */ 0273,0320,01,0201,0201,031,0,
-    /* 24235 */ 0273,0321,01,0201,0201,041,0,
-    /* 24242 */ 0273,0324,01,0201,0201,0255,0,
-    /* 24249 */ 0360,0323,02,017,0153,0110,0,
-    /* 24256 */ 0360,0323,02,017,0143,0110,0,
-    /* 24263 */ 0360,0323,02,017,0147,0110,0,
-    /* 24270 */ 0360,0323,02,017,0374,0110,0,
-    /* 24277 */ 0360,0323,02,017,0376,0110,0,
-    /* 24284 */ 0360,0323,02,017,0354,0110,0,
-    /* 24291 */ 0360,0323,02,017,0355,0110,0,
-    /* 24298 */ 0360,0323,02,017,0334,0110,0,
-    /* 24305 */ 0360,0323,02,017,0335,0110,0,
-    /* 24312 */ 0360,0323,02,017,0375,0110,0,
-    /* 24319 */ 0360,0323,02,017,0333,0110,0,
-    /* 24326 */ 0360,0323,02,017,0337,0110,0,
-    /* 24333 */ 0360,0323,02,017,0164,0110,0,
-    /* 24340 */ 0360,0323,02,017,0166,0110,0,
-    /* 24347 */ 0360,0323,02,017,0165,0110,0,
-    /* 24354 */ 0360,0323,02,017,0144,0110,0,
-    /* 24361 */ 0360,0323,02,017,0146,0110,0,
-    /* 24368 */ 0360,0323,02,017,0145,0110,0,
-    /* 24375 */ 0360,0323,02,017,0365,0110,0,
-    /* 24382 */ 0360,0323,02,017,0345,0110,0,
-    /* 24389 */ 0360,0323,02,017,0325,0110,0,
-    /* 24396 */ 0360,0323,02,017,0353,0110,0,
-    /* 24403 */ 0360,0323,02,017,0362,0110,0,
-    /* 24410 */ 0360,02,017,0162,0206,025,0,
-    /* 24417 */ 0360,0323,02,017,0363,0110,0,
-    /* 24424 */ 0360,02,017,0163,0206,025,0,
-    /* 24431 */ 0360,0323,02,017,0361,0110,0,
-    /* 24438 */ 0360,02,017,0161,0206,025,0,
-    /* 24445 */ 0360,0323,02,017,0342,0110,0,
-    /* 24452 */ 0360,02,017,0162,0204,025,0,
-    /* 24459 */ 0360,0323,02,017,0341,0110,0,
-    /* 24466 */ 0360,02,017,0161,0204,025,0,
-    /* 24473 */ 0360,0323,02,017,0322,0110,0,
-    /* 24480 */ 0360,02,017,0162,0202,025,0,
-    /* 24487 */ 0360,0323,02,017,0323,0110,0,
-    /* 24494 */ 0360,02,017,0163,0202,025,0,
-    /* 24501 */ 0360,0323,02,017,0321,0110,0,
-    /* 24508 */ 0360,02,017,0161,0202,025,0,
-    /* 24515 */ 0360,0323,02,017,0370,0110,0,
-    /* 24522 */ 0360,0323,02,017,0372,0110,0,
-    /* 24529 */ 0360,0323,02,017,0350,0110,0,
-    /* 24536 */ 0360,0323,02,017,0351,0110,0,
-    /* 24543 */ 0360,0323,02,017,0330,0110,0,
-    /* 24550 */ 0360,0323,02,017,0331,0110,0,
-    /* 24557 */ 0360,0323,02,017,0371,0110,0,
-    /* 24564 */ 0360,0323,02,017,0150,0110,0,
-    /* 24571 */ 0360,0323,02,017,0152,0110,0,
-    /* 24578 */ 0360,0323,02,017,0151,0110,0,
-    /* 24585 */ 0360,0323,02,017,0140,0110,0,
-    /* 24592 */ 0360,0323,02,017,0142,0110,0,
-    /* 24599 */ 0360,0323,02,017,0141,0110,0,
-    /* 24606 */ 0360,0323,02,017,0357,0110,0,
-    /* 24613 */ 0273,0320,01,0203,0203,0275,0,
-    /* 24620 */ 0273,0321,01,0203,0203,0275,0,
-    /* 24627 */ 0273,0324,01,0203,0203,0275,0,
-    /* 24634 */ 0273,0320,01,0201,0203,031,0,
-    /* 24641 */ 0273,0321,01,0201,0203,041,0,
-    /* 24648 */ 0273,0324,01,0201,0203,0255,0,
-    /* 24655 */ 0320,02,017,0244,0101,026,0,
-    /* 24662 */ 0321,02,017,0244,0101,026,0,
-    /* 24669 */ 0324,02,017,0244,0101,026,0,
-    /* 24676 */ 0320,02,017,0254,0101,026,0,
-    /* 24683 */ 0321,02,017,0254,0101,026,0,
-    /* 24690 */ 0324,02,017,0254,0101,026,0,
-    /* 24697 */ 0273,0320,01,0203,0205,0275,0,
-    /* 24704 */ 0273,0321,01,0203,0205,0275,0,
-    /* 24711 */ 0273,0324,01,0203,0205,0275,0,
-    /* 24718 */ 0273,0320,01,0201,0205,031,0,
-    /* 24725 */ 0273,0321,01,0201,0205,041,0,
-    /* 24732 */ 0273,0324,01,0201,0205,0255,0,
-    /* 24739 */ 0360,0320,02,017,021,0101,0,
-    /* 24746 */ 0360,0321,02,017,021,0101,0,
-    /* 24753 */ 0360,0320,02,017,023,0110,0,
-    /* 24760 */ 0360,0321,02,017,023,0110,0,
-    /* 24767 */ 0273,0320,02,017,0301,0101,0,
-    /* 24774 */ 0273,0321,02,017,0301,0101,0,
-    /* 24781 */ 0273,0324,02,017,0301,0101,0,
-    /* 24788 */ 0273,0320,01,0203,0206,0275,0,
-    /* 24795 */ 0273,0321,01,0203,0206,0275,0,
-    /* 24802 */ 0273,0324,01,0203,0206,0275,0,
-    /* 24809 */ 0273,0320,01,0201,0206,031,0,
-    /* 24816 */ 0273,0321,01,0201,0206,041,0,
-    /* 24823 */ 0273,0324,01,0201,0206,0255,0,
-    /* 24830 */ 0320,01,017,0330,0100,0110,0,
-    /* 24837 */ 0321,01,017,0330,0100,0110,0,
-    /* 24844 */ 0324,01,017,0330,0100,0110,0,
-    /* 24851 */ 0322,01,017,0330,0200,064,0,
-    /* 24858 */ 0320,01,017,0330,0200,064,0,
-    /* 24865 */ 0321,01,017,0330,0200,064,0,
-    /* 24872 */ 0323,01,017,0330,0200,064,0,
-    /* 24879 */ 0330,0161,0373,01,0351,064,0,
-    /* 24886 */ 0360,02,017,0302,0110,026,0,
-    /* 24893 */ 0333,02,017,0302,0110,026,0,
-    /* 24900 */ 0324,0333,02,017,052,0110,0,
-    /* 24907 */ 0324,0333,02,017,055,0110,0,
-    /* 24914 */ 0324,0333,02,017,054,0110,0,
-    /* 24921 */ 0360,0324,02,017,0120,0110,0,
-    /* 24928 */ 0360,02,017,0306,0110,026,0,
-    /* 24935 */ 0324,0360,02,017,0256,0201,0,
-    /* 24942 */ 0324,0360,02,017,0256,0200,0,
-    /* 24949 */ 0324,0360,02,017,0256,0204,0,
-    /* 24956 */ 0324,0360,02,017,0307,0204,0,
-    /* 24963 */ 0324,0360,02,017,0256,0206,0,
-    /* 24970 */ 0324,0360,02,017,0307,0205,0,
-    /* 24977 */ 0324,0360,02,017,0256,0205,0,
-    /* 24984 */ 0324,0360,02,017,0307,0203,0,
-    /* 24991 */ 0360,0323,02,017,0340,0110,0,
-    /* 24998 */ 0360,0323,02,017,0343,0110,0,
-    /* 25005 */ 0360,02,017,0305,0110,026,0,
-    /* 25012 */ 0360,02,017,0304,0110,026,0,
-    /* 25019 */ 0360,0323,02,017,0356,0110,0,
-    /* 25026 */ 0360,0323,02,017,0336,0110,0,
-    /* 25033 */ 0360,0323,02,017,0352,0110,0,
-    /* 25040 */ 0360,0323,02,017,0332,0110,0,
-    /* 25047 */ 0360,0323,02,017,0344,0110,0,
-    /* 25054 */ 0360,0323,02,017,0366,0110,0,
-    /* 25061 */ 0324,0360,02,017,0303,0101,0,
-    /* 25068 */ 0361,0317,02,017,0176,0101,0,
-    /* 25075 */ 0361,0317,02,017,0156,0110,0,
-    /* 25082 */ 0361,0324,02,017,0156,0110,0,
-    /* 25089 */ 0361,0324,02,017,0176,0101,0,
-    /* 25096 */ 0361,02,017,0305,0110,026,0,
-    /* 25103 */ 0361,02,017,0304,0110,026,0,
-    /* 25110 */ 0360,0323,02,017,0364,0110,0,
-    /* 25117 */ 0361,02,017,0160,0110,022,0,
-    /* 25124 */ 0333,02,017,0160,0110,022,0,
-    /* 25131 */ 0332,02,017,0160,0110,022,0,
-    /* 25138 */ 0361,02,017,0163,0207,025,0,
-    /* 25145 */ 0361,02,017,0161,0206,025,0,
-    /* 25152 */ 0361,02,017,0162,0206,025,0,
-    /* 25159 */ 0361,02,017,0163,0206,025,0,
-    /* 25166 */ 0361,02,017,0161,0204,025,0,
-    /* 25173 */ 0361,02,017,0162,0204,025,0,
-    /* 25180 */ 0361,02,017,0163,0203,025,0,
-    /* 25187 */ 0361,02,017,0161,0202,025,0,
-    /* 25194 */ 0361,02,017,0162,0202,025,0,
-    /* 25201 */ 0361,02,017,0163,0202,025,0,
-    /* 25208 */ 0360,0323,02,017,0373,0110,0,
-    /* 25215 */ 0361,02,017,0302,0110,026,0,
-    /* 25222 */ 0332,02,017,0302,0110,026,0,
-    /* 25229 */ 0317,0332,02,017,055,0110,0,
-    /* 25236 */ 0324,0332,02,017,055,0110,0,
-    /* 25243 */ 0317,0332,02,017,052,0110,0,
-    /* 25250 */ 0324,0332,02,017,052,0110,0,
-    /* 25257 */ 0317,0332,02,017,054,0110,0,
-    /* 25264 */ 0324,0332,02,017,054,0110,0,
-    /* 25271 */ 0361,0324,02,017,0120,0110,0,
-    /* 25278 */ 0361,02,017,0306,0110,026,0,
-    /* 25285 */ 0323,0360,02,017,0170,0101,0,
-    /* 25292 */ 0323,0360,02,017,0171,0110,0,
-    /* 25299 */ 0360,03,017,070,034,0110,0,
-    /* 25306 */ 0361,03,017,070,034,0110,0,
-    /* 25313 */ 0360,03,017,070,035,0110,0,
-    /* 25320 */ 0361,03,017,070,035,0110,0,
-    /* 25327 */ 0360,03,017,070,036,0110,0,
-    /* 25334 */ 0361,03,017,070,036,0110,0,
-    /* 25341 */ 0360,03,017,070,01,0110,0,
-    /* 25348 */ 0361,03,017,070,01,0110,0,
-    /* 25355 */ 0360,03,017,070,02,0110,0,
-    /* 25362 */ 0361,03,017,070,02,0110,0,
-    /* 25369 */ 0360,03,017,070,03,0110,0,
-    /* 25376 */ 0361,03,017,070,03,0110,0,
-    /* 25383 */ 0360,03,017,070,05,0110,0,
-    /* 25390 */ 0361,03,017,070,05,0110,0,
-    /* 25397 */ 0360,03,017,070,06,0110,0,
-    /* 25404 */ 0361,03,017,070,06,0110,0,
-    /* 25411 */ 0360,03,017,070,07,0110,0,
-    /* 25418 */ 0361,03,017,070,07,0110,0,
-    /* 25425 */ 0360,03,017,070,04,0110,0,
-    /* 25432 */ 0361,03,017,070,04,0110,0,
-    /* 25439 */ 0360,03,017,070,013,0110,0,
-    /* 25446 */ 0361,03,017,070,013,0110,0,
-    /* 25453 */ 0360,03,017,070,0,0110,0,
-    /* 25460 */ 0361,03,017,070,0,0110,0,
-    /* 25467 */ 0360,03,017,070,010,0110,0,
-    /* 25474 */ 0361,03,017,070,010,0110,0,
-    /* 25481 */ 0360,03,017,070,011,0110,0,
-    /* 25488 */ 0361,03,017,070,011,0110,0,
-    /* 25495 */ 0360,03,017,070,012,0110,0,
-    /* 25502 */ 0361,03,017,070,012,0110,0,
-    /* 25509 */ 0320,0333,02,017,0275,0110,0,
-    /* 25516 */ 0321,0333,02,017,0275,0110,0,
-    /* 25523 */ 0324,0333,02,017,0275,0110,0,
-    /* 25530 */ 0361,03,017,070,025,0110,0,
-    /* 25537 */ 0361,03,017,070,024,0110,0,
-    /* 25544 */ 0361,03,017,070,052,0110,0,
-    /* 25551 */ 0361,03,017,070,053,0110,0,
-    /* 25558 */ 0361,03,017,070,020,0110,0,
-    /* 25565 */ 0361,03,017,070,051,0110,0,
-    /* 25572 */ 0361,03,017,070,0101,0110,0,
-    /* 25579 */ 0361,03,017,070,074,0110,0,
-    /* 25586 */ 0361,03,017,070,075,0110,0,
-    /* 25593 */ 0361,03,017,070,077,0110,0,
-    /* 25600 */ 0361,03,017,070,076,0110,0,
-    /* 25607 */ 0361,03,017,070,070,0110,0,
-    /* 25614 */ 0361,03,017,070,071,0110,0,
-    /* 25621 */ 0361,03,017,070,073,0110,0,
-    /* 25628 */ 0361,03,017,070,072,0110,0,
-    /* 25635 */ 0361,03,017,070,040,0110,0,
-    /* 25642 */ 0361,03,017,070,041,0110,0,
-    /* 25649 */ 0361,03,017,070,042,0110,0,
-    /* 25656 */ 0361,03,017,070,043,0110,0,
-    /* 25663 */ 0361,03,017,070,044,0110,0,
-    /* 25670 */ 0361,03,017,070,045,0110,0,
-    /* 25677 */ 0361,03,017,070,060,0110,0,
-    /* 25684 */ 0361,03,017,070,061,0110,0,
-    /* 25691 */ 0361,03,017,070,062,0110,0,
-    /* 25698 */ 0361,03,017,070,063,0110,0,
-    /* 25705 */ 0361,03,017,070,064,0110,0,
-    /* 25712 */ 0361,03,017,070,065,0110,0,
-    /* 25719 */ 0361,03,017,070,050,0110,0,
-    /* 25726 */ 0361,03,017,070,0100,0110,0,
-    /* 25733 */ 0361,03,017,070,027,0110,0,
-    /* 25740 */ 0361,03,017,070,067,0110,0,
-    /* 25747 */ 0320,0333,02,017,0270,0110,0,
-    /* 25754 */ 0321,0333,02,017,0270,0110,0,
-    /* 25761 */ 0324,0333,02,017,0270,0110,0,
-    /* 25768 */ 0361,03,017,070,0334,0110,0,
-    /* 25775 */ 0361,03,017,070,0335,0110,0,
-    /* 25782 */ 0361,03,017,070,0336,0110,0,
-    /* 25789 */ 0361,03,017,070,0337,0110,0,
-    /* 25796 */ 0361,03,017,070,0333,0110,0,
-    /* 25803 */ 0261,02,041,01,0334,0120,0,
-    /* 25810 */ 0260,02,041,01,0334,0110,0,
-    /* 25817 */ 0261,02,041,01,0335,0120,0,
-    /* 25824 */ 0260,02,041,01,0335,0110,0,
-    /* 25831 */ 0261,02,041,01,0336,0120,0,
-    /* 25838 */ 0260,02,041,01,0336,0110,0,
-    /* 25845 */ 0261,02,041,01,0337,0120,0,
-    /* 25852 */ 0260,02,041,01,0337,0110,0,
-    /* 25859 */ 0270,02,041,01,0333,0110,0,
-    /* 25866 */ 0261,01,041,01,0130,0120,0,
-    /* 25873 */ 0260,01,041,01,0130,0110,0,
-    /* 25880 */ 0261,01,045,01,0130,0120,0,
-    /* 25887 */ 0260,01,045,01,0130,0110,0,
-    /* 25894 */ 0261,01,040,01,0130,0120,0,
-    /* 25901 */ 0260,01,040,01,0130,0110,0,
-    /* 25908 */ 0261,01,044,01,0130,0120,0,
-    /* 25915 */ 0260,01,044,01,0130,0110,0,
-    /* 25922 */ 0261,01,053,01,0130,0120,0,
-    /* 25929 */ 0260,01,053,01,0130,0110,0,
-    /* 25936 */ 0261,01,052,01,0130,0120,0,
-    /* 25943 */ 0260,01,052,01,0130,0110,0,
-    /* 25950 */ 0261,01,041,01,0320,0120,0,
-    /* 25957 */ 0260,01,041,01,0320,0110,0,
-    /* 25964 */ 0261,01,045,01,0320,0120,0,
-    /* 25971 */ 0260,01,045,01,0320,0110,0,
-    /* 25978 */ 0261,01,043,01,0320,0120,0,
-    /* 25985 */ 0260,01,043,01,0320,0110,0,
-    /* 25992 */ 0261,01,047,01,0320,0120,0,
-    /* 25999 */ 0260,01,047,01,0320,0110,0,
-    /* 26006 */ 0261,01,041,01,0124,0120,0,
-    /* 26013 */ 0260,01,041,01,0124,0110,0,
-    /* 26020 */ 0261,01,045,01,0124,0120,0,
-    /* 26027 */ 0260,01,045,01,0124,0110,0,
-    /* 26034 */ 0261,01,040,01,0124,0120,0,
-    /* 26041 */ 0260,01,040,01,0124,0110,0,
-    /* 26048 */ 0261,01,044,01,0124,0120,0,
-    /* 26055 */ 0260,01,044,01,0124,0110,0,
-    /* 26062 */ 0261,01,041,01,0125,0120,0,
-    /* 26069 */ 0260,01,041,01,0125,0110,0,
-    /* 26076 */ 0261,01,045,01,0125,0120,0,
-    /* 26083 */ 0260,01,045,01,0125,0110,0,
-    /* 26090 */ 0261,01,040,01,0125,0120,0,
-    /* 26097 */ 0260,01,040,01,0125,0110,0,
-    /* 26104 */ 0261,01,044,01,0125,0120,0,
-    /* 26111 */ 0260,01,044,01,0125,0110,0,
-    /* 26118 */ 0270,02,01,01,030,0110,0,
-    /* 26125 */ 0270,02,05,01,030,0110,0,
-    /* 26132 */ 0270,02,05,01,031,0110,0,
-    /* 26139 */ 0270,02,05,01,032,0110,0,
-    /* 26146 */ 0270,01,051,01,057,0110,0,
-    /* 26153 */ 0270,01,050,01,057,0110,0,
-    /* 26160 */ 0270,01,042,01,0346,0110,0,
-    /* 26167 */ 0270,01,046,01,0346,0110,0,
-    /* 26174 */ 0270,01,040,01,0133,0110,0,
-    /* 26181 */ 0270,01,044,01,0133,0110,0,
-    /* 26188 */ 0270,01,043,01,0346,0110,0,
-    /* 26195 */ 0270,01,047,01,0346,0110,0,
-    /* 26202 */ 0270,01,041,01,0132,0110,0,
-    /* 26209 */ 0270,01,045,01,0132,0110,0,
-    /* 26216 */ 0270,01,041,01,0133,0110,0,
-    /* 26223 */ 0270,01,045,01,0133,0110,0,
-    /* 26230 */ 0270,01,040,01,0132,0110,0,
-    /* 26237 */ 0270,01,044,01,0132,0110,0,
-    /* 26244 */ 0270,01,013,01,055,0110,0,
-    /* 26251 */ 0270,01,033,01,055,0110,0,
-    /* 26258 */ 0261,01,053,01,0132,0120,0,
-    /* 26265 */ 0260,01,053,01,0132,0110,0,
-    /* 26272 */ 0261,01,013,01,052,0120,0,
-    /* 26279 */ 0260,01,013,01,052,0110,0,
-    /* 26286 */ 0261,01,033,01,052,0120,0,
-    /* 26293 */ 0260,01,033,01,052,0110,0,
-    /* 26300 */ 0261,01,012,01,052,0120,0,
-    /* 26307 */ 0260,01,012,01,052,0110,0,
-    /* 26314 */ 0261,01,032,01,052,0120,0,
-    /* 26321 */ 0260,01,032,01,052,0110,0,
-    /* 26328 */ 0261,01,052,01,0132,0120,0,
-    /* 26335 */ 0260,01,052,01,0132,0110,0,
-    /* 26342 */ 0270,01,012,01,055,0110,0,
-    /* 26349 */ 0270,01,032,01,055,0110,0,
-    /* 26356 */ 0270,01,041,01,0346,0110,0,
-    /* 26363 */ 0270,01,045,01,0346,0110,0,
-    /* 26370 */ 0270,01,042,01,0133,0110,0,
-    /* 26377 */ 0270,01,046,01,0133,0110,0,
-    /* 26384 */ 0270,01,013,01,054,0110,0,
-    /* 26391 */ 0270,01,033,01,054,0110,0,
-    /* 26398 */ 0270,01,012,01,054,0110,0,
-    /* 26405 */ 0270,01,032,01,054,0110,0,
-    /* 26412 */ 0261,01,041,01,0136,0120,0,
-    /* 26419 */ 0260,01,041,01,0136,0110,0,
-    /* 26426 */ 0261,01,045,01,0136,0120,0,
-    /* 26433 */ 0260,01,045,01,0136,0110,0,
-    /* 26440 */ 0261,01,040,01,0136,0120,0,
-    /* 26447 */ 0260,01,040,01,0136,0110,0,
-    /* 26454 */ 0261,01,044,01,0136,0120,0,
-    /* 26461 */ 0260,01,044,01,0136,0110,0,
-    /* 26468 */ 0261,01,053,01,0136,0120,0,
-    /* 26475 */ 0260,01,053,01,0136,0110,0,
-    /* 26482 */ 0261,01,052,01,0136,0120,0,
-    /* 26489 */ 0260,01,052,01,0136,0110,0,
-    /* 26496 */ 0261,01,041,01,0174,0120,0,
-    /* 26503 */ 0260,01,041,01,0174,0110,0,
-    /* 26510 */ 0261,01,045,01,0174,0120,0,
-    /* 26517 */ 0260,01,045,01,0174,0110,0,
-    /* 26524 */ 0261,01,043,01,0174,0120,0,
-    /* 26531 */ 0260,01,043,01,0174,0110,0,
-    /* 26538 */ 0261,01,047,01,0174,0120,0,
-    /* 26545 */ 0260,01,047,01,0174,0110,0,
-    /* 26552 */ 0261,01,041,01,0175,0120,0,
-    /* 26559 */ 0260,01,041,01,0175,0110,0,
-    /* 26566 */ 0261,01,045,01,0175,0120,0,
-    /* 26573 */ 0260,01,045,01,0175,0110,0,
-    /* 26580 */ 0261,01,043,01,0175,0120,0,
-    /* 26587 */ 0260,01,043,01,0175,0110,0,
-    /* 26594 */ 0261,01,047,01,0175,0120,0,
-    /* 26601 */ 0260,01,047,01,0175,0110,0,
-    /* 26608 */ 0270,01,043,01,0360,0110,0,
-    /* 26615 */ 0270,01,047,01,0360,0110,0,
-    /* 26622 */ 0270,01,040,01,0256,0202,0,
-    /* 26629 */ 0270,01,041,01,0367,0110,0,
-    /* 26636 */ 0261,02,01,01,054,0120,0,
-    /* 26643 */ 0261,02,05,01,054,0120,0,
-    /* 26650 */ 0261,02,01,01,056,0102,0,
-    /* 26657 */ 0261,02,05,01,056,0102,0,
-    /* 26664 */ 0261,02,01,01,055,0120,0,
-    /* 26671 */ 0261,02,05,01,055,0120,0,
-    /* 26678 */ 0261,02,01,01,057,0102,0,
-    /* 26685 */ 0261,02,05,01,057,0102,0,
-    /* 26692 */ 0261,01,041,01,0137,0120,0,
-    /* 26699 */ 0260,01,041,01,0137,0110,0,
-    /* 26706 */ 0261,01,045,01,0137,0120,0,
-    /* 26713 */ 0260,01,045,01,0137,0110,0,
-    /* 26720 */ 0261,01,040,01,0137,0120,0,
-    /* 26727 */ 0260,01,040,01,0137,0110,0,
-    /* 26734 */ 0261,01,044,01,0137,0120,0,
-    /* 26741 */ 0260,01,044,01,0137,0110,0,
-    /* 26748 */ 0261,01,053,01,0137,0120,0,
-    /* 26755 */ 0260,01,053,01,0137,0110,0,
-    /* 26762 */ 0261,01,052,01,0137,0120,0,
-    /* 26769 */ 0260,01,052,01,0137,0110,0,
-    /* 26776 */ 0261,01,041,01,0135,0120,0,
-    /* 26783 */ 0260,01,041,01,0135,0110,0,
-    /* 26790 */ 0261,01,045,01,0135,0120,0,
-    /* 26797 */ 0260,01,045,01,0135,0110,0,
-    /* 26804 */ 0261,01,040,01,0135,0120,0,
-    /* 26811 */ 0260,01,040,01,0135,0110,0,
-    /* 26818 */ 0261,01,044,01,0135,0120,0,
-    /* 26825 */ 0260,01,044,01,0135,0110,0,
-    /* 26832 */ 0261,01,053,01,0135,0120,0,
-    /* 26839 */ 0260,01,053,01,0135,0110,0,
-    /* 26846 */ 0261,01,052,01,0135,0120,0,
-    /* 26853 */ 0260,01,052,01,0135,0110,0,
-    /* 26860 */ 0270,01,041,01,050,0110,0,
-    /* 26867 */ 0270,01,041,01,051,0101,0,
-    /* 26874 */ 0270,01,045,01,050,0110,0,
-    /* 26881 */ 0270,01,045,01,051,0101,0,
-    /* 26888 */ 0270,01,040,01,050,0110,0,
-    /* 26895 */ 0270,01,040,01,051,0101,0,
-    /* 26902 */ 0270,01,044,01,050,0110,0,
-    /* 26909 */ 0270,01,044,01,051,0101,0,
-    /* 26916 */ 0270,01,01,01,0156,0110,0,
-    /* 26923 */ 0270,01,01,01,0176,0101,0,
-    /* 26930 */ 0270,01,042,01,0176,0110,0,
-    /* 26937 */ 0270,01,041,01,0326,0101,0,
-    /* 26944 */ 0270,01,021,01,0156,0110,0,
-    /* 26951 */ 0270,01,021,01,0176,0101,0,
-    /* 26958 */ 0270,01,043,01,022,0110,0,
-    /* 26965 */ 0270,01,047,01,022,0110,0,
-    /* 26972 */ 0270,01,041,01,0157,0110,0,
-    /* 26979 */ 0270,01,041,01,0177,0101,0,
-    /* 26986 */ 0270,01,045,01,0157,0110,0,
-    /* 26993 */ 0270,01,045,01,0177,0101,0,
-    /* 27000 */ 0270,01,042,01,0157,0110,0,
-    /* 27007 */ 0270,01,042,01,0177,0101,0,
-    /* 27014 */ 0270,01,046,01,0157,0110,0,
-    /* 27021 */ 0270,01,046,01,0177,0101,0,
-    /* 27028 */ 0261,01,040,01,022,0120,0,
-    /* 27035 */ 0260,01,040,01,022,0110,0,
-    /* 27042 */ 0261,01,041,01,026,0120,0,
-    /* 27049 */ 0260,01,041,01,026,0110,0,
-    /* 27056 */ 0270,01,041,01,027,0101,0,
-    /* 27063 */ 0261,01,040,01,026,0120,0,
-    /* 27070 */ 0260,01,040,01,026,0110,0,
-    /* 27077 */ 0270,01,040,01,027,0101,0,
-    /* 27084 */ 0261,01,041,01,022,0120,0,
-    /* 27091 */ 0260,01,041,01,022,0110,0,
-    /* 27098 */ 0270,01,041,01,023,0101,0,
-    /* 27105 */ 0270,01,040,01,023,0101,0,
-    /* 27112 */ 0270,01,041,01,0120,0110,0,
-    /* 27119 */ 0270,01,045,01,0120,0110,0,
-    /* 27126 */ 0270,01,040,01,0120,0110,0,
-    /* 27133 */ 0270,01,044,01,0120,0110,0,
-    /* 27140 */ 0270,01,041,01,0347,0101,0,
-    /* 27147 */ 0270,01,045,01,0347,0101,0,
-    /* 27154 */ 0270,02,041,01,052,0110,0,
-    /* 27161 */ 0270,01,041,01,053,0101,0,
-    /* 27168 */ 0270,01,045,01,053,0101,0,
-    /* 27175 */ 0270,01,040,01,053,0101,0,
-    /* 27182 */ 0270,01,044,01,053,0101,0,
-    /* 27189 */ 0261,01,053,01,020,0120,0,
-    /* 27196 */ 0260,01,053,01,020,0110,0,
-    /* 27203 */ 0270,01,053,01,020,0110,0,
-    /* 27210 */ 0261,01,053,01,021,0102,0,
-    /* 27217 */ 0260,01,053,01,021,0101,0,
-    /* 27224 */ 0270,01,053,01,021,0101,0,
-    /* 27231 */ 0270,01,042,01,026,0110,0,
-    /* 27238 */ 0270,01,046,01,026,0110,0,
-    /* 27245 */ 0270,01,042,01,022,0110,0,
-    /* 27252 */ 0270,01,046,01,022,0110,0,
-    /* 27259 */ 0261,01,052,01,020,0120,0,
-    /* 27266 */ 0260,01,052,01,020,0110,0,
-    /* 27273 */ 0270,01,052,01,020,0110,0,
-    /* 27280 */ 0261,01,052,01,021,0102,0,
-    /* 27287 */ 0260,01,052,01,021,0101,0,
-    /* 27294 */ 0270,01,052,01,021,0101,0,
-    /* 27301 */ 0270,01,041,01,020,0110,0,
-    /* 27308 */ 0270,01,041,01,021,0101,0,
-    /* 27315 */ 0270,01,045,01,020,0110,0,
-    /* 27322 */ 0270,01,045,01,021,0101,0,
-    /* 27329 */ 0270,01,040,01,020,0110,0,
-    /* 27336 */ 0270,01,040,01,021,0101,0,
-    /* 27343 */ 0270,01,044,01,020,0110,0,
-    /* 27350 */ 0270,01,044,01,021,0101,0,
-    /* 27357 */ 0261,01,041,01,0131,0120,0,
-    /* 27364 */ 0260,01,041,01,0131,0110,0,
-    /* 27371 */ 0261,01,045,01,0131,0120,0,
-    /* 27378 */ 0260,01,045,01,0131,0110,0,
-    /* 27385 */ 0261,01,040,01,0131,0120,0,
-    /* 27392 */ 0260,01,040,01,0131,0110,0,
-    /* 27399 */ 0261,01,044,01,0131,0120,0,
-    /* 27406 */ 0260,01,044,01,0131,0110,0,
-    /* 27413 */ 0261,01,053,01,0131,0120,0,
-    /* 27420 */ 0260,01,053,01,0131,0110,0,
-    /* 27427 */ 0261,01,052,01,0131,0120,0,
-    /* 27434 */ 0260,01,052,01,0131,0110,0,
-    /* 27441 */ 0261,01,041,01,0126,0120,0,
-    /* 27448 */ 0260,01,041,01,0126,0110,0,
-    /* 27455 */ 0261,01,045,01,0126,0120,0,
-    /* 27462 */ 0260,01,045,01,0126,0110,0,
-    /* 27469 */ 0261,01,040,01,0126,0120,0,
-    /* 27476 */ 0260,01,040,01,0126,0110,0,
-    /* 27483 */ 0261,01,044,01,0126,0120,0,
-    /* 27490 */ 0260,01,044,01,0126,0110,0,
-    /* 27497 */ 0270,02,041,01,034,0110,0,
-    /* 27504 */ 0270,02,041,01,035,0110,0,
-    /* 27511 */ 0270,02,041,01,036,0110,0,
-    /* 27518 */ 0261,01,041,01,0143,0120,0,
-    /* 27525 */ 0260,01,041,01,0143,0110,0,
-    /* 27532 */ 0261,01,041,01,0153,0120,0,
-    /* 27539 */ 0260,01,041,01,0153,0110,0,
-    /* 27546 */ 0261,01,041,01,0147,0120,0,
-    /* 27553 */ 0260,01,041,01,0147,0110,0,
-    /* 27560 */ 0261,02,041,01,053,0120,0,
-    /* 27567 */ 0260,02,041,01,053,0110,0,
-    /* 27574 */ 0261,01,041,01,0374,0120,0,
-    /* 27581 */ 0260,01,041,01,0374,0110,0,
-    /* 27588 */ 0261,01,041,01,0375,0120,0,
-    /* 27595 */ 0260,01,041,01,0375,0110,0,
-    /* 27602 */ 0261,01,041,01,0376,0120,0,
-    /* 27609 */ 0260,01,041,01,0376,0110,0,
-    /* 27616 */ 0261,01,041,01,0324,0120,0,
-    /* 27623 */ 0260,01,041,01,0324,0110,0,
-    /* 27630 */ 0261,01,041,01,0354,0120,0,
-    /* 27637 */ 0260,01,041,01,0354,0110,0,
-    /* 27644 */ 0261,01,041,01,0355,0120,0,
-    /* 27651 */ 0260,01,041,01,0355,0110,0,
-    /* 27658 */ 0261,01,041,01,0334,0120,0,
-    /* 27665 */ 0260,01,041,01,0334,0110,0,
-    /* 27672 */ 0261,01,041,01,0335,0120,0,
-    /* 27679 */ 0260,01,041,01,0335,0110,0,
-    /* 27686 */ 0261,01,041,01,0333,0120,0,
-    /* 27693 */ 0260,01,041,01,0333,0110,0,
-    /* 27700 */ 0261,01,041,01,0337,0120,0,
-    /* 27707 */ 0260,01,041,01,0337,0110,0,
-    /* 27714 */ 0261,01,041,01,0340,0120,0,
-    /* 27721 */ 0260,01,041,01,0340,0110,0,
-    /* 27728 */ 0261,01,041,01,0343,0120,0,
-    /* 27735 */ 0260,01,041,01,0343,0110,0,
-    /* 27742 */ 0261,01,041,01,0164,0120,0,
-    /* 27749 */ 0260,01,041,01,0164,0110,0,
-    /* 27756 */ 0261,01,041,01,0165,0120,0,
-    /* 27763 */ 0260,01,041,01,0165,0110,0,
-    /* 27770 */ 0261,01,041,01,0166,0120,0,
-    /* 27777 */ 0260,01,041,01,0166,0110,0,
-    /* 27784 */ 0261,02,041,01,051,0120,0,
-    /* 27791 */ 0260,02,041,01,051,0110,0,
-    /* 27798 */ 0261,01,041,01,0144,0120,0,
-    /* 27805 */ 0260,01,041,01,0144,0110,0,
-    /* 27812 */ 0261,01,041,01,0145,0120,0,
-    /* 27819 */ 0260,01,041,01,0145,0110,0,
-    /* 27826 */ 0261,01,041,01,0146,0120,0,
-    /* 27833 */ 0260,01,041,01,0146,0110,0,
-    /* 27840 */ 0261,02,041,01,067,0120,0,
-    /* 27847 */ 0260,02,041,01,067,0110,0,
-    /* 27854 */ 0261,02,01,01,015,0120,0,
-    /* 27861 */ 0260,02,01,01,015,0110,0,
-    /* 27868 */ 0261,02,05,01,015,0120,0,
-    /* 27875 */ 0260,02,05,01,015,0110,0,
-    /* 27882 */ 0261,02,01,01,014,0120,0,
-    /* 27889 */ 0260,02,01,01,014,0110,0,
-    /* 27896 */ 0261,02,05,01,014,0120,0,
-    /* 27903 */ 0260,02,05,01,014,0110,0,
-    /* 27910 */ 0261,02,041,01,01,0120,0,
-    /* 27917 */ 0260,02,041,01,01,0110,0,
-    /* 27924 */ 0261,02,041,01,02,0120,0,
-    /* 27931 */ 0260,02,041,01,02,0110,0,
-    /* 27938 */ 0261,02,041,01,03,0120,0,
-    /* 27945 */ 0260,02,041,01,03,0110,0,
-    /* 27952 */ 0270,02,041,01,0101,0110,0,
-    /* 27959 */ 0261,02,041,01,05,0120,0,
-    /* 27966 */ 0260,02,041,01,05,0110,0,
-    /* 27973 */ 0261,02,041,01,06,0120,0,
-    /* 27980 */ 0260,02,041,01,06,0110,0,
-    /* 27987 */ 0261,02,041,01,07,0120,0,
-    /* 27994 */ 0260,02,041,01,07,0110,0,
-    /* 28001 */ 0261,01,041,01,0365,0120,0,
-    /* 28008 */ 0260,01,041,01,0365,0110,0,
-    /* 28015 */ 0261,02,041,01,04,0120,0,
-    /* 28022 */ 0260,02,041,01,04,0110,0,
-    /* 28029 */ 0261,02,041,01,074,0120,0,
-    /* 28036 */ 0260,02,041,01,074,0110,0,
-    /* 28043 */ 0261,01,041,01,0356,0120,0,
-    /* 28050 */ 0260,01,041,01,0356,0110,0,
-    /* 28057 */ 0261,02,041,01,075,0120,0,
-    /* 28064 */ 0260,02,041,01,075,0110,0,
-    /* 28071 */ 0261,01,041,01,0336,0120,0,
-    /* 28078 */ 0260,01,041,01,0336,0110,0,
-    /* 28085 */ 0261,02,041,01,076,0120,0,
-    /* 28092 */ 0260,02,041,01,076,0110,0,
-    /* 28099 */ 0261,02,041,01,077,0120,0,
-    /* 28106 */ 0260,02,041,01,077,0110,0,
-    /* 28113 */ 0261,02,041,01,070,0120,0,
-    /* 28120 */ 0260,02,041,01,070,0110,0,
-    /* 28127 */ 0261,01,041,01,0352,0120,0,
-    /* 28134 */ 0260,01,041,01,0352,0110,0,
-    /* 28141 */ 0261,02,041,01,071,0120,0,
-    /* 28148 */ 0260,02,041,01,071,0110,0,
-    /* 28155 */ 0261,01,041,01,0332,0120,0,
-    /* 28162 */ 0260,01,041,01,0332,0110,0,
-    /* 28169 */ 0261,02,041,01,072,0120,0,
-    /* 28176 */ 0260,02,041,01,072,0110,0,
-    /* 28183 */ 0261,02,041,01,073,0120,0,
-    /* 28190 */ 0260,02,041,01,073,0110,0,
-    /* 28197 */ 0270,01,041,01,0327,0110,0,
-    /* 28204 */ 0270,02,041,01,040,0110,0,
-    /* 28211 */ 0270,02,041,01,041,0110,0,
-    /* 28218 */ 0270,02,041,01,042,0110,0,
-    /* 28225 */ 0270,02,041,01,043,0110,0,
-    /* 28232 */ 0270,02,041,01,044,0110,0,
-    /* 28239 */ 0270,02,041,01,045,0110,0,
-    /* 28246 */ 0270,02,041,01,060,0110,0,
-    /* 28253 */ 0270,02,041,01,061,0110,0,
-    /* 28260 */ 0270,02,041,01,062,0110,0,
-    /* 28267 */ 0270,02,041,01,063,0110,0,
-    /* 28274 */ 0270,02,041,01,064,0110,0,
-    /* 28281 */ 0270,02,041,01,065,0110,0,
-    /* 28288 */ 0261,01,041,01,0344,0120,0,
-    /* 28295 */ 0260,01,041,01,0344,0110,0,
-    /* 28302 */ 0261,02,041,01,013,0120,0,
-    /* 28309 */ 0260,02,041,01,013,0110,0,
-    /* 28316 */ 0261,01,041,01,0345,0120,0,
-    /* 28323 */ 0260,01,041,01,0345,0110,0,
-    /* 28330 */ 0261,01,041,01,0325,0120,0,
-    /* 28337 */ 0260,01,041,01,0325,0110,0,
-    /* 28344 */ 0261,02,041,01,0100,0120,0,
-    /* 28351 */ 0260,02,041,01,0100,0110,0,
-    /* 28358 */ 0261,01,041,01,0364,0120,0,
-    /* 28365 */ 0260,01,041,01,0364,0110,0,
-    /* 28372 */ 0261,02,041,01,050,0120,0,
-    /* 28379 */ 0260,02,041,01,050,0110,0,
-    /* 28386 */ 0261,01,041,01,0353,0120,0,
-    /* 28393 */ 0260,01,041,01,0353,0110,0,
-    /* 28400 */ 0261,01,041,01,0366,0120,0,
-    /* 28407 */ 0260,01,041,01,0366,0110,0,
-    /* 28414 */ 0261,02,041,01,0,0120,0,
-    /* 28421 */ 0260,02,041,01,0,0110,0,
-    /* 28428 */ 0261,02,041,01,010,0120,0,
-    /* 28435 */ 0260,02,041,01,010,0110,0,
-    /* 28442 */ 0261,02,041,01,011,0120,0,
-    /* 28449 */ 0260,02,041,01,011,0110,0,
-    /* 28456 */ 0261,02,041,01,012,0120,0,
-    /* 28463 */ 0260,02,041,01,012,0110,0,
-    /* 28470 */ 0261,01,041,01,0361,0120,0,
-    /* 28477 */ 0260,01,041,01,0361,0110,0,
-    /* 28484 */ 0261,01,041,01,0362,0120,0,
-    /* 28491 */ 0260,01,041,01,0362,0110,0,
-    /* 28498 */ 0261,01,041,01,0363,0120,0,
-    /* 28505 */ 0260,01,041,01,0363,0110,0,
-    /* 28512 */ 0261,01,041,01,0341,0120,0,
-    /* 28519 */ 0260,01,041,01,0341,0110,0,
-    /* 28526 */ 0261,01,041,01,0342,0120,0,
-    /* 28533 */ 0260,01,041,01,0342,0110,0,
-    /* 28540 */ 0261,01,041,01,0321,0120,0,
-    /* 28547 */ 0260,01,041,01,0321,0110,0,
-    /* 28554 */ 0261,01,041,01,0322,0120,0,
-    /* 28561 */ 0260,01,041,01,0322,0110,0,
-    /* 28568 */ 0261,01,041,01,0323,0120,0,
-    /* 28575 */ 0260,01,041,01,0323,0110,0,
-    /* 28582 */ 0270,02,041,01,027,0110,0,
-    /* 28589 */ 0270,02,045,01,027,0110,0,
-    /* 28596 */ 0261,01,041,01,0370,0120,0,
-    /* 28603 */ 0260,01,041,01,0370,0110,0,
-    /* 28610 */ 0261,01,041,01,0371,0120,0,
-    /* 28617 */ 0260,01,041,01,0371,0110,0,
-    /* 28624 */ 0261,01,041,01,0372,0120,0,
-    /* 28631 */ 0260,01,041,01,0372,0110,0,
-    /* 28638 */ 0261,01,041,01,0373,0120,0,
-    /* 28645 */ 0260,01,041,01,0373,0110,0,
-    /* 28652 */ 0261,01,041,01,0350,0120,0,
-    /* 28659 */ 0260,01,041,01,0350,0110,0,
-    /* 28666 */ 0261,01,041,01,0351,0120,0,
-    /* 28673 */ 0260,01,041,01,0351,0110,0,
-    /* 28680 */ 0261,01,041,01,0330,0120,0,
-    /* 28687 */ 0260,01,041,01,0330,0110,0,
-    /* 28694 */ 0261,01,041,01,0331,0120,0,
-    /* 28701 */ 0260,01,041,01,0331,0110,0,
-    /* 28708 */ 0261,01,041,01,0150,0120,0,
-    /* 28715 */ 0260,01,041,01,0150,0110,0,
-    /* 28722 */ 0261,01,041,01,0151,0120,0,
-    /* 28729 */ 0260,01,041,01,0151,0110,0,
-    /* 28736 */ 0261,01,041,01,0152,0120,0,
-    /* 28743 */ 0260,01,041,01,0152,0110,0,
-    /* 28750 */ 0261,01,041,01,0155,0120,0,
-    /* 28757 */ 0260,01,041,01,0155,0110,0,
-    /* 28764 */ 0261,01,041,01,0140,0120,0,
-    /* 28771 */ 0260,01,041,01,0140,0110,0,
-    /* 28778 */ 0261,01,041,01,0141,0120,0,
-    /* 28785 */ 0260,01,041,01,0141,0110,0,
-    /* 28792 */ 0261,01,041,01,0142,0120,0,
-    /* 28799 */ 0260,01,041,01,0142,0110,0,
-    /* 28806 */ 0261,01,041,01,0154,0120,0,
-    /* 28813 */ 0260,01,041,01,0154,0110,0,
-    /* 28820 */ 0261,01,041,01,0357,0120,0,
-    /* 28827 */ 0260,01,041,01,0357,0110,0,
-    /* 28834 */ 0270,01,040,01,0123,0110,0,
-    /* 28841 */ 0270,01,044,01,0123,0110,0,
-    /* 28848 */ 0261,01,052,01,0123,0120,0,
-    /* 28855 */ 0260,01,052,01,0123,0110,0,
-    /* 28862 */ 0270,01,040,01,0122,0110,0,
-    /* 28869 */ 0270,01,044,01,0122,0110,0,
-    /* 28876 */ 0261,01,052,01,0122,0120,0,
-    /* 28883 */ 0260,01,052,01,0122,0110,0,
-    /* 28890 */ 0270,01,041,01,0121,0110,0,
-    /* 28897 */ 0270,01,045,01,0121,0110,0,
-    /* 28904 */ 0270,01,040,01,0121,0110,0,
-    /* 28911 */ 0270,01,044,01,0121,0110,0,
-    /* 28918 */ 0261,01,053,01,0121,0120,0,
-    /* 28925 */ 0260,01,053,01,0121,0110,0,
-    /* 28932 */ 0261,01,052,01,0121,0120,0,
-    /* 28939 */ 0260,01,052,01,0121,0110,0,
-    /* 28946 */ 0270,01,040,01,0256,0203,0,
-    /* 28953 */ 0261,01,041,01,0134,0120,0,
-    /* 28960 */ 0260,01,041,01,0134,0110,0,
-    /* 28967 */ 0261,01,045,01,0134,0120,0,
-    /* 28974 */ 0260,01,045,01,0134,0110,0,
-    /* 28981 */ 0261,01,040,01,0134,0120,0,
-    /* 28988 */ 0260,01,040,01,0134,0110,0,
-    /* 28995 */ 0261,01,044,01,0134,0120,0,
-    /* 29002 */ 0260,01,044,01,0134,0110,0,
-    /* 29009 */ 0261,01,053,01,0134,0120,0,
-    /* 29016 */ 0260,01,053,01,0134,0110,0,
-    /* 29023 */ 0261,01,052,01,0134,0120,0,
-    /* 29030 */ 0260,01,052,01,0134,0110,0,
-    /* 29037 */ 0270,02,01,01,016,0110,0,
-    /* 29044 */ 0270,02,05,01,016,0110,0,
-    /* 29051 */ 0270,02,01,01,017,0110,0,
-    /* 29058 */ 0270,02,05,01,017,0110,0,
-    /* 29065 */ 0270,01,051,01,056,0110,0,
-    /* 29072 */ 0270,01,050,01,056,0110,0,
-    /* 29079 */ 0261,01,041,01,025,0120,0,
-    /* 29086 */ 0260,01,041,01,025,0110,0,
-    /* 29093 */ 0261,01,045,01,025,0120,0,
-    /* 29100 */ 0260,01,045,01,025,0110,0,
-    /* 29107 */ 0261,01,040,01,025,0120,0,
-    /* 29114 */ 0260,01,040,01,025,0110,0,
-    /* 29121 */ 0261,01,044,01,025,0120,0,
-    /* 29128 */ 0260,01,044,01,025,0110,0,
-    /* 29135 */ 0261,01,041,01,024,0120,0,
-    /* 29142 */ 0260,01,041,01,024,0110,0,
-    /* 29149 */ 0261,01,045,01,024,0120,0,
-    /* 29156 */ 0260,01,045,01,024,0110,0,
-    /* 29163 */ 0261,01,040,01,024,0120,0,
-    /* 29170 */ 0260,01,040,01,024,0110,0,
-    /* 29177 */ 0261,01,044,01,024,0120,0,
-    /* 29184 */ 0260,01,044,01,024,0110,0,
-    /* 29191 */ 0261,01,041,01,0127,0120,0,
-    /* 29198 */ 0260,01,041,01,0127,0110,0,
-    /* 29205 */ 0261,01,045,01,0127,0120,0,
-    /* 29212 */ 0260,01,045,01,0127,0110,0,
-    /* 29219 */ 0261,01,040,01,0127,0120,0,
-    /* 29226 */ 0260,01,040,01,0127,0110,0,
-    /* 29233 */ 0261,01,044,01,0127,0120,0,
-    /* 29240 */ 0260,01,044,01,0127,0110,0,
-    /* 29247 */ 0261,02,01,01,0230,0120,0,
-    /* 29254 */ 0261,02,05,01,0230,0120,0,
-    /* 29261 */ 0261,02,021,01,0230,0120,0,
-    /* 29268 */ 0261,02,025,01,0230,0120,0,
-    /* 29275 */ 0261,02,01,01,0250,0120,0,
-    /* 29282 */ 0261,02,05,01,0250,0120,0,
-    /* 29289 */ 0261,02,021,01,0250,0120,0,
-    /* 29296 */ 0261,02,025,01,0250,0120,0,
-    /* 29303 */ 0261,02,01,01,0270,0120,0,
-    /* 29310 */ 0261,02,05,01,0270,0120,0,
-    /* 29317 */ 0261,02,021,01,0270,0120,0,
-    /* 29324 */ 0261,02,025,01,0270,0120,0,
-    /* 29331 */ 0261,02,01,01,0226,0120,0,
-    /* 29338 */ 0261,02,05,01,0226,0120,0,
-    /* 29345 */ 0261,02,021,01,0226,0120,0,
-    /* 29352 */ 0261,02,025,01,0226,0120,0,
-    /* 29359 */ 0261,02,01,01,0246,0120,0,
-    /* 29366 */ 0261,02,05,01,0246,0120,0,
-    /* 29373 */ 0261,02,021,01,0246,0120,0,
-    /* 29380 */ 0261,02,025,01,0246,0120,0,
-    /* 29387 */ 0261,02,01,01,0266,0120,0,
-    /* 29394 */ 0261,02,05,01,0266,0120,0,
-    /* 29401 */ 0261,02,021,01,0266,0120,0,
-    /* 29408 */ 0261,02,025,01,0266,0120,0,
-    /* 29415 */ 0261,02,01,01,0232,0120,0,
-    /* 29422 */ 0261,02,05,01,0232,0120,0,
-    /* 29429 */ 0261,02,021,01,0232,0120,0,
-    /* 29436 */ 0261,02,025,01,0232,0120,0,
-    /* 29443 */ 0261,02,01,01,0252,0120,0,
-    /* 29450 */ 0261,02,05,01,0252,0120,0,
-    /* 29457 */ 0261,02,021,01,0252,0120,0,
-    /* 29464 */ 0261,02,025,01,0252,0120,0,
-    /* 29471 */ 0261,02,01,01,0272,0120,0,
-    /* 29478 */ 0261,02,05,01,0272,0120,0,
-    /* 29485 */ 0261,02,021,01,0272,0120,0,
-    /* 29492 */ 0261,02,025,01,0272,0120,0,
-    /* 29499 */ 0261,02,01,01,0227,0120,0,
-    /* 29506 */ 0261,02,05,01,0227,0120,0,
-    /* 29513 */ 0261,02,021,01,0227,0120,0,
-    /* 29520 */ 0261,02,025,01,0227,0120,0,
-    /* 29527 */ 0261,02,01,01,0247,0120,0,
-    /* 29534 */ 0261,02,05,01,0247,0120,0,
-    /* 29541 */ 0261,02,021,01,0247,0120,0,
-    /* 29548 */ 0261,02,025,01,0247,0120,0,
-    /* 29555 */ 0261,02,01,01,0267,0120,0,
-    /* 29562 */ 0261,02,05,01,0267,0120,0,
-    /* 29569 */ 0261,02,021,01,0267,0120,0,
-    /* 29576 */ 0261,02,025,01,0267,0120,0,
-    /* 29583 */ 0261,02,01,01,0234,0120,0,
-    /* 29590 */ 0261,02,05,01,0234,0120,0,
-    /* 29597 */ 0261,02,021,01,0234,0120,0,
-    /* 29604 */ 0261,02,025,01,0234,0120,0,
-    /* 29611 */ 0261,02,01,01,0254,0120,0,
-    /* 29618 */ 0261,02,05,01,0254,0120,0,
-    /* 29625 */ 0261,02,021,01,0254,0120,0,
-    /* 29632 */ 0261,02,025,01,0254,0120,0,
-    /* 29639 */ 0261,02,01,01,0274,0120,0,
-    /* 29646 */ 0261,02,05,01,0274,0120,0,
-    /* 29653 */ 0261,02,021,01,0274,0120,0,
-    /* 29660 */ 0261,02,025,01,0274,0120,0,
-    /* 29667 */ 0261,02,01,01,0236,0120,0,
-    /* 29674 */ 0261,02,05,01,0236,0120,0,
-    /* 29681 */ 0261,02,021,01,0236,0120,0,
-    /* 29688 */ 0261,02,025,01,0236,0120,0,
-    /* 29695 */ 0261,02,01,01,0256,0120,0,
-    /* 29702 */ 0261,02,05,01,0256,0120,0,
-    /* 29709 */ 0261,02,021,01,0256,0120,0,
-    /* 29716 */ 0261,02,025,01,0256,0120,0,
-    /* 29723 */ 0261,02,01,01,0276,0120,0,
-    /* 29730 */ 0261,02,05,01,0276,0120,0,
-    /* 29737 */ 0261,02,021,01,0276,0120,0,
-    /* 29744 */ 0261,02,025,01,0276,0120,0,
-    /* 29751 */ 0261,02,01,01,0231,0120,0,
-    /* 29758 */ 0261,02,021,01,0231,0120,0,
-    /* 29765 */ 0261,02,01,01,0251,0120,0,
-    /* 29772 */ 0261,02,021,01,0251,0120,0,
-    /* 29779 */ 0261,02,01,01,0271,0120,0,
-    /* 29786 */ 0261,02,021,01,0271,0120,0,
-    /* 29793 */ 0261,02,01,01,0233,0120,0,
-    /* 29800 */ 0261,02,021,01,0233,0120,0,
-    /* 29807 */ 0261,02,01,01,0253,0120,0,
-    /* 29814 */ 0261,02,021,01,0253,0120,0,
-    /* 29821 */ 0261,02,01,01,0273,0120,0,
-    /* 29828 */ 0261,02,021,01,0273,0120,0,
-    /* 29835 */ 0261,02,01,01,0235,0120,0,
-    /* 29842 */ 0261,02,021,01,0235,0120,0,
-    /* 29849 */ 0261,02,01,01,0255,0120,0,
-    /* 29856 */ 0261,02,021,01,0255,0120,0,
-    /* 29863 */ 0261,02,01,01,0275,0120,0,
-    /* 29870 */ 0261,02,021,01,0275,0120,0,
-    /* 29877 */ 0261,02,01,01,0237,0120,0,
-    /* 29884 */ 0261,02,021,01,0237,0120,0,
-    /* 29891 */ 0261,02,01,01,0257,0120,0,
-    /* 29898 */ 0261,02,021,01,0257,0120,0,
-    /* 29905 */ 0261,02,01,01,0277,0120,0,
-    /* 29912 */ 0261,02,021,01,0277,0120,0,
-    /* 29919 */ 0317,0333,02,017,0256,0200,0,
-    /* 29926 */ 0324,0333,02,017,0256,0200,0,
-    /* 29933 */ 0317,0333,02,017,0256,0201,0,
-    /* 29940 */ 0324,0333,02,017,0256,0201,0,
-    /* 29947 */ 0317,0333,02,017,0256,0202,0,
-    /* 29954 */ 0324,0333,02,017,0256,0202,0,
-    /* 29961 */ 0317,0333,02,017,0256,0203,0,
-    /* 29968 */ 0324,0333,02,017,0256,0203,0,
-    /* 29975 */ 0270,02,05,01,023,0110,0,
-    /* 29982 */ 0270,02,01,01,023,0110,0,
-    /* 29989 */ 0270,0111,0,01,022,0200,0,
-    /* 29996 */ 0270,0111,020,01,022,0200,0,
-    /* 30003 */ 0270,0111,0,01,022,0201,0,
-    /* 30010 */ 0270,0111,020,01,022,0201,0,
-    /* 30017 */ 0270,0111,0,01,0201,0110,0,
-    /* 30024 */ 0270,0111,0,01,0201,0100,0,
-    /* 30031 */ 0270,0111,04,01,0201,0110,0,
-    /* 30038 */ 0270,0111,04,01,0201,0100,0,
-    /* 30045 */ 0270,0111,0,01,0200,0110,0,
-    /* 30052 */ 0270,0111,0,01,0200,0100,0,
-    /* 30059 */ 0270,0111,04,01,0200,0110,0,
-    /* 30066 */ 0270,0111,04,01,0200,0100,0,
-    /* 30073 */ 0270,0111,0,01,0203,0110,0,
-    /* 30080 */ 0270,0111,0,01,0203,0100,0,
-    /* 30087 */ 0270,0111,0,01,0202,0110,0,
-    /* 30094 */ 0270,0111,0,01,0202,0100,0,
-    /* 30101 */ 0270,0111,0,01,0302,0110,0,
-    /* 30108 */ 0270,0111,0,01,0302,0100,0,
-    /* 30115 */ 0270,0111,0,01,0303,0110,0,
-    /* 30122 */ 0270,0111,0,01,0303,0100,0,
-    /* 30129 */ 0270,0111,0,01,0301,0110,0,
-    /* 30136 */ 0270,0111,0,01,0301,0100,0,
-    /* 30143 */ 0270,0111,0,01,0313,0110,0,
-    /* 30150 */ 0270,0111,0,01,0313,0100,0,
-    /* 30157 */ 0270,0111,0,01,0322,0110,0,
-    /* 30164 */ 0270,0111,0,01,0322,0100,0,
-    /* 30171 */ 0270,0111,0,01,0323,0110,0,
-    /* 30178 */ 0270,0111,0,01,0323,0100,0,
-    /* 30185 */ 0270,0111,0,01,0321,0110,0,
-    /* 30192 */ 0270,0111,0,01,0321,0100,0,
-    /* 30199 */ 0270,0111,0,01,0333,0110,0,
-    /* 30206 */ 0270,0111,0,01,0333,0100,0,
-    /* 30213 */ 0270,0111,0,01,0326,0110,0,
-    /* 30220 */ 0270,0111,0,01,0326,0100,0,
-    /* 30227 */ 0270,0111,0,01,0327,0110,0,
-    /* 30234 */ 0270,0111,0,01,0327,0100,0,
-    /* 30241 */ 0270,0111,0,01,0306,0110,0,
-    /* 30248 */ 0270,0111,0,01,0306,0100,0,
-    /* 30255 */ 0270,0111,0,01,0307,0110,0,
-    /* 30262 */ 0270,0111,0,01,0307,0100,0,
-    /* 30269 */ 0270,0111,0,01,0341,0110,0,
-    /* 30276 */ 0270,0111,0,01,0341,0100,0,
-    /* 30283 */ 0270,0111,0,01,0343,0110,0,
-    /* 30290 */ 0270,0111,0,01,0343,0100,0,
-    /* 30297 */ 0270,0111,0,01,0342,0110,0,
-    /* 30304 */ 0270,0111,0,01,0342,0100,0,
-    /* 30311 */ 0262,0111,0,01,0220,0110,0,
-    /* 30318 */ 0261,0111,0,01,0220,0100,0,
-    /* 30325 */ 0261,0111,020,01,0220,0120,0,
-    /* 30332 */ 0260,0111,020,01,0220,0110,0,
-    /* 30339 */ 0262,0111,0,01,0222,0110,0,
-    /* 30346 */ 0261,0111,0,01,0222,0100,0,
-    /* 30353 */ 0261,0111,020,01,0222,0120,0,
-    /* 30360 */ 0260,0111,020,01,0222,0110,0,
-    /* 30367 */ 0262,0111,0,01,0223,0110,0,
-    /* 30374 */ 0261,0111,0,01,0223,0100,0,
-    /* 30381 */ 0261,0111,020,01,0223,0120,0,
-    /* 30388 */ 0260,0111,020,01,0223,0110,0,
-    /* 30395 */ 0262,0111,0,01,0221,0110,0,
-    /* 30402 */ 0261,0111,0,01,0221,0100,0,
-    /* 30409 */ 0261,0111,020,01,0221,0120,0,
-    /* 30416 */ 0260,0111,020,01,0221,0110,0,
-    /* 30423 */ 0262,0111,0,01,0230,0110,0,
-    /* 30430 */ 0261,0111,0,01,0230,0100,0,
-    /* 30437 */ 0261,0111,020,01,0230,0120,0,
-    /* 30444 */ 0260,0111,020,01,0230,0110,0,
-    /* 30451 */ 0262,0111,0,01,0232,0110,0,
-    /* 30458 */ 0261,0111,0,01,0232,0100,0,
-    /* 30465 */ 0261,0111,020,01,0232,0120,0,
-    /* 30472 */ 0260,0111,020,01,0232,0110,0,
-    /* 30479 */ 0262,0111,0,01,0233,0110,0,
-    /* 30486 */ 0261,0111,0,01,0233,0100,0,
-    /* 30493 */ 0261,0111,020,01,0233,0120,0,
-    /* 30500 */ 0260,0111,020,01,0233,0110,0,
-    /* 30507 */ 0262,0111,0,01,0231,0110,0,
-    /* 30514 */ 0261,0111,0,01,0231,0100,0,
-    /* 30521 */ 0261,0111,020,01,0231,0120,0,
-    /* 30528 */ 0260,0111,020,01,0231,0110,0,
-    /* 30535 */ 0262,0111,0,01,0224,0110,0,
-    /* 30542 */ 0261,0111,0,01,0224,0100,0,
-    /* 30549 */ 0261,0111,020,01,0224,0120,0,
-    /* 30556 */ 0260,0111,020,01,0224,0110,0,
-    /* 30563 */ 0262,0111,0,01,0226,0110,0,
-    /* 30570 */ 0261,0111,0,01,0226,0100,0,
-    /* 30577 */ 0261,0111,020,01,0226,0120,0,
-    /* 30584 */ 0260,0111,020,01,0226,0110,0,
-    /* 30591 */ 0262,0111,0,01,0227,0110,0,
-    /* 30598 */ 0261,0111,0,01,0227,0100,0,
-    /* 30605 */ 0261,0111,020,01,0227,0120,0,
-    /* 30612 */ 0260,0111,020,01,0227,0110,0,
-    /* 30619 */ 0262,0111,0,01,0225,0110,0,
-    /* 30626 */ 0261,0111,0,01,0225,0100,0,
-    /* 30633 */ 0261,0111,020,01,0225,0120,0,
-    /* 30640 */ 0260,0111,020,01,0225,0110,0,
-    /* 30647 */ 0270,02,045,01,034,0110,0,
-    /* 30654 */ 0270,02,045,01,035,0110,0,
-    /* 30661 */ 0270,02,045,01,036,0110,0,
-    /* 30668 */ 0261,01,045,01,0143,0120,0,
-    /* 30675 */ 0260,01,045,01,0143,0110,0,
-    /* 30682 */ 0261,01,045,01,0153,0120,0,
-    /* 30689 */ 0260,01,045,01,0153,0110,0,
-    /* 30696 */ 0261,02,045,01,053,0120,0,
-    /* 30703 */ 0260,02,045,01,053,0110,0,
-    /* 30710 */ 0261,01,045,01,0147,0120,0,
-    /* 30717 */ 0260,01,045,01,0147,0110,0,
-    /* 30724 */ 0261,01,045,01,0374,0120,0,
-    /* 30731 */ 0260,01,045,01,0374,0110,0,
-    /* 30738 */ 0261,01,045,01,0375,0120,0,
-    /* 30745 */ 0260,01,045,01,0375,0110,0,
-    /* 30752 */ 0261,01,045,01,0376,0120,0,
-    /* 30759 */ 0260,01,045,01,0376,0110,0,
-    /* 30766 */ 0261,01,045,01,0324,0120,0,
-    /* 30773 */ 0260,01,045,01,0324,0110,0,
-    /* 30780 */ 0261,01,045,01,0354,0120,0,
-    /* 30787 */ 0260,01,045,01,0354,0110,0,
-    /* 30794 */ 0261,01,045,01,0355,0120,0,
-    /* 30801 */ 0260,01,045,01,0355,0110,0,
-    /* 30808 */ 0261,01,045,01,0334,0120,0,
-    /* 30815 */ 0260,01,045,01,0334,0110,0,
-    /* 30822 */ 0261,01,045,01,0335,0120,0,
-    /* 30829 */ 0260,01,045,01,0335,0110,0,
-    /* 30836 */ 0261,01,045,01,0333,0120,0,
-    /* 30843 */ 0260,01,045,01,0333,0110,0,
-    /* 30850 */ 0261,01,045,01,0337,0120,0,
-    /* 30857 */ 0260,01,045,01,0337,0110,0,
-    /* 30864 */ 0261,01,045,01,0340,0120,0,
-    /* 30871 */ 0260,01,045,01,0340,0110,0,
-    /* 30878 */ 0261,01,045,01,0343,0120,0,
-    /* 30885 */ 0260,01,045,01,0343,0110,0,
-    /* 30892 */ 0261,01,045,01,0164,0120,0,
-    /* 30899 */ 0260,01,045,01,0164,0110,0,
-    /* 30906 */ 0261,01,045,01,0165,0120,0,
-    /* 30913 */ 0260,01,045,01,0165,0110,0,
-    /* 30920 */ 0261,01,045,01,0166,0120,0,
-    /* 30927 */ 0260,01,045,01,0166,0110,0,
-    /* 30934 */ 0261,02,045,01,051,0120,0,
-    /* 30941 */ 0260,02,045,01,051,0110,0,
-    /* 30948 */ 0261,01,045,01,0144,0120,0,
-    /* 30955 */ 0260,01,045,01,0144,0110,0,
-    /* 30962 */ 0261,01,045,01,0145,0120,0,
-    /* 30969 */ 0260,01,045,01,0145,0110,0,
-    /* 30976 */ 0261,01,045,01,0146,0120,0,
-    /* 30983 */ 0260,01,045,01,0146,0110,0,
-    /* 30990 */ 0261,02,045,01,067,0120,0,
-    /* 30997 */ 0260,02,045,01,067,0110,0,
-    /* 31004 */ 0261,02,045,01,01,0120,0,
-    /* 31011 */ 0260,02,045,01,01,0110,0,
-    /* 31018 */ 0261,02,045,01,02,0120,0,
-    /* 31025 */ 0260,02,045,01,02,0110,0,
-    /* 31032 */ 0261,02,045,01,03,0120,0,
-    /* 31039 */ 0260,02,045,01,03,0110,0,
-    /* 31046 */ 0261,02,045,01,05,0120,0,
-    /* 31053 */ 0260,02,045,01,05,0110,0,
-    /* 31060 */ 0261,02,045,01,06,0120,0,
-    /* 31067 */ 0260,02,045,01,06,0110,0,
-    /* 31074 */ 0261,02,045,01,07,0120,0,
-    /* 31081 */ 0260,02,045,01,07,0110,0,
-    /* 31088 */ 0261,02,045,01,04,0120,0,
-    /* 31095 */ 0260,02,045,01,04,0110,0,
-    /* 31102 */ 0261,01,045,01,0365,0120,0,
-    /* 31109 */ 0260,01,045,01,0365,0110,0,
-    /* 31116 */ 0261,02,045,01,074,0120,0,
-    /* 31123 */ 0260,02,045,01,074,0110,0,
-    /* 31130 */ 0261,01,045,01,0356,0120,0,
-    /* 31137 */ 0260,01,045,01,0356,0110,0,
-    /* 31144 */ 0261,02,045,01,075,0120,0,
-    /* 31151 */ 0260,02,045,01,075,0110,0,
-    /* 31158 */ 0261,01,045,01,0336,0120,0,
-    /* 31165 */ 0260,01,045,01,0336,0110,0,
-    /* 31172 */ 0261,02,045,01,076,0120,0,
-    /* 31179 */ 0260,02,045,01,076,0110,0,
-    /* 31186 */ 0261,02,045,01,077,0120,0,
-    /* 31193 */ 0260,02,045,01,077,0110,0,
-    /* 31200 */ 0261,02,045,01,070,0120,0,
-    /* 31207 */ 0260,02,045,01,070,0110,0,
-    /* 31214 */ 0261,01,045,01,0352,0120,0,
-    /* 31221 */ 0260,01,045,01,0352,0110,0,
-    /* 31228 */ 0261,02,045,01,071,0120,0,
-    /* 31235 */ 0260,02,045,01,071,0110,0,
-    /* 31242 */ 0261,01,045,01,0332,0120,0,
-    /* 31249 */ 0260,01,045,01,0332,0110,0,
-    /* 31256 */ 0261,02,045,01,072,0120,0,
-    /* 31263 */ 0260,02,045,01,072,0110,0,
-    /* 31270 */ 0261,02,045,01,073,0120,0,
-    /* 31277 */ 0260,02,045,01,073,0110,0,
-    /* 31284 */ 0270,01,045,01,0327,0110,0,
-    /* 31291 */ 0270,02,045,01,040,0110,0,
-    /* 31298 */ 0270,02,045,01,041,0110,0,
-    /* 31305 */ 0270,02,045,01,042,0110,0,
-    /* 31312 */ 0270,02,045,01,043,0110,0,
-    /* 31319 */ 0270,02,045,01,044,0110,0,
-    /* 31326 */ 0270,02,045,01,045,0110,0,
-    /* 31333 */ 0270,02,045,01,060,0110,0,
-    /* 31340 */ 0270,02,045,01,061,0110,0,
-    /* 31347 */ 0270,02,045,01,062,0110,0,
-    /* 31354 */ 0270,02,045,01,063,0110,0,
-    /* 31361 */ 0270,02,045,01,064,0110,0,
-    /* 31368 */ 0270,02,045,01,065,0110,0,
-    /* 31375 */ 0261,02,045,01,050,0120,0,
-    /* 31382 */ 0260,02,045,01,050,0110,0,
-    /* 31389 */ 0261,02,045,01,013,0120,0,
-    /* 31396 */ 0260,02,045,01,013,0110,0,
-    /* 31403 */ 0261,01,045,01,0344,0120,0,
-    /* 31410 */ 0260,01,045,01,0344,0110,0,
-    /* 31417 */ 0261,01,045,01,0345,0120,0,
-    /* 31424 */ 0260,01,045,01,0345,0110,0,
-    /* 31431 */ 0261,01,045,01,0325,0120,0,
-    /* 31438 */ 0260,01,045,01,0325,0110,0,
-    /* 31445 */ 0261,02,045,01,0100,0120,0,
-    /* 31452 */ 0260,02,045,01,0100,0110,0,
-    /* 31459 */ 0261,01,045,01,0364,0120,0,
-    /* 31466 */ 0260,01,045,01,0364,0110,0,
-    /* 31473 */ 0261,01,045,01,0353,0120,0,
-    /* 31480 */ 0260,01,045,01,0353,0110,0,
-    /* 31487 */ 0261,01,045,01,0366,0120,0,
-    /* 31494 */ 0260,01,045,01,0366,0110,0,
-    /* 31501 */ 0261,02,045,01,0,0120,0,
-    /* 31508 */ 0260,02,045,01,0,0110,0,
-    /* 31515 */ 0261,02,045,01,010,0120,0,
-    /* 31522 */ 0260,02,045,01,010,0110,0,
-    /* 31529 */ 0261,02,045,01,011,0120,0,
-    /* 31536 */ 0260,02,045,01,011,0110,0,
-    /* 31543 */ 0261,02,045,01,012,0120,0,
-    /* 31550 */ 0260,02,045,01,012,0110,0,
-    /* 31557 */ 0261,01,045,01,0361,0120,0,
-    /* 31564 */ 0260,01,045,01,0361,0110,0,
-    /* 31571 */ 0261,01,045,01,0362,0120,0,
-    /* 31578 */ 0260,01,045,01,0362,0110,0,
-    /* 31585 */ 0261,01,045,01,0363,0120,0,
-    /* 31592 */ 0260,01,045,01,0363,0110,0,
-    /* 31599 */ 0261,01,045,01,0341,0120,0,
-    /* 31606 */ 0260,01,045,01,0341,0110,0,
-    /* 31613 */ 0261,01,045,01,0342,0120,0,
-    /* 31620 */ 0260,01,045,01,0342,0110,0,
-    /* 31627 */ 0261,01,045,01,0321,0120,0,
-    /* 31634 */ 0260,01,045,01,0321,0110,0,
-    /* 31641 */ 0261,01,045,01,0322,0120,0,
-    /* 31648 */ 0260,01,045,01,0322,0110,0,
-    /* 31655 */ 0261,01,045,01,0323,0120,0,
-    /* 31662 */ 0260,01,045,01,0323,0110,0,
-    /* 31669 */ 0261,01,045,01,0370,0120,0,
-    /* 31676 */ 0260,01,045,01,0370,0110,0,
-    /* 31683 */ 0261,01,045,01,0371,0120,0,
-    /* 31690 */ 0260,01,045,01,0371,0110,0,
-    /* 31697 */ 0261,01,045,01,0372,0120,0,
-    /* 31704 */ 0260,01,045,01,0372,0110,0,
-    /* 31711 */ 0261,01,045,01,0373,0120,0,
-    /* 31718 */ 0260,01,045,01,0373,0110,0,
-    /* 31725 */ 0261,01,045,01,0350,0120,0,
-    /* 31732 */ 0260,01,045,01,0350,0110,0,
-    /* 31739 */ 0261,01,045,01,0351,0120,0,
-    /* 31746 */ 0260,01,045,01,0351,0110,0,
-    /* 31753 */ 0261,01,045,01,0330,0120,0,
-    /* 31760 */ 0260,01,045,01,0330,0110,0,
-    /* 31767 */ 0261,01,045,01,0331,0120,0,
-    /* 31774 */ 0260,01,045,01,0331,0110,0,
-    /* 31781 */ 0261,01,045,01,0150,0120,0,
-    /* 31788 */ 0260,01,045,01,0150,0110,0,
-    /* 31795 */ 0261,01,045,01,0151,0120,0,
-    /* 31802 */ 0260,01,045,01,0151,0110,0,
-    /* 31809 */ 0261,01,045,01,0152,0120,0,
-    /* 31816 */ 0260,01,045,01,0152,0110,0,
-    /* 31823 */ 0261,01,045,01,0155,0120,0,
-    /* 31830 */ 0260,01,045,01,0155,0110,0,
-    /* 31837 */ 0261,01,045,01,0140,0120,0,
-    /* 31844 */ 0260,01,045,01,0140,0110,0,
-    /* 31851 */ 0261,01,045,01,0141,0120,0,
-    /* 31858 */ 0260,01,045,01,0141,0110,0,
-    /* 31865 */ 0261,01,045,01,0142,0120,0,
-    /* 31872 */ 0260,01,045,01,0142,0110,0,
-    /* 31879 */ 0261,01,045,01,0154,0120,0,
-    /* 31886 */ 0260,01,045,01,0154,0110,0,
-    /* 31893 */ 0261,01,045,01,0357,0120,0,
-    /* 31900 */ 0260,01,045,01,0357,0110,0,
-    /* 31907 */ 0270,02,045,01,052,0110,0,
-    /* 31914 */ 0270,02,05,01,0132,0110,0,
-    /* 31921 */ 0270,02,01,01,0170,0110,0,
-    /* 31928 */ 0270,02,05,01,0170,0110,0,
-    /* 31935 */ 0270,02,01,01,0171,0110,0,
-    /* 31942 */ 0270,02,05,01,0171,0110,0,
-    /* 31949 */ 0270,02,01,01,0130,0110,0,
-    /* 31956 */ 0270,02,05,01,0130,0110,0,
-    /* 31963 */ 0270,02,01,01,0131,0110,0,
-    /* 31970 */ 0270,02,05,01,0131,0110,0,
-    /* 31977 */ 0261,02,05,01,066,0120,0,
-    /* 31984 */ 0260,02,05,01,066,0110,0,
-    /* 31991 */ 0261,02,05,01,026,0120,0,
-    /* 31998 */ 0260,02,05,01,026,0110,0,
-    /* 32005 */ 0261,02,01,01,0214,0120,0,
-    /* 32012 */ 0260,02,01,01,0214,0110,0,
-    /* 32019 */ 0261,02,05,01,0214,0120,0,
-    /* 32026 */ 0260,02,05,01,0214,0110,0,
-    /* 32033 */ 0261,02,021,01,0214,0120,0,
-    /* 32040 */ 0260,02,021,01,0214,0110,0,
-    /* 32047 */ 0261,02,025,01,0214,0120,0,
-    /* 32054 */ 0260,02,025,01,0214,0110,0,
-    /* 32061 */ 0261,02,01,01,0216,0102,0,
-    /* 32068 */ 0260,02,01,01,0216,0101,0,
-    /* 32075 */ 0261,02,05,01,0216,0102,0,
-    /* 32082 */ 0260,02,05,01,0216,0101,0,
-    /* 32089 */ 0261,02,021,01,0216,0102,0,
-    /* 32096 */ 0260,02,021,01,0216,0101,0,
-    /* 32103 */ 0261,02,025,01,0216,0102,0,
-    /* 32110 */ 0260,02,025,01,0216,0101,0,
-    /* 32117 */ 0261,02,01,01,0107,0120,0,
-    /* 32124 */ 0260,02,01,01,0107,0110,0,
-    /* 32131 */ 0261,02,021,01,0107,0120,0,
-    /* 32138 */ 0260,02,021,01,0107,0110,0,
-    /* 32145 */ 0261,02,05,01,0107,0120,0,
-    /* 32152 */ 0260,02,05,01,0107,0110,0,
-    /* 32159 */ 0261,02,025,01,0107,0120,0,
-    /* 32166 */ 0260,02,025,01,0107,0110,0,
-    /* 32173 */ 0261,02,01,01,0106,0120,0,
-    /* 32180 */ 0260,02,01,01,0106,0110,0,
-    /* 32187 */ 0261,02,05,01,0106,0120,0,
-    /* 32194 */ 0260,02,05,01,0106,0110,0,
-    /* 32201 */ 0261,02,01,01,0105,0120,0,
-    /* 32208 */ 0260,02,01,01,0105,0110,0,
-    /* 32215 */ 0261,02,021,01,0105,0120,0,
-    /* 32222 */ 0260,02,021,01,0105,0110,0,
-    /* 32229 */ 0261,02,05,01,0105,0120,0,
-    /* 32236 */ 0260,02,05,01,0105,0110,0,
-    /* 32243 */ 0261,02,025,01,0105,0120,0,
-    /* 32250 */ 0260,02,025,01,0105,0110,0,
-    /* 32257 */ 0261,02,0,01,0362,0120,0,
-    /* 32264 */ 0261,02,020,01,0362,0120,0,
-    /* 32271 */ 0262,02,0,01,0367,0110,0,
-    /* 32278 */ 0262,02,020,01,0367,0110,0,
-    /* 32285 */ 0260,0111,0,01,02,0216,0,
-    /* 32292 */ 0260,0111,020,01,02,0216,0,
-    /* 32299 */ 0260,0111,0,01,01,0215,0,
-    /* 32306 */ 0260,0111,020,01,01,0215,0,
-    /* 32313 */ 0260,02,0,01,0363,0213,0,
-    /* 32320 */ 0260,02,020,01,0363,0213,0,
-    /* 32327 */ 0260,0111,0,01,01,0216,0,
-    /* 32334 */ 0260,0111,020,01,01,0216,0,
-    /* 32341 */ 0260,0111,0,01,01,0211,0,
-    /* 32348 */ 0260,0111,020,01,01,0211,0,
-    /* 32355 */ 0260,0111,0,01,01,0212,0,
-    /* 32362 */ 0260,0111,020,01,01,0212,0,
-    /* 32369 */ 0260,0111,0,01,02,0211,0,
-    /* 32376 */ 0260,0111,020,01,02,0211,0,
-    /* 32383 */ 0260,02,0,01,0363,0212,0,
-    /* 32390 */ 0260,02,020,01,0363,0212,0,
-    /* 32397 */ 0260,02,0,01,0363,0211,0,
-    /* 32404 */ 0260,02,020,01,0363,0211,0,
-    /* 32411 */ 0260,0111,0,01,01,0213,0,
-    /* 32418 */ 0260,0111,020,01,01,0213,0,
-    /* 32425 */ 0262,02,0,01,0365,0110,0,
-    /* 32432 */ 0262,02,020,01,0365,0110,0,
-    /* 32439 */ 0261,02,03,01,0366,0120,0,
-    /* 32446 */ 0261,02,023,01,0366,0120,0,
-    /* 32453 */ 0261,02,03,01,0365,0120,0,
-    /* 32460 */ 0261,02,023,01,0365,0120,0,
-    /* 32467 */ 0261,02,02,01,0365,0120,0,
-    /* 32474 */ 0261,02,022,01,0365,0120,0,
-    /* 32481 */ 0262,02,02,01,0367,0110,0,
-    /* 32488 */ 0262,02,022,01,0367,0110,0,
-    /* 32495 */ 0262,02,01,01,0367,0110,0,
-    /* 32502 */ 0262,02,021,01,0367,0110,0,
-    /* 32509 */ 0262,02,03,01,0367,0110,0,
-    /* 32516 */ 0262,02,023,01,0367,0110,0,
-    /* 32523 */ 0320,0333,02,017,0274,0110,0,
-    /* 32530 */ 0321,0333,02,017,0274,0110,0,
-    /* 32537 */ 0324,0333,02,017,0274,0110,0,
-    /* 32544 */ 0260,0111,0,01,01,0214,0,
-    /* 32551 */ 0260,0111,020,01,01,0214,0,
-    /* 32558 */ 0260,0111,0,01,01,0217,0,
-    /* 32565 */ 0260,0111,020,01,01,0217,0,
-    /* 32572 */ 0323,0333,02,017,032,0110,0,
-    /* 32579 */ 0323,0332,02,017,032,0110,0,
-    /* 32586 */ 0323,0332,02,017,033,0110,0,
-    /* 32593 */ 0261,01,05,01,0112,0120,0,
-    /* 32600 */ 0261,01,025,01,0112,0120,0,
-    /* 32607 */ 0261,01,024,01,0112,0120,0,
-    /* 32614 */ 0261,01,04,01,0112,0120,0,
-    /* 32621 */ 0261,01,05,01,0101,0120,0,
-    /* 32628 */ 0261,01,025,01,0101,0120,0,
-    /* 32635 */ 0261,01,05,01,0102,0120,0,
-    /* 32642 */ 0261,01,025,01,0102,0120,0,
-    /* 32649 */ 0261,01,024,01,0102,0120,0,
-    /* 32656 */ 0261,01,04,01,0102,0120,0,
-    /* 32663 */ 0261,01,024,01,0101,0120,0,
-    /* 32670 */ 0261,01,04,01,0101,0120,0,
-    /* 32677 */ 0270,01,01,01,0220,0110,0,
-    /* 32684 */ 0270,01,01,01,0221,0101,0,
-    /* 32691 */ 0270,01,01,01,0222,0110,0,
-    /* 32698 */ 0270,01,01,01,0223,0110,0,
-    /* 32705 */ 0270,01,021,01,0220,0110,0,
-    /* 32712 */ 0270,01,021,01,0221,0101,0,
-    /* 32719 */ 0270,01,03,01,0222,0110,0,
-    /* 32726 */ 0270,01,03,01,0223,0110,0,
-    /* 32733 */ 0270,01,020,01,0220,0110,0,
-    /* 32740 */ 0270,01,020,01,0221,0101,0,
-    /* 32747 */ 0270,01,023,01,0222,0110,0,
-    /* 32754 */ 0270,01,023,01,0223,0110,0,
-    /* 32761 */ 0270,01,0,01,0220,0110,0,
-    /* 32768 */ 0270,01,0,01,0221,0101,0,
-    /* 32775 */ 0270,01,0,01,0222,0110,0,
-    /* 32782 */ 0270,01,0,01,0223,0110,0,
-    /* 32789 */ 0270,01,01,01,0104,0110,0,
-    /* 32796 */ 0270,01,021,01,0104,0110,0,
-    /* 32803 */ 0270,01,020,01,0104,0110,0,
-    /* 32810 */ 0270,01,0,01,0104,0110,0,
-    /* 32817 */ 0261,01,05,01,0105,0120,0,
-    /* 32824 */ 0261,01,025,01,0105,0120,0,
-    /* 32831 */ 0261,01,024,01,0105,0120,0,
-    /* 32838 */ 0270,01,01,01,0230,0110,0,
-    /* 32845 */ 0270,01,021,01,0230,0110,0,
-    /* 32852 */ 0270,01,020,01,0230,0110,0,
-    /* 32859 */ 0270,01,0,01,0230,0110,0,
-    /* 32866 */ 0261,01,04,01,0105,0120,0,
-    /* 32873 */ 0270,01,01,01,0231,0110,0,
-    /* 32880 */ 0270,01,021,01,0231,0110,0,
-    /* 32887 */ 0270,01,020,01,0231,0110,0,
-    /* 32894 */ 0270,01,0,01,0231,0110,0,
-    /* 32901 */ 0261,01,05,01,0113,0120,0,
-    /* 32908 */ 0261,01,024,01,0113,0120,0,
-    /* 32915 */ 0261,01,04,01,0113,0120,0,
-    /* 32922 */ 0261,01,05,01,0106,0120,0,
-    /* 32929 */ 0261,01,025,01,0106,0120,0,
-    /* 32936 */ 0261,01,024,01,0106,0120,0,
-    /* 32943 */ 0261,01,04,01,0106,0120,0,
-    /* 32950 */ 0261,01,05,01,0107,0120,0,
-    /* 32957 */ 0261,01,025,01,0107,0120,0,
-    /* 32964 */ 0261,01,024,01,0107,0120,0,
-    /* 32971 */ 0261,01,04,01,0107,0120,0,
-    /* 32978 */ 03,017,072,0314,0110,022,0,
-    /* 32985 */ 0323,0333,02,017,0307,0207,0,
-    /* 32992 */ 0273,0320,01,021,0101,0,
-    /* 32998 */ 0273,0321,01,021,0101,0,
-    /* 33004 */ 0273,0324,01,021,0101,0,
-    /* 33010 */ 0273,01,0200,0202,021,0,
-    /* 33016 */ 0273,01,0202,0202,021,0,
-    /* 33022 */ 0273,0320,01,01,0101,0,
-    /* 33028 */ 0273,0321,01,01,0101,0,
-    /* 33034 */ 0273,0324,01,01,0101,0,
-    /* 33040 */ 0273,01,0200,0200,021,0,
-    /* 33046 */ 0273,01,0202,0200,021,0,
-    /* 33052 */ 0273,0320,01,041,0101,0,
-    /* 33058 */ 0273,0321,01,041,0101,0,
-    /* 33064 */ 0273,0324,01,041,0101,0,
-    /* 33070 */ 0273,01,0200,0204,021,0,
-    /* 33076 */ 0273,01,0202,0204,021,0,
-    /* 33082 */ 0321,01,017,010,0310,0,
-    /* 33088 */ 0324,01,017,010,0310,0,
-    /* 33094 */ 0320,02,017,0243,0101,0,
-    /* 33100 */ 0321,02,017,0243,0101,0,
-    /* 33106 */ 0324,02,017,0243,0101,0,
-    /* 33112 */ 0322,01,0232,034,074,0,
-    /* 33118 */ 0320,01,0232,034,074,0,
-    /* 33124 */ 0321,01,0232,034,074,0,
-    /* 33130 */ 0322,01,0232,035,030,0,
-    /* 33136 */ 0320,01,0232,031,030,0,
-    /* 33142 */ 0321,01,0232,041,030,0,
-    /* 33148 */ 0320,01,0203,0207,0275,0,
-    /* 33154 */ 0321,01,0203,0207,0275,0,
-    /* 33160 */ 0324,01,0203,0207,0275,0,
-    /* 33166 */ 0320,01,0201,0207,031,0,
-    /* 33172 */ 0321,01,0201,0207,041,0,
-    /* 33178 */ 0324,01,0201,0207,0255,0,
-    /* 33184 */ 0273,02,017,0260,0101,0,
-    /* 33190 */ 0320,02,017,0247,0101,0,
-    /* 33196 */ 0321,02,017,0247,0101,0,
-    /* 33202 */ 0324,02,017,0307,0201,0,
-    /* 33208 */ 0273,0320,01,0377,0201,0,
-    /* 33214 */ 0273,0321,01,0377,0201,0,
-    /* 33220 */ 0273,0324,01,0377,0201,0,
-    /* 33226 */ 0320,02,017,0257,0110,0,
-    /* 33232 */ 0321,02,017,0257,0110,0,
-    /* 33238 */ 0324,02,017,0257,0110,0,
-    /* 33244 */ 0320,01,0153,0110,0276,0,
-    /* 33250 */ 0320,01,0151,0110,032,0,
-    /* 33256 */ 0321,01,0153,0110,0276,0,
-    /* 33262 */ 0321,01,0151,0110,042,0,
-    /* 33268 */ 0324,01,0153,0110,0276,0,
-    /* 33274 */ 0324,01,0151,0110,042,0,
-    /* 33280 */ 0324,01,0151,0110,0256,0,
-    /* 33286 */ 0320,01,0153,0100,0275,0,
-    /* 33292 */ 0320,01,0151,0100,031,0,
-    /* 33298 */ 0321,01,0153,0100,0275,0,
-    /* 33304 */ 0321,01,0151,0100,041,0,
-    /* 33310 */ 0324,01,0153,0100,0275,0,
-    /* 33316 */ 0324,01,0151,0100,0255,0,
-    /* 33322 */ 0273,0320,01,0377,0200,0,
-    /* 33328 */ 0273,0321,01,0377,0200,0,
-    /* 33334 */ 0273,0324,01,0377,0200,0,
-    /* 33340 */ 0310,03,017,01,0337,0,
-    /* 33346 */ 0311,03,017,01,0337,0,
-    /* 33352 */ 0322,01,0352,034,074,0,
-    /* 33358 */ 0320,01,0352,034,074,0,
-    /* 33364 */ 0321,01,0352,034,074,0,
-    /* 33370 */ 0322,01,0352,035,030,0,
-    /* 33376 */ 0320,01,0352,031,030,0,
-    /* 33382 */ 0321,01,0352,041,030,0,
-    /* 33388 */ 0322,02,017,0270,064,0,
-    /* 33394 */ 0320,02,017,0270,064,0,
-    /* 33400 */ 0321,02,017,0270,064,0,
-    /* 33406 */ 0320,02,017,0,0206,0,
-    /* 33412 */ 0321,02,017,0,0206,0,
-    /* 33418 */ 0320,02,017,02,0110,0,
-    /* 33424 */ 0321,02,017,02,0110,0,
-    /* 33430 */ 0324,02,017,02,0110,0,
-    /* 33436 */ 0360,03,017,0256,0350,0,
-    /* 33442 */ 0320,02,017,0264,0110,0,
-    /* 33448 */ 0321,02,017,0264,0110,0,
-    /* 33454 */ 0324,02,017,0264,0110,0,
-    /* 33460 */ 0320,02,017,0265,0110,0,
-    /* 33466 */ 0321,02,017,0265,0110,0,
-    /* 33472 */ 0324,02,017,0265,0110,0,
-    /* 33478 */ 0320,02,017,03,0110,0,
-    /* 33484 */ 0321,02,017,03,0110,0,
-    /* 33490 */ 0324,02,017,03,0110,0,
-    /* 33496 */ 0320,02,017,0262,0110,0,
-    /* 33502 */ 0321,02,017,0262,0110,0,
-    /* 33508 */ 0324,02,017,0262,0110,0,
-    /* 33514 */ 0360,03,017,0256,0360,0,
-    /* 33520 */ 0334,02,017,040,0101,0,
-    /* 33526 */ 0323,02,017,040,0101,0,
-    /* 33532 */ 0334,02,017,042,0110,0,
-    /* 33538 */ 0323,02,017,042,0110,0,
-    /* 33544 */ 0323,02,017,041,0101,0,
-    /* 33550 */ 0323,02,017,043,0110,0,
-    /* 33556 */ 0271,0320,01,0211,0101,0,
-    /* 33562 */ 0271,0321,01,0211,0101,0,
-    /* 33568 */ 0271,0324,01,0211,0101,0,
-    /* 33574 */ 0271,01,0306,0200,021,0,
-    /* 33580 */ 0360,02,017,0156,0110,0,
-    /* 33586 */ 0360,02,017,0176,0101,0,
-    /* 33592 */ 0360,02,017,0157,0110,0,
-    /* 33598 */ 0360,02,017,0177,0101,0,
-    /* 33604 */ 0320,02,017,0276,0110,0,
-    /* 33610 */ 0321,02,017,0276,0110,0,
-    /* 33616 */ 0321,02,017,0277,0110,0,
-    /* 33622 */ 0324,02,017,0276,0110,0,
-    /* 33628 */ 0324,02,017,0277,0110,0,
-    /* 33634 */ 0320,02,017,0266,0110,0,
-    /* 33640 */ 0321,02,017,0266,0110,0,
-    /* 33646 */ 0321,02,017,0267,0110,0,
-    /* 33652 */ 0324,02,017,0266,0110,0,
-    /* 33658 */ 0324,02,017,0267,0110,0,
-    /* 33664 */ 0273,0320,01,0367,0203,0,
-    /* 33670 */ 0273,0321,01,0367,0203,0,
-    /* 33676 */ 0273,0324,01,0367,0203,0,
-    /* 33682 */ 0320,02,017,037,0200,0,
-    /* 33688 */ 0321,02,017,037,0200,0,
-    /* 33694 */ 0324,02,017,037,0200,0,
-    /* 33700 */ 0273,0320,01,0367,0202,0,
-    /* 33706 */ 0273,0321,01,0367,0202,0,
-    /* 33712 */ 0273,0324,01,0367,0202,0,
-    /* 33718 */ 0273,0320,01,011,0101,0,
-    /* 33724 */ 0273,0321,01,011,0101,0,
-    /* 33730 */ 0273,0324,01,011,0101,0,
-    /* 33736 */ 0273,01,0200,0201,021,0,
-    /* 33742 */ 0273,01,0202,0201,021,0,
-    /* 33748 */ 0323,02,017,0121,0110,0,
-    /* 33754 */ 0323,02,017,0120,0110,0,
-    /* 33760 */ 0323,02,017,0122,0110,0,
-    /* 33766 */ 0323,02,017,0135,0110,0,
-    /* 33772 */ 0323,02,017,0131,0110,0,
-    /* 33778 */ 0323,02,017,0125,0110,0,
-    /* 33784 */ 0320,01,0301,0202,025,0,
-    /* 33790 */ 0321,01,0301,0202,025,0,
-    /* 33796 */ 0324,01,0301,0202,025,0,
-    /* 33802 */ 0320,01,0301,0203,025,0,
-    /* 33808 */ 0321,01,0301,0203,025,0,
-    /* 33814 */ 0324,01,0301,0203,025,0,
-    /* 33820 */ 0321,02,017,066,0200,0,
-    /* 33826 */ 0320,01,0301,0200,025,0,
-    /* 33832 */ 0321,01,0301,0200,025,0,
-    /* 33838 */ 0324,01,0301,0200,025,0,
-    /* 33844 */ 0320,01,0301,0201,025,0,
-    /* 33850 */ 0321,01,0301,0201,025,0,
-    /* 33856 */ 0324,01,0301,0201,025,0,
-    /* 33862 */ 0320,01,0301,0204,025,0,
-    /* 33868 */ 0321,01,0301,0204,025,0,
-    /* 33874 */ 0324,01,0301,0204,025,0,
-    /* 33880 */ 0320,01,0301,0207,025,0,
-    /* 33886 */ 0321,01,0301,0207,025,0,
-    /* 33892 */ 0324,01,0301,0207,025,0,
-    /* 33898 */ 0273,0320,01,031,0101,0,
-    /* 33904 */ 0273,0321,01,031,0101,0,
-    /* 33910 */ 0273,0324,01,031,0101,0,
-    /* 33916 */ 0273,01,0200,0203,021,0,
-    /* 33922 */ 0273,01,0202,0203,021,0,
-    /* 33928 */ 0360,03,017,0256,0370,0,
-    /* 33934 */ 0320,02,017,0245,0101,0,
-    /* 33940 */ 0321,02,017,0245,0101,0,
-    /* 33946 */ 0324,02,017,0245,0101,0,
-    /* 33952 */ 0320,01,0301,0205,025,0,
-    /* 33958 */ 0321,01,0301,0205,025,0,
-    /* 33964 */ 0324,01,0301,0205,025,0,
-    /* 33970 */ 0320,02,017,0255,0101,0,
-    /* 33976 */ 0321,02,017,0255,0101,0,
-    /* 33982 */ 0324,02,017,0255,0101,0,
-    /* 33988 */ 0320,02,017,0,0200,0,
-    /* 33994 */ 0321,02,017,0,0200,0,
-    /* 34000 */ 0323,02,017,0,0200,0,
-    /* 34006 */ 0324,02,017,0,0200,0,
-    /* 34012 */ 0320,02,017,01,0204,0,
-    /* 34018 */ 0321,02,017,01,0204,0,
-    /* 34024 */ 0324,02,017,01,0204,0,
-    /* 34030 */ 0320,02,017,0,0201,0,
-    /* 34036 */ 0321,02,017,0,0201,0,
-    /* 34042 */ 0324,02,017,0,0201,0,
-    /* 34048 */ 0273,0320,01,051,0101,0,
-    /* 34054 */ 0273,0321,01,051,0101,0,
-    /* 34060 */ 0273,0324,01,051,0101,0,
-    /* 34066 */ 0273,01,0200,0205,021,0,
-    /* 34072 */ 0273,01,0202,0205,021,0,
-    /* 34078 */ 0320,01,0367,0200,031,0,
-    /* 34084 */ 0321,01,0367,0200,041,0,
-    /* 34090 */ 0324,01,0367,0200,0255,0,
-    /* 34096 */ 0320,02,017,0271,0110,0,
-    /* 34102 */ 0321,02,017,0271,0110,0,
-    /* 34108 */ 0324,02,017,0271,0110,0,
-    /* 34114 */ 0360,02,017,020,0101,0,
-    /* 34120 */ 0360,02,017,022,0110,0,
-    /* 34126 */ 0321,02,017,067,0200,0,
-    /* 34132 */ 0273,02,017,0300,0101,0,
-    /* 34138 */ 0320,02,017,0246,0110,0,
-    /* 34144 */ 0321,02,017,0246,0110,0,
-    /* 34150 */ 0272,0320,01,0207,0110,0,
-    /* 34156 */ 0272,0321,01,0207,0110,0,
-    /* 34162 */ 0272,0324,01,0207,0110,0,
-    /* 34168 */ 0272,0320,01,0207,0101,0,
-    /* 34174 */ 0272,0321,01,0207,0101,0,
-    /* 34180 */ 0272,0324,01,0207,0101,0,
-    /* 34186 */ 0273,0320,01,061,0101,0,
-    /* 34192 */ 0273,0321,01,061,0101,0,
-    /* 34198 */ 0273,0324,01,061,0101,0,
-    /* 34204 */ 0273,01,0200,0206,021,0,
-    /* 34210 */ 0273,01,0202,0206,021,0,
-    /* 34216 */ 01,017,0330,0220,0200,0,
-    /* 34222 */ 0360,02,017,0130,0110,0,
-    /* 34228 */ 0333,02,017,0130,0110,0,
-    /* 34234 */ 0360,02,017,0125,0110,0,
-    /* 34240 */ 0360,02,017,0124,0110,0,
-    /* 34246 */ 0360,02,017,057,0110,0,
-    /* 34252 */ 0360,02,017,052,0110,0,
-    /* 34258 */ 0360,02,017,055,0110,0,
-    /* 34264 */ 0360,02,017,054,0110,0,
-    /* 34270 */ 0360,02,017,0136,0110,0,
-    /* 34276 */ 0333,02,017,0136,0110,0,
-    /* 34282 */ 0360,02,017,0256,0202,0,
-    /* 34288 */ 0360,02,017,0137,0110,0,
-    /* 34294 */ 0333,02,017,0137,0110,0,
-    /* 34300 */ 0360,02,017,0135,0110,0,
-    /* 34306 */ 0333,02,017,0135,0110,0,
-    /* 34312 */ 0360,02,017,050,0110,0,
-    /* 34318 */ 0360,02,017,051,0101,0,
-    /* 34324 */ 0360,02,017,026,0110,0,
-    /* 34330 */ 0360,02,017,027,0101,0,
-    /* 34336 */ 0360,02,017,023,0101,0,
-    /* 34342 */ 0360,02,017,0120,0110,0,
-    /* 34348 */ 0360,02,017,053,0101,0,
-    /* 34354 */ 0333,02,017,020,0110,0,
-    /* 34360 */ 0333,02,017,021,0101,0,
-    /* 34366 */ 0360,02,017,020,0110,0,
-    /* 34372 */ 0360,02,017,021,0101,0,
-    /* 34378 */ 0360,02,017,0131,0110,0,
-    /* 34384 */ 0333,02,017,0131,0110,0,
-    /* 34390 */ 0360,02,017,0126,0110,0,
-    /* 34396 */ 0360,02,017,0123,0110,0,
-    /* 34402 */ 0333,02,017,0123,0110,0,
-    /* 34408 */ 0360,02,017,0122,0110,0,
-    /* 34414 */ 0333,02,017,0122,0110,0,
-    /* 34420 */ 0360,02,017,0121,0110,0,
-    /* 34426 */ 0333,02,017,0121,0110,0,
-    /* 34432 */ 0360,02,017,0256,0203,0,
-    /* 34438 */ 0360,02,017,0134,0110,0,
-    /* 34444 */ 0333,02,017,0134,0110,0,
-    /* 34450 */ 0360,02,017,056,0110,0,
-    /* 34456 */ 0360,02,017,025,0110,0,
-    /* 34462 */ 0360,02,017,024,0110,0,
-    /* 34468 */ 0360,02,017,0127,0110,0,
-    /* 34474 */ 0360,02,017,0367,0110,0,
-    /* 34480 */ 0360,02,017,0347,0101,0,
-    /* 34486 */ 0360,02,017,0327,0110,0,
-    /* 34492 */ 0361,02,017,0367,0110,0,
-    /* 34498 */ 0360,02,017,0256,0207,0,
-    /* 34504 */ 0361,02,017,0347,0101,0,
-    /* 34510 */ 0361,02,017,053,0101,0,
-    /* 34516 */ 0361,02,017,0157,0110,0,
-    /* 34522 */ 0361,02,017,0177,0101,0,
-    /* 34528 */ 0333,02,017,0157,0110,0,
-    /* 34534 */ 0333,02,017,0177,0101,0,
-    /* 34540 */ 0332,02,017,0326,0110,0,
-    /* 34546 */ 0333,02,017,0176,0110,0,
-    /* 34552 */ 0361,02,017,0326,0101,0,
-    /* 34558 */ 0333,02,017,0326,0110,0,
-    /* 34564 */ 0361,02,017,0143,0110,0,
-    /* 34570 */ 0361,02,017,0153,0110,0,
-    /* 34576 */ 0361,02,017,0147,0110,0,
-    /* 34582 */ 0361,02,017,0374,0110,0,
-    /* 34588 */ 0361,02,017,0375,0110,0,
-    /* 34594 */ 0361,02,017,0376,0110,0,
-    /* 34600 */ 0360,02,017,0324,0110,0,
-    /* 34606 */ 0361,02,017,0324,0110,0,
-    /* 34612 */ 0361,02,017,0354,0110,0,
-    /* 34618 */ 0361,02,017,0355,0110,0,
-    /* 34624 */ 0361,02,017,0334,0110,0,
-    /* 34630 */ 0361,02,017,0335,0110,0,
-    /* 34636 */ 0361,02,017,0333,0110,0,
-    /* 34642 */ 0361,02,017,0337,0110,0,
-    /* 34648 */ 0361,02,017,0340,0110,0,
-    /* 34654 */ 0361,02,017,0343,0110,0,
-    /* 34660 */ 0361,02,017,0164,0110,0,
-    /* 34666 */ 0361,02,017,0165,0110,0,
-    /* 34672 */ 0361,02,017,0166,0110,0,
-    /* 34678 */ 0361,02,017,0144,0110,0,
-    /* 34684 */ 0361,02,017,0145,0110,0,
-    /* 34690 */ 0361,02,017,0146,0110,0,
-    /* 34696 */ 0361,02,017,0365,0110,0,
-    /* 34702 */ 0361,02,017,0356,0110,0,
-    /* 34708 */ 0361,02,017,0336,0110,0,
-    /* 34714 */ 0361,02,017,0352,0110,0,
-    /* 34720 */ 0361,02,017,0332,0110,0,
-    /* 34726 */ 0361,02,017,0327,0110,0,
-    /* 34732 */ 0361,02,017,0344,0110,0,
-    /* 34738 */ 0361,02,017,0345,0110,0,
-    /* 34744 */ 0361,02,017,0325,0110,0,
-    /* 34750 */ 0361,02,017,0364,0110,0,
-    /* 34756 */ 0361,02,017,0353,0110,0,
-    /* 34762 */ 0361,02,017,0366,0110,0,
-    /* 34768 */ 0361,02,017,0361,0110,0,
-    /* 34774 */ 0361,02,017,0362,0110,0,
-    /* 34780 */ 0361,02,017,0363,0110,0,
-    /* 34786 */ 0361,02,017,0341,0110,0,
-    /* 34792 */ 0361,02,017,0342,0110,0,
-    /* 34798 */ 0361,02,017,0321,0110,0,
-    /* 34804 */ 0361,02,017,0322,0110,0,
-    /* 34810 */ 0361,02,017,0323,0110,0,
-    /* 34816 */ 0361,02,017,0370,0110,0,
-    /* 34822 */ 0361,02,017,0371,0110,0,
-    /* 34828 */ 0361,02,017,0372,0110,0,
-    /* 34834 */ 0361,02,017,0373,0110,0,
-    /* 34840 */ 0361,02,017,0350,0110,0,
-    /* 34846 */ 0361,02,017,0351,0110,0,
-    /* 34852 */ 0361,02,017,0330,0110,0,
-    /* 34858 */ 0361,02,017,0331,0110,0,
-    /* 34864 */ 0361,02,017,0150,0110,0,
-    /* 34870 */ 0361,02,017,0151,0110,0,
-    /* 34876 */ 0361,02,017,0152,0110,0,
-    /* 34882 */ 0361,02,017,0155,0110,0,
-    /* 34888 */ 0361,02,017,0140,0110,0,
-    /* 34894 */ 0361,02,017,0141,0110,0,
-    /* 34900 */ 0361,02,017,0142,0110,0,
-    /* 34906 */ 0361,02,017,0154,0110,0,
-    /* 34912 */ 0361,02,017,0357,0110,0,
-    /* 34918 */ 0361,02,017,0130,0110,0,
-    /* 34924 */ 0332,02,017,0130,0110,0,
-    /* 34930 */ 0361,02,017,0125,0110,0,
-    /* 34936 */ 0361,02,017,0124,0110,0,
-    /* 34942 */ 0361,02,017,057,0110,0,
-    /* 34948 */ 0333,02,017,0346,0110,0,
-    /* 34954 */ 0360,02,017,0133,0110,0,
-    /* 34960 */ 0332,02,017,0346,0110,0,
-    /* 34966 */ 0361,02,017,055,0110,0,
-    /* 34972 */ 0361,02,017,0132,0110,0,
-    /* 34978 */ 0361,02,017,052,0110,0,
-    /* 34984 */ 0361,02,017,0133,0110,0,
-    /* 34990 */ 0360,02,017,0132,0110,0,
-    /* 34996 */ 0332,02,017,0132,0110,0,
-    /* 35002 */ 0333,02,017,0132,0110,0,
-    /* 35008 */ 0361,02,017,054,0110,0,
-    /* 35014 */ 0361,02,017,0346,0110,0,
-    /* 35020 */ 0333,02,017,0133,0110,0,
-    /* 35026 */ 0361,02,017,0136,0110,0,
-    /* 35032 */ 0332,02,017,0136,0110,0,
-    /* 35038 */ 0361,02,017,0137,0110,0,
-    /* 35044 */ 0332,02,017,0137,0110,0,
-    /* 35050 */ 0361,02,017,0135,0110,0,
-    /* 35056 */ 0332,02,017,0135,0110,0,
-    /* 35062 */ 0361,02,017,050,0110,0,
-    /* 35068 */ 0361,02,017,051,0101,0,
-    /* 35074 */ 0361,02,017,027,0101,0,
-    /* 35080 */ 0361,02,017,026,0110,0,
-    /* 35086 */ 0361,02,017,023,0101,0,
-    /* 35092 */ 0361,02,017,022,0110,0,
-    /* 35098 */ 0361,02,017,0120,0110,0,
-    /* 35104 */ 0332,02,017,020,0110,0,
-    /* 35110 */ 0332,02,017,021,0101,0,
-    /* 35116 */ 0361,02,017,020,0110,0,
-    /* 35122 */ 0361,02,017,021,0101,0,
-    /* 35128 */ 0361,02,017,0131,0110,0,
-    /* 35134 */ 0332,02,017,0131,0110,0,
-    /* 35140 */ 0361,02,017,0126,0110,0,
-    /* 35146 */ 0361,02,017,0121,0110,0,
-    /* 35152 */ 0332,02,017,0121,0110,0,
-    /* 35158 */ 0361,02,017,0134,0110,0,
-    /* 35164 */ 0332,02,017,0134,0110,0,
-    /* 35170 */ 0361,02,017,056,0110,0,
-    /* 35176 */ 0361,02,017,025,0110,0,
-    /* 35182 */ 0361,02,017,024,0110,0,
-    /* 35188 */ 0361,02,017,0127,0110,0,
-    /* 35194 */ 0361,02,017,0320,0110,0,
-    /* 35200 */ 0332,02,017,0320,0110,0,
-    /* 35206 */ 0361,02,017,0174,0110,0,
-    /* 35212 */ 0332,02,017,0174,0110,0,
-    /* 35218 */ 0361,02,017,0175,0110,0,
-    /* 35224 */ 0332,02,017,0175,0110,0,
-    /* 35230 */ 0332,02,017,0360,0110,0,
-    /* 35236 */ 0332,02,017,022,0110,0,
-    /* 35242 */ 0333,02,017,026,0110,0,
-    /* 35248 */ 0333,02,017,022,0110,0,
-    /* 35254 */ 0361,02,017,0307,0206,0,
-    /* 35260 */ 0360,02,017,0307,0206,0,
-    /* 35266 */ 0360,02,017,0307,0207,0,
-    /* 35272 */ 0333,02,017,0307,0206,0,
-    /* 35278 */ 0361,02,017,0171,0110,0,
-    /* 35284 */ 0332,02,017,0171,0110,0,
-    /* 35290 */ 0332,02,017,053,0101,0,
-    /* 35296 */ 0333,02,017,053,0101,0,
-    /* 35302 */ 0270,01,04,01,0167,0,
-    /* 35308 */ 0270,01,0,01,0167,0,
-    /* 35314 */ 0320,02,017,0307,0206,0,
-    /* 35320 */ 0321,02,017,0307,0206,0,
-    /* 35326 */ 0324,02,017,0307,0206,0,
-    /* 35332 */ 0320,02,017,0307,0207,0,
-    /* 35338 */ 0321,02,017,0307,0207,0,
-    /* 35344 */ 0324,02,017,0307,0207,0,
-    /* 35350 */ 0336,03,017,0247,0310,0,
-    /* 35356 */ 0336,03,017,0247,0320,0,
-    /* 35362 */ 0336,03,017,0247,0330,0,
-    /* 35368 */ 0336,03,017,0247,0340,0,
-    /* 35374 */ 0336,03,017,0247,0350,0,
-    /* 35380 */ 0336,03,017,0246,0300,0,
-    /* 35386 */ 0336,03,017,0246,0310,0,
-    /* 35392 */ 0336,03,017,0246,0320,0,
-    /* 35398 */ 0322,02,0307,0370,064,0,
-    /* 35404 */ 0320,02,0307,0370,064,0,
-    /* 35410 */ 0321,02,0307,0370,064,0,
-    /* 35416 */ 0323,02,0307,0370,064,0,
-    /* 35422 */ 0333,02,017,033,0110,0,
-    /* 35428 */ 0361,02,017,032,0110,0,
-    /* 35434 */ 0361,02,017,033,0101,0,
-    /* 35440 */ 02,017,032,016,0110,0,
-    /* 35446 */ 02,017,033,015,0102,0,
-    /* 35452 */ 02,017,033,016,0101,0,
-    /* 35458 */ 03,017,070,0311,0110,0,
-    /* 35464 */ 03,017,070,0312,0110,0,
-    /* 35470 */ 03,017,070,0310,0110,0,
-    /* 35476 */ 03,017,070,0314,0110,0,
-    /* 35482 */ 03,017,070,0315,0110,0,
-    /* 35488 */ 03,017,070,0313,0110,0,
-    /* 35494 */ 0361,02,017,0256,0207,0,
-    /* 35500 */ 0361,02,017,0256,0206,0,
-    /* 35506 */ 0361,03,017,0256,0370,0,
-    /* 35512 */ 0320,02,017,030,0200,0,
-    /* 35518 */ 0321,02,017,030,0200,0,
-    /* 35524 */ 0324,02,017,030,0200,0,
-    /* 35530 */ 0320,02,017,030,0201,0,
-    /* 35536 */ 0321,02,017,030,0201,0,
-    /* 35542 */ 0324,02,017,030,0201,0,
-    /* 35548 */ 0320,02,017,030,0202,0,
-    /* 35554 */ 0321,02,017,030,0202,0,
-    /* 35560 */ 0324,02,017,030,0202,0,
-    /* 35566 */ 0320,02,017,030,0203,0,
-    /* 35572 */ 0321,02,017,030,0203,0,
-    /* 35578 */ 0324,02,017,030,0203,0,
-    /* 35584 */ 0320,02,017,030,0204,0,
-    /* 35590 */ 0321,02,017,030,0204,0,
-    /* 35596 */ 0324,02,017,030,0204,0,
-    /* 35602 */ 0320,02,017,030,0205,0,
-    /* 35608 */ 0321,02,017,030,0205,0,
-    /* 35614 */ 0324,02,017,030,0205,0,
-    /* 35620 */ 0320,02,017,030,0206,0,
-    /* 35626 */ 0321,02,017,030,0206,0,
-    /* 35632 */ 0324,02,017,030,0206,0,
-    /* 35638 */ 0320,02,017,030,0207,0,
-    /* 35644 */ 0321,02,017,030,0207,0,
-    /* 35650 */ 0324,02,017,030,0207,0,
-    /* 35656 */ 0320,02,017,031,0200,0,
-    /* 35662 */ 0321,02,017,031,0200,0,
-    /* 35668 */ 0324,02,017,031,0200,0,
-    /* 35674 */ 0320,02,017,031,0201,0,
-    /* 35680 */ 0321,02,017,031,0201,0,
-    /* 35686 */ 0324,02,017,031,0201,0,
-    /* 35692 */ 0320,02,017,031,0202,0,
-    /* 35698 */ 0321,02,017,031,0202,0,
-    /* 35704 */ 0324,02,017,031,0202,0,
-    /* 35710 */ 0320,02,017,031,0203,0,
-    /* 35716 */ 0321,02,017,031,0203,0,
-    /* 35722 */ 0324,02,017,031,0203,0,
-    /* 35728 */ 0320,02,017,031,0204,0,
-    /* 35734 */ 0321,02,017,031,0204,0,
-    /* 35740 */ 0324,02,017,031,0204,0,
-    /* 35746 */ 0320,02,017,031,0205,0,
-    /* 35752 */ 0321,02,017,031,0205,0,
-    /* 35758 */ 0324,02,017,031,0205,0,
-    /* 35764 */ 0320,02,017,031,0206,0,
-    /* 35770 */ 0321,02,017,031,0206,0,
-    /* 35776 */ 0324,02,017,031,0206,0,
-    /* 35782 */ 0320,02,017,031,0207,0,
-    /* 35788 */ 0321,02,017,031,0207,0,
-    /* 35794 */ 0324,02,017,031,0207,0,
-    /* 35800 */ 0320,02,017,032,0200,0,
-    /* 35806 */ 0321,02,017,032,0200,0,
-    /* 35812 */ 0324,02,017,032,0200,0,
-    /* 35818 */ 0320,02,017,032,0201,0,
-    /* 35824 */ 0321,02,017,032,0201,0,
-    /* 35830 */ 0324,02,017,032,0201,0,
-    /* 35836 */ 0320,02,017,032,0202,0,
-    /* 35842 */ 0321,02,017,032,0202,0,
-    /* 35848 */ 0324,02,017,032,0202,0,
-    /* 35854 */ 0320,02,017,032,0203,0,
-    /* 35860 */ 0321,02,017,032,0203,0,
-    /* 35866 */ 0324,02,017,032,0203,0,
-    /* 35872 */ 0320,02,017,032,0204,0,
-    /* 35878 */ 0321,02,017,032,0204,0,
-    /* 35884 */ 0324,02,017,032,0204,0,
-    /* 35890 */ 0320,02,017,032,0205,0,
-    /* 35896 */ 0321,02,017,032,0205,0,
-    /* 35902 */ 0324,02,017,032,0205,0,
-    /* 35908 */ 0320,02,017,032,0206,0,
-    /* 35914 */ 0321,02,017,032,0206,0,
-    /* 35920 */ 0324,02,017,032,0206,0,
-    /* 35926 */ 0320,02,017,032,0207,0,
-    /* 35932 */ 0321,02,017,032,0207,0,
-    /* 35938 */ 0324,02,017,032,0207,0,
-    /* 35944 */ 0320,02,017,033,0200,0,
-    /* 35950 */ 0321,02,017,033,0200,0,
-    /* 35956 */ 0324,02,017,033,0200,0,
-    /* 35962 */ 0320,02,017,033,0201,0,
-    /* 35968 */ 0321,02,017,033,0201,0,
-    /* 35974 */ 0324,02,017,033,0201,0,
-    /* 35980 */ 0320,02,017,033,0202,0,
-    /* 35986 */ 0321,02,017,033,0202,0,
-    /* 35992 */ 0324,02,017,033,0202,0,
-    /* 35998 */ 0320,02,017,033,0203,0,
-    /* 36004 */ 0321,02,017,033,0203,0,
-    /* 36010 */ 0324,02,017,033,0203,0,
-    /* 36016 */ 0320,02,017,033,0204,0,
-    /* 36022 */ 0321,02,017,033,0204,0,
-    /* 36028 */ 0324,02,017,033,0204,0,
-    /* 36034 */ 0320,02,017,033,0205,0,
-    /* 36040 */ 0321,02,017,033,0205,0,
-    /* 36046 */ 0324,02,017,033,0205,0,
-    /* 36052 */ 0320,02,017,033,0206,0,
-    /* 36058 */ 0321,02,017,033,0206,0,
-    /* 36064 */ 0324,02,017,033,0206,0,
-    /* 36070 */ 0320,02,017,033,0207,0,
-    /* 36076 */ 0321,02,017,033,0207,0,
-    /* 36082 */ 0324,02,017,033,0207,0,
-    /* 36088 */ 0320,02,017,034,0200,0,
-    /* 36094 */ 0321,02,017,034,0200,0,
-    /* 36100 */ 0324,02,017,034,0200,0,
-    /* 36106 */ 0320,02,017,034,0201,0,
-    /* 36112 */ 0321,02,017,034,0201,0,
-    /* 36118 */ 0324,02,017,034,0201,0,
-    /* 36124 */ 0320,02,017,034,0202,0,
-    /* 36130 */ 0321,02,017,034,0202,0,
-    /* 36136 */ 0324,02,017,034,0202,0,
-    /* 36142 */ 0320,02,017,034,0203,0,
-    /* 36148 */ 0321,02,017,034,0203,0,
-    /* 36154 */ 0324,02,017,034,0203,0,
-    /* 36160 */ 0320,02,017,034,0204,0,
-    /* 36166 */ 0321,02,017,034,0204,0,
-    /* 36172 */ 0324,02,017,034,0204,0,
-    /* 36178 */ 0320,02,017,034,0205,0,
-    /* 36184 */ 0321,02,017,034,0205,0,
-    /* 36190 */ 0324,02,017,034,0205,0,
-    /* 36196 */ 0320,02,017,034,0206,0,
-    /* 36202 */ 0321,02,017,034,0206,0,
-    /* 36208 */ 0324,02,017,034,0206,0,
-    /* 36214 */ 0320,02,017,034,0207,0,
-    /* 36220 */ 0321,02,017,034,0207,0,
-    /* 36226 */ 0324,02,017,034,0207,0,
-    /* 36232 */ 0320,02,017,035,0200,0,
-    /* 36238 */ 0321,02,017,035,0200,0,
-    /* 36244 */ 0324,02,017,035,0200,0,
-    /* 36250 */ 0320,02,017,035,0201,0,
-    /* 36256 */ 0321,02,017,035,0201,0,
-    /* 36262 */ 0324,02,017,035,0201,0,
-    /* 36268 */ 0320,02,017,035,0202,0,
-    /* 36274 */ 0321,02,017,035,0202,0,
-    /* 36280 */ 0324,02,017,035,0202,0,
-    /* 36286 */ 0320,02,017,035,0203,0,
-    /* 36292 */ 0321,02,017,035,0203,0,
-    /* 36298 */ 0324,02,017,035,0203,0,
-    /* 36304 */ 0320,02,017,035,0204,0,
-    /* 36310 */ 0321,02,017,035,0204,0,
-    /* 36316 */ 0324,02,017,035,0204,0,
-    /* 36322 */ 0320,02,017,035,0205,0,
-    /* 36328 */ 0321,02,017,035,0205,0,
-    /* 36334 */ 0324,02,017,035,0205,0,
-    /* 36340 */ 0320,02,017,035,0206,0,
-    /* 36346 */ 0321,02,017,035,0206,0,
-    /* 36352 */ 0324,02,017,035,0206,0,
-    /* 36358 */ 0320,02,017,035,0207,0,
-    /* 36364 */ 0321,02,017,035,0207,0,
-    /* 36370 */ 0324,02,017,035,0207,0,
-    /* 36376 */ 0320,02,017,036,0200,0,
-    /* 36382 */ 0321,02,017,036,0200,0,
-    /* 36388 */ 0324,02,017,036,0200,0,
-    /* 36394 */ 0320,02,017,036,0201,0,
-    /* 36400 */ 0321,02,017,036,0201,0,
-    /* 36406 */ 0324,02,017,036,0201,0,
-    /* 36412 */ 0320,02,017,036,0202,0,
-    /* 36418 */ 0321,02,017,036,0202,0,
-    /* 36424 */ 0324,02,017,036,0202,0,
-    /* 36430 */ 0320,02,017,036,0203,0,
-    /* 36436 */ 0321,02,017,036,0203,0,
-    /* 36442 */ 0324,02,017,036,0203,0,
-    /* 36448 */ 0320,02,017,036,0204,0,
-    /* 36454 */ 0321,02,017,036,0204,0,
-    /* 36460 */ 0324,02,017,036,0204,0,
-    /* 36466 */ 0320,02,017,036,0205,0,
-    /* 36472 */ 0321,02,017,036,0205,0,
-    /* 36478 */ 0324,02,017,036,0205,0,
-    /* 36484 */ 0320,02,017,036,0206,0,
-    /* 36490 */ 0321,02,017,036,0206,0,
-    /* 36496 */ 0324,02,017,036,0206,0,
-    /* 36502 */ 0320,02,017,036,0207,0,
-    /* 36508 */ 0321,02,017,036,0207,0,
-    /* 36514 */ 0324,02,017,036,0207,0,
-    /* 36520 */ 0320,02,017,037,0201,0,
-    /* 36526 */ 0321,02,017,037,0201,0,
-    /* 36532 */ 0324,02,017,037,0201,0,
-    /* 36538 */ 0320,02,017,037,0202,0,
-    /* 36544 */ 0321,02,017,037,0202,0,
-    /* 36550 */ 0324,02,017,037,0202,0,
-    /* 36556 */ 0320,02,017,037,0203,0,
-    /* 36562 */ 0321,02,017,037,0203,0,
-    /* 36568 */ 0324,02,017,037,0203,0,
-    /* 36574 */ 0320,02,017,037,0204,0,
-    /* 36580 */ 0321,02,017,037,0204,0,
-    /* 36586 */ 0324,02,017,037,0204,0,
-    /* 36592 */ 0320,02,017,037,0205,0,
-    /* 36598 */ 0321,02,017,037,0205,0,
-    /* 36604 */ 0324,02,017,037,0205,0,
-    /* 36610 */ 0320,02,017,037,0206,0,
-    /* 36616 */ 0321,02,017,037,0206,0,
-    /* 36622 */ 0324,02,017,037,0206,0,
-    /* 36628 */ 0320,02,017,037,0207,0,
-    /* 36634 */ 0321,02,017,037,0207,0,
-    /* 36640 */ 0324,02,017,037,0207,0,
-    /* 36646 */ 0273,01,020,0101,0,
-    /* 36651 */ 0320,01,023,0110,0,
-    /* 36656 */ 0321,01,023,0110,0,
-    /* 36661 */ 0324,01,023,0110,0,
-    /* 36666 */ 0320,01,025,031,0,
-    /* 36671 */ 0321,01,025,041,0,
-    /* 36676 */ 0324,01,025,0255,0,
-    /* 36681 */ 0273,01,0,0101,0,
-    /* 36686 */ 0320,01,03,0110,0,
-    /* 36691 */ 0321,01,03,0110,0,
-    /* 36696 */ 0324,01,03,0110,0,
-    /* 36701 */ 0320,01,05,031,0,
-    /* 36706 */ 0321,01,05,041,0,
-    /* 36711 */ 0324,01,05,0255,0,
-    /* 36716 */ 0273,01,040,0101,0,
-    /* 36721 */ 0320,01,043,0110,0,
-    /* 36726 */ 0321,01,043,0110,0,
-    /* 36731 */ 0324,01,043,0110,0,
-    /* 36736 */ 0320,01,045,031,0,
-    /* 36741 */ 0321,01,045,041,0,
-    /* 36746 */ 0324,01,045,0255,0,
-    /* 36751 */ 0320,01,0142,0110,0,
-    /* 36756 */ 0321,01,0142,0110,0,
-    /* 36761 */ 0322,01,0350,064,0,
-    /* 36766 */ 0320,01,0350,064,0,
-    /* 36771 */ 0321,01,0350,064,0,
-    /* 36776 */ 0323,01,0350,064,0,
-    /* 36781 */ 0322,01,0377,0203,0,
-    /* 36786 */ 0324,01,0377,0203,0,
-    /* 36791 */ 0320,01,0377,0203,0,
-    /* 36796 */ 0321,01,0377,0203,0,
-    /* 36801 */ 0322,01,0377,0202,0,
-    /* 36806 */ 0320,01,0377,0202,0,
-    /* 36811 */ 0321,01,0377,0202,0,
-    /* 36816 */ 0323,01,0377,0202,0,
-    /* 36821 */ 0320,01,071,0101,0,
-    /* 36826 */ 0321,01,071,0101,0,
-    /* 36831 */ 0324,01,071,0101,0,
-    /* 36836 */ 0320,01,073,0110,0,
-    /* 36841 */ 0321,01,073,0110,0,
-    /* 36846 */ 0324,01,073,0110,0,
-    /* 36851 */ 0320,01,075,031,0,
-    /* 36856 */ 0321,01,075,041,0,
-    /* 36861 */ 0324,01,075,0255,0,
-    /* 36866 */ 01,0200,0207,021,0,
-    /* 36871 */ 01,0202,0207,021,0,
-    /* 36876 */ 0335,0321,01,0247,0,
-    /* 36881 */ 0335,0324,01,0247,0,
-    /* 36886 */ 0335,0320,01,0247,0,
-    /* 36891 */ 02,017,0246,0101,0,
-    /* 36896 */ 0273,01,0376,0201,0,
-    /* 36901 */ 0320,01,0367,0206,0,
-    /* 36906 */ 0321,01,0367,0206,0,
-    /* 36911 */ 0324,01,0367,0206,0,
-    /* 36916 */ 01,0310,030,025,0,
-    /* 36921 */ 01,0334,010,0300,0,
-    /* 36926 */ 01,0330,010,0300,0,
-    /* 36931 */ 01,0330,011,0300,0,
-    /* 36936 */ 01,0336,010,0300,0,
-    /* 36941 */ 0341,02,0333,0342,0,
-    /* 36946 */ 01,0332,010,0300,0,
-    /* 36951 */ 01,0332,011,0300,0,
-    /* 36956 */ 01,0332,010,0320,0,
-    /* 36961 */ 01,0332,011,0320,0,
-    /* 36966 */ 01,0332,010,0310,0,
-    /* 36971 */ 01,0332,011,0310,0,
-    /* 36976 */ 01,0333,010,0300,0,
-    /* 36981 */ 01,0333,011,0300,0,
-    /* 36986 */ 01,0333,010,0320,0,
-    /* 36991 */ 01,0333,011,0320,0,
-    /* 36996 */ 01,0333,010,0310,0,
-    /* 37001 */ 01,0333,011,0310,0,
-    /* 37006 */ 01,0333,010,0330,0,
-    /* 37011 */ 01,0333,011,0330,0,
-    /* 37016 */ 01,0332,010,0330,0,
-    /* 37021 */ 01,0332,011,0330,0,
-    /* 37026 */ 01,0330,010,0320,0,
-    /* 37031 */ 01,0330,011,0320,0,
-    /* 37036 */ 01,0333,010,0360,0,
-    /* 37041 */ 01,0333,011,0360,0,
-    /* 37046 */ 01,0337,010,0360,0,
-    /* 37051 */ 01,0337,011,0360,0,
-    /* 37056 */ 01,0330,010,0330,0,
-    /* 37061 */ 01,0330,011,0330,0,
-    /* 37066 */ 0341,02,0333,0341,0,
-    /* 37071 */ 01,0334,010,0370,0,
-    /* 37076 */ 01,0330,010,0360,0,
-    /* 37081 */ 01,0330,011,0360,0,
-    /* 37086 */ 01,0336,010,0370,0,
-    /* 37091 */ 01,0334,010,0360,0,
-    /* 37096 */ 01,0330,010,0370,0,
-    /* 37101 */ 01,0330,011,0370,0,
-    /* 37106 */ 01,0336,010,0360,0,
-    /* 37111 */ 0341,02,0333,0340,0,
-    /* 37116 */ 01,0335,010,0300,0,
-    /* 37121 */ 01,0337,010,0300,0,
-    /* 37126 */ 0341,02,0333,0343,0,
-    /* 37131 */ 01,0331,010,0300,0,
-    /* 37136 */ 01,0334,010,0310,0,
-    /* 37141 */ 01,0330,010,0310,0,
-    /* 37146 */ 01,0330,011,0310,0,
-    /* 37151 */ 01,0336,010,0310,0,
-    /* 37156 */ 0341,01,0335,0206,0,
-    /* 37161 */ 01,0335,010,0320,0,
-    /* 37166 */ 0341,01,0331,0207,0,
-    /* 37171 */ 0341,01,0331,0206,0,
-    /* 37176 */ 01,0335,010,0330,0,
-    /* 37181 */ 0341,01,0335,0207,0,
-    /* 37186 */ 0341,02,0337,0340,0,
-    /* 37191 */ 01,0334,010,0350,0,
-    /* 37196 */ 01,0330,010,0340,0,
-    /* 37201 */ 01,0330,011,0340,0,
-    /* 37206 */ 01,0336,010,0350,0,
-    /* 37211 */ 01,0334,010,0340,0,
-    /* 37216 */ 01,0330,010,0350,0,
-    /* 37221 */ 01,0330,011,0350,0,
-    /* 37226 */ 01,0336,010,0340,0,
-    /* 37231 */ 01,0335,010,0340,0,
-    /* 37236 */ 01,0335,011,0340,0,
-    /* 37241 */ 01,0333,010,0350,0,
-    /* 37246 */ 01,0333,011,0350,0,
-    /* 37251 */ 01,0337,010,0350,0,
-    /* 37256 */ 01,0337,011,0350,0,
-    /* 37261 */ 01,0335,010,0350,0,
-    /* 37266 */ 01,0335,011,0350,0,
-    /* 37271 */ 01,0331,010,0310,0,
-    /* 37276 */ 01,0331,011,0310,0,
-    /* 37281 */ 0320,01,0367,0207,0,
-    /* 37286 */ 0321,01,0367,0207,0,
-    /* 37291 */ 0324,01,0367,0207,0,
-    /* 37296 */ 0320,01,0367,0205,0,
-    /* 37301 */ 0321,01,0367,0205,0,
-    /* 37306 */ 0324,01,0367,0205,0,
-    /* 37311 */ 0320,01,0345,025,0,
-    /* 37316 */ 0321,01,0345,025,0,
-    /* 37321 */ 0273,01,0376,0200,0,
-    /* 37326 */ 02,017,01,0207,0,
-    /* 37331 */ 0310,01,0343,050,0,
-    /* 37336 */ 0311,01,0343,050,0,
-    /* 37341 */ 0313,01,0343,050,0,
-    /* 37346 */ 0371,01,0353,050,0,
-    /* 37351 */ 0322,01,0351,064,0,
-    /* 37356 */ 0320,01,0351,064,0,
-    /* 37361 */ 0321,01,0351,064,0,
-    /* 37366 */ 0323,01,0351,064,0,
-    /* 37371 */ 0322,01,0377,0205,0,
-    /* 37376 */ 0324,01,0377,0205,0,
-    /* 37381 */ 0320,01,0377,0205,0,
-    /* 37386 */ 0321,01,0377,0205,0,
-    /* 37391 */ 0322,01,0377,0204,0,
-    /* 37396 */ 0320,01,0377,0204,0,
-    /* 37401 */ 0321,01,0377,0204,0,
-    /* 37406 */ 0323,01,0377,0204,0,
-    /* 37411 */ 0320,01,0305,0110,0,
-    /* 37416 */ 0321,01,0305,0110,0,
-    /* 37421 */ 0320,01,0215,0110,0,
-    /* 37426 */ 0321,01,0215,0110,0,
-    /* 37431 */ 0324,01,0215,0110,0,
-    /* 37436 */ 0320,01,0304,0110,0,
-    /* 37441 */ 0321,01,0304,0110,0,
-    /* 37446 */ 02,017,01,0202,0,
-    /* 37451 */ 02,017,01,0203,0,
-    /* 37456 */ 02,017,0,0202,0,
-    /* 37461 */ 02,017,01,0206,0,
-    /* 37466 */ 0312,01,0342,050,0,
-    /* 37471 */ 0310,01,0342,050,0,
-    /* 37476 */ 0311,01,0342,050,0,
-    /* 37481 */ 0313,01,0342,050,0,
-    /* 37486 */ 0312,01,0341,050,0,
-    /* 37491 */ 0310,01,0341,050,0,
-    /* 37496 */ 0311,01,0341,050,0,
-    /* 37501 */ 0313,01,0341,050,0,
-    /* 37506 */ 0312,01,0340,050,0,
-    /* 37511 */ 0310,01,0340,050,0,
-    /* 37516 */ 0311,01,0340,050,0,
-    /* 37521 */ 0313,01,0340,050,0,
-    /* 37526 */ 02,017,0,0203,0,
-    /* 37531 */ 03,017,01,0310,0,
-    /* 37536 */ 03,017,01,0372,0,
-    /* 37541 */ 0320,01,0214,0101,0,
-    /* 37546 */ 0321,01,0214,0101,0,
-    /* 37551 */ 0323,01,0214,0101,0,
-    /* 37556 */ 0324,01,0214,0101,0,
-    /* 37561 */ 0323,01,0216,0110,0,
-    /* 37566 */ 0320,01,0216,0110,0,
-    /* 37571 */ 0321,01,0216,0110,0,
-    /* 37576 */ 0324,01,0216,0110,0,
-    /* 37581 */ 0320,01,0241,045,0,
-    /* 37586 */ 0321,01,0241,045,0,
-    /* 37591 */ 0324,01,0241,045,0,
-    /* 37596 */ 0320,01,0243,044,0,
-    /* 37601 */ 0321,01,0243,044,0,
-    /* 37606 */ 0324,01,0243,044,0,
-    /* 37611 */ 02,017,044,0101,0,
-    /* 37616 */ 02,017,046,0110,0,
-    /* 37621 */ 0271,01,0210,0101,0,
-    /* 37626 */ 0320,01,0213,0110,0,
-    /* 37631 */ 0321,01,0213,0110,0,
-    /* 37636 */ 0324,01,0213,0110,0,
-    /* 37641 */ 0320,010,0270,031,0,
-    /* 37646 */ 0321,010,0270,041,0,
-    /* 37651 */ 0323,010,0270,041,0,
-    /* 37656 */ 0324,010,0270,055,0,
-    /* 37661 */ 0324,01,0143,0110,0,
-    /* 37666 */ 0320,01,0367,0204,0,
-    /* 37671 */ 0321,01,0367,0204,0,
-    /* 37676 */ 0324,01,0367,0204,0,
-    /* 37681 */ 03,017,01,0311,0,
-    /* 37686 */ 03,017,01,0373,0,
-    /* 37691 */ 0273,01,0366,0203,0,
-    /* 37696 */ 0314,0326,01,0220,0,
-    /* 37701 */ 0273,01,0366,0202,0,
-    /* 37706 */ 0273,01,010,0101,0,
-    /* 37711 */ 0320,01,013,0110,0,
-    /* 37716 */ 0321,01,013,0110,0,
-    /* 37721 */ 0324,01,013,0110,0,
-    /* 37726 */ 0320,01,015,031,0,
-    /* 37731 */ 0321,01,015,041,0,
-    /* 37736 */ 0324,01,015,0255,0,
-    /* 37741 */ 0320,01,0347,024,0,
-    /* 37746 */ 0321,01,0347,024,0,
-    /* 37751 */ 0320,01,0217,0200,0,
-    /* 37756 */ 0321,01,0217,0200,0,
-    /* 37761 */ 0323,01,0217,0200,0,
-    /* 37766 */ 02,017,015,0200,0,
-    /* 37771 */ 02,017,015,0201,0,
-    /* 37776 */ 0320,01,0377,0206,0,
-    /* 37781 */ 0321,01,0377,0206,0,
-    /* 37786 */ 0323,01,0377,0206,0,
-    /* 37791 */ 0320,01,0152,0274,0,
-    /* 37796 */ 0320,01,0150,030,0,
-    /* 37801 */ 0321,01,0152,0274,0,
-    /* 37806 */ 0321,01,0150,040,0,
-    /* 37811 */ 0323,01,0152,0274,0,
-    /* 37816 */ 0323,01,0150,0254,0,
-    /* 37821 */ 01,0300,0202,025,0,
-    /* 37826 */ 0320,01,0321,0202,0,
-    /* 37831 */ 0320,01,0323,0202,0,
-    /* 37836 */ 0321,01,0321,0202,0,
-    /* 37841 */ 0321,01,0323,0202,0,
-    /* 37846 */ 0324,01,0321,0202,0,
-    /* 37851 */ 0324,01,0323,0202,0,
-    /* 37856 */ 01,0300,0203,025,0,
-    /* 37861 */ 0320,01,0321,0203,0,
-    /* 37866 */ 0320,01,0323,0203,0,
-    /* 37871 */ 0321,01,0321,0203,0,
-    /* 37876 */ 0321,01,0323,0203,0,
-    /* 37881 */ 0324,01,0321,0203,0,
-    /* 37886 */ 0324,01,0323,0203,0,
-    /* 37891 */ 03,017,01,0371,0,
-    /* 37896 */ 01,0300,0200,025,0,
-    /* 37901 */ 0320,01,0321,0200,0,
-    /* 37906 */ 0320,01,0323,0200,0,
-    /* 37911 */ 0321,01,0321,0200,0,
-    /* 37916 */ 0321,01,0323,0200,0,
-    /* 37921 */ 0324,01,0321,0200,0,
-    /* 37926 */ 0324,01,0323,0200,0,
-    /* 37931 */ 01,0300,0201,025,0,
-    /* 37936 */ 0320,01,0321,0201,0,
-    /* 37941 */ 0320,01,0323,0201,0,
-    /* 37946 */ 0321,01,0321,0201,0,
-    /* 37951 */ 0321,01,0323,0201,0,
-    /* 37956 */ 0324,01,0321,0201,0,
-    /* 37961 */ 0324,01,0323,0201,0,
-    /* 37966 */ 02,017,0173,0200,0,
-    /* 37971 */ 02,017,0175,0200,0,
-    /* 37976 */ 01,0300,0204,025,0,
-    /* 37981 */ 0320,01,0321,0204,0,
-    /* 37986 */ 0320,01,0323,0204,0,
-    /* 37991 */ 0321,01,0321,0204,0,
-    /* 37996 */ 0321,01,0323,0204,0,
-    /* 38001 */ 0324,01,0321,0204,0,
-    /* 38006 */ 0324,01,0323,0204,0,
-    /* 38011 */ 01,0300,0207,025,0,
-    /* 38016 */ 0320,01,0321,0207,0,
-    /* 38021 */ 0320,01,0323,0207,0,
-    /* 38026 */ 0321,01,0321,0207,0,
-    /* 38031 */ 0321,01,0323,0207,0,
-    /* 38036 */ 0324,01,0321,0207,0,
-    /* 38041 */ 0324,01,0323,0207,0,
-    /* 38046 */ 0273,01,030,0101,0,
-    /* 38051 */ 0320,01,033,0110,0,
-    /* 38056 */ 0321,01,033,0110,0,
-    /* 38061 */ 0324,01,033,0110,0,
-    /* 38066 */ 0320,01,035,031,0,
-    /* 38071 */ 0321,01,035,041,0,
-    /* 38076 */ 0324,01,035,0255,0,
-    /* 38081 */ 0335,0321,01,0257,0,
-    /* 38086 */ 0335,0324,01,0257,0,
-    /* 38091 */ 0335,0320,01,0257,0,
-    /* 38096 */ 02,017,01,0200,0,
-    /* 38101 */ 01,0300,0205,025,0,
-    /* 38106 */ 0320,01,0321,0205,0,
-    /* 38111 */ 0320,01,0323,0205,0,
-    /* 38116 */ 0321,01,0321,0205,0,
-    /* 38121 */ 0321,01,0323,0205,0,
-    /* 38126 */ 0324,01,0321,0205,0,
-    /* 38131 */ 0324,01,0323,0205,0,
-    /* 38136 */ 02,017,01,0201,0,
-    /* 38141 */ 03,017,01,0336,0,
-    /* 38146 */ 0273,01,050,0101,0,
-    /* 38151 */ 0320,01,053,0110,0,
-    /* 38156 */ 0321,01,053,0110,0,
-    /* 38161 */ 0324,01,053,0110,0,
-    /* 38166 */ 0320,01,055,031,0,
-    /* 38171 */ 0321,01,055,041,0,
-    /* 38176 */ 0324,01,055,0255,0,
-    /* 38181 */ 02,017,0172,0200,0,
-    /* 38186 */ 02,017,0174,0200,0,
-    /* 38191 */ 03,017,01,0370,0,
-    /* 38196 */ 0320,01,0205,0101,0,
-    /* 38201 */ 0321,01,0205,0101,0,
-    /* 38206 */ 0324,01,0205,0101,0,
-    /* 38211 */ 0320,01,0205,0110,0,
-    /* 38216 */ 0321,01,0205,0110,0,
-    /* 38221 */ 0324,01,0205,0110,0,
-    /* 38226 */ 0320,01,0251,031,0,
-    /* 38231 */ 0321,01,0251,041,0,
-    /* 38236 */ 0324,01,0251,0255,0,
-    /* 38241 */ 01,0366,0200,021,0,
-    /* 38246 */ 02,017,0,0204,0,
-    /* 38251 */ 02,017,0,0205,0,
-    /* 38256 */ 0272,01,0206,0110,0,
-    /* 38261 */ 0272,01,0206,0101,0,
-    /* 38266 */ 0273,01,060,0101,0,
-    /* 38271 */ 0320,01,063,0110,0,
-    /* 38276 */ 0321,01,063,0110,0,
-    /* 38281 */ 0324,01,063,0110,0,
-    /* 38286 */ 0320,01,065,031,0,
-    /* 38291 */ 0321,01,065,041,0,
-    /* 38296 */ 0324,01,065,0255,0,
-    /* 38301 */ 0370,0330,0160,050,0,
-    /* 38306 */ 03,017,01,0320,0,
-    /* 38311 */ 03,017,01,0321,0,
-    /* 38316 */ 03,017,01,0335,0,
-    /* 38321 */ 03,017,01,0334,0,
-    /* 38326 */ 03,017,01,0301,0,
-    /* 38331 */ 03,017,01,0324,0,
-    /* 38336 */ 03,017,01,0302,0,
-    /* 38341 */ 03,017,01,0332,0,
-    /* 38346 */ 03,017,01,0331,0,
-    /* 38351 */ 03,017,01,0303,0,
-    /* 38356 */ 03,017,01,0330,0,
-    /* 38361 */ 03,017,01,0333,0,
-    /* 38366 */ 03,017,01,0304,0,
-    /* 38371 */ 03,017,01,0312,0,
-    /* 38376 */ 03,017,01,0313,0,
-    /* 38381 */ 03,017,0247,0300,0,
-    /* 38386 */ 02,0306,0370,020,0,
-    /* 38391 */ 03,017,01,0325,0,
-    /* 38396 */ 03,017,01,0326,0,
-    /* 38401 */ 02,017,015,0202,0,
-    /* 38406 */ 03,017,01,0356,0,
-    /* 38411 */ 03,017,01,0357,0,
-    /* 38416 */ 03,017,01,0374,0,
-    /* 38421 */ 02,0325,012,0,
-    /* 38425 */ 01,0325,024,0,
-    /* 38429 */ 02,0324,012,0,
-    /* 38433 */ 01,0324,024,0,
-    /* 38437 */ 01,024,021,0,
-    /* 38441 */ 01,04,021,0,
-    /* 38445 */ 01,044,021,0,
-    /* 38449 */ 01,0143,0101,0,
-    /* 38453 */ 02,017,072,0,
-    /* 38457 */ 02,017,073,0,
-    /* 38461 */ 0320,01,0230,0,
-    /* 38465 */ 0321,01,0231,0,
-    /* 38469 */ 0324,01,0230,0,
-    /* 38473 */ 02,017,06,0,
-    /* 38477 */ 01,070,0101,0,
-    /* 38481 */ 01,074,021,0,
-    /* 38485 */ 0335,01,0246,0,
-    /* 38489 */ 02,017,0242,0,
-    /* 38493 */ 02,017,075,0,
-    /* 38497 */ 02,017,074,0,
-    /* 38501 */ 0324,01,0231,0,
-    /* 38505 */ 0320,01,0231,0,
-    /* 38509 */ 0321,01,0230,0,
-    /* 38513 */ 0320,010,0110,0,
-    /* 38517 */ 0321,010,0110,0,
-    /* 38521 */ 01,0366,0206,0,
-    /* 38525 */ 02,017,071,0,
-    /* 38529 */ 02,017,0167,0,
-    /* 38533 */ 02,0331,0360,0,
-    /* 38537 */ 02,0331,0341,0,
-    /* 38541 */ 01,0330,0200,0,
-    /* 38545 */ 01,0334,0200,0,
-    /* 38549 */ 02,0336,0301,0,
-    /* 38553 */ 01,0337,0204,0,
-    /* 38557 */ 01,0337,0206,0,
-    /* 38561 */ 02,0331,0340,0,
-    /* 38565 */ 02,0332,0301,0,
-    /* 38569 */ 02,0332,0321,0,
-    /* 38573 */ 02,0332,0311,0,
-    /* 38577 */ 02,0333,0301,0,
-    /* 38581 */ 02,0333,0321,0,
-    /* 38585 */ 02,0333,0311,0,
-    /* 38589 */ 02,0333,0331,0,
-    /* 38593 */ 02,0332,0331,0,
-    /* 38597 */ 01,0330,0202,0,
-    /* 38601 */ 01,0334,0202,0,
-    /* 38605 */ 02,0330,0321,0,
-    /* 38609 */ 02,0333,0361,0,
-    /* 38613 */ 02,0337,0361,0,
-    /* 38617 */ 01,0330,0203,0,
-    /* 38621 */ 01,0334,0203,0,
-    /* 38625 */ 02,0330,0331,0,
-    /* 38629 */ 02,0336,0331,0,
-    /* 38633 */ 02,0331,0377,0,
-    /* 38637 */ 02,0331,0366,0,
-    /* 38641 */ 01,0330,0206,0,
-    /* 38645 */ 01,0334,0206,0,
-    /* 38649 */ 02,0336,0371,0,
-    /* 38653 */ 01,0330,0207,0,
-    /* 38657 */ 01,0334,0207,0,
-    /* 38661 */ 02,0336,0361,0,
-    /* 38665 */ 02,017,016,0,
-    /* 38669 */ 02,0335,0301,0,
-    /* 38673 */ 02,0337,0301,0,
-    /* 38677 */ 01,0332,0200,0,
-    /* 38681 */ 01,0336,0200,0,
-    /* 38685 */ 01,0332,0202,0,
-    /* 38689 */ 01,0336,0202,0,
-    /* 38693 */ 01,0332,0203,0,
-    /* 38697 */ 01,0336,0203,0,
-    /* 38701 */ 01,0332,0206,0,
-    /* 38705 */ 01,0336,0206,0,
-    /* 38709 */ 01,0332,0207,0,
-    /* 38713 */ 01,0336,0207,0,
-    /* 38717 */ 01,0333,0200,0,
-    /* 38721 */ 01,0337,0200,0,
-    /* 38725 */ 01,0337,0205,0,
-    /* 38729 */ 01,0332,0201,0,
-    /* 38733 */ 01,0336,0201,0,
-    /* 38737 */ 02,0331,0367,0,
-    /* 38741 */ 01,0333,0202,0,
-    /* 38745 */ 01,0337,0202,0,
-    /* 38749 */ 01,0333,0203,0,
-    /* 38753 */ 01,0337,0203,0,
-    /* 38757 */ 01,0337,0207,0,
-    /* 38761 */ 01,0337,0201,0,
-    /* 38765 */ 01,0333,0201,0,
-    /* 38769 */ 01,0335,0201,0,
-    /* 38773 */ 01,0332,0204,0,
-    /* 38777 */ 01,0336,0204,0,
-    /* 38781 */ 01,0332,0205,0,
-    /* 38785 */ 01,0336,0205,0,
-    /* 38789 */ 01,0331,0200,0,
-    /* 38793 */ 01,0335,0200,0,
-    /* 38797 */ 01,0333,0205,0,
-    /* 38801 */ 02,0331,0301,0,
-    /* 38805 */ 02,0331,0350,0,
-    /* 38809 */ 01,0331,0205,0,
-    /* 38813 */ 01,0331,0204,0,
-    /* 38817 */ 02,0331,0352,0,
-    /* 38821 */ 02,0331,0351,0,
-    /* 38825 */ 02,0331,0354,0,
-    /* 38829 */ 02,0331,0355,0,
-    /* 38833 */ 02,0331,0353,0,
-    /* 38837 */ 02,0331,0356,0,
-    /* 38841 */ 01,0330,0201,0,
-    /* 38845 */ 01,0334,0201,0,
-    /* 38849 */ 02,0336,0311,0,
-    /* 38853 */ 02,0331,0320,0,
-    /* 38857 */ 02,0331,0363,0,
-    /* 38861 */ 02,0331,0370,0,
-    /* 38865 */ 02,0331,0365,0,
-    /* 38869 */ 02,0331,0362,0,
-    /* 38873 */ 02,0331,0374,0,
-    /* 38877 */ 01,0335,0204,0,
-    /* 38881 */ 02,0331,0375,0,
-    /* 38885 */ 02,0333,0344,0,
-    /* 38889 */ 02,0331,0376,0,
-    /* 38893 */ 02,0331,0373,0,
-    /* 38897 */ 02,0331,0372,0,
-    /* 38901 */ 01,0331,0202,0,
-    /* 38905 */ 01,0335,0202,0,
-    /* 38909 */ 02,0335,0321,0,
-    /* 38913 */ 01,0331,0203,0,
-    /* 38917 */ 01,0335,0203,0,
-    /* 38921 */ 01,0333,0207,0,
-    /* 38925 */ 02,0335,0331,0,
-    /* 38929 */ 01,0330,0204,0,
-    /* 38933 */ 01,0334,0204,0,
-    /* 38937 */ 02,0336,0351,0,
-    /* 38941 */ 01,0330,0205,0,
-    /* 38945 */ 01,0334,0205,0,
-    /* 38949 */ 02,0336,0341,0,
-    /* 38953 */ 02,0331,0344,0,
-    /* 38957 */ 02,0335,0341,0,
-    /* 38961 */ 02,0333,0351,0,
-    /* 38965 */ 02,0337,0351,0,
-    /* 38969 */ 02,0335,0351,0,
-    /* 38973 */ 02,0332,0351,0,
-    /* 38977 */ 02,0331,0345,0,
-    /* 38981 */ 02,0331,0311,0,
-    /* 38985 */ 02,0331,0364,0,
-    /* 38989 */ 02,0331,0361,0,
-    /* 38993 */ 02,0331,0371,0,
-    /* 38997 */ 01,0366,0207,0,
-    /* 39001 */ 01,0366,0205,0,
-    /* 39005 */ 01,0344,025,0,
-    /* 39009 */ 0320,01,0355,0,
-    /* 39013 */ 0321,01,0355,0,
-    /* 39017 */ 0320,010,0100,0,
-    /* 39021 */ 0321,010,0100,0,
-    /* 39025 */ 0321,01,0155,0,
-    /* 39029 */ 0320,01,0155,0,
-    /* 39033 */ 01,0315,024,0,
-    /* 39037 */ 02,017,010,0,
-    /* 39041 */ 0322,01,0317,0,
-    /* 39045 */ 0321,01,0317,0,
-    /* 39049 */ 0324,01,0317,0,
-    /* 39053 */ 0320,01,0317,0,
-    /* 39057 */ 02,017,07,0,
-    /* 39061 */ 02,017,05,0,
-    /* 39065 */ 0321,01,0255,0,
-    /* 39069 */ 0324,01,0255,0,
-    /* 39073 */ 0320,01,0255,0,
-    /* 39077 */ 01,0240,045,0,
-    /* 39081 */ 01,0242,044,0,
-    /* 39085 */ 01,0212,0110,0,
-    /* 39089 */ 010,0260,021,0,
-    /* 39093 */ 0321,01,0245,0,
-    /* 39097 */ 0324,01,0245,0,
-    /* 39101 */ 0320,01,0245,0,
-    /* 39105 */ 01,0366,0204,0,
-    /* 39109 */ 01,014,021,0,
-    /* 39113 */ 01,0346,024,0,
-    /* 39117 */ 0320,01,0357,0,
-    /* 39121 */ 0321,01,0357,0,
-    /* 39125 */ 0321,01,0157,0,
-    /* 39129 */ 0320,01,0157,0,
-    /* 39133 */ 0333,01,0220,0,
-    /* 39137 */ 0320,010,0130,0,
-    /* 39141 */ 0321,010,0130,0,
-    /* 39145 */ 0323,010,0130,0,
-    /* 39149 */ 02,017,0241,0,
-    /* 39153 */ 02,017,0251,0,
-    /* 39157 */ 0322,01,0141,0,
-    /* 39161 */ 0321,01,0141,0,
-    /* 39165 */ 0320,01,0141,0,
-    /* 39169 */ 0322,01,0235,0,
-    /* 39173 */ 0321,01,0235,0,
-    /* 39177 */ 0320,01,0235,0,
-    /* 39181 */ 0320,010,0120,0,
-    /* 39185 */ 0321,010,0120,0,
-    /* 39189 */ 0323,010,0120,0,
-    /* 39193 */ 02,017,0240,0,
-    /* 39197 */ 02,017,0250,0,
-    /* 39201 */ 0322,01,0140,0,
-    /* 39205 */ 0321,01,0140,0,
-    /* 39209 */ 0320,01,0140,0,
-    /* 39213 */ 0322,01,0234,0,
-    /* 39217 */ 0321,01,0234,0,
-    /* 39221 */ 0320,01,0234,0,
-    /* 39225 */ 01,0320,0202,0,
-    /* 39229 */ 01,0322,0202,0,
-    /* 39233 */ 01,0320,0203,0,
-    /* 39237 */ 01,0322,0203,0,
-    /* 39241 */ 02,017,062,0,
-    /* 39245 */ 02,017,063,0,
-    /* 39249 */ 02,017,061,0,
-    /* 39253 */ 01,0302,030,0,
-    /* 39257 */ 01,0312,030,0,
-    /* 39261 */ 01,0320,0200,0,
-    /* 39265 */ 01,0322,0200,0,
-    /* 39269 */ 01,0320,0201,0,
-    /* 39273 */ 01,0322,0201,0,
-    /* 39277 */ 02,017,0252,0,
-    /* 39281 */ 01,0320,0204,0,
-    /* 39285 */ 01,0322,0204,0,
-    /* 39289 */ 01,0320,0207,0,
-    /* 39293 */ 01,0322,0207,0,
-    /* 39297 */ 01,034,021,0,
-    /* 39301 */ 0335,01,0256,0,
-    /* 39305 */ 01,0320,0205,0,
-    /* 39309 */ 01,0322,0205,0,
-    /* 39313 */ 02,017,070,0,
-    /* 39317 */ 02,017,0176,0,
-    /* 39321 */ 0321,01,0253,0,
-    /* 39325 */ 0324,01,0253,0,
-    /* 39329 */ 0320,01,0253,0,
-    /* 39333 */ 01,054,021,0,
-    /* 39337 */ 02,017,064,0,
-    /* 39341 */ 02,017,065,0,
-    /* 39345 */ 01,0204,0101,0,
-    /* 39349 */ 01,0204,0110,0,
-    /* 39353 */ 01,0250,021,0,
-    /* 39357 */ 02,017,0377,0,
-    /* 39361 */ 02,017,0271,0,
-    /* 39365 */ 02,017,013,0,
-    /* 39369 */ 02,017,011,0,
-    /* 39373 */ 02,017,060,0,
-    /* 39377 */ 0320,011,0220,0,
-    /* 39381 */ 0321,011,0220,0,
-    /* 39385 */ 0324,011,0220,0,
-    /* 39389 */ 0320,010,0220,0,
-    /* 39393 */ 0321,010,0220,0,
-    /* 39397 */ 0324,010,0220,0,
-    /* 39401 */ 0321,01,0220,0,
-    /* 39405 */ 01,064,021,0,
-    /* 39409 */ 02,017,067,0,
-    /* 39413 */ 01,067,0,
-    /* 39416 */ 01,077,0,
-    /* 39419 */ 01,0365,0,
-    /* 39422 */ 01,047,0,
-    /* 39425 */ 01,057,0,
-    /* 39428 */ 01,0364,0,
-    /* 39431 */ 01,0361,0,
-    /* 39434 */ 01,0354,0,
-    /* 39437 */ 01,0154,0,
-    /* 39440 */ 01,0314,0,
-    /* 39443 */ 01,0316,0,
-    /* 39446 */ 01,0237,0,
-    /* 39449 */ 01,0254,0,
-    /* 39452 */ 01,0156,0,
-    /* 39455 */ 01,0375,0,
-    /* 39458 */ 01,0327,0,
-};
-
-/*
- * Bytecode frequencies (including reuse):
- *
- *   0:6335 |  40:   2 | 100:  49 | 140:   0 | 200: 119 | 240: 554 | 300:   0 | 340:   1
- *   1:5708 |  41:  37 | 101: 569 | 141:   0 | 201:  92 | 241: 756 | 301:   0 | 341:  10
- *   2:1029 |  42:  12 | 102:  14 | 142:   0 | 202: 110 | 242:   0 | 302:   0 | 342:   0
- *   3: 192 |  43:   0 | 103:   0 | 143:   0 | 203:  89 | 243:   0 | 303:   0 | 343:   0
- *   4:   0 |  44:   4 | 104:   0 | 144:   0 | 204: 119 | 244:   0 | 304:   0 | 344:   0
- *   5:   0 |  45:   4 | 105:   0 | 145:   0 | 205:  85 | 245:   0 | 305:   0 | 345:   0
- *   6:   0 |  46:   0 | 106:   0 | 146:   0 | 206: 102 | 246:   0 | 306:   0 | 346:   0
- *   7:   0 |  47:   0 | 107:   0 | 147:   0 | 207:  88 | 247:   0 | 307:   0 | 347:   0
- *  10:  73 |  50:  28 | 110:2562 | 150:   0 | 210:   8 | 250: 730 | 310:   7 | 350:   0
- *  11:  26 |  51:   0 | 111:   0 | 151:   0 | 211:  14 | 251:   0 | 311:   7 | 351:   0
- *  12:   0 |  52:   0 | 112:   0 | 152:   0 | 212:  19 | 252:   0 | 312:   5 | 352:   0
- *  13:   0 |  53:   0 | 113:   0 | 153:   0 | 213:   9 | 253:   0 | 313:   7 | 353:   0
- *  14:   0 |  54:   0 | 114:   0 | 154:   0 | 214:  15 | 254:   2 | 314:   1 | 354:   0
- *  15:   2 |  55:   1 | 115:   0 | 155:   0 | 215:   2 | 255:  23 | 315:   0 | 355:   0
- *  16:   4 |  56:   0 | 116:   0 | 156:   0 | 216:  19 | 256:   2 | 316:   0 | 356:   0
- *  17:   0 |  57:   0 | 117:   0 | 157:   0 | 217:   7 | 257:   0 | 317:  19 | 357:   0
- *  20:   2 |  60:   0 | 120:1696 | 160:   0 | 220:   0 | 260: 785 | 320: 341 | 360: 186
- *  21: 107 |  61:   0 | 121:   0 | 161:   0 | 221:   0 | 261: 964 | 321: 349 | 361: 250
- *  22: 334 |  62:   0 | 122:   0 | 162:   0 | 222:   0 | 262:  38 | 322:  23 | 362:   0
- *  23: 156 |  63:   0 | 123:   0 | 163:   0 | 223:   0 | 263:   0 | 323: 127 | 363:   0
- *  24:   6 |  64:  33 | 124:   0 | 164:   0 | 224:   0 | 264:   0 | 324: 320 | 364:   0
- *  25:  67 |  65:   0 | 125:   0 | 165:   0 | 225:   0 | 265:   0 | 325:   1 | 365:   0
- *  26:  66 |  66:   0 | 126:   0 | 166:   0 | 226:   0 | 266:   0 | 326:  13 | 366:   0
- *  27:   1 |  67:   0 | 127:   0 | 167:   0 | 227:   0 | 267:   0 | 327:   0 | 367:   0
- *  30:  15 |  70:   0 | 130:  35 | 170:   0 | 230:   0 | 270: 320 | 330:  17 | 370:   1
- *  31:  36 |  71:   0 | 131:   0 | 171:   0 | 231:   0 | 271:  12 | 331:   6 | 371:   1
- *  32:   4 |  72:   0 | 132:   0 | 172:   0 | 232:   0 | 272:   8 | 332:  55 | 372:   0
- *  33:   0 |  73:   0 | 133:   0 | 173:   0 | 233:   0 | 273: 183 | 333:  74 | 373:   1
- *  34:   6 |  74:   6 | 134:   0 | 174:   0 | 234:   0 | 274:   6 | 334:   2 | 374:  30
- *  35:   2 |  75:   0 | 135:   0 | 175:  35 | 235:   0 | 275:  94 | 335:   8 | 375:  26
- *  36:   0 |  76:   0 | 136:   0 | 176:  88 | 236:   0 | 276:  12 | 336:   8 | 376:  24
- *  37:   0 |  77:   0 | 137:   0 | 177:  53 | 237:   0 | 277:   0 | 337:   0 | 377:   0
- */
--- a/nasmbuild/nasm-2.13rc9/x86/insnsd.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23626 +0,0 @@
-/* This file auto-generated from insns.dat by insns.pl - don't edit it */
-
-#include "nasm.h"
-#include "insns.h"
-
-static const struct itemplate instrux[] = {
-    /*    0 */ {I_RESB, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38563, 0},
-    /*    1 */ {I_AAA, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39413, 1},
-    /*    2 */ {I_AAD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38421, 1},
-    /*    3 */ {I_AAD, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38425, 2},
-    /*    4 */ {I_AAM, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38429, 1},
-    /*    5 */ {I_AAM, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38433, 2},
-    /*    6 */ {I_AAS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39416, 1},
-    /*    7 */ {I_ADC, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36646, 3},
-    /*    8 */ {I_ADC, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36647, 0},
-    /*    9 */ {I_ADC, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32992, 3},
-    /*   10 */ {I_ADC, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32993, 0},
-    /*   11 */ {I_ADC, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32998, 4},
-    /*   12 */ {I_ADC, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32999, 5},
-    /*   13 */ {I_ADC, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33004, 6},
-    /*   14 */ {I_ADC, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33005, 7},
-    /*   15 */ {I_ADC, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+27255, 8},
-    /*   16 */ {I_ADC, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+27255, 0},
-    /*   17 */ {I_ADC, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36651, 8},
-    /*   18 */ {I_ADC, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+36651, 0},
-    /*   19 */ {I_ADC, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36656, 9},
-    /*   20 */ {I_ADC, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+36656, 5},
-    /*   21 */ {I_ADC, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36661, 10},
-    /*   22 */ {I_ADC, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+36661, 7},
-    /*   23 */ {I_ADC, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23850, 11},
-    /*   24 */ {I_ADC, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23857, 12},
-    /*   25 */ {I_ADC, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23864, 13},
-    /*   26 */ {I_ADC, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38437, 8},
-    /*   27 */ {I_ADC, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36666, 8},
-    /*   28 */ {I_ADC, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36671, 9},
-    /*   29 */ {I_ADC, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36676, 10},
-    /*   30 */ {I_ADC, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33010, 3},
-    /*   31 */ {I_ADC, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23871, 3},
-    /*   32 */ {I_ADC, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23878, 4},
-    /*   33 */ {I_ADC, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23885, 6},
-    /*   34 */ {I_ADC, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+23871, 3},
-    /*   35 */ {I_ADC, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+23878, 4},
-    /*   36 */ {I_ADD, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36681, 3},
-    /*   37 */ {I_ADD, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36682, 0},
-    /*   38 */ {I_ADD, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33022, 3},
-    /*   39 */ {I_ADD, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33023, 0},
-    /*   40 */ {I_ADD, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33028, 4},
-    /*   41 */ {I_ADD, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33029, 5},
-    /*   42 */ {I_ADD, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33034, 6},
-    /*   43 */ {I_ADD, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33035, 7},
-    /*   44 */ {I_ADD, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+31028, 8},
-    /*   45 */ {I_ADD, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31028, 0},
-    /*   46 */ {I_ADD, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36686, 8},
-    /*   47 */ {I_ADD, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+36686, 0},
-    /*   48 */ {I_ADD, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36691, 9},
-    /*   49 */ {I_ADD, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+36691, 5},
-    /*   50 */ {I_ADD, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36696, 10},
-    /*   51 */ {I_ADD, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+36696, 7},
-    /*   52 */ {I_ADD, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23892, 11},
-    /*   53 */ {I_ADD, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23899, 12},
-    /*   54 */ {I_ADD, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23906, 13},
-    /*   55 */ {I_ADD, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38441, 8},
-    /*   56 */ {I_ADD, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36701, 8},
-    /*   57 */ {I_ADD, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36706, 9},
-    /*   58 */ {I_ADD, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36711, 10},
-    /*   59 */ {I_ADD, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33040, 3},
-    /*   60 */ {I_ADD, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23913, 3},
-    /*   61 */ {I_ADD, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23920, 4},
-    /*   62 */ {I_ADD, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23927, 6},
-    /*   63 */ {I_ADD, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33040, 3},
-    /*   64 */ {I_ADD, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+23913, 3},
-    /*   65 */ {I_ADD, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+23920, 4},
-    /*   66 */ {I_AND, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36716, 3},
-    /*   67 */ {I_AND, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36717, 0},
-    /*   68 */ {I_AND, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33052, 3},
-    /*   69 */ {I_AND, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33053, 0},
-    /*   70 */ {I_AND, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33058, 4},
-    /*   71 */ {I_AND, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33059, 5},
-    /*   72 */ {I_AND, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33064, 6},
-    /*   73 */ {I_AND, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33065, 7},
-    /*   74 */ {I_AND, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+31308, 8},
-    /*   75 */ {I_AND, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31308, 0},
-    /*   76 */ {I_AND, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36721, 8},
-    /*   77 */ {I_AND, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+36721, 0},
-    /*   78 */ {I_AND, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36726, 9},
-    /*   79 */ {I_AND, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+36726, 5},
-    /*   80 */ {I_AND, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36731, 10},
-    /*   81 */ {I_AND, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+36731, 7},
-    /*   82 */ {I_AND, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23934, 11},
-    /*   83 */ {I_AND, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23941, 12},
-    /*   84 */ {I_AND, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+23948, 13},
-    /*   85 */ {I_AND, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38445, 8},
-    /*   86 */ {I_AND, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36736, 8},
-    /*   87 */ {I_AND, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36741, 9},
-    /*   88 */ {I_AND, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36746, 10},
-    /*   89 */ {I_AND, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33070, 3},
-    /*   90 */ {I_AND, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23955, 3},
-    /*   91 */ {I_AND, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23962, 4},
-    /*   92 */ {I_AND, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+23969, 6},
-    /*   93 */ {I_AND, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33070, 3},
-    /*   94 */ {I_AND, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+23955, 3},
-    /*   95 */ {I_AND, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+23962, 4},
-    /*   96 */ {I_ARPL, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+38449, 15},
-    /*   97 */ {I_ARPL, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+38449, 16},
-    /*   98 */ {I_BOUND, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36751, 18},
-    /*   99 */ {I_BOUND, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36756, 19},
-    /*  100 */ {I_BSF, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+23976, 9},
-    /*  101 */ {I_BSF, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+23976, 5},
-    /*  102 */ {I_BSF, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+23983, 9},
-    /*  103 */ {I_BSF, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+23983, 5},
-    /*  104 */ {I_BSF, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+23990, 10},
-    /*  105 */ {I_BSF, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+23990, 7},
-    /*  106 */ {I_BSR, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+23997, 9},
-    /*  107 */ {I_BSR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+23997, 5},
-    /*  108 */ {I_BSR, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24004, 9},
-    /*  109 */ {I_BSR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24004, 5},
-    /*  110 */ {I_BSR, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24011, 10},
-    /*  111 */ {I_BSR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24011, 7},
-    /*  112 */ {I_BSWAP, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33082, 20},
-    /*  113 */ {I_BSWAP, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33088, 7},
-    /*  114 */ {I_BT, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33094, 9},
-    /*  115 */ {I_BT, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33094, 5},
-    /*  116 */ {I_BT, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33100, 9},
-    /*  117 */ {I_BT, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33100, 5},
-    /*  118 */ {I_BT, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33106, 10},
-    /*  119 */ {I_BT, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33106, 7},
-    /*  120 */ {I_BT, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24018, 21},
-    /*  121 */ {I_BT, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24025, 21},
-    /*  122 */ {I_BT, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24032, 22},
-    /*  123 */ {I_BTC, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24039, 4},
-    /*  124 */ {I_BTC, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24040, 5},
-    /*  125 */ {I_BTC, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24046, 4},
-    /*  126 */ {I_BTC, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24047, 5},
-    /*  127 */ {I_BTC, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24053, 6},
-    /*  128 */ {I_BTC, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24054, 7},
-    /*  129 */ {I_BTC, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7218, 23},
-    /*  130 */ {I_BTC, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7226, 23},
-    /*  131 */ {I_BTC, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7234, 24},
-    /*  132 */ {I_BTR, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24060, 4},
-    /*  133 */ {I_BTR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24061, 5},
-    /*  134 */ {I_BTR, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24067, 4},
-    /*  135 */ {I_BTR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24068, 5},
-    /*  136 */ {I_BTR, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24074, 6},
-    /*  137 */ {I_BTR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24075, 7},
-    /*  138 */ {I_BTR, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7242, 23},
-    /*  139 */ {I_BTR, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7250, 23},
-    /*  140 */ {I_BTR, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7258, 24},
-    /*  141 */ {I_BTS, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24081, 4},
-    /*  142 */ {I_BTS, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24082, 5},
-    /*  143 */ {I_BTS, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24088, 4},
-    /*  144 */ {I_BTS, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24089, 5},
-    /*  145 */ {I_BTS, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24095, 6},
-    /*  146 */ {I_BTS, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24096, 7},
-    /*  147 */ {I_BTS, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7266, 23},
-    /*  148 */ {I_BTS, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7274, 23},
-    /*  149 */ {I_BTS, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+7282, 24},
-    /*  150 */ {I_CALL, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36761, 25},
-    /*  151 */ {I_CALL, 1, {IMMEDIATE|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36766, 26},
-    /*  152 */ {I_CALL, 1, {IMMEDIATE|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36771, 27},
-    /*  153 */ {I_CALL, 1, {IMMEDIATE|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36776, 28},
-    /*  154 */ {I_CALL, 2, {IMMEDIATE|COLON,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33130, 1},
-    /*  155 */ {I_CALL, 2, {IMMEDIATE|BITS16|COLON,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33136, 1},
-    /*  156 */ {I_CALL, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33136, 1},
-    /*  157 */ {I_CALL, 2, {IMMEDIATE|BITS32|COLON,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33142, 19},
-    /*  158 */ {I_CALL, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33142, 19},
-    /*  159 */ {I_CALL, 1, {MEMORY|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36781, 1},
-    /*  160 */ {I_CALL, 1, {MEMORY|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36786, 7},
-    /*  161 */ {I_CALL, 1, {MEMORY|BITS16|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36791, 0},
-    /*  162 */ {I_CALL, 1, {MEMORY|BITS32|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36796, 5},
-    /*  163 */ {I_CALL, 1, {MEMORY|BITS64|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36786, 7},
-    /*  164 */ {I_CALL, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36801, 25},
-    /*  165 */ {I_CALL, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36806, 26},
-    /*  166 */ {I_CALL, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36811, 27},
-    /*  167 */ {I_CALL, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36816, 28},
-    /*  168 */ {I_CBW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38461, 0},
-    /*  169 */ {I_CDQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38465, 5},
-    /*  170 */ {I_CDQE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38469, 7},
-    /*  171 */ {I_CLC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38193, 0},
-    /*  172 */ {I_CLD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38418, 0},
-    /*  173 */ {I_CLI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37538, 0},
-    /*  174 */ {I_CLTS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38473, 29},
-    /*  175 */ {I_CMC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39419, 0},
-    /*  176 */ {I_CMP, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38477, 8},
-    /*  177 */ {I_CMP, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38477, 0},
-    /*  178 */ {I_CMP, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+36821, 8},
-    /*  179 */ {I_CMP, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+36821, 0},
-    /*  180 */ {I_CMP, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+36826, 9},
-    /*  181 */ {I_CMP, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+36826, 5},
-    /*  182 */ {I_CMP, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+36831, 10},
-    /*  183 */ {I_CMP, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+36831, 7},
-    /*  184 */ {I_CMP, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+31266, 8},
-    /*  185 */ {I_CMP, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31266, 0},
-    /*  186 */ {I_CMP, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36836, 8},
-    /*  187 */ {I_CMP, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+36836, 0},
-    /*  188 */ {I_CMP, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36841, 9},
-    /*  189 */ {I_CMP, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+36841, 5},
-    /*  190 */ {I_CMP, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+36846, 10},
-    /*  191 */ {I_CMP, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+36846, 7},
-    /*  192 */ {I_CMP, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33148, 0},
-    /*  193 */ {I_CMP, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33154, 5},
-    /*  194 */ {I_CMP, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33160, 7},
-    /*  195 */ {I_CMP, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38481, 8},
-    /*  196 */ {I_CMP, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36851, 8},
-    /*  197 */ {I_CMP, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36856, 9},
-    /*  198 */ {I_CMP, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36861, 10},
-    /*  199 */ {I_CMP, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36866, 8},
-    /*  200 */ {I_CMP, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33166, 8},
-    /*  201 */ {I_CMP, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33172, 9},
-    /*  202 */ {I_CMP, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33178, 10},
-    /*  203 */ {I_CMP, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+36866, 8},
-    /*  204 */ {I_CMP, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33166, 8},
-    /*  205 */ {I_CMP, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33172, 9},
-    /*  206 */ {I_CMPSB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38485, 0},
-    /*  207 */ {I_CMPSD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36876, 5},
-    /*  208 */ {I_CMPSQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36881, 7},
-    /*  209 */ {I_CMPSW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36886, 0},
-    /*  210 */ {I_CMPXCHG, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33184, 31},
-    /*  211 */ {I_CMPXCHG, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33185, 32},
-    /*  212 */ {I_CMPXCHG, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24102, 31},
-    /*  213 */ {I_CMPXCHG, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24103, 32},
-    /*  214 */ {I_CMPXCHG, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24109, 31},
-    /*  215 */ {I_CMPXCHG, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24110, 32},
-    /*  216 */ {I_CMPXCHG, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24116, 6},
-    /*  217 */ {I_CMPXCHG, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24117, 7},
-    /*  218 */ {I_CMPXCHG8B, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24123, 35},
-    /*  219 */ {I_CMPXCHG16B, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33202, 13},
-    /*  220 */ {I_CPUID, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38489, 32},
-    /*  221 */ {I_CPU_READ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38493, 36},
-    /*  222 */ {I_CPU_WRITE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38497, 36},
-    /*  223 */ {I_CQO, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38501, 7},
-    /*  224 */ {I_CWD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38505, 0},
-    /*  225 */ {I_CWDE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38509, 5},
-    /*  226 */ {I_DAA, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39422, 1},
-    /*  227 */ {I_DAS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39425, 1},
-    /*  228 */ {I_DEC, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38513, 1},
-    /*  229 */ {I_DEC, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38517, 19},
-    /*  230 */ {I_DEC, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36896, 11},
-    /*  231 */ {I_DEC, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33208, 11},
-    /*  232 */ {I_DEC, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33214, 12},
-    /*  233 */ {I_DEC, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33220, 13},
-    /*  234 */ {I_DIV, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38521, 0},
-    /*  235 */ {I_DIV, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36901, 0},
-    /*  236 */ {I_DIV, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36906, 5},
-    /*  237 */ {I_DIV, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36911, 7},
-    /*  238 */ {I_DMINT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38525, 37},
-    /*  239 */ {I_EMMS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38529, 38},
-    /*  240 */ {I_ENTER, 2, {IMMEDIATE,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+36916, 39},
-    /*  241 */ {I_EQU, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39460, 0},
-    /*  242 */ {I_EQU, 2, {IMMEDIATE|COLON,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39460, 0},
-    /*  243 */ {I_F2XM1, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38533, 40},
-    /*  244 */ {I_FABS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38537, 40},
-    /*  245 */ {I_FADD, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38541, 40},
-    /*  246 */ {I_FADD, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38545, 40},
-    /*  247 */ {I_FADD, 1, {FPUREG|TO,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36921, 40},
-    /*  248 */ {I_FADD, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36926, 40},
-    /*  249 */ {I_FADD, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36921, 40},
-    /*  250 */ {I_FADD, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+36931, 40},
-    /*  251 */ {I_FADDP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36936, 40},
-    /*  252 */ {I_FADDP, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36936, 40},
-    /*  253 */ {I_FBLD, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38553, 40},
-    /*  254 */ {I_FBLD, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38553, 40},
-    /*  255 */ {I_FBSTP, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38557, 40},
-    /*  256 */ {I_FBSTP, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38557, 40},
-    /*  257 */ {I_FCHS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38561, 40},
-    /*  258 */ {I_FCLEX, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36941, 40},
-    /*  259 */ {I_FCMOVB, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36946, 41},
-    /*  260 */ {I_FCMOVB, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+36951, 41},
-    /*  261 */ {I_FCMOVBE, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36956, 41},
-    /*  262 */ {I_FCMOVBE, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+36961, 41},
-    /*  263 */ {I_FCMOVE, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36966, 41},
-    /*  264 */ {I_FCMOVE, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+36971, 41},
-    /*  265 */ {I_FCMOVNB, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36976, 41},
-    /*  266 */ {I_FCMOVNB, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+36981, 41},
-    /*  267 */ {I_FCMOVNBE, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36986, 41},
-    /*  268 */ {I_FCMOVNBE, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+36991, 41},
-    /*  269 */ {I_FCMOVNE, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36996, 41},
-    /*  270 */ {I_FCMOVNE, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37001, 41},
-    /*  271 */ {I_FCMOVNU, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37006, 41},
-    /*  272 */ {I_FCMOVNU, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37011, 41},
-    /*  273 */ {I_FCMOVU, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37016, 41},
-    /*  274 */ {I_FCMOVU, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37021, 41},
-    /*  275 */ {I_FCOM, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38597, 40},
-    /*  276 */ {I_FCOM, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38601, 40},
-    /*  277 */ {I_FCOM, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37026, 40},
-    /*  278 */ {I_FCOM, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37031, 40},
-    /*  279 */ {I_FCOMI, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37036, 41},
-    /*  280 */ {I_FCOMI, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37041, 41},
-    /*  281 */ {I_FCOMIP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37046, 41},
-    /*  282 */ {I_FCOMIP, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37051, 41},
-    /*  283 */ {I_FCOMP, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38617, 40},
-    /*  284 */ {I_FCOMP, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38621, 40},
-    /*  285 */ {I_FCOMP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37056, 40},
-    /*  286 */ {I_FCOMP, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37061, 40},
-    /*  287 */ {I_FCOMPP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38629, 40},
-    /*  288 */ {I_FCOS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38633, 42},
-    /*  289 */ {I_FDECSTP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38637, 40},
-    /*  290 */ {I_FDISI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37066, 40},
-    /*  291 */ {I_FDIV, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38641, 40},
-    /*  292 */ {I_FDIV, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38645, 40},
-    /*  293 */ {I_FDIV, 1, {FPUREG|TO,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37071, 40},
-    /*  294 */ {I_FDIV, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37076, 40},
-    /*  295 */ {I_FDIV, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37071, 40},
-    /*  296 */ {I_FDIV, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37081, 40},
-    /*  297 */ {I_FDIVP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37086, 40},
-    /*  298 */ {I_FDIVP, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37086, 40},
-    /*  299 */ {I_FDIVR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38653, 40},
-    /*  300 */ {I_FDIVR, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38657, 40},
-    /*  301 */ {I_FDIVR, 1, {FPUREG|TO,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37091, 40},
-    /*  302 */ {I_FDIVR, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37091, 40},
-    /*  303 */ {I_FDIVR, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37096, 40},
-    /*  304 */ {I_FDIVR, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37101, 40},
-    /*  305 */ {I_FDIVRP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37106, 40},
-    /*  306 */ {I_FDIVRP, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37106, 40},
-    /*  307 */ {I_FEMMS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38665, 43},
-    /*  308 */ {I_FENI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37111, 40},
-    /*  309 */ {I_FFREE, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37116, 40},
-    /*  310 */ {I_FFREE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38669, 40},
-    /*  311 */ {I_FFREEP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37121, 44},
-    /*  312 */ {I_FFREEP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38673, 44},
-    /*  313 */ {I_FIADD, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38677, 40},
-    /*  314 */ {I_FIADD, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38681, 40},
-    /*  315 */ {I_FICOM, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38685, 40},
-    /*  316 */ {I_FICOM, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38689, 40},
-    /*  317 */ {I_FICOMP, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38693, 40},
-    /*  318 */ {I_FICOMP, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38697, 40},
-    /*  319 */ {I_FIDIV, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38701, 40},
-    /*  320 */ {I_FIDIV, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38705, 40},
-    /*  321 */ {I_FIDIVR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38709, 40},
-    /*  322 */ {I_FIDIVR, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38713, 40},
-    /*  323 */ {I_FILD, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38717, 40},
-    /*  324 */ {I_FILD, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38721, 40},
-    /*  325 */ {I_FILD, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38725, 40},
-    /*  326 */ {I_FIMUL, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38729, 40},
-    /*  327 */ {I_FIMUL, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38733, 40},
-    /*  328 */ {I_FINCSTP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38737, 40},
-    /*  329 */ {I_FINIT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37126, 40},
-    /*  330 */ {I_FIST, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38741, 40},
-    /*  331 */ {I_FIST, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38745, 40},
-    /*  332 */ {I_FISTP, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38749, 40},
-    /*  333 */ {I_FISTP, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38753, 40},
-    /*  334 */ {I_FISTP, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38757, 40},
-    /*  335 */ {I_FISTTP, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38761, 45},
-    /*  336 */ {I_FISTTP, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38765, 45},
-    /*  337 */ {I_FISTTP, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38769, 45},
-    /*  338 */ {I_FISUB, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38773, 40},
-    /*  339 */ {I_FISUB, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38777, 40},
-    /*  340 */ {I_FISUBR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38781, 40},
-    /*  341 */ {I_FISUBR, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38785, 40},
-    /*  342 */ {I_FLD, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38789, 40},
-    /*  343 */ {I_FLD, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38793, 40},
-    /*  344 */ {I_FLD, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38797, 40},
-    /*  345 */ {I_FLD, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37131, 40},
-    /*  346 */ {I_FLD1, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38805, 40},
-    /*  347 */ {I_FLDCW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38809, 46},
-    /*  348 */ {I_FLDENV, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38813, 40},
-    /*  349 */ {I_FLDL2E, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38817, 40},
-    /*  350 */ {I_FLDL2T, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38821, 40},
-    /*  351 */ {I_FLDLG2, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38825, 40},
-    /*  352 */ {I_FLDLN2, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38829, 40},
-    /*  353 */ {I_FLDPI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38833, 40},
-    /*  354 */ {I_FLDZ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38837, 40},
-    /*  355 */ {I_FMUL, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38841, 40},
-    /*  356 */ {I_FMUL, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38845, 40},
-    /*  357 */ {I_FMUL, 1, {FPUREG|TO,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37136, 40},
-    /*  358 */ {I_FMUL, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37136, 40},
-    /*  359 */ {I_FMUL, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37141, 40},
-    /*  360 */ {I_FMUL, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37146, 40},
-    /*  361 */ {I_FMULP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37151, 40},
-    /*  362 */ {I_FMULP, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37151, 40},
-    /*  363 */ {I_FNCLEX, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36942, 40},
-    /*  364 */ {I_FNDISI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37067, 40},
-    /*  365 */ {I_FNENI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37112, 40},
-    /*  366 */ {I_FNINIT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37127, 40},
-    /*  367 */ {I_FNOP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38853, 40},
-    /*  368 */ {I_FNSAVE, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37157, 40},
-    /*  369 */ {I_FNSTCW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37167, 46},
-    /*  370 */ {I_FNSTENV, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37172, 40},
-    /*  371 */ {I_FNSTSW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37182, 46},
-    /*  372 */ {I_FNSTSW, 1, {REG_AX,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37187, 47},
-    /*  373 */ {I_FPATAN, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38857, 40},
-    /*  374 */ {I_FPREM, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38861, 40},
-    /*  375 */ {I_FPREM1, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38865, 42},
-    /*  376 */ {I_FPTAN, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38869, 40},
-    /*  377 */ {I_FRNDINT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38873, 40},
-    /*  378 */ {I_FRSTOR, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38877, 40},
-    /*  379 */ {I_FSAVE, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37156, 40},
-    /*  380 */ {I_FSCALE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38881, 40},
-    /*  381 */ {I_FSETPM, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38885, 47},
-    /*  382 */ {I_FSIN, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38889, 42},
-    /*  383 */ {I_FSINCOS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38893, 42},
-    /*  384 */ {I_FSQRT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38897, 40},
-    /*  385 */ {I_FST, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38901, 40},
-    /*  386 */ {I_FST, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38905, 40},
-    /*  387 */ {I_FST, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37161, 40},
-    /*  388 */ {I_FSTCW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37166, 46},
-    /*  389 */ {I_FSTENV, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37171, 40},
-    /*  390 */ {I_FSTP, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38913, 40},
-    /*  391 */ {I_FSTP, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38917, 40},
-    /*  392 */ {I_FSTP, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38921, 40},
-    /*  393 */ {I_FSTP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37176, 40},
-    /*  394 */ {I_FSTSW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37181, 46},
-    /*  395 */ {I_FSTSW, 1, {REG_AX,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37186, 47},
-    /*  396 */ {I_FSUB, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38929, 40},
-    /*  397 */ {I_FSUB, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38933, 40},
-    /*  398 */ {I_FSUB, 1, {FPUREG|TO,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37191, 40},
-    /*  399 */ {I_FSUB, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37191, 40},
-    /*  400 */ {I_FSUB, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37196, 40},
-    /*  401 */ {I_FSUB, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37201, 40},
-    /*  402 */ {I_FSUBP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37206, 40},
-    /*  403 */ {I_FSUBP, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37206, 40},
-    /*  404 */ {I_FSUBR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38941, 40},
-    /*  405 */ {I_FSUBR, 1, {MEMORY|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38945, 40},
-    /*  406 */ {I_FSUBR, 1, {FPUREG|TO,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37211, 40},
-    /*  407 */ {I_FSUBR, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37211, 40},
-    /*  408 */ {I_FSUBR, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37216, 40},
-    /*  409 */ {I_FSUBR, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37221, 40},
-    /*  410 */ {I_FSUBRP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37226, 40},
-    /*  411 */ {I_FSUBRP, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37226, 40},
-    /*  412 */ {I_FTST, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38953, 40},
-    /*  413 */ {I_FUCOM, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37231, 42},
-    /*  414 */ {I_FUCOM, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37236, 42},
-    /*  415 */ {I_FUCOMI, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37241, 41},
-    /*  416 */ {I_FUCOMI, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37246, 41},
-    /*  417 */ {I_FUCOMIP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37251, 41},
-    /*  418 */ {I_FUCOMIP, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37256, 41},
-    /*  419 */ {I_FUCOMP, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37261, 42},
-    /*  420 */ {I_FUCOMP, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37266, 42},
-    /*  421 */ {I_FUCOMPP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38973, 42},
-    /*  422 */ {I_FXAM, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38977, 40},
-    /*  423 */ {I_FXCH, 1, {FPUREG,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37271, 40},
-    /*  424 */ {I_FXCH, 2, {FPUREG,FPU0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37271, 40},
-    /*  425 */ {I_FXCH, 2, {FPU0,FPUREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37276, 40},
-    /*  426 */ {I_FXTRACT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38985, 40},
-    /*  427 */ {I_FYL2X, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38989, 40},
-    /*  428 */ {I_FYL2XP1, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38993, 40},
-    /*  429 */ {I_HLT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39428, 48},
-    /*  430 */ {I_IDIV, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38997, 0},
-    /*  431 */ {I_IDIV, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37281, 0},
-    /*  432 */ {I_IDIV, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37286, 5},
-    /*  433 */ {I_IDIV, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37291, 7},
-    /*  434 */ {I_IMUL, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39001, 0},
-    /*  435 */ {I_IMUL, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37296, 0},
-    /*  436 */ {I_IMUL, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37301, 5},
-    /*  437 */ {I_IMUL, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37306, 7},
-    /*  438 */ {I_IMUL, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33226, 9},
-    /*  439 */ {I_IMUL, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33226, 5},
-    /*  440 */ {I_IMUL, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33232, 9},
-    /*  441 */ {I_IMUL, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33232, 5},
-    /*  442 */ {I_IMUL, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33238, 10},
-    /*  443 */ {I_IMUL, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33238, 7},
-    /*  444 */ {I_IMUL, 3, {REG_GPR|BITS16,MEMORY,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+33244, 52},
-    /*  445 */ {I_IMUL, 3, {REG_GPR|BITS16,MEMORY,IMMEDIATE|BITS16,0,0}, NO_DECORATOR, nasm_bytecodes+33250, 52},
-    /*  446 */ {I_IMUL, 3, {REG_GPR|BITS16,REG_GPR|BITS16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+33244, 39},
-    /*  447 */ {I_IMUL, 3, {REG_GPR|BITS16,REG_GPR|BITS16,IMMEDIATE|BITS16,0,0}, NO_DECORATOR, nasm_bytecodes+33250, 39},
-    /*  448 */ {I_IMUL, 3, {REG_GPR|BITS32,MEMORY,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+33256, 9},
-    /*  449 */ {I_IMUL, 3, {REG_GPR|BITS32,MEMORY,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+33262, 9},
-    /*  450 */ {I_IMUL, 3, {REG_GPR|BITS32,REG_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+33256, 5},
-    /*  451 */ {I_IMUL, 3, {REG_GPR|BITS32,REG_GPR|BITS32,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+33262, 5},
-    /*  452 */ {I_IMUL, 3, {REG_GPR|BITS64,MEMORY,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+33268, 10},
-    /*  453 */ {I_IMUL, 3, {REG_GPR|BITS64,MEMORY,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+33274, 10},
-    /*  454 */ {I_IMUL, 3, {REG_GPR|BITS64,REG_GPR|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+33268, 7},
-    /*  455 */ {I_IMUL, 3, {REG_GPR|BITS64,REG_GPR|BITS64,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+33274, 7},
-    /*  456 */ {I_IMUL, 2, {REG_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33286, 39},
-    /*  457 */ {I_IMUL, 2, {REG_GPR|BITS16,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33292, 39},
-    /*  458 */ {I_IMUL, 2, {REG_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33298, 5},
-    /*  459 */ {I_IMUL, 2, {REG_GPR|BITS32,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33304, 5},
-    /*  460 */ {I_IMUL, 2, {REG_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33310, 7},
-    /*  461 */ {I_IMUL, 2, {REG_GPR|BITS64,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33316, 7},
-    /*  462 */ {I_IN, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39005, 53},
-    /*  463 */ {I_IN, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37311, 53},
-    /*  464 */ {I_IN, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37316, 21},
-    /*  465 */ {I_IN, 2, {REG_AL,REG_DX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39434, 0},
-    /*  466 */ {I_IN, 2, {REG_AX,REG_DX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39009, 0},
-    /*  467 */ {I_IN, 2, {REG_EAX,REG_DX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39013, 5},
-    /*  468 */ {I_INC, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39017, 1},
-    /*  469 */ {I_INC, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39021, 19},
-    /*  470 */ {I_INC, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37321, 11},
-    /*  471 */ {I_INC, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33322, 11},
-    /*  472 */ {I_INC, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33328, 12},
-    /*  473 */ {I_INC, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33334, 13},
-    /*  474 */ {I_INSB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39437, 39},
-    /*  475 */ {I_INSD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39025, 5},
-    /*  476 */ {I_INSW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39029, 39},
-    /*  477 */ {I_INT, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39033, 53},
-    /*  478 */ {I_INT1, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39431, 5},
-    /*  479 */ {I_INT3, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39440, 0},
-    /*  480 */ {I_INTO, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39443, 1},
-    /*  481 */ {I_INVD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39037, 54},
-    /*  482 */ {I_INVPCID, 2, {REG_GPR|BITS32,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+24130, 55},
-    /*  483 */ {I_INVPCID, 2, {REG_GPR|BITS64,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+24130, 56},
-    /*  484 */ {I_INVLPG, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37326, 54},
-    /*  485 */ {I_INVLPGA, 2, {REG_AX,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33340, 57},
-    /*  486 */ {I_INVLPGA, 2, {REG_EAX,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33346, 58},
-    /*  487 */ {I_INVLPGA, 2, {REG_RAX,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24137, 59},
-    /*  488 */ {I_INVLPGA, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33347, 58},
-    /*  489 */ {I_IRET, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39041, 0},
-    /*  490 */ {I_IRETD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39045, 5},
-    /*  491 */ {I_IRETQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39049, 7},
-    /*  492 */ {I_IRETW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39053, 0},
-    /*  493 */ {I_JCXZ, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37331, 1},
-    /*  494 */ {I_JECXZ, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37336, 5},
-    /*  495 */ {I_JRCXZ, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37341, 7},
-    /*  496 */ {I_JMP, 1, {IMMEDIATE|SHORT,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37347, 0},
-    /*  497 */ {I_JMP, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37351, 25},
-    /*  498 */ {I_JMP, 1, {IMMEDIATE|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37356, 26},
-    /*  499 */ {I_JMP, 1, {IMMEDIATE|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37361, 27},
-    /*  500 */ {I_JMP, 1, {IMMEDIATE|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37366, 28},
-    /*  501 */ {I_JMP, 2, {IMMEDIATE|COLON,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33370, 1},
-    /*  502 */ {I_JMP, 2, {IMMEDIATE|BITS16|COLON,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33376, 1},
-    /*  503 */ {I_JMP, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33376, 1},
-    /*  504 */ {I_JMP, 2, {IMMEDIATE|BITS32|COLON,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33382, 19},
-    /*  505 */ {I_JMP, 2, {IMMEDIATE|COLON,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33382, 19},
-    /*  506 */ {I_JMP, 1, {MEMORY|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37371, 1},
-    /*  507 */ {I_JMP, 1, {MEMORY|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37376, 7},
-    /*  508 */ {I_JMP, 1, {MEMORY|BITS16|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37381, 0},
-    /*  509 */ {I_JMP, 1, {MEMORY|BITS32|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37386, 5},
-    /*  510 */ {I_JMP, 1, {MEMORY|BITS64|FAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37376, 7},
-    /*  511 */ {I_JMP, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37391, 25},
-    /*  512 */ {I_JMP, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37396, 26},
-    /*  513 */ {I_JMP, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37401, 27},
-    /*  514 */ {I_JMP, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37406, 28},
-    /*  515 */ {I_JMPE, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33388, 60},
-    /*  516 */ {I_JMPE, 1, {IMMEDIATE|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33394, 60},
-    /*  517 */ {I_JMPE, 1, {IMMEDIATE|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33400, 60},
-    /*  518 */ {I_JMPE, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33406, 60},
-    /*  519 */ {I_JMPE, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33412, 60},
-    /*  520 */ {I_LAHF, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39446, 0},
-    /*  521 */ {I_LAR, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33418, 61},
-    /*  522 */ {I_LAR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33418, 62},
-    /*  523 */ {I_LAR, 2, {REG_GPR|BITS16,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33418, 63},
-    /*  524 */ {I_LAR, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33424, 65},
-    /*  525 */ {I_LAR, 2, {REG_GPR|BITS32,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33424, 63},
-    /*  526 */ {I_LAR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33424, 63},
-    /*  527 */ {I_LAR, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33430, 66},
-    /*  528 */ {I_LAR, 2, {REG_GPR|BITS64,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33430, 64},
-    /*  529 */ {I_LAR, 2, {REG_GPR|BITS64,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33430, 64},
-    /*  530 */ {I_LAR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33430, 64},
-    /*  531 */ {I_LDS, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37411, 1},
-    /*  532 */ {I_LDS, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37416, 19},
-    /*  533 */ {I_LEA, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37421, 0},
-    /*  534 */ {I_LEA, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37426, 5},
-    /*  535 */ {I_LEA, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37431, 7},
-    /*  536 */ {I_LEAVE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37683, 39},
-    /*  537 */ {I_LES, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37436, 1},
-    /*  538 */ {I_LES, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37441, 19},
-    /*  539 */ {I_LFENCE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33436, 59},
-    /*  540 */ {I_LFS, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33442, 5},
-    /*  541 */ {I_LFS, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33448, 5},
-    /*  542 */ {I_LFS, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33454, 7},
-    /*  543 */ {I_LGDT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37446, 29},
-    /*  544 */ {I_LGS, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33460, 5},
-    /*  545 */ {I_LGS, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33466, 5},
-    /*  546 */ {I_LGS, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33472, 7},
-    /*  547 */ {I_LIDT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37451, 29},
-    /*  548 */ {I_LLDT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37456, 67},
-    /*  549 */ {I_LLDT, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37456, 67},
-    /*  550 */ {I_LLDT, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37456, 67},
-    /*  551 */ {I_LMSW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37461, 29},
-    /*  552 */ {I_LMSW, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37461, 29},
-    /*  553 */ {I_LMSW, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37461, 29},
-    /*  554 */ {I_LODSB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39449, 0},
-    /*  555 */ {I_LODSD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39065, 5},
-    /*  556 */ {I_LODSQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39069, 7},
-    /*  557 */ {I_LODSW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39073, 0},
-    /*  558 */ {I_LOOP, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37466, 0},
-    /*  559 */ {I_LOOP, 2, {IMMEDIATE,REG_CX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37471, 1},
-    /*  560 */ {I_LOOP, 2, {IMMEDIATE,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37476, 5},
-    /*  561 */ {I_LOOP, 2, {IMMEDIATE,REG_RCX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37481, 7},
-    /*  562 */ {I_LOOPE, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37486, 0},
-    /*  563 */ {I_LOOPE, 2, {IMMEDIATE,REG_CX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37491, 1},
-    /*  564 */ {I_LOOPE, 2, {IMMEDIATE,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37496, 5},
-    /*  565 */ {I_LOOPE, 2, {IMMEDIATE,REG_RCX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37501, 7},
-    /*  566 */ {I_LOOPNE, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37506, 0},
-    /*  567 */ {I_LOOPNE, 2, {IMMEDIATE,REG_CX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37511, 1},
-    /*  568 */ {I_LOOPNE, 2, {IMMEDIATE,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37516, 5},
-    /*  569 */ {I_LOOPNE, 2, {IMMEDIATE,REG_RCX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37521, 7},
-    /*  570 */ {I_LOOPNZ, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37506, 0},
-    /*  571 */ {I_LOOPNZ, 2, {IMMEDIATE,REG_CX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37511, 1},
-    /*  572 */ {I_LOOPNZ, 2, {IMMEDIATE,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37516, 5},
-    /*  573 */ {I_LOOPNZ, 2, {IMMEDIATE,REG_RCX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37521, 7},
-    /*  574 */ {I_LOOPZ, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37486, 0},
-    /*  575 */ {I_LOOPZ, 2, {IMMEDIATE,REG_CX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37491, 1},
-    /*  576 */ {I_LOOPZ, 2, {IMMEDIATE,REG_ECX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37496, 5},
-    /*  577 */ {I_LOOPZ, 2, {IMMEDIATE,REG_RCX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37501, 7},
-    /*  578 */ {I_LSL, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33478, 61},
-    /*  579 */ {I_LSL, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33478, 62},
-    /*  580 */ {I_LSL, 2, {REG_GPR|BITS16,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33478, 63},
-    /*  581 */ {I_LSL, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33484, 65},
-    /*  582 */ {I_LSL, 2, {REG_GPR|BITS32,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33484, 63},
-    /*  583 */ {I_LSL, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33484, 63},
-    /*  584 */ {I_LSL, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33490, 66},
-    /*  585 */ {I_LSL, 2, {REG_GPR|BITS64,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33490, 64},
-    /*  586 */ {I_LSL, 2, {REG_GPR|BITS64,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33490, 64},
-    /*  587 */ {I_LSL, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33490, 64},
-    /*  588 */ {I_LSS, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33496, 5},
-    /*  589 */ {I_LSS, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33502, 5},
-    /*  590 */ {I_LSS, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33508, 7},
-    /*  591 */ {I_LTR, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37526, 67},
-    /*  592 */ {I_LTR, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37526, 67},
-    /*  593 */ {I_LTR, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37526, 67},
-    /*  594 */ {I_MFENCE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33514, 59},
-    /*  595 */ {I_MONITOR, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37531, 69},
-    /*  596 */ {I_MONITORX, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37536, 71},
-    /*  597 */ {I_MOV, 2, {MEMORY,REG_SREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37557, 72},
-    /*  598 */ {I_MOV, 2, {REG_GPR|BITS16,REG_SREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37541, 0},
-    /*  599 */ {I_MOV, 2, {REG_GPR|BITS32,REG_SREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37546, 5},
-    /*  600 */ {I_MOV, 2, {RM_GPR|BITS64,REG_SREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+37556, 7},
-    /*  601 */ {I_MOV, 2, {REG_SREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37577, 72},
-    /*  602 */ {I_MOV, 2, {REG_SREG,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+37566, 0},
-    /*  603 */ {I_MOV, 2, {REG_SREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+37571, 5},
-    /*  604 */ {I_MOV, 2, {REG_SREG,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+37576, 7},
-    /*  605 */ {I_MOV, 2, {REG_AL,MEM_OFFS,0,0,0}, NO_DECORATOR, nasm_bytecodes+39077, 8},
-    /*  606 */ {I_MOV, 2, {REG_AX,MEM_OFFS,0,0,0}, NO_DECORATOR, nasm_bytecodes+37581, 8},
-    /*  607 */ {I_MOV, 2, {REG_EAX,MEM_OFFS,0,0,0}, NO_DECORATOR, nasm_bytecodes+37586, 9},
-    /*  608 */ {I_MOV, 2, {REG_RAX,MEM_OFFS,0,0,0}, NO_DECORATOR, nasm_bytecodes+37591, 10},
-    /*  609 */ {I_MOV, 2, {MEM_OFFS,REG_AL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39081, 76},
-    /*  610 */ {I_MOV, 2, {MEM_OFFS,REG_AX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37596, 76},
-    /*  611 */ {I_MOV, 2, {MEM_OFFS,REG_EAX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37601, 77},
-    /*  612 */ {I_MOV, 2, {MEM_OFFS,REG_RAX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37606, 78},
-    /*  613 */ {I_MOV, 2, {REG_GPR|BITS32,REG_CREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+33520, 79},
-    /*  614 */ {I_MOV, 2, {REG_GPR|BITS64,REG_CREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+33526, 80},
-    /*  615 */ {I_MOV, 2, {REG_CREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33532, 79},
-    /*  616 */ {I_MOV, 2, {REG_CREG,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33538, 80},
-    /*  617 */ {I_MOV, 2, {REG_GPR|BITS32,REG_DREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+33545, 79},
-    /*  618 */ {I_MOV, 2, {REG_GPR|BITS64,REG_DREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+33544, 80},
-    /*  619 */ {I_MOV, 2, {REG_DREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33551, 79},
-    /*  620 */ {I_MOV, 2, {REG_DREG,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33550, 80},
-    /*  621 */ {I_MOV, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37621, 8},
-    /*  622 */ {I_MOV, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37622, 0},
-    /*  623 */ {I_MOV, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33556, 8},
-    /*  624 */ {I_MOV, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33557, 0},
-    /*  625 */ {I_MOV, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33562, 9},
-    /*  626 */ {I_MOV, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33563, 5},
-    /*  627 */ {I_MOV, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33568, 10},
-    /*  628 */ {I_MOV, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33569, 7},
-    /*  629 */ {I_MOV, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39085, 8},
-    /*  630 */ {I_MOV, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+39085, 0},
-    /*  631 */ {I_MOV, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37626, 8},
-    /*  632 */ {I_MOV, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+37626, 0},
-    /*  633 */ {I_MOV, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37631, 9},
-    /*  634 */ {I_MOV, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+37631, 5},
-    /*  635 */ {I_MOV, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37636, 10},
-    /*  636 */ {I_MOV, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+37636, 7},
-    /*  637 */ {I_MOV, 2, {REG_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39089, 8},
-    /*  638 */ {I_MOV, 2, {REG_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37641, 8},
-    /*  639 */ {I_MOV, 2, {REG_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37646, 9},
-    /*  640 */ {I_MOV, 2, {REG_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37656, 10},
-    /*  641 */ {I_MOV, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33574, 8},
-    /*  642 */ {I_MOV, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24172, 8},
-    /*  643 */ {I_MOV, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24179, 9},
-    /*  644 */ {I_MOV, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24186, 10},
-    /*  645 */ {I_MOV, 2, {RM_GPR|BITS64,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24186, 7},
-    /*  646 */ {I_MOV, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33574, 8},
-    /*  647 */ {I_MOV, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24172, 8},
-    /*  648 */ {I_MOV, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24179, 9},
-    /*  649 */ {I_MOVD, 2, {MMXREG,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33580, 82},
-    /*  650 */ {I_MOVD, 2, {RM_GPR|BITS32,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+33586, 82},
-    /*  651 */ {I_MOVQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33592, 84},
-    /*  652 */ {I_MOVQ, 2, {RM_MMX,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+33598, 84},
-    /*  653 */ {I_MOVQ, 2, {MMXREG,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24193, 85},
-    /*  654 */ {I_MOVQ, 2, {RM_GPR|BITS64,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+24200, 85},
-    /*  655 */ {I_MOVSB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+7351, 0},
-    /*  656 */ {I_MOVSD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39093, 5},
-    /*  657 */ {I_MOVSQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39097, 7},
-    /*  658 */ {I_MOVSW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39101, 0},
-    /*  659 */ {I_MOVSX, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33604, 21},
-    /*  660 */ {I_MOVSX, 2, {REG_GPR|BITS16,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33604, 5},
-    /*  661 */ {I_MOVSX, 2, {REG_GPR|BITS32,RM_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33610, 5},
-    /*  662 */ {I_MOVSX, 2, {REG_GPR|BITS32,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33616, 5},
-    /*  663 */ {I_MOVSX, 2, {REG_GPR|BITS64,RM_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33622, 7},
-    /*  664 */ {I_MOVSX, 2, {REG_GPR|BITS64,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33628, 7},
-    /*  665 */ {I_MOVSXD, 2, {REG_GPR|BITS64,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+37661, 7},
-    /*  666 */ {I_MOVZX, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+33634, 21},
-    /*  667 */ {I_MOVZX, 2, {REG_GPR|BITS16,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33634, 5},
-    /*  668 */ {I_MOVZX, 2, {REG_GPR|BITS32,RM_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33640, 5},
-    /*  669 */ {I_MOVZX, 2, {REG_GPR|BITS32,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33646, 5},
-    /*  670 */ {I_MOVZX, 2, {REG_GPR|BITS64,RM_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33652, 7},
-    /*  671 */ {I_MOVZX, 2, {REG_GPR|BITS64,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33658, 7},
-    /*  672 */ {I_MUL, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39105, 0},
-    /*  673 */ {I_MUL, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37666, 0},
-    /*  674 */ {I_MUL, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37671, 5},
-    /*  675 */ {I_MUL, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37676, 7},
-    /*  676 */ {I_MWAIT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37681, 69},
-    /*  677 */ {I_MWAITX, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37686, 71},
-    /*  678 */ {I_NEG, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37691, 11},
-    /*  679 */ {I_NEG, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33664, 11},
-    /*  680 */ {I_NEG, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33670, 12},
-    /*  681 */ {I_NEG, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33676, 13},
-    /*  682 */ {I_NOP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37696, 0},
-    /*  683 */ {I_NOP, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33682, 86},
-    /*  684 */ {I_NOP, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33688, 86},
-    /*  685 */ {I_NOP, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33694, 7},
-    /*  686 */ {I_NOT, 1, {RM_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37701, 11},
-    /*  687 */ {I_NOT, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33700, 11},
-    /*  688 */ {I_NOT, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33706, 12},
-    /*  689 */ {I_NOT, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33712, 13},
-    /*  690 */ {I_OR, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37706, 3},
-    /*  691 */ {I_OR, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37707, 0},
-    /*  692 */ {I_OR, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33718, 3},
-    /*  693 */ {I_OR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33719, 0},
-    /*  694 */ {I_OR, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33724, 4},
-    /*  695 */ {I_OR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33725, 5},
-    /*  696 */ {I_OR, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33730, 6},
-    /*  697 */ {I_OR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33731, 7},
-    /*  698 */ {I_OR, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+31553, 8},
-    /*  699 */ {I_OR, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31553, 0},
-    /*  700 */ {I_OR, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37711, 8},
-    /*  701 */ {I_OR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+37711, 0},
-    /*  702 */ {I_OR, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37716, 9},
-    /*  703 */ {I_OR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+37716, 5},
-    /*  704 */ {I_OR, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37721, 10},
-    /*  705 */ {I_OR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+37721, 7},
-    /*  706 */ {I_OR, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24207, 11},
-    /*  707 */ {I_OR, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24214, 12},
-    /*  708 */ {I_OR, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24221, 13},
-    /*  709 */ {I_OR, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39109, 8},
-    /*  710 */ {I_OR, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37726, 8},
-    /*  711 */ {I_OR, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37731, 9},
-    /*  712 */ {I_OR, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+37736, 10},
-    /*  713 */ {I_OR, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33736, 3},
-    /*  714 */ {I_OR, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24228, 3},
-    /*  715 */ {I_OR, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24235, 4},
-    /*  716 */ {I_OR, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24242, 6},
-    /*  717 */ {I_OR, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33736, 3},
-    /*  718 */ {I_OR, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24228, 3},
-    /*  719 */ {I_OR, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24235, 4},
-    /*  720 */ {I_OUT, 2, {IMMEDIATE,REG_AL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39113, 53},
-    /*  721 */ {I_OUT, 2, {IMMEDIATE,REG_AX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37741, 53},
-    /*  722 */ {I_OUT, 2, {IMMEDIATE,REG_EAX,0,0,0}, NO_DECORATOR, nasm_bytecodes+37746, 21},
-    /*  723 */ {I_OUT, 2, {REG_DX,REG_AL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38408, 0},
-    /*  724 */ {I_OUT, 2, {REG_DX,REG_AX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39117, 0},
-    /*  725 */ {I_OUT, 2, {REG_DX,REG_EAX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39121, 5},
-    /*  726 */ {I_OUTSB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39452, 39},
-    /*  727 */ {I_OUTSD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39125, 5},
-    /*  728 */ {I_OUTSW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39129, 39},
-    /*  729 */ {I_PACKSSDW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24249, 84},
-    /*  730 */ {I_PACKSSWB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24256, 84},
-    /*  731 */ {I_PACKUSWB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24263, 84},
-    /*  732 */ {I_PADDB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24270, 84},
-    /*  733 */ {I_PADDD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24277, 84},
-    /*  734 */ {I_PADDSB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24284, 84},
-    /*  735 */ {I_PADDSIW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33748, 87},
-    /*  736 */ {I_PADDSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24291, 84},
-    /*  737 */ {I_PADDUSB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24298, 84},
-    /*  738 */ {I_PADDUSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24305, 84},
-    /*  739 */ {I_PADDW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24312, 84},
-    /*  740 */ {I_PAND, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24319, 84},
-    /*  741 */ {I_PANDN, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24326, 84},
-    /*  742 */ {I_PAUSE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39133, 0},
-    /*  743 */ {I_PAVEB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33754, 87},
-    /*  744 */ {I_PAVGUSB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7290, 88},
-    /*  745 */ {I_PCMPEQB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24333, 84},
-    /*  746 */ {I_PCMPEQD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24340, 84},
-    /*  747 */ {I_PCMPEQW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24347, 84},
-    /*  748 */ {I_PCMPGTB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24354, 84},
-    /*  749 */ {I_PCMPGTD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24361, 84},
-    /*  750 */ {I_PCMPGTW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24368, 84},
-    /*  751 */ {I_PDISTIB, 2, {MMXREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34937, 89},
-    /*  752 */ {I_PF2ID, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7298, 88},
-    /*  753 */ {I_PFACC, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7306, 88},
-    /*  754 */ {I_PFADD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7314, 88},
-    /*  755 */ {I_PFCMPEQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7322, 88},
-    /*  756 */ {I_PFCMPGE, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7330, 88},
-    /*  757 */ {I_PFCMPGT, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7338, 88},
-    /*  758 */ {I_PFMAX, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7346, 88},
-    /*  759 */ {I_PFMIN, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7354, 88},
-    /*  760 */ {I_PFMUL, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7362, 88},
-    /*  761 */ {I_PFRCP, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7370, 88},
-    /*  762 */ {I_PFRCPIT1, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7378, 88},
-    /*  763 */ {I_PFRCPIT2, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7386, 88},
-    /*  764 */ {I_PFRSQIT1, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7394, 88},
-    /*  765 */ {I_PFRSQRT, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7402, 88},
-    /*  766 */ {I_PFSUB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7410, 88},
-    /*  767 */ {I_PFSUBR, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7418, 88},
-    /*  768 */ {I_PI2FD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7426, 88},
-    /*  769 */ {I_PMACHRIW, 2, {MMXREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35033, 89},
-    /*  770 */ {I_PMADDWD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24375, 84},
-    /*  771 */ {I_PMAGW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33760, 87},
-    /*  772 */ {I_PMULHRIW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33766, 87},
-    /*  773 */ {I_PMULHRWA, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7434, 88},
-    /*  774 */ {I_PMULHRWC, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33772, 87},
-    /*  775 */ {I_PMULHW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24382, 84},
-    /*  776 */ {I_PMULLW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24389, 84},
-    /*  777 */ {I_PMVGEZB, 2, {MMXREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35165, 87},
-    /*  778 */ {I_PMVLZB, 2, {MMXREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35021, 87},
-    /*  779 */ {I_PMVNZB, 2, {MMXREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35003, 87},
-    /*  780 */ {I_PMVZB, 2, {MMXREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34925, 87},
-    /*  781 */ {I_POP, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39137, 0},
-    /*  782 */ {I_POP, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39141, 19},
-    /*  783 */ {I_POP, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39145, 7},
-    /*  784 */ {I_POP, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37751, 0},
-    /*  785 */ {I_POP, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37756, 19},
-    /*  786 */ {I_POP, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37761, 7},
-    /*  787 */ {I_POP, 1, {REG_ES,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+7727, 1},
-    /*  788 */ {I_POP, 1, {REG_SS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+3381, 1},
-    /*  789 */ {I_POP, 1, {REG_DS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+3525, 1},
-    /*  790 */ {I_POP, 1, {REG_FS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39149, 5},
-    /*  791 */ {I_POP, 1, {REG_GS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39153, 5},
-    /*  792 */ {I_POPA, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39157, 18},
-    /*  793 */ {I_POPAD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39161, 19},
-    /*  794 */ {I_POPAW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39165, 18},
-    /*  795 */ {I_POPF, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39169, 0},
-    /*  796 */ {I_POPFD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39173, 19},
-    /*  797 */ {I_POPFQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39173, 7},
-    /*  798 */ {I_POPFW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39177, 0},
-    /*  799 */ {I_POR, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24396, 84},
-    /*  800 */ {I_PREFETCH, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37766, 88},
-    /*  801 */ {I_PREFETCHW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37771, 88},
-    /*  802 */ {I_PSLLD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24403, 84},
-    /*  803 */ {I_PSLLD, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24410, 38},
-    /*  804 */ {I_PSLLQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24417, 84},
-    /*  805 */ {I_PSLLQ, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24424, 38},
-    /*  806 */ {I_PSLLW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24431, 84},
-    /*  807 */ {I_PSLLW, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24438, 38},
-    /*  808 */ {I_PSRAD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24445, 84},
-    /*  809 */ {I_PSRAD, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24452, 38},
-    /*  810 */ {I_PSRAW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24459, 84},
-    /*  811 */ {I_PSRAW, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24466, 38},
-    /*  812 */ {I_PSRLD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24473, 84},
-    /*  813 */ {I_PSRLD, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24480, 38},
-    /*  814 */ {I_PSRLQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24487, 84},
-    /*  815 */ {I_PSRLQ, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24494, 38},
-    /*  816 */ {I_PSRLW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24501, 84},
-    /*  817 */ {I_PSRLW, 2, {MMXREG,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24508, 38},
-    /*  818 */ {I_PSUBB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24515, 84},
-    /*  819 */ {I_PSUBD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24522, 84},
-    /*  820 */ {I_PSUBSB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24529, 84},
-    /*  821 */ {I_PSUBSIW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+33778, 87},
-    /*  822 */ {I_PSUBSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24536, 84},
-    /*  823 */ {I_PSUBUSB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24543, 84},
-    /*  824 */ {I_PSUBUSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24550, 84},
-    /*  825 */ {I_PSUBW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24557, 84},
-    /*  826 */ {I_PUNPCKHBW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24564, 84},
-    /*  827 */ {I_PUNPCKHDQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24571, 84},
-    /*  828 */ {I_PUNPCKHWD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24578, 84},
-    /*  829 */ {I_PUNPCKLBW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24585, 84},
-    /*  830 */ {I_PUNPCKLDQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24592, 84},
-    /*  831 */ {I_PUNPCKLWD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24599, 84},
-    /*  832 */ {I_PUSH, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39181, 0},
-    /*  833 */ {I_PUSH, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39185, 19},
-    /*  834 */ {I_PUSH, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39189, 7},
-    /*  835 */ {I_PUSH, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37776, 0},
-    /*  836 */ {I_PUSH, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37781, 19},
-    /*  837 */ {I_PUSH, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37786, 7},
-    /*  838 */ {I_PUSH, 1, {REG_ES,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+7695, 1},
-    /*  839 */ {I_PUSH, 1, {REG_CS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+3237, 1},
-    /*  840 */ {I_PUSH, 1, {REG_SS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+3363, 1},
-    /*  841 */ {I_PUSH, 1, {REG_DS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+3507, 1},
-    /*  842 */ {I_PUSH, 1, {REG_FS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39193, 5},
-    /*  843 */ {I_PUSH, 1, {REG_GS,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39197, 5},
-    /*  844 */ {I_PUSH, 1, {IMMEDIATE|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37812, 39},
-    /*  845 */ {I_PUSH, 1, {IMMEDIATE|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37796, 91},
-    /*  846 */ {I_PUSH, 1, {IMMEDIATE|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37806, 92},
-    /*  847 */ {I_PUSH, 1, {IMMEDIATE|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37806, 93},
-    /*  848 */ {I_PUSH, 1, {IMMEDIATE|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37816, 94},
-    /*  849 */ {I_PUSH, 1, {IMMEDIATE|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37816, 94},
-    /*  850 */ {I_PUSHA, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39201, 18},
-    /*  851 */ {I_PUSHAD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39205, 19},
-    /*  852 */ {I_PUSHAW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39209, 18},
-    /*  853 */ {I_PUSHF, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39213, 0},
-    /*  854 */ {I_PUSHFD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39217, 19},
-    /*  855 */ {I_PUSHFQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39217, 7},
-    /*  856 */ {I_PUSHFW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39221, 0},
-    /*  857 */ {I_PXOR, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24606, 84},
-    /*  858 */ {I_RCL, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39225, 0},
-    /*  859 */ {I_RCL, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39229, 0},
-    /*  860 */ {I_RCL, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37821, 39},
-    /*  861 */ {I_RCL, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37826, 0},
-    /*  862 */ {I_RCL, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37831, 0},
-    /*  863 */ {I_RCL, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33784, 39},
-    /*  864 */ {I_RCL, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37836, 5},
-    /*  865 */ {I_RCL, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37841, 5},
-    /*  866 */ {I_RCL, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33790, 5},
-    /*  867 */ {I_RCL, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37846, 7},
-    /*  868 */ {I_RCL, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37851, 7},
-    /*  869 */ {I_RCL, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33796, 7},
-    /*  870 */ {I_RCR, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39233, 0},
-    /*  871 */ {I_RCR, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39237, 0},
-    /*  872 */ {I_RCR, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37856, 39},
-    /*  873 */ {I_RCR, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37861, 0},
-    /*  874 */ {I_RCR, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37866, 0},
-    /*  875 */ {I_RCR, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33802, 39},
-    /*  876 */ {I_RCR, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37871, 5},
-    /*  877 */ {I_RCR, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37876, 5},
-    /*  878 */ {I_RCR, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33808, 5},
-    /*  879 */ {I_RCR, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37881, 7},
-    /*  880 */ {I_RCR, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37886, 7},
-    /*  881 */ {I_RCR, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33814, 7},
-    /*  882 */ {I_RDSHR, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33820, 95},
-    /*  883 */ {I_RDMSR, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39241, 96},
-    /*  884 */ {I_RDPMC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39245, 86},
-    /*  885 */ {I_RDTSC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39249, 32},
-    /*  886 */ {I_RDTSCP, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37891, 97},
-    /*  887 */ {I_RET, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38353, 25},
-    /*  888 */ {I_RET, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39253, 98},
-    /*  889 */ {I_RETF, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38378, 0},
-    /*  890 */ {I_RETF, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39257, 72},
-    /*  891 */ {I_RETN, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38353, 25},
-    /*  892 */ {I_RETN, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39253, 98},
-    /*  893 */ {I_ROL, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39261, 0},
-    /*  894 */ {I_ROL, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39265, 0},
-    /*  895 */ {I_ROL, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37896, 39},
-    /*  896 */ {I_ROL, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37901, 0},
-    /*  897 */ {I_ROL, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37906, 0},
-    /*  898 */ {I_ROL, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33826, 39},
-    /*  899 */ {I_ROL, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37911, 5},
-    /*  900 */ {I_ROL, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37916, 5},
-    /*  901 */ {I_ROL, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33832, 5},
-    /*  902 */ {I_ROL, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37921, 7},
-    /*  903 */ {I_ROL, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37926, 7},
-    /*  904 */ {I_ROL, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33838, 7},
-    /*  905 */ {I_ROR, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39269, 0},
-    /*  906 */ {I_ROR, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39273, 0},
-    /*  907 */ {I_ROR, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37931, 39},
-    /*  908 */ {I_ROR, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37936, 0},
-    /*  909 */ {I_ROR, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37941, 0},
-    /*  910 */ {I_ROR, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33844, 39},
-    /*  911 */ {I_ROR, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37946, 5},
-    /*  912 */ {I_ROR, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37951, 5},
-    /*  913 */ {I_ROR, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33850, 5},
-    /*  914 */ {I_ROR, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37956, 7},
-    /*  915 */ {I_ROR, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37961, 7},
-    /*  916 */ {I_ROR, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33856, 7},
-    /*  917 */ {I_RSDC, 2, {REG_SREG,MEMORY|BITS80,0,0,0}, NO_DECORATOR, nasm_bytecodes+35285, 99},
-    /*  918 */ {I_RSLDT, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37966, 99},
-    /*  919 */ {I_RSM, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39277, 100},
-    /*  920 */ {I_RSTS, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37971, 99},
-    /*  921 */ {I_SAHF, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+7319, 0},
-    /*  922 */ {I_SALC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38398, 101},
-    /*  923 */ {I_SAR, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39289, 0},
-    /*  924 */ {I_SAR, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39293, 0},
-    /*  925 */ {I_SAR, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38011, 39},
-    /*  926 */ {I_SAR, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38016, 0},
-    /*  927 */ {I_SAR, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38021, 0},
-    /*  928 */ {I_SAR, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33880, 39},
-    /*  929 */ {I_SAR, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38026, 5},
-    /*  930 */ {I_SAR, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38031, 5},
-    /*  931 */ {I_SAR, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33886, 5},
-    /*  932 */ {I_SAR, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38036, 7},
-    /*  933 */ {I_SAR, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38041, 7},
-    /*  934 */ {I_SAR, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33892, 7},
-    /*  935 */ {I_SBB, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38046, 3},
-    /*  936 */ {I_SBB, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38047, 0},
-    /*  937 */ {I_SBB, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33898, 3},
-    /*  938 */ {I_SBB, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+33899, 0},
-    /*  939 */ {I_SBB, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33904, 4},
-    /*  940 */ {I_SBB, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+33905, 5},
-    /*  941 */ {I_SBB, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33910, 6},
-    /*  942 */ {I_SBB, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+33911, 7},
-    /*  943 */ {I_SBB, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+26142, 8},
-    /*  944 */ {I_SBB, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+26142, 0},
-    /*  945 */ {I_SBB, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38051, 8},
-    /*  946 */ {I_SBB, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+38051, 0},
-    /*  947 */ {I_SBB, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38056, 9},
-    /*  948 */ {I_SBB, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+38056, 5},
-    /*  949 */ {I_SBB, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38061, 10},
-    /*  950 */ {I_SBB, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+38061, 7},
-    /*  951 */ {I_SBB, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24613, 11},
-    /*  952 */ {I_SBB, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24620, 12},
-    /*  953 */ {I_SBB, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24627, 13},
-    /*  954 */ {I_SBB, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39297, 8},
-    /*  955 */ {I_SBB, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38066, 8},
-    /*  956 */ {I_SBB, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38071, 9},
-    /*  957 */ {I_SBB, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38076, 10},
-    /*  958 */ {I_SBB, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+33916, 3},
-    /*  959 */ {I_SBB, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24634, 3},
-    /*  960 */ {I_SBB, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24641, 4},
-    /*  961 */ {I_SBB, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24648, 6},
-    /*  962 */ {I_SBB, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33916, 3},
-    /*  963 */ {I_SBB, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24634, 3},
-    /*  964 */ {I_SBB, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24641, 4},
-    /*  965 */ {I_SCASB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39301, 0},
-    /*  966 */ {I_SCASD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38081, 5},
-    /*  967 */ {I_SCASQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38086, 7},
-    /*  968 */ {I_SCASW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38091, 0},
-    /*  969 */ {I_SFENCE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33928, 59},
-    /*  970 */ {I_SGDT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38096, 102},
-    /*  971 */ {I_SHL, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39281, 0},
-    /*  972 */ {I_SHL, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39285, 0},
-    /*  973 */ {I_SHL, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+37976, 39},
-    /*  974 */ {I_SHL, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37981, 0},
-    /*  975 */ {I_SHL, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37986, 0},
-    /*  976 */ {I_SHL, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33862, 39},
-    /*  977 */ {I_SHL, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+37991, 5},
-    /*  978 */ {I_SHL, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+37996, 5},
-    /*  979 */ {I_SHL, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33868, 5},
-    /*  980 */ {I_SHL, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38001, 7},
-    /*  981 */ {I_SHL, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38006, 7},
-    /*  982 */ {I_SHL, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33874, 7},
-    /*  983 */ {I_SHLD, 3, {MEMORY,REG_GPR|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24655, 103},
-    /*  984 */ {I_SHLD, 3, {REG_GPR|BITS16,REG_GPR|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24655, 103},
-    /*  985 */ {I_SHLD, 3, {MEMORY,REG_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24662, 103},
-    /*  986 */ {I_SHLD, 3, {REG_GPR|BITS32,REG_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24662, 103},
-    /*  987 */ {I_SHLD, 3, {MEMORY,REG_GPR|BITS64,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24669, 104},
-    /*  988 */ {I_SHLD, 3, {REG_GPR|BITS64,REG_GPR|BITS64,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24669, 104},
-    /*  989 */ {I_SHLD, 3, {MEMORY,REG_GPR|BITS16,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33934, 9},
-    /*  990 */ {I_SHLD, 3, {REG_GPR|BITS16,REG_GPR|BITS16,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33934, 5},
-    /*  991 */ {I_SHLD, 3, {MEMORY,REG_GPR|BITS32,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33940, 9},
-    /*  992 */ {I_SHLD, 3, {REG_GPR|BITS32,REG_GPR|BITS32,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33940, 5},
-    /*  993 */ {I_SHLD, 3, {MEMORY,REG_GPR|BITS64,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33946, 10},
-    /*  994 */ {I_SHLD, 3, {REG_GPR|BITS64,REG_GPR|BITS64,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33946, 7},
-    /*  995 */ {I_SHR, 2, {RM_GPR|BITS8,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39305, 0},
-    /*  996 */ {I_SHR, 2, {RM_GPR|BITS8,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+39309, 0},
-    /*  997 */ {I_SHR, 2, {RM_GPR|BITS8,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38101, 39},
-    /*  998 */ {I_SHR, 2, {RM_GPR|BITS16,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38106, 0},
-    /*  999 */ {I_SHR, 2, {RM_GPR|BITS16,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38111, 0},
-    /* 1000 */ {I_SHR, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33952, 39},
-    /* 1001 */ {I_SHR, 2, {RM_GPR|BITS32,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38116, 5},
-    /* 1002 */ {I_SHR, 2, {RM_GPR|BITS32,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38121, 5},
-    /* 1003 */ {I_SHR, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33958, 5},
-    /* 1004 */ {I_SHR, 2, {RM_GPR|BITS64,UNITY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38126, 7},
-    /* 1005 */ {I_SHR, 2, {RM_GPR|BITS64,REG_CL,0,0,0}, NO_DECORATOR, nasm_bytecodes+38131, 7},
-    /* 1006 */ {I_SHR, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+33964, 7},
-    /* 1007 */ {I_SHRD, 3, {MEMORY,REG_GPR|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24676, 103},
-    /* 1008 */ {I_SHRD, 3, {REG_GPR|BITS16,REG_GPR|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24676, 103},
-    /* 1009 */ {I_SHRD, 3, {MEMORY,REG_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24683, 103},
-    /* 1010 */ {I_SHRD, 3, {REG_GPR|BITS32,REG_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24683, 103},
-    /* 1011 */ {I_SHRD, 3, {MEMORY,REG_GPR|BITS64,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24690, 104},
-    /* 1012 */ {I_SHRD, 3, {REG_GPR|BITS64,REG_GPR|BITS64,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24690, 104},
-    /* 1013 */ {I_SHRD, 3, {MEMORY,REG_GPR|BITS16,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33970, 9},
-    /* 1014 */ {I_SHRD, 3, {REG_GPR|BITS16,REG_GPR|BITS16,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33970, 5},
-    /* 1015 */ {I_SHRD, 3, {MEMORY,REG_GPR|BITS32,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33976, 9},
-    /* 1016 */ {I_SHRD, 3, {REG_GPR|BITS32,REG_GPR|BITS32,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33976, 5},
-    /* 1017 */ {I_SHRD, 3, {MEMORY,REG_GPR|BITS64,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33982, 10},
-    /* 1018 */ {I_SHRD, 3, {REG_GPR|BITS64,REG_GPR|BITS64,REG_CL,0,0}, NO_DECORATOR, nasm_bytecodes+33982, 7},
-    /* 1019 */ {I_SIDT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38136, 102},
-    /* 1020 */ {I_SLDT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34007, 102},
-    /* 1021 */ {I_SLDT, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34007, 102},
-    /* 1022 */ {I_SLDT, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33988, 102},
-    /* 1023 */ {I_SLDT, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33994, 5},
-    /* 1024 */ {I_SLDT, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34006, 7},
-    /* 1025 */ {I_SKINIT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38141, 7},
-    /* 1026 */ {I_SMI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39431, 105},
-    /* 1027 */ {I_SMSW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34025, 102},
-    /* 1028 */ {I_SMSW, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34025, 102},
-    /* 1029 */ {I_SMSW, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34012, 102},
-    /* 1030 */ {I_SMSW, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34018, 5},
-    /* 1031 */ {I_SMSW, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34024, 7},
-    /* 1032 */ {I_STC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37893, 0},
-    /* 1033 */ {I_STD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39455, 0},
-    /* 1034 */ {I_STI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+37688, 0},
-    /* 1035 */ {I_STOSB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+7423, 0},
-    /* 1036 */ {I_STOSD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39321, 5},
-    /* 1037 */ {I_STOSQ, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39325, 7},
-    /* 1038 */ {I_STOSW, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39329, 0},
-    /* 1039 */ {I_STR, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34043, 62},
-    /* 1040 */ {I_STR, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34043, 62},
-    /* 1041 */ {I_STR, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34030, 62},
-    /* 1042 */ {I_STR, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34036, 63},
-    /* 1043 */ {I_STR, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34042, 7},
-    /* 1044 */ {I_SUB, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38146, 3},
-    /* 1045 */ {I_SUB, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38147, 0},
-    /* 1046 */ {I_SUB, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34048, 3},
-    /* 1047 */ {I_SUB, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34049, 0},
-    /* 1048 */ {I_SUB, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34054, 4},
-    /* 1049 */ {I_SUB, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34055, 5},
-    /* 1050 */ {I_SUB, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34060, 6},
-    /* 1051 */ {I_SUB, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34061, 7},
-    /* 1052 */ {I_SUB, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+31910, 8},
-    /* 1053 */ {I_SUB, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31910, 0},
-    /* 1054 */ {I_SUB, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38151, 8},
-    /* 1055 */ {I_SUB, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+38151, 0},
-    /* 1056 */ {I_SUB, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38156, 9},
-    /* 1057 */ {I_SUB, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+38156, 5},
-    /* 1058 */ {I_SUB, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38161, 10},
-    /* 1059 */ {I_SUB, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+38161, 7},
-    /* 1060 */ {I_SUB, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24697, 11},
-    /* 1061 */ {I_SUB, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24704, 12},
-    /* 1062 */ {I_SUB, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24711, 13},
-    /* 1063 */ {I_SUB, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39333, 8},
-    /* 1064 */ {I_SUB, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38166, 8},
-    /* 1065 */ {I_SUB, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38171, 9},
-    /* 1066 */ {I_SUB, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38176, 10},
-    /* 1067 */ {I_SUB, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+34066, 3},
-    /* 1068 */ {I_SUB, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24718, 3},
-    /* 1069 */ {I_SUB, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24725, 4},
-    /* 1070 */ {I_SUB, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24732, 6},
-    /* 1071 */ {I_SUB, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+34066, 3},
-    /* 1072 */ {I_SUB, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24718, 3},
-    /* 1073 */ {I_SUB, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24725, 4},
-    /* 1074 */ {I_SVDC, 2, {MEMORY|BITS80,REG_SREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+25287, 99},
-    /* 1075 */ {I_SVTS, 1, {MEMORY|BITS80,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38186, 99},
-    /* 1076 */ {I_SWAPGS, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38191, 7},
-    /* 1077 */ {I_SYSCALL, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39061, 107},
-    /* 1078 */ {I_SYSENTER, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39337, 86},
-    /* 1079 */ {I_SYSEXIT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39341, 108},
-    /* 1080 */ {I_SYSRET, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39057, 109},
-    /* 1081 */ {I_TEST, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+39345, 8},
-    /* 1082 */ {I_TEST, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+39345, 0},
-    /* 1083 */ {I_TEST, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+38196, 8},
-    /* 1084 */ {I_TEST, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+38196, 0},
-    /* 1085 */ {I_TEST, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+38201, 9},
-    /* 1086 */ {I_TEST, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+38201, 5},
-    /* 1087 */ {I_TEST, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+38206, 10},
-    /* 1088 */ {I_TEST, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+38206, 7},
-    /* 1089 */ {I_TEST, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+39349, 8},
-    /* 1090 */ {I_TEST, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38211, 8},
-    /* 1091 */ {I_TEST, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38216, 9},
-    /* 1092 */ {I_TEST, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38221, 10},
-    /* 1093 */ {I_TEST, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39353, 8},
-    /* 1094 */ {I_TEST, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38226, 8},
-    /* 1095 */ {I_TEST, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38231, 9},
-    /* 1096 */ {I_TEST, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38236, 10},
-    /* 1097 */ {I_TEST, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38241, 8},
-    /* 1098 */ {I_TEST, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+34078, 8},
-    /* 1099 */ {I_TEST, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+34084, 9},
-    /* 1100 */ {I_TEST, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+34090, 10},
-    /* 1101 */ {I_TEST, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38241, 8},
-    /* 1102 */ {I_TEST, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34078, 8},
-    /* 1103 */ {I_TEST, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34084, 9},
-    /* 1104 */ {I_UD0, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39357, 39},
-    /* 1105 */ {I_UD1, 2, {REG_GPR,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34096, 39},
-    /* 1106 */ {I_UD1, 2, {REG_GPR,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34102, 39},
-    /* 1107 */ {I_UD1, 2, {REG_GPR,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34108, 39},
-    /* 1108 */ {I_UD2, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39365, 39},
-    /* 1109 */ {I_VERR, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38246, 62},
-    /* 1110 */ {I_VERR, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38246, 62},
-    /* 1111 */ {I_VERR, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38246, 62},
-    /* 1112 */ {I_VERW, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38251, 62},
-    /* 1113 */ {I_VERW, 1, {MEMORY|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38251, 62},
-    /* 1114 */ {I_VERW, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38251, 62},
-    /* 1115 */ {I_FWAIT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38959, 0},
-    /* 1116 */ {I_WBINVD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39369, 54},
-    /* 1117 */ {I_WRSHR, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34126, 95},
-    /* 1118 */ {I_WRMSR, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39373, 96},
-    /* 1119 */ {I_XADD, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+34132, 111},
-    /* 1120 */ {I_XADD, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+34133, 20},
-    /* 1121 */ {I_XADD, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24767, 111},
-    /* 1122 */ {I_XADD, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24768, 20},
-    /* 1123 */ {I_XADD, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24774, 111},
-    /* 1124 */ {I_XADD, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24775, 20},
-    /* 1125 */ {I_XADD, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24781, 6},
-    /* 1126 */ {I_XADD, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24782, 7},
-    /* 1127 */ {I_XCHG, 2, {REG_AX,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+39377, 0},
-    /* 1128 */ {I_XCHG, 2, {REG_EAX,REG32NA,0,0,0}, NO_DECORATOR, nasm_bytecodes+39381, 5},
-    /* 1129 */ {I_XCHG, 2, {REG_RAX,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+39385, 7},
-    /* 1130 */ {I_XCHG, 2, {REG_GPR|BITS16,REG_AX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39389, 0},
-    /* 1131 */ {I_XCHG, 2, {REG32NA,REG_EAX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39393, 5},
-    /* 1132 */ {I_XCHG, 2, {REG_GPR|BITS64,REG_RAX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39397, 7},
-    /* 1133 */ {I_XCHG, 2, {REG_EAX,REG_EAX,0,0,0}, NO_DECORATOR, nasm_bytecodes+39401, 19},
-    /* 1134 */ {I_XCHG, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38256, 3},
-    /* 1135 */ {I_XCHG, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38257, 0},
-    /* 1136 */ {I_XCHG, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34150, 3},
-    /* 1137 */ {I_XCHG, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34151, 0},
-    /* 1138 */ {I_XCHG, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34156, 4},
-    /* 1139 */ {I_XCHG, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34157, 5},
-    /* 1140 */ {I_XCHG, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34162, 6},
-    /* 1141 */ {I_XCHG, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34163, 7},
-    /* 1142 */ {I_XCHG, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38261, 3},
-    /* 1143 */ {I_XCHG, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38262, 0},
-    /* 1144 */ {I_XCHG, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34168, 3},
-    /* 1145 */ {I_XCHG, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34169, 0},
-    /* 1146 */ {I_XCHG, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34174, 4},
-    /* 1147 */ {I_XCHG, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34175, 5},
-    /* 1148 */ {I_XCHG, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34180, 6},
-    /* 1149 */ {I_XCHG, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34181, 7},
-    /* 1150 */ {I_XLATB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39458, 0},
-    /* 1151 */ {I_XLAT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39458, 0},
-    /* 1152 */ {I_XOR, 2, {MEMORY,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38266, 3},
-    /* 1153 */ {I_XOR, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+38267, 0},
-    /* 1154 */ {I_XOR, 2, {MEMORY,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34186, 3},
-    /* 1155 */ {I_XOR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34187, 0},
-    /* 1156 */ {I_XOR, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34192, 4},
-    /* 1157 */ {I_XOR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34193, 5},
-    /* 1158 */ {I_XOR, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34198, 6},
-    /* 1159 */ {I_XOR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34199, 7},
-    /* 1160 */ {I_XOR, 2, {REG_GPR|BITS8,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+31350, 8},
-    /* 1161 */ {I_XOR, 2, {REG_GPR|BITS8,REG_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31350, 0},
-    /* 1162 */ {I_XOR, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38271, 8},
-    /* 1163 */ {I_XOR, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+38271, 0},
-    /* 1164 */ {I_XOR, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38276, 9},
-    /* 1165 */ {I_XOR, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+38276, 5},
-    /* 1166 */ {I_XOR, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+38281, 10},
-    /* 1167 */ {I_XOR, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+38281, 7},
-    /* 1168 */ {I_XOR, 2, {RM_GPR|BITS16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24788, 11},
-    /* 1169 */ {I_XOR, 2, {RM_GPR|BITS32,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24795, 12},
-    /* 1170 */ {I_XOR, 2, {RM_GPR|BITS64,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+24802, 13},
-    /* 1171 */ {I_XOR, 2, {REG_AL,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+39405, 8},
-    /* 1172 */ {I_XOR, 2, {REG_AX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38286, 8},
-    /* 1173 */ {I_XOR, 2, {REG_EAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38291, 9},
-    /* 1174 */ {I_XOR, 2, {REG_RAX,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+38296, 10},
-    /* 1175 */ {I_XOR, 2, {RM_GPR|BITS8,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+34204, 3},
-    /* 1176 */ {I_XOR, 2, {RM_GPR|BITS16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24809, 3},
-    /* 1177 */ {I_XOR, 2, {RM_GPR|BITS32,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24816, 4},
-    /* 1178 */ {I_XOR, 2, {RM_GPR|BITS64,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+24823, 6},
-    /* 1179 */ {I_XOR, 2, {MEMORY,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+34204, 3},
-    /* 1180 */ {I_XOR, 2, {MEMORY,IMMEDIATE|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24809, 3},
-    /* 1181 */ {I_XOR, 2, {MEMORY,IMMEDIATE|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24816, 4},
-    /* 1182 */ {I_CMOVcc, 2, {REG_GPR|BITS16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24830, 114},
-    /* 1183 */ {I_CMOVcc, 2, {REG_GPR|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24830, 86},
-    /* 1184 */ {I_CMOVcc, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24837, 114},
-    /* 1185 */ {I_CMOVcc, 2, {REG_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24837, 86},
-    /* 1186 */ {I_CMOVcc, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24844, 10},
-    /* 1187 */ {I_CMOVcc, 2, {REG_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24844, 7},
-    /* 1188 */ {I_Jcc, 1, {IMMEDIATE|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24851, 115},
-    /* 1189 */ {I_Jcc, 1, {IMMEDIATE|BITS16|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24858, 27},
-    /* 1190 */ {I_Jcc, 1, {IMMEDIATE|BITS32|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24865, 27},
-    /* 1191 */ {I_Jcc, 1, {IMMEDIATE|BITS64|NEAR,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24872, 28},
-    /* 1192 */ {I_Jcc, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38302, 25},
-    /* 1193 */ {I_SETcc, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34216, 21},
-    /* 1194 */ {I_SETcc, 1, {REG_GPR|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34216, 5},
-    /* 1195 */ {I_ADDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34222, 116},
-    /* 1196 */ {I_ADDSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34228, 116},
-    /* 1197 */ {I_ANDNPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34234, 116},
-    /* 1198 */ {I_ANDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34240, 116},
-    /* 1199 */ {I_CMPEQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7442, 116},
-    /* 1200 */ {I_CMPEQSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7450, 116},
-    /* 1201 */ {I_CMPLEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7458, 116},
-    /* 1202 */ {I_CMPLESS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7466, 116},
-    /* 1203 */ {I_CMPLTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7474, 116},
-    /* 1204 */ {I_CMPLTSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7482, 116},
-    /* 1205 */ {I_CMPNEQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7490, 116},
-    /* 1206 */ {I_CMPNEQSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7498, 116},
-    /* 1207 */ {I_CMPNLEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7506, 116},
-    /* 1208 */ {I_CMPNLESS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7514, 116},
-    /* 1209 */ {I_CMPNLTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7522, 116},
-    /* 1210 */ {I_CMPNLTSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7530, 116},
-    /* 1211 */ {I_CMPORDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7538, 116},
-    /* 1212 */ {I_CMPORDSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7546, 116},
-    /* 1213 */ {I_CMPUNORDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+7554, 116},
-    /* 1214 */ {I_CMPUNORDSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7562, 116},
-    /* 1215 */ {I_CMPPS, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24886, 117},
-    /* 1216 */ {I_CMPPS, 3, {XMM_L16,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24886, 117},
-    /* 1217 */ {I_CMPSS, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24893, 117},
-    /* 1218 */ {I_CMPSS, 3, {XMM_L16,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+24893, 117},
-    /* 1219 */ {I_COMISS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34246, 116},
-    /* 1220 */ {I_CVTPI2PS, 2, {XMM_L16,RM_MMX|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34252, 118},
-    /* 1221 */ {I_CVTPS2PI, 2, {MMXREG,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34258, 118},
-    /* 1222 */ {I_CVTSI2SS, 2, {XMM_L16,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+24901, 119},
-    /* 1223 */ {I_CVTSI2SS, 2, {XMM_L16,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+24900, 120},
-    /* 1224 */ {I_CVTSS2SI, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24908, 119},
-    /* 1225 */ {I_CVTSS2SI, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24908, 119},
-    /* 1226 */ {I_CVTSS2SI, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24907, 121},
-    /* 1227 */ {I_CVTSS2SI, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+24907, 121},
-    /* 1228 */ {I_CVTTPS2PI, 2, {MMXREG,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34264, 122},
-    /* 1229 */ {I_CVTTSS2SI, 2, {REG_GPR|BITS32,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24915, 119},
-    /* 1230 */ {I_CVTTSS2SI, 2, {REG_GPR|BITS64,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24914, 121},
-    /* 1231 */ {I_DIVPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34270, 116},
-    /* 1232 */ {I_DIVSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34276, 116},
-    /* 1233 */ {I_LDMXCSR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34282, 116},
-    /* 1234 */ {I_MAXPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34288, 116},
-    /* 1235 */ {I_MAXSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34294, 116},
-    /* 1236 */ {I_MINPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34300, 116},
-    /* 1237 */ {I_MINSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34306, 116},
-    /* 1238 */ {I_MOVAPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34312, 116},
-    /* 1239 */ {I_MOVAPS, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34318, 116},
-    /* 1240 */ {I_MOVHPS, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34324, 116},
-    /* 1241 */ {I_MOVHPS, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34330, 116},
-    /* 1242 */ {I_MOVLHPS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34324, 116},
-    /* 1243 */ {I_MOVLPS, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+34120, 116},
-    /* 1244 */ {I_MOVLPS, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34336, 116},
-    /* 1245 */ {I_MOVHLPS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34120, 116},
-    /* 1246 */ {I_MOVMSKPS, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34342, 116},
-    /* 1247 */ {I_MOVMSKPS, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+24921, 123},
-    /* 1248 */ {I_MOVNTPS, 2, {MEMORY|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34348, 116},
-    /* 1249 */ {I_MOVSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34354, 116},
-    /* 1250 */ {I_MOVSS, 2, {MEMORY|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34360, 116},
-    /* 1251 */ {I_MOVSS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34354, 116},
-    /* 1252 */ {I_MOVUPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34366, 116},
-    /* 1253 */ {I_MOVUPS, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34372, 116},
-    /* 1254 */ {I_MULPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34378, 116},
-    /* 1255 */ {I_MULSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34384, 116},
-    /* 1256 */ {I_ORPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34390, 116},
-    /* 1257 */ {I_RCPPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34396, 116},
-    /* 1258 */ {I_RCPSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34402, 116},
-    /* 1259 */ {I_RSQRTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34408, 116},
-    /* 1260 */ {I_RSQRTSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34414, 116},
-    /* 1261 */ {I_SHUFPS, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+24928, 116},
-    /* 1262 */ {I_SQRTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34420, 116},
-    /* 1263 */ {I_SQRTSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34426, 116},
-    /* 1264 */ {I_STMXCSR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34432, 116},
-    /* 1265 */ {I_SUBPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34438, 116},
-    /* 1266 */ {I_SUBSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34444, 116},
-    /* 1267 */ {I_UCOMISS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+34450, 116},
-    /* 1268 */ {I_UNPCKHPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34456, 116},
-    /* 1269 */ {I_UNPCKLPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34462, 116},
-    /* 1270 */ {I_XORPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+34468, 116},
-    /* 1271 */ {I_FXRSTOR, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24936, 124},
-    /* 1272 */ {I_FXRSTOR64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24935, 125},
-    /* 1273 */ {I_FXSAVE, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24943, 124},
-    /* 1274 */ {I_FXSAVE64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24942, 125},
-    /* 1275 */ {I_XGETBV, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38306, 126},
-    /* 1276 */ {I_XSETBV, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38311, 127},
-    /* 1277 */ {I_XSAVE, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24950, 126},
-    /* 1278 */ {I_XSAVE64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24949, 128},
-    /* 1279 */ {I_XSAVEC, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24957, 129},
-    /* 1280 */ {I_XSAVEC64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24956, 130},
-    /* 1281 */ {I_XSAVEOPT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24964, 129},
-    /* 1282 */ {I_XSAVEOPT64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24963, 130},
-    /* 1283 */ {I_XSAVES, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24971, 129},
-    /* 1284 */ {I_XSAVES64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24970, 130},
-    /* 1285 */ {I_XRSTOR, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24978, 126},
-    /* 1286 */ {I_XRSTOR64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24977, 128},
-    /* 1287 */ {I_XRSTORS, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24985, 129},
-    /* 1288 */ {I_XRSTORS64, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+24984, 130},
-    /* 1289 */ {I_PREFETCHNTA, 1, {MEMORY|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35525, 131},
-    /* 1290 */ {I_PREFETCHT0, 1, {MEMORY|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35543, 131},
-    /* 1291 */ {I_PREFETCHT1, 1, {MEMORY|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35561, 131},
-    /* 1292 */ {I_PREFETCHT2, 1, {MEMORY|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35579, 131},
-    /* 1293 */ {I_SFENCE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33928, 131},
-    /* 1294 */ {I_MASKMOVQ, 2, {MMXREG,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+34474, 132},
-    /* 1295 */ {I_MOVNTQ, 2, {MEMORY,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+34480, 133},
-    /* 1296 */ {I_PAVGB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24991, 133},
-    /* 1297 */ {I_PAVGW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+24998, 133},
-    /* 1298 */ {I_PEXTRW, 3, {REG_GPR|BITS32,MMXREG,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25005, 134},
-    /* 1299 */ {I_PINSRW, 3, {MMXREG,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25012, 134},
-    /* 1300 */ {I_PINSRW, 3, {MMXREG,RM_GPR|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25012, 134},
-    /* 1301 */ {I_PINSRW, 3, {MMXREG,REG_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25012, 134},
-    /* 1302 */ {I_PMAXSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25019, 133},
-    /* 1303 */ {I_PMAXUB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25026, 133},
-    /* 1304 */ {I_PMINSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25033, 133},
-    /* 1305 */ {I_PMINUB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25040, 133},
-    /* 1306 */ {I_PMOVMSKB, 2, {REG_GPR|BITS32,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+34486, 132},
-    /* 1307 */ {I_PMULHUW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25047, 133},
-    /* 1308 */ {I_PSADBW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25054, 133},
-    /* 1309 */ {I_PSHUFW, 3, {MMXREG,RM_MMX,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7570, 135},
-    /* 1310 */ {I_PF2IW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7578, 88},
-    /* 1311 */ {I_PFNACC, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7586, 88},
-    /* 1312 */ {I_PFPNACC, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7594, 88},
-    /* 1313 */ {I_PI2FW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7602, 88},
-    /* 1314 */ {I_PSWAPD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7610, 88},
-    /* 1315 */ {I_MASKMOVDQU, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34492, 136},
-    /* 1316 */ {I_CLFLUSH, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+34498, 136},
-    /* 1317 */ {I_MOVNTDQ, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34504, 137},
-    /* 1318 */ {I_MOVNTI, 2, {MEMORY,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25062, 138},
-    /* 1319 */ {I_MOVNTI, 2, {MEMORY,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25061, 139},
-    /* 1320 */ {I_MOVNTPD, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34510, 137},
-    /* 1321 */ {I_LFENCE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33436, 136},
-    /* 1322 */ {I_MFENCE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33514, 136},
-    /* 1323 */ {I_MOVD, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25068, 140},
-    /* 1324 */ {I_MOVD, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+25075, 140},
-    /* 1325 */ {I_MOVD, 2, {XMM_L16,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25075, 136},
-    /* 1326 */ {I_MOVD, 2, {RM_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25068, 136},
-    /* 1327 */ {I_MOVDQA, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34516, 136},
-    /* 1328 */ {I_MOVDQA, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34522, 137},
-    /* 1329 */ {I_MOVDQA, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34516, 137},
-    /* 1330 */ {I_MOVDQA, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34522, 136},
-    /* 1331 */ {I_MOVDQU, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34528, 136},
-    /* 1332 */ {I_MOVDQU, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34534, 137},
-    /* 1333 */ {I_MOVDQU, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34528, 137},
-    /* 1334 */ {I_MOVDQU, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34534, 136},
-    /* 1335 */ {I_MOVDQ2Q, 2, {MMXREG,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34540, 136},
-    /* 1336 */ {I_MOVQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34546, 136},
-    /* 1337 */ {I_MOVQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34552, 136},
-    /* 1338 */ {I_MOVQ, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34552, 141},
-    /* 1339 */ {I_MOVQ, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+34546, 141},
-    /* 1340 */ {I_MOVQ, 2, {XMM_L16,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25082, 142},
-    /* 1341 */ {I_MOVQ, 2, {RM_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25089, 142},
-    /* 1342 */ {I_MOVQ2DQ, 2, {XMM_L16,MMXREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+34558, 136},
-    /* 1343 */ {I_PACKSSWB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34564, 137},
-    /* 1344 */ {I_PACKSSDW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34570, 137},
-    /* 1345 */ {I_PACKUSWB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34576, 137},
-    /* 1346 */ {I_PADDB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34582, 137},
-    /* 1347 */ {I_PADDW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34588, 137},
-    /* 1348 */ {I_PADDD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34594, 137},
-    /* 1349 */ {I_PADDQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+34600, 143},
-    /* 1350 */ {I_PADDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34606, 137},
-    /* 1351 */ {I_PADDSB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34612, 137},
-    /* 1352 */ {I_PADDSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34618, 137},
-    /* 1353 */ {I_PADDUSB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34624, 137},
-    /* 1354 */ {I_PADDUSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34630, 137},
-    /* 1355 */ {I_PAND, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34636, 137},
-    /* 1356 */ {I_PANDN, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34642, 137},
-    /* 1357 */ {I_PAVGB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34648, 137},
-    /* 1358 */ {I_PAVGW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34654, 137},
-    /* 1359 */ {I_PCMPEQB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34660, 137},
-    /* 1360 */ {I_PCMPEQW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34666, 137},
-    /* 1361 */ {I_PCMPEQD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34672, 137},
-    /* 1362 */ {I_PCMPGTB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34678, 137},
-    /* 1363 */ {I_PCMPGTW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34684, 137},
-    /* 1364 */ {I_PCMPGTD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34690, 137},
-    /* 1365 */ {I_PEXTRW, 3, {REG_GPR|BITS32,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25096, 144},
-    /* 1366 */ {I_PINSRW, 3, {XMM_L16,REG_GPR|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25103, 144},
-    /* 1367 */ {I_PINSRW, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25103, 144},
-    /* 1368 */ {I_PINSRW, 3, {XMM_L16,MEMORY|BITS16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25103, 144},
-    /* 1369 */ {I_PMADDWD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34696, 137},
-    /* 1370 */ {I_PMAXSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34702, 137},
-    /* 1371 */ {I_PMAXUB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34708, 137},
-    /* 1372 */ {I_PMINSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34714, 137},
-    /* 1373 */ {I_PMINUB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34720, 137},
-    /* 1374 */ {I_PMOVMSKB, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34726, 136},
-    /* 1375 */ {I_PMULHUW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34732, 137},
-    /* 1376 */ {I_PMULHW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34738, 137},
-    /* 1377 */ {I_PMULLW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34744, 137},
-    /* 1378 */ {I_PMULUDQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25110, 137},
-    /* 1379 */ {I_PMULUDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34750, 137},
-    /* 1380 */ {I_POR, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34756, 137},
-    /* 1381 */ {I_PSADBW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34762, 137},
-    /* 1382 */ {I_PSHUFD, 3, {XMM_L16,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25117, 144},
-    /* 1383 */ {I_PSHUFD, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25117, 145},
-    /* 1384 */ {I_PSHUFHW, 3, {XMM_L16,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25124, 144},
-    /* 1385 */ {I_PSHUFHW, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25124, 145},
-    /* 1386 */ {I_PSHUFLW, 3, {XMM_L16,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25131, 144},
-    /* 1387 */ {I_PSHUFLW, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25131, 145},
-    /* 1388 */ {I_PSLLDQ, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25138, 146},
-    /* 1389 */ {I_PSLLW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34768, 137},
-    /* 1390 */ {I_PSLLW, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25145, 146},
-    /* 1391 */ {I_PSLLD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34774, 137},
-    /* 1392 */ {I_PSLLD, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25152, 146},
-    /* 1393 */ {I_PSLLQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34780, 137},
-    /* 1394 */ {I_PSLLQ, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25159, 146},
-    /* 1395 */ {I_PSRAW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34786, 137},
-    /* 1396 */ {I_PSRAW, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25166, 146},
-    /* 1397 */ {I_PSRAD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34792, 137},
-    /* 1398 */ {I_PSRAD, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25173, 146},
-    /* 1399 */ {I_PSRLDQ, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25180, 146},
-    /* 1400 */ {I_PSRLW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34798, 137},
-    /* 1401 */ {I_PSRLW, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25187, 146},
-    /* 1402 */ {I_PSRLD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34804, 137},
-    /* 1403 */ {I_PSRLD, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25194, 146},
-    /* 1404 */ {I_PSRLQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34810, 137},
-    /* 1405 */ {I_PSRLQ, 2, {XMM_L16,IMMEDIATE,0,0,0}, NO_DECORATOR, nasm_bytecodes+25201, 146},
-    /* 1406 */ {I_PSUBB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34816, 137},
-    /* 1407 */ {I_PSUBW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34822, 137},
-    /* 1408 */ {I_PSUBD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34828, 137},
-    /* 1409 */ {I_PSUBQ, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25208, 137},
-    /* 1410 */ {I_PSUBQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34834, 137},
-    /* 1411 */ {I_PSUBSB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34840, 137},
-    /* 1412 */ {I_PSUBSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34846, 137},
-    /* 1413 */ {I_PSUBUSB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34852, 137},
-    /* 1414 */ {I_PSUBUSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34858, 137},
-    /* 1415 */ {I_PUNPCKHBW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34864, 137},
-    /* 1416 */ {I_PUNPCKHWD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34870, 137},
-    /* 1417 */ {I_PUNPCKHDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34876, 137},
-    /* 1418 */ {I_PUNPCKHQDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34882, 137},
-    /* 1419 */ {I_PUNPCKLBW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34888, 137},
-    /* 1420 */ {I_PUNPCKLWD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34894, 137},
-    /* 1421 */ {I_PUNPCKLDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34900, 137},
-    /* 1422 */ {I_PUNPCKLQDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34906, 137},
-    /* 1423 */ {I_PXOR, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34912, 137},
-    /* 1424 */ {I_ADDPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34918, 137},
-    /* 1425 */ {I_ADDSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34924, 141},
-    /* 1426 */ {I_ANDNPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34930, 137},
-    /* 1427 */ {I_ANDPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34936, 137},
-    /* 1428 */ {I_CMPEQPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7618, 137},
-    /* 1429 */ {I_CMPEQSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7626, 136},
-    /* 1430 */ {I_CMPLEPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7634, 137},
-    /* 1431 */ {I_CMPLESD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7642, 136},
-    /* 1432 */ {I_CMPLTPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7650, 137},
-    /* 1433 */ {I_CMPLTSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7658, 136},
-    /* 1434 */ {I_CMPNEQPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7666, 137},
-    /* 1435 */ {I_CMPNEQSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7674, 136},
-    /* 1436 */ {I_CMPNLEPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7682, 137},
-    /* 1437 */ {I_CMPNLESD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7690, 136},
-    /* 1438 */ {I_CMPNLTPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7698, 137},
-    /* 1439 */ {I_CMPNLTSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7706, 136},
-    /* 1440 */ {I_CMPORDPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7714, 137},
-    /* 1441 */ {I_CMPORDSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7722, 136},
-    /* 1442 */ {I_CMPUNORDPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7730, 137},
-    /* 1443 */ {I_CMPUNORDSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7738, 136},
-    /* 1444 */ {I_CMPPD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+25215, 136},
-    /* 1445 */ {I_CMPSD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+25222, 136},
-    /* 1446 */ {I_COMISD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34942, 136},
-    /* 1447 */ {I_CVTDQ2PD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34948, 141},
-    /* 1448 */ {I_CVTDQ2PS, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34954, 137},
-    /* 1449 */ {I_CVTPD2DQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34960, 137},
-    /* 1450 */ {I_CVTPD2PI, 2, {MMXREG,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34966, 137},
-    /* 1451 */ {I_CVTPD2PS, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34972, 137},
-    /* 1452 */ {I_CVTPI2PD, 2, {XMM_L16,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+34978, 141},
-    /* 1453 */ {I_CVTPS2DQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34984, 137},
-    /* 1454 */ {I_CVTPS2PD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34990, 141},
-    /* 1455 */ {I_CVTSD2SI, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25229, 147},
-    /* 1456 */ {I_CVTSD2SI, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+25229, 147},
-    /* 1457 */ {I_CVTSD2SI, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25236, 148},
-    /* 1458 */ {I_CVTSD2SI, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+25236, 148},
-    /* 1459 */ {I_CVTSD2SS, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+34996, 141},
-    /* 1460 */ {I_CVTSI2SD, 2, {XMM_L16,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25243, 149},
-    /* 1461 */ {I_CVTSI2SD, 2, {XMM_L16,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25250, 148},
-    /* 1462 */ {I_CVTSS2SD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35002, 140},
-    /* 1463 */ {I_CVTTPD2PI, 2, {MMXREG,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35008, 137},
-    /* 1464 */ {I_CVTTPD2DQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35014, 137},
-    /* 1465 */ {I_CVTTPS2DQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35020, 137},
-    /* 1466 */ {I_CVTTSD2SI, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25257, 147},
-    /* 1467 */ {I_CVTTSD2SI, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+25257, 147},
-    /* 1468 */ {I_CVTTSD2SI, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25264, 148},
-    /* 1469 */ {I_CVTTSD2SI, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+25264, 148},
-    /* 1470 */ {I_DIVPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35026, 137},
-    /* 1471 */ {I_DIVSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35032, 136},
-    /* 1472 */ {I_MAXPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35038, 137},
-    /* 1473 */ {I_MAXSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35044, 136},
-    /* 1474 */ {I_MINPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35050, 137},
-    /* 1475 */ {I_MINSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35056, 136},
-    /* 1476 */ {I_MOVAPD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35062, 136},
-    /* 1477 */ {I_MOVAPD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35068, 136},
-    /* 1478 */ {I_MOVAPD, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35068, 137},
-    /* 1479 */ {I_MOVAPD, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35062, 137},
-    /* 1480 */ {I_MOVHPD, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35074, 136},
-    /* 1481 */ {I_MOVHPD, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35080, 136},
-    /* 1482 */ {I_MOVLPD, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35086, 136},
-    /* 1483 */ {I_MOVLPD, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+35092, 136},
-    /* 1484 */ {I_MOVMSKPD, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35098, 136},
-    /* 1485 */ {I_MOVMSKPD, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25271, 142},
-    /* 1486 */ {I_MOVSD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35104, 136},
-    /* 1487 */ {I_MOVSD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35110, 136},
-    /* 1488 */ {I_MOVSD, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35110, 136},
-    /* 1489 */ {I_MOVSD, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+35104, 136},
-    /* 1490 */ {I_MOVUPD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35116, 136},
-    /* 1491 */ {I_MOVUPD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35122, 136},
-    /* 1492 */ {I_MOVUPD, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35122, 137},
-    /* 1493 */ {I_MOVUPD, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35116, 137},
-    /* 1494 */ {I_MULPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35128, 137},
-    /* 1495 */ {I_MULSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35134, 136},
-    /* 1496 */ {I_ORPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35140, 137},
-    /* 1497 */ {I_SHUFPD, 3, {XMM_L16,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25278, 144},
-    /* 1498 */ {I_SHUFPD, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+25278, 150},
-    /* 1499 */ {I_SQRTPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35146, 137},
-    /* 1500 */ {I_SQRTSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35152, 136},
-    /* 1501 */ {I_SUBPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35158, 137},
-    /* 1502 */ {I_SUBSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35164, 136},
-    /* 1503 */ {I_UCOMISD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35170, 136},
-    /* 1504 */ {I_UNPCKHPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35176, 136},
-    /* 1505 */ {I_UNPCKLPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35182, 136},
-    /* 1506 */ {I_XORPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35188, 136},
-    /* 1507 */ {I_ADDSUBPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35194, 151},
-    /* 1508 */ {I_ADDSUBPS, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35200, 151},
-    /* 1509 */ {I_HADDPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35206, 151},
-    /* 1510 */ {I_HADDPS, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35212, 151},
-    /* 1511 */ {I_HSUBPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35218, 151},
-    /* 1512 */ {I_HSUBPS, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35224, 151},
-    /* 1513 */ {I_LDDQU, 2, {XMM_L16,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35230, 151},
-    /* 1514 */ {I_MOVDDUP, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35236, 152},
-    /* 1515 */ {I_MOVSHDUP, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35242, 152},
-    /* 1516 */ {I_MOVSLDUP, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35248, 152},
-    /* 1517 */ {I_CLGI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38316, 153},
-    /* 1518 */ {I_STGI, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38321, 153},
-    /* 1519 */ {I_VMCALL, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38326, 154},
-    /* 1520 */ {I_VMCLEAR, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35254, 154},
-    /* 1521 */ {I_VMFUNC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38331, 154},
-    /* 1522 */ {I_VMLAUNCH, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38336, 154},
-    /* 1523 */ {I_VMLOAD, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38341, 153},
-    /* 1524 */ {I_VMMCALL, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38346, 153},
-    /* 1525 */ {I_VMPTRLD, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35260, 154},
-    /* 1526 */ {I_VMPTRST, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35266, 154},
-    /* 1527 */ {I_VMREAD, 2, {RM_GPR|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25286, 155},
-    /* 1528 */ {I_VMREAD, 2, {RM_GPR|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25285, 156},
-    /* 1529 */ {I_VMRESUME, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38351, 154},
-    /* 1530 */ {I_VMRUN, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38356, 153},
-    /* 1531 */ {I_VMSAVE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38361, 153},
-    /* 1532 */ {I_VMWRITE, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25293, 155},
-    /* 1533 */ {I_VMWRITE, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25292, 156},
-    /* 1534 */ {I_VMXOFF, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38366, 154},
-    /* 1535 */ {I_VMXON, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35272, 154},
-    /* 1536 */ {I_INVEPT, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+7747, 157},
-    /* 1537 */ {I_INVEPT, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+7746, 158},
-    /* 1538 */ {I_INVVPID, 2, {REG_GPR|BITS32,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+7755, 157},
-    /* 1539 */ {I_INVVPID, 2, {REG_GPR|BITS64,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+7754, 158},
-    /* 1540 */ {I_PABSB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25299, 159},
-    /* 1541 */ {I_PABSB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25306, 160},
-    /* 1542 */ {I_PABSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25313, 159},
-    /* 1543 */ {I_PABSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25320, 160},
-    /* 1544 */ {I_PABSD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25327, 159},
-    /* 1545 */ {I_PABSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25334, 160},
-    /* 1546 */ {I_PALIGNR, 3, {MMXREG,RM_MMX,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7762, 159},
-    /* 1547 */ {I_PALIGNR, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7770, 160},
-    /* 1548 */ {I_PHADDW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25341, 159},
-    /* 1549 */ {I_PHADDW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25348, 160},
-    /* 1550 */ {I_PHADDD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25355, 159},
-    /* 1551 */ {I_PHADDD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25362, 160},
-    /* 1552 */ {I_PHADDSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25369, 159},
-    /* 1553 */ {I_PHADDSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25376, 160},
-    /* 1554 */ {I_PHSUBW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25383, 159},
-    /* 1555 */ {I_PHSUBW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25390, 160},
-    /* 1556 */ {I_PHSUBD, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25397, 159},
-    /* 1557 */ {I_PHSUBD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25404, 160},
-    /* 1558 */ {I_PHSUBSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25411, 159},
-    /* 1559 */ {I_PHSUBSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25418, 160},
-    /* 1560 */ {I_PMADDUBSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25425, 159},
-    /* 1561 */ {I_PMADDUBSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25432, 160},
-    /* 1562 */ {I_PMULHRSW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25439, 159},
-    /* 1563 */ {I_PMULHRSW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25446, 160},
-    /* 1564 */ {I_PSHUFB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25453, 159},
-    /* 1565 */ {I_PSHUFB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25460, 160},
-    /* 1566 */ {I_PSIGNB, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25467, 159},
-    /* 1567 */ {I_PSIGNB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25474, 160},
-    /* 1568 */ {I_PSIGNW, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25481, 159},
-    /* 1569 */ {I_PSIGNW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25488, 160},
-    /* 1570 */ {I_PSIGND, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+25495, 159},
-    /* 1571 */ {I_PSIGND, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25502, 160},
-    /* 1572 */ {I_EXTRQ, 3, {XMM_L16,IMMEDIATE,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7778, 161},
-    /* 1573 */ {I_EXTRQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35278, 161},
-    /* 1574 */ {I_INSERTQ, 4, {XMM_L16,XMM_L16,IMMEDIATE,IMMEDIATE,0}, NO_DECORATOR, nasm_bytecodes+7786, 161},
-    /* 1575 */ {I_INSERTQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35284, 161},
-    /* 1576 */ {I_MOVNTSD, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35290, 162},
-    /* 1577 */ {I_MOVNTSS, 2, {MEMORY,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+35296, 163},
-    /* 1578 */ {I_LZCNT, 2, {REG_GPR|BITS16,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25509, 107},
-    /* 1579 */ {I_LZCNT, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25516, 107},
-    /* 1580 */ {I_LZCNT, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25523, 59},
-    /* 1581 */ {I_BLENDPD, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7794, 164},
-    /* 1582 */ {I_BLENDPS, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7802, 164},
-    /* 1583 */ {I_BLENDVPD, 3, {XMM_L16,RM_XMM_L16,XMM0,0,0}, NO_DECORATOR, nasm_bytecodes+25530, 164},
-    /* 1584 */ {I_BLENDVPD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25530, 164},
-    /* 1585 */ {I_BLENDVPS, 3, {XMM_L16,RM_XMM_L16,XMM0,0,0}, NO_DECORATOR, nasm_bytecodes+25537, 164},
-    /* 1586 */ {I_BLENDVPS, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25537, 164},
-    /* 1587 */ {I_DPPD, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7810, 164},
-    /* 1588 */ {I_DPPS, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7818, 164},
-    /* 1589 */ {I_EXTRACTPS, 3, {RM_GPR|BITS32,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+1, 164},
-    /* 1590 */ {I_EXTRACTPS, 3, {REG_GPR|BITS64,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+0, 165},
-    /* 1591 */ {I_INSERTPS, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7826, 166},
-    /* 1592 */ {I_MOVNTDQA, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25544, 164},
-    /* 1593 */ {I_MPSADBW, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7834, 164},
-    /* 1594 */ {I_PACKUSDW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25551, 164},
-    /* 1595 */ {I_PBLENDVB, 3, {XMM_L16,RM_XMM_L16,XMM0,0,0}, NO_DECORATOR, nasm_bytecodes+25558, 164},
-    /* 1596 */ {I_PBLENDVB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25558, 164},
-    /* 1597 */ {I_PBLENDW, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7842, 164},
-    /* 1598 */ {I_PCMPEQQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25565, 164},
-    /* 1599 */ {I_PEXTRB, 3, {REG_GPR|BITS32,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+10, 164},
-    /* 1600 */ {I_PEXTRB, 3, {MEMORY|BITS8,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+10, 164},
-    /* 1601 */ {I_PEXTRB, 3, {REG_GPR|BITS64,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+9, 165},
-    /* 1602 */ {I_PEXTRD, 3, {RM_GPR|BITS32,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+18, 164},
-    /* 1603 */ {I_PEXTRQ, 3, {RM_GPR|BITS64,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+27, 165},
-    /* 1604 */ {I_PEXTRW, 3, {REG_GPR|BITS32,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+37, 164},
-    /* 1605 */ {I_PEXTRW, 3, {MEMORY|BITS16,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+37, 164},
-    /* 1606 */ {I_PEXTRW, 3, {REG_GPR|BITS64,XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+36, 165},
-    /* 1607 */ {I_PHMINPOSUW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25572, 164},
-    /* 1608 */ {I_PINSRB, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+46, 167},
-    /* 1609 */ {I_PINSRB, 3, {XMM_L16,RM_GPR|BITS8,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+45, 167},
-    /* 1610 */ {I_PINSRB, 3, {XMM_L16,REG_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+46, 167},
-    /* 1611 */ {I_PINSRD, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+54, 167},
-    /* 1612 */ {I_PINSRD, 3, {XMM_L16,RM_GPR|BITS32,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+54, 167},
-    /* 1613 */ {I_PINSRQ, 3, {XMM_L16,MEMORY,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+63, 168},
-    /* 1614 */ {I_PINSRQ, 3, {XMM_L16,RM_GPR|BITS64,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+63, 168},
-    /* 1615 */ {I_PMAXSB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25579, 164},
-    /* 1616 */ {I_PMAXSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25586, 164},
-    /* 1617 */ {I_PMAXUD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25593, 164},
-    /* 1618 */ {I_PMAXUW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25600, 164},
-    /* 1619 */ {I_PMINSB, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25607, 164},
-    /* 1620 */ {I_PMINSD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25614, 164},
-    /* 1621 */ {I_PMINUD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25621, 164},
-    /* 1622 */ {I_PMINUW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25628, 164},
-    /* 1623 */ {I_PMOVSXBW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25635, 169},
-    /* 1624 */ {I_PMOVSXBD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25642, 166},
-    /* 1625 */ {I_PMOVSXBQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25649, 170},
-    /* 1626 */ {I_PMOVSXWD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25656, 169},
-    /* 1627 */ {I_PMOVSXWQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25663, 166},
-    /* 1628 */ {I_PMOVSXDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25670, 169},
-    /* 1629 */ {I_PMOVZXBW, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25677, 169},
-    /* 1630 */ {I_PMOVZXBD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25684, 166},
-    /* 1631 */ {I_PMOVZXBQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25691, 170},
-    /* 1632 */ {I_PMOVZXWD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25698, 169},
-    /* 1633 */ {I_PMOVZXWQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25705, 166},
-    /* 1634 */ {I_PMOVZXDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25712, 169},
-    /* 1635 */ {I_PMULDQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25719, 164},
-    /* 1636 */ {I_PMULLD, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25726, 164},
-    /* 1637 */ {I_PTEST, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25733, 164},
-    /* 1638 */ {I_ROUNDPD, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7850, 164},
-    /* 1639 */ {I_ROUNDPS, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7858, 164},
-    /* 1640 */ {I_ROUNDSD, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7866, 164},
-    /* 1641 */ {I_ROUNDSS, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7874, 164},
-    /* 1642 */ {I_CRC32, 2, {REG_GPR|BITS32,RM_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+7899, 171},
-    /* 1643 */ {I_CRC32, 2, {REG_GPR|BITS32,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7882, 171},
-    /* 1644 */ {I_CRC32, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7890, 171},
-    /* 1645 */ {I_CRC32, 2, {REG_GPR|BITS64,RM_GPR|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+7898, 172},
-    /* 1646 */ {I_CRC32, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+7906, 172},
-    /* 1647 */ {I_PCMPESTRI, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7914, 171},
-    /* 1648 */ {I_PCMPESTRM, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7922, 171},
-    /* 1649 */ {I_PCMPISTRI, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7930, 171},
-    /* 1650 */ {I_PCMPISTRM, 3, {XMM_L16,RM_XMM_L16,IMMEDIATE,0,0}, NO_DECORATOR, nasm_bytecodes+7938, 171},
-    /* 1651 */ {I_PCMPGTQ, 2, {XMM_L16,RM_XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25740, 171},
-    /* 1652 */ {I_POPCNT, 2, {REG_GPR|BITS16,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+25747, 173},
-    /* 1653 */ {I_POPCNT, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25754, 174},
-    /* 1654 */ {I_POPCNT, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25761, 175},
-    /* 1655 */ {I_GETSEC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+39409, 131},
-    /* 1656 */ {I_PFRCPV, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7946, 176},
-    /* 1657 */ {I_PFRSQRTV, 2, {MMXREG,RM_MMX,0,0,0}, NO_DECORATOR, nasm_bytecodes+7954, 176},
-    /* 1658 */ {I_MOVBE, 2, {REG_GPR|BITS16,MEMORY|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7962, 177},
-    /* 1659 */ {I_MOVBE, 2, {REG_GPR|BITS32,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7970, 177},
-    /* 1660 */ {I_MOVBE, 2, {REG_GPR|BITS64,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+7978, 177},
-    /* 1661 */ {I_MOVBE, 2, {MEMORY|BITS16,REG_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+7986, 177},
-    /* 1662 */ {I_MOVBE, 2, {MEMORY|BITS32,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+7994, 177},
-    /* 1663 */ {I_MOVBE, 2, {MEMORY|BITS64,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+8002, 177},
-    /* 1664 */ {I_AESENC, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25768, 178},
-    /* 1665 */ {I_AESENCLAST, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25775, 178},
-    /* 1666 */ {I_AESDEC, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25782, 178},
-    /* 1667 */ {I_AESDECLAST, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25789, 178},
-    /* 1668 */ {I_AESIMC, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25796, 178},
-    /* 1669 */ {I_AESKEYGENASSIST, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8010, 178},
-    /* 1670 */ {I_VAESENC, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25803, 179},
-    /* 1671 */ {I_VAESENC, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25810, 179},
-    /* 1672 */ {I_VAESENCLAST, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25817, 179},
-    /* 1673 */ {I_VAESENCLAST, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25824, 179},
-    /* 1674 */ {I_VAESDEC, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25831, 179},
-    /* 1675 */ {I_VAESDEC, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25838, 179},
-    /* 1676 */ {I_VAESDECLAST, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25845, 179},
-    /* 1677 */ {I_VAESDECLAST, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25852, 179},
-    /* 1678 */ {I_VAESIMC, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25859, 179},
-    /* 1679 */ {I_VAESKEYGENASSIST, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8018, 179},
-    /* 1680 */ {I_VADDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25866, 179},
-    /* 1681 */ {I_VADDPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25873, 179},
-    /* 1682 */ {I_VADDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+25880, 179},
-    /* 1683 */ {I_VADDPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+25887, 179},
-    /* 1684 */ {I_VADDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25894, 179},
-    /* 1685 */ {I_VADDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25901, 179},
-    /* 1686 */ {I_VADDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+25908, 179},
-    /* 1687 */ {I_VADDPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+25915, 179},
-    /* 1688 */ {I_VADDSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+25922, 179},
-    /* 1689 */ {I_VADDSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+25929, 179},
-    /* 1690 */ {I_VADDSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+25936, 179},
-    /* 1691 */ {I_VADDSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+25943, 179},
-    /* 1692 */ {I_VADDSUBPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25950, 179},
-    /* 1693 */ {I_VADDSUBPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25957, 179},
-    /* 1694 */ {I_VADDSUBPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+25964, 179},
-    /* 1695 */ {I_VADDSUBPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+25971, 179},
-    /* 1696 */ {I_VADDSUBPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+25978, 179},
-    /* 1697 */ {I_VADDSUBPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+25985, 179},
-    /* 1698 */ {I_VADDSUBPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+25992, 179},
-    /* 1699 */ {I_VADDSUBPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+25999, 179},
-    /* 1700 */ {I_VANDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26006, 179},
-    /* 1701 */ {I_VANDPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26013, 179},
-    /* 1702 */ {I_VANDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26020, 179},
-    /* 1703 */ {I_VANDPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26027, 179},
-    /* 1704 */ {I_VANDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26034, 179},
-    /* 1705 */ {I_VANDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26041, 179},
-    /* 1706 */ {I_VANDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26048, 179},
-    /* 1707 */ {I_VANDPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26055, 179},
-    /* 1708 */ {I_VANDNPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26062, 179},
-    /* 1709 */ {I_VANDNPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26069, 179},
-    /* 1710 */ {I_VANDNPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26076, 179},
-    /* 1711 */ {I_VANDNPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26083, 179},
-    /* 1712 */ {I_VANDNPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26090, 179},
-    /* 1713 */ {I_VANDNPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26097, 179},
-    /* 1714 */ {I_VANDNPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26104, 179},
-    /* 1715 */ {I_VANDNPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26111, 179},
-    /* 1716 */ {I_VBLENDPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8026, 179},
-    /* 1717 */ {I_VBLENDPD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8034, 179},
-    /* 1718 */ {I_VBLENDPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8042, 179},
-    /* 1719 */ {I_VBLENDPD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8050, 179},
-    /* 1720 */ {I_VBLENDPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8058, 179},
-    /* 1721 */ {I_VBLENDPS, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8066, 179},
-    /* 1722 */ {I_VBLENDPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8074, 179},
-    /* 1723 */ {I_VBLENDPS, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8082, 179},
-    /* 1724 */ {I_VBLENDVPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+8090, 179},
-    /* 1725 */ {I_VBLENDVPD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+8098, 179},
-    /* 1726 */ {I_VBLENDVPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+8106, 179},
-    /* 1727 */ {I_VBLENDVPD, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+8114, 179},
-    /* 1728 */ {I_VBLENDVPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+8122, 179},
-    /* 1729 */ {I_VBLENDVPS, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+8130, 179},
-    /* 1730 */ {I_VBLENDVPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+8138, 179},
-    /* 1731 */ {I_VBLENDVPS, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+8146, 179},
-    /* 1732 */ {I_VBROADCASTSS, 2, {XMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26118, 179},
-    /* 1733 */ {I_VBROADCASTSS, 2, {YMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26125, 179},
-    /* 1734 */ {I_VBROADCASTSD, 2, {YMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26132, 179},
-    /* 1735 */ {I_VBROADCASTF128, 2, {YMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26139, 179},
-    /* 1736 */ {I_VCMPEQ_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+72, 179},
-    /* 1737 */ {I_VCMPEQ_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+81, 179},
-    /* 1738 */ {I_VCMPEQ_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+90, 179},
-    /* 1739 */ {I_VCMPEQ_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+99, 179},
-    /* 1740 */ {I_VCMPEQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+108, 179},
-    /* 1741 */ {I_VCMPEQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+117, 179},
-    /* 1742 */ {I_VCMPEQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+126, 179},
-    /* 1743 */ {I_VCMPEQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+135, 179},
-    /* 1744 */ {I_VCMPLT_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+144, 179},
-    /* 1745 */ {I_VCMPLT_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+153, 179},
-    /* 1746 */ {I_VCMPLT_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+162, 179},
-    /* 1747 */ {I_VCMPLT_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+171, 179},
-    /* 1748 */ {I_VCMPLTPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+144, 179},
-    /* 1749 */ {I_VCMPLTPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+153, 179},
-    /* 1750 */ {I_VCMPLTPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+162, 179},
-    /* 1751 */ {I_VCMPLTPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+171, 179},
-    /* 1752 */ {I_VCMPLE_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+180, 179},
-    /* 1753 */ {I_VCMPLE_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+189, 179},
-    /* 1754 */ {I_VCMPLE_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+198, 179},
-    /* 1755 */ {I_VCMPLE_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+207, 179},
-    /* 1756 */ {I_VCMPLEPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+180, 179},
-    /* 1757 */ {I_VCMPLEPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+189, 179},
-    /* 1758 */ {I_VCMPLEPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+198, 179},
-    /* 1759 */ {I_VCMPLEPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+207, 179},
-    /* 1760 */ {I_VCMPUNORD_QPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+216, 179},
-    /* 1761 */ {I_VCMPUNORD_QPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+225, 179},
-    /* 1762 */ {I_VCMPUNORD_QPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+234, 179},
-    /* 1763 */ {I_VCMPUNORD_QPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+243, 179},
-    /* 1764 */ {I_VCMPUNORDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+216, 179},
-    /* 1765 */ {I_VCMPUNORDPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+225, 179},
-    /* 1766 */ {I_VCMPUNORDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+234, 179},
-    /* 1767 */ {I_VCMPUNORDPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+243, 179},
-    /* 1768 */ {I_VCMPNEQ_UQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+252, 179},
-    /* 1769 */ {I_VCMPNEQ_UQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+261, 179},
-    /* 1770 */ {I_VCMPNEQ_UQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+270, 179},
-    /* 1771 */ {I_VCMPNEQ_UQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+279, 179},
-    /* 1772 */ {I_VCMPNEQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+252, 179},
-    /* 1773 */ {I_VCMPNEQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+261, 179},
-    /* 1774 */ {I_VCMPNEQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+270, 179},
-    /* 1775 */ {I_VCMPNEQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+279, 179},
-    /* 1776 */ {I_VCMPNLT_USPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+288, 179},
-    /* 1777 */ {I_VCMPNLT_USPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+297, 179},
-    /* 1778 */ {I_VCMPNLT_USPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+306, 179},
-    /* 1779 */ {I_VCMPNLT_USPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+315, 179},
-    /* 1780 */ {I_VCMPNLTPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+288, 179},
-    /* 1781 */ {I_VCMPNLTPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+297, 179},
-    /* 1782 */ {I_VCMPNLTPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+306, 179},
-    /* 1783 */ {I_VCMPNLTPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+315, 179},
-    /* 1784 */ {I_VCMPNLE_USPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+324, 179},
-    /* 1785 */ {I_VCMPNLE_USPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+333, 179},
-    /* 1786 */ {I_VCMPNLE_USPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+342, 179},
-    /* 1787 */ {I_VCMPNLE_USPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+351, 179},
-    /* 1788 */ {I_VCMPNLEPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+324, 179},
-    /* 1789 */ {I_VCMPNLEPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+333, 179},
-    /* 1790 */ {I_VCMPNLEPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+342, 179},
-    /* 1791 */ {I_VCMPNLEPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+351, 179},
-    /* 1792 */ {I_VCMPORD_QPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+360, 179},
-    /* 1793 */ {I_VCMPORD_QPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+369, 179},
-    /* 1794 */ {I_VCMPORD_QPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+378, 179},
-    /* 1795 */ {I_VCMPORD_QPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+387, 179},
-    /* 1796 */ {I_VCMPORDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+360, 179},
-    /* 1797 */ {I_VCMPORDPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+369, 179},
-    /* 1798 */ {I_VCMPORDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+378, 179},
-    /* 1799 */ {I_VCMPORDPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+387, 179},
-    /* 1800 */ {I_VCMPEQ_UQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+396, 179},
-    /* 1801 */ {I_VCMPEQ_UQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+405, 179},
-    /* 1802 */ {I_VCMPEQ_UQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+414, 179},
-    /* 1803 */ {I_VCMPEQ_UQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+423, 179},
-    /* 1804 */ {I_VCMPNGE_USPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+432, 179},
-    /* 1805 */ {I_VCMPNGE_USPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+441, 179},
-    /* 1806 */ {I_VCMPNGE_USPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+450, 179},
-    /* 1807 */ {I_VCMPNGE_USPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+459, 179},
-    /* 1808 */ {I_VCMPNGEPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+432, 179},
-    /* 1809 */ {I_VCMPNGEPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+441, 179},
-    /* 1810 */ {I_VCMPNGEPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+450, 179},
-    /* 1811 */ {I_VCMPNGEPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+459, 179},
-    /* 1812 */ {I_VCMPNGT_USPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+468, 179},
-    /* 1813 */ {I_VCMPNGT_USPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+477, 179},
-    /* 1814 */ {I_VCMPNGT_USPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+486, 179},
-    /* 1815 */ {I_VCMPNGT_USPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+495, 179},
-    /* 1816 */ {I_VCMPNGTPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+468, 179},
-    /* 1817 */ {I_VCMPNGTPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+477, 179},
-    /* 1818 */ {I_VCMPNGTPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+486, 179},
-    /* 1819 */ {I_VCMPNGTPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+495, 179},
-    /* 1820 */ {I_VCMPFALSE_OQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+504, 179},
-    /* 1821 */ {I_VCMPFALSE_OQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+513, 179},
-    /* 1822 */ {I_VCMPFALSE_OQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+522, 179},
-    /* 1823 */ {I_VCMPFALSE_OQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+531, 179},
-    /* 1824 */ {I_VCMPFALSEPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+504, 179},
-    /* 1825 */ {I_VCMPFALSEPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+513, 179},
-    /* 1826 */ {I_VCMPFALSEPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+522, 179},
-    /* 1827 */ {I_VCMPFALSEPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+531, 179},
-    /* 1828 */ {I_VCMPNEQ_OQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+540, 179},
-    /* 1829 */ {I_VCMPNEQ_OQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+549, 179},
-    /* 1830 */ {I_VCMPNEQ_OQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+558, 179},
-    /* 1831 */ {I_VCMPNEQ_OQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+567, 179},
-    /* 1832 */ {I_VCMPGE_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+576, 179},
-    /* 1833 */ {I_VCMPGE_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+585, 179},
-    /* 1834 */ {I_VCMPGE_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+594, 179},
-    /* 1835 */ {I_VCMPGE_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+603, 179},
-    /* 1836 */ {I_VCMPGEPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+576, 179},
-    /* 1837 */ {I_VCMPGEPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+585, 179},
-    /* 1838 */ {I_VCMPGEPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+594, 179},
-    /* 1839 */ {I_VCMPGEPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+603, 179},
-    /* 1840 */ {I_VCMPGT_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+612, 179},
-    /* 1841 */ {I_VCMPGT_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+621, 179},
-    /* 1842 */ {I_VCMPGT_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+630, 179},
-    /* 1843 */ {I_VCMPGT_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+639, 179},
-    /* 1844 */ {I_VCMPGTPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+612, 179},
-    /* 1845 */ {I_VCMPGTPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+621, 179},
-    /* 1846 */ {I_VCMPGTPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+630, 179},
-    /* 1847 */ {I_VCMPGTPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+639, 179},
-    /* 1848 */ {I_VCMPTRUE_UQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+648, 179},
-    /* 1849 */ {I_VCMPTRUE_UQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+657, 179},
-    /* 1850 */ {I_VCMPTRUE_UQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+666, 179},
-    /* 1851 */ {I_VCMPTRUE_UQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+675, 179},
-    /* 1852 */ {I_VCMPTRUEPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+648, 179},
-    /* 1853 */ {I_VCMPTRUEPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+657, 179},
-    /* 1854 */ {I_VCMPTRUEPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+666, 179},
-    /* 1855 */ {I_VCMPTRUEPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+675, 179},
-    /* 1856 */ {I_VCMPEQ_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+72, 179},
-    /* 1857 */ {I_VCMPEQ_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+81, 179},
-    /* 1858 */ {I_VCMPEQ_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+90, 179},
-    /* 1859 */ {I_VCMPEQ_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+99, 179},
-    /* 1860 */ {I_VCMPLT_OQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+684, 179},
-    /* 1861 */ {I_VCMPLT_OQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+693, 179},
-    /* 1862 */ {I_VCMPLT_OQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+702, 179},
-    /* 1863 */ {I_VCMPLT_OQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+711, 179},
-    /* 1864 */ {I_VCMPLE_OQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+720, 179},
-    /* 1865 */ {I_VCMPLE_OQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+729, 179},
-    /* 1866 */ {I_VCMPLE_OQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+738, 179},
-    /* 1867 */ {I_VCMPLE_OQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+747, 179},
-    /* 1868 */ {I_VCMPUNORD_SPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+756, 179},
-    /* 1869 */ {I_VCMPUNORD_SPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+765, 179},
-    /* 1870 */ {I_VCMPUNORD_SPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+774, 179},
-    /* 1871 */ {I_VCMPUNORD_SPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+783, 179},
-    /* 1872 */ {I_VCMPNEQ_USPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+792, 179},
-    /* 1873 */ {I_VCMPNEQ_USPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+801, 179},
-    /* 1874 */ {I_VCMPNEQ_USPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+810, 179},
-    /* 1875 */ {I_VCMPNEQ_USPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+819, 179},
-    /* 1876 */ {I_VCMPNLT_UQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+828, 179},
-    /* 1877 */ {I_VCMPNLT_UQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+837, 179},
-    /* 1878 */ {I_VCMPNLT_UQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+846, 179},
-    /* 1879 */ {I_VCMPNLT_UQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+855, 179},
-    /* 1880 */ {I_VCMPNLE_UQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+864, 179},
-    /* 1881 */ {I_VCMPNLE_UQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+873, 179},
-    /* 1882 */ {I_VCMPNLE_UQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+882, 179},
-    /* 1883 */ {I_VCMPNLE_UQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+891, 179},
-    /* 1884 */ {I_VCMPORD_SPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+900, 179},
-    /* 1885 */ {I_VCMPORD_SPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+909, 179},
-    /* 1886 */ {I_VCMPORD_SPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+918, 179},
-    /* 1887 */ {I_VCMPORD_SPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+927, 179},
-    /* 1888 */ {I_VCMPEQ_USPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+936, 179},
-    /* 1889 */ {I_VCMPEQ_USPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+945, 179},
-    /* 1890 */ {I_VCMPEQ_USPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+954, 179},
-    /* 1891 */ {I_VCMPEQ_USPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+963, 179},
-    /* 1892 */ {I_VCMPNGE_UQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+972, 179},
-    /* 1893 */ {I_VCMPNGE_UQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+981, 179},
-    /* 1894 */ {I_VCMPNGE_UQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+990, 179},
-    /* 1895 */ {I_VCMPNGE_UQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+999, 179},
-    /* 1896 */ {I_VCMPNGT_UQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1008, 179},
-    /* 1897 */ {I_VCMPNGT_UQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1017, 179},
-    /* 1898 */ {I_VCMPNGT_UQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1026, 179},
-    /* 1899 */ {I_VCMPNGT_UQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1035, 179},
-    /* 1900 */ {I_VCMPFALSE_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1044, 179},
-    /* 1901 */ {I_VCMPFALSE_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1053, 179},
-    /* 1902 */ {I_VCMPFALSE_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1062, 179},
-    /* 1903 */ {I_VCMPFALSE_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1071, 179},
-    /* 1904 */ {I_VCMPNEQ_OSPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1080, 179},
-    /* 1905 */ {I_VCMPNEQ_OSPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1089, 179},
-    /* 1906 */ {I_VCMPNEQ_OSPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1098, 179},
-    /* 1907 */ {I_VCMPNEQ_OSPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1107, 179},
-    /* 1908 */ {I_VCMPGE_OQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1116, 179},
-    /* 1909 */ {I_VCMPGE_OQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1125, 179},
-    /* 1910 */ {I_VCMPGE_OQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1134, 179},
-    /* 1911 */ {I_VCMPGE_OQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1143, 179},
-    /* 1912 */ {I_VCMPGT_OQPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1152, 179},
-    /* 1913 */ {I_VCMPGT_OQPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1161, 179},
-    /* 1914 */ {I_VCMPGT_OQPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1170, 179},
-    /* 1915 */ {I_VCMPGT_OQPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1179, 179},
-    /* 1916 */ {I_VCMPTRUE_USPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1188, 179},
-    /* 1917 */ {I_VCMPTRUE_USPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1197, 179},
-    /* 1918 */ {I_VCMPTRUE_USPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1206, 179},
-    /* 1919 */ {I_VCMPTRUE_USPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1215, 179},
-    /* 1920 */ {I_VCMPPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8154, 179},
-    /* 1921 */ {I_VCMPPD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8162, 179},
-    /* 1922 */ {I_VCMPPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8170, 179},
-    /* 1923 */ {I_VCMPPD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8178, 179},
-    /* 1924 */ {I_VCMPEQ_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1224, 179},
-    /* 1925 */ {I_VCMPEQ_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1233, 179},
-    /* 1926 */ {I_VCMPEQ_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1242, 179},
-    /* 1927 */ {I_VCMPEQ_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1251, 179},
-    /* 1928 */ {I_VCMPEQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1260, 179},
-    /* 1929 */ {I_VCMPEQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1269, 179},
-    /* 1930 */ {I_VCMPEQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1278, 179},
-    /* 1931 */ {I_VCMPEQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1287, 179},
-    /* 1932 */ {I_VCMPLT_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1296, 179},
-    /* 1933 */ {I_VCMPLT_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1305, 179},
-    /* 1934 */ {I_VCMPLT_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1314, 179},
-    /* 1935 */ {I_VCMPLT_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1323, 179},
-    /* 1936 */ {I_VCMPLTPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1296, 179},
-    /* 1937 */ {I_VCMPLTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1305, 179},
-    /* 1938 */ {I_VCMPLTPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1314, 179},
-    /* 1939 */ {I_VCMPLTPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1323, 179},
-    /* 1940 */ {I_VCMPLE_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1332, 179},
-    /* 1941 */ {I_VCMPLE_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1341, 179},
-    /* 1942 */ {I_VCMPLE_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1350, 179},
-    /* 1943 */ {I_VCMPLE_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1359, 179},
-    /* 1944 */ {I_VCMPLEPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1332, 179},
-    /* 1945 */ {I_VCMPLEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1341, 179},
-    /* 1946 */ {I_VCMPLEPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1350, 179},
-    /* 1947 */ {I_VCMPLEPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1359, 179},
-    /* 1948 */ {I_VCMPUNORD_QPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1368, 179},
-    /* 1949 */ {I_VCMPUNORD_QPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1377, 179},
-    /* 1950 */ {I_VCMPUNORD_QPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1386, 179},
-    /* 1951 */ {I_VCMPUNORD_QPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1395, 179},
-    /* 1952 */ {I_VCMPUNORDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1368, 179},
-    /* 1953 */ {I_VCMPUNORDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1377, 179},
-    /* 1954 */ {I_VCMPUNORDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1386, 179},
-    /* 1955 */ {I_VCMPUNORDPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1395, 179},
-    /* 1956 */ {I_VCMPNEQ_UQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1404, 179},
-    /* 1957 */ {I_VCMPNEQ_UQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1413, 179},
-    /* 1958 */ {I_VCMPNEQ_UQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1422, 179},
-    /* 1959 */ {I_VCMPNEQ_UQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1431, 179},
-    /* 1960 */ {I_VCMPNEQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1404, 179},
-    /* 1961 */ {I_VCMPNEQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1413, 179},
-    /* 1962 */ {I_VCMPNEQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1422, 179},
-    /* 1963 */ {I_VCMPNEQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1431, 179},
-    /* 1964 */ {I_VCMPNLT_USPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1440, 179},
-    /* 1965 */ {I_VCMPNLT_USPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1449, 179},
-    /* 1966 */ {I_VCMPNLT_USPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1458, 179},
-    /* 1967 */ {I_VCMPNLT_USPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1467, 179},
-    /* 1968 */ {I_VCMPNLTPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1440, 179},
-    /* 1969 */ {I_VCMPNLTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1449, 179},
-    /* 1970 */ {I_VCMPNLTPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1458, 179},
-    /* 1971 */ {I_VCMPNLTPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1467, 179},
-    /* 1972 */ {I_VCMPNLE_USPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1476, 179},
-    /* 1973 */ {I_VCMPNLE_USPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1485, 179},
-    /* 1974 */ {I_VCMPNLE_USPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1494, 179},
-    /* 1975 */ {I_VCMPNLE_USPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1503, 179},
-    /* 1976 */ {I_VCMPNLEPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1476, 179},
-    /* 1977 */ {I_VCMPNLEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1485, 179},
-    /* 1978 */ {I_VCMPNLEPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1494, 179},
-    /* 1979 */ {I_VCMPNLEPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1503, 179},
-    /* 1980 */ {I_VCMPORD_QPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1512, 179},
-    /* 1981 */ {I_VCMPORD_QPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1521, 179},
-    /* 1982 */ {I_VCMPORD_QPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1530, 179},
-    /* 1983 */ {I_VCMPORD_QPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1539, 179},
-    /* 1984 */ {I_VCMPORDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1512, 179},
-    /* 1985 */ {I_VCMPORDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1521, 179},
-    /* 1986 */ {I_VCMPORDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1530, 179},
-    /* 1987 */ {I_VCMPORDPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1539, 179},
-    /* 1988 */ {I_VCMPEQ_UQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1548, 179},
-    /* 1989 */ {I_VCMPEQ_UQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1557, 179},
-    /* 1990 */ {I_VCMPEQ_UQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1566, 179},
-    /* 1991 */ {I_VCMPEQ_UQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1575, 179},
-    /* 1992 */ {I_VCMPNGE_USPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1584, 179},
-    /* 1993 */ {I_VCMPNGE_USPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1593, 179},
-    /* 1994 */ {I_VCMPNGE_USPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1602, 179},
-    /* 1995 */ {I_VCMPNGE_USPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1611, 179},
-    /* 1996 */ {I_VCMPNGEPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1584, 179},
-    /* 1997 */ {I_VCMPNGEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1593, 179},
-    /* 1998 */ {I_VCMPNGEPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1602, 179},
-    /* 1999 */ {I_VCMPNGEPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1611, 179},
-    /* 2000 */ {I_VCMPNGT_USPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1620, 179},
-    /* 2001 */ {I_VCMPNGT_USPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1629, 179},
-    /* 2002 */ {I_VCMPNGT_USPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1638, 179},
-    /* 2003 */ {I_VCMPNGT_USPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1647, 179},
-    /* 2004 */ {I_VCMPNGTPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1620, 179},
-    /* 2005 */ {I_VCMPNGTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1629, 179},
-    /* 2006 */ {I_VCMPNGTPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1638, 179},
-    /* 2007 */ {I_VCMPNGTPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1647, 179},
-    /* 2008 */ {I_VCMPFALSE_OQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1656, 179},
-    /* 2009 */ {I_VCMPFALSE_OQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1665, 179},
-    /* 2010 */ {I_VCMPFALSE_OQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1674, 179},
-    /* 2011 */ {I_VCMPFALSE_OQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1683, 179},
-    /* 2012 */ {I_VCMPFALSEPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1656, 179},
-    /* 2013 */ {I_VCMPFALSEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1665, 179},
-    /* 2014 */ {I_VCMPFALSEPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1674, 179},
-    /* 2015 */ {I_VCMPFALSEPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1683, 179},
-    /* 2016 */ {I_VCMPNEQ_OQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1692, 179},
-    /* 2017 */ {I_VCMPNEQ_OQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1701, 179},
-    /* 2018 */ {I_VCMPNEQ_OQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1710, 179},
-    /* 2019 */ {I_VCMPNEQ_OQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1719, 179},
-    /* 2020 */ {I_VCMPGE_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1728, 179},
-    /* 2021 */ {I_VCMPGE_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1737, 179},
-    /* 2022 */ {I_VCMPGE_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1746, 179},
-    /* 2023 */ {I_VCMPGE_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1755, 179},
-    /* 2024 */ {I_VCMPGEPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1728, 179},
-    /* 2025 */ {I_VCMPGEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1737, 179},
-    /* 2026 */ {I_VCMPGEPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1746, 179},
-    /* 2027 */ {I_VCMPGEPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1755, 179},
-    /* 2028 */ {I_VCMPGT_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1764, 179},
-    /* 2029 */ {I_VCMPGT_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1773, 179},
-    /* 2030 */ {I_VCMPGT_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1782, 179},
-    /* 2031 */ {I_VCMPGT_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1791, 179},
-    /* 2032 */ {I_VCMPGTPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1764, 179},
-    /* 2033 */ {I_VCMPGTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1773, 179},
-    /* 2034 */ {I_VCMPGTPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1782, 179},
-    /* 2035 */ {I_VCMPGTPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1791, 179},
-    /* 2036 */ {I_VCMPTRUE_UQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1800, 179},
-    /* 2037 */ {I_VCMPTRUE_UQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1809, 179},
-    /* 2038 */ {I_VCMPTRUE_UQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1818, 179},
-    /* 2039 */ {I_VCMPTRUE_UQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1827, 179},
-    /* 2040 */ {I_VCMPTRUEPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1800, 179},
-    /* 2041 */ {I_VCMPTRUEPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1809, 179},
-    /* 2042 */ {I_VCMPTRUEPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1818, 179},
-    /* 2043 */ {I_VCMPTRUEPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1827, 179},
-    /* 2044 */ {I_VCMPEQ_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1224, 179},
-    /* 2045 */ {I_VCMPEQ_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1233, 179},
-    /* 2046 */ {I_VCMPEQ_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1242, 179},
-    /* 2047 */ {I_VCMPEQ_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1251, 179},
-    /* 2048 */ {I_VCMPLT_OQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1836, 179},
-    /* 2049 */ {I_VCMPLT_OQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1845, 179},
-    /* 2050 */ {I_VCMPLT_OQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1854, 179},
-    /* 2051 */ {I_VCMPLT_OQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1863, 179},
-    /* 2052 */ {I_VCMPLE_OQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1872, 179},
-    /* 2053 */ {I_VCMPLE_OQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1881, 179},
-    /* 2054 */ {I_VCMPLE_OQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1890, 179},
-    /* 2055 */ {I_VCMPLE_OQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1899, 179},
-    /* 2056 */ {I_VCMPUNORD_SPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1908, 179},
-    /* 2057 */ {I_VCMPUNORD_SPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1917, 179},
-    /* 2058 */ {I_VCMPUNORD_SPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1926, 179},
-    /* 2059 */ {I_VCMPUNORD_SPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1935, 179},
-    /* 2060 */ {I_VCMPNEQ_USPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1944, 179},
-    /* 2061 */ {I_VCMPNEQ_USPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1953, 179},
-    /* 2062 */ {I_VCMPNEQ_USPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1962, 179},
-    /* 2063 */ {I_VCMPNEQ_USPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+1971, 179},
-    /* 2064 */ {I_VCMPNLT_UQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+1980, 179},
-    /* 2065 */ {I_VCMPNLT_UQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+1989, 179},
-    /* 2066 */ {I_VCMPNLT_UQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+1998, 179},
-    /* 2067 */ {I_VCMPNLT_UQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2007, 179},
-    /* 2068 */ {I_VCMPNLE_UQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2016, 179},
-    /* 2069 */ {I_VCMPNLE_UQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2025, 179},
-    /* 2070 */ {I_VCMPNLE_UQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2034, 179},
-    /* 2071 */ {I_VCMPNLE_UQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2043, 179},
-    /* 2072 */ {I_VCMPORD_SPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2052, 179},
-    /* 2073 */ {I_VCMPORD_SPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2061, 179},
-    /* 2074 */ {I_VCMPORD_SPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2070, 179},
-    /* 2075 */ {I_VCMPORD_SPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2079, 179},
-    /* 2076 */ {I_VCMPEQ_USPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2088, 179},
-    /* 2077 */ {I_VCMPEQ_USPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2097, 179},
-    /* 2078 */ {I_VCMPEQ_USPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2106, 179},
-    /* 2079 */ {I_VCMPEQ_USPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2115, 179},
-    /* 2080 */ {I_VCMPNGE_UQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2124, 179},
-    /* 2081 */ {I_VCMPNGE_UQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2133, 179},
-    /* 2082 */ {I_VCMPNGE_UQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2142, 179},
-    /* 2083 */ {I_VCMPNGE_UQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2151, 179},
-    /* 2084 */ {I_VCMPNGT_UQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2160, 179},
-    /* 2085 */ {I_VCMPNGT_UQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2169, 179},
-    /* 2086 */ {I_VCMPNGT_UQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2178, 179},
-    /* 2087 */ {I_VCMPNGT_UQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2187, 179},
-    /* 2088 */ {I_VCMPFALSE_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2196, 179},
-    /* 2089 */ {I_VCMPFALSE_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2205, 179},
-    /* 2090 */ {I_VCMPFALSE_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2214, 179},
-    /* 2091 */ {I_VCMPFALSE_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2223, 179},
-    /* 2092 */ {I_VCMPNEQ_OSPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2232, 179},
-    /* 2093 */ {I_VCMPNEQ_OSPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2241, 179},
-    /* 2094 */ {I_VCMPNEQ_OSPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2250, 179},
-    /* 2095 */ {I_VCMPNEQ_OSPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2259, 179},
-    /* 2096 */ {I_VCMPGE_OQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2268, 179},
-    /* 2097 */ {I_VCMPGE_OQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2277, 179},
-    /* 2098 */ {I_VCMPGE_OQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2286, 179},
-    /* 2099 */ {I_VCMPGE_OQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2295, 179},
-    /* 2100 */ {I_VCMPGT_OQPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2304, 179},
-    /* 2101 */ {I_VCMPGT_OQPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2313, 179},
-    /* 2102 */ {I_VCMPGT_OQPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2322, 179},
-    /* 2103 */ {I_VCMPGT_OQPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2331, 179},
-    /* 2104 */ {I_VCMPTRUE_USPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+2340, 179},
-    /* 2105 */ {I_VCMPTRUE_USPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+2349, 179},
-    /* 2106 */ {I_VCMPTRUE_USPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+2358, 179},
-    /* 2107 */ {I_VCMPTRUE_USPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+2367, 179},
-    /* 2108 */ {I_VCMPPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8186, 179},
-    /* 2109 */ {I_VCMPPS, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8194, 179},
-    /* 2110 */ {I_VCMPPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8202, 179},
-    /* 2111 */ {I_VCMPPS, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8210, 179},
-    /* 2112 */ {I_VCMPEQ_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2376, 179},
-    /* 2113 */ {I_VCMPEQ_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2385, 179},
-    /* 2114 */ {I_VCMPEQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2394, 179},
-    /* 2115 */ {I_VCMPEQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2403, 179},
-    /* 2116 */ {I_VCMPLT_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2412, 179},
-    /* 2117 */ {I_VCMPLT_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2421, 179},
-    /* 2118 */ {I_VCMPLTSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2412, 179},
-    /* 2119 */ {I_VCMPLTSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2421, 179},
-    /* 2120 */ {I_VCMPLE_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2430, 179},
-    /* 2121 */ {I_VCMPLE_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2439, 179},
-    /* 2122 */ {I_VCMPLESD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2430, 179},
-    /* 2123 */ {I_VCMPLESD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2439, 179},
-    /* 2124 */ {I_VCMPUNORD_QSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2448, 179},
-    /* 2125 */ {I_VCMPUNORD_QSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2457, 179},
-    /* 2126 */ {I_VCMPUNORDSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2448, 179},
-    /* 2127 */ {I_VCMPUNORDSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2457, 179},
-    /* 2128 */ {I_VCMPNEQ_UQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2466, 179},
-    /* 2129 */ {I_VCMPNEQ_UQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2475, 179},
-    /* 2130 */ {I_VCMPNEQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2466, 179},
-    /* 2131 */ {I_VCMPNEQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2475, 179},
-    /* 2132 */ {I_VCMPNLT_USSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2484, 179},
-    /* 2133 */ {I_VCMPNLT_USSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2493, 179},
-    /* 2134 */ {I_VCMPNLTSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2484, 179},
-    /* 2135 */ {I_VCMPNLTSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2493, 179},
-    /* 2136 */ {I_VCMPNLE_USSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2502, 179},
-    /* 2137 */ {I_VCMPNLE_USSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2511, 179},
-    /* 2138 */ {I_VCMPNLESD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2502, 179},
-    /* 2139 */ {I_VCMPNLESD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2511, 179},
-    /* 2140 */ {I_VCMPORD_QSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2520, 179},
-    /* 2141 */ {I_VCMPORD_QSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2529, 179},
-    /* 2142 */ {I_VCMPORDSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2520, 179},
-    /* 2143 */ {I_VCMPORDSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2529, 179},
-    /* 2144 */ {I_VCMPEQ_UQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2538, 179},
-    /* 2145 */ {I_VCMPEQ_UQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2547, 179},
-    /* 2146 */ {I_VCMPNGE_USSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2556, 179},
-    /* 2147 */ {I_VCMPNGE_USSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2565, 179},
-    /* 2148 */ {I_VCMPNGESD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2556, 179},
-    /* 2149 */ {I_VCMPNGESD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2565, 179},
-    /* 2150 */ {I_VCMPNGT_USSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2574, 179},
-    /* 2151 */ {I_VCMPNGT_USSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2583, 179},
-    /* 2152 */ {I_VCMPNGTSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2574, 179},
-    /* 2153 */ {I_VCMPNGTSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2583, 179},
-    /* 2154 */ {I_VCMPFALSE_OQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2592, 179},
-    /* 2155 */ {I_VCMPFALSE_OQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2601, 179},
-    /* 2156 */ {I_VCMPFALSESD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2592, 179},
-    /* 2157 */ {I_VCMPFALSESD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2601, 179},
-    /* 2158 */ {I_VCMPNEQ_OQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2610, 179},
-    /* 2159 */ {I_VCMPNEQ_OQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2619, 179},
-    /* 2160 */ {I_VCMPGE_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2628, 179},
-    /* 2161 */ {I_VCMPGE_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2637, 179},
-    /* 2162 */ {I_VCMPGESD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2628, 179},
-    /* 2163 */ {I_VCMPGESD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2637, 179},
-    /* 2164 */ {I_VCMPGT_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2646, 179},
-    /* 2165 */ {I_VCMPGT_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2655, 179},
-    /* 2166 */ {I_VCMPGTSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2646, 179},
-    /* 2167 */ {I_VCMPGTSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2655, 179},
-    /* 2168 */ {I_VCMPTRUE_UQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2664, 179},
-    /* 2169 */ {I_VCMPTRUE_UQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2673, 179},
-    /* 2170 */ {I_VCMPTRUESD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2664, 179},
-    /* 2171 */ {I_VCMPTRUESD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2673, 179},
-    /* 2172 */ {I_VCMPEQ_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2376, 179},
-    /* 2173 */ {I_VCMPEQ_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2385, 179},
-    /* 2174 */ {I_VCMPLT_OQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2682, 179},
-    /* 2175 */ {I_VCMPLT_OQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2691, 179},
-    /* 2176 */ {I_VCMPLE_OQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2700, 179},
-    /* 2177 */ {I_VCMPLE_OQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2709, 179},
-    /* 2178 */ {I_VCMPUNORD_SSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2718, 179},
-    /* 2179 */ {I_VCMPUNORD_SSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2727, 179},
-    /* 2180 */ {I_VCMPNEQ_USSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2736, 179},
-    /* 2181 */ {I_VCMPNEQ_USSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2745, 179},
-    /* 2182 */ {I_VCMPNLT_UQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2754, 179},
-    /* 2183 */ {I_VCMPNLT_UQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2763, 179},
-    /* 2184 */ {I_VCMPNLE_UQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2772, 179},
-    /* 2185 */ {I_VCMPNLE_UQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2781, 179},
-    /* 2186 */ {I_VCMPORD_SSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2790, 179},
-    /* 2187 */ {I_VCMPORD_SSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2799, 179},
-    /* 2188 */ {I_VCMPEQ_USSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2808, 179},
-    /* 2189 */ {I_VCMPEQ_USSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2817, 179},
-    /* 2190 */ {I_VCMPNGE_UQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2826, 179},
-    /* 2191 */ {I_VCMPNGE_UQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2835, 179},
-    /* 2192 */ {I_VCMPNGT_UQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2844, 179},
-    /* 2193 */ {I_VCMPNGT_UQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2853, 179},
-    /* 2194 */ {I_VCMPFALSE_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2862, 179},
-    /* 2195 */ {I_VCMPFALSE_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2871, 179},
-    /* 2196 */ {I_VCMPNEQ_OSSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2880, 179},
-    /* 2197 */ {I_VCMPNEQ_OSSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2889, 179},
-    /* 2198 */ {I_VCMPGE_OQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2898, 179},
-    /* 2199 */ {I_VCMPGE_OQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2907, 179},
-    /* 2200 */ {I_VCMPGT_OQSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2916, 179},
-    /* 2201 */ {I_VCMPGT_OQSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2925, 179},
-    /* 2202 */ {I_VCMPTRUE_USSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2934, 179},
-    /* 2203 */ {I_VCMPTRUE_USSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2943, 179},
-    /* 2204 */ {I_VCMPSD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8218, 179},
-    /* 2205 */ {I_VCMPSD, 3, {XMM_L16,RM_XMM_L16|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8226, 179},
-    /* 2206 */ {I_VCMPEQ_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2952, 179},
-    /* 2207 */ {I_VCMPEQ_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2961, 179},
-    /* 2208 */ {I_VCMPEQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2970, 179},
-    /* 2209 */ {I_VCMPEQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2979, 179},
-    /* 2210 */ {I_VCMPLT_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2988, 179},
-    /* 2211 */ {I_VCMPLT_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2997, 179},
-    /* 2212 */ {I_VCMPLTSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2988, 179},
-    /* 2213 */ {I_VCMPLTSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2997, 179},
-    /* 2214 */ {I_VCMPLE_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3006, 179},
-    /* 2215 */ {I_VCMPLE_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3015, 179},
-    /* 2216 */ {I_VCMPLESS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3006, 179},
-    /* 2217 */ {I_VCMPLESS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3015, 179},
-    /* 2218 */ {I_VCMPUNORD_QSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3024, 179},
-    /* 2219 */ {I_VCMPUNORD_QSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3033, 179},
-    /* 2220 */ {I_VCMPUNORDSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3024, 179},
-    /* 2221 */ {I_VCMPUNORDSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3033, 179},
-    /* 2222 */ {I_VCMPNEQ_UQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3042, 179},
-    /* 2223 */ {I_VCMPNEQ_UQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3051, 179},
-    /* 2224 */ {I_VCMPNEQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3042, 179},
-    /* 2225 */ {I_VCMPNEQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3051, 179},
-    /* 2226 */ {I_VCMPNLT_USSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3060, 179},
-    /* 2227 */ {I_VCMPNLT_USSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3069, 179},
-    /* 2228 */ {I_VCMPNLTSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3060, 179},
-    /* 2229 */ {I_VCMPNLTSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3069, 179},
-    /* 2230 */ {I_VCMPNLE_USSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3078, 179},
-    /* 2231 */ {I_VCMPNLE_USSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3087, 179},
-    /* 2232 */ {I_VCMPNLESS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3078, 179},
-    /* 2233 */ {I_VCMPNLESS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3087, 179},
-    /* 2234 */ {I_VCMPORD_QSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3096, 179},
-    /* 2235 */ {I_VCMPORD_QSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3105, 179},
-    /* 2236 */ {I_VCMPORDSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3096, 179},
-    /* 2237 */ {I_VCMPORDSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3105, 179},
-    /* 2238 */ {I_VCMPEQ_UQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3114, 179},
-    /* 2239 */ {I_VCMPEQ_UQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3123, 179},
-    /* 2240 */ {I_VCMPNGE_USSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3132, 179},
-    /* 2241 */ {I_VCMPNGE_USSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3141, 179},
-    /* 2242 */ {I_VCMPNGESS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3132, 179},
-    /* 2243 */ {I_VCMPNGESS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3141, 179},
-    /* 2244 */ {I_VCMPNGT_USSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3150, 179},
-    /* 2245 */ {I_VCMPNGT_USSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3159, 179},
-    /* 2246 */ {I_VCMPNGTSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3150, 179},
-    /* 2247 */ {I_VCMPNGTSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3159, 179},
-    /* 2248 */ {I_VCMPFALSE_OQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3168, 179},
-    /* 2249 */ {I_VCMPFALSE_OQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3177, 179},
-    /* 2250 */ {I_VCMPFALSESS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3168, 179},
-    /* 2251 */ {I_VCMPFALSESS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3177, 179},
-    /* 2252 */ {I_VCMPNEQ_OQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3186, 179},
-    /* 2253 */ {I_VCMPNEQ_OQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3195, 179},
-    /* 2254 */ {I_VCMPGE_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3204, 179},
-    /* 2255 */ {I_VCMPGE_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3213, 179},
-    /* 2256 */ {I_VCMPGESS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3204, 179},
-    /* 2257 */ {I_VCMPGESS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3213, 179},
-    /* 2258 */ {I_VCMPGT_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3222, 179},
-    /* 2259 */ {I_VCMPGT_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3231, 179},
-    /* 2260 */ {I_VCMPGTSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3222, 179},
-    /* 2261 */ {I_VCMPGTSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3231, 179},
-    /* 2262 */ {I_VCMPTRUE_UQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3240, 179},
-    /* 2263 */ {I_VCMPTRUE_UQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3249, 179},
-    /* 2264 */ {I_VCMPTRUESS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3240, 179},
-    /* 2265 */ {I_VCMPTRUESS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3249, 179},
-    /* 2266 */ {I_VCMPEQ_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+2952, 179},
-    /* 2267 */ {I_VCMPEQ_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+2961, 179},
-    /* 2268 */ {I_VCMPLT_OQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3258, 179},
-    /* 2269 */ {I_VCMPLT_OQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3267, 179},
-    /* 2270 */ {I_VCMPLE_OQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3276, 179},
-    /* 2271 */ {I_VCMPLE_OQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3285, 179},
-    /* 2272 */ {I_VCMPUNORD_SSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3294, 179},
-    /* 2273 */ {I_VCMPUNORD_SSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3303, 179},
-    /* 2274 */ {I_VCMPNEQ_USSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3312, 179},
-    /* 2275 */ {I_VCMPNEQ_USSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3321, 179},
-    /* 2276 */ {I_VCMPNLT_UQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3330, 179},
-    /* 2277 */ {I_VCMPNLT_UQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3339, 179},
-    /* 2278 */ {I_VCMPNLE_UQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3348, 179},
-    /* 2279 */ {I_VCMPNLE_UQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3357, 179},
-    /* 2280 */ {I_VCMPORD_SSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3366, 179},
-    /* 2281 */ {I_VCMPORD_SSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3375, 179},
-    /* 2282 */ {I_VCMPEQ_USSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3384, 179},
-    /* 2283 */ {I_VCMPEQ_USSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3393, 179},
-    /* 2284 */ {I_VCMPNGE_UQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3402, 179},
-    /* 2285 */ {I_VCMPNGE_UQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3411, 179},
-    /* 2286 */ {I_VCMPNGT_UQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3420, 179},
-    /* 2287 */ {I_VCMPNGT_UQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3429, 179},
-    /* 2288 */ {I_VCMPFALSE_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3438, 179},
-    /* 2289 */ {I_VCMPFALSE_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3447, 179},
-    /* 2290 */ {I_VCMPNEQ_OSSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3456, 179},
-    /* 2291 */ {I_VCMPNEQ_OSSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3465, 179},
-    /* 2292 */ {I_VCMPGE_OQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3474, 179},
-    /* 2293 */ {I_VCMPGE_OQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3483, 179},
-    /* 2294 */ {I_VCMPGT_OQSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3492, 179},
-    /* 2295 */ {I_VCMPGT_OQSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3501, 179},
-    /* 2296 */ {I_VCMPTRUE_USSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+3510, 179},
-    /* 2297 */ {I_VCMPTRUE_USSS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+3519, 179},
-    /* 2298 */ {I_VCMPSS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8234, 179},
-    /* 2299 */ {I_VCMPSS, 3, {XMM_L16,RM_XMM_L16|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8242, 179},
-    /* 2300 */ {I_VCOMISD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26146, 179},
-    /* 2301 */ {I_VCOMISS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26153, 179},
-    /* 2302 */ {I_VCVTDQ2PD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26160, 179},
-    /* 2303 */ {I_VCVTDQ2PD, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26167, 179},
-    /* 2304 */ {I_VCVTDQ2PS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26174, 179},
-    /* 2305 */ {I_VCVTDQ2PS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26181, 179},
-    /* 2306 */ {I_VCVTPD2DQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26188, 179},
-    /* 2307 */ {I_VCVTPD2DQ, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26188, 180},
-    /* 2308 */ {I_VCVTPD2DQ, 2, {XMM_L16,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26195, 179},
-    /* 2309 */ {I_VCVTPD2DQ, 2, {XMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26195, 181},
-    /* 2310 */ {I_VCVTPD2PS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26202, 179},
-    /* 2311 */ {I_VCVTPD2PS, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26202, 180},
-    /* 2312 */ {I_VCVTPD2PS, 2, {XMM_L16,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26209, 179},
-    /* 2313 */ {I_VCVTPD2PS, 2, {XMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26209, 181},
-    /* 2314 */ {I_VCVTPS2DQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26216, 179},
-    /* 2315 */ {I_VCVTPS2DQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26223, 179},
-    /* 2316 */ {I_VCVTPS2PD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26230, 179},
-    /* 2317 */ {I_VCVTPS2PD, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26237, 179},
-    /* 2318 */ {I_VCVTSD2SI, 2, {REG_GPR|BITS32,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26244, 179},
-    /* 2319 */ {I_VCVTSD2SI, 2, {REG_GPR|BITS64,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26251, 182},
-    /* 2320 */ {I_VCVTSD2SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+26258, 179},
-    /* 2321 */ {I_VCVTSD2SS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26265, 179},
-    /* 2322 */ {I_VCVTSI2SD, 3, {XMM_L16,XMM_L16,RM_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+26272, 183},
-    /* 2323 */ {I_VCVTSI2SD, 2, {XMM_L16,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26279, 183},
-    /* 2324 */ {I_VCVTSI2SD, 3, {XMM_L16,XMM_L16,RM_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+26286, 184},
-    /* 2325 */ {I_VCVTSI2SD, 2, {XMM_L16,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26293, 184},
-    /* 2326 */ {I_VCVTSI2SS, 3, {XMM_L16,XMM_L16,RM_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+26300, 183},
-    /* 2327 */ {I_VCVTSI2SS, 2, {XMM_L16,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26307, 183},
-    /* 2328 */ {I_VCVTSI2SS, 3, {XMM_L16,XMM_L16,RM_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+26314, 184},
-    /* 2329 */ {I_VCVTSI2SS, 2, {XMM_L16,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26321, 184},
-    /* 2330 */ {I_VCVTSS2SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+26328, 179},
-    /* 2331 */ {I_VCVTSS2SD, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26335, 179},
-    /* 2332 */ {I_VCVTSS2SI, 2, {REG_GPR|BITS32,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26342, 179},
-    /* 2333 */ {I_VCVTSS2SI, 2, {REG_GPR|BITS64,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26349, 182},
-    /* 2334 */ {I_VCVTTPD2DQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26356, 179},
-    /* 2335 */ {I_VCVTTPD2DQ, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26356, 180},
-    /* 2336 */ {I_VCVTTPD2DQ, 2, {XMM_L16,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26363, 179},
-    /* 2337 */ {I_VCVTTPD2DQ, 2, {XMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26363, 181},
-    /* 2338 */ {I_VCVTTPS2DQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26370, 179},
-    /* 2339 */ {I_VCVTTPS2DQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26377, 179},
-    /* 2340 */ {I_VCVTTSD2SI, 2, {REG_GPR|BITS32,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26384, 179},
-    /* 2341 */ {I_VCVTTSD2SI, 2, {REG_GPR|BITS64,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26391, 182},
-    /* 2342 */ {I_VCVTTSS2SI, 2, {REG_GPR|BITS32,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26398, 179},
-    /* 2343 */ {I_VCVTTSS2SI, 2, {REG_GPR|BITS64,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26405, 182},
-    /* 2344 */ {I_VDIVPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26412, 179},
-    /* 2345 */ {I_VDIVPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26419, 179},
-    /* 2346 */ {I_VDIVPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26426, 179},
-    /* 2347 */ {I_VDIVPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26433, 179},
-    /* 2348 */ {I_VDIVPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26440, 179},
-    /* 2349 */ {I_VDIVPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26447, 179},
-    /* 2350 */ {I_VDIVPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26454, 179},
-    /* 2351 */ {I_VDIVPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26461, 179},
-    /* 2352 */ {I_VDIVSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+26468, 179},
-    /* 2353 */ {I_VDIVSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26475, 179},
-    /* 2354 */ {I_VDIVSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+26482, 179},
-    /* 2355 */ {I_VDIVSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26489, 179},
-    /* 2356 */ {I_VDPPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8250, 179},
-    /* 2357 */ {I_VDPPD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8258, 179},
-    /* 2358 */ {I_VDPPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8266, 179},
-    /* 2359 */ {I_VDPPS, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8274, 179},
-    /* 2360 */ {I_VDPPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8282, 179},
-    /* 2361 */ {I_VDPPS, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8290, 179},
-    /* 2362 */ {I_VEXTRACTF128, 3, {RM_XMM_L16|BITS128,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8298, 179},
-    /* 2363 */ {I_VEXTRACTPS, 3, {RM_GPR|BITS32,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8306, 179},
-    /* 2364 */ {I_VHADDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26496, 179},
-    /* 2365 */ {I_VHADDPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26503, 179},
-    /* 2366 */ {I_VHADDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26510, 179},
-    /* 2367 */ {I_VHADDPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26517, 179},
-    /* 2368 */ {I_VHADDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26524, 179},
-    /* 2369 */ {I_VHADDPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26531, 179},
-    /* 2370 */ {I_VHADDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26538, 179},
-    /* 2371 */ {I_VHADDPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26545, 179},
-    /* 2372 */ {I_VHSUBPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26552, 179},
-    /* 2373 */ {I_VHSUBPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26559, 179},
-    /* 2374 */ {I_VHSUBPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26566, 179},
-    /* 2375 */ {I_VHSUBPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26573, 179},
-    /* 2376 */ {I_VHSUBPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26580, 179},
-    /* 2377 */ {I_VHSUBPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26587, 179},
-    /* 2378 */ {I_VHSUBPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26594, 179},
-    /* 2379 */ {I_VHSUBPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26601, 179},
-    /* 2380 */ {I_VINSERTF128, 4, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8314, 179},
-    /* 2381 */ {I_VINSERTF128, 3, {YMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8322, 179},
-    /* 2382 */ {I_VINSERTPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8330, 179},
-    /* 2383 */ {I_VINSERTPS, 3, {XMM_L16,RM_XMM_L16|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8338, 179},
-    /* 2384 */ {I_VLDDQU, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26608, 179},
-    /* 2385 */ {I_VLDQQU, 2, {YMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26615, 179},
-    /* 2386 */ {I_VLDDQU, 2, {YMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26615, 179},
-    /* 2387 */ {I_VLDMXCSR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+26622, 179},
-    /* 2388 */ {I_VMASKMOVDQU, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26629, 179},
-    /* 2389 */ {I_VMASKMOVPS, 3, {XMM_L16,XMM_L16,MEMORY|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26636, 179},
-    /* 2390 */ {I_VMASKMOVPS, 3, {YMM_L16,YMM_L16,MEMORY|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26643, 179},
-    /* 2391 */ {I_VMASKMOVPS, 3, {MEMORY|BITS128,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+26650, 180},
-    /* 2392 */ {I_VMASKMOVPS, 3, {MEMORY|BITS256,YMM_L16,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+26657, 181},
-    /* 2393 */ {I_VMASKMOVPD, 3, {XMM_L16,XMM_L16,MEMORY|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26664, 179},
-    /* 2394 */ {I_VMASKMOVPD, 3, {YMM_L16,YMM_L16,MEMORY|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26671, 179},
-    /* 2395 */ {I_VMASKMOVPD, 3, {MEMORY|BITS128,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+26678, 179},
-    /* 2396 */ {I_VMASKMOVPD, 3, {MEMORY|BITS256,YMM_L16,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+26685, 179},
-    /* 2397 */ {I_VMAXPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26692, 179},
-    /* 2398 */ {I_VMAXPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26699, 179},
-    /* 2399 */ {I_VMAXPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26706, 179},
-    /* 2400 */ {I_VMAXPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26713, 179},
-    /* 2401 */ {I_VMAXPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26720, 179},
-    /* 2402 */ {I_VMAXPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26727, 179},
-    /* 2403 */ {I_VMAXPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26734, 179},
-    /* 2404 */ {I_VMAXPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26741, 179},
-    /* 2405 */ {I_VMAXSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+26748, 179},
-    /* 2406 */ {I_VMAXSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26755, 179},
-    /* 2407 */ {I_VMAXSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+26762, 179},
-    /* 2408 */ {I_VMAXSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26769, 179},
-    /* 2409 */ {I_VMINPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26776, 179},
-    /* 2410 */ {I_VMINPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26783, 179},
-    /* 2411 */ {I_VMINPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26790, 179},
-    /* 2412 */ {I_VMINPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26797, 179},
-    /* 2413 */ {I_VMINPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+26804, 179},
-    /* 2414 */ {I_VMINPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26811, 179},
-    /* 2415 */ {I_VMINPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+26818, 179},
-    /* 2416 */ {I_VMINPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26825, 179},
-    /* 2417 */ {I_VMINSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+26832, 179},
-    /* 2418 */ {I_VMINSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26839, 179},
-    /* 2419 */ {I_VMINSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+26846, 179},
-    /* 2420 */ {I_VMINSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26853, 179},
-    /* 2421 */ {I_VMOVAPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26860, 179},
-    /* 2422 */ {I_VMOVAPD, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26867, 179},
-    /* 2423 */ {I_VMOVAPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26874, 179},
-    /* 2424 */ {I_VMOVAPD, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26881, 179},
-    /* 2425 */ {I_VMOVAPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26888, 179},
-    /* 2426 */ {I_VMOVAPS, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26895, 179},
-    /* 2427 */ {I_VMOVAPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26902, 179},
-    /* 2428 */ {I_VMOVAPS, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26909, 179},
-    /* 2429 */ {I_VMOVD, 2, {XMM_L16,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+26916, 179},
-    /* 2430 */ {I_VMOVD, 2, {RM_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26923, 179},
-    /* 2431 */ {I_VMOVQ, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26930, 185},
-    /* 2432 */ {I_VMOVQ, 2, {RM_XMM_L16|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26937, 185},
-    /* 2433 */ {I_VMOVQ, 2, {XMM_L16,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26944, 184},
-    /* 2434 */ {I_VMOVQ, 2, {RM_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26951, 184},
-    /* 2435 */ {I_VMOVDDUP, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+26958, 179},
-    /* 2436 */ {I_VMOVDDUP, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26965, 179},
-    /* 2437 */ {I_VMOVDQA, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+26972, 179},
-    /* 2438 */ {I_VMOVDQA, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26979, 179},
-    /* 2439 */ {I_VMOVQQA, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26986, 179},
-    /* 2440 */ {I_VMOVQQA, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26993, 179},
-    /* 2441 */ {I_VMOVDQA, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+26986, 179},
-    /* 2442 */ {I_VMOVDQA, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26993, 179},
-    /* 2443 */ {I_VMOVDQU, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27000, 179},
-    /* 2444 */ {I_VMOVDQU, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27007, 179},
-    /* 2445 */ {I_VMOVQQU, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27014, 179},
-    /* 2446 */ {I_VMOVQQU, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27021, 179},
-    /* 2447 */ {I_VMOVDQU, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27014, 179},
-    /* 2448 */ {I_VMOVDQU, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27021, 179},
-    /* 2449 */ {I_VMOVHLPS, 3, {XMM_L16,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+27028, 179},
-    /* 2450 */ {I_VMOVHLPS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27035, 179},
-    /* 2451 */ {I_VMOVHPD, 3, {XMM_L16,XMM_L16,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+27042, 179},
-    /* 2452 */ {I_VMOVHPD, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+27049, 179},
-    /* 2453 */ {I_VMOVHPD, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27056, 179},
-    /* 2454 */ {I_VMOVHPS, 3, {XMM_L16,XMM_L16,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+27063, 179},
-    /* 2455 */ {I_VMOVHPS, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+27070, 179},
-    /* 2456 */ {I_VMOVHPS, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27077, 179},
-    /* 2457 */ {I_VMOVLHPS, 3, {XMM_L16,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+27063, 179},
-    /* 2458 */ {I_VMOVLHPS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27070, 179},
-    /* 2459 */ {I_VMOVLPD, 3, {XMM_L16,XMM_L16,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+27084, 179},
-    /* 2460 */ {I_VMOVLPD, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+27091, 179},
-    /* 2461 */ {I_VMOVLPD, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27098, 179},
-    /* 2462 */ {I_VMOVLPS, 3, {XMM_L16,XMM_L16,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+27028, 179},
-    /* 2463 */ {I_VMOVLPS, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+27035, 179},
-    /* 2464 */ {I_VMOVLPS, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27105, 179},
-    /* 2465 */ {I_VMOVMSKPD, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27112, 182},
-    /* 2466 */ {I_VMOVMSKPD, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27112, 179},
-    /* 2467 */ {I_VMOVMSKPD, 2, {REG_GPR|BITS64,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27119, 182},
-    /* 2468 */ {I_VMOVMSKPD, 2, {REG_GPR|BITS32,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27119, 179},
-    /* 2469 */ {I_VMOVMSKPS, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27126, 182},
-    /* 2470 */ {I_VMOVMSKPS, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27126, 179},
-    /* 2471 */ {I_VMOVMSKPS, 2, {REG_GPR|BITS64,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27133, 182},
-    /* 2472 */ {I_VMOVMSKPS, 2, {REG_GPR|BITS32,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27133, 179},
-    /* 2473 */ {I_VMOVNTDQ, 2, {MEMORY|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27140, 179},
-    /* 2474 */ {I_VMOVNTQQ, 2, {MEMORY|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27147, 179},
-    /* 2475 */ {I_VMOVNTDQ, 2, {MEMORY|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27147, 179},
-    /* 2476 */ {I_VMOVNTDQA, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27154, 179},
-    /* 2477 */ {I_VMOVNTPD, 2, {MEMORY|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27161, 179},
-    /* 2478 */ {I_VMOVNTPD, 2, {MEMORY|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27168, 179},
-    /* 2479 */ {I_VMOVNTPS, 2, {MEMORY|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27175, 179},
-    /* 2480 */ {I_VMOVNTPS, 2, {MEMORY|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27182, 179},
-    /* 2481 */ {I_VMOVSD, 3, {XMM_L16,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+27189, 179},
-    /* 2482 */ {I_VMOVSD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27196, 179},
-    /* 2483 */ {I_VMOVSD, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+27203, 179},
-    /* 2484 */ {I_VMOVSD, 3, {XMM_L16,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+27210, 179},
-    /* 2485 */ {I_VMOVSD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27217, 179},
-    /* 2486 */ {I_VMOVSD, 2, {MEMORY|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27224, 179},
-    /* 2487 */ {I_VMOVSHDUP, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27231, 179},
-    /* 2488 */ {I_VMOVSHDUP, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27238, 179},
-    /* 2489 */ {I_VMOVSLDUP, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27245, 179},
-    /* 2490 */ {I_VMOVSLDUP, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27252, 179},
-    /* 2491 */ {I_VMOVSS, 3, {XMM_L16,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+27259, 179},
-    /* 2492 */ {I_VMOVSS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27266, 179},
-    /* 2493 */ {I_VMOVSS, 2, {XMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+27273, 179},
-    /* 2494 */ {I_VMOVSS, 3, {XMM_L16,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+27280, 179},
-    /* 2495 */ {I_VMOVSS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27287, 179},
-    /* 2496 */ {I_VMOVSS, 2, {MEMORY|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27294, 179},
-    /* 2497 */ {I_VMOVUPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27301, 179},
-    /* 2498 */ {I_VMOVUPD, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27308, 179},
-    /* 2499 */ {I_VMOVUPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27315, 179},
-    /* 2500 */ {I_VMOVUPD, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27322, 179},
-    /* 2501 */ {I_VMOVUPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27329, 179},
-    /* 2502 */ {I_VMOVUPS, 2, {RM_XMM_L16|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27336, 179},
-    /* 2503 */ {I_VMOVUPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27343, 179},
-    /* 2504 */ {I_VMOVUPS, 2, {RM_YMM_L16|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+27350, 179},
-    /* 2505 */ {I_VMPSADBW, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8346, 179},
-    /* 2506 */ {I_VMPSADBW, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8354, 179},
-    /* 2507 */ {I_VMULPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27357, 179},
-    /* 2508 */ {I_VMULPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27364, 179},
-    /* 2509 */ {I_VMULPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+27371, 179},
-    /* 2510 */ {I_VMULPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27378, 179},
-    /* 2511 */ {I_VMULPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27385, 179},
-    /* 2512 */ {I_VMULPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27392, 179},
-    /* 2513 */ {I_VMULPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+27399, 179},
-    /* 2514 */ {I_VMULPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27406, 179},
-    /* 2515 */ {I_VMULSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+27413, 179},
-    /* 2516 */ {I_VMULSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+27420, 179},
-    /* 2517 */ {I_VMULSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+27427, 179},
-    /* 2518 */ {I_VMULSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+27434, 179},
-    /* 2519 */ {I_VORPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27441, 179},
-    /* 2520 */ {I_VORPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27448, 179},
-    /* 2521 */ {I_VORPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+27455, 179},
-    /* 2522 */ {I_VORPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27462, 179},
-    /* 2523 */ {I_VORPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27469, 179},
-    /* 2524 */ {I_VORPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27476, 179},
-    /* 2525 */ {I_VORPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+27483, 179},
-    /* 2526 */ {I_VORPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27490, 179},
-    /* 2527 */ {I_VPABSB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27497, 179},
-    /* 2528 */ {I_VPABSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27504, 179},
-    /* 2529 */ {I_VPABSD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27511, 179},
-    /* 2530 */ {I_VPACKSSWB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27518, 179},
-    /* 2531 */ {I_VPACKSSWB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27525, 179},
-    /* 2532 */ {I_VPACKSSDW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27532, 179},
-    /* 2533 */ {I_VPACKSSDW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27539, 179},
-    /* 2534 */ {I_VPACKUSWB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27546, 179},
-    /* 2535 */ {I_VPACKUSWB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27553, 179},
-    /* 2536 */ {I_VPACKUSDW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27560, 179},
-    /* 2537 */ {I_VPACKUSDW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27567, 179},
-    /* 2538 */ {I_VPADDB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27574, 179},
-    /* 2539 */ {I_VPADDB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27581, 179},
-    /* 2540 */ {I_VPADDW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27588, 179},
-    /* 2541 */ {I_VPADDW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27595, 179},
-    /* 2542 */ {I_VPADDD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27602, 179},
-    /* 2543 */ {I_VPADDD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27609, 179},
-    /* 2544 */ {I_VPADDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27616, 179},
-    /* 2545 */ {I_VPADDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27623, 179},
-    /* 2546 */ {I_VPADDSB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27630, 179},
-    /* 2547 */ {I_VPADDSB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27637, 179},
-    /* 2548 */ {I_VPADDSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27644, 179},
-    /* 2549 */ {I_VPADDSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27651, 179},
-    /* 2550 */ {I_VPADDUSB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27658, 179},
-    /* 2551 */ {I_VPADDUSB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27665, 179},
-    /* 2552 */ {I_VPADDUSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27672, 179},
-    /* 2553 */ {I_VPADDUSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27679, 179},
-    /* 2554 */ {I_VPALIGNR, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8362, 179},
-    /* 2555 */ {I_VPALIGNR, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8370, 179},
-    /* 2556 */ {I_VPAND, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27686, 179},
-    /* 2557 */ {I_VPAND, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27693, 179},
-    /* 2558 */ {I_VPANDN, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27700, 179},
-    /* 2559 */ {I_VPANDN, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27707, 179},
-    /* 2560 */ {I_VPAVGB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27714, 179},
-    /* 2561 */ {I_VPAVGB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27721, 179},
-    /* 2562 */ {I_VPAVGW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27728, 179},
-    /* 2563 */ {I_VPAVGW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27735, 179},
-    /* 2564 */ {I_VPBLENDVB, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+8378, 179},
-    /* 2565 */ {I_VPBLENDVB, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+8386, 179},
-    /* 2566 */ {I_VPBLENDW, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8394, 179},
-    /* 2567 */ {I_VPBLENDW, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8402, 179},
-    /* 2568 */ {I_VPCMPESTRI, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8410, 179},
-    /* 2569 */ {I_VPCMPESTRM, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8418, 179},
-    /* 2570 */ {I_VPCMPISTRI, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8426, 179},
-    /* 2571 */ {I_VPCMPISTRM, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8434, 179},
-    /* 2572 */ {I_VPCMPEQB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27742, 179},
-    /* 2573 */ {I_VPCMPEQB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27749, 179},
-    /* 2574 */ {I_VPCMPEQW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27756, 179},
-    /* 2575 */ {I_VPCMPEQW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27763, 179},
-    /* 2576 */ {I_VPCMPEQD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27770, 179},
-    /* 2577 */ {I_VPCMPEQD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27777, 179},
-    /* 2578 */ {I_VPCMPEQQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27784, 179},
-    /* 2579 */ {I_VPCMPEQQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27791, 179},
-    /* 2580 */ {I_VPCMPGTB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27798, 179},
-    /* 2581 */ {I_VPCMPGTB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27805, 179},
-    /* 2582 */ {I_VPCMPGTW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27812, 179},
-    /* 2583 */ {I_VPCMPGTW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27819, 179},
-    /* 2584 */ {I_VPCMPGTD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27826, 179},
-    /* 2585 */ {I_VPCMPGTD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27833, 179},
-    /* 2586 */ {I_VPCMPGTQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27840, 179},
-    /* 2587 */ {I_VPCMPGTQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27847, 179},
-    /* 2588 */ {I_VPERMILPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27854, 179},
-    /* 2589 */ {I_VPERMILPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27861, 179},
-    /* 2590 */ {I_VPERMILPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+27868, 179},
-    /* 2591 */ {I_VPERMILPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27875, 179},
-    /* 2592 */ {I_VPERMILPD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8442, 179},
-    /* 2593 */ {I_VPERMILPD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8450, 179},
-    /* 2594 */ {I_VPERMILPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27882, 179},
-    /* 2595 */ {I_VPERMILPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27889, 179},
-    /* 2596 */ {I_VPERMILPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+27896, 179},
-    /* 2597 */ {I_VPERMILPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+27903, 179},
-    /* 2598 */ {I_VPERMILPS, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8458, 179},
-    /* 2599 */ {I_VPERMILPS, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8466, 179},
-    /* 2600 */ {I_VPERM2F128, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8474, 179},
-    /* 2601 */ {I_VPERM2F128, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8482, 179},
-    /* 2602 */ {I_VPEXTRB, 3, {REG_GPR|BITS64,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8490, 182},
-    /* 2603 */ {I_VPEXTRB, 3, {REG_GPR|BITS32,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8490, 179},
-    /* 2604 */ {I_VPEXTRB, 3, {MEMORY|BITS8,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8490, 179},
-    /* 2605 */ {I_VPEXTRW, 3, {REG_GPR|BITS64,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8498, 182},
-    /* 2606 */ {I_VPEXTRW, 3, {REG_GPR|BITS32,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8498, 179},
-    /* 2607 */ {I_VPEXTRW, 3, {REG_GPR|BITS64,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8506, 182},
-    /* 2608 */ {I_VPEXTRW, 3, {REG_GPR|BITS32,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8506, 179},
-    /* 2609 */ {I_VPEXTRW, 3, {MEMORY|BITS16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8506, 179},
-    /* 2610 */ {I_VPEXTRD, 3, {REG_GPR|BITS64,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8514, 182},
-    /* 2611 */ {I_VPEXTRD, 3, {RM_GPR|BITS32,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8514, 179},
-    /* 2612 */ {I_VPEXTRQ, 3, {RM_GPR|BITS64,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8522, 182},
-    /* 2613 */ {I_VPHADDW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27910, 179},
-    /* 2614 */ {I_VPHADDW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27917, 179},
-    /* 2615 */ {I_VPHADDD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27924, 179},
-    /* 2616 */ {I_VPHADDD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27931, 179},
-    /* 2617 */ {I_VPHADDSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27938, 179},
-    /* 2618 */ {I_VPHADDSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27945, 179},
-    /* 2619 */ {I_VPHMINPOSUW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27952, 179},
-    /* 2620 */ {I_VPHSUBW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27959, 179},
-    /* 2621 */ {I_VPHSUBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27966, 179},
-    /* 2622 */ {I_VPHSUBD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27973, 179},
-    /* 2623 */ {I_VPHSUBD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27980, 179},
-    /* 2624 */ {I_VPHSUBSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+27987, 179},
-    /* 2625 */ {I_VPHSUBSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+27994, 179},
-    /* 2626 */ {I_VPINSRB, 4, {XMM_L16,XMM_L16,MEMORY|BITS8,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8530, 179},
-    /* 2627 */ {I_VPINSRB, 3, {XMM_L16,MEMORY|BITS8,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8538, 179},
-    /* 2628 */ {I_VPINSRB, 4, {XMM_L16,XMM_L16,RM_GPR|BITS8,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8530, 179},
-    /* 2629 */ {I_VPINSRB, 3, {XMM_L16,RM_GPR|BITS8,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8538, 179},
-    /* 2630 */ {I_VPINSRB, 4, {XMM_L16,XMM_L16,REG_GPR|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8530, 179},
-    /* 2631 */ {I_VPINSRB, 3, {XMM_L16,REG_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8538, 179},
-    /* 2632 */ {I_VPINSRW, 4, {XMM_L16,XMM_L16,MEMORY|BITS16,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8546, 179},
-    /* 2633 */ {I_VPINSRW, 3, {XMM_L16,MEMORY|BITS16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8554, 179},
-    /* 2634 */ {I_VPINSRW, 4, {XMM_L16,XMM_L16,RM_GPR|BITS16,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8546, 179},
-    /* 2635 */ {I_VPINSRW, 3, {XMM_L16,RM_GPR|BITS16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8554, 179},
-    /* 2636 */ {I_VPINSRW, 4, {XMM_L16,XMM_L16,REG_GPR|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8546, 179},
-    /* 2637 */ {I_VPINSRW, 3, {XMM_L16,REG_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8554, 179},
-    /* 2638 */ {I_VPINSRD, 4, {XMM_L16,XMM_L16,MEMORY|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8562, 179},
-    /* 2639 */ {I_VPINSRD, 3, {XMM_L16,MEMORY|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8570, 179},
-    /* 2640 */ {I_VPINSRD, 4, {XMM_L16,XMM_L16,RM_GPR|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8562, 179},
-    /* 2641 */ {I_VPINSRD, 3, {XMM_L16,RM_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8570, 179},
-    /* 2642 */ {I_VPINSRQ, 4, {XMM_L16,XMM_L16,MEMORY|BITS64,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8578, 182},
-    /* 2643 */ {I_VPINSRQ, 3, {XMM_L16,MEMORY|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8586, 182},
-    /* 2644 */ {I_VPINSRQ, 4, {XMM_L16,XMM_L16,RM_GPR|BITS64,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8578, 182},
-    /* 2645 */ {I_VPINSRQ, 3, {XMM_L16,RM_GPR|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8586, 182},
-    /* 2646 */ {I_VPMADDWD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28001, 179},
-    /* 2647 */ {I_VPMADDWD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28008, 179},
-    /* 2648 */ {I_VPMADDUBSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28015, 179},
-    /* 2649 */ {I_VPMADDUBSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28022, 179},
-    /* 2650 */ {I_VPMAXSB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28029, 179},
-    /* 2651 */ {I_VPMAXSB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28036, 179},
-    /* 2652 */ {I_VPMAXSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28043, 179},
-    /* 2653 */ {I_VPMAXSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28050, 179},
-    /* 2654 */ {I_VPMAXSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28057, 179},
-    /* 2655 */ {I_VPMAXSD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28064, 179},
-    /* 2656 */ {I_VPMAXUB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28071, 179},
-    /* 2657 */ {I_VPMAXUB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28078, 179},
-    /* 2658 */ {I_VPMAXUW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28085, 179},
-    /* 2659 */ {I_VPMAXUW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28092, 179},
-    /* 2660 */ {I_VPMAXUD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28099, 179},
-    /* 2661 */ {I_VPMAXUD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28106, 179},
-    /* 2662 */ {I_VPMINSB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28113, 179},
-    /* 2663 */ {I_VPMINSB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28120, 179},
-    /* 2664 */ {I_VPMINSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28127, 179},
-    /* 2665 */ {I_VPMINSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28134, 179},
-    /* 2666 */ {I_VPMINSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28141, 179},
-    /* 2667 */ {I_VPMINSD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28148, 179},
-    /* 2668 */ {I_VPMINUB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28155, 179},
-    /* 2669 */ {I_VPMINUB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28162, 179},
-    /* 2670 */ {I_VPMINUW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28169, 179},
-    /* 2671 */ {I_VPMINUW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28176, 179},
-    /* 2672 */ {I_VPMINUD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28183, 179},
-    /* 2673 */ {I_VPMINUD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28190, 179},
-    /* 2674 */ {I_VPMOVMSKB, 2, {REG_GPR|BITS64,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+28197, 182},
-    /* 2675 */ {I_VPMOVMSKB, 2, {REG_GPR|BITS32,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+28197, 179},
-    /* 2676 */ {I_VPMOVSXBW, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+28204, 179},
-    /* 2677 */ {I_VPMOVSXBD, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+28211, 179},
-    /* 2678 */ {I_VPMOVSXBQ, 2, {XMM_L16,RM_XMM_L16|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+28218, 179},
-    /* 2679 */ {I_VPMOVSXWD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+28225, 179},
-    /* 2680 */ {I_VPMOVSXWQ, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+28232, 179},
-    /* 2681 */ {I_VPMOVSXDQ, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+28239, 179},
-    /* 2682 */ {I_VPMOVZXBW, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+28246, 179},
-    /* 2683 */ {I_VPMOVZXBD, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+28253, 179},
-    /* 2684 */ {I_VPMOVZXBQ, 2, {XMM_L16,RM_XMM_L16|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+28260, 179},
-    /* 2685 */ {I_VPMOVZXWD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+28267, 179},
-    /* 2686 */ {I_VPMOVZXWQ, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+28274, 179},
-    /* 2687 */ {I_VPMOVZXDQ, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+28281, 179},
-    /* 2688 */ {I_VPMULHUW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28288, 179},
-    /* 2689 */ {I_VPMULHUW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28295, 179},
-    /* 2690 */ {I_VPMULHRSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28302, 179},
-    /* 2691 */ {I_VPMULHRSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28309, 179},
-    /* 2692 */ {I_VPMULHW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28316, 179},
-    /* 2693 */ {I_VPMULHW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28323, 179},
-    /* 2694 */ {I_VPMULLW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28330, 179},
-    /* 2695 */ {I_VPMULLW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28337, 179},
-    /* 2696 */ {I_VPMULLD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28344, 179},
-    /* 2697 */ {I_VPMULLD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28351, 179},
-    /* 2698 */ {I_VPMULUDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28358, 179},
-    /* 2699 */ {I_VPMULUDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28365, 179},
-    /* 2700 */ {I_VPMULDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28372, 179},
-    /* 2701 */ {I_VPMULDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28379, 179},
-    /* 2702 */ {I_VPOR, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28386, 179},
-    /* 2703 */ {I_VPOR, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28393, 179},
-    /* 2704 */ {I_VPSADBW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28400, 179},
-    /* 2705 */ {I_VPSADBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28407, 179},
-    /* 2706 */ {I_VPSHUFB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28414, 179},
-    /* 2707 */ {I_VPSHUFB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28421, 179},
-    /* 2708 */ {I_VPSHUFD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8594, 179},
-    /* 2709 */ {I_VPSHUFHW, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8602, 179},
-    /* 2710 */ {I_VPSHUFLW, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8610, 179},
-    /* 2711 */ {I_VPSIGNB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28428, 179},
-    /* 2712 */ {I_VPSIGNB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28435, 179},
-    /* 2713 */ {I_VPSIGNW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28442, 179},
-    /* 2714 */ {I_VPSIGNW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28449, 179},
-    /* 2715 */ {I_VPSIGND, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28456, 179},
-    /* 2716 */ {I_VPSIGND, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28463, 179},
-    /* 2717 */ {I_VPSLLDQ, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8618, 179},
-    /* 2718 */ {I_VPSLLDQ, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8626, 179},
-    /* 2719 */ {I_VPSRLDQ, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8634, 179},
-    /* 2720 */ {I_VPSRLDQ, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8642, 179},
-    /* 2721 */ {I_VPSLLW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28470, 179},
-    /* 2722 */ {I_VPSLLW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28477, 179},
-    /* 2723 */ {I_VPSLLW, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8650, 179},
-    /* 2724 */ {I_VPSLLW, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8658, 179},
-    /* 2725 */ {I_VPSLLD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28484, 179},
-    /* 2726 */ {I_VPSLLD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28491, 179},
-    /* 2727 */ {I_VPSLLD, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8666, 179},
-    /* 2728 */ {I_VPSLLD, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8674, 179},
-    /* 2729 */ {I_VPSLLQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28498, 179},
-    /* 2730 */ {I_VPSLLQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28505, 179},
-    /* 2731 */ {I_VPSLLQ, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8682, 179},
-    /* 2732 */ {I_VPSLLQ, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8690, 179},
-    /* 2733 */ {I_VPSRAW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28512, 179},
-    /* 2734 */ {I_VPSRAW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28519, 179},
-    /* 2735 */ {I_VPSRAW, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8698, 179},
-    /* 2736 */ {I_VPSRAW, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8706, 179},
-    /* 2737 */ {I_VPSRAD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28526, 179},
-    /* 2738 */ {I_VPSRAD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28533, 179},
-    /* 2739 */ {I_VPSRAD, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8714, 179},
-    /* 2740 */ {I_VPSRAD, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8722, 179},
-    /* 2741 */ {I_VPSRLW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28540, 179},
-    /* 2742 */ {I_VPSRLW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28547, 179},
-    /* 2743 */ {I_VPSRLW, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8730, 179},
-    /* 2744 */ {I_VPSRLW, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8738, 179},
-    /* 2745 */ {I_VPSRLD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28554, 179},
-    /* 2746 */ {I_VPSRLD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28561, 179},
-    /* 2747 */ {I_VPSRLD, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8746, 179},
-    /* 2748 */ {I_VPSRLD, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8754, 179},
-    /* 2749 */ {I_VPSRLQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28568, 179},
-    /* 2750 */ {I_VPSRLQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28575, 179},
-    /* 2751 */ {I_VPSRLQ, 3, {XMM_L16,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8762, 179},
-    /* 2752 */ {I_VPSRLQ, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+8770, 179},
-    /* 2753 */ {I_VPTEST, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28582, 179},
-    /* 2754 */ {I_VPTEST, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+28589, 179},
-    /* 2755 */ {I_VPSUBB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28596, 179},
-    /* 2756 */ {I_VPSUBB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28603, 179},
-    /* 2757 */ {I_VPSUBW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28610, 179},
-    /* 2758 */ {I_VPSUBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28617, 179},
-    /* 2759 */ {I_VPSUBD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28624, 179},
-    /* 2760 */ {I_VPSUBD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28631, 179},
-    /* 2761 */ {I_VPSUBQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28638, 179},
-    /* 2762 */ {I_VPSUBQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28645, 179},
-    /* 2763 */ {I_VPSUBSB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28652, 179},
-    /* 2764 */ {I_VPSUBSB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28659, 179},
-    /* 2765 */ {I_VPSUBSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28666, 179},
-    /* 2766 */ {I_VPSUBSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28673, 179},
-    /* 2767 */ {I_VPSUBUSB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28680, 179},
-    /* 2768 */ {I_VPSUBUSB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28687, 179},
-    /* 2769 */ {I_VPSUBUSW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28694, 179},
-    /* 2770 */ {I_VPSUBUSW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28701, 179},
-    /* 2771 */ {I_VPUNPCKHBW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28708, 179},
-    /* 2772 */ {I_VPUNPCKHBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28715, 179},
-    /* 2773 */ {I_VPUNPCKHWD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28722, 179},
-    /* 2774 */ {I_VPUNPCKHWD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28729, 179},
-    /* 2775 */ {I_VPUNPCKHDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28736, 179},
-    /* 2776 */ {I_VPUNPCKHDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28743, 179},
-    /* 2777 */ {I_VPUNPCKHQDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28750, 179},
-    /* 2778 */ {I_VPUNPCKHQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28757, 179},
-    /* 2779 */ {I_VPUNPCKLBW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28764, 179},
-    /* 2780 */ {I_VPUNPCKLBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28771, 179},
-    /* 2781 */ {I_VPUNPCKLWD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28778, 179},
-    /* 2782 */ {I_VPUNPCKLWD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28785, 179},
-    /* 2783 */ {I_VPUNPCKLDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28792, 179},
-    /* 2784 */ {I_VPUNPCKLDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28799, 179},
-    /* 2785 */ {I_VPUNPCKLQDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28806, 179},
-    /* 2786 */ {I_VPUNPCKLQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28813, 179},
-    /* 2787 */ {I_VPXOR, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28820, 179},
-    /* 2788 */ {I_VPXOR, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28827, 179},
-    /* 2789 */ {I_VRCPPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28834, 179},
-    /* 2790 */ {I_VRCPPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+28841, 179},
-    /* 2791 */ {I_VRCPSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+28848, 179},
-    /* 2792 */ {I_VRCPSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+28855, 179},
-    /* 2793 */ {I_VRSQRTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28862, 179},
-    /* 2794 */ {I_VRSQRTPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+28869, 179},
-    /* 2795 */ {I_VRSQRTSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+28876, 179},
-    /* 2796 */ {I_VRSQRTSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+28883, 179},
-    /* 2797 */ {I_VROUNDPD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8778, 179},
-    /* 2798 */ {I_VROUNDPD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8786, 179},
-    /* 2799 */ {I_VROUNDPS, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8794, 179},
-    /* 2800 */ {I_VROUNDPS, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8802, 179},
-    /* 2801 */ {I_VROUNDSD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8810, 179},
-    /* 2802 */ {I_VROUNDSD, 3, {XMM_L16,RM_XMM_L16|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8818, 179},
-    /* 2803 */ {I_VROUNDSS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8826, 179},
-    /* 2804 */ {I_VROUNDSS, 3, {XMM_L16,RM_XMM_L16|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8834, 179},
-    /* 2805 */ {I_VSHUFPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8842, 179},
-    /* 2806 */ {I_VSHUFPD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8850, 179},
-    /* 2807 */ {I_VSHUFPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8858, 179},
-    /* 2808 */ {I_VSHUFPD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8866, 179},
-    /* 2809 */ {I_VSHUFPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8874, 179},
-    /* 2810 */ {I_VSHUFPS, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8882, 179},
-    /* 2811 */ {I_VSHUFPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8890, 179},
-    /* 2812 */ {I_VSHUFPS, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8898, 179},
-    /* 2813 */ {I_VSQRTPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28890, 179},
-    /* 2814 */ {I_VSQRTPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+28897, 179},
-    /* 2815 */ {I_VSQRTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28904, 179},
-    /* 2816 */ {I_VSQRTPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+28911, 179},
-    /* 2817 */ {I_VSQRTSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+28918, 179},
-    /* 2818 */ {I_VSQRTSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+28925, 179},
-    /* 2819 */ {I_VSQRTSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+28932, 179},
-    /* 2820 */ {I_VSQRTSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+28939, 179},
-    /* 2821 */ {I_VSTMXCSR, 1, {MEMORY|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+28946, 179},
-    /* 2822 */ {I_VSUBPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28953, 179},
-    /* 2823 */ {I_VSUBPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28960, 179},
-    /* 2824 */ {I_VSUBPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+28967, 179},
-    /* 2825 */ {I_VSUBPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+28974, 179},
-    /* 2826 */ {I_VSUBPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+28981, 179},
-    /* 2827 */ {I_VSUBPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+28988, 179},
-    /* 2828 */ {I_VSUBPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+28995, 179},
-    /* 2829 */ {I_VSUBPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29002, 179},
-    /* 2830 */ {I_VSUBSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29009, 179},
-    /* 2831 */ {I_VSUBSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+29016, 179},
-    /* 2832 */ {I_VSUBSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29023, 179},
-    /* 2833 */ {I_VSUBSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+29030, 179},
-    /* 2834 */ {I_VTESTPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29037, 179},
-    /* 2835 */ {I_VTESTPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29044, 179},
-    /* 2836 */ {I_VTESTPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29051, 179},
-    /* 2837 */ {I_VTESTPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29058, 179},
-    /* 2838 */ {I_VUCOMISD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+29065, 179},
-    /* 2839 */ {I_VUCOMISS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+29072, 179},
-    /* 2840 */ {I_VUNPCKHPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29079, 179},
-    /* 2841 */ {I_VUNPCKHPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29086, 179},
-    /* 2842 */ {I_VUNPCKHPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29093, 179},
-    /* 2843 */ {I_VUNPCKHPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29100, 179},
-    /* 2844 */ {I_VUNPCKHPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29107, 179},
-    /* 2845 */ {I_VUNPCKHPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29114, 179},
-    /* 2846 */ {I_VUNPCKHPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29121, 179},
-    /* 2847 */ {I_VUNPCKHPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29128, 179},
-    /* 2848 */ {I_VUNPCKLPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29135, 179},
-    /* 2849 */ {I_VUNPCKLPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29142, 179},
-    /* 2850 */ {I_VUNPCKLPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29149, 179},
-    /* 2851 */ {I_VUNPCKLPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29156, 179},
-    /* 2852 */ {I_VUNPCKLPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29163, 179},
-    /* 2853 */ {I_VUNPCKLPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29170, 179},
-    /* 2854 */ {I_VUNPCKLPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29177, 179},
-    /* 2855 */ {I_VUNPCKLPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29184, 179},
-    /* 2856 */ {I_VXORPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29191, 179},
-    /* 2857 */ {I_VXORPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29198, 179},
-    /* 2858 */ {I_VXORPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29205, 179},
-    /* 2859 */ {I_VXORPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29212, 179},
-    /* 2860 */ {I_VXORPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29219, 179},
-    /* 2861 */ {I_VXORPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29226, 179},
-    /* 2862 */ {I_VXORPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29233, 179},
-    /* 2863 */ {I_VXORPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+29240, 179},
-    /* 2864 */ {I_VZEROALL, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35302, 179},
-    /* 2865 */ {I_VZEROUPPER, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35308, 179},
-    /* 2866 */ {I_PCLMULLQLQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3528, 178},
-    /* 2867 */ {I_PCLMULHQLQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3537, 178},
-    /* 2868 */ {I_PCLMULLQHQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3546, 178},
-    /* 2869 */ {I_PCLMULHQHQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3555, 178},
-    /* 2870 */ {I_PCLMULQDQ, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8906, 178},
-    /* 2871 */ {I_VPCLMULLQLQDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+3564, 179},
-    /* 2872 */ {I_VPCLMULLQLQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3573, 179},
-    /* 2873 */ {I_VPCLMULHQLQDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+3582, 179},
-    /* 2874 */ {I_VPCLMULHQLQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3591, 179},
-    /* 2875 */ {I_VPCLMULLQHQDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+3600, 179},
-    /* 2876 */ {I_VPCLMULLQHQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3609, 179},
-    /* 2877 */ {I_VPCLMULHQHQDQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+3618, 179},
-    /* 2878 */ {I_VPCLMULHQHQDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+3627, 179},
-    /* 2879 */ {I_VPCLMULQDQ, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+8914, 179},
-    /* 2880 */ {I_VPCLMULQDQ, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8922, 179},
-    /* 2881 */ {I_VFMADD132PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29247, 186},
-    /* 2882 */ {I_VFMADD132PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29254, 186},
-    /* 2883 */ {I_VFMADD132PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29261, 186},
-    /* 2884 */ {I_VFMADD132PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29268, 186},
-    /* 2885 */ {I_VFMADD312PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29247, 186},
-    /* 2886 */ {I_VFMADD312PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29254, 186},
-    /* 2887 */ {I_VFMADD312PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29261, 186},
-    /* 2888 */ {I_VFMADD312PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29268, 186},
-    /* 2889 */ {I_VFMADD213PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29275, 186},
-    /* 2890 */ {I_VFMADD213PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29282, 186},
-    /* 2891 */ {I_VFMADD213PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29289, 186},
-    /* 2892 */ {I_VFMADD213PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29296, 186},
-    /* 2893 */ {I_VFMADD123PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29275, 186},
-    /* 2894 */ {I_VFMADD123PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29282, 186},
-    /* 2895 */ {I_VFMADD123PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29289, 186},
-    /* 2896 */ {I_VFMADD123PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29296, 186},
-    /* 2897 */ {I_VFMADD231PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29303, 186},
-    /* 2898 */ {I_VFMADD231PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29310, 186},
-    /* 2899 */ {I_VFMADD231PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29317, 186},
-    /* 2900 */ {I_VFMADD231PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29324, 186},
-    /* 2901 */ {I_VFMADD321PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29303, 186},
-    /* 2902 */ {I_VFMADD321PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29310, 186},
-    /* 2903 */ {I_VFMADD321PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29317, 186},
-    /* 2904 */ {I_VFMADD321PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29324, 186},
-    /* 2905 */ {I_VFMADDSUB132PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29331, 186},
-    /* 2906 */ {I_VFMADDSUB132PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29338, 186},
-    /* 2907 */ {I_VFMADDSUB132PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29345, 186},
-    /* 2908 */ {I_VFMADDSUB132PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29352, 186},
-    /* 2909 */ {I_VFMADDSUB312PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29331, 186},
-    /* 2910 */ {I_VFMADDSUB312PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29338, 186},
-    /* 2911 */ {I_VFMADDSUB312PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29345, 186},
-    /* 2912 */ {I_VFMADDSUB312PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29352, 186},
-    /* 2913 */ {I_VFMADDSUB213PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29359, 186},
-    /* 2914 */ {I_VFMADDSUB213PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29366, 186},
-    /* 2915 */ {I_VFMADDSUB213PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29373, 186},
-    /* 2916 */ {I_VFMADDSUB213PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29380, 186},
-    /* 2917 */ {I_VFMADDSUB123PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29359, 186},
-    /* 2918 */ {I_VFMADDSUB123PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29366, 186},
-    /* 2919 */ {I_VFMADDSUB123PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29373, 186},
-    /* 2920 */ {I_VFMADDSUB123PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29380, 186},
-    /* 2921 */ {I_VFMADDSUB231PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29387, 186},
-    /* 2922 */ {I_VFMADDSUB231PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29394, 186},
-    /* 2923 */ {I_VFMADDSUB231PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29401, 186},
-    /* 2924 */ {I_VFMADDSUB231PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29408, 186},
-    /* 2925 */ {I_VFMADDSUB321PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29387, 186},
-    /* 2926 */ {I_VFMADDSUB321PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29394, 186},
-    /* 2927 */ {I_VFMADDSUB321PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29401, 186},
-    /* 2928 */ {I_VFMADDSUB321PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29408, 186},
-    /* 2929 */ {I_VFMSUB132PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29415, 186},
-    /* 2930 */ {I_VFMSUB132PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29422, 186},
-    /* 2931 */ {I_VFMSUB132PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29429, 186},
-    /* 2932 */ {I_VFMSUB132PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29436, 186},
-    /* 2933 */ {I_VFMSUB312PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29415, 186},
-    /* 2934 */ {I_VFMSUB312PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29422, 186},
-    /* 2935 */ {I_VFMSUB312PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29429, 186},
-    /* 2936 */ {I_VFMSUB312PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29436, 186},
-    /* 2937 */ {I_VFMSUB213PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29443, 186},
-    /* 2938 */ {I_VFMSUB213PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29450, 186},
-    /* 2939 */ {I_VFMSUB213PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29457, 186},
-    /* 2940 */ {I_VFMSUB213PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29464, 186},
-    /* 2941 */ {I_VFMSUB123PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29443, 186},
-    /* 2942 */ {I_VFMSUB123PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29450, 186},
-    /* 2943 */ {I_VFMSUB123PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29457, 186},
-    /* 2944 */ {I_VFMSUB123PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29464, 186},
-    /* 2945 */ {I_VFMSUB231PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29471, 186},
-    /* 2946 */ {I_VFMSUB231PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29478, 186},
-    /* 2947 */ {I_VFMSUB231PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29485, 186},
-    /* 2948 */ {I_VFMSUB231PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29492, 186},
-    /* 2949 */ {I_VFMSUB321PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29471, 186},
-    /* 2950 */ {I_VFMSUB321PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29478, 186},
-    /* 2951 */ {I_VFMSUB321PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29485, 186},
-    /* 2952 */ {I_VFMSUB321PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29492, 186},
-    /* 2953 */ {I_VFMSUBADD132PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29499, 186},
-    /* 2954 */ {I_VFMSUBADD132PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29506, 186},
-    /* 2955 */ {I_VFMSUBADD132PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29513, 186},
-    /* 2956 */ {I_VFMSUBADD132PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29520, 186},
-    /* 2957 */ {I_VFMSUBADD312PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29499, 186},
-    /* 2958 */ {I_VFMSUBADD312PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29506, 186},
-    /* 2959 */ {I_VFMSUBADD312PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29513, 186},
-    /* 2960 */ {I_VFMSUBADD312PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29520, 186},
-    /* 2961 */ {I_VFMSUBADD213PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29527, 186},
-    /* 2962 */ {I_VFMSUBADD213PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29534, 186},
-    /* 2963 */ {I_VFMSUBADD213PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29541, 186},
-    /* 2964 */ {I_VFMSUBADD213PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29548, 186},
-    /* 2965 */ {I_VFMSUBADD123PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29527, 186},
-    /* 2966 */ {I_VFMSUBADD123PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29534, 186},
-    /* 2967 */ {I_VFMSUBADD123PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29541, 186},
-    /* 2968 */ {I_VFMSUBADD123PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29548, 186},
-    /* 2969 */ {I_VFMSUBADD231PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29555, 186},
-    /* 2970 */ {I_VFMSUBADD231PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29562, 186},
-    /* 2971 */ {I_VFMSUBADD231PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29569, 186},
-    /* 2972 */ {I_VFMSUBADD231PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29576, 186},
-    /* 2973 */ {I_VFMSUBADD321PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29555, 186},
-    /* 2974 */ {I_VFMSUBADD321PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29562, 186},
-    /* 2975 */ {I_VFMSUBADD321PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29569, 186},
-    /* 2976 */ {I_VFMSUBADD321PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29576, 186},
-    /* 2977 */ {I_VFNMADD132PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29583, 186},
-    /* 2978 */ {I_VFNMADD132PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29590, 186},
-    /* 2979 */ {I_VFNMADD132PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29597, 186},
-    /* 2980 */ {I_VFNMADD132PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29604, 186},
-    /* 2981 */ {I_VFNMADD312PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29583, 186},
-    /* 2982 */ {I_VFNMADD312PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29590, 186},
-    /* 2983 */ {I_VFNMADD312PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29597, 186},
-    /* 2984 */ {I_VFNMADD312PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29604, 186},
-    /* 2985 */ {I_VFNMADD213PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29611, 186},
-    /* 2986 */ {I_VFNMADD213PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29618, 186},
-    /* 2987 */ {I_VFNMADD213PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29625, 186},
-    /* 2988 */ {I_VFNMADD213PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29632, 186},
-    /* 2989 */ {I_VFNMADD123PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29611, 186},
-    /* 2990 */ {I_VFNMADD123PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29618, 186},
-    /* 2991 */ {I_VFNMADD123PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29625, 186},
-    /* 2992 */ {I_VFNMADD123PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29632, 186},
-    /* 2993 */ {I_VFNMADD231PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29639, 186},
-    /* 2994 */ {I_VFNMADD231PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29646, 186},
-    /* 2995 */ {I_VFNMADD231PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29653, 186},
-    /* 2996 */ {I_VFNMADD231PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29660, 186},
-    /* 2997 */ {I_VFNMADD321PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29639, 186},
-    /* 2998 */ {I_VFNMADD321PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29646, 186},
-    /* 2999 */ {I_VFNMADD321PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29653, 186},
-    /* 3000 */ {I_VFNMADD321PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29660, 186},
-    /* 3001 */ {I_VFNMSUB132PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29667, 186},
-    /* 3002 */ {I_VFNMSUB132PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29674, 186},
-    /* 3003 */ {I_VFNMSUB132PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29681, 186},
-    /* 3004 */ {I_VFNMSUB132PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29688, 186},
-    /* 3005 */ {I_VFNMSUB312PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29667, 186},
-    /* 3006 */ {I_VFNMSUB312PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29674, 186},
-    /* 3007 */ {I_VFNMSUB312PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29681, 186},
-    /* 3008 */ {I_VFNMSUB312PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29688, 186},
-    /* 3009 */ {I_VFNMSUB213PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29695, 186},
-    /* 3010 */ {I_VFNMSUB213PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29702, 186},
-    /* 3011 */ {I_VFNMSUB213PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29709, 186},
-    /* 3012 */ {I_VFNMSUB213PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29716, 186},
-    /* 3013 */ {I_VFNMSUB123PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29695, 186},
-    /* 3014 */ {I_VFNMSUB123PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29702, 186},
-    /* 3015 */ {I_VFNMSUB123PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29709, 186},
-    /* 3016 */ {I_VFNMSUB123PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29716, 186},
-    /* 3017 */ {I_VFNMSUB231PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29723, 186},
-    /* 3018 */ {I_VFNMSUB231PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29730, 186},
-    /* 3019 */ {I_VFNMSUB231PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29737, 186},
-    /* 3020 */ {I_VFNMSUB231PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29744, 186},
-    /* 3021 */ {I_VFNMSUB321PS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29723, 186},
-    /* 3022 */ {I_VFNMSUB321PS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29730, 186},
-    /* 3023 */ {I_VFNMSUB321PD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+29737, 186},
-    /* 3024 */ {I_VFNMSUB321PD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+29744, 186},
-    /* 3025 */ {I_VFMADD132SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29751, 186},
-    /* 3026 */ {I_VFMADD132SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29758, 186},
-    /* 3027 */ {I_VFMADD312SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29751, 186},
-    /* 3028 */ {I_VFMADD312SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29758, 186},
-    /* 3029 */ {I_VFMADD213SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29765, 186},
-    /* 3030 */ {I_VFMADD213SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29772, 186},
-    /* 3031 */ {I_VFMADD123SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29765, 186},
-    /* 3032 */ {I_VFMADD123SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29772, 186},
-    /* 3033 */ {I_VFMADD231SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29779, 186},
-    /* 3034 */ {I_VFMADD231SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29786, 186},
-    /* 3035 */ {I_VFMADD321SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29779, 186},
-    /* 3036 */ {I_VFMADD321SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29786, 186},
-    /* 3037 */ {I_VFMSUB132SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29793, 186},
-    /* 3038 */ {I_VFMSUB132SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29800, 186},
-    /* 3039 */ {I_VFMSUB312SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29793, 186},
-    /* 3040 */ {I_VFMSUB312SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29800, 186},
-    /* 3041 */ {I_VFMSUB213SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29807, 186},
-    /* 3042 */ {I_VFMSUB213SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29814, 186},
-    /* 3043 */ {I_VFMSUB123SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29807, 186},
-    /* 3044 */ {I_VFMSUB123SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29814, 186},
-    /* 3045 */ {I_VFMSUB231SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29821, 186},
-    /* 3046 */ {I_VFMSUB231SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29828, 186},
-    /* 3047 */ {I_VFMSUB321SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29821, 186},
-    /* 3048 */ {I_VFMSUB321SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29828, 186},
-    /* 3049 */ {I_VFNMADD132SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29835, 186},
-    /* 3050 */ {I_VFNMADD132SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29842, 186},
-    /* 3051 */ {I_VFNMADD312SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29835, 186},
-    /* 3052 */ {I_VFNMADD312SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29842, 186},
-    /* 3053 */ {I_VFNMADD213SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29849, 186},
-    /* 3054 */ {I_VFNMADD213SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29856, 186},
-    /* 3055 */ {I_VFNMADD123SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29849, 186},
-    /* 3056 */ {I_VFNMADD123SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29856, 186},
-    /* 3057 */ {I_VFNMADD231SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29863, 186},
-    /* 3058 */ {I_VFNMADD231SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29870, 186},
-    /* 3059 */ {I_VFNMADD321SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29863, 186},
-    /* 3060 */ {I_VFNMADD321SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29870, 186},
-    /* 3061 */ {I_VFNMSUB132SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29877, 186},
-    /* 3062 */ {I_VFNMSUB132SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29884, 186},
-    /* 3063 */ {I_VFNMSUB312SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29877, 186},
-    /* 3064 */ {I_VFNMSUB312SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29884, 186},
-    /* 3065 */ {I_VFNMSUB213SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29891, 186},
-    /* 3066 */ {I_VFNMSUB213SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29898, 186},
-    /* 3067 */ {I_VFNMSUB123SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29891, 186},
-    /* 3068 */ {I_VFNMSUB123SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29898, 186},
-    /* 3069 */ {I_VFNMSUB231SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29905, 186},
-    /* 3070 */ {I_VFNMSUB231SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29912, 186},
-    /* 3071 */ {I_VFNMSUB321SS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+29905, 186},
-    /* 3072 */ {I_VFNMSUB321SD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+29912, 186},
-    /* 3073 */ {I_RDFSBASE, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29919, 130},
-    /* 3074 */ {I_RDFSBASE, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29926, 130},
-    /* 3075 */ {I_RDGSBASE, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29933, 130},
-    /* 3076 */ {I_RDGSBASE, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29940, 130},
-    /* 3077 */ {I_RDRAND, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35314, 129},
-    /* 3078 */ {I_RDRAND, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35320, 129},
-    /* 3079 */ {I_RDRAND, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35326, 130},
-    /* 3080 */ {I_WRFSBASE, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29947, 130},
-    /* 3081 */ {I_WRFSBASE, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29954, 130},
-    /* 3082 */ {I_WRGSBASE, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29961, 130},
-    /* 3083 */ {I_WRGSBASE, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29968, 130},
-    /* 3084 */ {I_VCVTPH2PS, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+29975, 187},
-    /* 3085 */ {I_VCVTPH2PS, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+29982, 187},
-    /* 3086 */ {I_VCVTPS2PH, 3, {RM_XMM_L16|BITS128,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8930, 187},
-    /* 3087 */ {I_VCVTPS2PH, 3, {RM_XMM_L16|BITS64,XMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+8938, 187},
-    /* 3088 */ {I_ADCX, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+8946, 129},
-    /* 3089 */ {I_ADCX, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+8954, 130},
-    /* 3090 */ {I_ADOX, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+8962, 129},
-    /* 3091 */ {I_ADOX, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+8970, 130},
-    /* 3092 */ {I_RDSEED, 1, {REG_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35332, 129},
-    /* 3093 */ {I_RDSEED, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35338, 129},
-    /* 3094 */ {I_RDSEED, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35344, 130},
-    /* 3095 */ {I_CLAC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38371, 188},
-    /* 3096 */ {I_STAC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38376, 188},
-    /* 3097 */ {I_XSTORE, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38381, 36},
-    /* 3098 */ {I_XCRYPTECB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35350, 36},
-    /* 3099 */ {I_XCRYPTCBC, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35356, 36},
-    /* 3100 */ {I_XCRYPTCTR, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35362, 36},
-    /* 3101 */ {I_XCRYPTCFB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35368, 36},
-    /* 3102 */ {I_XCRYPTOFB, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35374, 36},
-    /* 3103 */ {I_MONTMUL, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35380, 36},
-    /* 3104 */ {I_XSHA1, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35386, 36},
-    /* 3105 */ {I_XSHA256, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35392, 36},
-    /* 3106 */ {I_LLWPCB, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29989, 189},
-    /* 3107 */ {I_LLWPCB, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+29996, 190},
-    /* 3108 */ {I_SLWPCB, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30003, 189},
-    /* 3109 */ {I_SLWPCB, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30010, 190},
-    /* 3110 */ {I_LWPVAL, 3, {REG_GPR|BITS32,RM_GPR|BITS32,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+8978, 189},
-    /* 3111 */ {I_LWPVAL, 3, {REG_GPR|BITS64,RM_GPR|BITS32,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+8986, 190},
-    /* 3112 */ {I_LWPINS, 3, {REG_GPR|BITS32,RM_GPR|BITS32,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+8994, 189},
-    /* 3113 */ {I_LWPINS, 3, {REG_GPR|BITS64,RM_GPR|BITS32,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+9002, 190},
-    /* 3114 */ {I_VFMADDPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9010, 191},
-    /* 3115 */ {I_VFMADDPD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9018, 191},
-    /* 3116 */ {I_VFMADDPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9026, 191},
-    /* 3117 */ {I_VFMADDPD, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9034, 191},
-    /* 3118 */ {I_VFMADDPD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9042, 191},
-    /* 3119 */ {I_VFMADDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9050, 191},
-    /* 3120 */ {I_VFMADDPD, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9058, 191},
-    /* 3121 */ {I_VFMADDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9066, 191},
-    /* 3122 */ {I_VFMADDPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9074, 191},
-    /* 3123 */ {I_VFMADDPS, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9082, 191},
-    /* 3124 */ {I_VFMADDPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9090, 191},
-    /* 3125 */ {I_VFMADDPS, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9098, 191},
-    /* 3126 */ {I_VFMADDPS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9106, 191},
-    /* 3127 */ {I_VFMADDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9114, 191},
-    /* 3128 */ {I_VFMADDPS, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9122, 191},
-    /* 3129 */ {I_VFMADDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9130, 191},
-    /* 3130 */ {I_VFMADDSD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9138, 191},
-    /* 3131 */ {I_VFMADDSD, 3, {XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9146, 191},
-    /* 3132 */ {I_VFMADDSD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0}, NO_DECORATOR, nasm_bytecodes+9154, 191},
-    /* 3133 */ {I_VFMADDSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+9162, 191},
-    /* 3134 */ {I_VFMADDSS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9170, 191},
-    /* 3135 */ {I_VFMADDSS, 3, {XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9178, 191},
-    /* 3136 */ {I_VFMADDSS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0}, NO_DECORATOR, nasm_bytecodes+9186, 191},
-    /* 3137 */ {I_VFMADDSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+9194, 191},
-    /* 3138 */ {I_VFMADDSUBPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9202, 191},
-    /* 3139 */ {I_VFMADDSUBPD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9210, 191},
-    /* 3140 */ {I_VFMADDSUBPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9218, 191},
-    /* 3141 */ {I_VFMADDSUBPD, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9226, 191},
-    /* 3142 */ {I_VFMADDSUBPD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9234, 191},
-    /* 3143 */ {I_VFMADDSUBPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9242, 191},
-    /* 3144 */ {I_VFMADDSUBPD, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9250, 191},
-    /* 3145 */ {I_VFMADDSUBPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9258, 191},
-    /* 3146 */ {I_VFMADDSUBPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9266, 191},
-    /* 3147 */ {I_VFMADDSUBPS, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9274, 191},
-    /* 3148 */ {I_VFMADDSUBPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9282, 191},
-    /* 3149 */ {I_VFMADDSUBPS, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9290, 191},
-    /* 3150 */ {I_VFMADDSUBPS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9298, 191},
-    /* 3151 */ {I_VFMADDSUBPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9306, 191},
-    /* 3152 */ {I_VFMADDSUBPS, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9314, 191},
-    /* 3153 */ {I_VFMADDSUBPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9322, 191},
-    /* 3154 */ {I_VFMSUBADDPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9330, 191},
-    /* 3155 */ {I_VFMSUBADDPD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9338, 191},
-    /* 3156 */ {I_VFMSUBADDPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9346, 191},
-    /* 3157 */ {I_VFMSUBADDPD, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9354, 191},
-    /* 3158 */ {I_VFMSUBADDPD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9362, 191},
-    /* 3159 */ {I_VFMSUBADDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9370, 191},
-    /* 3160 */ {I_VFMSUBADDPD, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9378, 191},
-    /* 3161 */ {I_VFMSUBADDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9386, 191},
-    /* 3162 */ {I_VFMSUBADDPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9394, 191},
-    /* 3163 */ {I_VFMSUBADDPS, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9402, 191},
-    /* 3164 */ {I_VFMSUBADDPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9410, 191},
-    /* 3165 */ {I_VFMSUBADDPS, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9418, 191},
-    /* 3166 */ {I_VFMSUBADDPS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9426, 191},
-    /* 3167 */ {I_VFMSUBADDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9434, 191},
-    /* 3168 */ {I_VFMSUBADDPS, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9442, 191},
-    /* 3169 */ {I_VFMSUBADDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9450, 191},
-    /* 3170 */ {I_VFMSUBPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9458, 191},
-    /* 3171 */ {I_VFMSUBPD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9466, 191},
-    /* 3172 */ {I_VFMSUBPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9474, 191},
-    /* 3173 */ {I_VFMSUBPD, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9482, 191},
-    /* 3174 */ {I_VFMSUBPD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9490, 191},
-    /* 3175 */ {I_VFMSUBPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9498, 191},
-    /* 3176 */ {I_VFMSUBPD, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9506, 191},
-    /* 3177 */ {I_VFMSUBPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9514, 191},
-    /* 3178 */ {I_VFMSUBPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9522, 191},
-    /* 3179 */ {I_VFMSUBPS, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9530, 191},
-    /* 3180 */ {I_VFMSUBPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9538, 191},
-    /* 3181 */ {I_VFMSUBPS, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9546, 191},
-    /* 3182 */ {I_VFMSUBPS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9554, 191},
-    /* 3183 */ {I_VFMSUBPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9562, 191},
-    /* 3184 */ {I_VFMSUBPS, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9570, 191},
-    /* 3185 */ {I_VFMSUBPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9578, 191},
-    /* 3186 */ {I_VFMSUBSD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9586, 191},
-    /* 3187 */ {I_VFMSUBSD, 3, {XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9594, 191},
-    /* 3188 */ {I_VFMSUBSD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0}, NO_DECORATOR, nasm_bytecodes+9602, 191},
-    /* 3189 */ {I_VFMSUBSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+9610, 191},
-    /* 3190 */ {I_VFMSUBSS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9618, 191},
-    /* 3191 */ {I_VFMSUBSS, 3, {XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9626, 191},
-    /* 3192 */ {I_VFMSUBSS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0}, NO_DECORATOR, nasm_bytecodes+9634, 191},
-    /* 3193 */ {I_VFMSUBSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+9642, 191},
-    /* 3194 */ {I_VFNMADDPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9650, 191},
-    /* 3195 */ {I_VFNMADDPD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9658, 191},
-    /* 3196 */ {I_VFNMADDPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9666, 191},
-    /* 3197 */ {I_VFNMADDPD, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9674, 191},
-    /* 3198 */ {I_VFNMADDPD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9682, 191},
-    /* 3199 */ {I_VFNMADDPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9690, 191},
-    /* 3200 */ {I_VFNMADDPD, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9698, 191},
-    /* 3201 */ {I_VFNMADDPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9706, 191},
-    /* 3202 */ {I_VFNMADDPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9714, 191},
-    /* 3203 */ {I_VFNMADDPS, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9722, 191},
-    /* 3204 */ {I_VFNMADDPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9730, 191},
-    /* 3205 */ {I_VFNMADDPS, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9738, 191},
-    /* 3206 */ {I_VFNMADDPS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9746, 191},
-    /* 3207 */ {I_VFNMADDPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9754, 191},
-    /* 3208 */ {I_VFNMADDPS, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9762, 191},
-    /* 3209 */ {I_VFNMADDPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9770, 191},
-    /* 3210 */ {I_VFNMADDSD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9778, 191},
-    /* 3211 */ {I_VFNMADDSD, 3, {XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9786, 191},
-    /* 3212 */ {I_VFNMADDSD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0}, NO_DECORATOR, nasm_bytecodes+9794, 191},
-    /* 3213 */ {I_VFNMADDSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+9802, 191},
-    /* 3214 */ {I_VFNMADDSS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9810, 191},
-    /* 3215 */ {I_VFNMADDSS, 3, {XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9818, 191},
-    /* 3216 */ {I_VFNMADDSS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0}, NO_DECORATOR, nasm_bytecodes+9826, 191},
-    /* 3217 */ {I_VFNMADDSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+9834, 191},
-    /* 3218 */ {I_VFNMSUBPD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9842, 191},
-    /* 3219 */ {I_VFNMSUBPD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9850, 191},
-    /* 3220 */ {I_VFNMSUBPD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9858, 191},
-    /* 3221 */ {I_VFNMSUBPD, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9866, 191},
-    /* 3222 */ {I_VFNMSUBPD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9874, 191},
-    /* 3223 */ {I_VFNMSUBPD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9882, 191},
-    /* 3224 */ {I_VFNMSUBPD, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9890, 191},
-    /* 3225 */ {I_VFNMSUBPD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9898, 191},
-    /* 3226 */ {I_VFNMSUBPS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9906, 191},
-    /* 3227 */ {I_VFNMSUBPS, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9914, 191},
-    /* 3228 */ {I_VFNMSUBPS, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9922, 191},
-    /* 3229 */ {I_VFNMSUBPS, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9930, 191},
-    /* 3230 */ {I_VFNMSUBPS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+9938, 191},
-    /* 3231 */ {I_VFNMSUBPS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+9946, 191},
-    /* 3232 */ {I_VFNMSUBPS, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+9954, 191},
-    /* 3233 */ {I_VFNMSUBPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+9962, 191},
-    /* 3234 */ {I_VFNMSUBSD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+9970, 191},
-    /* 3235 */ {I_VFNMSUBSD, 3, {XMM_L16,RM_XMM_L16|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+9978, 191},
-    /* 3236 */ {I_VFNMSUBSD, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0}, NO_DECORATOR, nasm_bytecodes+9986, 191},
-    /* 3237 */ {I_VFNMSUBSD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+9994, 191},
-    /* 3238 */ {I_VFNMSUBSS, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10002, 191},
-    /* 3239 */ {I_VFNMSUBSS, 3, {XMM_L16,RM_XMM_L16|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10010, 191},
-    /* 3240 */ {I_VFNMSUBSS, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0}, NO_DECORATOR, nasm_bytecodes+10018, 191},
-    /* 3241 */ {I_VFNMSUBSS, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+10026, 191},
-    /* 3242 */ {I_VFRCZPD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30017, 191},
-    /* 3243 */ {I_VFRCZPD, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30024, 191},
-    /* 3244 */ {I_VFRCZPD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30031, 191},
-    /* 3245 */ {I_VFRCZPD, 1, {YMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30038, 191},
-    /* 3246 */ {I_VFRCZPS, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30045, 191},
-    /* 3247 */ {I_VFRCZPS, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30052, 191},
-    /* 3248 */ {I_VFRCZPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30059, 191},
-    /* 3249 */ {I_VFRCZPS, 1, {YMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30066, 191},
-    /* 3250 */ {I_VFRCZSD, 2, {XMM_L16,RM_XMM_L16|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+30073, 191},
-    /* 3251 */ {I_VFRCZSD, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30080, 191},
-    /* 3252 */ {I_VFRCZSS, 2, {XMM_L16,RM_XMM_L16|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+30087, 191},
-    /* 3253 */ {I_VFRCZSS, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30094, 191},
-    /* 3254 */ {I_VPCMOV, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10034, 191},
-    /* 3255 */ {I_VPCMOV, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10042, 191},
-    /* 3256 */ {I_VPCMOV, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10050, 191},
-    /* 3257 */ {I_VPCMOV, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10058, 191},
-    /* 3258 */ {I_VPCMOV, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+10066, 191},
-    /* 3259 */ {I_VPCMOV, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+10074, 191},
-    /* 3260 */ {I_VPCMOV, 4, {YMM_L16,YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0}, NO_DECORATOR, nasm_bytecodes+10082, 191},
-    /* 3261 */ {I_VPCMOV, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+10090, 191},
-    /* 3262 */ {I_VPCOMB, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10098, 191},
-    /* 3263 */ {I_VPCOMB, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10106, 191},
-    /* 3264 */ {I_VPCOMD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10114, 191},
-    /* 3265 */ {I_VPCOMD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10122, 191},
-    /* 3266 */ {I_VPCOMQ, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10130, 191},
-    /* 3267 */ {I_VPCOMQ, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10138, 191},
-    /* 3268 */ {I_VPCOMUB, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10146, 191},
-    /* 3269 */ {I_VPCOMUB, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10154, 191},
-    /* 3270 */ {I_VPCOMUD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10162, 191},
-    /* 3271 */ {I_VPCOMUD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10170, 191},
-    /* 3272 */ {I_VPCOMUQ, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10178, 191},
-    /* 3273 */ {I_VPCOMUQ, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10186, 191},
-    /* 3274 */ {I_VPCOMUW, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10194, 191},
-    /* 3275 */ {I_VPCOMUW, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10202, 191},
-    /* 3276 */ {I_VPCOMW, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10210, 191},
-    /* 3277 */ {I_VPCOMW, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10218, 191},
-    /* 3278 */ {I_VPHADDBD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30101, 191},
-    /* 3279 */ {I_VPHADDBD, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30108, 191},
-    /* 3280 */ {I_VPHADDBQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30115, 191},
-    /* 3281 */ {I_VPHADDBQ, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30122, 191},
-    /* 3282 */ {I_VPHADDBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30129, 191},
-    /* 3283 */ {I_VPHADDBW, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30136, 191},
-    /* 3284 */ {I_VPHADDDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30143, 191},
-    /* 3285 */ {I_VPHADDDQ, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30150, 191},
-    /* 3286 */ {I_VPHADDUBD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30157, 191},
-    /* 3287 */ {I_VPHADDUBD, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30164, 191},
-    /* 3288 */ {I_VPHADDUBQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30171, 191},
-    /* 3289 */ {I_VPHADDUBQ, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30178, 191},
-    /* 3290 */ {I_VPHADDUBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30185, 191},
-    /* 3291 */ {I_VPHADDUBW, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30192, 191},
-    /* 3292 */ {I_VPHADDUDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30199, 191},
-    /* 3293 */ {I_VPHADDUDQ, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30206, 191},
-    /* 3294 */ {I_VPHADDUWD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30213, 191},
-    /* 3295 */ {I_VPHADDUWD, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30220, 191},
-    /* 3296 */ {I_VPHADDUWQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30227, 191},
-    /* 3297 */ {I_VPHADDUWQ, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30234, 191},
-    /* 3298 */ {I_VPHADDWD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30241, 191},
-    /* 3299 */ {I_VPHADDWD, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30248, 191},
-    /* 3300 */ {I_VPHADDWQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30255, 191},
-    /* 3301 */ {I_VPHADDWQ, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30262, 191},
-    /* 3302 */ {I_VPHSUBBW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30269, 191},
-    /* 3303 */ {I_VPHSUBBW, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30276, 191},
-    /* 3304 */ {I_VPHSUBDQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30283, 191},
-    /* 3305 */ {I_VPHSUBDQ, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30290, 191},
-    /* 3306 */ {I_VPHSUBWD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30297, 191},
-    /* 3307 */ {I_VPHSUBWD, 1, {XMM_L16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+30304, 191},
-    /* 3308 */ {I_VPMACSDD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10226, 191},
-    /* 3309 */ {I_VPMACSDD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10234, 191},
-    /* 3310 */ {I_VPMACSDQH, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10242, 191},
-    /* 3311 */ {I_VPMACSDQH, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10250, 191},
-    /* 3312 */ {I_VPMACSDQL, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10258, 191},
-    /* 3313 */ {I_VPMACSDQL, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10266, 191},
-    /* 3314 */ {I_VPMACSSDD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10274, 191},
-    /* 3315 */ {I_VPMACSSDD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10282, 191},
-    /* 3316 */ {I_VPMACSSDQH, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10290, 191},
-    /* 3317 */ {I_VPMACSSDQH, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10298, 191},
-    /* 3318 */ {I_VPMACSSDQL, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10306, 191},
-    /* 3319 */ {I_VPMACSSDQL, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10314, 191},
-    /* 3320 */ {I_VPMACSSWD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10322, 191},
-    /* 3321 */ {I_VPMACSSWD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10330, 191},
-    /* 3322 */ {I_VPMACSSWW, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10338, 191},
-    /* 3323 */ {I_VPMACSSWW, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10346, 191},
-    /* 3324 */ {I_VPMACSWD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10354, 191},
-    /* 3325 */ {I_VPMACSWD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10362, 191},
-    /* 3326 */ {I_VPMACSWW, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10370, 191},
-    /* 3327 */ {I_VPMACSWW, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10378, 191},
-    /* 3328 */ {I_VPMADCSSWD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10386, 191},
-    /* 3329 */ {I_VPMADCSSWD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10394, 191},
-    /* 3330 */ {I_VPMADCSWD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10402, 191},
-    /* 3331 */ {I_VPMADCSWD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10410, 191},
-    /* 3332 */ {I_VPPERM, 4, {XMM_L16,XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0}, NO_DECORATOR, nasm_bytecodes+10418, 191},
-    /* 3333 */ {I_VPPERM, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+10426, 191},
-    /* 3334 */ {I_VPPERM, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10434, 191},
-    /* 3335 */ {I_VPPERM, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10442, 191},
-    /* 3336 */ {I_VPROTB, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30311, 191},
-    /* 3337 */ {I_VPROTB, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30318, 191},
-    /* 3338 */ {I_VPROTB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30325, 191},
-    /* 3339 */ {I_VPROTB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30332, 191},
-    /* 3340 */ {I_VPROTB, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10450, 191},
-    /* 3341 */ {I_VPROTB, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10458, 191},
-    /* 3342 */ {I_VPROTD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30339, 191},
-    /* 3343 */ {I_VPROTD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30346, 191},
-    /* 3344 */ {I_VPROTD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30353, 191},
-    /* 3345 */ {I_VPROTD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30360, 191},
-    /* 3346 */ {I_VPROTD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10466, 191},
-    /* 3347 */ {I_VPROTD, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10474, 191},
-    /* 3348 */ {I_VPROTQ, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30367, 191},
-    /* 3349 */ {I_VPROTQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30374, 191},
-    /* 3350 */ {I_VPROTQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30381, 191},
-    /* 3351 */ {I_VPROTQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30388, 191},
-    /* 3352 */ {I_VPROTQ, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10482, 191},
-    /* 3353 */ {I_VPROTQ, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10490, 191},
-    /* 3354 */ {I_VPROTW, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30395, 191},
-    /* 3355 */ {I_VPROTW, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30402, 191},
-    /* 3356 */ {I_VPROTW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30409, 191},
-    /* 3357 */ {I_VPROTW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30416, 191},
-    /* 3358 */ {I_VPROTW, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10498, 191},
-    /* 3359 */ {I_VPROTW, 2, {XMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10506, 191},
-    /* 3360 */ {I_VPSHAB, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30423, 191},
-    /* 3361 */ {I_VPSHAB, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30430, 191},
-    /* 3362 */ {I_VPSHAB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30437, 191},
-    /* 3363 */ {I_VPSHAB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30444, 191},
-    /* 3364 */ {I_VPSHAD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30451, 191},
-    /* 3365 */ {I_VPSHAD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30458, 191},
-    /* 3366 */ {I_VPSHAD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30465, 191},
-    /* 3367 */ {I_VPSHAD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30472, 191},
-    /* 3368 */ {I_VPSHAQ, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30479, 191},
-    /* 3369 */ {I_VPSHAQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30486, 191},
-    /* 3370 */ {I_VPSHAQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30493, 191},
-    /* 3371 */ {I_VPSHAQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30500, 191},
-    /* 3372 */ {I_VPSHAW, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30507, 191},
-    /* 3373 */ {I_VPSHAW, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30514, 191},
-    /* 3374 */ {I_VPSHAW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30521, 191},
-    /* 3375 */ {I_VPSHAW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30528, 191},
-    /* 3376 */ {I_VPSHLB, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30535, 191},
-    /* 3377 */ {I_VPSHLB, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30542, 191},
-    /* 3378 */ {I_VPSHLB, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30549, 191},
-    /* 3379 */ {I_VPSHLB, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30556, 191},
-    /* 3380 */ {I_VPSHLD, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30563, 191},
-    /* 3381 */ {I_VPSHLD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30570, 191},
-    /* 3382 */ {I_VPSHLD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30577, 191},
-    /* 3383 */ {I_VPSHLD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30584, 191},
-    /* 3384 */ {I_VPSHLQ, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30591, 191},
-    /* 3385 */ {I_VPSHLQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30598, 191},
-    /* 3386 */ {I_VPSHLQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30605, 191},
-    /* 3387 */ {I_VPSHLQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30612, 191},
-    /* 3388 */ {I_VPSHLW, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+30619, 191},
-    /* 3389 */ {I_VPSHLW, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+30626, 191},
-    /* 3390 */ {I_VPSHLW, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+30633, 191},
-    /* 3391 */ {I_VPSHLW, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+30640, 191},
-    /* 3392 */ {I_VMPSADBW, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10514, 192},
-    /* 3393 */ {I_VMPSADBW, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10522, 192},
-    /* 3394 */ {I_VPABSB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30647, 192},
-    /* 3395 */ {I_VPABSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30654, 192},
-    /* 3396 */ {I_VPABSD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30661, 192},
-    /* 3397 */ {I_VPACKSSWB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30668, 192},
-    /* 3398 */ {I_VPACKSSWB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30675, 192},
-    /* 3399 */ {I_VPACKSSDW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30682, 192},
-    /* 3400 */ {I_VPACKSSDW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30689, 192},
-    /* 3401 */ {I_VPACKUSDW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30696, 192},
-    /* 3402 */ {I_VPACKUSDW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30703, 192},
-    /* 3403 */ {I_VPACKUSWB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30710, 192},
-    /* 3404 */ {I_VPACKUSWB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30717, 192},
-    /* 3405 */ {I_VPADDB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30724, 192},
-    /* 3406 */ {I_VPADDB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30731, 192},
-    /* 3407 */ {I_VPADDW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30738, 192},
-    /* 3408 */ {I_VPADDW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30745, 192},
-    /* 3409 */ {I_VPADDD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30752, 192},
-    /* 3410 */ {I_VPADDD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30759, 192},
-    /* 3411 */ {I_VPADDQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30766, 192},
-    /* 3412 */ {I_VPADDQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30773, 192},
-    /* 3413 */ {I_VPADDSB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30780, 192},
-    /* 3414 */ {I_VPADDSB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30787, 192},
-    /* 3415 */ {I_VPADDSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30794, 192},
-    /* 3416 */ {I_VPADDSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30801, 192},
-    /* 3417 */ {I_VPADDUSB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30808, 192},
-    /* 3418 */ {I_VPADDUSB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30815, 192},
-    /* 3419 */ {I_VPADDUSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30822, 192},
-    /* 3420 */ {I_VPADDUSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30829, 192},
-    /* 3421 */ {I_VPALIGNR, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10530, 192},
-    /* 3422 */ {I_VPALIGNR, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10538, 192},
-    /* 3423 */ {I_VPAND, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30836, 192},
-    /* 3424 */ {I_VPAND, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30843, 192},
-    /* 3425 */ {I_VPANDN, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30850, 192},
-    /* 3426 */ {I_VPANDN, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30857, 192},
-    /* 3427 */ {I_VPAVGB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30864, 192},
-    /* 3428 */ {I_VPAVGB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30871, 192},
-    /* 3429 */ {I_VPAVGW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30878, 192},
-    /* 3430 */ {I_VPAVGW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30885, 192},
-    /* 3431 */ {I_VPBLENDVB, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0}, NO_DECORATOR, nasm_bytecodes+10546, 192},
-    /* 3432 */ {I_VPBLENDVB, 3, {YMM_L16,RM_YMM_L16|BITS256,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10554, 192},
-    /* 3433 */ {I_VPBLENDW, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10562, 192},
-    /* 3434 */ {I_VPBLENDW, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10570, 192},
-    /* 3435 */ {I_VPCMPEQB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30892, 192},
-    /* 3436 */ {I_VPCMPEQB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30899, 192},
-    /* 3437 */ {I_VPCMPEQW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30906, 192},
-    /* 3438 */ {I_VPCMPEQW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30913, 192},
-    /* 3439 */ {I_VPCMPEQD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30920, 192},
-    /* 3440 */ {I_VPCMPEQD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30927, 192},
-    /* 3441 */ {I_VPCMPEQQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30934, 192},
-    /* 3442 */ {I_VPCMPEQQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30941, 192},
-    /* 3443 */ {I_VPCMPGTB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30948, 192},
-    /* 3444 */ {I_VPCMPGTB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30955, 192},
-    /* 3445 */ {I_VPCMPGTW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30962, 192},
-    /* 3446 */ {I_VPCMPGTW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30969, 192},
-    /* 3447 */ {I_VPCMPGTD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30976, 192},
-    /* 3448 */ {I_VPCMPGTD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30983, 192},
-    /* 3449 */ {I_VPCMPGTQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+30990, 192},
-    /* 3450 */ {I_VPCMPGTQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+30997, 192},
-    /* 3451 */ {I_VPHADDW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31004, 192},
-    /* 3452 */ {I_VPHADDW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31011, 192},
-    /* 3453 */ {I_VPHADDD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31018, 192},
-    /* 3454 */ {I_VPHADDD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31025, 192},
-    /* 3455 */ {I_VPHADDSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31032, 192},
-    /* 3456 */ {I_VPHADDSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31039, 192},
-    /* 3457 */ {I_VPHSUBW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31046, 192},
-    /* 3458 */ {I_VPHSUBW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31053, 192},
-    /* 3459 */ {I_VPHSUBD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31060, 192},
-    /* 3460 */ {I_VPHSUBD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31067, 192},
-    /* 3461 */ {I_VPHSUBSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31074, 192},
-    /* 3462 */ {I_VPHSUBSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31081, 192},
-    /* 3463 */ {I_VPMADDUBSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31088, 192},
-    /* 3464 */ {I_VPMADDUBSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31095, 192},
-    /* 3465 */ {I_VPMADDWD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31102, 192},
-    /* 3466 */ {I_VPMADDWD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31109, 192},
-    /* 3467 */ {I_VPMAXSB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31116, 192},
-    /* 3468 */ {I_VPMAXSB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31123, 192},
-    /* 3469 */ {I_VPMAXSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31130, 192},
-    /* 3470 */ {I_VPMAXSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31137, 192},
-    /* 3471 */ {I_VPMAXSD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31144, 192},
-    /* 3472 */ {I_VPMAXSD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31151, 192},
-    /* 3473 */ {I_VPMAXUB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31158, 192},
-    /* 3474 */ {I_VPMAXUB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31165, 192},
-    /* 3475 */ {I_VPMAXUW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31172, 192},
-    /* 3476 */ {I_VPMAXUW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31179, 192},
-    /* 3477 */ {I_VPMAXUD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31186, 192},
-    /* 3478 */ {I_VPMAXUD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31193, 192},
-    /* 3479 */ {I_VPMINSB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31200, 192},
-    /* 3480 */ {I_VPMINSB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31207, 192},
-    /* 3481 */ {I_VPMINSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31214, 192},
-    /* 3482 */ {I_VPMINSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31221, 192},
-    /* 3483 */ {I_VPMINSD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31228, 192},
-    /* 3484 */ {I_VPMINSD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31235, 192},
-    /* 3485 */ {I_VPMINUB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31242, 192},
-    /* 3486 */ {I_VPMINUB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31249, 192},
-    /* 3487 */ {I_VPMINUW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31256, 192},
-    /* 3488 */ {I_VPMINUW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31263, 192},
-    /* 3489 */ {I_VPMINUD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31270, 192},
-    /* 3490 */ {I_VPMINUD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31277, 192},
-    /* 3491 */ {I_VPMOVMSKB, 2, {REG_GPR|BITS32,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31284, 192},
-    /* 3492 */ {I_VPMOVMSKB, 2, {REG_GPR|BITS64,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31284, 192},
-    /* 3493 */ {I_VPMOVSXBW, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31291, 192},
-    /* 3494 */ {I_VPMOVSXBD, 2, {YMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+31298, 192},
-    /* 3495 */ {I_VPMOVSXBD, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31298, 192},
-    /* 3496 */ {I_VPMOVSXBQ, 2, {YMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+31305, 192},
-    /* 3497 */ {I_VPMOVSXBQ, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31305, 192},
-    /* 3498 */ {I_VPMOVSXWD, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31312, 192},
-    /* 3499 */ {I_VPMOVSXWQ, 2, {YMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+31319, 192},
-    /* 3500 */ {I_VPMOVSXWQ, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31319, 192},
-    /* 3501 */ {I_VPMOVSXDQ, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31326, 192},
-    /* 3502 */ {I_VPMOVZXBW, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31333, 192},
-    /* 3503 */ {I_VPMOVZXBD, 2, {YMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+31340, 192},
-    /* 3504 */ {I_VPMOVZXBD, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31340, 192},
-    /* 3505 */ {I_VPMOVZXBQ, 2, {YMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+31347, 192},
-    /* 3506 */ {I_VPMOVZXBQ, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31347, 192},
-    /* 3507 */ {I_VPMOVZXWD, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31354, 192},
-    /* 3508 */ {I_VPMOVZXWQ, 2, {YMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+31361, 192},
-    /* 3509 */ {I_VPMOVZXWQ, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31361, 192},
-    /* 3510 */ {I_VPMOVZXDQ, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31368, 192},
-    /* 3511 */ {I_VPMULDQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31375, 192},
-    /* 3512 */ {I_VPMULDQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31382, 192},
-    /* 3513 */ {I_VPMULHRSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31389, 192},
-    /* 3514 */ {I_VPMULHRSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31396, 192},
-    /* 3515 */ {I_VPMULHUW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31403, 192},
-    /* 3516 */ {I_VPMULHUW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31410, 192},
-    /* 3517 */ {I_VPMULHW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31417, 192},
-    /* 3518 */ {I_VPMULHW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31424, 192},
-    /* 3519 */ {I_VPMULLW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31431, 192},
-    /* 3520 */ {I_VPMULLW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31438, 192},
-    /* 3521 */ {I_VPMULLD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31445, 192},
-    /* 3522 */ {I_VPMULLD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31452, 192},
-    /* 3523 */ {I_VPMULUDQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31459, 192},
-    /* 3524 */ {I_VPMULUDQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31466, 192},
-    /* 3525 */ {I_VPOR, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31473, 192},
-    /* 3526 */ {I_VPOR, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31480, 192},
-    /* 3527 */ {I_VPSADBW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31487, 192},
-    /* 3528 */ {I_VPSADBW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31494, 192},
-    /* 3529 */ {I_VPSHUFB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31501, 192},
-    /* 3530 */ {I_VPSHUFB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31508, 192},
-    /* 3531 */ {I_VPSHUFD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10578, 192},
-    /* 3532 */ {I_VPSHUFHW, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10586, 192},
-    /* 3533 */ {I_VPSHUFLW, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10594, 192},
-    /* 3534 */ {I_VPSIGNB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31515, 192},
-    /* 3535 */ {I_VPSIGNB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31522, 192},
-    /* 3536 */ {I_VPSIGNW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31529, 192},
-    /* 3537 */ {I_VPSIGNW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31536, 192},
-    /* 3538 */ {I_VPSIGND, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31543, 192},
-    /* 3539 */ {I_VPSIGND, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31550, 192},
-    /* 3540 */ {I_VPSLLDQ, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10602, 192},
-    /* 3541 */ {I_VPSLLDQ, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10610, 192},
-    /* 3542 */ {I_VPSLLW, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31557, 192},
-    /* 3543 */ {I_VPSLLW, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31564, 192},
-    /* 3544 */ {I_VPSLLW, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10618, 192},
-    /* 3545 */ {I_VPSLLW, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10626, 192},
-    /* 3546 */ {I_VPSLLD, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31571, 192},
-    /* 3547 */ {I_VPSLLD, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31578, 192},
-    /* 3548 */ {I_VPSLLD, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10634, 192},
-    /* 3549 */ {I_VPSLLD, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10642, 192},
-    /* 3550 */ {I_VPSLLQ, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31585, 192},
-    /* 3551 */ {I_VPSLLQ, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31592, 192},
-    /* 3552 */ {I_VPSLLQ, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10650, 192},
-    /* 3553 */ {I_VPSLLQ, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10658, 192},
-    /* 3554 */ {I_VPSRAW, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31599, 192},
-    /* 3555 */ {I_VPSRAW, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31606, 192},
-    /* 3556 */ {I_VPSRAW, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10666, 192},
-    /* 3557 */ {I_VPSRAW, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10674, 192},
-    /* 3558 */ {I_VPSRAD, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31613, 192},
-    /* 3559 */ {I_VPSRAD, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31620, 192},
-    /* 3560 */ {I_VPSRAD, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10682, 192},
-    /* 3561 */ {I_VPSRAD, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10690, 192},
-    /* 3562 */ {I_VPSRLDQ, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10698, 192},
-    /* 3563 */ {I_VPSRLDQ, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10706, 192},
-    /* 3564 */ {I_VPSRLW, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31627, 192},
-    /* 3565 */ {I_VPSRLW, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31634, 192},
-    /* 3566 */ {I_VPSRLW, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10714, 192},
-    /* 3567 */ {I_VPSRLW, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10722, 192},
-    /* 3568 */ {I_VPSRLD, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31641, 192},
-    /* 3569 */ {I_VPSRLD, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31648, 192},
-    /* 3570 */ {I_VPSRLD, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10730, 192},
-    /* 3571 */ {I_VPSRLD, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10738, 192},
-    /* 3572 */ {I_VPSRLQ, 3, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+31655, 192},
-    /* 3573 */ {I_VPSRLQ, 2, {YMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31662, 192},
-    /* 3574 */ {I_VPSRLQ, 3, {YMM_L16,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10746, 192},
-    /* 3575 */ {I_VPSRLQ, 2, {YMM_L16,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+10754, 192},
-    /* 3576 */ {I_VPSUBB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31669, 192},
-    /* 3577 */ {I_VPSUBB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31676, 192},
-    /* 3578 */ {I_VPSUBW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31683, 192},
-    /* 3579 */ {I_VPSUBW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31690, 192},
-    /* 3580 */ {I_VPSUBD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31697, 192},
-    /* 3581 */ {I_VPSUBD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31704, 192},
-    /* 3582 */ {I_VPSUBQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31711, 192},
-    /* 3583 */ {I_VPSUBQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31718, 192},
-    /* 3584 */ {I_VPSUBSB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31725, 192},
-    /* 3585 */ {I_VPSUBSB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31732, 192},
-    /* 3586 */ {I_VPSUBSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31739, 192},
-    /* 3587 */ {I_VPSUBSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31746, 192},
-    /* 3588 */ {I_VPSUBUSB, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31753, 192},
-    /* 3589 */ {I_VPSUBUSB, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31760, 192},
-    /* 3590 */ {I_VPSUBUSW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31767, 192},
-    /* 3591 */ {I_VPSUBUSW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31774, 192},
-    /* 3592 */ {I_VPUNPCKHBW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31781, 192},
-    /* 3593 */ {I_VPUNPCKHBW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31788, 192},
-    /* 3594 */ {I_VPUNPCKHWD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31795, 192},
-    /* 3595 */ {I_VPUNPCKHWD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31802, 192},
-    /* 3596 */ {I_VPUNPCKHDQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31809, 192},
-    /* 3597 */ {I_VPUNPCKHDQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31816, 192},
-    /* 3598 */ {I_VPUNPCKHQDQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31823, 192},
-    /* 3599 */ {I_VPUNPCKHQDQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31830, 192},
-    /* 3600 */ {I_VPUNPCKLBW, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31837, 192},
-    /* 3601 */ {I_VPUNPCKLBW, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31844, 192},
-    /* 3602 */ {I_VPUNPCKLWD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31851, 192},
-    /* 3603 */ {I_VPUNPCKLWD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31858, 192},
-    /* 3604 */ {I_VPUNPCKLDQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31865, 192},
-    /* 3605 */ {I_VPUNPCKLDQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31872, 192},
-    /* 3606 */ {I_VPUNPCKLQDQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31879, 192},
-    /* 3607 */ {I_VPUNPCKLQDQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31886, 192},
-    /* 3608 */ {I_VPXOR, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31893, 192},
-    /* 3609 */ {I_VPXOR, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31900, 192},
-    /* 3610 */ {I_VMOVNTDQA, 2, {YMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31907, 192},
-    /* 3611 */ {I_VBROADCASTSS, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26118, 192},
-    /* 3612 */ {I_VBROADCASTSS, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26125, 192},
-    /* 3613 */ {I_VBROADCASTSD, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+26132, 192},
-    /* 3614 */ {I_VBROADCASTI128, 2, {YMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+31914, 192},
-    /* 3615 */ {I_VPBLENDD, 4, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10762, 192},
-    /* 3616 */ {I_VPBLENDD, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10770, 192},
-    /* 3617 */ {I_VPBLENDD, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10778, 192},
-    /* 3618 */ {I_VPBLENDD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10786, 192},
-    /* 3619 */ {I_VPBROADCASTB, 2, {XMM_L16,MEMORY|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31921, 192},
-    /* 3620 */ {I_VPBROADCASTB, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31921, 192},
-    /* 3621 */ {I_VPBROADCASTB, 2, {YMM_L16,MEMORY|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+31928, 192},
-    /* 3622 */ {I_VPBROADCASTB, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31928, 192},
-    /* 3623 */ {I_VPBROADCASTW, 2, {XMM_L16,MEMORY|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31935, 192},
-    /* 3624 */ {I_VPBROADCASTW, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31935, 192},
-    /* 3625 */ {I_VPBROADCASTW, 2, {YMM_L16,MEMORY|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31942, 192},
-    /* 3626 */ {I_VPBROADCASTW, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31942, 192},
-    /* 3627 */ {I_VPBROADCASTD, 2, {XMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+31949, 192},
-    /* 3628 */ {I_VPBROADCASTD, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31949, 192},
-    /* 3629 */ {I_VPBROADCASTD, 2, {YMM_L16,MEMORY|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+31956, 192},
-    /* 3630 */ {I_VPBROADCASTD, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31956, 192},
-    /* 3631 */ {I_VPBROADCASTQ, 2, {XMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+31963, 192},
-    /* 3632 */ {I_VPBROADCASTQ, 2, {XMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31963, 192},
-    /* 3633 */ {I_VPBROADCASTQ, 2, {YMM_L16,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+31970, 192},
-    /* 3634 */ {I_VPBROADCASTQ, 2, {YMM_L16,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+31970, 192},
-    /* 3635 */ {I_VPERMD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31977, 192},
-    /* 3636 */ {I_VPERMD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31984, 192},
-    /* 3637 */ {I_VPERMPD, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10794, 192},
-    /* 3638 */ {I_VPERMPS, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+31991, 192},
-    /* 3639 */ {I_VPERMPS, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+31998, 192},
-    /* 3640 */ {I_VPERMQ, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10802, 192},
-    /* 3641 */ {I_VPERM2I128, 4, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10810, 192},
-    /* 3642 */ {I_VPERM2I128, 3, {YMM_L16,RM_YMM_L16|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10818, 192},
-    /* 3643 */ {I_VEXTRACTI128, 3, {RM_XMM_L16|BITS128,YMM_L16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10826, 192},
-    /* 3644 */ {I_VINSERTI128, 4, {YMM_L16,YMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+10834, 192},
-    /* 3645 */ {I_VINSERTI128, 3, {YMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10842, 192},
-    /* 3646 */ {I_VPMASKMOVD, 3, {XMM_L16,XMM_L16,MEMORY|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+32005, 192},
-    /* 3647 */ {I_VPMASKMOVD, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+32012, 192},
-    /* 3648 */ {I_VPMASKMOVD, 3, {YMM_L16,YMM_L16,MEMORY|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+32019, 192},
-    /* 3649 */ {I_VPMASKMOVD, 2, {YMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+32026, 192},
-    /* 3650 */ {I_VPMASKMOVQ, 3, {XMM_L16,XMM_L16,MEMORY|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+32033, 192},
-    /* 3651 */ {I_VPMASKMOVQ, 2, {XMM_L16,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+32040, 192},
-    /* 3652 */ {I_VPMASKMOVQ, 3, {YMM_L16,YMM_L16,MEMORY|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+32047, 192},
-    /* 3653 */ {I_VPMASKMOVQ, 2, {YMM_L16,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+32054, 192},
-    /* 3654 */ {I_VPMASKMOVD, 3, {MEMORY|BITS128,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+32061, 192},
-    /* 3655 */ {I_VPMASKMOVD, 2, {MEMORY|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32068, 192},
-    /* 3656 */ {I_VPMASKMOVD, 3, {MEMORY|BITS256,YMM_L16,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+32075, 192},
-    /* 3657 */ {I_VPMASKMOVD, 2, {MEMORY|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32082, 192},
-    /* 3658 */ {I_VPMASKMOVQ, 3, {MEMORY|BITS128,XMM_L16,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+32089, 192},
-    /* 3659 */ {I_VPMASKMOVQ, 2, {MEMORY|BITS128,XMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32096, 192},
-    /* 3660 */ {I_VPMASKMOVQ, 3, {MEMORY|BITS256,YMM_L16,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+32103, 192},
-    /* 3661 */ {I_VPMASKMOVQ, 2, {MEMORY|BITS256,YMM_L16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32110, 192},
-    /* 3662 */ {I_VPSLLVD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+32117, 192},
-    /* 3663 */ {I_VPSLLVD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+32124, 192},
-    /* 3664 */ {I_VPSLLVQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+32131, 192},
-    /* 3665 */ {I_VPSLLVQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+32138, 192},
-    /* 3666 */ {I_VPSLLVD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+32145, 192},
-    /* 3667 */ {I_VPSLLVD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+32152, 192},
-    /* 3668 */ {I_VPSLLVQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+32159, 192},
-    /* 3669 */ {I_VPSLLVQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+32166, 192},
-    /* 3670 */ {I_VPSRAVD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+32173, 192},
-    /* 3671 */ {I_VPSRAVD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+32180, 192},
-    /* 3672 */ {I_VPSRAVD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+32187, 192},
-    /* 3673 */ {I_VPSRAVD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+32194, 192},
-    /* 3674 */ {I_VPSRLVD, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+32201, 192},
-    /* 3675 */ {I_VPSRLVD, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+32208, 192},
-    /* 3676 */ {I_VPSRLVQ, 3, {XMM_L16,XMM_L16,RM_XMM_L16|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+32215, 192},
-    /* 3677 */ {I_VPSRLVQ, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+32222, 192},
-    /* 3678 */ {I_VPSRLVD, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+32229, 192},
-    /* 3679 */ {I_VPSRLVD, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+32236, 192},
-    /* 3680 */ {I_VPSRLVQ, 3, {YMM_L16,YMM_L16,RM_YMM_L16|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+32243, 192},
-    /* 3681 */ {I_VPSRLVQ, 2, {YMM_L16,RM_YMM_L16|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+32250, 192},
-    /* 3682 */ {I_VGATHERDPD, 3, {XMM_L16,XMEM|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10850, 192},
-    /* 3683 */ {I_VGATHERQPD, 3, {XMM_L16,XMEM|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10858, 192},
-    /* 3684 */ {I_VGATHERDPD, 3, {YMM_L16,XMEM|BITS64,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10866, 192},
-    /* 3685 */ {I_VGATHERQPD, 3, {YMM_L16,YMEM|BITS64,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10874, 192},
-    /* 3686 */ {I_VGATHERDPS, 3, {XMM_L16,XMEM|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10882, 192},
-    /* 3687 */ {I_VGATHERQPS, 3, {XMM_L16,XMEM|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10890, 192},
-    /* 3688 */ {I_VGATHERDPS, 3, {YMM_L16,YMEM|BITS32,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10898, 192},
-    /* 3689 */ {I_VGATHERQPS, 3, {XMM_L16,YMEM|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10906, 192},
-    /* 3690 */ {I_VPGATHERDD, 3, {XMM_L16,XMEM|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10914, 192},
-    /* 3691 */ {I_VPGATHERQD, 3, {XMM_L16,XMEM|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10922, 192},
-    /* 3692 */ {I_VPGATHERDD, 3, {YMM_L16,YMEM|BITS32,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10930, 192},
-    /* 3693 */ {I_VPGATHERQD, 3, {XMM_L16,YMEM|BITS32,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10938, 192},
-    /* 3694 */ {I_VPGATHERDQ, 3, {XMM_L16,XMEM|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10946, 192},
-    /* 3695 */ {I_VPGATHERQQ, 3, {XMM_L16,XMEM|BITS64,XMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10954, 192},
-    /* 3696 */ {I_VPGATHERDQ, 3, {YMM_L16,XMEM|BITS64,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10962, 192},
-    /* 3697 */ {I_VPGATHERQQ, 3, {YMM_L16,YMEM|BITS64,YMM_L16,0,0}, NO_DECORATOR, nasm_bytecodes+10970, 192},
-    /* 3698 */ {I_XABORT, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38386, 193},
-    /* 3699 */ {I_XABORT, 1, {IMMEDIATE|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38386, 193},
-    /* 3700 */ {I_XBEGIN, 1, {IMMEDIATE,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35398, 193},
-    /* 3701 */ {I_XBEGIN, 1, {IMMEDIATE|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35404, 194},
-    /* 3702 */ {I_XBEGIN, 1, {IMMEDIATE|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35410, 194},
-    /* 3703 */ {I_XBEGIN, 1, {IMMEDIATE|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35416, 195},
-    /* 3704 */ {I_XEND, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38391, 193},
-    /* 3705 */ {I_XTEST, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38396, 196},
-    /* 3706 */ {I_ANDN, 3, {REG_GPR|BITS32,REG_GPR|BITS32,RM_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32257, 197},
-    /* 3707 */ {I_ANDN, 3, {REG_GPR|BITS64,REG_GPR|BITS64,RM_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32264, 198},
-    /* 3708 */ {I_BEXTR, 3, {REG_GPR|BITS32,RM_GPR|BITS32,REG_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32271, 197},
-    /* 3709 */ {I_BEXTR, 3, {REG_GPR|BITS64,RM_GPR|BITS64,REG_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32278, 198},
-    /* 3710 */ {I_BEXTR, 3, {REG_GPR|BITS32,RM_GPR|BITS32,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+10978, 199},
-    /* 3711 */ {I_BEXTR, 3, {REG_GPR|BITS64,RM_GPR|BITS64,IMMEDIATE|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+10986, 200},
-    /* 3712 */ {I_BLCI, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32285, 199},
-    /* 3713 */ {I_BLCI, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32292, 200},
-    /* 3714 */ {I_BLCIC, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32299, 199},
-    /* 3715 */ {I_BLCIC, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32306, 200},
-    /* 3716 */ {I_BLSI, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32313, 197},
-    /* 3717 */ {I_BLSI, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32320, 198},
-    /* 3718 */ {I_BLSIC, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32327, 199},
-    /* 3719 */ {I_BLSIC, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32334, 200},
-    /* 3720 */ {I_BLCFILL, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32341, 199},
-    /* 3721 */ {I_BLCFILL, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32348, 200},
-    /* 3722 */ {I_BLSFILL, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32355, 199},
-    /* 3723 */ {I_BLSFILL, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32362, 200},
-    /* 3724 */ {I_BLCMSK, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32369, 199},
-    /* 3725 */ {I_BLCMSK, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32376, 200},
-    /* 3726 */ {I_BLSMSK, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32383, 197},
-    /* 3727 */ {I_BLSMSK, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32390, 198},
-    /* 3728 */ {I_BLSR, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32397, 197},
-    /* 3729 */ {I_BLSR, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32404, 198},
-    /* 3730 */ {I_BLCS, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32411, 199},
-    /* 3731 */ {I_BLCS, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32418, 200},
-    /* 3732 */ {I_BZHI, 3, {REG_GPR|BITS32,RM_GPR|BITS32,REG_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32425, 201},
-    /* 3733 */ {I_BZHI, 3, {REG_GPR|BITS64,RM_GPR|BITS64,REG_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32432, 202},
-    /* 3734 */ {I_MULX, 3, {REG_GPR|BITS32,REG_GPR|BITS32,RM_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32439, 201},
-    /* 3735 */ {I_MULX, 3, {REG_GPR|BITS64,REG_GPR|BITS64,RM_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32446, 202},
-    /* 3736 */ {I_PDEP, 3, {REG_GPR|BITS32,REG_GPR|BITS32,RM_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32453, 201},
-    /* 3737 */ {I_PDEP, 3, {REG_GPR|BITS64,REG_GPR|BITS64,RM_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32460, 202},
-    /* 3738 */ {I_PEXT, 3, {REG_GPR|BITS32,REG_GPR|BITS32,RM_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32467, 201},
-    /* 3739 */ {I_PEXT, 3, {REG_GPR|BITS64,REG_GPR|BITS64,RM_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32474, 202},
-    /* 3740 */ {I_RORX, 3, {REG_GPR|BITS32,RM_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+10994, 201},
-    /* 3741 */ {I_RORX, 3, {REG_GPR|BITS64,RM_GPR|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11002, 202},
-    /* 3742 */ {I_SARX, 3, {REG_GPR|BITS32,RM_GPR|BITS32,REG_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32481, 201},
-    /* 3743 */ {I_SARX, 3, {REG_GPR|BITS64,RM_GPR|BITS64,REG_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32488, 202},
-    /* 3744 */ {I_SHLX, 3, {REG_GPR|BITS32,RM_GPR|BITS32,REG_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32495, 201},
-    /* 3745 */ {I_SHLX, 3, {REG_GPR|BITS64,RM_GPR|BITS64,REG_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32502, 202},
-    /* 3746 */ {I_SHRX, 3, {REG_GPR|BITS32,RM_GPR|BITS32,REG_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+32509, 201},
-    /* 3747 */ {I_SHRX, 3, {REG_GPR|BITS64,RM_GPR|BITS64,REG_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+32516, 202},
-    /* 3748 */ {I_TZCNT, 2, {REG_GPR|BITS16,RM_GPR|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32523, 203},
-    /* 3749 */ {I_TZCNT, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32530, 203},
-    /* 3750 */ {I_TZCNT, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32537, 204},
-    /* 3751 */ {I_TZMSK, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32544, 199},
-    /* 3752 */ {I_TZMSK, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32551, 200},
-    /* 3753 */ {I_T1MSKC, 2, {REG_GPR|BITS32,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32558, 199},
-    /* 3754 */ {I_T1MSKC, 2, {REG_GPR|BITS64,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32565, 200},
-    /* 3755 */ {I_PREFETCHWT1, 1, {MEMORY|BITS8,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38401, 205},
-    /* 3756 */ {I_BNDMK, 2, {BNDREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35422, 206},
-    /* 3757 */ {I_BNDCL, 2, {BNDREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+32573, 207},
-    /* 3758 */ {I_BNDCL, 2, {BNDREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32573, 208},
-    /* 3759 */ {I_BNDCL, 2, {BNDREG,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32572, 209},
-    /* 3760 */ {I_BNDCU, 2, {BNDREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+32580, 207},
-    /* 3761 */ {I_BNDCU, 2, {BNDREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32580, 208},
-    /* 3762 */ {I_BNDCU, 2, {BNDREG,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32579, 209},
-    /* 3763 */ {I_BNDCN, 2, {BNDREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+32587, 207},
-    /* 3764 */ {I_BNDCN, 2, {BNDREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32587, 208},
-    /* 3765 */ {I_BNDCN, 2, {BNDREG,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32586, 209},
-    /* 3766 */ {I_BNDMOV, 2, {BNDREG,BNDREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+35428, 207},
-    /* 3767 */ {I_BNDMOV, 2, {BNDREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35428, 207},
-    /* 3768 */ {I_BNDMOV, 2, {BNDREG,BNDREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+35434, 207},
-    /* 3769 */ {I_BNDMOV, 2, {MEMORY,BNDREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+35434, 207},
-    /* 3770 */ {I_BNDLDX, 2, {BNDREG,MEMORY,0,0,0}, NO_DECORATOR, nasm_bytecodes+35429, 206},
-    /* 3771 */ {I_BNDLDX, 3, {BNDREG,MEMORY,REG_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+35440, 210},
-    /* 3772 */ {I_BNDLDX, 3, {BNDREG,MEMORY,REG_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+35440, 211},
-    /* 3773 */ {I_BNDSTX, 2, {MEMORY,BNDREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+35435, 206},
-    /* 3774 */ {I_BNDSTX, 3, {MEMORY,REG_GPR|BITS32,BNDREG,0,0}, NO_DECORATOR, nasm_bytecodes+35446, 210},
-    /* 3775 */ {I_BNDSTX, 3, {MEMORY,REG_GPR|BITS64,BNDREG,0,0}, NO_DECORATOR, nasm_bytecodes+35446, 211},
-    /* 3776 */ {I_BNDSTX, 3, {MEMORY,BNDREG,REG_GPR|BITS32,0,0}, NO_DECORATOR, nasm_bytecodes+35452, 210},
-    /* 3777 */ {I_BNDSTX, 3, {MEMORY,BNDREG,REG_GPR|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+35452, 211},
-    /* 3778 */ {I_KADDB, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32593, 212},
-    /* 3779 */ {I_KADDD, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32600, 212},
-    /* 3780 */ {I_KADDQ, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32607, 212},
-    /* 3781 */ {I_KADDW, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32614, 212},
-    /* 3782 */ {I_KANDB, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32621, 212},
-    /* 3783 */ {I_KANDD, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32628, 212},
-    /* 3784 */ {I_KANDNB, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32635, 212},
-    /* 3785 */ {I_KANDND, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32642, 212},
-    /* 3786 */ {I_KANDNQ, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32649, 212},
-    /* 3787 */ {I_KANDNW, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32656, 212},
-    /* 3788 */ {I_KANDQ, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32663, 212},
-    /* 3789 */ {I_KANDW, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32670, 212},
-    /* 3790 */ {I_KMOVB, 2, {KREG,RM_K|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+32677, 212},
-    /* 3791 */ {I_KMOVB, 2, {MEMORY|BITS8,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32684, 212},
-    /* 3792 */ {I_KMOVB, 2, {KREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32691, 212},
-    /* 3793 */ {I_KMOVB, 2, {REG_GPR|BITS32,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32698, 212},
-    /* 3794 */ {I_KMOVD, 2, {KREG,RM_K|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32705, 212},
-    /* 3795 */ {I_KMOVD, 2, {MEMORY|BITS32,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32712, 212},
-    /* 3796 */ {I_KMOVD, 2, {KREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32719, 212},
-    /* 3797 */ {I_KMOVD, 2, {REG_GPR|BITS32,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32726, 212},
-    /* 3798 */ {I_KMOVQ, 2, {KREG,RM_K|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32733, 212},
-    /* 3799 */ {I_KMOVQ, 2, {MEMORY|BITS64,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32740, 212},
-    /* 3800 */ {I_KMOVQ, 2, {KREG,REG_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+32747, 212},
-    /* 3801 */ {I_KMOVQ, 2, {REG_GPR|BITS64,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32754, 212},
-    /* 3802 */ {I_KMOVW, 2, {KREG,RM_K|BITS16,0,0,0}, NO_DECORATOR, nasm_bytecodes+32761, 212},
-    /* 3803 */ {I_KMOVW, 2, {MEMORY|BITS16,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32768, 212},
-    /* 3804 */ {I_KMOVW, 2, {KREG,REG_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+32775, 212},
-    /* 3805 */ {I_KMOVW, 2, {REG_GPR|BITS32,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32782, 212},
-    /* 3806 */ {I_KNOTB, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32789, 212},
-    /* 3807 */ {I_KNOTD, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32796, 212},
-    /* 3808 */ {I_KNOTQ, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32803, 212},
-    /* 3809 */ {I_KNOTW, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32810, 212},
-    /* 3810 */ {I_KORB, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32817, 212},
-    /* 3811 */ {I_KORD, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32824, 212},
-    /* 3812 */ {I_KORQ, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32831, 212},
-    /* 3813 */ {I_KORTESTB, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32838, 212},
-    /* 3814 */ {I_KORTESTD, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32845, 212},
-    /* 3815 */ {I_KORTESTQ, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32852, 212},
-    /* 3816 */ {I_KORTESTW, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32859, 212},
-    /* 3817 */ {I_KORW, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32866, 212},
-    /* 3818 */ {I_KSHIFTLB, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11010, 212},
-    /* 3819 */ {I_KSHIFTLD, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11018, 212},
-    /* 3820 */ {I_KSHIFTLQ, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11026, 212},
-    /* 3821 */ {I_KSHIFTLW, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11034, 212},
-    /* 3822 */ {I_KSHIFTRB, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11042, 212},
-    /* 3823 */ {I_KSHIFTRD, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11050, 212},
-    /* 3824 */ {I_KSHIFTRQ, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11058, 212},
-    /* 3825 */ {I_KSHIFTRW, 3, {KREG,KREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+11066, 212},
-    /* 3826 */ {I_KTESTB, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32873, 212},
-    /* 3827 */ {I_KTESTD, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32880, 212},
-    /* 3828 */ {I_KTESTQ, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32887, 212},
-    /* 3829 */ {I_KTESTW, 2, {KREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+32894, 212},
-    /* 3830 */ {I_KUNPCKBW, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32901, 212},
-    /* 3831 */ {I_KUNPCKDQ, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32908, 212},
-    /* 3832 */ {I_KUNPCKWD, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32915, 212},
-    /* 3833 */ {I_KXNORB, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32922, 212},
-    /* 3834 */ {I_KXNORD, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32929, 212},
-    /* 3835 */ {I_KXNORQ, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32936, 212},
-    /* 3836 */ {I_KXNORW, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32943, 212},
-    /* 3837 */ {I_KXORB, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32950, 212},
-    /* 3838 */ {I_KXORD, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32957, 212},
-    /* 3839 */ {I_KXORQ, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32964, 212},
-    /* 3840 */ {I_KXORW, 3, {KREG,KREG,KREG,0,0}, NO_DECORATOR, nasm_bytecodes+32971, 212},
-    /* 3841 */ {I_SHA1MSG1, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35458, 213},
-    /* 3842 */ {I_SHA1MSG2, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35464, 213},
-    /* 3843 */ {I_SHA1NEXTE, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35470, 213},
-    /* 3844 */ {I_SHA1RNDS4, 3, {XMM_L16,RM_XMM_L16|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+32978, 213},
-    /* 3845 */ {I_SHA256MSG1, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35476, 213},
-    /* 3846 */ {I_SHA256MSG2, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35482, 213},
-    /* 3847 */ {I_SHA256RNDS2, 3, {XMM_L16,RM_XMM_L16|BITS128,XMM0,0,0}, NO_DECORATOR, nasm_bytecodes+35488, 213},
-    /* 3848 */ {I_SHA256RNDS2, 2, {XMM_L16,RM_XMM_L16|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+35488, 213},
-    /* 3849 */ {I_VADDPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11074, 214},
-    /* 3850 */ {I_VADDPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11082, 214},
-    /* 3851 */ {I_VADDPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11090, 214},
-    /* 3852 */ {I_VADDPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11098, 214},
-    /* 3853 */ {I_VADDPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+11106, 215},
-    /* 3854 */ {I_VADDPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+11114, 215},
-    /* 3855 */ {I_VADDPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11122, 214},
-    /* 3856 */ {I_VADDPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11130, 214},
-    /* 3857 */ {I_VADDPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11138, 214},
-    /* 3858 */ {I_VADDPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11146, 214},
-    /* 3859 */ {I_VADDPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+11154, 215},
-    /* 3860 */ {I_VADDPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+11162, 215},
-    /* 3861 */ {I_VADDSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+11170, 215},
-    /* 3862 */ {I_VADDSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+11178, 215},
-    /* 3863 */ {I_VADDSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+11186, 215},
-    /* 3864 */ {I_VADDSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+11194, 215},
-    /* 3865 */ {I_VALIGND, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+3636, 214},
-    /* 3866 */ {I_VALIGND, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+3645, 214},
-    /* 3867 */ {I_VALIGND, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+3654, 214},
-    /* 3868 */ {I_VALIGND, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+3663, 214},
-    /* 3869 */ {I_VALIGND, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+3672, 215},
-    /* 3870 */ {I_VALIGND, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+3681, 215},
-    /* 3871 */ {I_VALIGNQ, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+3690, 214},
-    /* 3872 */ {I_VALIGNQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+3699, 214},
-    /* 3873 */ {I_VALIGNQ, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+3708, 214},
-    /* 3874 */ {I_VALIGNQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+3717, 214},
-    /* 3875 */ {I_VALIGNQ, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+3726, 215},
-    /* 3876 */ {I_VALIGNQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+3735, 215},
-    /* 3877 */ {I_VANDNPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11202, 216},
-    /* 3878 */ {I_VANDNPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11210, 216},
-    /* 3879 */ {I_VANDNPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11218, 216},
-    /* 3880 */ {I_VANDNPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11226, 216},
-    /* 3881 */ {I_VANDNPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11234, 217},
-    /* 3882 */ {I_VANDNPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11242, 217},
-    /* 3883 */ {I_VANDNPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11250, 216},
-    /* 3884 */ {I_VANDNPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11258, 216},
-    /* 3885 */ {I_VANDNPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11266, 216},
-    /* 3886 */ {I_VANDNPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11274, 216},
-    /* 3887 */ {I_VANDNPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11282, 217},
-    /* 3888 */ {I_VANDNPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11290, 217},
-    /* 3889 */ {I_VANDPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11298, 216},
-    /* 3890 */ {I_VANDPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11306, 216},
-    /* 3891 */ {I_VANDPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11314, 216},
-    /* 3892 */ {I_VANDPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11322, 216},
-    /* 3893 */ {I_VANDPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11330, 217},
-    /* 3894 */ {I_VANDPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11338, 217},
-    /* 3895 */ {I_VANDPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11346, 216},
-    /* 3896 */ {I_VANDPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11354, 216},
-    /* 3897 */ {I_VANDPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11362, 216},
-    /* 3898 */ {I_VANDPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11370, 216},
-    /* 3899 */ {I_VANDPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11378, 217},
-    /* 3900 */ {I_VANDPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11386, 217},
-    /* 3901 */ {I_VBLENDMPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11394, 214},
-    /* 3902 */ {I_VBLENDMPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11402, 214},
-    /* 3903 */ {I_VBLENDMPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+11410, 215},
-    /* 3904 */ {I_VBLENDMPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11418, 214},
-    /* 3905 */ {I_VBLENDMPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11426, 214},
-    /* 3906 */ {I_VBLENDMPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+11434, 215},
-    /* 3907 */ {I_VBROADCASTF32X2, 2, {YMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11442, 216},
-    /* 3908 */ {I_VBROADCASTF32X2, 2, {ZMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11450, 217},
-    /* 3909 */ {I_VBROADCASTF32X4, 2, {YMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11458, 214},
-    /* 3910 */ {I_VBROADCASTF32X4, 2, {ZMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11466, 215},
-    /* 3911 */ {I_VBROADCASTF32X8, 2, {ZMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11474, 217},
-    /* 3912 */ {I_VBROADCASTF64X2, 2, {YMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11482, 216},
-    /* 3913 */ {I_VBROADCASTF64X2, 2, {ZMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11490, 217},
-    /* 3914 */ {I_VBROADCASTF64X4, 2, {ZMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11498, 215},
-    /* 3915 */ {I_VBROADCASTI32X2, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11506, 216},
-    /* 3916 */ {I_VBROADCASTI32X2, 2, {YMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11514, 216},
-    /* 3917 */ {I_VBROADCASTI32X2, 2, {ZMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11522, 217},
-    /* 3918 */ {I_VBROADCASTI32X4, 2, {YMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11530, 214},
-    /* 3919 */ {I_VBROADCASTI32X4, 2, {ZMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11538, 215},
-    /* 3920 */ {I_VBROADCASTI32X8, 2, {ZMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11546, 217},
-    /* 3921 */ {I_VBROADCASTI64X2, 2, {YMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11554, 216},
-    /* 3922 */ {I_VBROADCASTI64X2, 2, {ZMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11562, 217},
-    /* 3923 */ {I_VBROADCASTI64X4, 2, {ZMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11570, 215},
-    /* 3924 */ {I_VBROADCASTSD, 2, {YMMREG,MEMORY|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11578, 214},
-    /* 3925 */ {I_VBROADCASTSD, 2, {ZMMREG,MEMORY|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11586, 215},
-    /* 3926 */ {I_VBROADCASTSD, 2, {YMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11594, 214},
-    /* 3927 */ {I_VBROADCASTSD, 2, {ZMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11602, 215},
-    /* 3928 */ {I_VBROADCASTSS, 2, {XMMREG,MEMORY|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11610, 214},
-    /* 3929 */ {I_VBROADCASTSS, 2, {YMMREG,MEMORY|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11618, 214},
-    /* 3930 */ {I_VBROADCASTSS, 2, {ZMMREG,MEMORY|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11626, 215},
-    /* 3931 */ {I_VBROADCASTSS, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11634, 214},
-    /* 3932 */ {I_VBROADCASTSS, 2, {YMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11642, 214},
-    /* 3933 */ {I_VBROADCASTSS, 2, {ZMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11650, 215},
-    /* 3934 */ {I_VCMPPD, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+3744, 214},
-    /* 3935 */ {I_VCMPPD, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+3753, 214},
-    /* 3936 */ {I_VCMPPD, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,B64|SAE,0,0}, nasm_bytecodes+3762, 215},
-    /* 3937 */ {I_VCMPPS, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+3771, 214},
-    /* 3938 */ {I_VCMPPS, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+3780, 214},
-    /* 3939 */ {I_VCMPPS, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,B32|SAE,0,0}, nasm_bytecodes+3789, 215},
-    /* 3940 */ {I_VCMPSD, 4, {KREG,XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0}, {MASK,0,SAE,0,0}, nasm_bytecodes+3798, 215},
-    /* 3941 */ {I_VCMPSS, 4, {KREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, {MASK,0,SAE,0,0}, nasm_bytecodes+3807, 215},
-    /* 3942 */ {I_VCOMISD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+11658, 215},
-    /* 3943 */ {I_VCOMISS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+11666, 215},
-    /* 3944 */ {I_VCOMPRESSPD, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+11674, 214},
-    /* 3945 */ {I_VCOMPRESSPD, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+11682, 214},
-    /* 3946 */ {I_VCOMPRESSPD, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+11690, 215},
-    /* 3947 */ {I_VCOMPRESSPD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11698, 214},
-    /* 3948 */ {I_VCOMPRESSPD, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11706, 214},
-    /* 3949 */ {I_VCOMPRESSPD, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11714, 215},
-    /* 3950 */ {I_VCOMPRESSPS, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+11722, 214},
-    /* 3951 */ {I_VCOMPRESSPS, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+11730, 214},
-    /* 3952 */ {I_VCOMPRESSPS, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+11738, 215},
-    /* 3953 */ {I_VCOMPRESSPS, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11746, 214},
-    /* 3954 */ {I_VCOMPRESSPS, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11754, 214},
-    /* 3955 */ {I_VCOMPRESSPS, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11762, 215},
-    /* 3956 */ {I_VCVTDQ2PD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11770, 214},
-    /* 3957 */ {I_VCVTDQ2PD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11778, 214},
-    /* 3958 */ {I_VCVTDQ2PD, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+11786, 215},
-    /* 3959 */ {I_VCVTDQ2PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11794, 214},
-    /* 3960 */ {I_VCVTDQ2PS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11802, 214},
-    /* 3961 */ {I_VCVTDQ2PS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+11810, 215},
-    /* 3962 */ {I_VCVTPD2DQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11818, 214},
-    /* 3963 */ {I_VCVTPD2DQ, 2, {XMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11826, 214},
-    /* 3964 */ {I_VCVTPD2DQ, 2, {YMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+11834, 215},
-    /* 3965 */ {I_VCVTPD2PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11842, 214},
-    /* 3966 */ {I_VCVTPD2PS, 2, {XMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11850, 214},
-    /* 3967 */ {I_VCVTPD2PS, 2, {YMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+11858, 215},
-    /* 3968 */ {I_VCVTPD2QQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11866, 216},
-    /* 3969 */ {I_VCVTPD2QQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11874, 216},
-    /* 3970 */ {I_VCVTPD2QQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+11882, 217},
-    /* 3971 */ {I_VCVTPD2UDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11890, 214},
-    /* 3972 */ {I_VCVTPD2UDQ, 2, {XMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11898, 214},
-    /* 3973 */ {I_VCVTPD2UDQ, 2, {YMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+11906, 215},
-    /* 3974 */ {I_VCVTPD2UQQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11914, 216},
-    /* 3975 */ {I_VCVTPD2UQQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+11922, 216},
-    /* 3976 */ {I_VCVTPD2UQQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+11930, 217},
-    /* 3977 */ {I_VCVTPH2PS, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11938, 214},
-    /* 3978 */ {I_VCVTPH2PS, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+11946, 214},
-    /* 3979 */ {I_VCVTPH2PS, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+11954, 215},
-    /* 3980 */ {I_VCVTPS2DQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11962, 214},
-    /* 3981 */ {I_VCVTPS2DQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11970, 214},
-    /* 3982 */ {I_VCVTPS2DQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+11978, 215},
-    /* 3983 */ {I_VCVTPS2PD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11986, 214},
-    /* 3984 */ {I_VCVTPS2PD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+11994, 214},
-    /* 3985 */ {I_VCVTPS2PD, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+12002, 215},
-    /* 3986 */ {I_VCVTPS2PH, 3, {XMMREG,XMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3816, 214},
-    /* 3987 */ {I_VCVTPS2PH, 3, {XMMREG,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3825, 214},
-    /* 3988 */ {I_VCVTPS2PH, 3, {YMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+3834, 215},
-    /* 3989 */ {I_VCVTPS2PH, 3, {MEMORY|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3816, 214},
-    /* 3990 */ {I_VCVTPS2PH, 3, {MEMORY|BITS128,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3825, 214},
-    /* 3991 */ {I_VCVTPS2PH, 3, {MEMORY|BITS256,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,SAE,0,0,0}, nasm_bytecodes+3834, 215},
-    /* 3992 */ {I_VCVTPS2QQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12010, 216},
-    /* 3993 */ {I_VCVTPS2QQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12018, 216},
-    /* 3994 */ {I_VCVTPS2QQ, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+12026, 217},
-    /* 3995 */ {I_VCVTPS2UDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12034, 214},
-    /* 3996 */ {I_VCVTPS2UDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12042, 214},
-    /* 3997 */ {I_VCVTPS2UDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+12050, 215},
-    /* 3998 */ {I_VCVTPS2UQQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12058, 216},
-    /* 3999 */ {I_VCVTPS2UQQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12066, 216},
-    /* 4000 */ {I_VCVTPS2UQQ, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+12074, 217},
-    /* 4001 */ {I_VCVTQQ2PD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12082, 216},
-    /* 4002 */ {I_VCVTQQ2PD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12090, 216},
-    /* 4003 */ {I_VCVTQQ2PD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+12098, 217},
-    /* 4004 */ {I_VCVTQQ2PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12106, 216},
-    /* 4005 */ {I_VCVTQQ2PS, 2, {XMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12114, 216},
-    /* 4006 */ {I_VCVTQQ2PS, 2, {YMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+12122, 217},
-    /* 4007 */ {I_VCVTSD2SI, 2, {REG_GPR|BITS32,RM_XMM|BITS64,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12130, 215},
-    /* 4008 */ {I_VCVTSD2SI, 2, {REG_GPR|BITS64,RM_XMM|BITS64,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12138, 215},
-    /* 4009 */ {I_VCVTSD2SS, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12146, 215},
-    /* 4010 */ {I_VCVTSD2USI, 2, {REG_GPR|BITS32,RM_XMM|BITS64,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12154, 215},
-    /* 4011 */ {I_VCVTSD2USI, 2, {REG_GPR|BITS64,RM_XMM|BITS64,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12162, 215},
-    /* 4012 */ {I_VCVTSI2SD, 3, {XMMREG,XMMREG,RM_GPR|BITS32,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12170, 215},
-    /* 4013 */ {I_VCVTSI2SD, 3, {XMMREG,XMMREG,RM_GPR|BITS64,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12178, 215},
-    /* 4014 */ {I_VCVTSI2SS, 3, {XMMREG,XMMREG,RM_GPR|BITS32,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12186, 215},
-    /* 4015 */ {I_VCVTSI2SS, 3, {XMMREG,XMMREG,RM_GPR|BITS64,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12194, 215},
-    /* 4016 */ {I_VCVTSS2SD, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+12202, 215},
-    /* 4017 */ {I_VCVTSS2SI, 2, {REG_GPR|BITS32,RM_XMM|BITS32,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12210, 215},
-    /* 4018 */ {I_VCVTSS2SI, 2, {REG_GPR|BITS64,RM_XMM|BITS32,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12218, 215},
-    /* 4019 */ {I_VCVTSS2USI, 2, {REG_GPR|BITS32,RM_XMM|BITS32,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12226, 215},
-    /* 4020 */ {I_VCVTSS2USI, 2, {REG_GPR|BITS64,RM_XMM|BITS32,0,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12234, 215},
-    /* 4021 */ {I_VCVTTPD2DQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12242, 214},
-    /* 4022 */ {I_VCVTTPD2DQ, 2, {XMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12250, 214},
-    /* 4023 */ {I_VCVTTPD2DQ, 2, {YMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+12258, 215},
-    /* 4024 */ {I_VCVTTPD2QQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12266, 216},
-    /* 4025 */ {I_VCVTTPD2QQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12274, 216},
-    /* 4026 */ {I_VCVTTPD2QQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+12282, 217},
-    /* 4027 */ {I_VCVTTPD2UDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12290, 214},
-    /* 4028 */ {I_VCVTTPD2UDQ, 2, {XMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12298, 214},
-    /* 4029 */ {I_VCVTTPD2UDQ, 2, {YMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+12306, 215},
-    /* 4030 */ {I_VCVTTPD2UQQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12314, 216},
-    /* 4031 */ {I_VCVTTPD2UQQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12322, 216},
-    /* 4032 */ {I_VCVTTPD2UQQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+12330, 217},
-    /* 4033 */ {I_VCVTTPS2DQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12338, 214},
-    /* 4034 */ {I_VCVTTPS2DQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12346, 214},
-    /* 4035 */ {I_VCVTTPS2DQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+12354, 215},
-    /* 4036 */ {I_VCVTTPS2QQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12362, 216},
-    /* 4037 */ {I_VCVTTPS2QQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12370, 216},
-    /* 4038 */ {I_VCVTTPS2QQ, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+12378, 217},
-    /* 4039 */ {I_VCVTTPS2UDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12386, 214},
-    /* 4040 */ {I_VCVTTPS2UDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12394, 214},
-    /* 4041 */ {I_VCVTTPS2UDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+12402, 215},
-    /* 4042 */ {I_VCVTTPS2UQQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12410, 216},
-    /* 4043 */ {I_VCVTTPS2UQQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12418, 216},
-    /* 4044 */ {I_VCVTTPS2UQQ, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+12426, 217},
-    /* 4045 */ {I_VCVTTSD2SI, 2, {REG_GPR|BITS32,RM_XMM|BITS64,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12434, 215},
-    /* 4046 */ {I_VCVTTSD2SI, 2, {REG_GPR|BITS64,RM_XMM|BITS64,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12442, 215},
-    /* 4047 */ {I_VCVTTSD2USI, 2, {REG_GPR|BITS32,RM_XMM|BITS64,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12450, 215},
-    /* 4048 */ {I_VCVTTSD2USI, 2, {REG_GPR|BITS64,RM_XMM|BITS64,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12458, 215},
-    /* 4049 */ {I_VCVTTSS2SI, 2, {REG_GPR|BITS32,RM_XMM|BITS32,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12466, 215},
-    /* 4050 */ {I_VCVTTSS2SI, 2, {REG_GPR|BITS64,RM_XMM|BITS32,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12474, 215},
-    /* 4051 */ {I_VCVTTSS2USI, 2, {REG_GPR|BITS32,RM_XMM|BITS32,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12482, 215},
-    /* 4052 */ {I_VCVTTSS2USI, 2, {REG_GPR|BITS64,RM_XMM|BITS32,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+12490, 215},
-    /* 4053 */ {I_VCVTUDQ2PD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12498, 214},
-    /* 4054 */ {I_VCVTUDQ2PD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12506, 214},
-    /* 4055 */ {I_VCVTUDQ2PD, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+12514, 215},
-    /* 4056 */ {I_VCVTUDQ2PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12522, 214},
-    /* 4057 */ {I_VCVTUDQ2PS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12530, 214},
-    /* 4058 */ {I_VCVTUDQ2PS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+12538, 215},
-    /* 4059 */ {I_VCVTUQQ2PD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12546, 216},
-    /* 4060 */ {I_VCVTUQQ2PD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12554, 216},
-    /* 4061 */ {I_VCVTUQQ2PD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+12562, 217},
-    /* 4062 */ {I_VCVTUQQ2PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12570, 216},
-    /* 4063 */ {I_VCVTUQQ2PS, 2, {XMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12578, 216},
-    /* 4064 */ {I_VCVTUQQ2PS, 2, {YMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+12586, 217},
-    /* 4065 */ {I_VCVTUSI2SD, 3, {XMMREG,XMMREG,RM_GPR|BITS32,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12594, 215},
-    /* 4066 */ {I_VCVTUSI2SD, 3, {XMMREG,XMMREG,RM_GPR|BITS64,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12602, 215},
-    /* 4067 */ {I_VCVTUSI2SS, 3, {XMMREG,XMMREG,RM_GPR|BITS32,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12610, 215},
-    /* 4068 */ {I_VCVTUSI2SS, 3, {XMMREG,XMMREG,RM_GPR|BITS64,0,0}, {0,ER,0,0,0}, nasm_bytecodes+12618, 215},
-    /* 4069 */ {I_VDBPSADBW, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3843, 218},
-    /* 4070 */ {I_VDBPSADBW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3852, 218},
-    /* 4071 */ {I_VDBPSADBW, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3861, 218},
-    /* 4072 */ {I_VDBPSADBW, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3870, 218},
-    /* 4073 */ {I_VDBPSADBW, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3879, 219},
-    /* 4074 */ {I_VDBPSADBW, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3888, 219},
-    /* 4075 */ {I_VDIVPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12626, 214},
-    /* 4076 */ {I_VDIVPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12634, 214},
-    /* 4077 */ {I_VDIVPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12642, 214},
-    /* 4078 */ {I_VDIVPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+12650, 214},
-    /* 4079 */ {I_VDIVPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+12658, 215},
-    /* 4080 */ {I_VDIVPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+12666, 215},
-    /* 4081 */ {I_VDIVPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12674, 214},
-    /* 4082 */ {I_VDIVPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12682, 214},
-    /* 4083 */ {I_VDIVPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12690, 214},
-    /* 4084 */ {I_VDIVPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+12698, 214},
-    /* 4085 */ {I_VDIVPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+12706, 215},
-    /* 4086 */ {I_VDIVPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+12714, 215},
-    /* 4087 */ {I_VDIVSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12722, 215},
-    /* 4088 */ {I_VDIVSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+12730, 215},
-    /* 4089 */ {I_VDIVSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12738, 215},
-    /* 4090 */ {I_VDIVSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+12746, 215},
-    /* 4091 */ {I_VEXP2PD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+12754, 220},
-    /* 4092 */ {I_VEXP2PS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+12762, 220},
-    /* 4093 */ {I_VEXPANDPD, 2, {XMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12770, 214},
-    /* 4094 */ {I_VEXPANDPD, 2, {YMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12778, 214},
-    /* 4095 */ {I_VEXPANDPD, 2, {ZMMREG,MEMORY|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12786, 215},
-    /* 4096 */ {I_VEXPANDPD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12770, 214},
-    /* 4097 */ {I_VEXPANDPD, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12778, 214},
-    /* 4098 */ {I_VEXPANDPD, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12786, 215},
-    /* 4099 */ {I_VEXPANDPS, 2, {XMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12794, 214},
-    /* 4100 */ {I_VEXPANDPS, 2, {YMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12802, 214},
-    /* 4101 */ {I_VEXPANDPS, 2, {ZMMREG,MEMORY|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12810, 215},
-    /* 4102 */ {I_VEXPANDPS, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12794, 214},
-    /* 4103 */ {I_VEXPANDPS, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12802, 214},
-    /* 4104 */ {I_VEXPANDPS, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+12810, 215},
-    /* 4105 */ {I_VEXTRACTF32X4, 3, {XMMREG,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3897, 214},
-    /* 4106 */ {I_VEXTRACTF32X4, 3, {XMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3906, 215},
-    /* 4107 */ {I_VEXTRACTF32X4, 3, {MEMORY|BITS128,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3915, 214},
-    /* 4108 */ {I_VEXTRACTF32X4, 3, {MEMORY|BITS128,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3924, 215},
-    /* 4109 */ {I_VEXTRACTF32X8, 3, {YMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3933, 217},
-    /* 4110 */ {I_VEXTRACTF32X8, 3, {MEMORY|BITS256,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3942, 217},
-    /* 4111 */ {I_VEXTRACTF64X2, 3, {XMMREG,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3951, 216},
-    /* 4112 */ {I_VEXTRACTF64X2, 3, {XMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3960, 217},
-    /* 4113 */ {I_VEXTRACTF64X2, 3, {MEMORY|BITS128,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3969, 216},
-    /* 4114 */ {I_VEXTRACTF64X2, 3, {MEMORY|BITS128,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3978, 217},
-    /* 4115 */ {I_VEXTRACTF64X4, 3, {YMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+3987, 215},
-    /* 4116 */ {I_VEXTRACTF64X4, 3, {MEMORY|BITS256,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+3996, 215},
-    /* 4117 */ {I_VEXTRACTI32X4, 3, {XMMREG,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4005, 214},
-    /* 4118 */ {I_VEXTRACTI32X4, 3, {XMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4014, 215},
-    /* 4119 */ {I_VEXTRACTI32X4, 3, {MEMORY|BITS128,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4023, 214},
-    /* 4120 */ {I_VEXTRACTI32X4, 3, {MEMORY|BITS128,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4032, 215},
-    /* 4121 */ {I_VEXTRACTI32X8, 3, {YMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4041, 217},
-    /* 4122 */ {I_VEXTRACTI32X8, 3, {MEMORY|BITS256,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4050, 217},
-    /* 4123 */ {I_VEXTRACTI64X2, 3, {XMMREG,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4059, 216},
-    /* 4124 */ {I_VEXTRACTI64X2, 3, {XMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4068, 217},
-    /* 4125 */ {I_VEXTRACTI64X2, 3, {MEMORY|BITS128,YMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4077, 216},
-    /* 4126 */ {I_VEXTRACTI64X2, 3, {MEMORY|BITS128,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4086, 217},
-    /* 4127 */ {I_VEXTRACTI64X4, 3, {YMMREG,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4095, 215},
-    /* 4128 */ {I_VEXTRACTI64X4, 3, {MEMORY|BITS256,ZMMREG,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4104, 215},
-    /* 4129 */ {I_VEXTRACTPS, 3, {REG_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+4113, 215},
-    /* 4130 */ {I_VEXTRACTPS, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+4113, 215},
-    /* 4131 */ {I_VEXTRACTPS, 3, {MEMORY|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+4113, 215},
-    /* 4132 */ {I_VFIXUPIMMPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+4122, 214},
-    /* 4133 */ {I_VFIXUPIMMPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+4131, 214},
-    /* 4134 */ {I_VFIXUPIMMPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+4140, 214},
-    /* 4135 */ {I_VFIXUPIMMPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+4149, 214},
-    /* 4136 */ {I_VFIXUPIMMPD, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64|SAE,0,0}, nasm_bytecodes+4158, 215},
-    /* 4137 */ {I_VFIXUPIMMPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+4167, 215},
-    /* 4138 */ {I_VFIXUPIMMPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+4176, 214},
-    /* 4139 */ {I_VFIXUPIMMPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+4185, 214},
-    /* 4140 */ {I_VFIXUPIMMPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+4194, 214},
-    /* 4141 */ {I_VFIXUPIMMPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+4203, 214},
-    /* 4142 */ {I_VFIXUPIMMPS, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32|SAE,0,0}, nasm_bytecodes+4212, 215},
-    /* 4143 */ {I_VFIXUPIMMPS, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+4221, 215},
-    /* 4144 */ {I_VFIXUPIMMSD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+4230, 215},
-    /* 4145 */ {I_VFIXUPIMMSD, 3, {XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+4239, 215},
-    /* 4146 */ {I_VFIXUPIMMSS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+4248, 215},
-    /* 4147 */ {I_VFIXUPIMMSS, 3, {XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+4257, 215},
-    /* 4148 */ {I_VFMADD132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12818, 214},
-    /* 4149 */ {I_VFMADD132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12826, 214},
-    /* 4150 */ {I_VFMADD132PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+12834, 215},
-    /* 4151 */ {I_VFMADD132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12842, 214},
-    /* 4152 */ {I_VFMADD132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12850, 214},
-    /* 4153 */ {I_VFMADD132PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+12858, 215},
-    /* 4154 */ {I_VFMADD132SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12866, 215},
-    /* 4155 */ {I_VFMADD132SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12874, 215},
-    /* 4156 */ {I_VFMADD213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12882, 214},
-    /* 4157 */ {I_VFMADD213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12890, 214},
-    /* 4158 */ {I_VFMADD213PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+12898, 215},
-    /* 4159 */ {I_VFMADD213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12906, 214},
-    /* 4160 */ {I_VFMADD213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12914, 214},
-    /* 4161 */ {I_VFMADD213PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+12922, 215},
-    /* 4162 */ {I_VFMADD213SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12930, 215},
-    /* 4163 */ {I_VFMADD213SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12938, 215},
-    /* 4164 */ {I_VFMADD231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12946, 214},
-    /* 4165 */ {I_VFMADD231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+12954, 214},
-    /* 4166 */ {I_VFMADD231PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+12962, 215},
-    /* 4167 */ {I_VFMADD231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12970, 214},
-    /* 4168 */ {I_VFMADD231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+12978, 214},
-    /* 4169 */ {I_VFMADD231PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+12986, 215},
-    /* 4170 */ {I_VFMADD231SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+12994, 215},
-    /* 4171 */ {I_VFMADD231SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13002, 215},
-    /* 4172 */ {I_VFMADDSUB132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13010, 214},
-    /* 4173 */ {I_VFMADDSUB132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13018, 214},
-    /* 4174 */ {I_VFMADDSUB132PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13026, 215},
-    /* 4175 */ {I_VFMADDSUB132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13034, 214},
-    /* 4176 */ {I_VFMADDSUB132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13042, 214},
-    /* 4177 */ {I_VFMADDSUB132PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13050, 215},
-    /* 4178 */ {I_VFMADDSUB213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13058, 214},
-    /* 4179 */ {I_VFMADDSUB213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13066, 214},
-    /* 4180 */ {I_VFMADDSUB213PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13074, 215},
-    /* 4181 */ {I_VFMADDSUB213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13082, 214},
-    /* 4182 */ {I_VFMADDSUB213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13090, 214},
-    /* 4183 */ {I_VFMADDSUB213PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13098, 215},
-    /* 4184 */ {I_VFMADDSUB231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13106, 214},
-    /* 4185 */ {I_VFMADDSUB231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13114, 214},
-    /* 4186 */ {I_VFMADDSUB231PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13122, 215},
-    /* 4187 */ {I_VFMADDSUB231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13130, 214},
-    /* 4188 */ {I_VFMADDSUB231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13138, 214},
-    /* 4189 */ {I_VFMADDSUB231PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13146, 215},
-    /* 4190 */ {I_VFMSUB132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13154, 214},
-    /* 4191 */ {I_VFMSUB132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13162, 214},
-    /* 4192 */ {I_VFMSUB132PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13170, 215},
-    /* 4193 */ {I_VFMSUB132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13178, 214},
-    /* 4194 */ {I_VFMSUB132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13186, 214},
-    /* 4195 */ {I_VFMSUB132PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13194, 215},
-    /* 4196 */ {I_VFMSUB132SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13202, 215},
-    /* 4197 */ {I_VFMSUB132SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13210, 215},
-    /* 4198 */ {I_VFMSUB213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13218, 214},
-    /* 4199 */ {I_VFMSUB213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13226, 214},
-    /* 4200 */ {I_VFMSUB213PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13234, 215},
-    /* 4201 */ {I_VFMSUB213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13242, 214},
-    /* 4202 */ {I_VFMSUB213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13250, 214},
-    /* 4203 */ {I_VFMSUB213PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13258, 215},
-    /* 4204 */ {I_VFMSUB213SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13266, 215},
-    /* 4205 */ {I_VFMSUB213SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13274, 215},
-    /* 4206 */ {I_VFMSUB231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13282, 214},
-    /* 4207 */ {I_VFMSUB231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13290, 214},
-    /* 4208 */ {I_VFMSUB231PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13298, 215},
-    /* 4209 */ {I_VFMSUB231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13306, 214},
-    /* 4210 */ {I_VFMSUB231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13314, 214},
-    /* 4211 */ {I_VFMSUB231PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13322, 215},
-    /* 4212 */ {I_VFMSUB231SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13330, 215},
-    /* 4213 */ {I_VFMSUB231SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13338, 215},
-    /* 4214 */ {I_VFMSUBADD132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13346, 214},
-    /* 4215 */ {I_VFMSUBADD132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13354, 214},
-    /* 4216 */ {I_VFMSUBADD132PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13362, 215},
-    /* 4217 */ {I_VFMSUBADD132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13370, 214},
-    /* 4218 */ {I_VFMSUBADD132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13378, 214},
-    /* 4219 */ {I_VFMSUBADD132PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13386, 215},
-    /* 4220 */ {I_VFMSUBADD213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13394, 214},
-    /* 4221 */ {I_VFMSUBADD213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13402, 214},
-    /* 4222 */ {I_VFMSUBADD213PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13410, 215},
-    /* 4223 */ {I_VFMSUBADD213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13418, 214},
-    /* 4224 */ {I_VFMSUBADD213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13426, 214},
-    /* 4225 */ {I_VFMSUBADD213PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13434, 215},
-    /* 4226 */ {I_VFMSUBADD231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13442, 214},
-    /* 4227 */ {I_VFMSUBADD231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13450, 214},
-    /* 4228 */ {I_VFMSUBADD231PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13458, 215},
-    /* 4229 */ {I_VFMSUBADD231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13466, 214},
-    /* 4230 */ {I_VFMSUBADD231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13474, 214},
-    /* 4231 */ {I_VFMSUBADD231PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13482, 215},
-    /* 4232 */ {I_VFNMADD132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13490, 214},
-    /* 4233 */ {I_VFNMADD132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13498, 214},
-    /* 4234 */ {I_VFNMADD132PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13506, 215},
-    /* 4235 */ {I_VFNMADD132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13514, 214},
-    /* 4236 */ {I_VFNMADD132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13522, 214},
-    /* 4237 */ {I_VFNMADD132PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13530, 215},
-    /* 4238 */ {I_VFNMADD132SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13538, 215},
-    /* 4239 */ {I_VFNMADD132SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13546, 215},
-    /* 4240 */ {I_VFNMADD213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13554, 214},
-    /* 4241 */ {I_VFNMADD213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13562, 214},
-    /* 4242 */ {I_VFNMADD213PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13570, 215},
-    /* 4243 */ {I_VFNMADD213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13578, 214},
-    /* 4244 */ {I_VFNMADD213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13586, 214},
-    /* 4245 */ {I_VFNMADD213PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13594, 215},
-    /* 4246 */ {I_VFNMADD213SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13602, 215},
-    /* 4247 */ {I_VFNMADD213SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13610, 215},
-    /* 4248 */ {I_VFNMADD231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13618, 214},
-    /* 4249 */ {I_VFNMADD231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13626, 214},
-    /* 4250 */ {I_VFNMADD231PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13634, 215},
-    /* 4251 */ {I_VFNMADD231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13642, 214},
-    /* 4252 */ {I_VFNMADD231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13650, 214},
-    /* 4253 */ {I_VFNMADD231PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13658, 215},
-    /* 4254 */ {I_VFNMADD231SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13666, 215},
-    /* 4255 */ {I_VFNMADD231SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13674, 215},
-    /* 4256 */ {I_VFNMSUB132PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13682, 214},
-    /* 4257 */ {I_VFNMSUB132PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13690, 214},
-    /* 4258 */ {I_VFNMSUB132PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13698, 215},
-    /* 4259 */ {I_VFNMSUB132PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13706, 214},
-    /* 4260 */ {I_VFNMSUB132PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13714, 214},
-    /* 4261 */ {I_VFNMSUB132PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13722, 215},
-    /* 4262 */ {I_VFNMSUB132SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13730, 215},
-    /* 4263 */ {I_VFNMSUB132SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13738, 215},
-    /* 4264 */ {I_VFNMSUB213PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13746, 214},
-    /* 4265 */ {I_VFNMSUB213PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13754, 214},
-    /* 4266 */ {I_VFNMSUB213PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13762, 215},
-    /* 4267 */ {I_VFNMSUB213PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13770, 214},
-    /* 4268 */ {I_VFNMSUB213PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13778, 214},
-    /* 4269 */ {I_VFNMSUB213PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13786, 215},
-    /* 4270 */ {I_VFNMSUB213SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13794, 215},
-    /* 4271 */ {I_VFNMSUB213SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13802, 215},
-    /* 4272 */ {I_VFNMSUB231PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13810, 214},
-    /* 4273 */ {I_VFNMSUB231PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13818, 214},
-    /* 4274 */ {I_VFNMSUB231PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+13826, 215},
-    /* 4275 */ {I_VFNMSUB231PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13834, 214},
-    /* 4276 */ {I_VFNMSUB231PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13842, 214},
-    /* 4277 */ {I_VFNMSUB231PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+13850, 215},
-    /* 4278 */ {I_VFNMSUB231SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13858, 215},
-    /* 4279 */ {I_VFNMSUB231SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+13866, 215},
-    /* 4280 */ {I_VFPCLASSPD, 3, {KREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK,B64,0,0,0}, nasm_bytecodes+4266, 216},
-    /* 4281 */ {I_VFPCLASSPD, 3, {KREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK,B64,0,0,0}, nasm_bytecodes+4275, 216},
-    /* 4282 */ {I_VFPCLASSPD, 3, {KREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK,B64,0,0,0}, nasm_bytecodes+4284, 217},
-    /* 4283 */ {I_VFPCLASSPS, 3, {KREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK,B32,0,0,0}, nasm_bytecodes+4293, 216},
-    /* 4284 */ {I_VFPCLASSPS, 3, {KREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK,B32,0,0,0}, nasm_bytecodes+4302, 216},
-    /* 4285 */ {I_VFPCLASSPS, 3, {KREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK,B32,0,0,0}, nasm_bytecodes+4311, 217},
-    /* 4286 */ {I_VFPCLASSSD, 3, {KREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4320, 217},
-    /* 4287 */ {I_VFPCLASSSS, 3, {KREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4329, 217},
-    /* 4288 */ {I_VGATHERDPD, 2, {XMMREG,XMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4338, 214},
-    /* 4289 */ {I_VGATHERDPD, 2, {YMMREG,XMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4347, 214},
-    /* 4290 */ {I_VGATHERDPD, 2, {ZMMREG,YMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4356, 215},
-    /* 4291 */ {I_VGATHERDPS, 2, {XMMREG,XMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4365, 214},
-    /* 4292 */ {I_VGATHERDPS, 2, {YMMREG,YMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4374, 214},
-    /* 4293 */ {I_VGATHERDPS, 2, {ZMMREG,ZMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4383, 215},
-    /* 4294 */ {I_VGATHERPF0DPD, 1, {YMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4392, 221},
-    /* 4295 */ {I_VGATHERPF0DPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4401, 221},
-    /* 4296 */ {I_VGATHERPF0QPD, 1, {ZMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4410, 221},
-    /* 4297 */ {I_VGATHERPF0QPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4419, 221},
-    /* 4298 */ {I_VGATHERPF1DPD, 1, {YMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4428, 221},
-    /* 4299 */ {I_VGATHERPF1DPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4437, 221},
-    /* 4300 */ {I_VGATHERPF1QPD, 1, {ZMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4446, 221},
-    /* 4301 */ {I_VGATHERPF1QPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4455, 221},
-    /* 4302 */ {I_VGATHERQPD, 2, {XMMREG,XMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4464, 214},
-    /* 4303 */ {I_VGATHERQPD, 2, {YMMREG,YMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4473, 214},
-    /* 4304 */ {I_VGATHERQPD, 2, {ZMMREG,ZMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4482, 215},
-    /* 4305 */ {I_VGATHERQPS, 2, {XMMREG,XMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4491, 214},
-    /* 4306 */ {I_VGATHERQPS, 2, {XMMREG,YMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4500, 214},
-    /* 4307 */ {I_VGATHERQPS, 2, {YMMREG,ZMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+4509, 215},
-    /* 4308 */ {I_VGETEXPPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+13874, 214},
-    /* 4309 */ {I_VGETEXPPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+13882, 214},
-    /* 4310 */ {I_VGETEXPPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+13890, 215},
-    /* 4311 */ {I_VGETEXPPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+13898, 214},
-    /* 4312 */ {I_VGETEXPPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+13906, 214},
-    /* 4313 */ {I_VGETEXPPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+13914, 215},
-    /* 4314 */ {I_VGETEXPSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+13922, 215},
-    /* 4315 */ {I_VGETEXPSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+13930, 215},
-    /* 4316 */ {I_VGETMANTPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+4518, 214},
-    /* 4317 */ {I_VGETMANTPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+4527, 214},
-    /* 4318 */ {I_VGETMANTPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+4536, 215},
-    /* 4319 */ {I_VGETMANTPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+4545, 214},
-    /* 4320 */ {I_VGETMANTPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+4554, 214},
-    /* 4321 */ {I_VGETMANTPS, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+4563, 215},
-    /* 4322 */ {I_VGETMANTSD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+4572, 215},
-    /* 4323 */ {I_VGETMANTSS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+4581, 215},
-    /* 4324 */ {I_VINSERTF32X4, 4, {YMMREG,YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4590, 214},
-    /* 4325 */ {I_VINSERTF32X4, 3, {YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4599, 214},
-    /* 4326 */ {I_VINSERTF32X4, 4, {ZMMREG,ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4608, 215},
-    /* 4327 */ {I_VINSERTF32X4, 3, {ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4617, 215},
-    /* 4328 */ {I_VINSERTF32X8, 4, {ZMMREG,ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4626, 217},
-    /* 4329 */ {I_VINSERTF32X8, 3, {ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4635, 217},
-    /* 4330 */ {I_VINSERTF64X2, 4, {YMMREG,YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4644, 216},
-    /* 4331 */ {I_VINSERTF64X2, 3, {YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4653, 216},
-    /* 4332 */ {I_VINSERTF64X2, 4, {ZMMREG,ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4662, 217},
-    /* 4333 */ {I_VINSERTF64X2, 3, {ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4671, 217},
-    /* 4334 */ {I_VINSERTF64X4, 4, {ZMMREG,ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4680, 215},
-    /* 4335 */ {I_VINSERTF64X4, 3, {ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4689, 215},
-    /* 4336 */ {I_VINSERTI32X4, 4, {YMMREG,YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4698, 214},
-    /* 4337 */ {I_VINSERTI32X4, 3, {YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4707, 214},
-    /* 4338 */ {I_VINSERTI32X4, 4, {ZMMREG,ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4716, 215},
-    /* 4339 */ {I_VINSERTI32X4, 3, {ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4725, 215},
-    /* 4340 */ {I_VINSERTI32X8, 4, {ZMMREG,ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4734, 217},
-    /* 4341 */ {I_VINSERTI32X8, 3, {ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4743, 217},
-    /* 4342 */ {I_VINSERTI64X2, 4, {YMMREG,YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4752, 216},
-    /* 4343 */ {I_VINSERTI64X2, 3, {YMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4761, 216},
-    /* 4344 */ {I_VINSERTI64X2, 4, {ZMMREG,ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4770, 217},
-    /* 4345 */ {I_VINSERTI64X2, 3, {ZMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4779, 217},
-    /* 4346 */ {I_VINSERTI64X4, 4, {ZMMREG,ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4788, 215},
-    /* 4347 */ {I_VINSERTI64X4, 3, {ZMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4797, 215},
-    /* 4348 */ {I_VINSERTPS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+4806, 215},
-    /* 4349 */ {I_VINSERTPS, 3, {XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+4815, 215},
-    /* 4350 */ {I_VMAXPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13938, 214},
-    /* 4351 */ {I_VMAXPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+13946, 214},
-    /* 4352 */ {I_VMAXPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+13954, 214},
-    /* 4353 */ {I_VMAXPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+13962, 214},
-    /* 4354 */ {I_VMAXPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|SAE,0,0}, nasm_bytecodes+13970, 215},
-    /* 4355 */ {I_VMAXPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+13978, 215},
-    /* 4356 */ {I_VMAXPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+13986, 214},
-    /* 4357 */ {I_VMAXPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+13994, 214},
-    /* 4358 */ {I_VMAXPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+14002, 214},
-    /* 4359 */ {I_VMAXPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+14010, 214},
-    /* 4360 */ {I_VMAXPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|SAE,0,0}, nasm_bytecodes+14018, 215},
-    /* 4361 */ {I_VMAXPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+14026, 215},
-    /* 4362 */ {I_VMAXSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+14034, 215},
-    /* 4363 */ {I_VMAXSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+14042, 215},
-    /* 4364 */ {I_VMAXSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+14050, 215},
-    /* 4365 */ {I_VMAXSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+14058, 215},
-    /* 4366 */ {I_VMINPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+14066, 214},
-    /* 4367 */ {I_VMINPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+14074, 214},
-    /* 4368 */ {I_VMINPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+14082, 214},
-    /* 4369 */ {I_VMINPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+14090, 214},
-    /* 4370 */ {I_VMINPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|SAE,0,0}, nasm_bytecodes+14098, 215},
-    /* 4371 */ {I_VMINPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+14106, 215},
-    /* 4372 */ {I_VMINPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+14114, 214},
-    /* 4373 */ {I_VMINPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+14122, 214},
-    /* 4374 */ {I_VMINPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+14130, 214},
-    /* 4375 */ {I_VMINPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+14138, 214},
-    /* 4376 */ {I_VMINPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|SAE,0,0}, nasm_bytecodes+14146, 215},
-    /* 4377 */ {I_VMINPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+14154, 215},
-    /* 4378 */ {I_VMINSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+14162, 215},
-    /* 4379 */ {I_VMINSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+14170, 215},
-    /* 4380 */ {I_VMINSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+14178, 215},
-    /* 4381 */ {I_VMINSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+14186, 215},
-    /* 4382 */ {I_VMOVAPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14194, 214},
-    /* 4383 */ {I_VMOVAPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14202, 214},
-    /* 4384 */ {I_VMOVAPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14210, 215},
-    /* 4385 */ {I_VMOVAPD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14218, 214},
-    /* 4386 */ {I_VMOVAPD, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14226, 214},
-    /* 4387 */ {I_VMOVAPD, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14234, 215},
-    /* 4388 */ {I_VMOVAPD, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14242, 214},
-    /* 4389 */ {I_VMOVAPD, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14250, 214},
-    /* 4390 */ {I_VMOVAPD, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14258, 215},
-    /* 4391 */ {I_VMOVAPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14266, 214},
-    /* 4392 */ {I_VMOVAPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14274, 214},
-    /* 4393 */ {I_VMOVAPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14282, 215},
-    /* 4394 */ {I_VMOVAPS, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14290, 214},
-    /* 4395 */ {I_VMOVAPS, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14298, 214},
-    /* 4396 */ {I_VMOVAPS, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14306, 215},
-    /* 4397 */ {I_VMOVAPS, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14314, 214},
-    /* 4398 */ {I_VMOVAPS, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14322, 214},
-    /* 4399 */ {I_VMOVAPS, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14330, 215},
-    /* 4400 */ {I_VMOVD, 2, {XMMREG,RM_GPR|BITS32,0,0,0}, NO_DECORATOR, nasm_bytecodes+14338, 215},
-    /* 4401 */ {I_VMOVD, 2, {RM_GPR|BITS32,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14346, 215},
-    /* 4402 */ {I_VMOVDDUP, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14354, 214},
-    /* 4403 */ {I_VMOVDDUP, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14362, 214},
-    /* 4404 */ {I_VMOVDDUP, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14370, 215},
-    /* 4405 */ {I_VMOVDQA32, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14378, 214},
-    /* 4406 */ {I_VMOVDQA32, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14386, 214},
-    /* 4407 */ {I_VMOVDQA32, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14394, 215},
-    /* 4408 */ {I_VMOVDQA32, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14402, 214},
-    /* 4409 */ {I_VMOVDQA32, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14410, 214},
-    /* 4410 */ {I_VMOVDQA32, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14418, 215},
-    /* 4411 */ {I_VMOVDQA32, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14426, 214},
-    /* 4412 */ {I_VMOVDQA32, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14434, 214},
-    /* 4413 */ {I_VMOVDQA32, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14442, 215},
-    /* 4414 */ {I_VMOVDQA64, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14450, 214},
-    /* 4415 */ {I_VMOVDQA64, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14458, 214},
-    /* 4416 */ {I_VMOVDQA64, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14466, 215},
-    /* 4417 */ {I_VMOVDQA64, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14474, 214},
-    /* 4418 */ {I_VMOVDQA64, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14482, 214},
-    /* 4419 */ {I_VMOVDQA64, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14490, 215},
-    /* 4420 */ {I_VMOVDQA64, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14498, 214},
-    /* 4421 */ {I_VMOVDQA64, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14506, 214},
-    /* 4422 */ {I_VMOVDQA64, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14514, 215},
-    /* 4423 */ {I_VMOVDQU16, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14522, 218},
-    /* 4424 */ {I_VMOVDQU16, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14530, 218},
-    /* 4425 */ {I_VMOVDQU16, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14538, 219},
-    /* 4426 */ {I_VMOVDQU16, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14546, 218},
-    /* 4427 */ {I_VMOVDQU16, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14554, 218},
-    /* 4428 */ {I_VMOVDQU16, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14562, 219},
-    /* 4429 */ {I_VMOVDQU16, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14570, 218},
-    /* 4430 */ {I_VMOVDQU16, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14578, 218},
-    /* 4431 */ {I_VMOVDQU16, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14586, 219},
-    /* 4432 */ {I_VMOVDQU32, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14594, 214},
-    /* 4433 */ {I_VMOVDQU32, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14602, 214},
-    /* 4434 */ {I_VMOVDQU32, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14610, 215},
-    /* 4435 */ {I_VMOVDQU32, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14618, 214},
-    /* 4436 */ {I_VMOVDQU32, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14626, 214},
-    /* 4437 */ {I_VMOVDQU32, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14634, 215},
-    /* 4438 */ {I_VMOVDQU32, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14642, 214},
-    /* 4439 */ {I_VMOVDQU32, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14650, 214},
-    /* 4440 */ {I_VMOVDQU32, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14658, 215},
-    /* 4441 */ {I_VMOVDQU64, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14666, 214},
-    /* 4442 */ {I_VMOVDQU64, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14674, 214},
-    /* 4443 */ {I_VMOVDQU64, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14682, 215},
-    /* 4444 */ {I_VMOVDQU64, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14690, 214},
-    /* 4445 */ {I_VMOVDQU64, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14698, 214},
-    /* 4446 */ {I_VMOVDQU64, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14706, 215},
-    /* 4447 */ {I_VMOVDQU64, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14714, 214},
-    /* 4448 */ {I_VMOVDQU64, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14722, 214},
-    /* 4449 */ {I_VMOVDQU64, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14730, 215},
-    /* 4450 */ {I_VMOVDQU8, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14738, 218},
-    /* 4451 */ {I_VMOVDQU8, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14746, 218},
-    /* 4452 */ {I_VMOVDQU8, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14754, 219},
-    /* 4453 */ {I_VMOVDQU8, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14762, 218},
-    /* 4454 */ {I_VMOVDQU8, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14770, 218},
-    /* 4455 */ {I_VMOVDQU8, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+14778, 219},
-    /* 4456 */ {I_VMOVDQU8, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14786, 218},
-    /* 4457 */ {I_VMOVDQU8, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14794, 218},
-    /* 4458 */ {I_VMOVDQU8, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+14802, 219},
-    /* 4459 */ {I_VMOVHLPS, 3, {XMMREG,XMMREG,XMMREG,0,0}, NO_DECORATOR, nasm_bytecodes+14810, 215},
-    /* 4460 */ {I_VMOVHLPS, 2, {XMMREG,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14818, 215},
-    /* 4461 */ {I_VMOVHPD, 3, {XMMREG,XMMREG,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+14826, 215},
-    /* 4462 */ {I_VMOVHPD, 2, {XMMREG,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+14834, 215},
-    /* 4463 */ {I_VMOVHPD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14842, 215},
-    /* 4464 */ {I_VMOVHPS, 3, {XMMREG,XMMREG,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+14850, 215},
-    /* 4465 */ {I_VMOVHPS, 2, {XMMREG,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+14858, 215},
-    /* 4466 */ {I_VMOVHPS, 2, {MEMORY|BITS64,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14866, 215},
-    /* 4467 */ {I_VMOVLHPS, 3, {XMMREG,XMMREG,XMMREG,0,0}, NO_DECORATOR, nasm_bytecodes+14874, 215},
-    /* 4468 */ {I_VMOVLHPS, 2, {XMMREG,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14882, 215},
-    /* 4469 */ {I_VMOVLPD, 3, {XMMREG,XMMREG,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+14890, 215},
-    /* 4470 */ {I_VMOVLPD, 2, {XMMREG,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+14898, 215},
-    /* 4471 */ {I_VMOVLPD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14906, 215},
-    /* 4472 */ {I_VMOVLPS, 3, {XMMREG,XMMREG,MEMORY|BITS64,0,0}, NO_DECORATOR, nasm_bytecodes+14914, 215},
-    /* 4473 */ {I_VMOVLPS, 2, {XMMREG,MEMORY|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+14922, 215},
-    /* 4474 */ {I_VMOVLPS, 2, {MEMORY|BITS64,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14930, 215},
-    /* 4475 */ {I_VMOVNTDQ, 2, {MEMORY|BITS128,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14938, 214},
-    /* 4476 */ {I_VMOVNTDQ, 2, {MEMORY|BITS256,YMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14946, 214},
-    /* 4477 */ {I_VMOVNTDQ, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14954, 215},
-    /* 4478 */ {I_VMOVNTDQA, 2, {XMMREG,MEMORY|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+14962, 214},
-    /* 4479 */ {I_VMOVNTDQA, 2, {YMMREG,MEMORY|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+14970, 214},
-    /* 4480 */ {I_VMOVNTDQA, 2, {ZMMREG,MEMORY|BITS512,0,0,0}, NO_DECORATOR, nasm_bytecodes+14978, 215},
-    /* 4481 */ {I_VMOVNTPD, 2, {MEMORY|BITS128,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14986, 214},
-    /* 4482 */ {I_VMOVNTPD, 2, {MEMORY|BITS256,YMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+14994, 214},
-    /* 4483 */ {I_VMOVNTPD, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+15002, 215},
-    /* 4484 */ {I_VMOVNTPS, 2, {MEMORY|BITS128,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+15010, 214},
-    /* 4485 */ {I_VMOVNTPS, 2, {MEMORY|BITS256,YMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+15018, 214},
-    /* 4486 */ {I_VMOVNTPS, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+15026, 215},
-    /* 4487 */ {I_VMOVQ, 2, {XMMREG,RM_GPR|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+15034, 215},
-    /* 4488 */ {I_VMOVQ, 2, {RM_GPR|BITS64,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+15042, 215},
-    /* 4489 */ {I_VMOVQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, NO_DECORATOR, nasm_bytecodes+15050, 215},
-    /* 4490 */ {I_VMOVQ, 2, {RM_XMM|BITS64,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+15058, 215},
-    /* 4491 */ {I_VMOVSD, 2, {XMMREG,MEMORY|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15066, 215},
-    /* 4492 */ {I_VMOVSD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15074, 215},
-    /* 4493 */ {I_VMOVSD, 3, {XMMREG,XMMREG,XMMREG,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15082, 215},
-    /* 4494 */ {I_VMOVSD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15090, 215},
-    /* 4495 */ {I_VMOVSD, 3, {XMMREG,XMMREG,XMMREG,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15098, 215},
-    /* 4496 */ {I_VMOVSD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15106, 215},
-    /* 4497 */ {I_VMOVSHDUP, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15114, 214},
-    /* 4498 */ {I_VMOVSHDUP, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15122, 214},
-    /* 4499 */ {I_VMOVSHDUP, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15130, 215},
-    /* 4500 */ {I_VMOVSLDUP, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15138, 214},
-    /* 4501 */ {I_VMOVSLDUP, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15146, 214},
-    /* 4502 */ {I_VMOVSLDUP, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15154, 215},
-    /* 4503 */ {I_VMOVSS, 2, {XMMREG,MEMORY|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15162, 215},
-    /* 4504 */ {I_VMOVSS, 2, {MEMORY|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15170, 215},
-    /* 4505 */ {I_VMOVSS, 3, {XMMREG,XMMREG,XMMREG,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15178, 215},
-    /* 4506 */ {I_VMOVSS, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15186, 215},
-    /* 4507 */ {I_VMOVSS, 3, {XMMREG,XMMREG,XMMREG,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15194, 215},
-    /* 4508 */ {I_VMOVSS, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15202, 215},
-    /* 4509 */ {I_VMOVUPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15210, 214},
-    /* 4510 */ {I_VMOVUPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15218, 214},
-    /* 4511 */ {I_VMOVUPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15226, 215},
-    /* 4512 */ {I_VMOVUPD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15234, 214},
-    /* 4513 */ {I_VMOVUPD, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15242, 214},
-    /* 4514 */ {I_VMOVUPD, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15250, 215},
-    /* 4515 */ {I_VMOVUPD, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15258, 214},
-    /* 4516 */ {I_VMOVUPD, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15266, 214},
-    /* 4517 */ {I_VMOVUPD, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15274, 215},
-    /* 4518 */ {I_VMOVUPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15282, 214},
-    /* 4519 */ {I_VMOVUPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15290, 214},
-    /* 4520 */ {I_VMOVUPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15298, 215},
-    /* 4521 */ {I_VMOVUPS, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15306, 214},
-    /* 4522 */ {I_VMOVUPS, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15314, 214},
-    /* 4523 */ {I_VMOVUPS, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15322, 215},
-    /* 4524 */ {I_VMOVUPS, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15330, 214},
-    /* 4525 */ {I_VMOVUPS, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15338, 214},
-    /* 4526 */ {I_VMOVUPS, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+15346, 215},
-    /* 4527 */ {I_VMULPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15354, 214},
-    /* 4528 */ {I_VMULPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15362, 214},
-    /* 4529 */ {I_VMULPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15370, 214},
-    /* 4530 */ {I_VMULPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15378, 214},
-    /* 4531 */ {I_VMULPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+15386, 215},
-    /* 4532 */ {I_VMULPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+15394, 215},
-    /* 4533 */ {I_VMULPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15402, 214},
-    /* 4534 */ {I_VMULPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15410, 214},
-    /* 4535 */ {I_VMULPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15418, 214},
-    /* 4536 */ {I_VMULPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15426, 214},
-    /* 4537 */ {I_VMULPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+15434, 215},
-    /* 4538 */ {I_VMULPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+15442, 215},
-    /* 4539 */ {I_VMULSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+15450, 215},
-    /* 4540 */ {I_VMULSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+15458, 215},
-    /* 4541 */ {I_VMULSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+15466, 215},
-    /* 4542 */ {I_VMULSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+15474, 215},
-    /* 4543 */ {I_VORPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15482, 216},
-    /* 4544 */ {I_VORPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15490, 216},
-    /* 4545 */ {I_VORPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15498, 216},
-    /* 4546 */ {I_VORPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15506, 216},
-    /* 4547 */ {I_VORPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15514, 217},
-    /* 4548 */ {I_VORPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15522, 217},
-    /* 4549 */ {I_VORPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15530, 216},
-    /* 4550 */ {I_VORPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15538, 216},
-    /* 4551 */ {I_VORPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15546, 216},
-    /* 4552 */ {I_VORPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15554, 216},
-    /* 4553 */ {I_VORPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15562, 217},
-    /* 4554 */ {I_VORPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15570, 217},
-    /* 4555 */ {I_VPABSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15578, 218},
-    /* 4556 */ {I_VPABSB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15586, 218},
-    /* 4557 */ {I_VPABSB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15594, 219},
-    /* 4558 */ {I_VPABSD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15602, 214},
-    /* 4559 */ {I_VPABSD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15610, 214},
-    /* 4560 */ {I_VPABSD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15618, 215},
-    /* 4561 */ {I_VPABSQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15626, 214},
-    /* 4562 */ {I_VPABSQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15634, 214},
-    /* 4563 */ {I_VPABSQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15642, 215},
-    /* 4564 */ {I_VPABSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15650, 218},
-    /* 4565 */ {I_VPABSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15658, 218},
-    /* 4566 */ {I_VPABSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15666, 219},
-    /* 4567 */ {I_VPACKSSDW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15674, 218},
-    /* 4568 */ {I_VPACKSSDW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15682, 218},
-    /* 4569 */ {I_VPACKSSDW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15690, 218},
-    /* 4570 */ {I_VPACKSSDW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15698, 218},
-    /* 4571 */ {I_VPACKSSDW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15706, 219},
-    /* 4572 */ {I_VPACKSSDW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15714, 219},
-    /* 4573 */ {I_VPACKSSWB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15722, 218},
-    /* 4574 */ {I_VPACKSSWB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15730, 218},
-    /* 4575 */ {I_VPACKSSWB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15738, 218},
-    /* 4576 */ {I_VPACKSSWB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15746, 218},
-    /* 4577 */ {I_VPACKSSWB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15754, 219},
-    /* 4578 */ {I_VPACKSSWB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15762, 219},
-    /* 4579 */ {I_VPACKUSDW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15770, 218},
-    /* 4580 */ {I_VPACKUSDW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15778, 218},
-    /* 4581 */ {I_VPACKUSDW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15786, 218},
-    /* 4582 */ {I_VPACKUSDW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15794, 218},
-    /* 4583 */ {I_VPACKUSDW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15802, 219},
-    /* 4584 */ {I_VPACKUSDW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15810, 219},
-    /* 4585 */ {I_VPACKUSWB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15818, 218},
-    /* 4586 */ {I_VPACKUSWB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15826, 218},
-    /* 4587 */ {I_VPACKUSWB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15834, 218},
-    /* 4588 */ {I_VPACKUSWB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15842, 218},
-    /* 4589 */ {I_VPACKUSWB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15850, 219},
-    /* 4590 */ {I_VPACKUSWB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15858, 219},
-    /* 4591 */ {I_VPADDB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15866, 218},
-    /* 4592 */ {I_VPADDB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15874, 218},
-    /* 4593 */ {I_VPADDB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15882, 218},
-    /* 4594 */ {I_VPADDB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15890, 218},
-    /* 4595 */ {I_VPADDB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15898, 219},
-    /* 4596 */ {I_VPADDB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+15906, 219},
-    /* 4597 */ {I_VPADDD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15914, 214},
-    /* 4598 */ {I_VPADDD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15922, 214},
-    /* 4599 */ {I_VPADDD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15930, 214},
-    /* 4600 */ {I_VPADDD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15938, 214},
-    /* 4601 */ {I_VPADDD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+15946, 215},
-    /* 4602 */ {I_VPADDD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+15954, 215},
-    /* 4603 */ {I_VPADDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15962, 214},
-    /* 4604 */ {I_VPADDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15970, 214},
-    /* 4605 */ {I_VPADDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15978, 214},
-    /* 4606 */ {I_VPADDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+15986, 214},
-    /* 4607 */ {I_VPADDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+15994, 215},
-    /* 4608 */ {I_VPADDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+16002, 215},
-    /* 4609 */ {I_VPADDSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16010, 218},
-    /* 4610 */ {I_VPADDSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16018, 218},
-    /* 4611 */ {I_VPADDSB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16026, 218},
-    /* 4612 */ {I_VPADDSB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16034, 218},
-    /* 4613 */ {I_VPADDSB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16042, 219},
-    /* 4614 */ {I_VPADDSB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16050, 219},
-    /* 4615 */ {I_VPADDSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16058, 218},
-    /* 4616 */ {I_VPADDSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16066, 218},
-    /* 4617 */ {I_VPADDSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16074, 218},
-    /* 4618 */ {I_VPADDSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16082, 218},
-    /* 4619 */ {I_VPADDSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16090, 219},
-    /* 4620 */ {I_VPADDSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16098, 219},
-    /* 4621 */ {I_VPADDUSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16106, 218},
-    /* 4622 */ {I_VPADDUSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16114, 218},
-    /* 4623 */ {I_VPADDUSB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16122, 218},
-    /* 4624 */ {I_VPADDUSB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16130, 218},
-    /* 4625 */ {I_VPADDUSB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16138, 219},
-    /* 4626 */ {I_VPADDUSB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16146, 219},
-    /* 4627 */ {I_VPADDUSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16154, 218},
-    /* 4628 */ {I_VPADDUSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16162, 218},
-    /* 4629 */ {I_VPADDUSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16170, 218},
-    /* 4630 */ {I_VPADDUSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16178, 218},
-    /* 4631 */ {I_VPADDUSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16186, 219},
-    /* 4632 */ {I_VPADDUSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16194, 219},
-    /* 4633 */ {I_VPADDW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16202, 218},
-    /* 4634 */ {I_VPADDW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16210, 218},
-    /* 4635 */ {I_VPADDW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16218, 218},
-    /* 4636 */ {I_VPADDW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16226, 218},
-    /* 4637 */ {I_VPADDW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16234, 219},
-    /* 4638 */ {I_VPADDW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16242, 219},
-    /* 4639 */ {I_VPALIGNR, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4824, 218},
-    /* 4640 */ {I_VPALIGNR, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4833, 218},
-    /* 4641 */ {I_VPALIGNR, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4842, 218},
-    /* 4642 */ {I_VPALIGNR, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4851, 218},
-    /* 4643 */ {I_VPALIGNR, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4860, 219},
-    /* 4644 */ {I_VPALIGNR, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+4869, 219},
-    /* 4645 */ {I_VPANDD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16250, 214},
-    /* 4646 */ {I_VPANDD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+16258, 214},
-    /* 4647 */ {I_VPANDD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16266, 214},
-    /* 4648 */ {I_VPANDD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+16274, 214},
-    /* 4649 */ {I_VPANDD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16282, 215},
-    /* 4650 */ {I_VPANDD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+16290, 215},
-    /* 4651 */ {I_VPANDND, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16298, 214},
-    /* 4652 */ {I_VPANDND, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+16306, 214},
-    /* 4653 */ {I_VPANDND, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16314, 214},
-    /* 4654 */ {I_VPANDND, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+16322, 214},
-    /* 4655 */ {I_VPANDND, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16330, 215},
-    /* 4656 */ {I_VPANDND, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+16338, 215},
-    /* 4657 */ {I_VPANDNQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16346, 214},
-    /* 4658 */ {I_VPANDNQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+16354, 214},
-    /* 4659 */ {I_VPANDNQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16362, 214},
-    /* 4660 */ {I_VPANDNQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+16370, 214},
-    /* 4661 */ {I_VPANDNQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16378, 215},
-    /* 4662 */ {I_VPANDNQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+16386, 215},
-    /* 4663 */ {I_VPANDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16394, 214},
-    /* 4664 */ {I_VPANDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+16402, 214},
-    /* 4665 */ {I_VPANDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16410, 214},
-    /* 4666 */ {I_VPANDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+16418, 214},
-    /* 4667 */ {I_VPANDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16426, 215},
-    /* 4668 */ {I_VPANDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+16434, 215},
-    /* 4669 */ {I_VPAVGB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16442, 218},
-    /* 4670 */ {I_VPAVGB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16450, 218},
-    /* 4671 */ {I_VPAVGB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16458, 218},
-    /* 4672 */ {I_VPAVGB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16466, 218},
-    /* 4673 */ {I_VPAVGB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16474, 219},
-    /* 4674 */ {I_VPAVGB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16482, 219},
-    /* 4675 */ {I_VPAVGW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16490, 218},
-    /* 4676 */ {I_VPAVGW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16498, 218},
-    /* 4677 */ {I_VPAVGW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16506, 218},
-    /* 4678 */ {I_VPAVGW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16514, 218},
-    /* 4679 */ {I_VPAVGW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16522, 219},
-    /* 4680 */ {I_VPAVGW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16530, 219},
-    /* 4681 */ {I_VPBLENDMB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16538, 218},
-    /* 4682 */ {I_VPBLENDMB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16546, 218},
-    /* 4683 */ {I_VPBLENDMB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16554, 219},
-    /* 4684 */ {I_VPBLENDMD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16562, 214},
-    /* 4685 */ {I_VPBLENDMD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16570, 214},
-    /* 4686 */ {I_VPBLENDMD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+16578, 215},
-    /* 4687 */ {I_VPBLENDMQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16586, 214},
-    /* 4688 */ {I_VPBLENDMQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16594, 214},
-    /* 4689 */ {I_VPBLENDMQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+16602, 215},
-    /* 4690 */ {I_VPBLENDMW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16610, 218},
-    /* 4691 */ {I_VPBLENDMW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16618, 218},
-    /* 4692 */ {I_VPBLENDMW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16626, 219},
-    /* 4693 */ {I_VPBROADCASTB, 2, {XMMREG,RM_XMM|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16634, 218},
-    /* 4694 */ {I_VPBROADCASTB, 2, {YMMREG,RM_XMM|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16642, 218},
-    /* 4695 */ {I_VPBROADCASTB, 2, {ZMMREG,RM_XMM|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16650, 219},
-    /* 4696 */ {I_VPBROADCASTB, 2, {XMMREG,REG_GPR|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16658, 218},
-    /* 4697 */ {I_VPBROADCASTB, 2, {XMMREG,REG_GPR|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16658, 218},
-    /* 4698 */ {I_VPBROADCASTB, 2, {XMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16658, 218},
-    /* 4699 */ {I_VPBROADCASTB, 2, {XMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16658, 218},
-    /* 4700 */ {I_VPBROADCASTB, 2, {YMMREG,REG_GPR|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16666, 218},
-    /* 4701 */ {I_VPBROADCASTB, 2, {YMMREG,REG_GPR|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16666, 218},
-    /* 4702 */ {I_VPBROADCASTB, 2, {YMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16666, 218},
-    /* 4703 */ {I_VPBROADCASTB, 2, {YMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16666, 218},
-    /* 4704 */ {I_VPBROADCASTB, 2, {ZMMREG,REG_GPR|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16674, 219},
-    /* 4705 */ {I_VPBROADCASTB, 2, {ZMMREG,REG_GPR|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16674, 219},
-    /* 4706 */ {I_VPBROADCASTB, 2, {ZMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16674, 219},
-    /* 4707 */ {I_VPBROADCASTB, 2, {ZMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16674, 219},
-    /* 4708 */ {I_VPBROADCASTD, 2, {XMMREG,MEMORY|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16682, 214},
-    /* 4709 */ {I_VPBROADCASTD, 2, {YMMREG,MEMORY|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16690, 214},
-    /* 4710 */ {I_VPBROADCASTD, 2, {ZMMREG,MEMORY|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16698, 215},
-    /* 4711 */ {I_VPBROADCASTD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16706, 214},
-    /* 4712 */ {I_VPBROADCASTD, 2, {YMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16714, 214},
-    /* 4713 */ {I_VPBROADCASTD, 2, {ZMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16722, 215},
-    /* 4714 */ {I_VPBROADCASTD, 2, {XMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16730, 214},
-    /* 4715 */ {I_VPBROADCASTD, 2, {YMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16738, 214},
-    /* 4716 */ {I_VPBROADCASTD, 2, {ZMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16746, 215},
-    /* 4717 */ {I_VPBROADCASTMB2Q, 2, {XMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+16754, 222},
-    /* 4718 */ {I_VPBROADCASTMB2Q, 2, {YMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+16762, 222},
-    /* 4719 */ {I_VPBROADCASTMB2Q, 2, {ZMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+16770, 223},
-    /* 4720 */ {I_VPBROADCASTMW2D, 2, {XMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+16778, 222},
-    /* 4721 */ {I_VPBROADCASTMW2D, 2, {YMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+16786, 222},
-    /* 4722 */ {I_VPBROADCASTMW2D, 2, {ZMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+16794, 223},
-    /* 4723 */ {I_VPBROADCASTQ, 2, {XMMREG,MEMORY|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16802, 214},
-    /* 4724 */ {I_VPBROADCASTQ, 2, {YMMREG,MEMORY|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16810, 214},
-    /* 4725 */ {I_VPBROADCASTQ, 2, {ZMMREG,MEMORY|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16818, 215},
-    /* 4726 */ {I_VPBROADCASTQ, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16826, 214},
-    /* 4727 */ {I_VPBROADCASTQ, 2, {YMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16834, 214},
-    /* 4728 */ {I_VPBROADCASTQ, 2, {ZMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16842, 215},
-    /* 4729 */ {I_VPBROADCASTQ, 2, {XMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16850, 214},
-    /* 4730 */ {I_VPBROADCASTQ, 2, {YMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16858, 214},
-    /* 4731 */ {I_VPBROADCASTQ, 2, {ZMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16866, 215},
-    /* 4732 */ {I_VPBROADCASTW, 2, {XMMREG,RM_XMM|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16874, 218},
-    /* 4733 */ {I_VPBROADCASTW, 2, {YMMREG,RM_XMM|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16882, 218},
-    /* 4734 */ {I_VPBROADCASTW, 2, {ZMMREG,RM_XMM|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16890, 219},
-    /* 4735 */ {I_VPBROADCASTW, 2, {XMMREG,REG_GPR|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16898, 218},
-    /* 4736 */ {I_VPBROADCASTW, 2, {XMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16898, 218},
-    /* 4737 */ {I_VPBROADCASTW, 2, {XMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16898, 218},
-    /* 4738 */ {I_VPBROADCASTW, 2, {YMMREG,REG_GPR|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16906, 218},
-    /* 4739 */ {I_VPBROADCASTW, 2, {YMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16906, 218},
-    /* 4740 */ {I_VPBROADCASTW, 2, {YMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16906, 218},
-    /* 4741 */ {I_VPBROADCASTW, 2, {ZMMREG,REG_GPR|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16914, 219},
-    /* 4742 */ {I_VPBROADCASTW, 2, {ZMMREG,REG_GPR|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16914, 219},
-    /* 4743 */ {I_VPBROADCASTW, 2, {ZMMREG,REG_GPR|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+16914, 219},
-    /* 4744 */ {I_VPCMPB, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+4878, 218},
-    /* 4745 */ {I_VPCMPB, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+4887, 218},
-    /* 4746 */ {I_VPCMPB, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+4896, 219},
-    /* 4747 */ {I_VPCMPD, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+4905, 214},
-    /* 4748 */ {I_VPCMPD, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+4914, 214},
-    /* 4749 */ {I_VPCMPD, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+4923, 215},
-    /* 4750 */ {I_VPCMPEQB, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+16922, 218},
-    /* 4751 */ {I_VPCMPEQB, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+16930, 218},
-    /* 4752 */ {I_VPCMPEQB, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+16938, 219},
-    /* 4753 */ {I_VPCMPEQD, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+16946, 214},
-    /* 4754 */ {I_VPCMPEQD, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+16954, 214},
-    /* 4755 */ {I_VPCMPEQD, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+16962, 215},
-    /* 4756 */ {I_VPCMPEQQ, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+16970, 214},
-    /* 4757 */ {I_VPCMPEQQ, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+16978, 214},
-    /* 4758 */ {I_VPCMPEQQ, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+16986, 215},
-    /* 4759 */ {I_VPCMPEQW, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+16994, 218},
-    /* 4760 */ {I_VPCMPEQW, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17002, 218},
-    /* 4761 */ {I_VPCMPEQW, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17010, 219},
-    /* 4762 */ {I_VPCMPGTB, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17018, 218},
-    /* 4763 */ {I_VPCMPGTB, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17026, 218},
-    /* 4764 */ {I_VPCMPGTB, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17034, 219},
-    /* 4765 */ {I_VPCMPGTD, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+17042, 214},
-    /* 4766 */ {I_VPCMPGTD, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+17050, 214},
-    /* 4767 */ {I_VPCMPGTD, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+17058, 215},
-    /* 4768 */ {I_VPCMPGTQ, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+17066, 214},
-    /* 4769 */ {I_VPCMPGTQ, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+17074, 214},
-    /* 4770 */ {I_VPCMPGTQ, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+17082, 215},
-    /* 4771 */ {I_VPCMPGTW, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17090, 218},
-    /* 4772 */ {I_VPCMPGTW, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17098, 218},
-    /* 4773 */ {I_VPCMPGTW, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17106, 219},
-    /* 4774 */ {I_VPCMPQ, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+4932, 214},
-    /* 4775 */ {I_VPCMPQ, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+4941, 214},
-    /* 4776 */ {I_VPCMPQ, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+4950, 215},
-    /* 4777 */ {I_VPCMPUB, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+4959, 218},
-    /* 4778 */ {I_VPCMPUB, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+4968, 218},
-    /* 4779 */ {I_VPCMPUB, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+4977, 219},
-    /* 4780 */ {I_VPCMPUD, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+4986, 214},
-    /* 4781 */ {I_VPCMPUD, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+4995, 214},
-    /* 4782 */ {I_VPCMPUD, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,B32,0,0}, nasm_bytecodes+5004, 215},
-    /* 4783 */ {I_VPCMPUQ, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+5013, 214},
-    /* 4784 */ {I_VPCMPUQ, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+5022, 214},
-    /* 4785 */ {I_VPCMPUQ, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,B64,0,0}, nasm_bytecodes+5031, 215},
-    /* 4786 */ {I_VPCMPUW, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+5040, 218},
-    /* 4787 */ {I_VPCMPUW, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+5049, 218},
-    /* 4788 */ {I_VPCMPUW, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+5058, 219},
-    /* 4789 */ {I_VPCMPW, 4, {KREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+5067, 218},
-    /* 4790 */ {I_VPCMPW, 4, {KREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+5076, 218},
-    /* 4791 */ {I_VPCMPW, 4, {KREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK,0,0,0,0}, nasm_bytecodes+5085, 219},
-    /* 4792 */ {I_VPCOMPRESSD, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17114, 214},
-    /* 4793 */ {I_VPCOMPRESSD, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17122, 214},
-    /* 4794 */ {I_VPCOMPRESSD, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17130, 215},
-    /* 4795 */ {I_VPCOMPRESSD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17138, 214},
-    /* 4796 */ {I_VPCOMPRESSD, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17146, 214},
-    /* 4797 */ {I_VPCOMPRESSD, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17154, 215},
-    /* 4798 */ {I_VPCOMPRESSQ, 2, {MEMORY|BITS128,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17162, 214},
-    /* 4799 */ {I_VPCOMPRESSQ, 2, {MEMORY|BITS256,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17170, 214},
-    /* 4800 */ {I_VPCOMPRESSQ, 2, {MEMORY|BITS512,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+17178, 215},
-    /* 4801 */ {I_VPCOMPRESSQ, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17186, 214},
-    /* 4802 */ {I_VPCOMPRESSQ, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17194, 214},
-    /* 4803 */ {I_VPCOMPRESSQ, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17202, 215},
-    /* 4804 */ {I_VPCONFLICTD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17210, 222},
-    /* 4805 */ {I_VPCONFLICTD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17218, 222},
-    /* 4806 */ {I_VPCONFLICTD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17226, 223},
-    /* 4807 */ {I_VPCONFLICTQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17234, 222},
-    /* 4808 */ {I_VPCONFLICTQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17242, 222},
-    /* 4809 */ {I_VPCONFLICTQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17250, 223},
-    /* 4810 */ {I_VPERMB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17258, 224},
-    /* 4811 */ {I_VPERMB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17266, 224},
-    /* 4812 */ {I_VPERMB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17274, 224},
-    /* 4813 */ {I_VPERMB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17282, 224},
-    /* 4814 */ {I_VPERMB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17290, 225},
-    /* 4815 */ {I_VPERMB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17298, 225},
-    /* 4816 */ {I_VPERMD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17306, 214},
-    /* 4817 */ {I_VPERMD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17314, 214},
-    /* 4818 */ {I_VPERMD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17322, 215},
-    /* 4819 */ {I_VPERMD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17330, 215},
-    /* 4820 */ {I_VPERMI2B, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17338, 224},
-    /* 4821 */ {I_VPERMI2B, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17346, 224},
-    /* 4822 */ {I_VPERMI2B, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17354, 225},
-    /* 4823 */ {I_VPERMI2D, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17362, 214},
-    /* 4824 */ {I_VPERMI2D, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17370, 214},
-    /* 4825 */ {I_VPERMI2D, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17378, 215},
-    /* 4826 */ {I_VPERMI2PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17386, 214},
-    /* 4827 */ {I_VPERMI2PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17394, 214},
-    /* 4828 */ {I_VPERMI2PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17402, 215},
-    /* 4829 */ {I_VPERMI2PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17410, 214},
-    /* 4830 */ {I_VPERMI2PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17418, 214},
-    /* 4831 */ {I_VPERMI2PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17426, 215},
-    /* 4832 */ {I_VPERMI2Q, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17434, 214},
-    /* 4833 */ {I_VPERMI2Q, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17442, 214},
-    /* 4834 */ {I_VPERMI2Q, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17450, 215},
-    /* 4835 */ {I_VPERMI2W, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17458, 218},
-    /* 4836 */ {I_VPERMI2W, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17466, 218},
-    /* 4837 */ {I_VPERMI2W, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17474, 219},
-    /* 4838 */ {I_VPERMILPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5094, 214},
-    /* 4839 */ {I_VPERMILPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5103, 214},
-    /* 4840 */ {I_VPERMILPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5112, 215},
-    /* 4841 */ {I_VPERMILPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17482, 214},
-    /* 4842 */ {I_VPERMILPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17490, 214},
-    /* 4843 */ {I_VPERMILPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17498, 214},
-    /* 4844 */ {I_VPERMILPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17506, 214},
-    /* 4845 */ {I_VPERMILPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17514, 215},
-    /* 4846 */ {I_VPERMILPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17522, 215},
-    /* 4847 */ {I_VPERMILPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5121, 214},
-    /* 4848 */ {I_VPERMILPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5130, 214},
-    /* 4849 */ {I_VPERMILPS, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5139, 215},
-    /* 4850 */ {I_VPERMILPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17530, 214},
-    /* 4851 */ {I_VPERMILPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17538, 214},
-    /* 4852 */ {I_VPERMILPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17546, 214},
-    /* 4853 */ {I_VPERMILPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17554, 214},
-    /* 4854 */ {I_VPERMILPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17562, 215},
-    /* 4855 */ {I_VPERMILPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17570, 215},
-    /* 4856 */ {I_VPERMPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5148, 214},
-    /* 4857 */ {I_VPERMPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5157, 215},
-    /* 4858 */ {I_VPERMPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17578, 214},
-    /* 4859 */ {I_VPERMPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17586, 214},
-    /* 4860 */ {I_VPERMPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17594, 215},
-    /* 4861 */ {I_VPERMPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17602, 215},
-    /* 4862 */ {I_VPERMPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17610, 214},
-    /* 4863 */ {I_VPERMPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17618, 214},
-    /* 4864 */ {I_VPERMPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17626, 215},
-    /* 4865 */ {I_VPERMPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17634, 215},
-    /* 4866 */ {I_VPERMQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5166, 214},
-    /* 4867 */ {I_VPERMQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5175, 215},
-    /* 4868 */ {I_VPERMQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17642, 214},
-    /* 4869 */ {I_VPERMQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17650, 214},
-    /* 4870 */ {I_VPERMQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17658, 215},
-    /* 4871 */ {I_VPERMQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17666, 215},
-    /* 4872 */ {I_VPERMT2B, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17674, 224},
-    /* 4873 */ {I_VPERMT2B, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17682, 224},
-    /* 4874 */ {I_VPERMT2B, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17690, 225},
-    /* 4875 */ {I_VPERMT2D, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17698, 214},
-    /* 4876 */ {I_VPERMT2D, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17706, 214},
-    /* 4877 */ {I_VPERMT2D, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17714, 215},
-    /* 4878 */ {I_VPERMT2PD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17722, 214},
-    /* 4879 */ {I_VPERMT2PD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17730, 214},
-    /* 4880 */ {I_VPERMT2PD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17738, 215},
-    /* 4881 */ {I_VPERMT2PS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17746, 214},
-    /* 4882 */ {I_VPERMT2PS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17754, 214},
-    /* 4883 */ {I_VPERMT2PS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+17762, 215},
-    /* 4884 */ {I_VPERMT2Q, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17770, 214},
-    /* 4885 */ {I_VPERMT2Q, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17778, 214},
-    /* 4886 */ {I_VPERMT2Q, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17786, 215},
-    /* 4887 */ {I_VPERMT2W, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17794, 218},
-    /* 4888 */ {I_VPERMT2W, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17802, 218},
-    /* 4889 */ {I_VPERMT2W, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17810, 219},
-    /* 4890 */ {I_VPERMW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17818, 218},
-    /* 4891 */ {I_VPERMW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17826, 218},
-    /* 4892 */ {I_VPERMW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17834, 218},
-    /* 4893 */ {I_VPERMW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17842, 218},
-    /* 4894 */ {I_VPERMW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17850, 219},
-    /* 4895 */ {I_VPERMW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17858, 219},
-    /* 4896 */ {I_VPEXPANDD, 2, {XMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17866, 214},
-    /* 4897 */ {I_VPEXPANDD, 2, {YMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17874, 214},
-    /* 4898 */ {I_VPEXPANDD, 2, {ZMMREG,MEMORY|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17882, 215},
-    /* 4899 */ {I_VPEXPANDD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17866, 214},
-    /* 4900 */ {I_VPEXPANDD, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17874, 214},
-    /* 4901 */ {I_VPEXPANDD, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17882, 215},
-    /* 4902 */ {I_VPEXPANDQ, 2, {XMMREG,MEMORY|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17890, 214},
-    /* 4903 */ {I_VPEXPANDQ, 2, {YMMREG,MEMORY|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17898, 214},
-    /* 4904 */ {I_VPEXPANDQ, 2, {ZMMREG,MEMORY|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17906, 215},
-    /* 4905 */ {I_VPEXPANDQ, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17890, 214},
-    /* 4906 */ {I_VPEXPANDQ, 2, {YMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17898, 214},
-    /* 4907 */ {I_VPEXPANDQ, 2, {ZMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+17906, 215},
-    /* 4908 */ {I_VPEXTRB, 3, {REG_GPR|BITS8,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5184, 219},
-    /* 4909 */ {I_VPEXTRB, 3, {REG_GPR|BITS16,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5184, 219},
-    /* 4910 */ {I_VPEXTRB, 3, {REG_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5184, 219},
-    /* 4911 */ {I_VPEXTRB, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5184, 219},
-    /* 4912 */ {I_VPEXTRB, 3, {MEMORY|BITS8,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5184, 219},
-    /* 4913 */ {I_VPEXTRD, 3, {RM_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5193, 217},
-    /* 4914 */ {I_VPEXTRQ, 3, {RM_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5202, 217},
-    /* 4915 */ {I_VPEXTRW, 3, {REG_GPR|BITS16,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5211, 219},
-    /* 4916 */ {I_VPEXTRW, 3, {REG_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5211, 219},
-    /* 4917 */ {I_VPEXTRW, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5211, 219},
-    /* 4918 */ {I_VPEXTRW, 3, {MEMORY|BITS16,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5211, 219},
-    /* 4919 */ {I_VPEXTRW, 3, {REG_GPR|BITS16,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5220, 219},
-    /* 4920 */ {I_VPEXTRW, 3, {REG_GPR|BITS32,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5220, 219},
-    /* 4921 */ {I_VPEXTRW, 3, {REG_GPR|BITS64,XMMREG,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5220, 219},
-    /* 4922 */ {I_VPGATHERDD, 2, {XMMREG,XMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5229, 214},
-    /* 4923 */ {I_VPGATHERDD, 2, {YMMREG,YMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5238, 214},
-    /* 4924 */ {I_VPGATHERDD, 2, {ZMMREG,ZMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5247, 215},
-    /* 4925 */ {I_VPGATHERDQ, 2, {XMMREG,XMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5256, 214},
-    /* 4926 */ {I_VPGATHERDQ, 2, {YMMREG,XMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5265, 214},
-    /* 4927 */ {I_VPGATHERDQ, 2, {ZMMREG,YMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5274, 215},
-    /* 4928 */ {I_VPGATHERQD, 2, {XMMREG,XMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5283, 214},
-    /* 4929 */ {I_VPGATHERQD, 2, {XMMREG,YMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5292, 214},
-    /* 4930 */ {I_VPGATHERQD, 2, {YMMREG,ZMEM|BITS32,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5301, 215},
-    /* 4931 */ {I_VPGATHERQQ, 2, {XMMREG,XMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5310, 214},
-    /* 4932 */ {I_VPGATHERQQ, 2, {YMMREG,YMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5319, 214},
-    /* 4933 */ {I_VPGATHERQQ, 2, {ZMMREG,ZMEM|BITS64,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5328, 215},
-    /* 4934 */ {I_VPINSRB, 4, {XMMREG,XMMREG,REG_GPR|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+5337, 219},
-    /* 4935 */ {I_VPINSRB, 3, {XMMREG,REG_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5346, 219},
-    /* 4936 */ {I_VPINSRB, 4, {XMMREG,XMMREG,MEMORY|BITS8,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+5337, 219},
-    /* 4937 */ {I_VPINSRB, 3, {XMMREG,MEMORY|BITS8,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5346, 219},
-    /* 4938 */ {I_VPINSRD, 4, {XMMREG,XMMREG,RM_GPR|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+5355, 217},
-    /* 4939 */ {I_VPINSRD, 3, {XMMREG,RM_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5364, 217},
-    /* 4940 */ {I_VPINSRQ, 4, {XMMREG,XMMREG,RM_GPR|BITS64,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+5373, 217},
-    /* 4941 */ {I_VPINSRQ, 3, {XMMREG,RM_GPR|BITS64,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5382, 217},
-    /* 4942 */ {I_VPINSRW, 4, {XMMREG,XMMREG,REG_GPR|BITS32,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+5391, 219},
-    /* 4943 */ {I_VPINSRW, 3, {XMMREG,REG_GPR|BITS32,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5400, 219},
-    /* 4944 */ {I_VPINSRW, 4, {XMMREG,XMMREG,MEMORY|BITS16,IMMEDIATE|BITS8,0}, NO_DECORATOR, nasm_bytecodes+5391, 219},
-    /* 4945 */ {I_VPINSRW, 3, {XMMREG,MEMORY|BITS16,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5400, 219},
-    /* 4946 */ {I_VPLZCNTD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17914, 222},
-    /* 4947 */ {I_VPLZCNTD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17922, 222},
-    /* 4948 */ {I_VPLZCNTD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+17930, 223},
-    /* 4949 */ {I_VPLZCNTQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17938, 222},
-    /* 4950 */ {I_VPLZCNTQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17946, 222},
-    /* 4951 */ {I_VPLZCNTQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+17954, 223},
-    /* 4952 */ {I_VPMADD52HUQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17962, 226},
-    /* 4953 */ {I_VPMADD52HUQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17970, 226},
-    /* 4954 */ {I_VPMADD52HUQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17978, 227},
-    /* 4955 */ {I_VPMADD52LUQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17986, 226},
-    /* 4956 */ {I_VPMADD52LUQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+17994, 226},
-    /* 4957 */ {I_VPMADD52LUQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18002, 227},
-    /* 4958 */ {I_VPMADDUBSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18010, 218},
-    /* 4959 */ {I_VPMADDUBSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18018, 218},
-    /* 4960 */ {I_VPMADDUBSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18026, 218},
-    /* 4961 */ {I_VPMADDUBSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18034, 218},
-    /* 4962 */ {I_VPMADDUBSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18042, 219},
-    /* 4963 */ {I_VPMADDUBSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18050, 219},
-    /* 4964 */ {I_VPMADDWD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18058, 218},
-    /* 4965 */ {I_VPMADDWD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18066, 218},
-    /* 4966 */ {I_VPMADDWD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18074, 218},
-    /* 4967 */ {I_VPMADDWD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18082, 218},
-    /* 4968 */ {I_VPMADDWD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18090, 219},
-    /* 4969 */ {I_VPMADDWD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18098, 219},
-    /* 4970 */ {I_VPMAXSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18106, 218},
-    /* 4971 */ {I_VPMAXSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18114, 218},
-    /* 4972 */ {I_VPMAXSB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18122, 218},
-    /* 4973 */ {I_VPMAXSB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18130, 218},
-    /* 4974 */ {I_VPMAXSB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18138, 219},
-    /* 4975 */ {I_VPMAXSB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18146, 219},
-    /* 4976 */ {I_VPMAXSD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18154, 214},
-    /* 4977 */ {I_VPMAXSD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18162, 214},
-    /* 4978 */ {I_VPMAXSD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18170, 214},
-    /* 4979 */ {I_VPMAXSD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18178, 214},
-    /* 4980 */ {I_VPMAXSD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18186, 215},
-    /* 4981 */ {I_VPMAXSD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18194, 215},
-    /* 4982 */ {I_VPMAXSQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18202, 214},
-    /* 4983 */ {I_VPMAXSQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18210, 214},
-    /* 4984 */ {I_VPMAXSQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18218, 214},
-    /* 4985 */ {I_VPMAXSQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18226, 214},
-    /* 4986 */ {I_VPMAXSQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18234, 215},
-    /* 4987 */ {I_VPMAXSQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18242, 215},
-    /* 4988 */ {I_VPMAXSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18250, 218},
-    /* 4989 */ {I_VPMAXSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18258, 218},
-    /* 4990 */ {I_VPMAXSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18266, 218},
-    /* 4991 */ {I_VPMAXSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18274, 218},
-    /* 4992 */ {I_VPMAXSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18282, 219},
-    /* 4993 */ {I_VPMAXSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18290, 219},
-    /* 4994 */ {I_VPMAXUB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18298, 218},
-    /* 4995 */ {I_VPMAXUB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18306, 218},
-    /* 4996 */ {I_VPMAXUB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18314, 218},
-    /* 4997 */ {I_VPMAXUB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18322, 218},
-    /* 4998 */ {I_VPMAXUB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18330, 219},
-    /* 4999 */ {I_VPMAXUB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18338, 219},
-    /* 5000 */ {I_VPMAXUD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18346, 214},
-    /* 5001 */ {I_VPMAXUD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18354, 214},
-    /* 5002 */ {I_VPMAXUD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18362, 214},
-    /* 5003 */ {I_VPMAXUD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18370, 214},
-    /* 5004 */ {I_VPMAXUD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18378, 215},
-    /* 5005 */ {I_VPMAXUD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18386, 215},
-    /* 5006 */ {I_VPMAXUQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18394, 214},
-    /* 5007 */ {I_VPMAXUQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18402, 214},
-    /* 5008 */ {I_VPMAXUQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18410, 214},
-    /* 5009 */ {I_VPMAXUQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18418, 214},
-    /* 5010 */ {I_VPMAXUQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18426, 215},
-    /* 5011 */ {I_VPMAXUQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18434, 215},
-    /* 5012 */ {I_VPMAXUW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18442, 218},
-    /* 5013 */ {I_VPMAXUW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18450, 218},
-    /* 5014 */ {I_VPMAXUW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18458, 218},
-    /* 5015 */ {I_VPMAXUW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18466, 218},
-    /* 5016 */ {I_VPMAXUW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18474, 219},
-    /* 5017 */ {I_VPMAXUW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18482, 219},
-    /* 5018 */ {I_VPMINSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18490, 218},
-    /* 5019 */ {I_VPMINSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18498, 218},
-    /* 5020 */ {I_VPMINSB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18506, 218},
-    /* 5021 */ {I_VPMINSB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18514, 218},
-    /* 5022 */ {I_VPMINSB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18522, 219},
-    /* 5023 */ {I_VPMINSB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18530, 219},
-    /* 5024 */ {I_VPMINSD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18538, 214},
-    /* 5025 */ {I_VPMINSD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18546, 214},
-    /* 5026 */ {I_VPMINSD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18554, 214},
-    /* 5027 */ {I_VPMINSD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18562, 214},
-    /* 5028 */ {I_VPMINSD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18570, 215},
-    /* 5029 */ {I_VPMINSD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18578, 215},
-    /* 5030 */ {I_VPMINSQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18586, 214},
-    /* 5031 */ {I_VPMINSQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18594, 214},
-    /* 5032 */ {I_VPMINSQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18602, 214},
-    /* 5033 */ {I_VPMINSQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18610, 214},
-    /* 5034 */ {I_VPMINSQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18618, 215},
-    /* 5035 */ {I_VPMINSQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18626, 215},
-    /* 5036 */ {I_VPMINSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18634, 218},
-    /* 5037 */ {I_VPMINSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18642, 218},
-    /* 5038 */ {I_VPMINSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18650, 218},
-    /* 5039 */ {I_VPMINSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18658, 218},
-    /* 5040 */ {I_VPMINSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18666, 219},
-    /* 5041 */ {I_VPMINSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18674, 219},
-    /* 5042 */ {I_VPMINUB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18682, 218},
-    /* 5043 */ {I_VPMINUB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18690, 218},
-    /* 5044 */ {I_VPMINUB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18698, 218},
-    /* 5045 */ {I_VPMINUB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18706, 218},
-    /* 5046 */ {I_VPMINUB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18714, 219},
-    /* 5047 */ {I_VPMINUB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18722, 219},
-    /* 5048 */ {I_VPMINUD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18730, 214},
-    /* 5049 */ {I_VPMINUD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18738, 214},
-    /* 5050 */ {I_VPMINUD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18746, 214},
-    /* 5051 */ {I_VPMINUD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18754, 214},
-    /* 5052 */ {I_VPMINUD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+18762, 215},
-    /* 5053 */ {I_VPMINUD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+18770, 215},
-    /* 5054 */ {I_VPMINUQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18778, 214},
-    /* 5055 */ {I_VPMINUQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18786, 214},
-    /* 5056 */ {I_VPMINUQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18794, 214},
-    /* 5057 */ {I_VPMINUQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18802, 214},
-    /* 5058 */ {I_VPMINUQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+18810, 215},
-    /* 5059 */ {I_VPMINUQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+18818, 215},
-    /* 5060 */ {I_VPMINUW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18826, 218},
-    /* 5061 */ {I_VPMINUW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18834, 218},
-    /* 5062 */ {I_VPMINUW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18842, 218},
-    /* 5063 */ {I_VPMINUW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18850, 218},
-    /* 5064 */ {I_VPMINUW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18858, 219},
-    /* 5065 */ {I_VPMINUW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18866, 219},
-    /* 5066 */ {I_VPMOVB2M, 2, {KREG,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+18874, 218},
-    /* 5067 */ {I_VPMOVB2M, 2, {KREG,YMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+18882, 218},
-    /* 5068 */ {I_VPMOVB2M, 2, {KREG,ZMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+18890, 219},
-    /* 5069 */ {I_VPMOVD2M, 2, {KREG,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+18898, 216},
-    /* 5070 */ {I_VPMOVD2M, 2, {KREG,YMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+18906, 216},
-    /* 5071 */ {I_VPMOVD2M, 2, {KREG,ZMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+18914, 217},
-    /* 5072 */ {I_VPMOVDB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18922, 214},
-    /* 5073 */ {I_VPMOVDB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18930, 214},
-    /* 5074 */ {I_VPMOVDB, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18938, 215},
-    /* 5075 */ {I_VPMOVDB, 2, {MEMORY|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+18946, 214},
-    /* 5076 */ {I_VPMOVDB, 2, {MEMORY|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+18954, 214},
-    /* 5077 */ {I_VPMOVDB, 2, {MEMORY|BITS128,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+18962, 215},
-    /* 5078 */ {I_VPMOVDW, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18970, 214},
-    /* 5079 */ {I_VPMOVDW, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18978, 214},
-    /* 5080 */ {I_VPMOVDW, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+18986, 215},
-    /* 5081 */ {I_VPMOVDW, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+18994, 214},
-    /* 5082 */ {I_VPMOVDW, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19002, 214},
-    /* 5083 */ {I_VPMOVDW, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19010, 215},
-    /* 5084 */ {I_VPMOVM2B, 2, {XMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19018, 218},
-    /* 5085 */ {I_VPMOVM2B, 2, {YMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19026, 218},
-    /* 5086 */ {I_VPMOVM2B, 2, {ZMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19034, 219},
-    /* 5087 */ {I_VPMOVM2D, 2, {XMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19042, 216},
-    /* 5088 */ {I_VPMOVM2D, 2, {YMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19050, 216},
-    /* 5089 */ {I_VPMOVM2D, 2, {ZMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19058, 217},
-    /* 5090 */ {I_VPMOVM2Q, 2, {XMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19066, 216},
-    /* 5091 */ {I_VPMOVM2Q, 2, {YMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19074, 216},
-    /* 5092 */ {I_VPMOVM2Q, 2, {ZMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19082, 217},
-    /* 5093 */ {I_VPMOVM2W, 2, {XMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19090, 218},
-    /* 5094 */ {I_VPMOVM2W, 2, {YMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19098, 218},
-    /* 5095 */ {I_VPMOVM2W, 2, {ZMMREG,KREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19106, 219},
-    /* 5096 */ {I_VPMOVQ2M, 2, {KREG,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19114, 216},
-    /* 5097 */ {I_VPMOVQ2M, 2, {KREG,YMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19122, 216},
-    /* 5098 */ {I_VPMOVQ2M, 2, {KREG,ZMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+19130, 217},
-    /* 5099 */ {I_VPMOVQB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19138, 214},
-    /* 5100 */ {I_VPMOVQB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19146, 214},
-    /* 5101 */ {I_VPMOVQB, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19154, 215},
-    /* 5102 */ {I_VPMOVQB, 2, {MEMORY|BITS16,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19162, 214},
-    /* 5103 */ {I_VPMOVQB, 2, {MEMORY|BITS32,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19170, 214},
-    /* 5104 */ {I_VPMOVQB, 2, {MEMORY|BITS64,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19178, 215},
-    /* 5105 */ {I_VPMOVQD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19186, 214},
-    /* 5106 */ {I_VPMOVQD, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19194, 214},
-    /* 5107 */ {I_VPMOVQD, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19202, 215},
-    /* 5108 */ {I_VPMOVQD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19210, 214},
-    /* 5109 */ {I_VPMOVQD, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19218, 214},
-    /* 5110 */ {I_VPMOVQD, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19226, 215},
-    /* 5111 */ {I_VPMOVQW, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19234, 214},
-    /* 5112 */ {I_VPMOVQW, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19242, 214},
-    /* 5113 */ {I_VPMOVQW, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19250, 215},
-    /* 5114 */ {I_VPMOVQW, 2, {MEMORY|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19258, 214},
-    /* 5115 */ {I_VPMOVQW, 2, {MEMORY|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19266, 214},
-    /* 5116 */ {I_VPMOVQW, 2, {MEMORY|BITS128,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19274, 215},
-    /* 5117 */ {I_VPMOVSDB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19282, 214},
-    /* 5118 */ {I_VPMOVSDB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19290, 214},
-    /* 5119 */ {I_VPMOVSDB, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19298, 215},
-    /* 5120 */ {I_VPMOVSDB, 2, {MEMORY|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19306, 214},
-    /* 5121 */ {I_VPMOVSDB, 2, {MEMORY|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19314, 214},
-    /* 5122 */ {I_VPMOVSDB, 2, {MEMORY|BITS128,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19322, 215},
-    /* 5123 */ {I_VPMOVSDW, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19330, 214},
-    /* 5124 */ {I_VPMOVSDW, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19338, 214},
-    /* 5125 */ {I_VPMOVSDW, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19346, 215},
-    /* 5126 */ {I_VPMOVSDW, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19354, 214},
-    /* 5127 */ {I_VPMOVSDW, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19362, 214},
-    /* 5128 */ {I_VPMOVSDW, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19370, 215},
-    /* 5129 */ {I_VPMOVSQB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19378, 214},
-    /* 5130 */ {I_VPMOVSQB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19386, 214},
-    /* 5131 */ {I_VPMOVSQB, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19394, 215},
-    /* 5132 */ {I_VPMOVSQB, 2, {MEMORY|BITS16,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19402, 214},
-    /* 5133 */ {I_VPMOVSQB, 2, {MEMORY|BITS32,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19410, 214},
-    /* 5134 */ {I_VPMOVSQB, 2, {MEMORY|BITS64,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19418, 215},
-    /* 5135 */ {I_VPMOVSQD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19426, 214},
-    /* 5136 */ {I_VPMOVSQD, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19434, 214},
-    /* 5137 */ {I_VPMOVSQD, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19442, 215},
-    /* 5138 */ {I_VPMOVSQD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19450, 214},
-    /* 5139 */ {I_VPMOVSQD, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19458, 214},
-    /* 5140 */ {I_VPMOVSQD, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19466, 215},
-    /* 5141 */ {I_VPMOVSQW, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19474, 214},
-    /* 5142 */ {I_VPMOVSQW, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19482, 214},
-    /* 5143 */ {I_VPMOVSQW, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19490, 215},
-    /* 5144 */ {I_VPMOVSQW, 2, {MEMORY|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19498, 214},
-    /* 5145 */ {I_VPMOVSQW, 2, {MEMORY|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19506, 214},
-    /* 5146 */ {I_VPMOVSQW, 2, {MEMORY|BITS128,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19514, 215},
-    /* 5147 */ {I_VPMOVSWB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19522, 218},
-    /* 5148 */ {I_VPMOVSWB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19530, 218},
-    /* 5149 */ {I_VPMOVSWB, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19538, 219},
-    /* 5150 */ {I_VPMOVSWB, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19546, 218},
-    /* 5151 */ {I_VPMOVSWB, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19554, 218},
-    /* 5152 */ {I_VPMOVSWB, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19562, 219},
-    /* 5153 */ {I_VPMOVSXBD, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19570, 214},
-    /* 5154 */ {I_VPMOVSXBD, 2, {YMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19578, 214},
-    /* 5155 */ {I_VPMOVSXBD, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19586, 215},
-    /* 5156 */ {I_VPMOVSXBQ, 2, {XMMREG,RM_XMM|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19594, 214},
-    /* 5157 */ {I_VPMOVSXBQ, 2, {YMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19602, 214},
-    /* 5158 */ {I_VPMOVSXBQ, 2, {ZMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19610, 215},
-    /* 5159 */ {I_VPMOVSXBW, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19618, 218},
-    /* 5160 */ {I_VPMOVSXBW, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19626, 218},
-    /* 5161 */ {I_VPMOVSXBW, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19634, 219},
-    /* 5162 */ {I_VPMOVSXDQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19642, 214},
-    /* 5163 */ {I_VPMOVSXDQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19650, 214},
-    /* 5164 */ {I_VPMOVSXDQ, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19658, 215},
-    /* 5165 */ {I_VPMOVSXWD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19666, 214},
-    /* 5166 */ {I_VPMOVSXWD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19674, 214},
-    /* 5167 */ {I_VPMOVSXWD, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19682, 215},
-    /* 5168 */ {I_VPMOVSXWQ, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19690, 214},
-    /* 5169 */ {I_VPMOVSXWQ, 2, {YMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19698, 214},
-    /* 5170 */ {I_VPMOVSXWQ, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19706, 215},
-    /* 5171 */ {I_VPMOVUSDB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19714, 214},
-    /* 5172 */ {I_VPMOVUSDB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19722, 214},
-    /* 5173 */ {I_VPMOVUSDB, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19730, 215},
-    /* 5174 */ {I_VPMOVUSDB, 2, {MEMORY|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19738, 214},
-    /* 5175 */ {I_VPMOVUSDB, 2, {MEMORY|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19746, 214},
-    /* 5176 */ {I_VPMOVUSDB, 2, {MEMORY|BITS128,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19754, 215},
-    /* 5177 */ {I_VPMOVUSDW, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19762, 214},
-    /* 5178 */ {I_VPMOVUSDW, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19770, 214},
-    /* 5179 */ {I_VPMOVUSDW, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19778, 215},
-    /* 5180 */ {I_VPMOVUSDW, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19786, 214},
-    /* 5181 */ {I_VPMOVUSDW, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19794, 214},
-    /* 5182 */ {I_VPMOVUSDW, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19802, 215},
-    /* 5183 */ {I_VPMOVUSQB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19810, 214},
-    /* 5184 */ {I_VPMOVUSQB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19818, 214},
-    /* 5185 */ {I_VPMOVUSQB, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19826, 215},
-    /* 5186 */ {I_VPMOVUSQB, 2, {MEMORY|BITS16,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19834, 214},
-    /* 5187 */ {I_VPMOVUSQB, 2, {MEMORY|BITS32,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19842, 214},
-    /* 5188 */ {I_VPMOVUSQB, 2, {MEMORY|BITS64,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19850, 215},
-    /* 5189 */ {I_VPMOVUSQD, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19858, 214},
-    /* 5190 */ {I_VPMOVUSQD, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19866, 214},
-    /* 5191 */ {I_VPMOVUSQD, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19874, 215},
-    /* 5192 */ {I_VPMOVUSQD, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19882, 214},
-    /* 5193 */ {I_VPMOVUSQD, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19890, 214},
-    /* 5194 */ {I_VPMOVUSQD, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19898, 215},
-    /* 5195 */ {I_VPMOVUSQW, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19906, 214},
-    /* 5196 */ {I_VPMOVUSQW, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19914, 214},
-    /* 5197 */ {I_VPMOVUSQW, 2, {XMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19922, 215},
-    /* 5198 */ {I_VPMOVUSQW, 2, {MEMORY|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19930, 214},
-    /* 5199 */ {I_VPMOVUSQW, 2, {MEMORY|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19938, 214},
-    /* 5200 */ {I_VPMOVUSQW, 2, {MEMORY|BITS128,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19946, 215},
-    /* 5201 */ {I_VPMOVUSWB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19954, 218},
-    /* 5202 */ {I_VPMOVUSWB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19962, 218},
-    /* 5203 */ {I_VPMOVUSWB, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+19970, 219},
-    /* 5204 */ {I_VPMOVUSWB, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19978, 218},
-    /* 5205 */ {I_VPMOVUSWB, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19986, 218},
-    /* 5206 */ {I_VPMOVUSWB, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+19994, 219},
-    /* 5207 */ {I_VPMOVW2M, 2, {KREG,XMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+20002, 218},
-    /* 5208 */ {I_VPMOVW2M, 2, {KREG,YMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+20010, 218},
-    /* 5209 */ {I_VPMOVW2M, 2, {KREG,ZMMREG,0,0,0}, NO_DECORATOR, nasm_bytecodes+20018, 219},
-    /* 5210 */ {I_VPMOVWB, 2, {XMMREG,XMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20026, 218},
-    /* 5211 */ {I_VPMOVWB, 2, {XMMREG,YMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20034, 218},
-    /* 5212 */ {I_VPMOVWB, 2, {YMMREG,ZMMREG,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20042, 219},
-    /* 5213 */ {I_VPMOVWB, 2, {MEMORY|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+20050, 218},
-    /* 5214 */ {I_VPMOVWB, 2, {MEMORY|BITS128,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+20058, 218},
-    /* 5215 */ {I_VPMOVWB, 2, {MEMORY|BITS256,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+20066, 219},
-    /* 5216 */ {I_VPMOVZXBD, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20074, 214},
-    /* 5217 */ {I_VPMOVZXBD, 2, {YMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20082, 214},
-    /* 5218 */ {I_VPMOVZXBD, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20090, 215},
-    /* 5219 */ {I_VPMOVZXBQ, 2, {XMMREG,RM_XMM|BITS16,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20098, 214},
-    /* 5220 */ {I_VPMOVZXBQ, 2, {YMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20106, 214},
-    /* 5221 */ {I_VPMOVZXBQ, 2, {ZMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20114, 215},
-    /* 5222 */ {I_VPMOVZXBW, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20122, 218},
-    /* 5223 */ {I_VPMOVZXBW, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20130, 218},
-    /* 5224 */ {I_VPMOVZXBW, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20138, 219},
-    /* 5225 */ {I_VPMOVZXDQ, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20146, 214},
-    /* 5226 */ {I_VPMOVZXDQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20154, 214},
-    /* 5227 */ {I_VPMOVZXDQ, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20162, 215},
-    /* 5228 */ {I_VPMOVZXWD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20170, 214},
-    /* 5229 */ {I_VPMOVZXWD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20178, 214},
-    /* 5230 */ {I_VPMOVZXWD, 2, {ZMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20186, 215},
-    /* 5231 */ {I_VPMOVZXWQ, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20194, 214},
-    /* 5232 */ {I_VPMOVZXWQ, 2, {YMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20202, 214},
-    /* 5233 */ {I_VPMOVZXWQ, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20210, 215},
-    /* 5234 */ {I_VPMULDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20218, 214},
-    /* 5235 */ {I_VPMULDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20226, 214},
-    /* 5236 */ {I_VPMULDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20234, 214},
-    /* 5237 */ {I_VPMULDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20242, 214},
-    /* 5238 */ {I_VPMULDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20250, 215},
-    /* 5239 */ {I_VPMULDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20258, 215},
-    /* 5240 */ {I_VPMULHRSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20266, 218},
-    /* 5241 */ {I_VPMULHRSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20274, 218},
-    /* 5242 */ {I_VPMULHRSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20282, 218},
-    /* 5243 */ {I_VPMULHRSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20290, 218},
-    /* 5244 */ {I_VPMULHRSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20298, 219},
-    /* 5245 */ {I_VPMULHRSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20306, 219},
-    /* 5246 */ {I_VPMULHUW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20314, 218},
-    /* 5247 */ {I_VPMULHUW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20322, 218},
-    /* 5248 */ {I_VPMULHUW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20330, 218},
-    /* 5249 */ {I_VPMULHUW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20338, 218},
-    /* 5250 */ {I_VPMULHUW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20346, 219},
-    /* 5251 */ {I_VPMULHUW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20354, 219},
-    /* 5252 */ {I_VPMULHW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20362, 218},
-    /* 5253 */ {I_VPMULHW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20370, 218},
-    /* 5254 */ {I_VPMULHW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20378, 218},
-    /* 5255 */ {I_VPMULHW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20386, 218},
-    /* 5256 */ {I_VPMULHW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20394, 219},
-    /* 5257 */ {I_VPMULHW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20402, 219},
-    /* 5258 */ {I_VPMULLD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20410, 214},
-    /* 5259 */ {I_VPMULLD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20418, 214},
-    /* 5260 */ {I_VPMULLD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20426, 214},
-    /* 5261 */ {I_VPMULLD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20434, 214},
-    /* 5262 */ {I_VPMULLD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20442, 215},
-    /* 5263 */ {I_VPMULLD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20450, 215},
-    /* 5264 */ {I_VPMULLQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20458, 216},
-    /* 5265 */ {I_VPMULLQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20466, 216},
-    /* 5266 */ {I_VPMULLQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20474, 216},
-    /* 5267 */ {I_VPMULLQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20482, 216},
-    /* 5268 */ {I_VPMULLQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20490, 217},
-    /* 5269 */ {I_VPMULLQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20498, 217},
-    /* 5270 */ {I_VPMULLW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20506, 218},
-    /* 5271 */ {I_VPMULLW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20514, 218},
-    /* 5272 */ {I_VPMULLW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20522, 218},
-    /* 5273 */ {I_VPMULLW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20530, 218},
-    /* 5274 */ {I_VPMULLW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20538, 219},
-    /* 5275 */ {I_VPMULLW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20546, 219},
-    /* 5276 */ {I_VPMULTISHIFTQB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20554, 224},
-    /* 5277 */ {I_VPMULTISHIFTQB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20562, 224},
-    /* 5278 */ {I_VPMULTISHIFTQB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20570, 224},
-    /* 5279 */ {I_VPMULTISHIFTQB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20578, 224},
-    /* 5280 */ {I_VPMULTISHIFTQB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20586, 225},
-    /* 5281 */ {I_VPMULTISHIFTQB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20594, 225},
-    /* 5282 */ {I_VPMULUDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20602, 214},
-    /* 5283 */ {I_VPMULUDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20610, 214},
-    /* 5284 */ {I_VPMULUDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20618, 214},
-    /* 5285 */ {I_VPMULUDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20626, 214},
-    /* 5286 */ {I_VPMULUDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20634, 215},
-    /* 5287 */ {I_VPMULUDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20642, 215},
-    /* 5288 */ {I_VPORD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20650, 214},
-    /* 5289 */ {I_VPORD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20658, 214},
-    /* 5290 */ {I_VPORD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20666, 214},
-    /* 5291 */ {I_VPORD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20674, 214},
-    /* 5292 */ {I_VPORD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20682, 215},
-    /* 5293 */ {I_VPORD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20690, 215},
-    /* 5294 */ {I_VPORQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20698, 214},
-    /* 5295 */ {I_VPORQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20706, 214},
-    /* 5296 */ {I_VPORQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20714, 214},
-    /* 5297 */ {I_VPORQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20722, 214},
-    /* 5298 */ {I_VPORQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20730, 215},
-    /* 5299 */ {I_VPORQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20738, 215},
-    /* 5300 */ {I_VPROLD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5409, 214},
-    /* 5301 */ {I_VPROLD, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5418, 214},
-    /* 5302 */ {I_VPROLD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5427, 214},
-    /* 5303 */ {I_VPROLD, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5436, 214},
-    /* 5304 */ {I_VPROLD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5445, 215},
-    /* 5305 */ {I_VPROLD, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5454, 215},
-    /* 5306 */ {I_VPROLQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5463, 214},
-    /* 5307 */ {I_VPROLQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5472, 214},
-    /* 5308 */ {I_VPROLQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5481, 214},
-    /* 5309 */ {I_VPROLQ, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5490, 214},
-    /* 5310 */ {I_VPROLQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5499, 215},
-    /* 5311 */ {I_VPROLQ, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5508, 215},
-    /* 5312 */ {I_VPROLVD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20746, 214},
-    /* 5313 */ {I_VPROLVD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20754, 214},
-    /* 5314 */ {I_VPROLVD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20762, 214},
-    /* 5315 */ {I_VPROLVD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20770, 214},
-    /* 5316 */ {I_VPROLVD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20778, 215},
-    /* 5317 */ {I_VPROLVD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20786, 215},
-    /* 5318 */ {I_VPROLVQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20794, 214},
-    /* 5319 */ {I_VPROLVQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20802, 214},
-    /* 5320 */ {I_VPROLVQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20810, 214},
-    /* 5321 */ {I_VPROLVQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20818, 214},
-    /* 5322 */ {I_VPROLVQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20826, 215},
-    /* 5323 */ {I_VPROLVQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20834, 215},
-    /* 5324 */ {I_VPRORD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5517, 214},
-    /* 5325 */ {I_VPRORD, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5526, 214},
-    /* 5326 */ {I_VPRORD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5535, 214},
-    /* 5327 */ {I_VPRORD, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5544, 214},
-    /* 5328 */ {I_VPRORD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5553, 215},
-    /* 5329 */ {I_VPRORD, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5562, 215},
-    /* 5330 */ {I_VPRORQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5571, 214},
-    /* 5331 */ {I_VPRORQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5580, 214},
-    /* 5332 */ {I_VPRORQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5589, 214},
-    /* 5333 */ {I_VPRORQ, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5598, 214},
-    /* 5334 */ {I_VPRORQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5607, 215},
-    /* 5335 */ {I_VPRORQ, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5616, 215},
-    /* 5336 */ {I_VPRORVD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20842, 214},
-    /* 5337 */ {I_VPRORVD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20850, 214},
-    /* 5338 */ {I_VPRORVD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20858, 214},
-    /* 5339 */ {I_VPRORVD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20866, 214},
-    /* 5340 */ {I_VPRORVD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+20874, 215},
-    /* 5341 */ {I_VPRORVD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+20882, 215},
-    /* 5342 */ {I_VPRORVQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20890, 214},
-    /* 5343 */ {I_VPRORVQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20898, 214},
-    /* 5344 */ {I_VPRORVQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20906, 214},
-    /* 5345 */ {I_VPRORVQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20914, 214},
-    /* 5346 */ {I_VPRORVQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+20922, 215},
-    /* 5347 */ {I_VPRORVQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+20930, 215},
-    /* 5348 */ {I_VPSADBW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, NO_DECORATOR, nasm_bytecodes+20938, 218},
-    /* 5349 */ {I_VPSADBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, NO_DECORATOR, nasm_bytecodes+20946, 218},
-    /* 5350 */ {I_VPSADBW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, NO_DECORATOR, nasm_bytecodes+20954, 218},
-    /* 5351 */ {I_VPSADBW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, NO_DECORATOR, nasm_bytecodes+20962, 218},
-    /* 5352 */ {I_VPSADBW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, NO_DECORATOR, nasm_bytecodes+20970, 219},
-    /* 5353 */ {I_VPSADBW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, NO_DECORATOR, nasm_bytecodes+20978, 219},
-    /* 5354 */ {I_VPSCATTERDD, 2, {XMEM|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5625, 214},
-    /* 5355 */ {I_VPSCATTERDD, 2, {YMEM|BITS32,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5634, 214},
-    /* 5356 */ {I_VPSCATTERDD, 2, {ZMEM|BITS32,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5643, 215},
-    /* 5357 */ {I_VPSCATTERDQ, 2, {XMEM|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5652, 214},
-    /* 5358 */ {I_VPSCATTERDQ, 2, {XMEM|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5661, 214},
-    /* 5359 */ {I_VPSCATTERDQ, 2, {YMEM|BITS64,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5670, 215},
-    /* 5360 */ {I_VPSCATTERQD, 2, {XMEM|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5679, 214},
-    /* 5361 */ {I_VPSCATTERQD, 2, {YMEM|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5688, 214},
-    /* 5362 */ {I_VPSCATTERQD, 2, {ZMEM|BITS32,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5697, 215},
-    /* 5363 */ {I_VPSCATTERQQ, 2, {XMEM|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5706, 214},
-    /* 5364 */ {I_VPSCATTERQQ, 2, {YMEM|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5715, 214},
-    /* 5365 */ {I_VPSCATTERQQ, 2, {ZMEM|BITS64,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+5724, 215},
-    /* 5366 */ {I_VPSHUFB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20986, 218},
-    /* 5367 */ {I_VPSHUFB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+20994, 218},
-    /* 5368 */ {I_VPSHUFB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21002, 218},
-    /* 5369 */ {I_VPSHUFB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21010, 218},
-    /* 5370 */ {I_VPSHUFB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21018, 219},
-    /* 5371 */ {I_VPSHUFB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21026, 219},
-    /* 5372 */ {I_VPSHUFD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5733, 214},
-    /* 5373 */ {I_VPSHUFD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5742, 214},
-    /* 5374 */ {I_VPSHUFD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5751, 215},
-    /* 5375 */ {I_VPSHUFHW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5760, 218},
-    /* 5376 */ {I_VPSHUFHW, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5769, 218},
-    /* 5377 */ {I_VPSHUFHW, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5778, 219},
-    /* 5378 */ {I_VPSHUFLW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5787, 218},
-    /* 5379 */ {I_VPSHUFLW, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5796, 218},
-    /* 5380 */ {I_VPSHUFLW, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5805, 219},
-    /* 5381 */ {I_VPSLLD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21034, 214},
-    /* 5382 */ {I_VPSLLD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21042, 214},
-    /* 5383 */ {I_VPSLLD, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21050, 214},
-    /* 5384 */ {I_VPSLLD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21058, 214},
-    /* 5385 */ {I_VPSLLD, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21066, 215},
-    /* 5386 */ {I_VPSLLD, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21074, 215},
-    /* 5387 */ {I_VPSLLD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5814, 214},
-    /* 5388 */ {I_VPSLLD, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5823, 214},
-    /* 5389 */ {I_VPSLLD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5832, 214},
-    /* 5390 */ {I_VPSLLD, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5841, 214},
-    /* 5391 */ {I_VPSLLD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+5850, 215},
-    /* 5392 */ {I_VPSLLD, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5859, 215},
-    /* 5393 */ {I_VPSLLDQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5868, 218},
-    /* 5394 */ {I_VPSLLDQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+5877, 218},
-    /* 5395 */ {I_VPSLLDQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5886, 218},
-    /* 5396 */ {I_VPSLLDQ, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+5895, 218},
-    /* 5397 */ {I_VPSLLDQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+5904, 219},
-    /* 5398 */ {I_VPSLLDQ, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+5913, 219},
-    /* 5399 */ {I_VPSLLQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21082, 214},
-    /* 5400 */ {I_VPSLLQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21090, 214},
-    /* 5401 */ {I_VPSLLQ, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21098, 214},
-    /* 5402 */ {I_VPSLLQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21106, 214},
-    /* 5403 */ {I_VPSLLQ, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21114, 215},
-    /* 5404 */ {I_VPSLLQ, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21122, 215},
-    /* 5405 */ {I_VPSLLQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5922, 214},
-    /* 5406 */ {I_VPSLLQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5931, 214},
-    /* 5407 */ {I_VPSLLQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5940, 214},
-    /* 5408 */ {I_VPSLLQ, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5949, 214},
-    /* 5409 */ {I_VPSLLQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+5958, 215},
-    /* 5410 */ {I_VPSLLQ, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5967, 215},
-    /* 5411 */ {I_VPSLLVD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21130, 214},
-    /* 5412 */ {I_VPSLLVD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21138, 214},
-    /* 5413 */ {I_VPSLLVD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21146, 214},
-    /* 5414 */ {I_VPSLLVD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21154, 214},
-    /* 5415 */ {I_VPSLLVD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21162, 215},
-    /* 5416 */ {I_VPSLLVD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21170, 215},
-    /* 5417 */ {I_VPSLLVQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21178, 214},
-    /* 5418 */ {I_VPSLLVQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21186, 214},
-    /* 5419 */ {I_VPSLLVQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21194, 214},
-    /* 5420 */ {I_VPSLLVQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21202, 214},
-    /* 5421 */ {I_VPSLLVQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21210, 215},
-    /* 5422 */ {I_VPSLLVQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21218, 215},
-    /* 5423 */ {I_VPSLLVW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21226, 218},
-    /* 5424 */ {I_VPSLLVW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21234, 218},
-    /* 5425 */ {I_VPSLLVW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21242, 218},
-    /* 5426 */ {I_VPSLLVW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21250, 218},
-    /* 5427 */ {I_VPSLLVW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21258, 219},
-    /* 5428 */ {I_VPSLLVW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21266, 219},
-    /* 5429 */ {I_VPSLLW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21274, 218},
-    /* 5430 */ {I_VPSLLW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21282, 218},
-    /* 5431 */ {I_VPSLLW, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21290, 218},
-    /* 5432 */ {I_VPSLLW, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21298, 218},
-    /* 5433 */ {I_VPSLLW, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21306, 219},
-    /* 5434 */ {I_VPSLLW, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21314, 219},
-    /* 5435 */ {I_VPSLLW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5976, 218},
-    /* 5436 */ {I_VPSLLW, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5985, 218},
-    /* 5437 */ {I_VPSLLW, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+5994, 218},
-    /* 5438 */ {I_VPSLLW, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6003, 218},
-    /* 5439 */ {I_VPSLLW, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6012, 219},
-    /* 5440 */ {I_VPSLLW, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6021, 219},
-    /* 5441 */ {I_VPSRAD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21322, 214},
-    /* 5442 */ {I_VPSRAD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21330, 214},
-    /* 5443 */ {I_VPSRAD, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21338, 214},
-    /* 5444 */ {I_VPSRAD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21346, 214},
-    /* 5445 */ {I_VPSRAD, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21354, 215},
-    /* 5446 */ {I_VPSRAD, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21362, 215},
-    /* 5447 */ {I_VPSRAD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6030, 214},
-    /* 5448 */ {I_VPSRAD, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6039, 214},
-    /* 5449 */ {I_VPSRAD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6048, 214},
-    /* 5450 */ {I_VPSRAD, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6057, 214},
-    /* 5451 */ {I_VPSRAD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6066, 215},
-    /* 5452 */ {I_VPSRAD, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6075, 215},
-    /* 5453 */ {I_VPSRAQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21370, 214},
-    /* 5454 */ {I_VPSRAQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21378, 214},
-    /* 5455 */ {I_VPSRAQ, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21386, 214},
-    /* 5456 */ {I_VPSRAQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21394, 214},
-    /* 5457 */ {I_VPSRAQ, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21402, 215},
-    /* 5458 */ {I_VPSRAQ, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21410, 215},
-    /* 5459 */ {I_VPSRAQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6084, 214},
-    /* 5460 */ {I_VPSRAQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6093, 214},
-    /* 5461 */ {I_VPSRAQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6102, 214},
-    /* 5462 */ {I_VPSRAQ, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6111, 214},
-    /* 5463 */ {I_VPSRAQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6120, 215},
-    /* 5464 */ {I_VPSRAQ, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6129, 215},
-    /* 5465 */ {I_VPSRAVD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21418, 214},
-    /* 5466 */ {I_VPSRAVD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21426, 214},
-    /* 5467 */ {I_VPSRAVD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21434, 214},
-    /* 5468 */ {I_VPSRAVD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21442, 214},
-    /* 5469 */ {I_VPSRAVD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21450, 215},
-    /* 5470 */ {I_VPSRAVD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21458, 215},
-    /* 5471 */ {I_VPSRAVQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21466, 214},
-    /* 5472 */ {I_VPSRAVQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21474, 214},
-    /* 5473 */ {I_VPSRAVQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21482, 214},
-    /* 5474 */ {I_VPSRAVQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21490, 214},
-    /* 5475 */ {I_VPSRAVQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21498, 215},
-    /* 5476 */ {I_VPSRAVQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21506, 215},
-    /* 5477 */ {I_VPSRAVW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21514, 218},
-    /* 5478 */ {I_VPSRAVW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21522, 218},
-    /* 5479 */ {I_VPSRAVW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21530, 218},
-    /* 5480 */ {I_VPSRAVW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21538, 218},
-    /* 5481 */ {I_VPSRAVW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21546, 219},
-    /* 5482 */ {I_VPSRAVW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21554, 219},
-    /* 5483 */ {I_VPSRAW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21562, 218},
-    /* 5484 */ {I_VPSRAW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21570, 218},
-    /* 5485 */ {I_VPSRAW, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21578, 218},
-    /* 5486 */ {I_VPSRAW, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21586, 218},
-    /* 5487 */ {I_VPSRAW, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21594, 219},
-    /* 5488 */ {I_VPSRAW, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21602, 219},
-    /* 5489 */ {I_VPSRAW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6138, 218},
-    /* 5490 */ {I_VPSRAW, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6147, 218},
-    /* 5491 */ {I_VPSRAW, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6156, 218},
-    /* 5492 */ {I_VPSRAW, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6165, 218},
-    /* 5493 */ {I_VPSRAW, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6174, 219},
-    /* 5494 */ {I_VPSRAW, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6183, 219},
-    /* 5495 */ {I_VPSRLD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21610, 214},
-    /* 5496 */ {I_VPSRLD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21618, 214},
-    /* 5497 */ {I_VPSRLD, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21626, 214},
-    /* 5498 */ {I_VPSRLD, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21634, 214},
-    /* 5499 */ {I_VPSRLD, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21642, 215},
-    /* 5500 */ {I_VPSRLD, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21650, 215},
-    /* 5501 */ {I_VPSRLD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6192, 214},
-    /* 5502 */ {I_VPSRLD, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6201, 214},
-    /* 5503 */ {I_VPSRLD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6210, 214},
-    /* 5504 */ {I_VPSRLD, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6219, 214},
-    /* 5505 */ {I_VPSRLD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6228, 215},
-    /* 5506 */ {I_VPSRLD, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6237, 215},
-    /* 5507 */ {I_VPSRLDQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+6246, 218},
-    /* 5508 */ {I_VPSRLDQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+6255, 218},
-    /* 5509 */ {I_VPSRLDQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+6264, 218},
-    /* 5510 */ {I_VPSRLDQ, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+6273, 218},
-    /* 5511 */ {I_VPSRLDQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, NO_DECORATOR, nasm_bytecodes+6282, 219},
-    /* 5512 */ {I_VPSRLDQ, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, NO_DECORATOR, nasm_bytecodes+6291, 219},
-    /* 5513 */ {I_VPSRLQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21658, 214},
-    /* 5514 */ {I_VPSRLQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21666, 214},
-    /* 5515 */ {I_VPSRLQ, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21674, 214},
-    /* 5516 */ {I_VPSRLQ, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21682, 214},
-    /* 5517 */ {I_VPSRLQ, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21690, 215},
-    /* 5518 */ {I_VPSRLQ, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21698, 215},
-    /* 5519 */ {I_VPSRLQ, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6300, 214},
-    /* 5520 */ {I_VPSRLQ, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6309, 214},
-    /* 5521 */ {I_VPSRLQ, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6318, 214},
-    /* 5522 */ {I_VPSRLQ, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6327, 214},
-    /* 5523 */ {I_VPSRLQ, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6336, 215},
-    /* 5524 */ {I_VPSRLQ, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6345, 215},
-    /* 5525 */ {I_VPSRLVD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21706, 214},
-    /* 5526 */ {I_VPSRLVD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21714, 214},
-    /* 5527 */ {I_VPSRLVD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21722, 214},
-    /* 5528 */ {I_VPSRLVD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21730, 214},
-    /* 5529 */ {I_VPSRLVD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21738, 215},
-    /* 5530 */ {I_VPSRLVD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21746, 215},
-    /* 5531 */ {I_VPSRLVQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21754, 214},
-    /* 5532 */ {I_VPSRLVQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21762, 214},
-    /* 5533 */ {I_VPSRLVQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21770, 214},
-    /* 5534 */ {I_VPSRLVQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21778, 214},
-    /* 5535 */ {I_VPSRLVQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21786, 215},
-    /* 5536 */ {I_VPSRLVQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+21794, 215},
-    /* 5537 */ {I_VPSRLVW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21802, 218},
-    /* 5538 */ {I_VPSRLVW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21810, 218},
-    /* 5539 */ {I_VPSRLVW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21818, 218},
-    /* 5540 */ {I_VPSRLVW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21826, 218},
-    /* 5541 */ {I_VPSRLVW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21834, 219},
-    /* 5542 */ {I_VPSRLVW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21842, 219},
-    /* 5543 */ {I_VPSRLW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21850, 218},
-    /* 5544 */ {I_VPSRLW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21858, 218},
-    /* 5545 */ {I_VPSRLW, 3, {YMMREG,YMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21866, 218},
-    /* 5546 */ {I_VPSRLW, 2, {YMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21874, 218},
-    /* 5547 */ {I_VPSRLW, 3, {ZMMREG,ZMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21882, 219},
-    /* 5548 */ {I_VPSRLW, 2, {ZMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21890, 219},
-    /* 5549 */ {I_VPSRLW, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6354, 218},
-    /* 5550 */ {I_VPSRLW, 2, {XMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6363, 218},
-    /* 5551 */ {I_VPSRLW, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6372, 218},
-    /* 5552 */ {I_VPSRLW, 2, {YMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6381, 218},
-    /* 5553 */ {I_VPSRLW, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6390, 219},
-    /* 5554 */ {I_VPSRLW, 2, {ZMMREG,IMMEDIATE|BITS8,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+6399, 219},
-    /* 5555 */ {I_VPSUBB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21898, 218},
-    /* 5556 */ {I_VPSUBB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21906, 218},
-    /* 5557 */ {I_VPSUBB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21914, 218},
-    /* 5558 */ {I_VPSUBB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21922, 218},
-    /* 5559 */ {I_VPSUBB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21930, 219},
-    /* 5560 */ {I_VPSUBB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+21938, 219},
-    /* 5561 */ {I_VPSUBD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21946, 214},
-    /* 5562 */ {I_VPSUBD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21954, 214},
-    /* 5563 */ {I_VPSUBD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21962, 214},
-    /* 5564 */ {I_VPSUBD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21970, 214},
-    /* 5565 */ {I_VPSUBD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+21978, 215},
-    /* 5566 */ {I_VPSUBD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+21986, 215},
-    /* 5567 */ {I_VPSUBQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+21994, 214},
-    /* 5568 */ {I_VPSUBQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22002, 214},
-    /* 5569 */ {I_VPSUBQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22010, 214},
-    /* 5570 */ {I_VPSUBQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22018, 214},
-    /* 5571 */ {I_VPSUBQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22026, 215},
-    /* 5572 */ {I_VPSUBQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22034, 215},
-    /* 5573 */ {I_VPSUBSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22042, 218},
-    /* 5574 */ {I_VPSUBSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22050, 218},
-    /* 5575 */ {I_VPSUBSB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22058, 218},
-    /* 5576 */ {I_VPSUBSB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22066, 218},
-    /* 5577 */ {I_VPSUBSB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22074, 219},
-    /* 5578 */ {I_VPSUBSB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22082, 219},
-    /* 5579 */ {I_VPSUBSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22090, 218},
-    /* 5580 */ {I_VPSUBSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22098, 218},
-    /* 5581 */ {I_VPSUBSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22106, 218},
-    /* 5582 */ {I_VPSUBSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22114, 218},
-    /* 5583 */ {I_VPSUBSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22122, 219},
-    /* 5584 */ {I_VPSUBSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22130, 219},
-    /* 5585 */ {I_VPSUBUSB, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22138, 218},
-    /* 5586 */ {I_VPSUBUSB, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22146, 218},
-    /* 5587 */ {I_VPSUBUSB, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22154, 218},
-    /* 5588 */ {I_VPSUBUSB, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22162, 218},
-    /* 5589 */ {I_VPSUBUSB, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22170, 219},
-    /* 5590 */ {I_VPSUBUSB, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22178, 219},
-    /* 5591 */ {I_VPSUBUSW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22186, 218},
-    /* 5592 */ {I_VPSUBUSW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22194, 218},
-    /* 5593 */ {I_VPSUBUSW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22202, 218},
-    /* 5594 */ {I_VPSUBUSW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22210, 218},
-    /* 5595 */ {I_VPSUBUSW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22218, 219},
-    /* 5596 */ {I_VPSUBUSW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22226, 219},
-    /* 5597 */ {I_VPSUBW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22234, 218},
-    /* 5598 */ {I_VPSUBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22242, 218},
-    /* 5599 */ {I_VPSUBW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22250, 218},
-    /* 5600 */ {I_VPSUBW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22258, 218},
-    /* 5601 */ {I_VPSUBW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22266, 219},
-    /* 5602 */ {I_VPSUBW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22274, 219},
-    /* 5603 */ {I_VPTERNLOGD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+6408, 214},
-    /* 5604 */ {I_VPTERNLOGD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+6417, 214},
-    /* 5605 */ {I_VPTERNLOGD, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+6426, 215},
-    /* 5606 */ {I_VPTERNLOGQ, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+6435, 214},
-    /* 5607 */ {I_VPTERNLOGQ, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+6444, 214},
-    /* 5608 */ {I_VPTERNLOGQ, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+6453, 215},
-    /* 5609 */ {I_VPTESTMB, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22282, 218},
-    /* 5610 */ {I_VPTESTMB, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22290, 218},
-    /* 5611 */ {I_VPTESTMB, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22298, 219},
-    /* 5612 */ {I_VPTESTMD, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+22306, 214},
-    /* 5613 */ {I_VPTESTMD, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+22314, 214},
-    /* 5614 */ {I_VPTESTMD, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+22322, 215},
-    /* 5615 */ {I_VPTESTMQ, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+22330, 214},
-    /* 5616 */ {I_VPTESTMQ, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+22338, 214},
-    /* 5617 */ {I_VPTESTMQ, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+22346, 215},
-    /* 5618 */ {I_VPTESTMW, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22354, 218},
-    /* 5619 */ {I_VPTESTMW, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22362, 218},
-    /* 5620 */ {I_VPTESTMW, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22370, 219},
-    /* 5621 */ {I_VPTESTNMB, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22378, 218},
-    /* 5622 */ {I_VPTESTNMB, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22386, 218},
-    /* 5623 */ {I_VPTESTNMB, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22394, 219},
-    /* 5624 */ {I_VPTESTNMD, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+22402, 214},
-    /* 5625 */ {I_VPTESTNMD, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+22410, 214},
-    /* 5626 */ {I_VPTESTNMD, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B32,0,0}, nasm_bytecodes+22418, 215},
-    /* 5627 */ {I_VPTESTNMQ, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+22426, 214},
-    /* 5628 */ {I_VPTESTNMQ, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+22434, 214},
-    /* 5629 */ {I_VPTESTNMQ, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,B64,0,0}, nasm_bytecodes+22442, 215},
-    /* 5630 */ {I_VPTESTNMW, 3, {KREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22450, 218},
-    /* 5631 */ {I_VPTESTNMW, 3, {KREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22458, 218},
-    /* 5632 */ {I_VPTESTNMW, 3, {KREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+22466, 219},
-    /* 5633 */ {I_VPUNPCKHBW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22474, 218},
-    /* 5634 */ {I_VPUNPCKHBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22482, 218},
-    /* 5635 */ {I_VPUNPCKHBW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22490, 218},
-    /* 5636 */ {I_VPUNPCKHBW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22498, 218},
-    /* 5637 */ {I_VPUNPCKHBW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22506, 219},
-    /* 5638 */ {I_VPUNPCKHBW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22514, 219},
-    /* 5639 */ {I_VPUNPCKHDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22522, 214},
-    /* 5640 */ {I_VPUNPCKHDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22530, 214},
-    /* 5641 */ {I_VPUNPCKHDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22538, 214},
-    /* 5642 */ {I_VPUNPCKHDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22546, 214},
-    /* 5643 */ {I_VPUNPCKHDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22554, 215},
-    /* 5644 */ {I_VPUNPCKHDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22562, 215},
-    /* 5645 */ {I_VPUNPCKHQDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22570, 214},
-    /* 5646 */ {I_VPUNPCKHQDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22578, 214},
-    /* 5647 */ {I_VPUNPCKHQDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22586, 214},
-    /* 5648 */ {I_VPUNPCKHQDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22594, 214},
-    /* 5649 */ {I_VPUNPCKHQDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22602, 215},
-    /* 5650 */ {I_VPUNPCKHQDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22610, 215},
-    /* 5651 */ {I_VPUNPCKHWD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22618, 218},
-    /* 5652 */ {I_VPUNPCKHWD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22626, 218},
-    /* 5653 */ {I_VPUNPCKHWD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22634, 218},
-    /* 5654 */ {I_VPUNPCKHWD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22642, 218},
-    /* 5655 */ {I_VPUNPCKHWD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22650, 219},
-    /* 5656 */ {I_VPUNPCKHWD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22658, 219},
-    /* 5657 */ {I_VPUNPCKLBW, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22666, 218},
-    /* 5658 */ {I_VPUNPCKLBW, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22674, 218},
-    /* 5659 */ {I_VPUNPCKLBW, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22682, 218},
-    /* 5660 */ {I_VPUNPCKLBW, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22690, 218},
-    /* 5661 */ {I_VPUNPCKLBW, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22698, 219},
-    /* 5662 */ {I_VPUNPCKLBW, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22706, 219},
-    /* 5663 */ {I_VPUNPCKLDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22714, 214},
-    /* 5664 */ {I_VPUNPCKLDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22722, 214},
-    /* 5665 */ {I_VPUNPCKLDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22730, 214},
-    /* 5666 */ {I_VPUNPCKLDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22738, 214},
-    /* 5667 */ {I_VPUNPCKLDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22746, 215},
-    /* 5668 */ {I_VPUNPCKLDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22754, 215},
-    /* 5669 */ {I_VPUNPCKLQDQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22762, 214},
-    /* 5670 */ {I_VPUNPCKLQDQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22770, 214},
-    /* 5671 */ {I_VPUNPCKLQDQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22778, 214},
-    /* 5672 */ {I_VPUNPCKLQDQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22786, 214},
-    /* 5673 */ {I_VPUNPCKLQDQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22794, 215},
-    /* 5674 */ {I_VPUNPCKLQDQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22802, 215},
-    /* 5675 */ {I_VPUNPCKLWD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22810, 218},
-    /* 5676 */ {I_VPUNPCKLWD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22818, 218},
-    /* 5677 */ {I_VPUNPCKLWD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22826, 218},
-    /* 5678 */ {I_VPUNPCKLWD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22834, 218},
-    /* 5679 */ {I_VPUNPCKLWD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22842, 219},
-    /* 5680 */ {I_VPUNPCKLWD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+22850, 219},
-    /* 5681 */ {I_VPXORD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22858, 214},
-    /* 5682 */ {I_VPXORD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22866, 214},
-    /* 5683 */ {I_VPXORD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22874, 214},
-    /* 5684 */ {I_VPXORD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22882, 214},
-    /* 5685 */ {I_VPXORD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+22890, 215},
-    /* 5686 */ {I_VPXORD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22898, 215},
-    /* 5687 */ {I_VPXORQ, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22906, 214},
-    /* 5688 */ {I_VPXORQ, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22914, 214},
-    /* 5689 */ {I_VPXORQ, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22922, 214},
-    /* 5690 */ {I_VPXORQ, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22930, 214},
-    /* 5691 */ {I_VPXORQ, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+22938, 215},
-    /* 5692 */ {I_VPXORQ, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22946, 215},
-    /* 5693 */ {I_VRANGEPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+6462, 216},
-    /* 5694 */ {I_VRANGEPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6471, 216},
-    /* 5695 */ {I_VRANGEPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+6480, 216},
-    /* 5696 */ {I_VRANGEPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6489, 216},
-    /* 5697 */ {I_VRANGEPD, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64|SAE,0,0}, nasm_bytecodes+6498, 217},
-    /* 5698 */ {I_VRANGEPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+6507, 217},
-    /* 5699 */ {I_VRANGEPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+6516, 216},
-    /* 5700 */ {I_VRANGEPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6525, 216},
-    /* 5701 */ {I_VRANGEPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+6534, 216},
-    /* 5702 */ {I_VRANGEPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6543, 216},
-    /* 5703 */ {I_VRANGEPS, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32|SAE,0,0}, nasm_bytecodes+6552, 217},
-    /* 5704 */ {I_VRANGEPS, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+6561, 217},
-    /* 5705 */ {I_VRANGESD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+6570, 217},
-    /* 5706 */ {I_VRANGESD, 3, {XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+6579, 217},
-    /* 5707 */ {I_VRANGESS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+6588, 217},
-    /* 5708 */ {I_VRANGESS, 3, {XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+6597, 217},
-    /* 5709 */ {I_VRCP14PD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22954, 214},
-    /* 5710 */ {I_VRCP14PD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22962, 214},
-    /* 5711 */ {I_VRCP14PD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+22970, 215},
-    /* 5712 */ {I_VRCP14PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22978, 214},
-    /* 5713 */ {I_VRCP14PS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22986, 214},
-    /* 5714 */ {I_VRCP14PS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+22994, 215},
-    /* 5715 */ {I_VRCP14SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23002, 215},
-    /* 5716 */ {I_VRCP14SD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23010, 215},
-    /* 5717 */ {I_VRCP14SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23018, 215},
-    /* 5718 */ {I_VRCP14SS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23026, 215},
-    /* 5719 */ {I_VRCP28PD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+23034, 220},
-    /* 5720 */ {I_VRCP28PS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+23042, 220},
-    /* 5721 */ {I_VRCP28SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+23050, 220},
-    /* 5722 */ {I_VRCP28SD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+23058, 220},
-    /* 5723 */ {I_VRCP28SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+23066, 220},
-    /* 5724 */ {I_VRCP28SS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+23074, 220},
-    /* 5725 */ {I_VREDUCEPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6606, 216},
-    /* 5726 */ {I_VREDUCEPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6615, 216},
-    /* 5727 */ {I_VREDUCEPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+6624, 217},
-    /* 5728 */ {I_VREDUCEPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6633, 216},
-    /* 5729 */ {I_VREDUCEPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6642, 216},
-    /* 5730 */ {I_VREDUCEPS, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+6651, 217},
-    /* 5731 */ {I_VREDUCESD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+6660, 217},
-    /* 5732 */ {I_VREDUCESD, 3, {XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+6669, 217},
-    /* 5733 */ {I_VREDUCESS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+6678, 217},
-    /* 5734 */ {I_VREDUCESS, 3, {XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+6687, 217},
-    /* 5735 */ {I_VRNDSCALEPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6696, 214},
-    /* 5736 */ {I_VRNDSCALEPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+6705, 214},
-    /* 5737 */ {I_VRNDSCALEPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+6714, 215},
-    /* 5738 */ {I_VRNDSCALEPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6723, 214},
-    /* 5739 */ {I_VRNDSCALEPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6732, 214},
-    /* 5740 */ {I_VRNDSCALEPS, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+6741, 215},
-    /* 5741 */ {I_VRNDSCALESD, 4, {XMMREG,XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+6750, 215},
-    /* 5742 */ {I_VRNDSCALESD, 3, {XMMREG,RM_XMM|BITS64,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+6759, 215},
-    /* 5743 */ {I_VRNDSCALESS, 4, {XMMREG,XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+6768, 215},
-    /* 5744 */ {I_VRNDSCALESS, 3, {XMMREG,RM_XMM|BITS32,IMMEDIATE|BITS8,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+6777, 215},
-    /* 5745 */ {I_VRSQRT14PD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23082, 214},
-    /* 5746 */ {I_VRSQRT14PD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23090, 214},
-    /* 5747 */ {I_VRSQRT14PD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23098, 215},
-    /* 5748 */ {I_VRSQRT14PS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23106, 214},
-    /* 5749 */ {I_VRSQRT14PS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23114, 214},
-    /* 5750 */ {I_VRSQRT14PS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23122, 215},
-    /* 5751 */ {I_VRSQRT14SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23130, 215},
-    /* 5752 */ {I_VRSQRT14SD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23138, 215},
-    /* 5753 */ {I_VRSQRT14SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23146, 215},
-    /* 5754 */ {I_VRSQRT14SS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,0,0,0,0}, nasm_bytecodes+23154, 215},
-    /* 5755 */ {I_VRSQRT28PD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|SAE,0,0,0}, nasm_bytecodes+23162, 220},
-    /* 5756 */ {I_VRSQRT28PS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|SAE,0,0,0}, nasm_bytecodes+23170, 220},
-    /* 5757 */ {I_VRSQRT28SD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+23178, 220},
-    /* 5758 */ {I_VRSQRT28SD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+23186, 220},
-    /* 5759 */ {I_VRSQRT28SS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,SAE,0,0}, nasm_bytecodes+23194, 220},
-    /* 5760 */ {I_VRSQRT28SS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,SAE,0,0,0}, nasm_bytecodes+23202, 220},
-    /* 5761 */ {I_VSCALEFPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23210, 214},
-    /* 5762 */ {I_VSCALEFPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23218, 214},
-    /* 5763 */ {I_VSCALEFPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23226, 214},
-    /* 5764 */ {I_VSCALEFPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23234, 214},
-    /* 5765 */ {I_VSCALEFPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+23242, 215},
-    /* 5766 */ {I_VSCALEFPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+23250, 215},
-    /* 5767 */ {I_VSCALEFPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23258, 214},
-    /* 5768 */ {I_VSCALEFPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23266, 214},
-    /* 5769 */ {I_VSCALEFPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23274, 214},
-    /* 5770 */ {I_VSCALEFPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23282, 214},
-    /* 5771 */ {I_VSCALEFPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+23290, 215},
-    /* 5772 */ {I_VSCALEFPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+23298, 215},
-    /* 5773 */ {I_VSCALEFSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+23306, 215},
-    /* 5774 */ {I_VSCALEFSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+23314, 215},
-    /* 5775 */ {I_VSCALEFSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+23322, 215},
-    /* 5776 */ {I_VSCALEFSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+23330, 215},
-    /* 5777 */ {I_VSCATTERDPD, 2, {XMEM|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6786, 214},
-    /* 5778 */ {I_VSCATTERDPD, 2, {XMEM|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6795, 214},
-    /* 5779 */ {I_VSCATTERDPD, 2, {YMEM|BITS64,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6804, 215},
-    /* 5780 */ {I_VSCATTERDPS, 2, {XMEM|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6813, 214},
-    /* 5781 */ {I_VSCATTERDPS, 2, {YMEM|BITS32,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6822, 214},
-    /* 5782 */ {I_VSCATTERDPS, 2, {ZMEM|BITS32,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6831, 215},
-    /* 5783 */ {I_VSCATTERPF0DPD, 1, {YMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6840, 221},
-    /* 5784 */ {I_VSCATTERPF0DPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6849, 221},
-    /* 5785 */ {I_VSCATTERPF0QPD, 1, {ZMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6858, 221},
-    /* 5786 */ {I_VSCATTERPF0QPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6867, 221},
-    /* 5787 */ {I_VSCATTERPF1DPD, 1, {YMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6876, 221},
-    /* 5788 */ {I_VSCATTERPF1DPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6885, 221},
-    /* 5789 */ {I_VSCATTERPF1QPD, 1, {ZMEM|BITS64,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6894, 221},
-    /* 5790 */ {I_VSCATTERPF1QPS, 1, {ZMEM|BITS32,0,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6903, 221},
-    /* 5791 */ {I_VSCATTERQPD, 2, {XMEM|BITS64,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6912, 214},
-    /* 5792 */ {I_VSCATTERQPD, 2, {YMEM|BITS64,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6921, 214},
-    /* 5793 */ {I_VSCATTERQPD, 2, {ZMEM|BITS64,ZMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6930, 215},
-    /* 5794 */ {I_VSCATTERQPS, 2, {XMEM|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6939, 214},
-    /* 5795 */ {I_VSCATTERQPS, 2, {YMEM|BITS32,XMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6948, 214},
-    /* 5796 */ {I_VSCATTERQPS, 2, {ZMEM|BITS32,YMMREG,0,0,0}, {MASK,0,0,0,0}, nasm_bytecodes+6957, 215},
-    /* 5797 */ {I_VSHUFF32X4, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+6966, 214},
-    /* 5798 */ {I_VSHUFF32X4, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6975, 214},
-    /* 5799 */ {I_VSHUFF32X4, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+6984, 215},
-    /* 5800 */ {I_VSHUFF32X4, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+6993, 215},
-    /* 5801 */ {I_VSHUFF64X2, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+7002, 214},
-    /* 5802 */ {I_VSHUFF64X2, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+7011, 214},
-    /* 5803 */ {I_VSHUFF64X2, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+7020, 215},
-    /* 5804 */ {I_VSHUFF64X2, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+7029, 215},
-    /* 5805 */ {I_VSHUFI32X4, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+7038, 214},
-    /* 5806 */ {I_VSHUFI32X4, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+7047, 214},
-    /* 5807 */ {I_VSHUFI32X4, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+7056, 215},
-    /* 5808 */ {I_VSHUFI32X4, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+7065, 215},
-    /* 5809 */ {I_VSHUFI64X2, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+7074, 214},
-    /* 5810 */ {I_VSHUFI64X2, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+7083, 214},
-    /* 5811 */ {I_VSHUFI64X2, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+7092, 215},
-    /* 5812 */ {I_VSHUFI64X2, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+7101, 215},
-    /* 5813 */ {I_VSHUFPD, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+7110, 214},
-    /* 5814 */ {I_VSHUFPD, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+7119, 214},
-    /* 5815 */ {I_VSHUFPD, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+7128, 214},
-    /* 5816 */ {I_VSHUFPD, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+7137, 214},
-    /* 5817 */ {I_VSHUFPD, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+7146, 215},
-    /* 5818 */ {I_VSHUFPD, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+7155, 215},
-    /* 5819 */ {I_VSHUFPS, 4, {XMMREG,XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+7164, 214},
-    /* 5820 */ {I_VSHUFPS, 3, {XMMREG,RM_XMM|BITS128,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+7173, 214},
-    /* 5821 */ {I_VSHUFPS, 4, {YMMREG,YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+7182, 214},
-    /* 5822 */ {I_VSHUFPS, 3, {YMMREG,RM_YMM|BITS256,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+7191, 214},
-    /* 5823 */ {I_VSHUFPS, 4, {ZMMREG,ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+7200, 215},
-    /* 5824 */ {I_VSHUFPS, 3, {ZMMREG,RM_ZMM|BITS512,IMMEDIATE|BITS8,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+7209, 215},
-    /* 5825 */ {I_VSQRTPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23338, 214},
-    /* 5826 */ {I_VSQRTPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23346, 214},
-    /* 5827 */ {I_VSQRTPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+23354, 215},
-    /* 5828 */ {I_VSQRTPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23362, 214},
-    /* 5829 */ {I_VSQRTPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23370, 214},
-    /* 5830 */ {I_VSQRTPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+23378, 215},
-    /* 5831 */ {I_VSQRTSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+23386, 215},
-    /* 5832 */ {I_VSQRTSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+23394, 215},
-    /* 5833 */ {I_VSQRTSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+23402, 215},
-    /* 5834 */ {I_VSQRTSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+23410, 215},
-    /* 5835 */ {I_VSUBPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23418, 214},
-    /* 5836 */ {I_VSUBPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23426, 214},
-    /* 5837 */ {I_VSUBPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23434, 214},
-    /* 5838 */ {I_VSUBPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23442, 214},
-    /* 5839 */ {I_VSUBPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64|ER,0,0}, nasm_bytecodes+23450, 215},
-    /* 5840 */ {I_VSUBPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64|ER,0,0,0}, nasm_bytecodes+23458, 215},
-    /* 5841 */ {I_VSUBPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23466, 214},
-    /* 5842 */ {I_VSUBPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23474, 214},
-    /* 5843 */ {I_VSUBPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23482, 214},
-    /* 5844 */ {I_VSUBPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23490, 214},
-    /* 5845 */ {I_VSUBPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32|ER,0,0}, nasm_bytecodes+23498, 215},
-    /* 5846 */ {I_VSUBPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32|ER,0,0,0}, nasm_bytecodes+23506, 215},
-    /* 5847 */ {I_VSUBSD, 3, {XMMREG,XMMREG,RM_XMM|BITS64,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+23514, 215},
-    /* 5848 */ {I_VSUBSD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+23522, 215},
-    /* 5849 */ {I_VSUBSS, 3, {XMMREG,XMMREG,RM_XMM|BITS32,0,0}, {MASK|Z,0,ER,0,0}, nasm_bytecodes+23530, 215},
-    /* 5850 */ {I_VSUBSS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {MASK|Z,ER,0,0,0}, nasm_bytecodes+23538, 215},
-    /* 5851 */ {I_VUCOMISD, 2, {XMMREG,RM_XMM|BITS64,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+23546, 215},
-    /* 5852 */ {I_VUCOMISS, 2, {XMMREG,RM_XMM|BITS32,0,0,0}, {0,SAE,0,0,0}, nasm_bytecodes+23554, 215},
-    /* 5853 */ {I_VUNPCKHPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23562, 214},
-    /* 5854 */ {I_VUNPCKHPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23570, 214},
-    /* 5855 */ {I_VUNPCKHPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23578, 214},
-    /* 5856 */ {I_VUNPCKHPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23586, 214},
-    /* 5857 */ {I_VUNPCKHPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23594, 215},
-    /* 5858 */ {I_VUNPCKHPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23602, 215},
-    /* 5859 */ {I_VUNPCKHPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23610, 214},
-    /* 5860 */ {I_VUNPCKHPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23618, 214},
-    /* 5861 */ {I_VUNPCKHPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23626, 214},
-    /* 5862 */ {I_VUNPCKHPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23634, 214},
-    /* 5863 */ {I_VUNPCKHPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23642, 215},
-    /* 5864 */ {I_VUNPCKHPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23650, 215},
-    /* 5865 */ {I_VUNPCKLPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23658, 214},
-    /* 5866 */ {I_VUNPCKLPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23666, 214},
-    /* 5867 */ {I_VUNPCKLPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23674, 214},
-    /* 5868 */ {I_VUNPCKLPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23682, 214},
-    /* 5869 */ {I_VUNPCKLPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23690, 215},
-    /* 5870 */ {I_VUNPCKLPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23698, 215},
-    /* 5871 */ {I_VUNPCKLPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23706, 214},
-    /* 5872 */ {I_VUNPCKLPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23714, 214},
-    /* 5873 */ {I_VUNPCKLPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23722, 214},
-    /* 5874 */ {I_VUNPCKLPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23730, 214},
-    /* 5875 */ {I_VUNPCKLPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23738, 215},
-    /* 5876 */ {I_VUNPCKLPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23746, 215},
-    /* 5877 */ {I_VXORPD, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23754, 216},
-    /* 5878 */ {I_VXORPD, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23762, 216},
-    /* 5879 */ {I_VXORPD, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23770, 216},
-    /* 5880 */ {I_VXORPD, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23778, 216},
-    /* 5881 */ {I_VXORPD, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B64,0,0}, nasm_bytecodes+23786, 217},
-    /* 5882 */ {I_VXORPD, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B64,0,0,0}, nasm_bytecodes+23794, 217},
-    /* 5883 */ {I_VXORPS, 3, {XMMREG,XMMREG,RM_XMM|BITS128,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23802, 216},
-    /* 5884 */ {I_VXORPS, 2, {XMMREG,RM_XMM|BITS128,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23810, 216},
-    /* 5885 */ {I_VXORPS, 3, {YMMREG,YMMREG,RM_YMM|BITS256,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23818, 216},
-    /* 5886 */ {I_VXORPS, 2, {YMMREG,RM_YMM|BITS256,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23826, 216},
-    /* 5887 */ {I_VXORPS, 3, {ZMMREG,ZMMREG,RM_ZMM|BITS512,0,0}, {MASK|Z,0,B32,0,0}, nasm_bytecodes+23834, 217},
-    /* 5888 */ {I_VXORPS, 2, {ZMMREG,RM_ZMM|BITS512,0,0,0}, {MASK|Z,B32,0,0,0}, nasm_bytecodes+23842, 217},
-    /* 5889 */ {I_RDPKRU, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38406, 228},
-    /* 5890 */ {I_WRPKRU, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38411, 228},
-    /* 5891 */ {I_RDPID, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+32986, 229},
-    /* 5892 */ {I_RDPID, 1, {REG_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+32985, 228},
-    /* 5893 */ {I_RDPID, 1, {REG_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+32986, 230},
-    /* 5894 */ {I_CLFLUSHOPT, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35494, 129},
-    /* 5895 */ {I_CLWB, 1, {MEMORY,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35500, 129},
-    /* 5896 */ {I_PCOMMIT, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35506, 231},
-    /* 5897 */ {I_CLZERO, 0, {0,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+38416, 232},
-    /* 5898 */ {I_HINT_NOP0, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35512, 233},
-    /* 5899 */ {I_HINT_NOP0, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35518, 233},
-    /* 5900 */ {I_HINT_NOP0, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35524, 234},
-    /* 5901 */ {I_HINT_NOP1, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35530, 233},
-    /* 5902 */ {I_HINT_NOP1, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35536, 233},
-    /* 5903 */ {I_HINT_NOP1, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35542, 234},
-    /* 5904 */ {I_HINT_NOP2, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35548, 233},
-    /* 5905 */ {I_HINT_NOP2, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35554, 233},
-    /* 5906 */ {I_HINT_NOP2, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35560, 234},
-    /* 5907 */ {I_HINT_NOP3, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35566, 233},
-    /* 5908 */ {I_HINT_NOP3, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35572, 233},
-    /* 5909 */ {I_HINT_NOP3, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35578, 234},
-    /* 5910 */ {I_HINT_NOP4, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35584, 233},
-    /* 5911 */ {I_HINT_NOP4, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35590, 233},
-    /* 5912 */ {I_HINT_NOP4, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35596, 234},
-    /* 5913 */ {I_HINT_NOP5, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35602, 233},
-    /* 5914 */ {I_HINT_NOP5, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35608, 233},
-    /* 5915 */ {I_HINT_NOP5, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35614, 234},
-    /* 5916 */ {I_HINT_NOP6, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35620, 233},
-    /* 5917 */ {I_HINT_NOP6, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35626, 233},
-    /* 5918 */ {I_HINT_NOP6, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35632, 234},
-    /* 5919 */ {I_HINT_NOP7, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35638, 233},
-    /* 5920 */ {I_HINT_NOP7, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35644, 233},
-    /* 5921 */ {I_HINT_NOP7, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35650, 234},
-    /* 5922 */ {I_HINT_NOP8, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35656, 233},
-    /* 5923 */ {I_HINT_NOP8, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35662, 233},
-    /* 5924 */ {I_HINT_NOP8, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35668, 234},
-    /* 5925 */ {I_HINT_NOP9, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35674, 233},
-    /* 5926 */ {I_HINT_NOP9, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35680, 233},
-    /* 5927 */ {I_HINT_NOP9, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35686, 234},
-    /* 5928 */ {I_HINT_NOP10, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35692, 233},
-    /* 5929 */ {I_HINT_NOP10, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35698, 233},
-    /* 5930 */ {I_HINT_NOP10, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35704, 234},
-    /* 5931 */ {I_HINT_NOP11, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35710, 233},
-    /* 5932 */ {I_HINT_NOP11, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35716, 233},
-    /* 5933 */ {I_HINT_NOP11, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35722, 234},
-    /* 5934 */ {I_HINT_NOP12, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35728, 233},
-    /* 5935 */ {I_HINT_NOP12, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35734, 233},
-    /* 5936 */ {I_HINT_NOP12, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35740, 234},
-    /* 5937 */ {I_HINT_NOP13, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35746, 233},
-    /* 5938 */ {I_HINT_NOP13, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35752, 233},
-    /* 5939 */ {I_HINT_NOP13, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35758, 234},
-    /* 5940 */ {I_HINT_NOP14, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35764, 233},
-    /* 5941 */ {I_HINT_NOP14, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35770, 233},
-    /* 5942 */ {I_HINT_NOP14, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35776, 234},
-    /* 5943 */ {I_HINT_NOP15, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35782, 233},
-    /* 5944 */ {I_HINT_NOP15, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35788, 233},
-    /* 5945 */ {I_HINT_NOP15, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35794, 234},
-    /* 5946 */ {I_HINT_NOP16, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35800, 233},
-    /* 5947 */ {I_HINT_NOP16, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35806, 233},
-    /* 5948 */ {I_HINT_NOP16, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35812, 234},
-    /* 5949 */ {I_HINT_NOP17, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35818, 233},
-    /* 5950 */ {I_HINT_NOP17, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35824, 233},
-    /* 5951 */ {I_HINT_NOP17, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35830, 234},
-    /* 5952 */ {I_HINT_NOP18, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35836, 233},
-    /* 5953 */ {I_HINT_NOP18, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35842, 233},
-    /* 5954 */ {I_HINT_NOP18, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35848, 234},
-    /* 5955 */ {I_HINT_NOP19, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35854, 233},
-    /* 5956 */ {I_HINT_NOP19, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35860, 233},
-    /* 5957 */ {I_HINT_NOP19, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35866, 234},
-    /* 5958 */ {I_HINT_NOP20, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35872, 233},
-    /* 5959 */ {I_HINT_NOP20, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35878, 233},
-    /* 5960 */ {I_HINT_NOP20, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35884, 234},
-    /* 5961 */ {I_HINT_NOP21, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35890, 233},
-    /* 5962 */ {I_HINT_NOP21, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35896, 233},
-    /* 5963 */ {I_HINT_NOP21, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35902, 234},
-    /* 5964 */ {I_HINT_NOP22, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35908, 233},
-    /* 5965 */ {I_HINT_NOP22, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35914, 233},
-    /* 5966 */ {I_HINT_NOP22, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35920, 234},
-    /* 5967 */ {I_HINT_NOP23, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35926, 233},
-    /* 5968 */ {I_HINT_NOP23, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35932, 233},
-    /* 5969 */ {I_HINT_NOP23, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35938, 234},
-    /* 5970 */ {I_HINT_NOP24, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35944, 233},
-    /* 5971 */ {I_HINT_NOP24, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35950, 233},
-    /* 5972 */ {I_HINT_NOP24, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35956, 234},
-    /* 5973 */ {I_HINT_NOP25, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35962, 233},
-    /* 5974 */ {I_HINT_NOP25, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35968, 233},
-    /* 5975 */ {I_HINT_NOP25, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35974, 234},
-    /* 5976 */ {I_HINT_NOP26, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35980, 233},
-    /* 5977 */ {I_HINT_NOP26, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35986, 233},
-    /* 5978 */ {I_HINT_NOP26, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35992, 234},
-    /* 5979 */ {I_HINT_NOP27, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+35998, 233},
-    /* 5980 */ {I_HINT_NOP27, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36004, 233},
-    /* 5981 */ {I_HINT_NOP27, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36010, 234},
-    /* 5982 */ {I_HINT_NOP28, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36016, 233},
-    /* 5983 */ {I_HINT_NOP28, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36022, 233},
-    /* 5984 */ {I_HINT_NOP28, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36028, 234},
-    /* 5985 */ {I_HINT_NOP29, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36034, 233},
-    /* 5986 */ {I_HINT_NOP29, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36040, 233},
-    /* 5987 */ {I_HINT_NOP29, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36046, 234},
-    /* 5988 */ {I_HINT_NOP30, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36052, 233},
-    /* 5989 */ {I_HINT_NOP30, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36058, 233},
-    /* 5990 */ {I_HINT_NOP30, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36064, 234},
-    /* 5991 */ {I_HINT_NOP31, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36070, 233},
-    /* 5992 */ {I_HINT_NOP31, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36076, 233},
-    /* 5993 */ {I_HINT_NOP31, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36082, 234},
-    /* 5994 */ {I_HINT_NOP32, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36088, 233},
-    /* 5995 */ {I_HINT_NOP32, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36094, 233},
-    /* 5996 */ {I_HINT_NOP32, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36100, 234},
-    /* 5997 */ {I_HINT_NOP33, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36106, 233},
-    /* 5998 */ {I_HINT_NOP33, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36112, 233},
-    /* 5999 */ {I_HINT_NOP33, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36118, 234},
-    /* 6000 */ {I_HINT_NOP34, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36124, 233},
-    /* 6001 */ {I_HINT_NOP34, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36130, 233},
-    /* 6002 */ {I_HINT_NOP34, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36136, 234},
-    /* 6003 */ {I_HINT_NOP35, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36142, 233},
-    /* 6004 */ {I_HINT_NOP35, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36148, 233},
-    /* 6005 */ {I_HINT_NOP35, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36154, 234},
-    /* 6006 */ {I_HINT_NOP36, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36160, 233},
-    /* 6007 */ {I_HINT_NOP36, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36166, 233},
-    /* 6008 */ {I_HINT_NOP36, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36172, 234},
-    /* 6009 */ {I_HINT_NOP37, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36178, 233},
-    /* 6010 */ {I_HINT_NOP37, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36184, 233},
-    /* 6011 */ {I_HINT_NOP37, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36190, 234},
-    /* 6012 */ {I_HINT_NOP38, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36196, 233},
-    /* 6013 */ {I_HINT_NOP38, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36202, 233},
-    /* 6014 */ {I_HINT_NOP38, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36208, 234},
-    /* 6015 */ {I_HINT_NOP39, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36214, 233},
-    /* 6016 */ {I_HINT_NOP39, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36220, 233},
-    /* 6017 */ {I_HINT_NOP39, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36226, 234},
-    /* 6018 */ {I_HINT_NOP40, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36232, 233},
-    /* 6019 */ {I_HINT_NOP40, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36238, 233},
-    /* 6020 */ {I_HINT_NOP40, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36244, 234},
-    /* 6021 */ {I_HINT_NOP41, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36250, 233},
-    /* 6022 */ {I_HINT_NOP41, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36256, 233},
-    /* 6023 */ {I_HINT_NOP41, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36262, 234},
-    /* 6024 */ {I_HINT_NOP42, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36268, 233},
-    /* 6025 */ {I_HINT_NOP42, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36274, 233},
-    /* 6026 */ {I_HINT_NOP42, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36280, 234},
-    /* 6027 */ {I_HINT_NOP43, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36286, 233},
-    /* 6028 */ {I_HINT_NOP43, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36292, 233},
-    /* 6029 */ {I_HINT_NOP43, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36298, 234},
-    /* 6030 */ {I_HINT_NOP44, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36304, 233},
-    /* 6031 */ {I_HINT_NOP44, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36310, 233},
-    /* 6032 */ {I_HINT_NOP44, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36316, 234},
-    /* 6033 */ {I_HINT_NOP45, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36322, 233},
-    /* 6034 */ {I_HINT_NOP45, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36328, 233},
-    /* 6035 */ {I_HINT_NOP45, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36334, 234},
-    /* 6036 */ {I_HINT_NOP46, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36340, 233},
-    /* 6037 */ {I_HINT_NOP46, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36346, 233},
-    /* 6038 */ {I_HINT_NOP46, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36352, 234},
-    /* 6039 */ {I_HINT_NOP47, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36358, 233},
-    /* 6040 */ {I_HINT_NOP47, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36364, 233},
-    /* 6041 */ {I_HINT_NOP47, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36370, 234},
-    /* 6042 */ {I_HINT_NOP48, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36376, 233},
-    /* 6043 */ {I_HINT_NOP48, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36382, 233},
-    /* 6044 */ {I_HINT_NOP48, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36388, 234},
-    /* 6045 */ {I_HINT_NOP49, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36394, 233},
-    /* 6046 */ {I_HINT_NOP49, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36400, 233},
-    /* 6047 */ {I_HINT_NOP49, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36406, 234},
-    /* 6048 */ {I_HINT_NOP50, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36412, 233},
-    /* 6049 */ {I_HINT_NOP50, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36418, 233},
-    /* 6050 */ {I_HINT_NOP50, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36424, 234},
-    /* 6051 */ {I_HINT_NOP51, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36430, 233},
-    /* 6052 */ {I_HINT_NOP51, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36436, 233},
-    /* 6053 */ {I_HINT_NOP51, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36442, 234},
-    /* 6054 */ {I_HINT_NOP52, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36448, 233},
-    /* 6055 */ {I_HINT_NOP52, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36454, 233},
-    /* 6056 */ {I_HINT_NOP52, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36460, 234},
-    /* 6057 */ {I_HINT_NOP53, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36466, 233},
-    /* 6058 */ {I_HINT_NOP53, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36472, 233},
-    /* 6059 */ {I_HINT_NOP53, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36478, 234},
-    /* 6060 */ {I_HINT_NOP54, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36484, 233},
-    /* 6061 */ {I_HINT_NOP54, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36490, 233},
-    /* 6062 */ {I_HINT_NOP54, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36496, 234},
-    /* 6063 */ {I_HINT_NOP55, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36502, 233},
-    /* 6064 */ {I_HINT_NOP55, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36508, 233},
-    /* 6065 */ {I_HINT_NOP55, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36514, 234},
-    /* 6066 */ {I_HINT_NOP56, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33682, 233},
-    /* 6067 */ {I_HINT_NOP56, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33688, 233},
-    /* 6068 */ {I_HINT_NOP56, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+33694, 234},
-    /* 6069 */ {I_HINT_NOP57, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36520, 233},
-    /* 6070 */ {I_HINT_NOP57, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36526, 233},
-    /* 6071 */ {I_HINT_NOP57, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36532, 234},
-    /* 6072 */ {I_HINT_NOP58, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36538, 233},
-    /* 6073 */ {I_HINT_NOP58, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36544, 233},
-    /* 6074 */ {I_HINT_NOP58, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36550, 234},
-    /* 6075 */ {I_HINT_NOP59, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36556, 233},
-    /* 6076 */ {I_HINT_NOP59, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36562, 233},
-    /* 6077 */ {I_HINT_NOP59, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36568, 234},
-    /* 6078 */ {I_HINT_NOP60, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36574, 233},
-    /* 6079 */ {I_HINT_NOP60, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36580, 233},
-    /* 6080 */ {I_HINT_NOP60, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36586, 234},
-    /* 6081 */ {I_HINT_NOP61, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36592, 233},
-    /* 6082 */ {I_HINT_NOP61, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36598, 233},
-    /* 6083 */ {I_HINT_NOP61, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36604, 234},
-    /* 6084 */ {I_HINT_NOP62, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36610, 233},
-    /* 6085 */ {I_HINT_NOP62, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36616, 233},
-    /* 6086 */ {I_HINT_NOP62, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36622, 234},
-    /* 6087 */ {I_HINT_NOP63, 1, {RM_GPR|BITS16,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36628, 233},
-    /* 6088 */ {I_HINT_NOP63, 1, {RM_GPR|BITS32,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36634, 233},
-    /* 6089 */ {I_HINT_NOP63, 1, {RM_GPR|BITS64,0,0,0,0}, NO_DECORATOR, nasm_bytecodes+36640, 234},
-};
-
-static const struct itemplate * const itable_00[] = {
-    instrux + 36,
-    instrux + 37,
-};
-
-static const struct itemplate * const itable_01[] = {
-    instrux + 38,
-    instrux + 39,
-    instrux + 40,
-    instrux + 41,
-    instrux + 42,
-    instrux + 43,
-};
-
-static const struct itemplate * const itable_02[] = {
-    instrux + 44,
-    instrux + 45,
-};
-
-static const struct itemplate * const itable_03[] = {
-    instrux + 46,
-    instrux + 47,
-    instrux + 48,
-    instrux + 49,
-    instrux + 50,
-    instrux + 51,
-};
-
-static const struct itemplate * const itable_04[] = {
-    instrux + 55,
-};
-
-static const struct itemplate * const itable_05[] = {
-    instrux + 56,
-    instrux + 57,
-    instrux + 58,
-};
-
-static const struct itemplate * const itable_06[] = {
-    instrux + 838,
-};
-
-static const struct itemplate * const itable_07[] = {
-    instrux + 787,
-};
-
-static const struct itemplate * const itable_08[] = {
-    instrux + 690,
-    instrux + 691,
-};
-
-static const struct itemplate * const itable_09[] = {
-    instrux + 692,
-    instrux + 693,
-    instrux + 694,
-    instrux + 695,
-    instrux + 696,
-    instrux + 697,
-};
-
-static const struct itemplate * const itable_0A[] = {
-    instrux + 698,
-    instrux + 699,
-};
-
-static const struct itemplate * const itable_0B[] = {
-    instrux + 700,
-    instrux + 701,
-    instrux + 702,
-    instrux + 703,
-    instrux + 704,
-    instrux + 705,
-};
-
-static const struct itemplate * const itable_0C[] = {
-    instrux + 709,
-};
-
-static const struct itemplate * const itable_0D[] = {
-    instrux + 710,
-    instrux + 711,
-    instrux + 712,
-};
-
-static const struct itemplate * const itable_0E[] = {
-    instrux + 839,
-};
-
-static const struct itemplate * const itable_0F00[] = {
-    instrux + 518,
-    instrux + 519,
-    instrux + 548,
-    instrux + 549,
-    instrux + 550,
-    instrux + 591,
-    instrux + 592,
-    instrux + 593,
-    instrux + 1020,
-    instrux + 1021,
-    instrux + 1022,
-    instrux + 1023,
-    instrux + 1024,
-    instrux + 1039,
-    instrux + 1040,
-    instrux + 1041,
-    instrux + 1042,
-    instrux + 1043,
-    instrux + 1109,
-    instrux + 1110,
-    instrux + 1111,
-    instrux + 1112,
-    instrux + 1113,
-    instrux + 1114,
-};
-
-static const struct itemplate * const itable_0F01[] = {
-    instrux + 484,
-    instrux + 485,
-    instrux + 486,
-    instrux + 487,
-    instrux + 488,
-    instrux + 543,
-    instrux + 547,
-    instrux + 551,
-    instrux + 552,
-    instrux + 553,
-    instrux + 595,
-    instrux + 596,
-    instrux + 676,
-    instrux + 677,
-    instrux + 886,
-    instrux + 970,
-    instrux + 1019,
-    instrux + 1025,
-    instrux + 1027,
-    instrux + 1028,
-    instrux + 1029,
-    instrux + 1030,
-    instrux + 1031,
-    instrux + 1076,
-    instrux + 1275,
-    instrux + 1276,
-    instrux + 1517,
-    instrux + 1518,
-    instrux + 1519,
-    instrux + 1521,
-    instrux + 1522,
-    instrux + 1523,
-    instrux + 1524,
-    instrux + 1529,
-    instrux + 1530,
-    instrux + 1531,
-    instrux + 1534,
-    instrux + 3095,
-    instrux + 3096,
-    instrux + 3704,
-    instrux + 3705,
-    instrux + 5889,
-    instrux + 5890,
-    instrux + 5897,
-};
-
-static const struct itemplate * const itable_0F02[] = {
-    instrux + 521,
-    instrux + 522,
-    instrux + 523,
-    instrux + 524,
-    instrux + 525,
-    instrux + 526,
-    instrux + 527,
-    instrux + 528,
-    instrux + 529,
-    instrux + 530,
-};
-
-static const struct itemplate * const itable_0F03[] = {
-    instrux + 578,
-    instrux + 579,
-    instrux + 580,
-    instrux + 581,
-    instrux + 582,
-    instrux + 583,
-    instrux + 584,
-    instrux + 585,
-    instrux + 586,
-    instrux + 587,
-};
-
-static const struct itemplate * const itable_0F05[] = {
-    instrux + 1077,
-};
-
-static const struct itemplate * const itable_0F06[] = {
-    instrux + 174,
-};
-
-static const struct itemplate * const itable_0F07[] = {
-    instrux + 1080,
-};
-
-static const struct itemplate * const itable_0F08[] = {
-    instrux + 481,
-};
-
-static const struct itemplate * const itable_0F09[] = {
-    instrux + 1116,
-};
-
-static const struct itemplate * const itable_0F0B[] = {
-    instrux + 1108,
-};
-
-static const struct itemplate * const itable_0F0D[] = {
-    instrux + 800,
-    instrux + 801,
-    instrux + 3755,
-};
-
-static const struct itemplate * const itable_0F0E[] = {
-    instrux + 307,
-};
-
-static const struct itemplate * const itable_0F0F[] = {
-    instrux + 744,
-    instrux + 752,
-    instrux + 753,
-    instrux + 754,
-    instrux + 755,
-    instrux + 756,
-    instrux + 757,
-    instrux + 758,
-    instrux + 759,
-    instrux + 760,
-    instrux + 761,
-    instrux + 762,
-    instrux + 763,
-    instrux + 764,
-    instrux + 765,
-    instrux + 766,
-    instrux + 767,
-    instrux + 768,
-    instrux + 773,
-    instrux + 1310,
-    instrux + 1311,
-    instrux + 1312,
-    instrux + 1313,
-    instrux + 1314,
-    instrux + 1656,
-    instrux + 1657,
-};
-
-static const struct itemplate * const itable_0F10[] = {
-    instrux + 1249,
-    instrux + 1251,
-    instrux + 1252,
-    instrux + 1486,
-    instrux + 1489,
-    instrux + 1490,
-    instrux + 1493,
-};
-
-static const struct itemplate * const itable_0F11[] = {
-    instrux + 1250,
-    instrux + 1253,
-    instrux + 1487,
-    instrux + 1488,
-    instrux + 1491,
-    instrux + 1492,
-};
-
-static const struct itemplate * const itable_0F12[] = {
-    instrux + 1243,
-    instrux + 1245,
-    instrux + 1483,
-    instrux + 1514,
-    instrux + 1516,
-};
-
-static const struct itemplate * const itable_0F13[] = {
-    instrux + 1244,
-    instrux + 1482,
-};
-
-static const struct itemplate * const itable_0F14[] = {
-    instrux + 1269,
-    instrux + 1505,
-};
-
-static const struct itemplate * const itable_0F15[] = {
-    instrux + 1268,
-    instrux + 1504,
-};
-
-static const struct itemplate * const itable_0F16[] = {
-    instrux + 1240,
-    instrux + 1242,
-    instrux + 1481,
-    instrux + 1515,
-};
-
-static const struct itemplate * const itable_0F17[] = {
-    instrux + 1241,
-    instrux + 1480,
-};
-
-static const struct itemplate * const itable_0F18[] = {
-    instrux + 1289,
-    instrux + 1290,
-    instrux + 1291,
-    instrux + 1292,
-    instrux + 5898,
-    instrux + 5899,
-    instrux + 5900,
-    instrux + 5901,
-    instrux + 5902,
-    instrux + 5903,
-    instrux + 5904,
-    instrux + 5905,
-    instrux + 5906,
-    instrux + 5907,
-    instrux + 5908,
-    instrux + 5909,
-    instrux + 5910,
-    instrux + 5911,
-    instrux + 5912,
-    instrux + 5913,
-    instrux + 5914,
-    instrux + 5915,
-    instrux + 5916,
-    instrux + 5917,
-    instrux + 5918,
-    instrux + 5919,
-    instrux + 5920,
-    instrux + 5921,
-};
-
-static const struct itemplate * const itable_0F19[] = {
-    instrux + 5922,
-    instrux + 5923,
-    instrux + 5924,
-    instrux + 5925,
-    instrux + 5926,
-    instrux + 5927,
-    instrux + 5928,
-    instrux + 5929,
-    instrux + 5930,
-    instrux + 5931,
-    instrux + 5932,
-    instrux + 5933,
-    instrux + 5934,
-    instrux + 5935,
-    instrux + 5936,
-    instrux + 5937,
-    instrux + 5938,
-    instrux + 5939,
-    instrux + 5940,
-    instrux + 5941,
-    instrux + 5942,
-    instrux + 5943,
-    instrux + 5944,
-    instrux + 5945,
-};
-
-static const struct itemplate * const itable_0F1A[] = {
-    instrux + 3757,
-    instrux + 3758,
-    instrux + 3759,
-    instrux + 3760,
-    instrux + 3761,
-    instrux + 3762,
-    instrux + 3766,
-    instrux + 3767,
-    instrux + 3770,
-    instrux + 3771,
-    instrux + 3772,
-    instrux + 5946,
-    instrux + 5947,
-    instrux + 5948,
-    instrux + 5949,
-    instrux + 5950,
-    instrux + 5951,
-    instrux + 5952,
-    instrux + 5953,
-    instrux + 5954,
-    instrux + 5955,
-    instrux + 5956,
-    instrux + 5957,
-    instrux + 5958,
-    instrux + 5959,
-    instrux + 5960,
-    instrux + 5961,
-    instrux + 5962,
-    instrux + 5963,
-    instrux + 5964,
-    instrux + 5965,
-    instrux + 5966,
-    instrux + 5967,
-    instrux + 5968,
-    instrux + 5969,
-};
-
-static const struct itemplate * const itable_0F1B[] = {
-    instrux + 3756,
-    instrux + 3763,
-    instrux + 3764,
-    instrux + 3765,
-    instrux + 3768,
-    instrux + 3769,
-    instrux + 3773,
-    instrux + 3774,
-    instrux + 3775,
-    instrux + 3776,
-    instrux + 3777,
-    instrux + 5970,
-    instrux + 5971,
-    instrux + 5972,
-    instrux + 5973,
-    instrux + 5974,
-    instrux + 5975,
-    instrux + 5976,
-    instrux + 5977,
-    instrux + 5978,
-    instrux + 5979,
-    instrux + 5980,
-    instrux + 5981,
-    instrux + 5982,
-    instrux + 5983,
-    instrux + 5984,
-    instrux + 5985,
-    instrux + 5986,
-    instrux + 5987,
-    instrux + 5988,
-    instrux + 5989,
-    instrux + 5990,
-    instrux + 5991,
-    instrux + 5992,
-    instrux + 5993,
-};
-
-static const struct itemplate * const itable_0F1C[] = {
-    instrux + 5994,
-    instrux + 5995,
-    instrux + 5996,
-    instrux + 5997,
-    instrux + 5998,
-    instrux + 5999,
-    instrux + 6000,
-    instrux + 6001,
-    instrux + 6002,
-    instrux + 6003,
-    instrux + 6004,
-    instrux + 6005,
-    instrux + 6006,
-    instrux + 6007,
-    instrux + 6008,
-    instrux + 6009,
-    instrux + 6010,
-    instrux + 6011,
-    instrux + 6012,
-    instrux + 6013,
-    instrux + 6014,
-    instrux + 6015,
-    instrux + 6016,
-    instrux + 6017,
-};
-
-static const struct itemplate * const itable_0F1D[] = {
-    instrux + 6018,
-    instrux + 6019,
-    instrux + 6020,
-    instrux + 6021,
-    instrux + 6022,
-    instrux + 6023,
-    instrux + 6024,
-    instrux + 6025,
-    instrux + 6026,
-    instrux + 6027,
-    instrux + 6028,
-    instrux + 6029,
-    instrux + 6030,
-    instrux + 6031,
-    instrux + 6032,
-    instrux + 6033,
-    instrux + 6034,
-    instrux + 6035,
-    instrux + 6036,
-    instrux + 6037,
-    instrux + 6038,
-    instrux + 6039,
-    instrux + 6040,
-    instrux + 6041,
-};
-
-static const struct itemplate * const itable_0F1E[] = {
-    instrux + 6042,
-    instrux + 6043,
-    instrux + 6044,
-    instrux + 6045,
-    instrux + 6046,
-    instrux + 6047,
-    instrux + 6048,
-    instrux + 6049,
-    instrux + 6050,
-    instrux + 6051,
-    instrux + 6052,
-    instrux + 6053,
-    instrux + 6054,
-    instrux + 6055,
-    instrux + 6056,
-    instrux + 6057,
-    instrux + 6058,
-    instrux + 6059,
-    instrux + 6060,
-    instrux + 6061,
-    instrux + 6062,
-    instrux + 6063,
-    instrux + 6064,
-    instrux + 6065,
-};
-
-static const struct itemplate * const itable_0F1F[] = {
-    instrux + 683,
-    instrux + 684,
-    instrux + 685,
-    instrux + 6066,
-    instrux + 6067,
-    instrux + 6068,
-    instrux + 6069,
-    instrux + 6070,
-    instrux + 6071,
-    instrux + 6072,
-    instrux + 6073,
-    instrux + 6074,
-    instrux + 6075,
-    instrux + 6076,
-    instrux + 6077,
-    instrux + 6078,
-    instrux + 6079,
-    instrux + 6080,
-    instrux + 6081,
-    instrux + 6082,
-    instrux + 6083,
-    instrux + 6084,
-    instrux + 6085,
-    instrux + 6086,
-    instrux + 6087,
-    instrux + 6088,
-    instrux + 6089,
-};
-
-static const struct itemplate * const itable_0F20[] = {
-    instrux + 613,
-    instrux + 614,
-};
-
-static const struct itemplate * const itable_0F21[] = {
-    instrux + 617,
-    instrux + 618,
-};
-
-static const struct itemplate * const itable_0F22[] = {
-    instrux + 615,
-    instrux + 616,
-};
-
-static const struct itemplate * const itable_0F23[] = {
-    instrux + 619,
-    instrux + 620,
-};
-
-static const struct itemplate * const itable_0F28[] = {
-    instrux + 1238,
-    instrux + 1476,
-    instrux + 1479,
-};
-
-static const struct itemplate * const itable_0F29[] = {
-    instrux + 1239,
-    instrux + 1477,
-    instrux + 1478,
-};
-
-static const struct itemplate * const itable_0F2A[] = {
-    instrux + 1220,
-    instrux + 1222,
-    instrux + 1223,
-    instrux + 1452,
-    instrux + 1460,
-    instrux + 1461,
-};
-
-static const struct itemplate * const itable_0F2B[] = {
-    instrux + 1248,
-    instrux + 1320,
-    instrux + 1576,
-    instrux + 1577,
-};
-
-static const struct itemplate * const itable_0F2C[] = {
-    instrux + 1228,
-    instrux + 1229,
-    instrux + 1230,
-    instrux + 1463,
-    instrux + 1466,
-    instrux + 1467,
-    instrux + 1468,
-    instrux + 1469,
-};
-
-static const struct itemplate * const itable_0F2D[] = {
-    instrux + 1221,
-    instrux + 1224,
-    instrux + 1225,
-    instrux + 1226,
-    instrux + 1227,
-    instrux + 1450,
-    instrux + 1455,
-    instrux + 1456,
-    instrux + 1457,
-    instrux + 1458,
-};
-
-static const struct itemplate * const itable_0F2E[] = {
-    instrux + 1267,
-    instrux + 1503,
-};
-
-static const struct itemplate * const itable_0F2F[] = {
-    instrux + 1219,
-    instrux + 1446,
-};
-
-static const struct itemplate * const itable_0F30[] = {
-    instrux + 1118,
-};
-
-static const struct itemplate * const itable_0F31[] = {
-    instrux + 885,
-};
-
-static const struct itemplate * const itable_0F32[] = {
-    instrux + 883,
-};
-
-static const struct itemplate * const itable_0F33[] = {
-    instrux + 884,
-};
-
-static const struct itemplate * const itable_0F34[] = {
-    instrux + 1078,
-};
-
-static const struct itemplate * const itable_0F35[] = {
-    instrux + 1079,
-};
-
-static const struct itemplate * const itable_0F36[] = {
-    instrux + 882,
-};
-
-static const struct itemplate * const itable_0F37[] = {
-    instrux + 1117,
-    instrux + 1655,
-};
-
-static const struct itemplate * const itable_0F3800[] = {
-    instrux + 1564,
-    instrux + 1565,
-};
-
-static const struct itemplate * const itable_0F3801[] = {
-    instrux + 1548,
-    instrux + 1549,
-};
-
-static const struct itemplate * const itable_0F3802[] = {
-    instrux + 1550,
-    instrux + 1551,
-};
-
-static const struct itemplate * const itable_0F3803[] = {
-    instrux + 1552,
-    instrux + 1553,
-};
-
-static const struct itemplate * const itable_0F3804[] = {
-    instrux + 1560,
-    instrux + 1561,
-};
-
-static const struct itemplate * const itable_0F3805[] = {
-    instrux + 1554,
-    instrux + 1555,
-};
-
-static const struct itemplate * const itable_0F3806[] = {
-    instrux + 1556,
-    instrux + 1557,
-};
-
-static const struct itemplate * const itable_0F3807[] = {
-    instrux + 1558,
-    instrux + 1559,
-};
-
-static const struct itemplate * const itable_0F3808[] = {
-    instrux + 1566,
-    instrux + 1567,
-};
-
-static const struct itemplate * const itable_0F3809[] = {
-    instrux + 1568,
-    instrux + 1569,
-};
-
-static const struct itemplate * const itable_0F380A[] = {
-    instrux + 1570,
-    instrux + 1571,
-};
-
-static const struct itemplate * const itable_0F380B[] = {
-    instrux + 1562,
-    instrux + 1563,
-};
-
-static const struct itemplate * const itable_0F3810[] = {
-    instrux + 1595,
-    instrux + 1596,
-};
-
-static const struct itemplate * const itable_0F3814[] = {
-    instrux + 1585,
-    instrux + 1586,
-};
-
-static const struct itemplate * const itable_0F3815[] = {
-    instrux + 1583,
-    instrux + 1584,
-};
-
-static const struct itemplate * const itable_0F3817[] = {
-    instrux + 1637,
-};
-
-static const struct itemplate * const itable_0F381C[] = {
-    instrux + 1540,
-    instrux + 1541,
-};
-
-static const struct itemplate * const itable_0F381D[] = {
-    instrux + 1542,
-    instrux + 1543,
-};
-
-static const struct itemplate * const itable_0F381E[] = {
-    instrux + 1544,
-    instrux + 1545,
-};
-
-static const struct itemplate * const itable_0F3820[] = {
-    instrux + 1623,
-};
-
-static const struct itemplate * const itable_0F3821[] = {
-    instrux + 1624,
-};
-
-static const struct itemplate * const itable_0F3822[] = {
-    instrux + 1625,
-};
-
-static const struct itemplate * const itable_0F3823[] = {
-    instrux + 1626,
-};
-
-static const struct itemplate * const itable_0F3824[] = {
-    instrux + 1627,
-};
-
-static const struct itemplate * const itable_0F3825[] = {
-    instrux + 1628,
-};
-
-static const struct itemplate * const itable_0F3828[] = {
-    instrux + 1635,
-};
-
-static const struct itemplate * const itable_0F3829[] = {
-    instrux + 1598,
-};
-
-static const struct itemplate * const itable_0F382A[] = {
-    instrux + 1592,
-};
-
-static const struct itemplate * const itable_0F382B[] = {
-    instrux + 1594,
-};
-
-static const struct itemplate * const itable_0F3830[] = {
-    instrux + 1629,
-};
-
-static const struct itemplate * const itable_0F3831[] = {
-    instrux + 1630,
-};
-
-static const struct itemplate * const itable_0F3832[] = {
-    instrux + 1631,
-};
-
-static const struct itemplate * const itable_0F3833[] = {
-    instrux + 1632,
-};
-
-static const struct itemplate * const itable_0F3834[] = {
-    instrux + 1633,
-};
-
-static const struct itemplate * const itable_0F3835[] = {
-    instrux + 1634,
-};
-
-static const struct itemplate * const itable_0F3837[] = {
-    instrux + 1651,
-};
-
-static const struct itemplate * const itable_0F3838[] = {
-    instrux + 1619,
-};
-
-static const struct itemplate * const itable_0F3839[] = {
-    instrux + 1620,
-};
-
-static const struct itemplate * const itable_0F383A[] = {
-    instrux + 1622,
-};
-
-static const struct itemplate * const itable_0F383B[] = {
-    instrux + 1621,
-};
-
-static const struct itemplate * const itable_0F383C[] = {
-    instrux + 1615,
-};
-
-static const struct itemplate * const itable_0F383D[] = {
-    instrux + 1616,
-};
-
-static const struct itemplate * const itable_0F383E[] = {
-    instrux + 1618,
-};
-
-static const struct itemplate * const itable_0F383F[] = {
-    instrux + 1617,
-};
-
-static const struct itemplate * const itable_0F3840[] = {
-    instrux + 1636,
-};
-
-static const struct itemplate * const itable_0F3841[] = {
-    instrux + 1607,
-};
-
-static const struct itemplate * const itable_0F3880[] = {
-    instrux + 1536,
-    instrux + 1537,
-};
-
-static const struct itemplate * const itable_0F3881[] = {
-    instrux + 1538,
-    instrux + 1539,
-};
-
-static const struct itemplate * const itable_0F3882[] = {
-    instrux + 482,
-    instrux + 483,
-};
-
-static const struct itemplate * const itable_0F38C8[] = {
-    instrux + 3843,
-};
-
-static const struct itemplate * const itable_0F38C9[] = {
-    instrux + 3841,
-};
-
-static const struct itemplate * const itable_0F38CA[] = {
-    instrux + 3842,
-};
-
-static const struct itemplate * const itable_0F38CB[] = {
-    instrux + 3847,
-    instrux + 3848,
-};
-
-static const struct itemplate * const itable_0F38CC[] = {
-    instrux + 3845,
-};
-
-static const struct itemplate * const itable_0F38CD[] = {
-    instrux + 3846,
-};
-
-static const struct itemplate * const itable_0F38DB[] = {
-    instrux + 1668,
-};
-
-static const struct itemplate * const itable_0F38DC[] = {
-    instrux + 1664,
-};
-
-static const struct itemplate * const itable_0F38DD[] = {
-    instrux + 1665,
-};
-
-static const struct itemplate * const itable_0F38DE[] = {
-    instrux + 1666,
-};
-
-static const struct itemplate * const itable_0F38DF[] = {
-    instrux + 1667,
-};
-
-static const struct itemplate * const itable_0F38F0[] = {
-    instrux + 1642,
-    instrux + 1645,
-    instrux + 1658,
-    instrux + 1659,
-    instrux + 1660,
-};
-
-static const struct itemplate * const itable_0F38F1[] = {
-    instrux + 1643,
-    instrux + 1644,
-    instrux + 1646,
-    instrux + 1661,
-    instrux + 1662,
-    instrux + 1663,
-};
-
-static const struct itemplate * const itable_0F38F6[] = {
-    instrux + 3088,
-    instrux + 3089,
-    instrux + 3090,
-    instrux + 3091,
-};
-
-static const struct itemplate * const itable_0F39[] = {
-    instrux + 238,
-};
-
-static const struct itemplate * const itable_0F3A08[] = {
-    instrux + 1639,
-};
-
-static const struct itemplate * const itable_0F3A09[] = {
-    instrux + 1638,
-};
-
-static const struct itemplate * const itable_0F3A0A[] = {
-    instrux + 1641,
-};
-
-static const struct itemplate * const itable_0F3A0B[] = {
-    instrux + 1640,
-};
-
-static const struct itemplate * const itable_0F3A0C[] = {
-    instrux + 1582,
-};
-
-static const struct itemplate * const itable_0F3A0D[] = {
-    instrux + 1581,
-};
-
-static const struct itemplate * const itable_0F3A0E[] = {
-    instrux + 1597,
-};
-
-static const struct itemplate * const itable_0F3A0F[] = {
-    instrux + 1546,
-    instrux + 1547,
-};
-
-static const struct itemplate * const itable_0F3A14[] = {
-    instrux + 1599,
-    instrux + 1600,
-    instrux + 1601,
-};
-
-static const struct itemplate * const itable_0F3A15[] = {
-    instrux + 1604,
-    instrux + 1605,
-    instrux + 1606,
-};
-
-static const struct itemplate * const itable_0F3A16[] = {
-    instrux + 1602,
-    instrux + 1603,
-};
-
-static const struct itemplate * const itable_0F3A17[] = {
-    instrux + 1589,
-    instrux + 1590,
-};
-
-static const struct itemplate * const itable_0F3A20[] = {
-    instrux + 1608,
-    instrux + 1609,
-    instrux + 1610,
-};
-
-static const struct itemplate * const itable_0F3A21[] = {
-    instrux + 1591,
-};
-
-static const struct itemplate * const itable_0F3A22[] = {
-    instrux + 1611,
-    instrux + 1612,
-    instrux + 1613,
-    instrux + 1614,
-};
-
-static const struct itemplate * const itable_0F3A40[] = {
-    instrux + 1588,
-};
-
-static const struct itemplate * const itable_0F3A41[] = {
-    instrux + 1587,
-};
-
-static const struct itemplate * const itable_0F3A42[] = {
-    instrux + 1593,
-};
-
-static const struct itemplate * const itable_0F3A44[] = {
-    instrux + 2866,
-    instrux + 2867,
-    instrux + 2868,
-    instrux + 2869,
-    instrux + 2870,
-};
-
-static const struct itemplate * const itable_0F3A60[] = {
-    instrux + 1648,
-};
-
-static const struct itemplate * const itable_0F3A61[] = {
-    instrux + 1647,
-};
-
-static const struct itemplate * const itable_0F3A62[] = {
-    instrux + 1650,
-};
-
-static const struct itemplate * const itable_0F3A63[] = {
-    instrux + 1649,
-};
-
-static const struct itemplate * const itable_0F3ACC[] = {
-    instrux + 3844,
-};
-
-static const struct itemplate * const itable_0F3ADF[] = {
-    instrux + 1669,
-};
-
-static const struct itemplate * const itable_0F3C[] = {
-    instrux + 222,
-};
-
-static const struct itemplate * const itable_0F3D[] = {
-    instrux + 221,
-};
-
-static const struct itemplate * const itable_0F40[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F41[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F42[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F43[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F44[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F45[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F46[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F47[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F48[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F49[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F4A[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F4B[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F4C[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F4D[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F4E[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F4F[] = {
-    instrux + 1182,
-    instrux + 1183,
-    instrux + 1184,
-    instrux + 1185,
-    instrux + 1186,
-    instrux + 1187,
-};
-
-static const struct itemplate * const itable_0F50[] = {
-    instrux + 743,
-    instrux + 1246,
-    instrux + 1247,
-    instrux + 1484,
-    instrux + 1485,
-};
-
-static const struct itemplate * const itable_0F51[] = {
-    instrux + 735,
-    instrux + 1262,
-    instrux + 1263,
-    instrux + 1499,
-    instrux + 1500,
-};
-
-static const struct itemplate * const itable_0F52[] = {
-    instrux + 771,
-    instrux + 1259,
-    instrux + 1260,
-};
-
-static const struct itemplate * const itable_0F53[] = {
-    instrux + 1257,
-    instrux + 1258,
-};
-
-static const struct itemplate * const itable_0F54[] = {
-    instrux + 751,
-    instrux + 1198,
-    instrux + 1427,
-};
-
-static const struct itemplate * const itable_0F55[] = {
-    instrux + 821,
-    instrux + 1197,
-    instrux + 1426,
-};
-
-static const struct itemplate * const itable_0F56[] = {
-    instrux + 1256,
-    instrux + 1496,
-};
-
-static const struct itemplate * const itable_0F57[] = {
-    instrux + 1270,
-    instrux + 1506,
-};
-
-static const struct itemplate * const itable_0F58[] = {
-    instrux + 780,
-    instrux + 1195,
-    instrux + 1196,
-    instrux + 1424,
-    instrux + 1425,
-};
-
-static const struct itemplate * const itable_0F59[] = {
-    instrux + 774,
-    instrux + 1254,
-    instrux + 1255,
-    instrux + 1494,
-    instrux + 1495,
-};
-
-static const struct itemplate * const itable_0F5A[] = {
-    instrux + 779,
-    instrux + 1451,
-    instrux + 1454,
-    instrux + 1459,
-    instrux + 1462,
-};
-
-static const struct itemplate * const itable_0F5B[] = {
-    instrux + 778,
-    instrux + 1448,
-    instrux + 1453,
-    instrux + 1465,
-};
-
-static const struct itemplate * const itable_0F5C[] = {
-    instrux + 777,
-    instrux + 1265,
-    instrux + 1266,
-    instrux + 1501,
-    instrux + 1502,
-};
-
-static const struct itemplate * const itable_0F5D[] = {
-    instrux + 772,
-    instrux + 1236,
-    instrux + 1237,
-    instrux + 1474,
-    instrux + 1475,
-};
-
-static const struct itemplate * const itable_0F5E[] = {
-    instrux + 769,
-    instrux + 1231,
-    instrux + 1232,
-    instrux + 1470,
-    instrux + 1471,
-};
-
-static const struct itemplate * const itable_0F5F[] = {
-    instrux + 1234,
-    instrux + 1235,
-    instrux + 1472,
-    instrux + 1473,
-};
-
-static const struct itemplate * const itable_0F60[] = {
-    instrux + 829,
-    instrux + 1419,
-};
-
-static const struct itemplate * const itable_0F61[] = {
-    instrux + 831,
-    instrux + 1420,
-};
-
-static const struct itemplate * const itable_0F62[] = {
-    instrux + 830,
-    instrux + 1421,
-};
-
-static const struct itemplate * const itable_0F63[] = {
-    instrux + 730,
-    instrux + 1343,
-};
-
-static const struct itemplate * const itable_0F64[] = {
-    instrux + 748,
-    instrux + 1362,
-};
-
-static const struct itemplate * const itable_0F65[] = {
-    instrux + 750,
-    instrux + 1363,
-};
-
-static const struct itemplate * const itable_0F66[] = {
-    instrux + 749,
-    instrux + 1364,
-};
-
-static const struct itemplate * const itable_0F67[] = {
-    instrux + 731,
-    instrux + 1345,
-};
-
-static const struct itemplate * const itable_0F68[] = {
-    instrux + 826,
-    instrux + 1415,
-};
-
-static const struct itemplate * const itable_0F69[] = {
-    instrux + 828,
-    instrux + 1416,
-};
-
-static const struct itemplate * const itable_0F6A[] = {
-    instrux + 827,
-    instrux + 1417,
-};
-
-static const struct itemplate * const itable_0F6B[] = {
-    instrux + 729,
-    instrux + 1344,
-};
-
-static const struct itemplate * const itable_0F6C[] = {
-    instrux + 1422,
-};
-
-static const struct itemplate * const itable_0F6D[] = {
-    instrux + 1418,
-};
-
-static const struct itemplate * const itable_0F6E[] = {
-    instrux + 649,
-    instrux + 653,
-    instrux + 1324,
-    instrux + 1325,
-    instrux + 1340,
-};
-
-static const struct itemplate * const itable_0F6F[] = {
-    instrux + 651,
-    instrux + 1327,
-    instrux + 1329,
-    instrux + 1331,
-    instrux + 1333,
-};
-
-static const struct itemplate * const itable_0F70[] = {
-    instrux + 1309,
-    instrux + 1382,
-    instrux + 1383,
-    instrux + 1384,
-    instrux + 1385,
-    instrux + 1386,
-    instrux + 1387,
-};
-
-static const struct itemplate * const itable_0F71[] = {
-    instrux + 807,
-    instrux + 811,
-    instrux + 817,
-    instrux + 1390,
-    instrux + 1396,
-    instrux + 1401,
-};
-
-static const struct itemplate * const itable_0F72[] = {
-    instrux + 803,
-    instrux + 809,
-    instrux + 813,
-    instrux + 1392,
-    instrux + 1398,
-    instrux + 1403,
-};
-
-static const struct itemplate * const itable_0F73[] = {
-    instrux + 805,
-    instrux + 815,
-    instrux + 1388,
-    instrux + 1394,
-    instrux + 1399,
-    instrux + 1405,
-};
-
-static const struct itemplate * const itable_0F74[] = {
-    instrux + 745,
-    instrux + 1359,
-};
-
-static const struct itemplate * const itable_0F75[] = {
-    instrux + 747,
-    instrux + 1360,
-};
-
-static const struct itemplate * const itable_0F76[] = {
-    instrux + 746,
-    instrux + 1361,
-};
-
-static const struct itemplate * const itable_0F77[] = {
-    instrux + 239,
-};
-
-static const struct itemplate * const itable_0F78[] = {
-    instrux + 1074,
-    instrux + 1527,
-    instrux + 1528,
-    instrux + 1572,
-    instrux + 1574,
-};
-
-static const struct itemplate * const itable_0F79[] = {
-    instrux + 917,
-    instrux + 1532,
-    instrux + 1533,
-    instrux + 1573,
-    instrux + 1575,
-};
-
-static const struct itemplate * const itable_0F7B[] = {
-    instrux + 918,
-};
-
-static const struct itemplate * const itable_0F7C[] = {
-    instrux + 1075,
-    instrux + 1509,
-    instrux + 1510,
-};
-
-static const struct itemplate * const itable_0F7D[] = {
-    instrux + 920,
-    instrux + 1511,
-    instrux + 1512,
-};
-
-static const struct itemplate * const itable_0F7E[] = {
-    instrux + 650,
-    instrux + 654,
-    instrux + 1323,
-    instrux + 1326,
-    instrux + 1336,
-    instrux + 1339,
-    instrux + 1341,
-};
-
-static const struct itemplate * const itable_0F7F[] = {
-    instrux + 652,
-    instrux + 1328,
-    instrux + 1330,
-    instrux + 1332,
-    instrux + 1334,
-};
-
-static const struct itemplate * const itable_0F80[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F81[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F82[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F83[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F84[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F85[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F86[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F87[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F88[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F89[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F8A[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F8B[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F8C[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F8D[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F8E[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F8F[] = {
-    instrux + 1188,
-    instrux + 1189,
-    instrux + 1190,
-    instrux + 1191,
-};
-
-static const struct itemplate * const itable_0F90[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F91[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F92[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F93[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F94[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F95[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F96[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F97[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F98[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F99[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F9A[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F9B[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F9C[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F9D[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F9E[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0F9F[] = {
-    instrux + 1193,
-    instrux + 1194,
-};
-
-static const struct itemplate * const itable_0FA0[] = {
-    instrux + 842,
-};
-
-static const struct itemplate * const itable_0FA1[] = {
-    instrux + 790,
-};
-
-static const struct itemplate * const itable_0FA2[] = {
-    instrux + 220,
-};
-
-static const struct itemplate * const itable_0FA3[] = {
-    instrux + 114,
-    instrux + 115,
-    instrux + 116,
-    instrux + 117,
-    instrux + 118,
-    instrux + 119,
-};
-
-static const struct itemplate * const itable_0FA4[] = {
-    instrux + 983,
-    instrux + 984,
-    instrux + 985,
-    instrux + 986,
-    instrux + 987,
-    instrux + 988,
-};
-
-static const struct itemplate * const itable_0FA5[] = {
-    instrux + 989,
-    instrux + 990,
-    instrux + 991,
-    instrux + 992,
-    instrux + 993,
-    instrux + 994,
-};
-
-static const struct itemplate * const itable_0FA6C0[] = {
-    instrux + 3103,
-};
-
-static const struct itemplate * const itable_0FA6C8[] = {
-    instrux + 3104,
-};
-
-static const struct itemplate * const itable_0FA6D0[] = {
-    instrux + 3105,
-};
-
-static const struct itemplate * const itable_0FA7C0[] = {
-    instrux + 3097,
-};
-
-static const struct itemplate * const itable_0FA7C8[] = {
-    instrux + 3098,
-};
-
-static const struct itemplate * const itable_0FA7D0[] = {
-    instrux + 3099,
-};
-
-static const struct itemplate * const itable_0FA7D8[] = {
-    instrux + 3100,
-};
-
-static const struct itemplate * const itable_0FA7E0[] = {
-    instrux + 3101,
-};
-
-static const struct itemplate * const itable_0FA7E8[] = {
-    instrux + 3102,
-};
-
-static const struct itemplate * const itable_0FA8[] = {
-    instrux + 843,
-};
-
-static const struct itemplate * const itable_0FA9[] = {
-    instrux + 791,
-};
-
-static const struct itemplate * const itable_0FAA[] = {
-    instrux + 919,
-};
-
-static const struct itemplate * const itable_0FAB[] = {
-    instrux + 141,
-    instrux + 142,
-    instrux + 143,
-    instrux + 144,
-    instrux + 145,
-    instrux + 146,
-};
-
-static const struct itemplate * const itable_0FAC[] = {
-    instrux + 1007,
-    instrux + 1008,
-    instrux + 1009,
-    instrux + 1010,
-    instrux + 1011,
-    instrux + 1012,
-};
-
-static const struct itemplate * const itable_0FAD[] = {
-    instrux + 1013,
-    instrux + 1014,
-    instrux + 1015,
-    instrux + 1016,
-    instrux + 1017,
-    instrux + 1018,
-};
-
-static const struct itemplate * const itable_0FAE[] = {
-    instrux + 539,
-    instrux + 594,
-    instrux + 969,
-    instrux + 1233,
-    instrux + 1264,
-    instrux + 1271,
-    instrux + 1272,
-    instrux + 1273,
-    instrux + 1274,
-    instrux + 1277,
-    instrux + 1278,
-    instrux + 1281,
-    instrux + 1282,
-    instrux + 1285,
-    instrux + 1286,
-    instrux + 1293,
-    instrux + 1316,
-    instrux + 1321,
-    instrux + 1322,
-    instrux + 3073,
-    instrux + 3074,
-    instrux + 3075,
-    instrux + 3076,
-    instrux + 3080,
-    instrux + 3081,
-    instrux + 3082,
-    instrux + 3083,
-    instrux + 5894,
-    instrux + 5895,
-    instrux + 5896,
-};
-
-static const struct itemplate * const itable_0FAF[] = {
-    instrux + 438,
-    instrux + 439,
-    instrux + 440,
-    instrux + 441,
-    instrux + 442,
-    instrux + 443,
-};
-
-static const struct itemplate * const itable_0FB0[] = {
-    instrux + 210,
-    instrux + 211,
-};
-
-static const struct itemplate * const itable_0FB1[] = {
-    instrux + 212,
-    instrux + 213,
-    instrux + 214,
-    instrux + 215,
-    instrux + 216,
-    instrux + 217,
-};
-
-static const struct itemplate * const itable_0FB2[] = {
-    instrux + 588,
-    instrux + 589,
-    instrux + 590,
-};
-
-static const struct itemplate * const itable_0FB3[] = {
-    instrux + 132,
-    instrux + 133,
-    instrux + 134,
-    instrux + 135,
-    instrux + 136,
-    instrux + 137,
-};
-
-static const struct itemplate * const itable_0FB4[] = {
-    instrux + 540,
-    instrux + 541,
-    instrux + 542,
-};
-
-static const struct itemplate * const itable_0FB5[] = {
-    instrux + 544,
-    instrux + 545,
-    instrux + 546,
-};
-
-static const struct itemplate * const itable_0FB6[] = {
-    instrux + 666,
-    instrux + 667,
-    instrux + 668,
-    instrux + 670,
-};
-
-static const struct itemplate * const itable_0FB7[] = {
-    instrux + 669,
-    instrux + 671,
-};
-
-static const struct itemplate * const itable_0FB8[] = {
-    instrux + 515,
-    instrux + 516,
-    instrux + 517,
-    instrux + 1652,
-    instrux + 1653,
-    instrux + 1654,
-};
-
-static const struct itemplate * const itable_0FB9[] = {
-    instrux + 1105,
-    instrux + 1106,
-    instrux + 1107,
-};
-
-static const struct itemplate * const itable_0FBA[] = {
-    instrux + 120,
-    instrux + 121,
-    instrux + 122,
-    instrux + 129,
-    instrux + 130,
-    instrux + 131,
-    instrux + 138,
-    instrux + 139,
-    instrux + 140,
-    instrux + 147,
-    instrux + 148,
-    instrux + 149,
-};
-
-static const struct itemplate * const itable_0FBB[] = {
-    instrux + 123,
-    instrux + 124,
-    instrux + 125,
-    instrux + 126,
-    instrux + 127,
-    instrux + 128,
-};
-
-static const struct itemplate * const itable_0FBC[] = {
-    instrux + 100,
-    instrux + 101,
-    instrux + 102,
-    instrux + 103,
-    instrux + 104,
-    instrux + 105,
-    instrux + 3748,
-    instrux + 3749,
-    instrux + 3750,
-};
-
-static const struct itemplate * const itable_0FBD[] = {
-    instrux + 106,
-    instrux + 107,
-    instrux + 108,
-    instrux + 109,
-    instrux + 110,
-    instrux + 111,
-    instrux + 1578,
-    instrux + 1579,
-    instrux + 1580,
-};
-
-static const struct itemplate * const itable_0FBE[] = {
-    instrux + 659,
-    instrux + 660,
-    instrux + 661,
-    instrux + 663,
-};
-
-static const struct itemplate * const itable_0FBF[] = {
-    instrux + 662,
-    instrux + 664,
-};
-
-static const struct itemplate * const itable_0FC0[] = {
-    instrux + 1119,
-    instrux + 1120,
-};
-
-static const struct itemplate * const itable_0FC1[] = {
-    instrux + 1121,
-    instrux + 1122,
-    instrux + 1123,
-    instrux + 1124,
-    instrux + 1125,
-    instrux + 1126,
-};
-
-static const struct itemplate * const itable_0FC2[] = {
-    instrux + 1199,
-    instrux + 1200,
-    instrux + 1201,
-    instrux + 1202,
-    instrux + 1203,
-    instrux + 1204,
-    instrux + 1205,
-    instrux + 1206,
-    instrux + 1207,
-    instrux + 1208,
-    instrux + 1209,
-    instrux + 1210,
-    instrux + 1211,
-    instrux + 1212,
-    instrux + 1213,
-    instrux + 1214,
-    instrux + 1215,
-    instrux + 1216,
-    instrux + 1217,
-    instrux + 1218,
-    instrux + 1428,
-    instrux + 1429,
-    instrux + 1430,
-    instrux + 1431,
-    instrux + 1432,
-    instrux + 1433,
-    instrux + 1434,
-    instrux + 1435,
-    instrux + 1436,
-    instrux + 1437,
-    instrux + 1438,
-    instrux + 1439,
-    instrux + 1440,
-    instrux + 1441,
-    instrux + 1442,
-    instrux + 1443,
-    instrux + 1444,
-    instrux + 1445,
-};
-
-static const struct itemplate * const itable_0FC3[] = {
-    instrux + 1318,
-    instrux + 1319,
-};
-
-static const struct itemplate * const itable_0FC4[] = {
-    instrux + 1299,
-    instrux + 1300,
-    instrux + 1301,
-    instrux + 1366,
-    instrux + 1367,
-    instrux + 1368,
-};
-
-static const struct itemplate * const itable_0FC5[] = {
-    instrux + 1298,
-    instrux + 1365,
-};
-
-static const struct itemplate * const itable_0FC6[] = {
-    instrux + 1261,
-    instrux + 1497,
-    instrux + 1498,
-};
-
-static const struct itemplate * const itable_0FC7[] = {
-    instrux + 218,
-    instrux + 219,
-    instrux + 1279,
-    instrux + 1280,
-    instrux + 1283,
-    instrux + 1284,
-    instrux + 1287,
-    instrux + 1288,
-    instrux + 1520,
-    instrux + 1525,
-    instrux + 1526,
-    instrux + 1535,
-    instrux + 3077,
-    instrux + 3078,
-    instrux + 3079,
-    instrux + 3092,
-    instrux + 3093,
-    instrux + 3094,
-    instrux + 5891,
-    instrux + 5892,
-    instrux + 5893,
-};
-
-static const struct itemplate * const itable_0FC8[] = {
-    instrux + 112,
-    instrux + 113,
-};
-
-static const struct itemplate * const itable_0FC9[] = {
-    instrux + 112,
-    instrux + 113,
-};
-
-static const struct itemplate * const itable_0FCA[] = {
-    instrux + 112,
-    instrux + 113,
-};
-
-static const struct itemplate * const itable_0FCB[] = {
-    instrux + 112,
-    instrux + 113,
-};
-
-static const struct itemplate * const itable_0FCC[] = {
-    instrux + 112,
-    instrux + 113,
-};
-
-static const struct itemplate * const itable_0FCD[] = {
-    instrux + 112,
-    instrux + 113,
-};
-
-static const struct itemplate * const itable_0FCE[] = {
-    instrux + 112,
-    instrux + 113,
-};
-
-static const struct itemplate * const itable_0FCF[] = {
-    instrux + 112,
-    instrux + 113,
-};
-
-static const struct itemplate * const itable_0FD0[] = {
-    instrux + 1507,
-    instrux + 1508,
-};
-
-static const struct itemplate * const itable_0FD1[] = {
-    instrux + 816,
-    instrux + 1400,
-};
-
-static const struct itemplate * const itable_0FD2[] = {
-    instrux + 812,
-    instrux + 1402,
-};
-
-static const struct itemplate * const itable_0FD3[] = {
-    instrux + 814,
-    instrux + 1404,
-};
-
-static const struct itemplate * const itable_0FD4[] = {
-    instrux + 1349,
-    instrux + 1350,
-};
-
-static const struct itemplate * const itable_0FD5[] = {
-    instrux + 776,
-    instrux + 1377,
-};
-
-static const struct itemplate * const itable_0FD6[] = {
-    instrux + 1335,
-    instrux + 1337,
-    instrux + 1338,
-    instrux + 1342,
-};
-
-static const struct itemplate * const itable_0FD7[] = {
-    instrux + 1306,
-    instrux + 1374,
-};
-
-static const struct itemplate * const itable_0FD8[] = {
-    instrux + 823,
-    instrux + 1413,
-};
-
-static const struct itemplate * const itable_0FD9[] = {
-    instrux + 824,
-    instrux + 1414,
-};
-
-static const struct itemplate * const itable_0FDA[] = {
-    instrux + 1305,
-    instrux + 1373,
-};
-
-static const struct itemplate * const itable_0FDB[] = {
-    instrux + 740,
-    instrux + 1355,
-};
-
-static const struct itemplate * const itable_0FDC[] = {
-    instrux + 737,
-    instrux + 1353,
-};
-
-static const struct itemplate * const itable_0FDD[] = {
-    instrux + 738,
-    instrux + 1354,
-};
-
-static const struct itemplate * const itable_0FDE[] = {
-    instrux + 1303,
-    instrux + 1371,
-};
-
-static const struct itemplate * const itable_0FDF[] = {
-    instrux + 741,
-    instrux + 1356,
-};
-
-static const struct itemplate * const itable_0FE0[] = {
-    instrux + 1296,
-    instrux + 1357,
-};
-
-static const struct itemplate * const itable_0FE1[] = {
-    instrux + 810,
-    instrux + 1395,
-};
-
-static const struct itemplate * const itable_0FE2[] = {
-    instrux + 808,
-    instrux + 1397,
-};
-
-static const struct itemplate * const itable_0FE3[] = {
-    instrux + 1297,
-    instrux + 1358,
-};
-
-static const struct itemplate * const itable_0FE4[] = {
-    instrux + 1307,
-    instrux + 1375,
-};
-
-static const struct itemplate * const itable_0FE5[] = {
-    instrux + 775,
-    instrux + 1376,
-};
-
-static const struct itemplate * const itable_0FE6[] = {
-    instrux + 1447,
-    instrux + 1449,
-    instrux + 1464,
-};
-
-static const struct itemplate * const itable_0FE7[] = {
-    instrux + 1295,
-    instrux + 1317,
-};
-
-static const struct itemplate * const itable_0FE8[] = {
-    instrux + 820,
-    instrux + 1411,
-};
-
-static const struct itemplate * const itable_0FE9[] = {
-    instrux + 822,
-    instrux + 1412,
-};
-
-static const struct itemplate * const itable_0FEA[] = {
-    instrux + 1304,
-    instrux + 1372,
-};
-
-static const struct itemplate * const itable_0FEB[] = {
-    instrux + 799,
-    instrux + 1380,
-};
-
-static const struct itemplate * const itable_0FEC[] = {
-    instrux + 734,
-    instrux + 1351,
-};
-
-static const struct itemplate * const itable_0FED[] = {
-    instrux + 736,
-    instrux + 1352,
-};
-
-static const struct itemplate * const itable_0FEE[] = {
-    instrux + 1302,
-    instrux + 1370,
-};
-
-static const struct itemplate * const itable_0FEF[] = {
-    instrux + 857,
-    instrux + 1423,
-};
-
-static const struct itemplate * const itable_0FF0[] = {
-    instrux + 1513,
-};
-
-static const struct itemplate * const itable_0FF1[] = {
-    instrux + 806,
-    instrux + 1389,
-};
-
-static const struct itemplate * const itable_0FF2[] = {
-    instrux + 802,
-    instrux + 1391,
-};
-
-static const struct itemplate * const itable_0FF3[] = {
-    instrux + 804,
-    instrux + 1393,
-};
-
-static const struct itemplate * const itable_0FF4[] = {
-    instrux + 1378,
-    instrux + 1379,
-};
-
-static const struct itemplate * const itable_0FF5[] = {
-    instrux + 770,
-    instrux + 1369,
-};
-
-static const struct itemplate * const itable_0FF6[] = {
-    instrux + 1308,
-    instrux + 1381,
-};
-
-static const struct itemplate * const itable_0FF7[] = {
-    instrux + 1294,
-    instrux + 1315,
-};
-
-static const struct itemplate * const itable_0FF8[] = {
-    instrux + 818,
-    instrux + 1406,
-};
-
-static const struct itemplate * const itable_0FF9[] = {
-    instrux + 825,
-    instrux + 1407,
-};
-
-static const struct itemplate * const itable_0FFA[] = {
-    instrux + 819,
-    instrux + 1408,
-};
-
-static const struct itemplate * const itable_0FFB[] = {
-    instrux + 1409,
-    instrux + 1410,
-};
-
-static const struct itemplate * const itable_0FFC[] = {
-    instrux + 732,
-    instrux + 1346,
-};
-
-static const struct itemplate * const itable_0FFD[] = {
-    instrux + 739,
-    instrux + 1347,
-};
-
-static const struct itemplate * const itable_0FFE[] = {
-    instrux + 733,
-    instrux + 1348,
-};
-
-static const struct itemplate * const itable_0FFF[] = {
-    instrux + 1104,
-};
-
-static const struct itemplate * const itable_10[] = {
-    instrux + 7,
-    instrux + 8,
-};
-
-static const struct itemplate * const itable_11[] = {
-    instrux + 9,
-    instrux + 10,
-    instrux + 11,
-    instrux + 12,
-    instrux + 13,
-    instrux + 14,
-};
-
-static const struct itemplate * const itable_12[] = {
-    instrux + 15,
-    instrux + 16,
-};
-
-static const struct itemplate * const itable_13[] = {
-    instrux + 17,
-    instrux + 18,
-    instrux + 19,
-    instrux + 20,
-    instrux + 21,
-    instrux + 22,
-};
-
-static const struct itemplate * const itable_14[] = {
-    instrux + 26,
-};
-
-static const struct itemplate * const itable_15[] = {
-    instrux + 27,
-    instrux + 28,
-    instrux + 29,
-};
-
-static const struct itemplate * const itable_16[] = {
-    instrux + 840,
-};
-
-static const struct itemplate * const itable_17[] = {
-    instrux + 788,
-};
-
-static const struct itemplate * const itable_18[] = {
-    instrux + 935,
-    instrux + 936,
-};
-
-static const struct itemplate * const itable_19[] = {
-    instrux + 937,
-    instrux + 938,
-    instrux + 939,
-    instrux + 940,
-    instrux + 941,
-    instrux + 942,
-};
-
-static const struct itemplate * const itable_1A[] = {
-    instrux + 943,
-    instrux + 944,
-};
-
-static const struct itemplate * const itable_1B[] = {
-    instrux + 945,
-    instrux + 946,
-    instrux + 947,
-    instrux + 948,
-    instrux + 949,
-    instrux + 950,
-};
-
-static const struct itemplate * const itable_1C[] = {
-    instrux + 954,
-};
-
-static const struct itemplate * const itable_1D[] = {
-    instrux + 955,
-    instrux + 956,
-    instrux + 957,
-};
-
-static const struct itemplate * const itable_1E[] = {
-    instrux + 841,
-};
-
-static const struct itemplate * const itable_1F[] = {
-    instrux + 789,
-};
-
-static const struct itemplate * const itable_20[] = {
-    instrux + 66,
-    instrux + 67,
-};
-
-static const struct itemplate * const itable_21[] = {
-    instrux + 68,
-    instrux + 69,
-    instrux + 70,
-    instrux + 71,
-    instrux + 72,
-    instrux + 73,
-};
-
-static const struct itemplate * const itable_22[] = {
-    instrux + 74,
-    instrux + 75,
-};
-
-static const struct itemplate * const itable_23[] = {
-    instrux + 76,
-    instrux + 77,
-    instrux + 78,
-    instrux + 79,
-    instrux + 80,
-    instrux + 81,
-};
-
-static const struct itemplate * const itable_24[] = {
-    instrux + 85,
-};
-
-static const struct itemplate * const itable_25[] = {
-    instrux + 86,
-    instrux + 87,
-    instrux + 88,
-};
-
-static const struct itemplate * const itable_27[] = {
-    instrux + 226,
-};
-
-static const struct itemplate * const itable_28[] = {
-    instrux + 1044,
-    instrux + 1045,
-};
-
-static const struct itemplate * const itable_29[] = {
-    instrux + 1046,
-    instrux + 1047,
-    instrux + 1048,
-    instrux + 1049,
-    instrux + 1050,
-    instrux + 1051,
-};
-
-static const struct itemplate * const itable_2A[] = {
-    instrux + 1052,
-    instrux + 1053,
-};
-
-static const struct itemplate * const itable_2B[] = {
-    instrux + 1054,
-    instrux + 1055,
-    instrux + 1056,
-    instrux + 1057,
-    instrux + 1058,
-    instrux + 1059,
-};
-
-static const struct itemplate * const itable_2C[] = {
-    instrux + 1063,
-};
-
-static const struct itemplate * const itable_2D[] = {
-    instrux + 1064,
-    instrux + 1065,
-    instrux + 1066,
-};
-
-static const struct itemplate * const itable_2F[] = {
-    instrux + 227,
-};
-
-static const struct itemplate * const itable_30[] = {
-    instrux + 1152,
-    instrux + 1153,
-};
-
-static const struct itemplate * const itable_31[] = {
-    instrux + 1154,
-    instrux + 1155,
-    instrux + 1156,
-    instrux + 1157,
-    instrux + 1158,
-    instrux + 1159,
-};
-
-static const struct itemplate * const itable_32[] = {
-    instrux + 1160,
-    instrux + 1161,
-};
-
-static const struct itemplate * const itable_33[] = {
-    instrux + 1162,
-    instrux + 1163,
-    instrux + 1164,
-    instrux + 1165,
-    instrux + 1166,
-    instrux + 1167,
-};
-
-static const struct itemplate * const itable_34[] = {
-    instrux + 1171,
-};
-
-static const struct itemplate * const itable_35[] = {
-    instrux + 1172,
-    instrux + 1173,
-    instrux + 1174,
-};
-
-static const struct itemplate * const itable_37[] = {
-    instrux + 1,
-};
-
-static const struct itemplate * const itable_38[] = {
-    instrux + 176,
-    instrux + 177,
-};
-
-static const struct itemplate * const itable_39[] = {
-    instrux + 178,
-    instrux + 179,
-    instrux + 180,
-    instrux + 181,
-    instrux + 182,
-    instrux + 183,
-};
-
-static const struct itemplate * const itable_3A[] = {
-    instrux + 184,
-    instrux + 185,
-};
-
-static const struct itemplate * const itable_3B[] = {
-    instrux + 186,
-    instrux + 187,
-    instrux + 188,
-    instrux + 189,
-    instrux + 190,
-    instrux + 191,
-};
-
-static const struct itemplate * const itable_3C[] = {
-    instrux + 195,
-};
-
-static const struct itemplate * const itable_3D[] = {
-    instrux + 196,
-    instrux + 197,
-    instrux + 198,
-};
-
-static const struct itemplate * const itable_3F[] = {
-    instrux + 6,
-};
-
-static const struct itemplate * const itable_40[] = {
-    instrux + 468,
-    instrux + 469,
-};
-
-static const struct itemplate * const itable_41[] = {
-    instrux + 468,
-    instrux + 469,
-};
-
-static const struct itemplate * const itable_42[] = {
-    instrux + 468,
-    instrux + 469,
-};
-
-static const struct itemplate * const itable_43[] = {
-    instrux + 468,
-    instrux + 469,
-};
-
-static const struct itemplate * const itable_44[] = {
-    instrux + 468,
-    instrux + 469,
-};
-
-static const struct itemplate * const itable_45[] = {
-    instrux + 468,
-    instrux + 469,
-};
-
-static const struct itemplate * const itable_46[] = {
-    instrux + 468,
-    instrux + 469,
-};
-
-static const struct itemplate * const itable_47[] = {
-    instrux + 468,
-    instrux + 469,
-};
-
-static const struct itemplate * const itable_48[] = {
-    instrux + 228,
-    instrux + 229,
-};
-
-static const struct itemplate * const itable_49[] = {
-    instrux + 228,
-    instrux + 229,
-};
-
-static const struct itemplate * const itable_4A[] = {
-    instrux + 228,
-    instrux + 229,
-};
-
-static const struct itemplate * const itable_4B[] = {
-    instrux + 228,
-    instrux + 229,
-};
-
-static const struct itemplate * const itable_4C[] = {
-    instrux + 228,
-    instrux + 229,
-};
-
-static const struct itemplate * const itable_4D[] = {
-    instrux + 228,
-    instrux + 229,
-};
-
-static const struct itemplate * const itable_4E[] = {
-    instrux + 228,
-    instrux + 229,
-};
-
-static const struct itemplate * const itable_4F[] = {
-    instrux + 228,
-    instrux + 229,
-};
-
-static const struct itemplate * const itable_50[] = {
-    instrux + 832,
-    instrux + 833,
-    instrux + 834,
-};
-
-static const struct itemplate * const itable_51[] = {
-    instrux + 832,
-    instrux + 833,
-    instrux + 834,
-};
-
-static const struct itemplate * const itable_52[] = {
-    instrux + 832,
-    instrux + 833,
-    instrux + 834,
-};
-
-static const struct itemplate * const itable_53[] = {
-    instrux + 832,
-    instrux + 833,
-    instrux + 834,
-};
-
-static const struct itemplate * const itable_54[] = {
-    instrux + 832,
-    instrux + 833,
-    instrux + 834,
-};
-
-static const struct itemplate * const itable_55[] = {
-    instrux + 832,
-    instrux + 833,
-    instrux + 834,
-};
-
-static const struct itemplate * const itable_56[] = {
-    instrux + 832,
-    instrux + 833,
-    instrux + 834,
-};
-
-static const struct itemplate * const itable_57[] = {
-    instrux + 832,
-    instrux + 833,
-    instrux + 834,
-};
-
-static const struct itemplate * const itable_58[] = {
-    instrux + 781,
-    instrux + 782,
-    instrux + 783,
-};
-
-static const struct itemplate * const itable_59[] = {
-    instrux + 781,
-    instrux + 782,
-    instrux + 783,
-};
-
-static const struct itemplate * const itable_5A[] = {
-    instrux + 781,
-    instrux + 782,
-    instrux + 783,
-};
-
-static const struct itemplate * const itable_5B[] = {
-    instrux + 781,
-    instrux + 782,
-    instrux + 783,
-};
-
-static const struct itemplate * const itable_5C[] = {
-    instrux + 781,
-    instrux + 782,
-    instrux + 783,
-};
-
-static const struct itemplate * const itable_5D[] = {
-    instrux + 781,
-    instrux + 782,
-    instrux + 783,
-};
-
-static const struct itemplate * const itable_5E[] = {
-    instrux + 781,
-    instrux + 782,
-    instrux + 783,
-};
-
-static const struct itemplate * const itable_5F[] = {
-    instrux + 781,
-    instrux + 782,
-    instrux + 783,
-};
-
-static const struct itemplate * const itable_60[] = {
-    instrux + 850,
-    instrux + 851,
-    instrux + 852,
-};
-
-static const struct itemplate * const itable_61[] = {
-    instrux + 792,
-    instrux + 793,
-    instrux + 794,
-};
-
-static const struct itemplate * const itable_62[] = {
-    instrux + 98,
-    instrux + 99,
-};
-
-static const struct itemplate * const itable_63[] = {
-    instrux + 96,
-    instrux + 97,
-    instrux + 665,
-};
-
-static const struct itemplate * const itable_68[] = {
-    instrux + 845,
-    instrux + 846,
-    instrux + 847,
-    instrux + 848,
-    instrux + 849,
-};
-
-static const struct itemplate * const itable_69[] = {
-    instrux + 445,
-    instrux + 447,
-    instrux + 449,
-    instrux + 451,
-    instrux + 453,
-    instrux + 455,
-    instrux + 457,
-    instrux + 459,
-    instrux + 461,
-};
-
-static const struct itemplate * const itable_6A[] = {
-    instrux + 844,
-};
-
-static const struct itemplate * const itable_6B[] = {
-    instrux + 444,
-    instrux + 446,
-    instrux + 448,
-    instrux + 450,
-    instrux + 452,
-    instrux + 454,
-    instrux + 456,
-    instrux + 458,
-    instrux + 460,
-};
-
-static const struct itemplate * const itable_6C[] = {
-    instrux + 474,
-};
-
-static const struct itemplate * const itable_6D[] = {
-    instrux + 475,
-    instrux + 476,
-};
-
-static const struct itemplate * const itable_6E[] = {
-    instrux + 726,
-};
-
-static const struct itemplate * const itable_6F[] = {
-    instrux + 727,
-    instrux + 728,
-};
-
-static const struct itemplate * const itable_70[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_71[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_72[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_73[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_74[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_75[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_76[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_77[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_78[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_79[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_7A[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_7B[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_7C[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_7D[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_7E[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_7F[] = {
-    instrux + 1192,
-};
-
-static const struct itemplate * const itable_80[] = {
-    instrux + 30,
-    instrux + 59,
-    instrux + 63,
-    instrux + 89,
-    instrux + 93,
-    instrux + 199,
-    instrux + 203,
-    instrux + 713,
-    instrux + 717,
-    instrux + 958,
-    instrux + 962,
-    instrux + 1067,
-    instrux + 1071,
-    instrux + 1175,
-    instrux + 1179,
-};
-
-static const struct itemplate * const itable_81[] = {
-    instrux + 31,
-    instrux + 32,
-    instrux + 33,
-    instrux + 34,
-    instrux + 35,
-    instrux + 60,
-    instrux + 61,
-    instrux + 62,
-    instrux + 64,
-    instrux + 65,
-    instrux + 90,
-    instrux + 91,
-    instrux + 92,
-    instrux + 94,
-    instrux + 95,
-    instrux + 200,
-    instrux + 201,
-    instrux + 202,
-    instrux + 204,
-    instrux + 205,
-    instrux + 714,
-    instrux + 715,
-    instrux + 716,
-    instrux + 718,
-    instrux + 719,
-    instrux + 959,
-    instrux + 960,
-    instrux + 961,
-    instrux + 963,
-    instrux + 964,
-    instrux + 1068,
-    instrux + 1069,
-    instrux + 1070,
-    instrux + 1072,
-    instrux + 1073,
-    instrux + 1176,
-    instrux + 1177,
-    instrux + 1178,
-    instrux + 1180,
-    instrux + 1181,
-};
-
-static const struct itemplate * const itable_83[] = {
-    instrux + 23,
-    instrux + 24,
-    instrux + 25,
-    instrux + 52,
-    instrux + 53,
-    instrux + 54,
-    instrux + 82,
-    instrux + 83,
-    instrux + 84,
-    instrux + 192,
-    instrux + 193,
-    instrux + 194,
-    instrux + 706,
-    instrux + 707,
-    instrux + 708,
-    instrux + 951,
-    instrux + 952,
-    instrux + 953,
-    instrux + 1060,
-    instrux + 1061,
-    instrux + 1062,
-    instrux + 1168,
-    instrux + 1169,
-    instrux + 1170,
-};
-
-static const struct itemplate * const itable_84[] = {
-    instrux + 1081,
-    instrux + 1082,
-    instrux + 1089,
-};
-
-static const struct itemplate * const itable_85[] = {
-    instrux + 1083,
-    instrux + 1084,
-    instrux + 1085,
-    instrux + 1086,
-    instrux + 1087,
-    instrux + 1088,
-    instrux + 1090,
-    instrux + 1091,
-    instrux + 1092,
-};
-
-static const struct itemplate * const itable_86[] = {
-    instrux + 1134,
-    instrux + 1135,
-    instrux + 1142,
-    instrux + 1143,
-};
-
-static const struct itemplate * const itable_87[] = {
-    instrux + 1136,
-    instrux + 1137,
-    instrux + 1138,
-    instrux + 1139,
-    instrux + 1140,
-    instrux + 1141,
-    instrux + 1144,
-    instrux + 1145,
-    instrux + 1146,
-    instrux + 1147,
-    instrux + 1148,
-    instrux + 1149,
-};
-
-static const struct itemplate * const itable_88[] = {
-    instrux + 621,
-    instrux + 622,
-};
-
-static const struct itemplate * const itable_89[] = {
-    instrux + 623,
-    instrux + 624,
-    instrux + 625,
-    instrux + 626,
-    instrux + 627,
-    instrux + 628,
-};
-
-static const struct itemplate * const itable_8A[] = {
-    instrux + 629,
-    instrux + 630,
-};
-
-static const struct itemplate * const itable_8B[] = {
-    instrux + 631,
-    instrux + 632,
-    instrux + 633,
-    instrux + 634,
-    instrux + 635,
-    instrux + 636,
-};
-
-static const struct itemplate * const itable_8C[] = {
-    instrux + 597,
-    instrux + 598,
-    instrux + 599,
-    instrux + 600,
-};
-
-static const struct itemplate * const itable_8D[] = {
-    instrux + 533,
-    instrux + 534,
-    instrux + 535,
-};
-
-static const struct itemplate * const itable_8E[] = {
-    instrux + 601,
-    instrux + 602,
-    instrux + 603,
-    instrux + 604,
-};
-
-static const struct itemplate * const itable_8F[] = {
-    instrux + 784,
-    instrux + 785,
-    instrux + 786,
-};
-
-static const struct itemplate * const itable_90[] = {
-    instrux + 682,
-    instrux + 742,
-    instrux + 1127,
-    instrux + 1128,
-    instrux + 1129,
-    instrux + 1130,
-    instrux + 1131,
-    instrux + 1132,
-    instrux + 1133,
-};
-
-static const struct itemplate * const itable_91[] = {
-    instrux + 1127,
-    instrux + 1128,
-    instrux + 1129,
-    instrux + 1130,
-    instrux + 1131,
-    instrux + 1132,
-};
-
-static const struct itemplate * const itable_92[] = {
-    instrux + 1127,
-    instrux + 1128,
-    instrux + 1129,
-    instrux + 1130,
-    instrux + 1131,
-    instrux + 1132,
-};
-
-static const struct itemplate * const itable_93[] = {
-    instrux + 1127,
-    instrux + 1128,
-    instrux + 1129,
-    instrux + 1130,
-    instrux + 1131,
-    instrux + 1132,
-};
-
-static const struct itemplate * const itable_94[] = {
-    instrux + 1127,
-    instrux + 1128,
-    instrux + 1129,
-    instrux + 1130,
-    instrux + 1131,
-    instrux + 1132,
-};
-
-static const struct itemplate * const itable_95[] = {
-    instrux + 1127,
-    instrux + 1128,
-    instrux + 1129,
-    instrux + 1130,
-    instrux + 1131,
-    instrux + 1132,
-};
-
-static const struct itemplate * const itable_96[] = {
-    instrux + 1127,
-    instrux + 1128,
-    instrux + 1129,
-    instrux + 1130,
-    instrux + 1131,
-    instrux + 1132,
-};
-
-static const struct itemplate * const itable_97[] = {
-    instrux + 1127,
-    instrux + 1128,
-    instrux + 1129,
-    instrux + 1130,
-    instrux + 1131,
-    instrux + 1132,
-};
-
-static const struct itemplate * const itable_98[] = {
-    instrux + 168,
-    instrux + 170,
-    instrux + 225,
-};
-
-static const struct itemplate * const itable_99[] = {
-    instrux + 169,
-    instrux + 223,
-    instrux + 224,
-};
-
-static const struct itemplate * const itable_9A[] = {
-    instrux + 154,
-    instrux + 155,
-    instrux + 156,
-    instrux + 157,
-    instrux + 158,
-};
-
-static const struct itemplate * const itable_9C[] = {
-    instrux + 853,
-    instrux + 854,
-    instrux + 855,
-    instrux + 856,
-};
-
-static const struct itemplate * const itable_9D[] = {
-    instrux + 795,
-    instrux + 796,
-    instrux + 797,
-    instrux + 798,
-};
-
-static const struct itemplate * const itable_9E[] = {
-    instrux + 921,
-};
-
-static const struct itemplate * const itable_9F[] = {
-    instrux + 520,
-};
-
-static const struct itemplate * const itable_A0[] = {
-    instrux + 605,
-};
-
-static const struct itemplate * const itable_A1[] = {
-    instrux + 606,
-    instrux + 607,
-    instrux + 608,
-};
-
-static const struct itemplate * const itable_A2[] = {
-    instrux + 609,
-};
-
-static const struct itemplate * const itable_A3[] = {
-    instrux + 610,
-    instrux + 611,
-    instrux + 612,
-};
-
-static const struct itemplate * const itable_A4[] = {
-    instrux + 655,
-};
-
-static const struct itemplate * const itable_A5[] = {
-    instrux + 656,
-    instrux + 657,
-    instrux + 658,
-};
-
-static const struct itemplate * const itable_A6[] = {
-    instrux + 206,
-};
-
-static const struct itemplate * const itable_A7[] = {
-    instrux + 207,
-    instrux + 208,
-    instrux + 209,
-};
-
-static const struct itemplate * const itable_A8[] = {
-    instrux + 1093,
-};
-
-static const struct itemplate * const itable_A9[] = {
-    instrux + 1094,
-    instrux + 1095,
-    instrux + 1096,
-};
-
-static const struct itemplate * const itable_AA[] = {
-    instrux + 1035,
-};
-
-static const struct itemplate * const itable_AB[] = {
-    instrux + 1036,
-    instrux + 1037,
-    instrux + 1038,
-};
-
-static const struct itemplate * const itable_AC[] = {
-    instrux + 554,
-};
-
-static const struct itemplate * const itable_AD[] = {
-    instrux + 555,
-    instrux + 556,
-    instrux + 557,
-};
-
-static const struct itemplate * const itable_AE[] = {
-    instrux + 965,
-};
-
-static const struct itemplate * const itable_AF[] = {
-    instrux + 966,
-    instrux + 967,
-    instrux + 968,
-};
-
-static const struct itemplate * const itable_B0[] = {
-    instrux + 637,
-};
-
-static const struct itemplate * const itable_B1[] = {
-    instrux + 637,
-};
-
-static const struct itemplate * const itable_B2[] = {
-    instrux + 637,
-};
-
-static const struct itemplate * const itable_B3[] = {
-    instrux + 637,
-};
-
-static const struct itemplate * const itable_B4[] = {
-    instrux + 637,
-};
-
-static const struct itemplate * const itable_B5[] = {
-    instrux + 637,
-};
-
-static const struct itemplate * const itable_B6[] = {
-    instrux + 637,
-};
-
-static const struct itemplate * const itable_B7[] = {
-    instrux + 637,
-};
-
-static const struct itemplate * const itable_B8[] = {
-    instrux + 638,
-    instrux + 639,
-    instrux + 640,
-};
-
-static const struct itemplate * const itable_B9[] = {
-    instrux + 638,
-    instrux + 639,
-    instrux + 640,
-};
-
-static const struct itemplate * const itable_BA[] = {
-    instrux + 638,
-    instrux + 639,
-    instrux + 640,
-};
-
-static const struct itemplate * const itable_BB[] = {
-    instrux + 638,
-    instrux + 639,
-    instrux + 640,
-};
-
-static const struct itemplate * const itable_BC[] = {
-    instrux + 638,
-    instrux + 639,
-    instrux + 640,
-};
-
-static const struct itemplate * const itable_BD[] = {
-    instrux + 638,
-    instrux + 639,
-    instrux + 640,
-};
-
-static const struct itemplate * const itable_BE[] = {
-    instrux + 638,
-    instrux + 639,
-    instrux + 640,
-};
-
-static const struct itemplate * const itable_BF[] = {
-    instrux + 638,
-    instrux + 639,
-    instrux + 640,
-};
-
-static const struct itemplate * const itable_C0[] = {
-    instrux + 860,
-    instrux + 872,
-    instrux + 895,
-    instrux + 907,
-    instrux + 925,
-    instrux + 973,
-    instrux + 997,
-};
-
-static const struct itemplate * const itable_C1[] = {
-    instrux + 863,
-    instrux + 866,
-    instrux + 869,
-    instrux + 875,
-    instrux + 878,
-    instrux + 881,
-    instrux + 898,
-    instrux + 901,
-    instrux + 904,
-    instrux + 910,
-    instrux + 913,
-    instrux + 916,
-    instrux + 928,
-    instrux + 931,
-    instrux + 934,
-    instrux + 976,
-    instrux + 979,
-    instrux + 982,
-    instrux + 1000,
-    instrux + 1003,
-    instrux + 1006,
-};
-
-static const struct itemplate * const itable_C2[] = {
-    instrux + 888,
-    instrux + 892,
-};
-
-static const struct itemplate * const itable_C3[] = {
-    instrux + 887,
-    instrux + 891,
-};
-
-static const struct itemplate * const itable_C4[] = {
-    instrux + 537,
-    instrux + 538,
-};
-
-static const struct itemplate * const itable_C5[] = {
-    instrux + 531,
-    instrux + 532,
-};
-
-static const struct itemplate * const itable_C6[] = {
-    instrux + 641,
-    instrux + 646,
-    instrux + 3698,
-    instrux + 3699,
-};
-
-static const struct itemplate * const itable_C7[] = {
-    instrux + 642,
-    instrux + 643,
-    instrux + 644,
-    instrux + 645,
-    instrux + 647,
-    instrux + 648,
-    instrux + 3700,
-    instrux + 3701,
-    instrux + 3702,
-    instrux + 3703,
-};
-
-static const struct itemplate * const itable_C8[] = {
-    instrux + 240,
-};
-
-static const struct itemplate * const itable_C9[] = {
-    instrux + 536,
-};
-
-static const struct itemplate * const itable_CA[] = {
-    instrux + 890,
-};
-
-static const struct itemplate * const itable_CB[] = {
-    instrux + 889,
-};
-
-static const struct itemplate * const itable_CC[] = {
-    instrux + 479,
-};
-
-static const struct itemplate * const itable_CD[] = {
-    instrux + 477,
-};
-
-static const struct itemplate * const itable_CE[] = {
-    instrux + 480,
-};
-
-static const struct itemplate * const itable_CF[] = {
-    instrux + 489,
-    instrux + 490,
-    instrux + 491,
-    instrux + 492,
-};
-
-static const struct itemplate * const itable_D0[] = {
-    instrux + 858,
-    instrux + 870,
-    instrux + 893,
-    instrux + 905,
-    instrux + 923,
-    instrux + 971,
-    instrux + 995,
-};
-
-static const struct itemplate * const itable_D1[] = {
-    instrux + 861,
-    instrux + 864,
-    instrux + 867,
-    instrux + 873,
-    instrux + 876,
-    instrux + 879,
-    instrux + 896,
-    instrux + 899,
-    instrux + 902,
-    instrux + 908,
-    instrux + 911,
-    instrux + 914,
-    instrux + 926,
-    instrux + 929,
-    instrux + 932,
-    instrux + 974,
-    instrux + 977,
-    instrux + 980,
-    instrux + 998,
-    instrux + 1001,
-    instrux + 1004,
-};
-
-static const struct itemplate * const itable_D2[] = {
-    instrux + 859,
-    instrux + 871,
-    instrux + 894,
-    instrux + 906,
-    instrux + 924,
-    instrux + 972,
-    instrux + 996,
-};
-
-static const struct itemplate * const itable_D3[] = {
-    instrux + 862,
-    instrux + 865,
-    instrux + 868,
-    instrux + 874,
-    instrux + 877,
-    instrux + 880,
-    instrux + 897,
-    instrux + 900,
-    instrux + 903,
-    instrux + 909,
-    instrux + 912,
-    instrux + 915,
-    instrux + 927,
-    instrux + 930,
-    instrux + 933,
-    instrux + 975,
-    instrux + 978,
-    instrux + 981,
-    instrux + 999,
-    instrux + 1002,
-    instrux + 1005,
-};
-
-static const struct itemplate * const itable_D4[] = {
-    instrux + 4,
-    instrux + 5,
-};
-
-static const struct itemplate * const itable_D5[] = {
-    instrux + 2,
-    instrux + 3,
-};
-
-static const struct itemplate * const itable_D6[] = {
-    instrux + 922,
-};
-
-static const struct itemplate * const itable_D7[] = {
-    instrux + 1150,
-    instrux + 1151,
-};
-
-static const struct itemplate * const itable_D8[] = {
-    instrux + 245,
-    instrux + 248,
-    instrux + 250,
-    instrux + 275,
-    instrux + 277,
-    instrux + 278,
-    instrux + 283,
-    instrux + 285,
-    instrux + 286,
-    instrux + 291,
-    instrux + 294,
-    instrux + 296,
-    instrux + 299,
-    instrux + 303,
-    instrux + 304,
-    instrux + 355,
-    instrux + 359,
-    instrux + 360,
-    instrux + 396,
-    instrux + 400,
-    instrux + 401,
-    instrux + 404,
-    instrux + 408,
-    instrux + 409,
-};
-
-static const struct itemplate * const itable_D9[] = {
-    instrux + 243,
-    instrux + 244,
-    instrux + 257,
-    instrux + 288,
-    instrux + 289,
-    instrux + 328,
-    instrux + 342,
-    instrux + 345,
-    instrux + 346,
-    instrux + 347,
-    instrux + 348,
-    instrux + 349,
-    instrux + 350,
-    instrux + 351,
-    instrux + 352,
-    instrux + 353,
-    instrux + 354,
-    instrux + 367,
-    instrux + 369,
-    instrux + 370,
-    instrux + 373,
-    instrux + 374,
-    instrux + 375,
-    instrux + 376,
-    instrux + 377,
-    instrux + 380,
-    instrux + 382,
-    instrux + 383,
-    instrux + 384,
-    instrux + 385,
-    instrux + 388,
-    instrux + 389,
-    instrux + 390,
-    instrux + 412,
-    instrux + 422,
-    instrux + 423,
-    instrux + 424,
-    instrux + 425,
-    instrux + 426,
-    instrux + 427,
-    instrux + 428,
-};
-
-static const struct itemplate * const itable_DA[] = {
-    instrux + 259,
-    instrux + 260,
-    instrux + 261,
-    instrux + 262,
-    instrux + 263,
-    instrux + 264,
-    instrux + 273,
-    instrux + 274,
-    instrux + 313,
-    instrux + 315,
-    instrux + 317,
-    instrux + 319,
-    instrux + 321,
-    instrux + 326,
-    instrux + 338,
-    instrux + 340,
-    instrux + 421,
-};
-
-static const struct itemplate * const itable_DB[] = {
-    instrux + 258,
-    instrux + 265,
-    instrux + 266,
-    instrux + 267,
-    instrux + 268,
-    instrux + 269,
-    instrux + 270,
-    instrux + 271,
-    instrux + 272,
-    instrux + 279,
-    instrux + 280,
-    instrux + 290,
-    instrux + 308,
-    instrux + 323,
-    instrux + 329,
-    instrux + 330,
-    instrux + 332,
-    instrux + 336,
-    instrux + 344,
-    instrux + 363,
-    instrux + 364,
-    instrux + 365,
-    instrux + 366,
-    instrux + 381,
-    instrux + 392,
-    instrux + 415,
-    instrux + 416,
-};
-
-static const struct itemplate * const itable_DC[] = {
-    instrux + 246,
-    instrux + 247,
-    instrux + 249,
-    instrux + 276,
-    instrux + 284,
-    instrux + 292,
-    instrux + 293,
-    instrux + 295,
-    instrux + 300,
-    instrux + 301,
-    instrux + 302,
-    instrux + 356,
-    instrux + 357,
-    instrux + 358,
-    instrux + 397,
-    instrux + 398,
-    instrux + 399,
-    instrux + 405,
-    instrux + 406,
-    instrux + 407,
-};
-
-static const struct itemplate * const itable_DD[] = {
-    instrux + 309,
-    instrux + 310,
-    instrux + 337,
-    instrux + 343,
-    instrux + 368,
-    instrux + 371,
-    instrux + 378,
-    instrux + 379,
-    instrux + 386,
-    instrux + 387,
-    instrux + 391,
-    instrux + 393,
-    instrux + 394,
-    instrux + 413,
-    instrux + 414,
-    instrux + 419,
-    instrux + 420,
-};
-
-static const struct itemplate * const itable_DE[] = {
-    instrux + 251,
-    instrux + 252,
-    instrux + 287,
-    instrux + 297,
-    instrux + 298,
-    instrux + 305,
-    instrux + 306,
-    instrux + 314,
-    instrux + 316,
-    instrux + 318,
-    instrux + 320,
-    instrux + 322,
-    instrux + 327,
-    instrux + 339,
-    instrux + 341,
-    instrux + 361,
-    instrux + 362,
-    instrux + 402,
-    instrux + 403,
-    instrux + 410,
-    instrux + 411,
-};
-
-static const struct itemplate * const itable_DF[] = {
-    instrux + 253,
-    instrux + 254,
-    instrux + 255,
-    instrux + 256,
-    instrux + 281,
-    instrux + 282,
-    instrux + 311,
-    instrux + 312,
-    instrux + 324,
-    instrux + 325,
-    instrux + 331,
-    instrux + 333,
-    instrux + 334,
-    instrux + 335,
-    instrux + 372,
-    instrux + 395,
-    instrux + 417,
-    instrux + 418,
-};
-
-static const struct itemplate * const itable_E0[] = {
-    instrux + 566,
-    instrux + 567,
-    instrux + 568,
-    instrux + 569,
-    instrux + 570,
-    instrux + 571,
-    instrux + 572,
-    instrux + 573,
-};
-
-static const struct itemplate * const itable_E1[] = {
-    instrux + 562,
-    instrux + 563,
-    instrux + 564,
-    instrux + 565,
-    instrux + 574,
-    instrux + 575,
-    instrux + 576,
-    instrux + 577,
-};
-
-static const struct itemplate * const itable_E2[] = {
-    instrux + 558,
-    instrux + 559,
-    instrux + 560,
-    instrux + 561,
-};
-
-static const struct itemplate * const itable_E3[] = {
-    instrux + 493,
-    instrux + 494,
-    instrux + 495,
-};
-
-static const struct itemplate * const itable_E4[] = {
-    instrux + 462,
-};
-
-static const struct itemplate * const itable_E5[] = {
-    instrux + 463,
-    instrux + 464,
-};
-
-static const struct itemplate * const itable_E6[] = {
-    instrux + 720,
-};
-
-static const struct itemplate * const itable_E7[] = {
-    instrux + 721,
-    instrux + 722,
-};
-
-static const struct itemplate * const itable_E8[] = {
-    instrux + 150,
-    instrux + 151,
-    instrux + 152,
-    instrux + 153,
-};
-
-static const struct itemplate * const itable_E9[] = {
-    instrux + 497,
-    instrux + 498,
-    instrux + 499,
-    instrux + 500,
-};
-
-static const struct itemplate * const itable_EA[] = {
-    instrux + 501,
-    instrux + 502,
-    instrux + 503,
-    instrux + 504,
-    instrux + 505,
-};
-
-static const struct itemplate * const itable_EB[] = {
-    instrux + 496,
-};
-
-static const struct itemplate * const itable_EC[] = {
-    instrux + 465,
-};
-
-static const struct itemplate * const itable_ED[] = {
-    instrux + 466,
-    instrux + 467,
-};
-
-static const struct itemplate * const itable_EE[] = {
-    instrux + 723,
-};
-
-static const struct itemplate * const itable_EF[] = {
-    instrux + 724,
-    instrux + 725,
-};
-
-static const struct itemplate * const itable_F1[] = {
-    instrux + 478,
-    instrux + 1026,
-};
-
-static const struct itemplate * const itable_F4[] = {
-    instrux + 429,
-};
-
-static const struct itemplate * const itable_F5[] = {
-    instrux + 175,
-};
-
-static const struct itemplate * const itable_F6[] = {
-    instrux + 234,
-    instrux + 430,
-    instrux + 434,
-    instrux + 672,
-    instrux + 678,
-    instrux + 686,
-    instrux + 1097,
-    instrux + 1101,
-};
-
-static const struct itemplate * const itable_F7[] = {
-    instrux + 235,
-    instrux + 236,
-    instrux + 237,
-    instrux + 431,
-    instrux + 432,
-    instrux + 433,
-    instrux + 435,
-    instrux + 436,
-    instrux + 437,
-    instrux + 673,
-    instrux + 674,
-    instrux + 675,
-    instrux + 679,
-    instrux + 680,
-    instrux + 681,
-    instrux + 687,
-    instrux + 688,
-    instrux + 689,
-    instrux + 1098,
-    instrux + 1099,
-    instrux + 1100,
-    instrux + 1102,
-    instrux + 1103,
-};
-
-static const struct itemplate * const itable_F8[] = {
-    instrux + 171,
-};
-
-static const struct itemplate * const itable_F9[] = {
-    instrux + 1032,
-};
-
-static const struct itemplate * const itable_FA[] = {
-    instrux + 173,
-};
-
-static const struct itemplate * const itable_FB[] = {
-    instrux + 1034,
-};
-
-static const struct itemplate * const itable_FC[] = {
-    instrux + 172,
-};
-
-static const struct itemplate * const itable_FD[] = {
-    instrux + 1033,
-};
-
-static const struct itemplate * const itable_FE[] = {
-    instrux + 230,
-    instrux + 470,
-};
-
-static const struct itemplate * const itable_FF[] = {
-    instrux + 159,
-    instrux + 160,
-    instrux + 161,
-    instrux + 162,
-    instrux + 163,
-    instrux + 164,
-    instrux + 165,
-    instrux + 166,
-    instrux + 167,
-    instrux + 231,
-    instrux + 232,
-    instrux + 233,
-    instrux + 471,
-    instrux + 472,
-    instrux + 473,
-    instrux + 506,
-    instrux + 507,
-    instrux + 508,
-    instrux + 509,
-    instrux + 510,
-    instrux + 511,
-    instrux + 512,
-    instrux + 513,
-    instrux + 514,
-    instrux + 835,
-    instrux + 836,
-    instrux + 837,
-};
-
-static const struct itemplate * const itable_evex01010[] = {
-    instrux + 4518,
-    instrux + 4519,
-    instrux + 4520,
-};
-
-static const struct itemplate * const itable_evex01011[] = {
-    instrux + 4521,
-    instrux + 4522,
-    instrux + 4523,
-    instrux + 4524,
-    instrux + 4525,
-    instrux + 4526,
-};
-
-static const struct itemplate * const itable_evex01012[] = {
-    instrux + 4459,
-    instrux + 4460,
-    instrux + 4472,
-    instrux + 4473,
-};
-
-static const struct itemplate * const itable_evex01013[] = {
-    instrux + 4474,
-};
-
-static const struct itemplate * const itable_evex01014[] = {
-    instrux + 5871,
-    instrux + 5872,
-    instrux + 5873,
-    instrux + 5874,
-    instrux + 5875,
-    instrux + 5876,
-};
-
-static const struct itemplate * const itable_evex01015[] = {
-    instrux + 5859,
-    instrux + 5860,
-    instrux + 5861,
-    instrux + 5862,
-    instrux + 5863,
-    instrux + 5864,
-};
-
-static const struct itemplate * const itable_evex01016[] = {
-    instrux + 4464,
-    instrux + 4465,
-    instrux + 4467,
-    instrux + 4468,
-};
-
-static const struct itemplate * const itable_evex01017[] = {
-    instrux + 4466,
-};
-
-static const struct itemplate * const itable_evex01028[] = {
-    instrux + 4391,
-    instrux + 4392,
-    instrux + 4393,
-};
-
-static const struct itemplate * const itable_evex01029[] = {
-    instrux + 4394,
-    instrux + 4395,
-    instrux + 4396,
-    instrux + 4397,
-    instrux + 4398,
-    instrux + 4399,
-};
-
-static const struct itemplate * const itable_evex0102B[] = {
-    instrux + 4484,
-    instrux + 4485,
-    instrux + 4486,
-};
-
-static const struct itemplate * const itable_evex0102E[] = {
-    instrux + 5852,
-};
-
-static const struct itemplate * const itable_evex0102F[] = {
-    instrux + 3943,
-};
-
-static const struct itemplate * const itable_evex01051[] = {
-    instrux + 5828,
-    instrux + 5829,
-    instrux + 5830,
-};
-
-static const struct itemplate * const itable_evex01054[] = {
-    instrux + 3895,
-    instrux + 3896,
-    instrux + 3897,
-    instrux + 3898,
-    instrux + 3899,
-    instrux + 3900,
-};
-
-static const struct itemplate * const itable_evex01055[] = {
-    instrux + 3883,
-    instrux + 3884,
-    instrux + 3885,
-    instrux + 3886,
-    instrux + 3887,
-    instrux + 3888,
-};
-
-static const struct itemplate * const itable_evex01056[] = {
-    instrux + 4549,
-    instrux + 4550,
-    instrux + 4551,
-    instrux + 4552,
-    instrux + 4553,
-    instrux + 4554,
-};
-
-static const struct itemplate * const itable_evex01057[] = {
-    instrux + 5883,
-    instrux + 5884,
-    instrux + 5885,
-    instrux + 5886,
-    instrux + 5887,
-    instrux + 5888,
-};
-
-static const struct itemplate * const itable_evex01058[] = {
-    instrux + 3855,
-    instrux + 3856,
-    instrux + 3857,
-    instrux + 3858,
-    instrux + 3859,
-    instrux + 3860,
-};
-
-static const struct itemplate * const itable_evex01059[] = {
-    instrux + 4533,
-    instrux + 4534,
-    instrux + 4535,
-    instrux + 4536,
-    instrux + 4537,
-    instrux + 4538,
-};
-
-static const struct itemplate * const itable_evex0105A[] = {
-    instrux + 3983,
-    instrux + 3984,
-    instrux + 3985,
-};
-
-static const struct itemplate * const itable_evex0105B[] = {
-    instrux + 3959,
-    instrux + 3960,
-    instrux + 3961,
-    instrux + 4004,
-    instrux + 4005,
-    instrux + 4006,
-};
-
-static const struct itemplate * const itable_evex0105C[] = {
-    instrux + 5841,
-    instrux + 5842,
-    instrux + 5843,
-    instrux + 5844,
-    instrux + 5845,
-    instrux + 5846,
-};
-
-static const struct itemplate * const itable_evex0105D[] = {
-    instrux + 4372,
-    instrux + 4373,
-    instrux + 4374,
-    instrux + 4375,
-    instrux + 4376,
-    instrux + 4377,
-};
-
-static const struct itemplate * const itable_evex0105E[] = {
-    instrux + 4081,
-    instrux + 4082,
-    instrux + 4083,
-    instrux + 4084,
-    instrux + 4085,
-    instrux + 4086,
-};
-
-static const struct itemplate * const itable_evex0105F[] = {
-    instrux + 4356,
-    instrux + 4357,
-    instrux + 4358,
-    instrux + 4359,
-    instrux + 4360,
-    instrux + 4361,
-};
-
-static const struct itemplate * const itable_evex01078[] = {
-    instrux + 4027,
-    instrux + 4028,
-    instrux + 4029,
-    instrux + 4039,
-    instrux + 4040,
-    instrux + 4041,
-};
-
-static const struct itemplate * const itable_evex01079[] = {
-    instrux + 3971,
-    instrux + 3972,
-    instrux + 3973,
-    instrux + 3995,
-    instrux + 3996,
-    instrux + 3997,
-};
-
-static const struct itemplate * const itable_evex010C2[] = {
-    instrux + 3937,
-    instrux + 3938,
-    instrux + 3939,
-};
-
-static const struct itemplate * const itable_evex010C6[] = {
-    instrux + 5819,
-    instrux + 5820,
-    instrux + 5821,
-    instrux + 5822,
-    instrux + 5823,
-    instrux + 5824,
-};
-
-static const struct itemplate * const itable_evex01110[] = {
-    instrux + 4509,
-    instrux + 4510,
-    instrux + 4511,
-};
-
-static const struct itemplate * const itable_evex01111[] = {
-    instrux + 4512,
-    instrux + 4513,
-    instrux + 4514,
-    instrux + 4515,
-    instrux + 4516,
-    instrux + 4517,
-};
-
-static const struct itemplate * const itable_evex01112[] = {
-    instrux + 4469,
-    instrux + 4470,
-};
-
-static const struct itemplate * const itable_evex01113[] = {
-    instrux + 4471,
-};
-
-static const struct itemplate * const itable_evex01114[] = {
-    instrux + 5865,
-    instrux + 5866,
-    instrux + 5867,
-    instrux + 5868,
-    instrux + 5869,
-    instrux + 5870,
-};
-
-static const struct itemplate * const itable_evex01115[] = {
-    instrux + 5853,
-    instrux + 5854,
-    instrux + 5855,
-    instrux + 5856,
-    instrux + 5857,
-    instrux + 5858,
-};
-
-static const struct itemplate * const itable_evex01116[] = {
-    instrux + 4461,
-    instrux + 4462,
-};
-
-static const struct itemplate * const itable_evex01117[] = {
-    instrux + 4463,
-};
-
-static const struct itemplate * const itable_evex01128[] = {
-    instrux + 4382,
-    instrux + 4383,
-    instrux + 4384,
-};
-
-static const struct itemplate * const itable_evex01129[] = {
-    instrux + 4385,
-    instrux + 4386,
-    instrux + 4387,
-    instrux + 4388,
-    instrux + 4389,
-    instrux + 4390,
-};
-
-static const struct itemplate * const itable_evex0112B[] = {
-    instrux + 4481,
-    instrux + 4482,
-    instrux + 4483,
-};
-
-static const struct itemplate * const itable_evex0112E[] = {
-    instrux + 5851,
-};
-
-static const struct itemplate * const itable_evex0112F[] = {
-    instrux + 3942,
-};
-
-static const struct itemplate * const itable_evex01151[] = {
-    instrux + 5825,
-    instrux + 5826,
-    instrux + 5827,
-};
-
-static const struct itemplate * const itable_evex01154[] = {
-    instrux + 3889,
-    instrux + 3890,
-    instrux + 3891,
-    instrux + 3892,
-    instrux + 3893,
-    instrux + 3894,
-};
-
-static const struct itemplate * const itable_evex01155[] = {
-    instrux + 3877,
-    instrux + 3878,
-    instrux + 3879,
-    instrux + 3880,
-    instrux + 3881,
-    instrux + 3882,
-};
-
-static const struct itemplate * const itable_evex01156[] = {
-    instrux + 4543,
-    instrux + 4544,
-    instrux + 4545,
-    instrux + 4546,
-    instrux + 4547,
-    instrux + 4548,
-};
-
-static const struct itemplate * const itable_evex01157[] = {
-    instrux + 5877,
-    instrux + 5878,
-    instrux + 5879,
-    instrux + 5880,
-    instrux + 5881,
-    instrux + 5882,
-};
-
-static const struct itemplate * const itable_evex01158[] = {
-    instrux + 3849,
-    instrux + 3850,
-    instrux + 3851,
-    instrux + 3852,
-    instrux + 3853,
-    instrux + 3854,
-};
-
-static const struct itemplate * const itable_evex01159[] = {
-    instrux + 4527,
-    instrux + 4528,
-    instrux + 4529,
-    instrux + 4530,
-    instrux + 4531,
-    instrux + 4532,
-};
-
-static const struct itemplate * const itable_evex0115A[] = {
-    instrux + 3965,
-    instrux + 3966,
-    instrux + 3967,
-};
-
-static const struct itemplate * const itable_evex0115B[] = {
-    instrux + 3980,
-    instrux + 3981,
-    instrux + 3982,
-};
-
-static const struct itemplate * const itable_evex0115C[] = {
-    instrux + 5835,
-    instrux + 5836,
-    instrux + 5837,
-    instrux + 5838,
-    instrux + 5839,
-    instrux + 5840,
-};
-
-static const struct itemplate * const itable_evex0115D[] = {
-    instrux + 4366,
-    instrux + 4367,
-    instrux + 4368,
-    instrux + 4369,
-    instrux + 4370,
-    instrux + 4371,
-};
-
-static const struct itemplate * const itable_evex0115E[] = {
-    instrux + 4075,
-    instrux + 4076,
-    instrux + 4077,
-    instrux + 4078,
-    instrux + 4079,
-    instrux + 4080,
-};
-
-static const struct itemplate * const itable_evex0115F[] = {
-    instrux + 4350,
-    instrux + 4351,
-    instrux + 4352,
-    instrux + 4353,
-    instrux + 4354,
-    instrux + 4355,
-};
-
-static const struct itemplate * const itable_evex01160[] = {
-    instrux + 5657,
-    instrux + 5658,
-    instrux + 5659,
-    instrux + 5660,
-    instrux + 5661,
-    instrux + 5662,
-};
-
-static const struct itemplate * const itable_evex01161[] = {
-    instrux + 5675,
-    instrux + 5676,
-    instrux + 5677,
-    instrux + 5678,
-    instrux + 5679,
-    instrux + 5680,
-};
-
-static const struct itemplate * const itable_evex01162[] = {
-    instrux + 5663,
-    instrux + 5664,
-    instrux + 5665,
-    instrux + 5666,
-    instrux + 5667,
-    instrux + 5668,
-};
-
-static const struct itemplate * const itable_evex01163[] = {
-    instrux + 4573,
-    instrux + 4574,
-    instrux + 4575,
-    instrux + 4576,
-    instrux + 4577,
-    instrux + 4578,
-};
-
-static const struct itemplate * const itable_evex01164[] = {
-    instrux + 4762,
-    instrux + 4763,
-    instrux + 4764,
-};
-
-static const struct itemplate * const itable_evex01165[] = {
-    instrux + 4771,
-    instrux + 4772,
-    instrux + 4773,
-};
-
-static const struct itemplate * const itable_evex01166[] = {
-    instrux + 4765,
-    instrux + 4766,
-    instrux + 4767,
-};
-
-static const struct itemplate * const itable_evex01167[] = {
-    instrux + 4585,
-    instrux + 4586,
-    instrux + 4587,
-    instrux + 4588,
-    instrux + 4589,
-    instrux + 4590,
-};
-
-static const struct itemplate * const itable_evex01168[] = {
-    instrux + 5633,
-    instrux + 5634,
-    instrux + 5635,
-    instrux + 5636,
-    instrux + 5637,
-    instrux + 5638,
-};
-
-static const struct itemplate * const itable_evex01169[] = {
-    instrux + 5651,
-    instrux + 5652,
-    instrux + 5653,
-    instrux + 5654,
-    instrux + 5655,
-    instrux + 5656,
-};
-
-static const struct itemplate * const itable_evex0116A[] = {
-    instrux + 5639,
-    instrux + 5640,
-    instrux + 5641,
-    instrux + 5642,
-    instrux + 5643,
-    instrux + 5644,
-};
-
-static const struct itemplate * const itable_evex0116B[] = {
-    instrux + 4567,
-    instrux + 4568,
-    instrux + 4569,
-    instrux + 4570,
-    instrux + 4571,
-    instrux + 4572,
-};
-
-static const struct itemplate * const itable_evex0116C[] = {
-    instrux + 5669,
-    instrux + 5670,
-    instrux + 5671,
-    instrux + 5672,
-    instrux + 5673,
-    instrux + 5674,
-};
-
-static const struct itemplate * const itable_evex0116D[] = {
-    instrux + 5645,
-    instrux + 5646,
-    instrux + 5647,
-    instrux + 5648,
-    instrux + 5649,
-    instrux + 5650,
-};
-
-static const struct itemplate * const itable_evex0116E[] = {
-    instrux + 4400,
-    instrux + 4487,
-};
-
-static const struct itemplate * const itable_evex0116F[] = {
-    instrux + 4405,
-    instrux + 4406,
-    instrux + 4407,
-    instrux + 4414,
-    instrux + 4415,
-    instrux + 4416,
-};
-
-static const struct itemplate * const itable_evex01170[] = {
-    instrux + 5372,
-    instrux + 5373,
-    instrux + 5374,
-};
-
-static const struct itemplate * const itable_evex01171[] = {
-    instrux + 5435,
-    instrux + 5436,
-    instrux + 5437,
-    instrux + 5438,
-    instrux + 5439,
-    instrux + 5440,
-    instrux + 5489,
-    instrux + 5490,
-    instrux + 5491,
-    instrux + 5492,
-    instrux + 5493,
-    instrux + 5494,
-    instrux + 5549,
-    instrux + 5550,
-    instrux + 5551,
-    instrux + 5552,
-    instrux + 5553,
-    instrux + 5554,
-};
-
-static const struct itemplate * const itable_evex01172[] = {
-    instrux + 5300,
-    instrux + 5301,
-    instrux + 5302,
-    instrux + 5303,
-    instrux + 5304,
-    instrux + 5305,
-    instrux + 5306,
-    instrux + 5307,
-    instrux + 5308,
-    instrux + 5309,
-    instrux + 5310,
-    instrux + 5311,
-    instrux + 5324,
-    instrux + 5325,
-    instrux + 5326,
-    instrux + 5327,
-    instrux + 5328,
-    instrux + 5329,
-    instrux + 5330,
-    instrux + 5331,
-    instrux + 5332,
-    instrux + 5333,
-    instrux + 5334,
-    instrux + 5335,
-    instrux + 5387,
-    instrux + 5388,
-    instrux + 5389,
-    instrux + 5390,
-    instrux + 5391,
-    instrux + 5392,
-    instrux + 5447,
-    instrux + 5448,
-    instrux + 5449,
-    instrux + 5450,
-    instrux + 5451,
-    instrux + 5452,
-    instrux + 5459,
-    instrux + 5460,
-    instrux + 5461,
-    instrux + 5462,
-    instrux + 5463,
-    instrux + 5464,
-    instrux + 5501,
-    instrux + 5502,
-    instrux + 5503,
-    instrux + 5504,
-    instrux + 5505,
-    instrux + 5506,
-};
-
-static const struct itemplate * const itable_evex01173[] = {
-    instrux + 5393,
-    instrux + 5394,
-    instrux + 5395,
-    instrux + 5396,
-    instrux + 5397,
-    instrux + 5398,
-    instrux + 5405,
-    instrux + 5406,
-    instrux + 5407,
-    instrux + 5408,
-    instrux + 5409,
-    instrux + 5410,
-    instrux + 5507,
-    instrux + 5508,
-    instrux + 5509,
-    instrux + 5510,
-    instrux + 5511,
-    instrux + 5512,
-    instrux + 5519,
-    instrux + 5520,
-    instrux + 5521,
-    instrux + 5522,
-    instrux + 5523,
-    instrux + 5524,
-};
-
-static const struct itemplate * const itable_evex01174[] = {
-    instrux + 4750,
-    instrux + 4751,
-    instrux + 4752,
-};
-
-static const struct itemplate * const itable_evex01175[] = {
-    instrux + 4759,
-    instrux + 4760,
-    instrux + 4761,
-};
-
-static const struct itemplate * const itable_evex01176[] = {
-    instrux + 4753,
-    instrux + 4754,
-    instrux + 4755,
-};
-
-static const struct itemplate * const itable_evex01178[] = {
-    instrux + 4030,
-    instrux + 4031,
-    instrux + 4032,
-    instrux + 4042,
-    instrux + 4043,
-    instrux + 4044,
-};
-
-static const struct itemplate * const itable_evex01179[] = {
-    instrux + 3974,
-    instrux + 3975,
-    instrux + 3976,
-    instrux + 3998,
-    instrux + 3999,
-    instrux + 4000,
-};
-
-static const struct itemplate * const itable_evex0117A[] = {
-    instrux + 4024,
-    instrux + 4025,
-    instrux + 4026,
-    instrux + 4036,
-    instrux + 4037,
-    instrux + 4038,
-};
-
-static const struct itemplate * const itable_evex0117B[] = {
-    instrux + 3968,
-    instrux + 3969,
-    instrux + 3970,
-    instrux + 3992,
-    instrux + 3993,
-    instrux + 3994,
-};
-
-static const struct itemplate * const itable_evex0117E[] = {
-    instrux + 4401,
-    instrux + 4488,
-};
-
-static const struct itemplate * const itable_evex0117F[] = {
-    instrux + 4408,
-    instrux + 4409,
-    instrux + 4410,
-    instrux + 4411,
-    instrux + 4412,
-    instrux + 4413,
-    instrux + 4417,
-    instrux + 4418,
-    instrux + 4419,
-    instrux + 4420,
-    instrux + 4421,
-    instrux + 4422,
-};
-
-static const struct itemplate * const itable_evex011C2[] = {
-    instrux + 3934,
-    instrux + 3935,
-    instrux + 3936,
-};
-
-static const struct itemplate * const itable_evex011C4[] = {
-    instrux + 4942,
-    instrux + 4943,
-    instrux + 4944,
-    instrux + 4945,
-};
-
-static const struct itemplate * const itable_evex011C5[] = {
-    instrux + 4919,
-    instrux + 4920,
-    instrux + 4921,
-};
-
-static const struct itemplate * const itable_evex011C6[] = {
-    instrux + 5813,
-    instrux + 5814,
-    instrux + 5815,
-    instrux + 5816,
-    instrux + 5817,
-    instrux + 5818,
-};
-
-static const struct itemplate * const itable_evex011D1[] = {
-    instrux + 5543,
-    instrux + 5544,
-    instrux + 5545,
-    instrux + 5546,
-    instrux + 5547,
-    instrux + 5548,
-};
-
-static const struct itemplate * const itable_evex011D2[] = {
-    instrux + 5495,
-    instrux + 5496,
-    instrux + 5497,
-    instrux + 5498,
-    instrux + 5499,
-    instrux + 5500,
-};
-
-static const struct itemplate * const itable_evex011D3[] = {
-    instrux + 5513,
-    instrux + 5514,
-    instrux + 5515,
-    instrux + 5516,
-    instrux + 5517,
-    instrux + 5518,
-};
-
-static const struct itemplate * const itable_evex011D4[] = {
-    instrux + 4603,
-    instrux + 4604,
-    instrux + 4605,
-    instrux + 4606,
-    instrux + 4607,
-    instrux + 4608,
-};
-
-static const struct itemplate * const itable_evex011D5[] = {
-    instrux + 5270,
-    instrux + 5271,
-    instrux + 5272,
-    instrux + 5273,
-    instrux + 5274,
-    instrux + 5275,
-};
-
-static const struct itemplate * const itable_evex011D6[] = {
-    instrux + 4490,
-};
-
-static const struct itemplate * const itable_evex011D8[] = {
-    instrux + 5585,
-    instrux + 5586,
-    instrux + 5587,
-    instrux + 5588,
-    instrux + 5589,
-    instrux + 5590,
-};
-
-static const struct itemplate * const itable_evex011D9[] = {
-    instrux + 5591,
-    instrux + 5592,
-    instrux + 5593,
-    instrux + 5594,
-    instrux + 5595,
-    instrux + 5596,
-};
-
-static const struct itemplate * const itable_evex011DA[] = {
-    instrux + 5042,
-    instrux + 5043,
-    instrux + 5044,
-    instrux + 5045,
-    instrux + 5046,
-    instrux + 5047,
-};
-
-static const struct itemplate * const itable_evex011DB[] = {
-    instrux + 4645,
-    instrux + 4646,
-    instrux + 4647,
-    instrux + 4648,
-    instrux + 4649,
-    instrux + 4650,
-    instrux + 4663,
-    instrux + 4664,
-    instrux + 4665,
-    instrux + 4666,
-    instrux + 4667,
-    instrux + 4668,
-};
-
-static const struct itemplate * const itable_evex011DC[] = {
-    instrux + 4621,
-    instrux + 4622,
-    instrux + 4623,
-    instrux + 4624,
-    instrux + 4625,
-    instrux + 4626,
-};
-
-static const struct itemplate * const itable_evex011DD[] = {
-    instrux + 4627,
-    instrux + 4628,
-    instrux + 4629,
-    instrux + 4630,
-    instrux + 4631,
-    instrux + 4632,
-};
-
-static const struct itemplate * const itable_evex011DE[] = {
-    instrux + 4994,
-    instrux + 4995,
-    instrux + 4996,
-    instrux + 4997,
-    instrux + 4998,
-    instrux + 4999,
-};
-
-static const struct itemplate * const itable_evex011DF[] = {
-    instrux + 4651,
-    instrux + 4652,
-    instrux + 4653,
-    instrux + 4654,
-    instrux + 4655,
-    instrux + 4656,
-    instrux + 4657,
-    instrux + 4658,
-    instrux + 4659,
-    instrux + 4660,
-    instrux + 4661,
-    instrux + 4662,
-};
-
-static const struct itemplate * const itable_evex011E0[] = {
-    instrux + 4669,
-    instrux + 4670,
-    instrux + 4671,
-    instrux + 4672,
-    instrux + 4673,
-    instrux + 4674,
-};
-
-static const struct itemplate * const itable_evex011E1[] = {
-    instrux + 5483,
-    instrux + 5484,
-    instrux + 5485,
-    instrux + 5486,
-    instrux + 5487,
-    instrux + 5488,
-};
-
-static const struct itemplate * const itable_evex011E2[] = {
-    instrux + 5441,
-    instrux + 5442,
-    instrux + 5443,
-    instrux + 5444,
-    instrux + 5445,
-    instrux + 5446,
-    instrux + 5453,
-    instrux + 5454,
-    instrux + 5455,
-    instrux + 5456,
-    instrux + 5457,
-    instrux + 5458,
-};
-
-static const struct itemplate * const itable_evex011E3[] = {
-    instrux + 4675,
-    instrux + 4676,
-    instrux + 4677,
-    instrux + 4678,
-    instrux + 4679,
-    instrux + 4680,
-};
-
-static const struct itemplate * const itable_evex011E4[] = {
-    instrux + 5246,
-    instrux + 5247,
-    instrux + 5248,
-    instrux + 5249,
-    instrux + 5250,
-    instrux + 5251,
-};
-
-static const struct itemplate * const itable_evex011E5[] = {
-    instrux + 5252,
-    instrux + 5253,
-    instrux + 5254,
-    instrux + 5255,
-    instrux + 5256,
-    instrux + 5257,
-};
-
-static const struct itemplate * const itable_evex011E6[] = {
-    instrux + 4021,
-    instrux + 4022,
-    instrux + 4023,
-};
-
-static const struct itemplate * const itable_evex011E7[] = {
-    instrux + 4475,
-    instrux + 4476,
-    instrux + 4477,
-};
-
-static const struct itemplate * const itable_evex011E8[] = {
-    instrux + 5573,
-    instrux + 5574,
-    instrux + 5575,
-    instrux + 5576,
-    instrux + 5577,
-    instrux + 5578,
-};
-
-static const struct itemplate * const itable_evex011E9[] = {
-    instrux + 5579,
-    instrux + 5580,
-    instrux + 5581,
-    instrux + 5582,
-    instrux + 5583,
-    instrux + 5584,
-};
-
-static const struct itemplate * const itable_evex011EA[] = {
-    instrux + 5036,
-    instrux + 5037,
-    instrux + 5038,
-    instrux + 5039,
-    instrux + 5040,
-    instrux + 5041,
-};
-
-static const struct itemplate * const itable_evex011EB[] = {
-    instrux + 5288,
-    instrux + 5289,
-    instrux + 5290,
-    instrux + 5291,
-    instrux + 5292,
-    instrux + 5293,
-    instrux + 5294,
-    instrux + 5295,
-    instrux + 5296,
-    instrux + 5297,
-    instrux + 5298,
-    instrux + 5299,
-};
-
-static const struct itemplate * const itable_evex011EC[] = {
-    instrux + 4609,
-    instrux + 4610,
-    instrux + 4611,
-    instrux + 4612,
-    instrux + 4613,
-    instrux + 4614,
-};
-
-static const struct itemplate * const itable_evex011ED[] = {
-    instrux + 4615,
-    instrux + 4616,
-    instrux + 4617,
-    instrux + 4618,
-    instrux + 4619,
-    instrux + 4620,
-};
-
-static const struct itemplate * const itable_evex011EE[] = {
-    instrux + 4988,
-    instrux + 4989,
-    instrux + 4990,
-    instrux + 4991,
-    instrux + 4992,
-    instrux + 4993,
-};
-
-static const struct itemplate * const itable_evex011EF[] = {
-    instrux + 5681,
-    instrux + 5682,
-    instrux + 5683,
-    instrux + 5684,
-    instrux + 5685,
-    instrux + 5686,
-    instrux + 5687,
-    instrux + 5688,
-    instrux + 5689,
-    instrux + 5690,
-    instrux + 5691,
-    instrux + 5692,
-};
-
-static const struct itemplate * const itable_evex011F1[] = {
-    instrux + 5429,
-    instrux + 5430,
-    instrux + 5431,
-    instrux + 5432,
-    instrux + 5433,
-    instrux + 5434,
-};
-
-static const struct itemplate * const itable_evex011F2[] = {
-    instrux + 5381,
-    instrux + 5382,
-    instrux + 5383,
-    instrux + 5384,
-    instrux + 5385,
-    instrux + 5386,
-};
-
-static const struct itemplate * const itable_evex011F3[] = {
-    instrux + 5399,
-    instrux + 5400,
-    instrux + 5401,
-    instrux + 5402,
-    instrux + 5403,
-    instrux + 5404,
-};
-
-static const struct itemplate * const itable_evex011F4[] = {
-    instrux + 5282,
-    instrux + 5283,
-    instrux + 5284,
-    instrux + 5285,
-    instrux + 5286,
-    instrux + 5287,
-};
-
-static const struct itemplate * const itable_evex011F5[] = {
-    instrux + 4964,
-    instrux + 4965,
-    instrux + 4966,
-    instrux + 4967,
-    instrux + 4968,
-    instrux + 4969,
-};
-
-static const struct itemplate * const itable_evex011F6[] = {
-    instrux + 5348,
-    instrux + 5349,
-    instrux + 5350,
-    instrux + 5351,
-    instrux + 5352,
-    instrux + 5353,
-};
-
-static const struct itemplate * const itable_evex011F8[] = {
-    instrux + 5555,
-    instrux + 5556,
-    instrux + 5557,
-    instrux + 5558,
-    instrux + 5559,
-    instrux + 5560,
-};
-
-static const struct itemplate * const itable_evex011F9[] = {
-    instrux + 5597,
-    instrux + 5598,
-    instrux + 5599,
-    instrux + 5600,
-    instrux + 5601,
-    instrux + 5602,
-};
-
-static const struct itemplate * const itable_evex011FA[] = {
-    instrux + 5561,
-    instrux + 5562,
-    instrux + 5563,
-    instrux + 5564,
-    instrux + 5565,
-    instrux + 5566,
-};
-
-static const struct itemplate * const itable_evex011FB[] = {
-    instrux + 5567,
-    instrux + 5568,
-    instrux + 5569,
-    instrux + 5570,
-    instrux + 5571,
-    instrux + 5572,
-};
-
-static const struct itemplate * const itable_evex011FC[] = {
-    instrux + 4591,
-    instrux + 4592,
-    instrux + 4593,
-    instrux + 4594,
-    instrux + 4595,
-    instrux + 4596,
-};
-
-static const struct itemplate * const itable_evex011FD[] = {
-    instrux + 4633,
-    instrux + 4634,
-    instrux + 4635,
-    instrux + 4636,
-    instrux + 4637,
-    instrux + 4638,
-};
-
-static const struct itemplate * const itable_evex011FE[] = {
-    instrux + 4597,
-    instrux + 4598,
-    instrux + 4599,
-    instrux + 4600,
-    instrux + 4601,
-    instrux + 4602,
-};
-
-static const struct itemplate * const itable_evex01210[] = {
-    instrux + 4503,
-    instrux + 4505,
-    instrux + 4506,
-};
-
-static const struct itemplate * const itable_evex01211[] = {
-    instrux + 4504,
-    instrux + 4507,
-    instrux + 4508,
-};
-
-static const struct itemplate * const itable_evex01212[] = {
-    instrux + 4500,
-    instrux + 4501,
-    instrux + 4502,
-};
-
-static const struct itemplate * const itable_evex01216[] = {
-    instrux + 4497,
-    instrux + 4498,
-    instrux + 4499,
-};
-
-static const struct itemplate * const itable_evex0122A[] = {
-    instrux + 4014,
-    instrux + 4015,
-};
-
-static const struct itemplate * const itable_evex0122C[] = {
-    instrux + 4049,
-    instrux + 4050,
-};
-
-static const struct itemplate * const itable_evex0122D[] = {
-    instrux + 4017,
-    instrux + 4018,
-};
-
-static const struct itemplate * const itable_evex01251[] = {
-    instrux + 5833,
-    instrux + 5834,
-};
-
-static const struct itemplate * const itable_evex01258[] = {
-    instrux + 3863,
-    instrux + 3864,
-};
-
-static const struct itemplate * const itable_evex01259[] = {
-    instrux + 4541,
-    instrux + 4542,
-};
-
-static const struct itemplate * const itable_evex0125A[] = {
-    instrux + 4016,
-};
-
-static const struct itemplate * const itable_evex0125B[] = {
-    instrux + 4033,
-    instrux + 4034,
-    instrux + 4035,
-};
-
-static const struct itemplate * const itable_evex0125C[] = {
-    instrux + 5849,
-    instrux + 5850,
-};
-
-static const struct itemplate * const itable_evex0125D[] = {
-    instrux + 4380,
-    instrux + 4381,
-};
-
-static const struct itemplate * const itable_evex0125E[] = {
-    instrux + 4089,
-    instrux + 4090,
-};
-
-static const struct itemplate * const itable_evex0125F[] = {
-    instrux + 4364,
-    instrux + 4365,
-};
-
-static const struct itemplate * const itable_evex0126F[] = {
-    instrux + 4432,
-    instrux + 4433,
-    instrux + 4434,
-    instrux + 4441,
-    instrux + 4442,
-    instrux + 4443,
-};
-
-static const struct itemplate * const itable_evex01270[] = {
-    instrux + 5375,
-    instrux + 5376,
-    instrux + 5377,
-};
-
-static const struct itemplate * const itable_evex01278[] = {
-    instrux + 4051,
-    instrux + 4052,
-};
-
-static const struct itemplate * const itable_evex01279[] = {
-    instrux + 4019,
-    instrux + 4020,
-};
-
-static const struct itemplate * const itable_evex0127A[] = {
-    instrux + 4053,
-    instrux + 4054,
-    instrux + 4055,
-    instrux + 4059,
-    instrux + 4060,
-    instrux + 4061,
-};
-
-static const struct itemplate * const itable_evex0127B[] = {
-    instrux + 4067,
-    instrux + 4068,
-};
-
-static const struct itemplate * const itable_evex0127E[] = {
-    instrux + 4489,
-};
-
-static const struct itemplate * const itable_evex0127F[] = {
-    instrux + 4435,
-    instrux + 4436,
-    instrux + 4437,
-    instrux + 4438,
-    instrux + 4439,
-    instrux + 4440,
-    instrux + 4444,
-    instrux + 4445,
-    instrux + 4446,
-    instrux + 4447,
-    instrux + 4448,
-    instrux + 4449,
-};
-
-static const struct itemplate * const itable_evex012C2[] = {
-    instrux + 3941,
-};
-
-static const struct itemplate * const itable_evex012E6[] = {
-    instrux + 3956,
-    instrux + 3957,
-    instrux + 3958,
-    instrux + 4001,
-    instrux + 4002,
-    instrux + 4003,
-};
-
-static const struct itemplate * const itable_evex01310[] = {
-    instrux + 4491,
-    instrux + 4493,
-    instrux + 4494,
-};
-
-static const struct itemplate * const itable_evex01311[] = {
-    instrux + 4492,
-    instrux + 4495,
-    instrux + 4496,
-};
-
-static const struct itemplate * const itable_evex01312[] = {
-    instrux + 4402,
-    instrux + 4403,
-    instrux + 4404,
-};
-
-static const struct itemplate * const itable_evex0132A[] = {
-    instrux + 4012,
-    instrux + 4013,
-};
-
-static const struct itemplate * const itable_evex0132C[] = {
-    instrux + 4045,
-    instrux + 4046,
-};
-
-static const struct itemplate * const itable_evex0132D[] = {
-    instrux + 4007,
-    instrux + 4008,
-};
-
-static const struct itemplate * const itable_evex01351[] = {
-    instrux + 5831,
-    instrux + 5832,
-};
-
-static const struct itemplate * const itable_evex01358[] = {
-    instrux + 3861,
-    instrux + 3862,
-};
-
-static const struct itemplate * const itable_evex01359[] = {
-    instrux + 4539,
-    instrux + 4540,
-};
-
-static const struct itemplate * const itable_evex0135A[] = {
-    instrux + 4009,
-};
-
-static const struct itemplate * const itable_evex0135C[] = {
-    instrux + 5847,
-    instrux + 5848,
-};
-
-static const struct itemplate * const itable_evex0135D[] = {
-    instrux + 4378,
-    instrux + 4379,
-};
-
-static const struct itemplate * const itable_evex0135E[] = {
-    instrux + 4087,
-    instrux + 4088,
-};
-
-static const struct itemplate * const itable_evex0135F[] = {
-    instrux + 4362,
-    instrux + 4363,
-};
-
-static const struct itemplate * const itable_evex0136F[] = {
-    instrux + 4423,
-    instrux + 4424,
-    instrux + 4425,
-    instrux + 4450,
-    instrux + 4451,
-    instrux + 4452,
-};
-
-static const struct itemplate * const itable_evex01370[] = {
-    instrux + 5378,
-    instrux + 5379,
-    instrux + 5380,
-};
-
-static const struct itemplate * const itable_evex01378[] = {
-    instrux + 4047,
-    instrux + 4048,
-};
-
-static const struct itemplate * const itable_evex01379[] = {
-    instrux + 4010,
-    instrux + 4011,
-};
-
-static const struct itemplate * const itable_evex0137A[] = {
-    instrux + 4056,
-    instrux + 4057,
-    instrux + 4058,
-    instrux + 4062,
-    instrux + 4063,
-    instrux + 4064,
-};
-
-static const struct itemplate * const itable_evex0137B[] = {
-    instrux + 4065,
-    instrux + 4066,
-};
-
-static const struct itemplate * const itable_evex0137F[] = {
-    instrux + 4426,
-    instrux + 4427,
-    instrux + 4428,
-    instrux + 4429,
-    instrux + 4430,
-    instrux + 4431,
-    instrux + 4453,
-    instrux + 4454,
-    instrux + 4455,
-    instrux + 4456,
-    instrux + 4457,
-    instrux + 4458,
-};
-
-static const struct itemplate * const itable_evex013C2[] = {
-    instrux + 3940,
-};
-
-static const struct itemplate * const itable_evex013E6[] = {
-    instrux + 3962,
-    instrux + 3963,
-    instrux + 3964,
-};
-
-static const struct itemplate * const itable_evex02100[] = {
-    instrux + 5366,
-    instrux + 5367,
-    instrux + 5368,
-    instrux + 5369,
-    instrux + 5370,
-    instrux + 5371,
-};
-
-static const struct itemplate * const itable_evex02104[] = {
-    instrux + 4958,
-    instrux + 4959,
-    instrux + 4960,
-    instrux + 4961,
-    instrux + 4962,
-    instrux + 4963,
-};
-
-static const struct itemplate * const itable_evex0210B[] = {
-    instrux + 5240,
-    instrux + 5241,
-    instrux + 5242,
-    instrux + 5243,
-    instrux + 5244,
-    instrux + 5245,
-};
-
-static const struct itemplate * const itable_evex0210C[] = {
-    instrux + 4850,
-    instrux + 4851,
-    instrux + 4852,
-    instrux + 4853,
-    instrux + 4854,
-    instrux + 4855,
-};
-
-static const struct itemplate * const itable_evex0210D[] = {
-    instrux + 4841,
-    instrux + 4842,
-    instrux + 4843,
-    instrux + 4844,
-    instrux + 4845,
-    instrux + 4846,
-};
-
-static const struct itemplate * const itable_evex02110[] = {
-    instrux + 5537,
-    instrux + 5538,
-    instrux + 5539,
-    instrux + 5540,
-    instrux + 5541,
-    instrux + 5542,
-};
-
-static const struct itemplate * const itable_evex02111[] = {
-    instrux + 5477,
-    instrux + 5478,
-    instrux + 5479,
-    instrux + 5480,
-    instrux + 5481,
-    instrux + 5482,
-};
-
-static const struct itemplate * const itable_evex02112[] = {
-    instrux + 5423,
-    instrux + 5424,
-    instrux + 5425,
-    instrux + 5426,
-    instrux + 5427,
-    instrux + 5428,
-};
-
-static const struct itemplate * const itable_evex02113[] = {
-    instrux + 3977,
-    instrux + 3978,
-    instrux + 3979,
-};
-
-static const struct itemplate * const itable_evex02114[] = {
-    instrux + 5336,
-    instrux + 5337,
-    instrux + 5338,
-    instrux + 5339,
-    instrux + 5340,
-    instrux + 5341,
-    instrux + 5342,
-    instrux + 5343,
-    instrux + 5344,
-    instrux + 5345,
-    instrux + 5346,
-    instrux + 5347,
-};
-
-static const struct itemplate * const itable_evex02115[] = {
-    instrux + 5312,
-    instrux + 5313,
-    instrux + 5314,
-    instrux + 5315,
-    instrux + 5316,
-    instrux + 5317,
-    instrux + 5318,
-    instrux + 5319,
-    instrux + 5320,
-    instrux + 5321,
-    instrux + 5322,
-    instrux + 5323,
-};
-
-static const struct itemplate * const itable_evex02116[] = {
-    instrux + 4858,
-    instrux + 4859,
-    instrux + 4860,
-    instrux + 4861,
-    instrux + 4862,
-    instrux + 4863,
-    instrux + 4864,
-    instrux + 4865,
-};
-
-static const struct itemplate * const itable_evex02118[] = {
-    instrux + 3928,
-    instrux + 3929,
-    instrux + 3930,
-    instrux + 3931,
-    instrux + 3932,
-    instrux + 3933,
-};
-
-static const struct itemplate * const itable_evex02119[] = {
-    instrux + 3907,
-    instrux + 3908,
-    instrux + 3924,
-    instrux + 3925,
-    instrux + 3926,
-    instrux + 3927,
-};
-
-static const struct itemplate * const itable_evex0211A[] = {
-    instrux + 3909,
-    instrux + 3910,
-    instrux + 3912,
-    instrux + 3913,
-};
-
-static const struct itemplate * const itable_evex0211B[] = {
-    instrux + 3911,
-    instrux + 3914,
-};
-
-static const struct itemplate * const itable_evex0211C[] = {
-    instrux + 4555,
-    instrux + 4556,
-    instrux + 4557,
-};
-
-static const struct itemplate * const itable_evex0211D[] = {
-    instrux + 4564,
-    instrux + 4565,
-    instrux + 4566,
-};
-
-static const struct itemplate * const itable_evex0211E[] = {
-    instrux + 4558,
-    instrux + 4559,
-    instrux + 4560,
-};
-
-static const struct itemplate * const itable_evex0211F[] = {
-    instrux + 4561,
-    instrux + 4562,
-    instrux + 4563,
-};
-
-static const struct itemplate * const itable_evex02120[] = {
-    instrux + 5159,
-    instrux + 5160,
-    instrux + 5161,
-};
-
-static const struct itemplate * const itable_evex02121[] = {
-    instrux + 5153,
-    instrux + 5154,
-    instrux + 5155,
-};
-
-static const struct itemplate * const itable_evex02122[] = {
-    instrux + 5156,
-    instrux + 5157,
-    instrux + 5158,
-};
-
-static const struct itemplate * const itable_evex02123[] = {
-    instrux + 5165,
-    instrux + 5166,
-    instrux + 5167,
-};
-
-static const struct itemplate * const itable_evex02124[] = {
-    instrux + 5168,
-    instrux + 5169,
-    instrux + 5170,
-};
-
-static const struct itemplate * const itable_evex02125[] = {
-    instrux + 5162,
-    instrux + 5163,
-    instrux + 5164,
-};
-
-static const struct itemplate * const itable_evex02126[] = {
-    instrux + 5609,
-    instrux + 5610,
-    instrux + 5611,
-    instrux + 5618,
-    instrux + 5619,
-    instrux + 5620,
-};
-
-static const struct itemplate * const itable_evex02127[] = {
-    instrux + 5612,
-    instrux + 5613,
-    instrux + 5614,
-    instrux + 5615,
-    instrux + 5616,
-    instrux + 5617,
-};
-
-static const struct itemplate * const itable_evex02128[] = {
-    instrux + 5234,
-    instrux + 5235,
-    instrux + 5236,
-    instrux + 5237,
-    instrux + 5238,
-    instrux + 5239,
-};
-
-static const struct itemplate * const itable_evex02129[] = {
-    instrux + 4756,
-    instrux + 4757,
-    instrux + 4758,
-};
-
-static const struct itemplate * const itable_evex0212A[] = {
-    instrux + 4478,
-    instrux + 4479,
-    instrux + 4480,
-};
-
-static const struct itemplate * const itable_evex0212B[] = {
-    instrux + 4579,
-    instrux + 4580,
-    instrux + 4581,
-    instrux + 4582,
-    instrux + 4583,
-    instrux + 4584,
-};
-
-static const struct itemplate * const itable_evex0212C[] = {
-    instrux + 5761,
-    instrux + 5762,
-    instrux + 5763,
-    instrux + 5764,
-    instrux + 5765,
-    instrux + 5766,
-    instrux + 5767,
-    instrux + 5768,
-    instrux + 5769,
-    instrux + 5770,
-    instrux + 5771,
-    instrux + 5772,
-};
-
-static const struct itemplate * const itable_evex0212D[] = {
-    instrux + 5773,
-    instrux + 5774,
-    instrux + 5775,
-    instrux + 5776,
-};
-
-static const struct itemplate * const itable_evex02130[] = {
-    instrux + 5222,
-    instrux + 5223,
-    instrux + 5224,
-};
-
-static const struct itemplate * const itable_evex02131[] = {
-    instrux + 5216,
-    instrux + 5217,
-    instrux + 5218,
-};
-
-static const struct itemplate * const itable_evex02132[] = {
-    instrux + 5219,
-    instrux + 5220,
-    instrux + 5221,
-};
-
-static const struct itemplate * const itable_evex02133[] = {
-    instrux + 5228,
-    instrux + 5229,
-    instrux + 5230,
-};
-
-static const struct itemplate * const itable_evex02134[] = {
-    instrux + 5231,
-    instrux + 5232,
-    instrux + 5233,
-};
-
-static const struct itemplate * const itable_evex02135[] = {
-    instrux + 5225,
-    instrux + 5226,
-    instrux + 5227,
-};
-
-static const struct itemplate * const itable_evex02136[] = {
-    instrux + 4816,
-    instrux + 4817,
-    instrux + 4818,
-    instrux + 4819,
-    instrux + 4868,
-    instrux + 4869,
-    instrux + 4870,
-    instrux + 4871,
-};
-
-static const struct itemplate * const itable_evex02137[] = {
-    instrux + 4768,
-    instrux + 4769,
-    instrux + 4770,
-};
-
-static const struct itemplate * const itable_evex02138[] = {
-    instrux + 5018,
-    instrux + 5019,
-    instrux + 5020,
-    instrux + 5021,
-    instrux + 5022,
-    instrux + 5023,
-};
-
-static const struct itemplate * const itable_evex02139[] = {
-    instrux + 5024,
-    instrux + 5025,
-    instrux + 5026,
-    instrux + 5027,
-    instrux + 5028,
-    instrux + 5029,
-    instrux + 5030,
-    instrux + 5031,
-    instrux + 5032,
-    instrux + 5033,
-    instrux + 5034,
-    instrux + 5035,
-};
-
-static const struct itemplate * const itable_evex0213A[] = {
-    instrux + 5060,
-    instrux + 5061,
-    instrux + 5062,
-    instrux + 5063,
-    instrux + 5064,
-    instrux + 5065,
-};
-
-static const struct itemplate * const itable_evex0213B[] = {
-    instrux + 5048,
-    instrux + 5049,
-    instrux + 5050,
-    instrux + 5051,
-    instrux + 5052,
-    instrux + 5053,
-    instrux + 5054,
-    instrux + 5055,
-    instrux + 5056,
-    instrux + 5057,
-    instrux + 5058,
-    instrux + 5059,
-};
-
-static const struct itemplate * const itable_evex0213C[] = {
-    instrux + 4970,
-    instrux + 4971,
-    instrux + 4972,
-    instrux + 4973,
-    instrux + 4974,
-    instrux + 4975,
-};
-
-static const struct itemplate * const itable_evex0213D[] = {
-    instrux + 4976,
-    instrux + 4977,
-    instrux + 4978,
-    instrux + 4979,
-    instrux + 4980,
-    instrux + 4981,
-    instrux + 4982,
-    instrux + 4983,
-    instrux + 4984,
-    instrux + 4985,
-    instrux + 4986,
-    instrux + 4987,
-};
-
-static const struct itemplate * const itable_evex0213E[] = {
-    instrux + 5012,
-    instrux + 5013,
-    instrux + 5014,
-    instrux + 5015,
-    instrux + 5016,
-    instrux + 5017,
-};
-
-static const struct itemplate * const itable_evex0213F[] = {
-    instrux + 5000,
-    instrux + 5001,
-    instrux + 5002,
-    instrux + 5003,
-    instrux + 5004,
-    instrux + 5005,
-    instrux + 5006,
-    instrux + 5007,
-    instrux + 5008,
-    instrux + 5009,
-    instrux + 5010,
-    instrux + 5011,
-};
-
-static const struct itemplate * const itable_evex02140[] = {
-    instrux + 5258,
-    instrux + 5259,
-    instrux + 5260,
-    instrux + 5261,
-    instrux + 5262,
-    instrux + 5263,
-    instrux + 5264,
-    instrux + 5265,
-    instrux + 5266,
-    instrux + 5267,
-    instrux + 5268,
-    instrux + 5269,
-};
-
-static const struct itemplate * const itable_evex02142[] = {
-    instrux + 4308,
-    instrux + 4309,
-    instrux + 4310,
-    instrux + 4311,
-    instrux + 4312,
-    instrux + 4313,
-};
-
-static const struct itemplate * const itable_evex02143[] = {
-    instrux + 4314,
-    instrux + 4315,
-};
-
-static const struct itemplate * const itable_evex02144[] = {
-    instrux + 4946,
-    instrux + 4947,
-    instrux + 4948,
-    instrux + 4949,
-    instrux + 4950,
-    instrux + 4951,
-};
-
-static const struct itemplate * const itable_evex02145[] = {
-    instrux + 5525,
-    instrux + 5526,
-    instrux + 5527,
-    instrux + 5528,
-    instrux + 5529,
-    instrux + 5530,
-    instrux + 5531,
-    instrux + 5532,
-    instrux + 5533,
-    instrux + 5534,
-    instrux + 5535,
-    instrux + 5536,
-};
-
-static const struct itemplate * const itable_evex02146[] = {
-    instrux + 5465,
-    instrux + 5466,
-    instrux + 5467,
-    instrux + 5468,
-    instrux + 5469,
-    instrux + 5470,
-    instrux + 5471,
-    instrux + 5472,
-    instrux + 5473,
-    instrux + 5474,
-    instrux + 5475,
-    instrux + 5476,
-};
-
-static const struct itemplate * const itable_evex02147[] = {
-    instrux + 5411,
-    instrux + 5412,
-    instrux + 5413,
-    instrux + 5414,
-    instrux + 5415,
-    instrux + 5416,
-    instrux + 5417,
-    instrux + 5418,
-    instrux + 5419,
-    instrux + 5420,
-    instrux + 5421,
-    instrux + 5422,
-};
-
-static const struct itemplate * const itable_evex0214C[] = {
-    instrux + 5709,
-    instrux + 5710,
-    instrux + 5711,
-    instrux + 5712,
-    instrux + 5713,
-    instrux + 5714,
-};
-
-static const struct itemplate * const itable_evex0214D[] = {
-    instrux + 5715,
-    instrux + 5716,
-    instrux + 5717,
-    instrux + 5718,
-};
-
-static const struct itemplate * const itable_evex0214E[] = {
-    instrux + 5745,
-    instrux + 5746,
-    instrux + 5747,
-    instrux + 5748,
-    instrux + 5749,
-    instrux + 5750,
-};
-
-static const struct itemplate * const itable_evex0214F[] = {
-    instrux + 5751,
-    instrux + 5752,
-    instrux + 5753,
-    instrux + 5754,
-};
-
-static const struct itemplate * const itable_evex02158[] = {
-    instrux + 4708,
-    instrux + 4709,
-    instrux + 4710,
-    instrux + 4711,
-    instrux + 4712,
-    instrux + 4713,
-};
-
-static const struct itemplate * const itable_evex02159[] = {
-    instrux + 3915,
-    instrux + 3916,
-    instrux + 3917,
-    instrux + 4723,
-    instrux + 4724,
-    instrux + 4725,
-    instrux + 4726,
-    instrux + 4727,
-    instrux + 4728,
-};
-
-static const struct itemplate * const itable_evex0215A[] = {
-    instrux + 3918,
-    instrux + 3919,
-    instrux + 3921,
-    instrux + 3922,
-};
-
-static const struct itemplate * const itable_evex0215B[] = {
-    instrux + 3920,
-    instrux + 3923,
-};
-
-static const struct itemplate * const itable_evex02164[] = {
-    instrux + 4684,
-    instrux + 4685,
-    instrux + 4686,
-    instrux + 4687,
-    instrux + 4688,
-    instrux + 4689,
-};
-
-static const struct itemplate * const itable_evex02165[] = {
-    instrux + 3901,
-    instrux + 3902,
-    instrux + 3903,
-    instrux + 3904,
-    instrux + 3905,
-    instrux + 3906,
-};
-
-static const struct itemplate * const itable_evex02166[] = {
-    instrux + 4681,
-    instrux + 4682,
-    instrux + 4683,
-    instrux + 4690,
-    instrux + 4691,
-    instrux + 4692,
-};
-
-static const struct itemplate * const itable_evex02175[] = {
-    instrux + 4820,
-    instrux + 4821,
-    instrux + 4822,
-    instrux + 4835,
-    instrux + 4836,
-    instrux + 4837,
-};
-
-static const struct itemplate * const itable_evex02176[] = {
-    instrux + 4823,
-    instrux + 4824,
-    instrux + 4825,
-    instrux + 4832,
-    instrux + 4833,
-    instrux + 4834,
-};
-
-static const struct itemplate * const itable_evex02177[] = {
-    instrux + 4826,
-    instrux + 4827,
-    instrux + 4828,
-    instrux + 4829,
-    instrux + 4830,
-    instrux + 4831,
-};
-
-static const struct itemplate * const itable_evex02178[] = {
-    instrux + 4693,
-    instrux + 4694,
-    instrux + 4695,
-};
-
-static const struct itemplate * const itable_evex02179[] = {
-    instrux + 4732,
-    instrux + 4733,
-    instrux + 4734,
-};
-
-static const struct itemplate * const itable_evex0217A[] = {
-    instrux + 4696,
-    instrux + 4697,
-    instrux + 4698,
-    instrux + 4699,
-    instrux + 4700,
-    instrux + 4701,
-    instrux + 4702,
-    instrux + 4703,
-    instrux + 4704,
-    instrux + 4705,
-    instrux + 4706,
-    instrux + 4707,
-};
-
-static const struct itemplate * const itable_evex0217B[] = {
-    instrux + 4735,
-    instrux + 4736,
-    instrux + 4737,
-    instrux + 4738,
-    instrux + 4739,
-    instrux + 4740,
-    instrux + 4741,
-    instrux + 4742,
-    instrux + 4743,
-};
-
-static const struct itemplate * const itable_evex0217C[] = {
-    instrux + 4714,
-    instrux + 4715,
-    instrux + 4716,
-    instrux + 4729,
-    instrux + 4730,
-    instrux + 4731,
-};
-
-static const struct itemplate * const itable_evex0217D[] = {
-    instrux + 4872,
-    instrux + 4873,
-    instrux + 4874,
-    instrux + 4887,
-    instrux + 4888,
-    instrux + 4889,
-};
-
-static const struct itemplate * const itable_evex0217E[] = {
-    instrux + 4875,
-    instrux + 4876,
-    instrux + 4877,
-    instrux + 4884,
-    instrux + 4885,
-    instrux + 4886,
-};
-
-static const struct itemplate * const itable_evex0217F[] = {
-    instrux + 4878,
-    instrux + 4879,
-    instrux + 4880,
-    instrux + 4881,
-    instrux + 4882,
-    instrux + 4883,
-};
-
-static const struct itemplate * const itable_evex02183[] = {
-    instrux + 5276,
-    instrux + 5277,
-    instrux + 5278,
-    instrux + 5279,
-    instrux + 5280,
-    instrux + 5281,
-};
-
-static const struct itemplate * const itable_evex02188[] = {
-    instrux + 4093,
-    instrux + 4094,
-    instrux + 4095,
-    instrux + 4096,
-    instrux + 4097,
-    instrux + 4098,
-    instrux + 4099,
-    instrux + 4100,
-    instrux + 4101,
-    instrux + 4102,
-    instrux + 4103,
-    instrux + 4104,
-};
-
-static const struct itemplate * const itable_evex02189[] = {
-    instrux + 4896,
-    instrux + 4897,
-    instrux + 4898,
-    instrux + 4899,
-    instrux + 4900,
-    instrux + 4901,
-    instrux + 4902,
-    instrux + 4903,
-    instrux + 4904,
-    instrux + 4905,
-    instrux + 4906,
-    instrux + 4907,
-};
-
-static const struct itemplate * const itable_evex0218A[] = {
-    instrux + 3944,
-    instrux + 3945,
-    instrux + 3946,
-    instrux + 3947,
-    instrux + 3948,
-    instrux + 3949,
-    instrux + 3950,
-    instrux + 3951,
-    instrux + 3952,
-    instrux + 3953,
-    instrux + 3954,
-    instrux + 3955,
-};
-
-static const struct itemplate * const itable_evex0218B[] = {
-    instrux + 4792,
-    instrux + 4793,
-    instrux + 4794,
-    instrux + 4795,
-    instrux + 4796,
-    instrux + 4797,
-    instrux + 4798,
-    instrux + 4799,
-    instrux + 4800,
-    instrux + 4801,
-    instrux + 4802,
-    instrux + 4803,
-};
-
-static const struct itemplate * const itable_evex0218D[] = {
-    instrux + 4810,
-    instrux + 4811,
-    instrux + 4812,
-    instrux + 4813,
-    instrux + 4814,
-    instrux + 4815,
-    instrux + 4890,
-    instrux + 4891,
-    instrux + 4892,
-    instrux + 4893,
-    instrux + 4894,
-    instrux + 4895,
-};
-
-static const struct itemplate * const itable_evex02190[] = {
-    instrux + 4922,
-    instrux + 4923,
-    instrux + 4924,
-    instrux + 4925,
-    instrux + 4926,
-    instrux + 4927,
-};
-
-static const struct itemplate * const itable_evex02191[] = {
-    instrux + 4928,
-    instrux + 4929,
-    instrux + 4930,
-    instrux + 4931,
-    instrux + 4932,
-    instrux + 4933,
-};
-
-static const struct itemplate * const itable_evex02192[] = {
-    instrux + 4288,
-    instrux + 4289,
-    instrux + 4290,
-    instrux + 4291,
-    instrux + 4292,
-    instrux + 4293,
-};
-
-static const struct itemplate * const itable_evex02193[] = {
-    instrux + 4302,
-    instrux + 4303,
-    instrux + 4304,
-    instrux + 4305,
-    instrux + 4306,
-    instrux + 4307,
-};
-
-static const struct itemplate * const itable_evex02196[] = {
-    instrux + 4172,
-    instrux + 4173,
-    instrux + 4174,
-    instrux + 4175,
-    instrux + 4176,
-    instrux + 4177,
-};
-
-static const struct itemplate * const itable_evex02197[] = {
-    instrux + 4214,
-    instrux + 4215,
-    instrux + 4216,
-    instrux + 4217,
-    instrux + 4218,
-    instrux + 4219,
-};
-
-static const struct itemplate * const itable_evex02198[] = {
-    instrux + 4148,
-    instrux + 4149,
-    instrux + 4150,
-    instrux + 4151,
-    instrux + 4152,
-    instrux + 4153,
-};
-
-static const struct itemplate * const itable_evex02199[] = {
-    instrux + 4154,
-    instrux + 4155,
-};
-
-static const struct itemplate * const itable_evex0219A[] = {
-    instrux + 4190,
-    instrux + 4191,
-    instrux + 4192,
-    instrux + 4193,
-    instrux + 4194,
-    instrux + 4195,
-};
-
-static const struct itemplate * const itable_evex0219B[] = {
-    instrux + 4196,
-    instrux + 4197,
-};
-
-static const struct itemplate * const itable_evex0219C[] = {
-    instrux + 4232,
-    instrux + 4233,
-    instrux + 4234,
-    instrux + 4235,
-    instrux + 4236,
-    instrux + 4237,
-};
-
-static const struct itemplate * const itable_evex0219D[] = {
-    instrux + 4238,
-    instrux + 4239,
-};
-
-static const struct itemplate * const itable_evex0219E[] = {
-    instrux + 4256,
-    instrux + 4257,
-    instrux + 4258,
-    instrux + 4259,
-    instrux + 4260,
-    instrux + 4261,
-};
-
-static const struct itemplate * const itable_evex0219F[] = {
-    instrux + 4262,
-    instrux + 4263,
-};
-
-static const struct itemplate * const itable_evex021A0[] = {
-    instrux + 5354,
-    instrux + 5355,
-    instrux + 5356,
-    instrux + 5357,
-    instrux + 5358,
-    instrux + 5359,
-};
-
-static const struct itemplate * const itable_evex021A1[] = {
-    instrux + 5360,
-    instrux + 5361,
-    instrux + 5362,
-    instrux + 5363,
-    instrux + 5364,
-    instrux + 5365,
-};
-
-static const struct itemplate * const itable_evex021A2[] = {
-    instrux + 5777,
-    instrux + 5778,
-    instrux + 5779,
-    instrux + 5780,
-    instrux + 5781,
-    instrux + 5782,
-};
-
-static const struct itemplate * const itable_evex021A3[] = {
-    instrux + 5791,
-    instrux + 5792,
-    instrux + 5793,
-    instrux + 5794,
-    instrux + 5795,
-    instrux + 5796,
-};
-
-static const struct itemplate * const itable_evex021A6[] = {
-    instrux + 4178,
-    instrux + 4179,
-    instrux + 4180,
-    instrux + 4181,
-    instrux + 4182,
-    instrux + 4183,
-};
-
-static const struct itemplate * const itable_evex021A7[] = {
-    instrux + 4220,
-    instrux + 4221,
-    instrux + 4222,
-    instrux + 4223,
-    instrux + 4224,
-    instrux + 4225,
-};
-
-static const struct itemplate * const itable_evex021A8[] = {
-    instrux + 4156,
-    instrux + 4157,
-    instrux + 4158,
-    instrux + 4159,
-    instrux + 4160,
-    instrux + 4161,
-};
-
-static const struct itemplate * const itable_evex021A9[] = {
-    instrux + 4162,
-    instrux + 4163,
-};
-
-static const struct itemplate * const itable_evex021AA[] = {
-    instrux + 4198,
-    instrux + 4199,
-    instrux + 4200,
-    instrux + 4201,
-    instrux + 4202,
-    instrux + 4203,
-};
-
-static const struct itemplate * const itable_evex021AB[] = {
-    instrux + 4204,
-    instrux + 4205,
-};
-
-static const struct itemplate * const itable_evex021AC[] = {
-    instrux + 4240,
-    instrux + 4241,
-    instrux + 4242,
-    instrux + 4243,
-    instrux + 4244,
-    instrux + 4245,
-};
-
-static const struct itemplate * const itable_evex021AD[] = {
-    instrux + 4246,
-    instrux + 4247,
-};
-
-static const struct itemplate * const itable_evex021AE[] = {
-    instrux + 4264,
-    instrux + 4265,
-    instrux + 4266,
-    instrux + 4267,
-    instrux + 4268,
-    instrux + 4269,
-};
-
-static const struct itemplate * const itable_evex021AF[] = {
-    instrux + 4270,
-    instrux + 4271,
-};
-
-static const struct itemplate * const itable_evex021B4[] = {
-    instrux + 4955,
-    instrux + 4956,
-    instrux + 4957,
-};
-
-static const struct itemplate * const itable_evex021B5[] = {
-    instrux + 4952,
-    instrux + 4953,
-    instrux + 4954,
-};
-
-static const struct itemplate * const itable_evex021B6[] = {
-    instrux + 4184,
-    instrux + 4185,
-    instrux + 4186,
-    instrux + 4187,
-    instrux + 4188,
-    instrux + 4189,
-};
-
-static const struct itemplate * const itable_evex021B7[] = {
-    instrux + 4226,
-    instrux + 4227,
-    instrux + 4228,
-    instrux + 4229,
-    instrux + 4230,
-    instrux + 4231,
-};
-
-static const struct itemplate * const itable_evex021B8[] = {
-    instrux + 4164,
-    instrux + 4165,
-    instrux + 4166,
-    instrux + 4167,
-    instrux + 4168,
-    instrux + 4169,
-};
-
-static const struct itemplate * const itable_evex021B9[] = {
-    instrux + 4170,
-    instrux + 4171,
-};
-
-static const struct itemplate * const itable_evex021BA[] = {
-    instrux + 4206,
-    instrux + 4207,
-    instrux + 4208,
-    instrux + 4209,
-    instrux + 4210,
-    instrux + 4211,
-};
-
-static const struct itemplate * const itable_evex021BB[] = {
-    instrux + 4212,
-    instrux + 4213,
-};
-
-static const struct itemplate * const itable_evex021BC[] = {
-    instrux + 4248,
-    instrux + 4249,
-    instrux + 4250,
-    instrux + 4251,
-    instrux + 4252,
-    instrux + 4253,
-};
-
-static const struct itemplate * const itable_evex021BD[] = {
-    instrux + 4254,
-    instrux + 4255,
-};
-
-static const struct itemplate * const itable_evex021BE[] = {
-    instrux + 4272,
-    instrux + 4273,
-    instrux + 4274,
-    instrux + 4275,
-    instrux + 4276,
-    instrux + 4277,
-};
-
-static const struct itemplate * const itable_evex021BF[] = {
-    instrux + 4278,
-    instrux + 4279,
-};
-
-static const struct itemplate * const itable_evex021C4[] = {
-    instrux + 4804,
-    instrux + 4805,
-    instrux + 4806,
-    instrux + 4807,
-    instrux + 4808,
-    instrux + 4809,
-};
-
-static const struct itemplate * const itable_evex021C6[] = {
-    instrux + 4294,
-    instrux + 4295,
-    instrux + 4298,
-    instrux + 4299,
-    instrux + 5783,
-    instrux + 5784,
-    instrux + 5787,
-    instrux + 5788,
-};
-
-static const struct itemplate * const itable_evex021C7[] = {
-    instrux + 4296,
-    instrux + 4297,
-    instrux + 4300,
-    instrux + 4301,
-    instrux + 5785,
-    instrux + 5786,
-    instrux + 5789,
-    instrux + 5790,
-};
-
-static const struct itemplate * const itable_evex021C8[] = {
-    instrux + 4091,
-    instrux + 4092,
-};
-
-static const struct itemplate * const itable_evex021CA[] = {
-    instrux + 5719,
-    instrux + 5720,
-};
-
-static const struct itemplate * const itable_evex021CB[] = {
-    instrux + 5721,
-    instrux + 5722,
-    instrux + 5723,
-    instrux + 5724,
-};
-
-static const struct itemplate * const itable_evex021CC[] = {
-    instrux + 5755,
-    instrux + 5756,
-};
-
-static const struct itemplate * const itable_evex021CD[] = {
-    instrux + 5757,
-    instrux + 5758,
-    instrux + 5759,
-    instrux + 5760,
-};
-
-static const struct itemplate * const itable_evex02210[] = {
-    instrux + 5201,
-    instrux + 5202,
-    instrux + 5203,
-    instrux + 5204,
-    instrux + 5205,
-    instrux + 5206,
-};
-
-static const struct itemplate * const itable_evex02211[] = {
-    instrux + 5171,
-    instrux + 5172,
-    instrux + 5173,
-    instrux + 5174,
-    instrux + 5175,
-    instrux + 5176,
-};
-
-static const struct itemplate * const itable_evex02212[] = {
-    instrux + 5183,
-    instrux + 5184,
-    instrux + 5185,
-    instrux + 5186,
-    instrux + 5187,
-    instrux + 5188,
-};
-
-static const struct itemplate * const itable_evex02213[] = {
-    instrux + 5177,
-    instrux + 5178,
-    instrux + 5179,
-    instrux + 5180,
-    instrux + 5181,
-    instrux + 5182,
-};
-
-static const struct itemplate * const itable_evex02214[] = {
-    instrux + 5195,
-    instrux + 5196,
-    instrux + 5197,
-    instrux + 5198,
-    instrux + 5199,
-    instrux + 5200,
-};
-
-static const struct itemplate * const itable_evex02215[] = {
-    instrux + 5189,
-    instrux + 5190,
-    instrux + 5191,
-    instrux + 5192,
-    instrux + 5193,
-    instrux + 5194,
-};
-
-static const struct itemplate * const itable_evex02220[] = {
-    instrux + 5147,
-    instrux + 5148,
-    instrux + 5149,
-    instrux + 5150,
-    instrux + 5151,
-    instrux + 5152,
-};
-
-static const struct itemplate * const itable_evex02221[] = {
-    instrux + 5117,
-    instrux + 5118,
-    instrux + 5119,
-    instrux + 5120,
-    instrux + 5121,
-    instrux + 5122,
-};
-
-static const struct itemplate * const itable_evex02222[] = {
-    instrux + 5129,
-    instrux + 5130,
-    instrux + 5131,
-    instrux + 5132,
-    instrux + 5133,
-    instrux + 5134,
-};
-
-static const struct itemplate * const itable_evex02223[] = {
-    instrux + 5123,
-    instrux + 5124,
-    instrux + 5125,
-    instrux + 5126,
-    instrux + 5127,
-    instrux + 5128,
-};
-
-static const struct itemplate * const itable_evex02224[] = {
-    instrux + 5141,
-    instrux + 5142,
-    instrux + 5143,
-    instrux + 5144,
-    instrux + 5145,
-    instrux + 5146,
-};
-
-static const struct itemplate * const itable_evex02225[] = {
-    instrux + 5135,
-    instrux + 5136,
-    instrux + 5137,
-    instrux + 5138,
-    instrux + 5139,
-    instrux + 5140,
-};
-
-static const struct itemplate * const itable_evex02226[] = {
-    instrux + 5621,
-    instrux + 5622,
-    instrux + 5623,
-    instrux + 5630,
-    instrux + 5631,
-    instrux + 5632,
-};
-
-static const struct itemplate * const itable_evex02227[] = {
-    instrux + 5624,
-    instrux + 5625,
-    instrux + 5626,
-    instrux + 5627,
-    instrux + 5628,
-    instrux + 5629,
-};
-
-static const struct itemplate * const itable_evex02228[] = {
-    instrux + 5084,
-    instrux + 5085,
-    instrux + 5086,
-    instrux + 5093,
-    instrux + 5094,
-    instrux + 5095,
-};
-
-static const struct itemplate * const itable_evex02229[] = {
-    instrux + 5066,
-    instrux + 5067,
-    instrux + 5068,
-    instrux + 5207,
-    instrux + 5208,
-    instrux + 5209,
-};
-
-static const struct itemplate * const itable_evex0222A[] = {
-    instrux + 4717,
-    instrux + 4718,
-    instrux + 4719,
-};
-
-static const struct itemplate * const itable_evex02230[] = {
-    instrux + 5210,
-    instrux + 5211,
-    instrux + 5212,
-    instrux + 5213,
-    instrux + 5214,
-    instrux + 5215,
-};
-
-static const struct itemplate * const itable_evex02231[] = {
-    instrux + 5072,
-    instrux + 5073,
-    instrux + 5074,
-    instrux + 5075,
-    instrux + 5076,
-    instrux + 5077,
-};
-
-static const struct itemplate * const itable_evex02232[] = {
-    instrux + 5099,
-    instrux + 5100,
-    instrux + 5101,
-    instrux + 5102,
-    instrux + 5103,
-    instrux + 5104,
-};
-
-static const struct itemplate * const itable_evex02233[] = {
-    instrux + 5078,
-    instrux + 5079,
-    instrux + 5080,
-    instrux + 5081,
-    instrux + 5082,
-    instrux + 5083,
-};
-
-static const struct itemplate * const itable_evex02234[] = {
-    instrux + 5111,
-    instrux + 5112,
-    instrux + 5113,
-    instrux + 5114,
-    instrux + 5115,
-    instrux + 5116,
-};
-
-static const struct itemplate * const itable_evex02235[] = {
-    instrux + 5105,
-    instrux + 5106,
-    instrux + 5107,
-    instrux + 5108,
-    instrux + 5109,
-    instrux + 5110,
-};
-
-static const struct itemplate * const itable_evex02238[] = {
-    instrux + 5087,
-    instrux + 5088,
-    instrux + 5089,
-    instrux + 5090,
-    instrux + 5091,
-    instrux + 5092,
-};
-
-static const struct itemplate * const itable_evex02239[] = {
-    instrux + 5069,
-    instrux + 5070,
-    instrux + 5071,
-    instrux + 5096,
-    instrux + 5097,
-    instrux + 5098,
-};
-
-static const struct itemplate * const itable_evex0223A[] = {
-    instrux + 4720,
-    instrux + 4721,
-    instrux + 4722,
-};
-
-static const struct itemplate * const itable_evex03100[] = {
-    instrux + 4866,
-    instrux + 4867,
-};
-
-static const struct itemplate * const itable_evex03101[] = {
-    instrux + 4856,
-    instrux + 4857,
-};
-
-static const struct itemplate * const itable_evex03103[] = {
-    instrux + 3865,
-    instrux + 3866,
-    instrux + 3867,
-    instrux + 3868,
-    instrux + 3869,
-    instrux + 3870,
-    instrux + 3871,
-    instrux + 3872,
-    instrux + 3873,
-    instrux + 3874,
-    instrux + 3875,
-    instrux + 3876,
-};
-
-static const struct itemplate * const itable_evex03104[] = {
-    instrux + 4847,
-    instrux + 4848,
-    instrux + 4849,
-};
-
-static const struct itemplate * const itable_evex03105[] = {
-    instrux + 4838,
-    instrux + 4839,
-    instrux + 4840,
-};
-
-static const struct itemplate * const itable_evex03108[] = {
-    instrux + 5738,
-    instrux + 5739,
-    instrux + 5740,
-};
-
-static const struct itemplate * const itable_evex03109[] = {
-    instrux + 5735,
-    instrux + 5736,
-    instrux + 5737,
-};
-
-static const struct itemplate * const itable_evex0310A[] = {
-    instrux + 5743,
-    instrux + 5744,
-};
-
-static const struct itemplate * const itable_evex0310B[] = {
-    instrux + 5741,
-    instrux + 5742,
-};
-
-static const struct itemplate * const itable_evex0310F[] = {
-    instrux + 4639,
-    instrux + 4640,
-    instrux + 4641,
-    instrux + 4642,
-    instrux + 4643,
-    instrux + 4644,
-};
-
-static const struct itemplate * const itable_evex03114[] = {
-    instrux + 4908,
-    instrux + 4909,
-    instrux + 4910,
-    instrux + 4911,
-    instrux + 4912,
-};
-
-static const struct itemplate * const itable_evex03115[] = {
-    instrux + 4915,
-    instrux + 4916,
-    instrux + 4917,
-    instrux + 4918,
-};
-
-static const struct itemplate * const itable_evex03116[] = {
-    instrux + 4913,
-    instrux + 4914,
-};
-
-static const struct itemplate * const itable_evex03117[] = {
-    instrux + 4129,
-    instrux + 4130,
-    instrux + 4131,
-};
-
-static const struct itemplate * const itable_evex03118[] = {
-    instrux + 4324,
-    instrux + 4325,
-    instrux + 4326,
-    instrux + 4327,
-    instrux + 4330,
-    instrux + 4331,
-    instrux + 4332,
-    instrux + 4333,
-};
-
-static const struct itemplate * const itable_evex03119[] = {
-    instrux + 4105,
-    instrux + 4106,
-    instrux + 4107,
-    instrux + 4108,
-    instrux + 4111,
-    instrux + 4112,
-    instrux + 4113,
-    instrux + 4114,
-};
-
-static const struct itemplate * const itable_evex0311A[] = {
-    instrux + 4328,
-    instrux + 4329,
-    instrux + 4334,
-    instrux + 4335,
-};
-
-static const struct itemplate * const itable_evex0311B[] = {
-    instrux + 4109,
-    instrux + 4110,
-    instrux + 4115,
-    instrux + 4116,
-};
-
-static const struct itemplate * const itable_evex0311D[] = {
-    instrux + 3986,
-    instrux + 3987,
-    instrux + 3988,
-    instrux + 3989,
-    instrux + 3990,
-    instrux + 3991,
-};
-
-static const struct itemplate * const itable_evex0311E[] = {
-    instrux + 4780,
-    instrux + 4781,
-    instrux + 4782,
-    instrux + 4783,
-    instrux + 4784,
-    instrux + 4785,
-};
-
-static const struct itemplate * const itable_evex0311F[] = {
-    instrux + 4747,
-    instrux + 4748,
-    instrux + 4749,
-    instrux + 4774,
-    instrux + 4775,
-    instrux + 4776,
-};
-
-static const struct itemplate * const itable_evex03120[] = {
-    instrux + 4934,
-    instrux + 4935,
-    instrux + 4936,
-    instrux + 4937,
-};
-
-static const struct itemplate * const itable_evex03121[] = {
-    instrux + 4348,
-    instrux + 4349,
-};
-
-static const struct itemplate * const itable_evex03122[] = {
-    instrux + 4938,
-    instrux + 4939,
-    instrux + 4940,
-    instrux + 4941,
-};
-
-static const struct itemplate * const itable_evex03123[] = {
-    instrux + 5797,
-    instrux + 5798,
-    instrux + 5799,
-    instrux + 5800,
-    instrux + 5801,
-    instrux + 5802,
-    instrux + 5803,
-    instrux + 5804,
-};
-
-static const struct itemplate * const itable_evex03125[] = {
-    instrux + 5603,
-    instrux + 5604,
-    instrux + 5605,
-    instrux + 5606,
-    instrux + 5607,
-    instrux + 5608,
-};
-
-static const struct itemplate * const itable_evex03126[] = {
-    instrux + 4316,
-    instrux + 4317,
-    instrux + 4318,
-    instrux + 4319,
-    instrux + 4320,
-    instrux + 4321,
-};
-
-static const struct itemplate * const itable_evex03127[] = {
-    instrux + 4322,
-    instrux + 4323,
-};
-
-static const struct itemplate * const itable_evex03138[] = {
-    instrux + 4336,
-    instrux + 4337,
-    instrux + 4338,
-    instrux + 4339,
-    instrux + 4342,
-    instrux + 4343,
-    instrux + 4344,
-    instrux + 4345,
-};
-
-static const struct itemplate * const itable_evex03139[] = {
-    instrux + 4117,
-    instrux + 4118,
-    instrux + 4119,
-    instrux + 4120,
-    instrux + 4123,
-    instrux + 4124,
-    instrux + 4125,
-    instrux + 4126,
-};
-
-static const struct itemplate * const itable_evex0313A[] = {
-    instrux + 4340,
-    instrux + 4341,
-    instrux + 4346,
-    instrux + 4347,
-};
-
-static const struct itemplate * const itable_evex0313B[] = {
-    instrux + 4121,
-    instrux + 4122,
-    instrux + 4127,
-    instrux + 4128,
-};
-
-static const struct itemplate * const itable_evex0313E[] = {
-    instrux + 4777,
-    instrux + 4778,
-    instrux + 4779,
-    instrux + 4786,
-    instrux + 4787,
-    instrux + 4788,
-};
-
-static const struct itemplate * const itable_evex0313F[] = {
-    instrux + 4744,
-    instrux + 4745,
-    instrux + 4746,
-    instrux + 4789,
-    instrux + 4790,
-    instrux + 4791,
-};
-
-static const struct itemplate * const itable_evex03142[] = {
-    instrux + 4069,
-    instrux + 4070,
-    instrux + 4071,
-    instrux + 4072,
-    instrux + 4073,
-    instrux + 4074,
-};
-
-static const struct itemplate * const itable_evex03143[] = {
-    instrux + 5805,
-    instrux + 5806,
-    instrux + 5807,
-    instrux + 5808,
-    instrux + 5809,
-    instrux + 5810,
-    instrux + 5811,
-    instrux + 5812,
-};
-
-static const struct itemplate * const itable_evex03150[] = {
-    instrux + 5693,
-    instrux + 5694,
-    instrux + 5695,
-    instrux + 5696,
-    instrux + 5697,
-    instrux + 5698,
-    instrux + 5699,
-    instrux + 5700,
-    instrux + 5701,
-    instrux + 5702,
-    instrux + 5703,
-    instrux + 5704,
-};
-
-static const struct itemplate * const itable_evex03151[] = {
-    instrux + 5705,
-    instrux + 5706,
-    instrux + 5707,
-    instrux + 5708,
-};
-
-static const struct itemplate * const itable_evex03154[] = {
-    instrux + 4132,
-    instrux + 4133,
-    instrux + 4134,
-    instrux + 4135,
-    instrux + 4136,
-    instrux + 4137,
-    instrux + 4138,
-    instrux + 4139,
-    instrux + 4140,
-    instrux + 4141,
-    instrux + 4142,
-    instrux + 4143,
-};
-
-static const struct itemplate * const itable_evex03155[] = {
-    instrux + 4144,
-    instrux + 4145,
-    instrux + 4146,
-    instrux + 4147,
-};
-
-static const struct itemplate * const itable_evex03156[] = {
-    instrux + 5725,
-    instrux + 5726,
-    instrux + 5727,
-    instrux + 5728,
-    instrux + 5729,
-    instrux + 5730,
-};
-
-static const struct itemplate * const itable_evex03157[] = {
-    instrux + 5731,
-    instrux + 5732,
-    instrux + 5733,
-    instrux + 5734,
-};
-
-static const struct itemplate * const itable_evex03166[] = {
-    instrux + 4280,
-    instrux + 4281,
-    instrux + 4282,
-    instrux + 4283,
-    instrux + 4284,
-    instrux + 4285,
-};
-
-static const struct itemplate * const itable_evex03167[] = {
-    instrux + 4286,
-    instrux + 4287,
-};
-
-static const struct itemplate * const itable_vex01010[] = {
-    instrux + 2501,
-    instrux + 2503,
-};
-
-static const struct itemplate * const itable_vex01011[] = {
-    instrux + 2502,
-    instrux + 2504,
-};
-
-static const struct itemplate * const itable_vex01012[] = {
-    instrux + 2449,
-    instrux + 2450,
-    instrux + 2462,
-    instrux + 2463,
-};
-
-static const struct itemplate * const itable_vex01013[] = {
-    instrux + 2464,
-};
-
-static const struct itemplate * const itable_vex01014[] = {
-    instrux + 2852,
-    instrux + 2853,
-    instrux + 2854,
-    instrux + 2855,
-};
-
-static const struct itemplate * const itable_vex01015[] = {
-    instrux + 2844,
-    instrux + 2845,
-    instrux + 2846,
-    instrux + 2847,
-};
-
-static const struct itemplate * const itable_vex01016[] = {
-    instrux + 2454,
-    instrux + 2455,
-    instrux + 2457,
-    instrux + 2458,
-};
-
-static const struct itemplate * const itable_vex01017[] = {
-    instrux + 2456,
-};
-
-static const struct itemplate * const itable_vex01028[] = {
-    instrux + 2425,
-    instrux + 2427,
-};
-
-static const struct itemplate * const itable_vex01029[] = {
-    instrux + 2426,
-    instrux + 2428,
-};
-
-static const struct itemplate * const itable_vex0102B[] = {
-    instrux + 2479,
-    instrux + 2480,
-};
-
-static const struct itemplate * const itable_vex0102E[] = {
-    instrux + 2839,
-};
-
-static const struct itemplate * const itable_vex0102F[] = {
-    instrux + 2301,
-};
-
-static const struct itemplate * const itable_vex01041[] = {
-    instrux + 3788,
-    instrux + 3789,
-};
-
-static const struct itemplate * const itable_vex01042[] = {
-    instrux + 3786,
-    instrux + 3787,
-};
-
-static const struct itemplate * const itable_vex01044[] = {
-    instrux + 3808,
-    instrux + 3809,
-};
-
-static const struct itemplate * const itable_vex01045[] = {
-    instrux + 3812,
-    instrux + 3817,
-};
-
-static const struct itemplate * const itable_vex01046[] = {
-    instrux + 3835,
-    instrux + 3836,
-};
-
-static const struct itemplate * const itable_vex01047[] = {
-    instrux + 3839,
-    instrux + 3840,
-};
-
-static const struct itemplate * const itable_vex0104A[] = {
-    instrux + 3780,
-    instrux + 3781,
-};
-
-static const struct itemplate * const itable_vex0104B[] = {
-    instrux + 3831,
-    instrux + 3832,
-};
-
-static const struct itemplate * const itable_vex01050[] = {
-    instrux + 2469,
-    instrux + 2470,
-    instrux + 2471,
-    instrux + 2472,
-};
-
-static const struct itemplate * const itable_vex01051[] = {
-    instrux + 2815,
-    instrux + 2816,
-};
-
-static const struct itemplate * const itable_vex01052[] = {
-    instrux + 2793,
-    instrux + 2794,
-};
-
-static const struct itemplate * const itable_vex01053[] = {
-    instrux + 2789,
-    instrux + 2790,
-};
-
-static const struct itemplate * const itable_vex01054[] = {
-    instrux + 1704,
-    instrux + 1705,
-    instrux + 1706,
-    instrux + 1707,
-};
-
-static const struct itemplate * const itable_vex01055[] = {
-    instrux + 1712,
-    instrux + 1713,
-    instrux + 1714,
-    instrux + 1715,
-};
-
-static const struct itemplate * const itable_vex01056[] = {
-    instrux + 2523,
-    instrux + 2524,
-    instrux + 2525,
-    instrux + 2526,
-};
-
-static const struct itemplate * const itable_vex01057[] = {
-    instrux + 2860,
-    instrux + 2861,
-    instrux + 2862,
-    instrux + 2863,
-};
-
-static const struct itemplate * const itable_vex01058[] = {
-    instrux + 1684,
-    instrux + 1685,
-    instrux + 1686,
-    instrux + 1687,
-};
-
-static const struct itemplate * const itable_vex01059[] = {
-    instrux + 2511,
-    instrux + 2512,
-    instrux + 2513,
-    instrux + 2514,
-};
-
-static const struct itemplate * const itable_vex0105A[] = {
-    instrux + 2316,
-    instrux + 2317,
-};
-
-static const struct itemplate * const itable_vex0105B[] = {
-    instrux + 2304,
-    instrux + 2305,
-};
-
-static const struct itemplate * const itable_vex0105C[] = {
-    instrux + 2826,
-    instrux + 2827,
-    instrux + 2828,
-    instrux + 2829,
-};
-
-static const struct itemplate * const itable_vex0105D[] = {
-    instrux + 2413,
-    instrux + 2414,
-    instrux + 2415,
-    instrux + 2416,
-};
-
-static const struct itemplate * const itable_vex0105E[] = {
-    instrux + 2348,
-    instrux + 2349,
-    instrux + 2350,
-    instrux + 2351,
-};
-
-static const struct itemplate * const itable_vex0105F[] = {
-    instrux + 2401,
-    instrux + 2402,
-    instrux + 2403,
-    instrux + 2404,
-};
-
-static const struct itemplate * const itable_vex01077[] = {
-    instrux + 2864,
-    instrux + 2865,
-};
-
-static const struct itemplate * const itable_vex01090[] = {
-    instrux + 3798,
-    instrux + 3802,
-};
-
-static const struct itemplate * const itable_vex01091[] = {
-    instrux + 3799,
-    instrux + 3803,
-};
-
-static const struct itemplate * const itable_vex01092[] = {
-    instrux + 3804,
-};
-
-static const struct itemplate * const itable_vex01093[] = {
-    instrux + 3805,
-};
-
-static const struct itemplate * const itable_vex01098[] = {
-    instrux + 3815,
-    instrux + 3816,
-};
-
-static const struct itemplate * const itable_vex01099[] = {
-    instrux + 3828,
-    instrux + 3829,
-};
-
-static const struct itemplate * const itable_vex010AE[] = {
-    instrux + 2387,
-    instrux + 2821,
-};
-
-static const struct itemplate * const itable_vex010C2[] = {
-    instrux + 1924,
-    instrux + 1925,
-    instrux + 1926,
-    instrux + 1927,
-    instrux + 1928,
-    instrux + 1929,
-    instrux + 1930,
-    instrux + 1931,
-    instrux + 1932,
-    instrux + 1933,
-    instrux + 1934,
-    instrux + 1935,
-    instrux + 1936,
-    instrux + 1937,
-    instrux + 1938,
-    instrux + 1939,
-    instrux + 1940,
-    instrux + 1941,
-    instrux + 1942,
-    instrux + 1943,
-    instrux + 1944,
-    instrux + 1945,
-    instrux + 1946,
-    instrux + 1947,
-    instrux + 1948,
-    instrux + 1949,
-    instrux + 1950,
-    instrux + 1951,
-    instrux + 1952,
-    instrux + 1953,
-    instrux + 1954,
-    instrux + 1955,
-    instrux + 1956,
-    instrux + 1957,
-    instrux + 1958,
-    instrux + 1959,
-    instrux + 1960,
-    instrux + 1961,
-    instrux + 1962,
-    instrux + 1963,
-    instrux + 1964,
-    instrux + 1965,
-    instrux + 1966,
-    instrux + 1967,
-    instrux + 1968,
-    instrux + 1969,
-    instrux + 1970,
-    instrux + 1971,
-    instrux + 1972,
-    instrux + 1973,
-    instrux + 1974,
-    instrux + 1975,
-    instrux + 1976,
-    instrux + 1977,
-    instrux + 1978,
-    instrux + 1979,
-    instrux + 1980,
-    instrux + 1981,
-    instrux + 1982,
-    instrux + 1983,
-    instrux + 1984,
-    instrux + 1985,
-    instrux + 1986,
-    instrux + 1987,
-    instrux + 1988,
-    instrux + 1989,
-    instrux + 1990,
-    instrux + 1991,
-    instrux + 1992,
-    instrux + 1993,
-    instrux + 1994,
-    instrux + 1995,
-    instrux + 1996,
-    instrux + 1997,
-    instrux + 1998,
-    instrux + 1999,
-    instrux + 2000,
-    instrux + 2001,
-    instrux + 2002,
-    instrux + 2003,
-    instrux + 2004,
-    instrux + 2005,
-    instrux + 2006,
-    instrux + 2007,
-    instrux + 2008,
-    instrux + 2009,
-    instrux + 2010,
-    instrux + 2011,
-    instrux + 2012,
-    instrux + 2013,
-    instrux + 2014,
-    instrux + 2015,
-    instrux + 2016,
-    instrux + 2017,
-    instrux + 2018,
-    instrux + 2019,
-    instrux + 2020,
-    instrux + 2021,
-    instrux + 2022,
-    instrux + 2023,
-    instrux + 2024,
-    instrux + 2025,
-    instrux + 2026,
-    instrux + 2027,
-    instrux + 2028,
-    instrux + 2029,
-    instrux + 2030,
-    instrux + 2031,
-    instrux + 2032,
-    instrux + 2033,
-    instrux + 2034,
-    instrux + 2035,
-    instrux + 2036,
-    instrux + 2037,
-    instrux + 2038,
-    instrux + 2039,
-    instrux + 2040,
-    instrux + 2041,
-    instrux + 2042,
-    instrux + 2043,
-    instrux + 2044,
-    instrux + 2045,
-    instrux + 2046,
-    instrux + 2047,
-    instrux + 2048,
-    instrux + 2049,
-    instrux + 2050,
-    instrux + 2051,
-    instrux + 2052,
-    instrux + 2053,
-    instrux + 2054,
-    instrux + 2055,
-    instrux + 2056,
-    instrux + 2057,
-    instrux + 2058,
-    instrux + 2059,
-    instrux + 2060,
-    instrux + 2061,
-    instrux + 2062,
-    instrux + 2063,
-    instrux + 2064,
-    instrux + 2065,
-    instrux + 2066,
-    instrux + 2067,
-    instrux + 2068,
-    instrux + 2069,
-    instrux + 2070,
-    instrux + 2071,
-    instrux + 2072,
-    instrux + 2073,
-    instrux + 2074,
-    instrux + 2075,
-    instrux + 2076,
-    instrux + 2077,
-    instrux + 2078,
-    instrux + 2079,
-    instrux + 2080,
-    instrux + 2081,
-    instrux + 2082,
-    instrux + 2083,
-    instrux + 2084,
-    instrux + 2085,
-    instrux + 2086,
-    instrux + 2087,
-    instrux + 2088,
-    instrux + 2089,
-    instrux + 2090,
-    instrux + 2091,
-    instrux + 2092,
-    instrux + 2093,
-    instrux + 2094,
-    instrux + 2095,
-    instrux + 2096,
-    instrux + 2097,
-    instrux + 2098,
-    instrux + 2099,
-    instrux + 2100,
-    instrux + 2101,
-    instrux + 2102,
-    instrux + 2103,
-    instrux + 2104,
-    instrux + 2105,
-    instrux + 2106,
-    instrux + 2107,
-    instrux + 2108,
-    instrux + 2109,
-    instrux + 2110,
-    instrux + 2111,
-};
-
-static const struct itemplate * const itable_vex010C6[] = {
-    instrux + 2809,
-    instrux + 2810,
-    instrux + 2811,
-    instrux + 2812,
-};
-
-static const struct itemplate * const itable_vex01110[] = {
-    instrux + 2497,
-    instrux + 2499,
-};
-
-static const struct itemplate * const itable_vex01111[] = {
-    instrux + 2498,
-    instrux + 2500,
-};
-
-static const struct itemplate * const itable_vex01112[] = {
-    instrux + 2459,
-    instrux + 2460,
-};
-
-static const struct itemplate * const itable_vex01113[] = {
-    instrux + 2461,
-};
-
-static const struct itemplate * const itable_vex01114[] = {
-    instrux + 2848,
-    instrux + 2849,
-    instrux + 2850,
-    instrux + 2851,
-};
-
-static const struct itemplate * const itable_vex01115[] = {
-    instrux + 2840,
-    instrux + 2841,
-    instrux + 2842,
-    instrux + 2843,
-};
-
-static const struct itemplate * const itable_vex01116[] = {
-    instrux + 2451,
-    instrux + 2452,
-};
-
-static const struct itemplate * const itable_vex01117[] = {
-    instrux + 2453,
-};
-
-static const struct itemplate * const itable_vex01128[] = {
-    instrux + 2421,
-    instrux + 2423,
-};
-
-static const struct itemplate * const itable_vex01129[] = {
-    instrux + 2422,
-    instrux + 2424,
-};
-
-static const struct itemplate * const itable_vex0112B[] = {
-    instrux + 2477,
-    instrux + 2478,
-};
-
-static const struct itemplate * const itable_vex0112E[] = {
-    instrux + 2838,
-};
-
-static const struct itemplate * const itable_vex0112F[] = {
-    instrux + 2300,
-};
-
-static const struct itemplate * const itable_vex01141[] = {
-    instrux + 3782,
-    instrux + 3783,
-};
-
-static const struct itemplate * const itable_vex01142[] = {
-    instrux + 3784,
-    instrux + 3785,
-};
-
-static const struct itemplate * const itable_vex01144[] = {
-    instrux + 3806,
-    instrux + 3807,
-};
-
-static const struct itemplate * const itable_vex01145[] = {
-    instrux + 3810,
-    instrux + 3811,
-};
-
-static const struct itemplate * const itable_vex01146[] = {
-    instrux + 3833,
-    instrux + 3834,
-};
-
-static const struct itemplate * const itable_vex01147[] = {
-    instrux + 3837,
-    instrux + 3838,
-};
-
-static const struct itemplate * const itable_vex0114A[] = {
-    instrux + 3778,
-    instrux + 3779,
-};
-
-static const struct itemplate * const itable_vex0114B[] = {
-    instrux + 3830,
-};
-
-static const struct itemplate * const itable_vex01150[] = {
-    instrux + 2465,
-    instrux + 2466,
-    instrux + 2467,
-    instrux + 2468,
-};
-
-static const struct itemplate * const itable_vex01151[] = {
-    instrux + 2813,
-    instrux + 2814,
-};
-
-static const struct itemplate * const itable_vex01154[] = {
-    instrux + 1700,
-    instrux + 1701,
-    instrux + 1702,
-    instrux + 1703,
-};
-
-static const struct itemplate * const itable_vex01155[] = {
-    instrux + 1708,
-    instrux + 1709,
-    instrux + 1710,
-    instrux + 1711,
-};
-
-static const struct itemplate * const itable_vex01156[] = {
-    instrux + 2519,
-    instrux + 2520,
-    instrux + 2521,
-    instrux + 2522,
-};
-
-static const struct itemplate * const itable_vex01157[] = {
-    instrux + 2856,
-    instrux + 2857,
-    instrux + 2858,
-    instrux + 2859,
-};
-
-static const struct itemplate * const itable_vex01158[] = {
-    instrux + 1680,
-    instrux + 1681,
-    instrux + 1682,
-    instrux + 1683,
-};
-
-static const struct itemplate * const itable_vex01159[] = {
-    instrux + 2507,
-    instrux + 2508,
-    instrux + 2509,
-    instrux + 2510,
-};
-
-static const struct itemplate * const itable_vex0115A[] = {
-    instrux + 2310,
-    instrux + 2311,
-    instrux + 2312,
-    instrux + 2313,
-};
-
-static const struct itemplate * const itable_vex0115B[] = {
-    instrux + 2314,
-    instrux + 2315,
-};
-
-static const struct itemplate * const itable_vex0115C[] = {
-    instrux + 2822,
-    instrux + 2823,
-    instrux + 2824,
-    instrux + 2825,
-};
-
-static const struct itemplate * const itable_vex0115D[] = {
-    instrux + 2409,
-    instrux + 2410,
-    instrux + 2411,
-    instrux + 2412,
-};
-
-static const struct itemplate * const itable_vex0115E[] = {
-    instrux + 2344,
-    instrux + 2345,
-    instrux + 2346,
-    instrux + 2347,
-};
-
-static const struct itemplate * const itable_vex0115F[] = {
-    instrux + 2397,
-    instrux + 2398,
-    instrux + 2399,
-    instrux + 2400,
-};
-
-static const struct itemplate * const itable_vex01160[] = {
-    instrux + 2779,
-    instrux + 2780,
-    instrux + 3600,
-    instrux + 3601,
-};
-
-static const struct itemplate * const itable_vex01161[] = {
-    instrux + 2781,
-    instrux + 2782,
-    instrux + 3602,
-    instrux + 3603,
-};
-
-static const struct itemplate * const itable_vex01162[] = {
-    instrux + 2783,
-    instrux + 2784,
-    instrux + 3604,
-    instrux + 3605,
-};
-
-static const struct itemplate * const itable_vex01163[] = {
-    instrux + 2530,
-    instrux + 2531,
-    instrux + 3397,
-    instrux + 3398,
-};
-
-static const struct itemplate * const itable_vex01164[] = {
-    instrux + 2580,
-    instrux + 2581,
-    instrux + 3443,
-    instrux + 3444,
-};
-
-static const struct itemplate * const itable_vex01165[] = {
-    instrux + 2582,
-    instrux + 2583,
-    instrux + 3445,
-    instrux + 3446,
-};
-
-static const struct itemplate * const itable_vex01166[] = {
-    instrux + 2584,
-    instrux + 2585,
-    instrux + 3447,
-    instrux + 3448,
-};
-
-static const struct itemplate * const itable_vex01167[] = {
-    instrux + 2534,
-    instrux + 2535,
-    instrux + 3403,
-    instrux + 3404,
-};
-
-static const struct itemplate * const itable_vex01168[] = {
-    instrux + 2771,
-    instrux + 2772,
-    instrux + 3592,
-    instrux + 3593,
-};
-
-static const struct itemplate * const itable_vex01169[] = {
-    instrux + 2773,
-    instrux + 2774,
-    instrux + 3594,
-    instrux + 3595,
-};
-
-static const struct itemplate * const itable_vex0116A[] = {
-    instrux + 2775,
-    instrux + 2776,
-    instrux + 3596,
-    instrux + 3597,
-};
-
-static const struct itemplate * const itable_vex0116B[] = {
-    instrux + 2532,
-    instrux + 2533,
-    instrux + 3399,
-    instrux + 3400,
-};
-
-static const struct itemplate * const itable_vex0116C[] = {
-    instrux + 2785,
-    instrux + 2786,
-    instrux + 3606,
-    instrux + 3607,
-};
-
-static const struct itemplate * const itable_vex0116D[] = {
-    instrux + 2777,
-    instrux + 2778,
-    instrux + 3598,
-    instrux + 3599,
-};
-
-static const struct itemplate * const itable_vex0116E[] = {
-    instrux + 2429,
-    instrux + 2433,
-};
-
-static const struct itemplate * const itable_vex0116F[] = {
-    instrux + 2437,
-    instrux + 2439,
-    instrux + 2441,
-};
-
-static const struct itemplate * const itable_vex01170[] = {
-    instrux + 2708,
-    instrux + 3531,
-};
-
-static const struct itemplate * const itable_vex01171[] = {
-    instrux + 2723,
-    instrux + 2724,
-    instrux + 2735,
-    instrux + 2736,
-    instrux + 2743,
-    instrux + 2744,
-    instrux + 3544,
-    instrux + 3545,
-    instrux + 3556,
-    instrux + 3557,
-    instrux + 3566,
-    instrux + 3567,
-};
-
-static const struct itemplate * const itable_vex01172[] = {
-    instrux + 2727,
-    instrux + 2728,
-    instrux + 2739,
-    instrux + 2740,
-    instrux + 2747,
-    instrux + 2748,
-    instrux + 3548,
-    instrux + 3549,
-    instrux + 3560,
-    instrux + 3561,
-    instrux + 3570,
-    instrux + 3571,
-};
-
-static const struct itemplate * const itable_vex01173[] = {
-    instrux + 2717,
-    instrux + 2718,
-    instrux + 2719,
-    instrux + 2720,
-    instrux + 2731,
-    instrux + 2732,
-    instrux + 2751,
-    instrux + 2752,
-    instrux + 3540,
-    instrux + 3541,
-    instrux + 3552,
-    instrux + 3553,
-    instrux + 3562,
-    instrux + 3563,
-    instrux + 3574,
-    instrux + 3575,
-};
-
-static const struct itemplate * const itable_vex01174[] = {
-    instrux + 2572,
-    instrux + 2573,
-    instrux + 3435,
-    instrux + 3436,
-};
-
-static const struct itemplate * const itable_vex01175[] = {
-    instrux + 2574,
-    instrux + 2575,
-    instrux + 3437,
-    instrux + 3438,
-};
-
-static const struct itemplate * const itable_vex01176[] = {
-    instrux + 2576,
-    instrux + 2577,
-    instrux + 3439,
-    instrux + 3440,
-};
-
-static const struct itemplate * const itable_vex0117C[] = {
-    instrux + 2364,
-    instrux + 2365,
-    instrux + 2366,
-    instrux + 2367,
-};
-
-static const struct itemplate * const itable_vex0117D[] = {
-    instrux + 2372,
-    instrux + 2373,
-    instrux + 2374,
-    instrux + 2375,
-};
-
-static const struct itemplate * const itable_vex0117E[] = {
-    instrux + 2430,
-    instrux + 2434,
-};
-
-static const struct itemplate * const itable_vex0117F[] = {
-    instrux + 2438,
-    instrux + 2440,
-    instrux + 2442,
-};
-
-static const struct itemplate * const itable_vex01190[] = {
-    instrux + 3790,
-    instrux + 3794,
-};
-
-static const struct itemplate * const itable_vex01191[] = {
-    instrux + 3791,
-    instrux + 3795,
-};
-
-static const struct itemplate * const itable_vex01192[] = {
-    instrux + 3792,
-};
-
-static const struct itemplate * const itable_vex01193[] = {
-    instrux + 3793,
-};
-
-static const struct itemplate * const itable_vex01198[] = {
-    instrux + 3813,
-    instrux + 3814,
-};
-
-static const struct itemplate * const itable_vex01199[] = {
-    instrux + 3826,
-    instrux + 3827,
-};
-
-static const struct itemplate * const itable_vex011C2[] = {
-    instrux + 1736,
-    instrux + 1737,
-    instrux + 1738,
-    instrux + 1739,
-    instrux + 1740,
-    instrux + 1741,
-    instrux + 1742,
-    instrux + 1743,
-    instrux + 1744,
-    instrux + 1745,
-    instrux + 1746,
-    instrux + 1747,
-    instrux + 1748,
-    instrux + 1749,
-    instrux + 1750,
-    instrux + 1751,
-    instrux + 1752,
-    instrux + 1753,
-    instrux + 1754,
-    instrux + 1755,
-    instrux + 1756,
-    instrux + 1757,
-    instrux + 1758,
-    instrux + 1759,
-    instrux + 1760,
-    instrux + 1761,
-    instrux + 1762,
-    instrux + 1763,
-    instrux + 1764,
-    instrux + 1765,
-    instrux + 1766,
-    instrux + 1767,
-    instrux + 1768,
-    instrux + 1769,
-    instrux + 1770,
-    instrux + 1771,
-    instrux + 1772,
-    instrux + 1773,
-    instrux + 1774,
-    instrux + 1775,
-    instrux + 1776,
-    instrux + 1777,
-    instrux + 1778,
-    instrux + 1779,
-    instrux + 1780,
-    instrux + 1781,
-    instrux + 1782,
-    instrux + 1783,
-    instrux + 1784,
-    instrux + 1785,
-    instrux + 1786,
-    instrux + 1787,
-    instrux + 1788,
-    instrux + 1789,
-    instrux + 1790,
-    instrux + 1791,
-    instrux + 1792,
-    instrux + 1793,
-    instrux + 1794,
-    instrux + 1795,
-    instrux + 1796,
-    instrux + 1797,
-    instrux + 1798,
-    instrux + 1799,
-    instrux + 1800,
-    instrux + 1801,
-    instrux + 1802,
-    instrux + 1803,
-    instrux + 1804,
-    instrux + 1805,
-    instrux + 1806,
-    instrux + 1807,
-    instrux + 1808,
-    instrux + 1809,
-    instrux + 1810,
-    instrux + 1811,
-    instrux + 1812,
-    instrux + 1813,
-    instrux + 1814,
-    instrux + 1815,
-    instrux + 1816,
-    instrux + 1817,
-    instrux + 1818,
-    instrux + 1819,
-    instrux + 1820,
-    instrux + 1821,
-    instrux + 1822,
-    instrux + 1823,
-    instrux + 1824,
-    instrux + 1825,
-    instrux + 1826,
-    instrux + 1827,
-    instrux + 1828,
-    instrux + 1829,
-    instrux + 1830,
-    instrux + 1831,
-    instrux + 1832,
-    instrux + 1833,
-    instrux + 1834,
-    instrux + 1835,
-    instrux + 1836,
-    instrux + 1837,
-    instrux + 1838,
-    instrux + 1839,
-    instrux + 1840,
-    instrux + 1841,
-    instrux + 1842,
-    instrux + 1843,
-    instrux + 1844,
-    instrux + 1845,
-    instrux + 1846,
-    instrux + 1847,
-    instrux + 1848,
-    instrux + 1849,
-    instrux + 1850,
-    instrux + 1851,
-    instrux + 1852,
-    instrux + 1853,
-    instrux + 1854,
-    instrux + 1855,
-    instrux + 1856,
-    instrux + 1857,
-    instrux + 1858,
-    instrux + 1859,
-    instrux + 1860,
-    instrux + 1861,
-    instrux + 1862,
-    instrux + 1863,
-    instrux + 1864,
-    instrux + 1865,
-    instrux + 1866,
-    instrux + 1867,
-    instrux + 1868,
-    instrux + 1869,
-    instrux + 1870,
-    instrux + 1871,
-    instrux + 1872,
-    instrux + 1873,
-    instrux + 1874,
-    instrux + 1875,
-    instrux + 1876,
-    instrux + 1877,
-    instrux + 1878,
-    instrux + 1879,
-    instrux + 1880,
-    instrux + 1881,
-    instrux + 1882,
-    instrux + 1883,
-    instrux + 1884,
-    instrux + 1885,
-    instrux + 1886,
-    instrux + 1887,
-    instrux + 1888,
-    instrux + 1889,
-    instrux + 1890,
-    instrux + 1891,
-    instrux + 1892,
-    instrux + 1893,
-    instrux + 1894,
-    instrux + 1895,
-    instrux + 1896,
-    instrux + 1897,
-    instrux + 1898,
-    instrux + 1899,
-    instrux + 1900,
-    instrux + 1901,
-    instrux + 1902,
-    instrux + 1903,
-    instrux + 1904,
-    instrux + 1905,
-    instrux + 1906,
-    instrux + 1907,
-    instrux + 1908,
-    instrux + 1909,
-    instrux + 1910,
-    instrux + 1911,
-    instrux + 1912,
-    instrux + 1913,
-    instrux + 1914,
-    instrux + 1915,
-    instrux + 1916,
-    instrux + 1917,
-    instrux + 1918,
-    instrux + 1919,
-    instrux + 1920,
-    instrux + 1921,
-    instrux + 1922,
-    instrux + 1923,
-};
-
-static const struct itemplate * const itable_vex011C4[] = {
-    instrux + 2632,
-    instrux + 2633,
-    instrux + 2634,
-    instrux + 2635,
-    instrux + 2636,
-    instrux + 2637,
-};
-
-static const struct itemplate * const itable_vex011C5[] = {
-    instrux + 2605,
-    instrux + 2606,
-};
-
-static const struct itemplate * const itable_vex011C6[] = {
-    instrux + 2805,
-    instrux + 2806,
-    instrux + 2807,
-    instrux + 2808,
-};
-
-static const struct itemplate * const itable_vex011D0[] = {
-    instrux + 1692,
-    instrux + 1693,
-    instrux + 1694,
-    instrux + 1695,
-};
-
-static const struct itemplate * const itable_vex011D1[] = {
-    instrux + 2741,
-    instrux + 2742,
-    instrux + 3564,
-    instrux + 3565,
-};
-
-static const struct itemplate * const itable_vex011D2[] = {
-    instrux + 2745,
-    instrux + 2746,
-    instrux + 3568,
-    instrux + 3569,
-};
-
-static const struct itemplate * const itable_vex011D3[] = {
-    instrux + 2749,
-    instrux + 2750,
-    instrux + 3572,
-    instrux + 3573,
-};
-
-static const struct itemplate * const itable_vex011D4[] = {
-    instrux + 2544,
-    instrux + 2545,
-    instrux + 3411,
-    instrux + 3412,
-};
-
-static const struct itemplate * const itable_vex011D5[] = {
-    instrux + 2694,
-    instrux + 2695,
-    instrux + 3519,
-    instrux + 3520,
-};
-
-static const struct itemplate * const itable_vex011D6[] = {
-    instrux + 2432,
-};
-
-static const struct itemplate * const itable_vex011D7[] = {
-    instrux + 2674,
-    instrux + 2675,
-    instrux + 3491,
-    instrux + 3492,
-};
-
-static const struct itemplate * const itable_vex011D8[] = {
-    instrux + 2767,
-    instrux + 2768,
-    instrux + 3588,
-    instrux + 3589,
-};
-
-static const struct itemplate * const itable_vex011D9[] = {
-    instrux + 2769,
-    instrux + 2770,
-    instrux + 3590,
-    instrux + 3591,
-};
-
-static const struct itemplate * const itable_vex011DA[] = {
-    instrux + 2668,
-    instrux + 2669,
-    instrux + 3485,
-    instrux + 3486,
-};
-
-static const struct itemplate * const itable_vex011DB[] = {
-    instrux + 2556,
-    instrux + 2557,
-    instrux + 3423,
-    instrux + 3424,
-};
-
-static const struct itemplate * const itable_vex011DC[] = {
-    instrux + 2550,
-    instrux + 2551,
-    instrux + 3417,
-    instrux + 3418,
-};
-
-static const struct itemplate * const itable_vex011DD[] = {
-    instrux + 2552,
-    instrux + 2553,
-    instrux + 3419,
-    instrux + 3420,
-};
-
-static const struct itemplate * const itable_vex011DE[] = {
-    instrux + 2656,
-    instrux + 2657,
-    instrux + 3473,
-    instrux + 3474,
-};
-
-static const struct itemplate * const itable_vex011DF[] = {
-    instrux + 2558,
-    instrux + 2559,
-    instrux + 3425,
-    instrux + 3426,
-};
-
-static const struct itemplate * const itable_vex011E0[] = {
-    instrux + 2560,
-    instrux + 2561,
-    instrux + 3427,
-    instrux + 3428,
-};
-
-static const struct itemplate * const itable_vex011E1[] = {
-    instrux + 2733,
-    instrux + 2734,
-    instrux + 3554,
-    instrux + 3555,
-};
-
-static const struct itemplate * const itable_vex011E2[] = {
-    instrux + 2737,
-    instrux + 2738,
-    instrux + 3558,
-    instrux + 3559,
-};
-
-static const struct itemplate * const itable_vex011E3[] = {
-    instrux + 2562,
-    instrux + 2563,
-    instrux + 3429,
-    instrux + 3430,
-};
-
-static const struct itemplate * const itable_vex011E4[] = {
-    instrux + 2688,
-    instrux + 2689,
-    instrux + 3515,
-    instrux + 3516,
-};
-
-static const struct itemplate * const itable_vex011E5[] = {
-    instrux + 2692,
-    instrux + 2693,
-    instrux + 3517,
-    instrux + 3518,
-};
-
-static const struct itemplate * const itable_vex011E6[] = {
-    instrux + 2334,
-    instrux + 2335,
-    instrux + 2336,
-    instrux + 2337,
-};
-
-static const struct itemplate * const itable_vex011E7[] = {
-    instrux + 2473,
-    instrux + 2474,
-    instrux + 2475,
-};
-
-static const struct itemplate * const itable_vex011E8[] = {
-    instrux + 2763,
-    instrux + 2764,
-    instrux + 3584,
-    instrux + 3585,
-};
-
-static const struct itemplate * const itable_vex011E9[] = {
-    instrux + 2765,
-    instrux + 2766,
-    instrux + 3586,
-    instrux + 3587,
-};
-
-static const struct itemplate * const itable_vex011EA[] = {
-    instrux + 2664,
-    instrux + 2665,
-    instrux + 3481,
-    instrux + 3482,
-};
-
-static const struct itemplate * const itable_vex011EB[] = {
-    instrux + 2702,
-    instrux + 2703,
-    instrux + 3525,
-    instrux + 3526,
-};
-
-static const struct itemplate * const itable_vex011EC[] = {
-    instrux + 2546,
-    instrux + 2547,
-    instrux + 3413,
-    instrux + 3414,
-};
-
-static const struct itemplate * const itable_vex011ED[] = {
-    instrux + 2548,
-    instrux + 2549,
-    instrux + 3415,
-    instrux + 3416,
-};
-
-static const struct itemplate * const itable_vex011EE[] = {
-    instrux + 2652,
-    instrux + 2653,
-    instrux + 3469,
-    instrux + 3470,
-};
-
-static const struct itemplate * const itable_vex011EF[] = {
-    instrux + 2787,
-    instrux + 2788,
-    instrux + 3608,
-    instrux + 3609,
-};
-
-static const struct itemplate * const itable_vex011F1[] = {
-    instrux + 2721,
-    instrux + 2722,
-    instrux + 3542,
-    instrux + 3543,
-};
-
-static const struct itemplate * const itable_vex011F2[] = {
-    instrux + 2725,
-    instrux + 2726,
-    instrux + 3546,
-    instrux + 3547,
-};
-
-static const struct itemplate * const itable_vex011F3[] = {
-    instrux + 2729,
-    instrux + 2730,
-    instrux + 3550,
-    instrux + 3551,
-};
-
-static const struct itemplate * const itable_vex011F4[] = {
-    instrux + 2698,
-    instrux + 2699,
-    instrux + 3523,
-    instrux + 3524,
-};
-
-static const struct itemplate * const itable_vex011F5[] = {
-    instrux + 2646,
-    instrux + 2647,
-    instrux + 3465,
-    instrux + 3466,
-};
-
-static const struct itemplate * const itable_vex011F6[] = {
-    instrux + 2704,
-    instrux + 2705,
-    instrux + 3527,
-    instrux + 3528,
-};
-
-static const struct itemplate * const itable_vex011F7[] = {
-    instrux + 2388,
-};
-
-static const struct itemplate * const itable_vex011F8[] = {
-    instrux + 2755,
-    instrux + 2756,
-    instrux + 3576,
-    instrux + 3577,
-};
-
-static const struct itemplate * const itable_vex011F9[] = {
-    instrux + 2757,
-    instrux + 2758,
-    instrux + 3578,
-    instrux + 3579,
-};
-
-static const struct itemplate * const itable_vex011FA[] = {
-    instrux + 2759,
-    instrux + 2760,
-    instrux + 3580,
-    instrux + 3581,
-};
-
-static const struct itemplate * const itable_vex011FB[] = {
-    instrux + 2761,
-    instrux + 2762,
-    instrux + 3582,
-    instrux + 3583,
-};
-
-static const struct itemplate * const itable_vex011FC[] = {
-    instrux + 2538,
-    instrux + 2539,
-    instrux + 3405,
-    instrux + 3406,
-};
-
-static const struct itemplate * const itable_vex011FD[] = {
-    instrux + 2540,
-    instrux + 2541,
-    instrux + 3407,
-    instrux + 3408,
-};
-
-static const struct itemplate * const itable_vex011FE[] = {
-    instrux + 2542,
-    instrux + 2543,
-    instrux + 3409,
-    instrux + 3410,
-};
-
-static const struct itemplate * const itable_vex01210[] = {
-    instrux + 2491,
-    instrux + 2492,
-    instrux + 2493,
-};
-
-static const struct itemplate * const itable_vex01211[] = {
-    instrux + 2494,
-    instrux + 2495,
-    instrux + 2496,
-};
-
-static const struct itemplate * const itable_vex01212[] = {
-    instrux + 2489,
-    instrux + 2490,
-};
-
-static const struct itemplate * const itable_vex01216[] = {
-    instrux + 2487,
-    instrux + 2488,
-};
-
-static const struct itemplate * const itable_vex0122A[] = {
-    instrux + 2326,
-    instrux + 2327,
-    instrux + 2328,
-    instrux + 2329,
-};
-
-static const struct itemplate * const itable_vex0122C[] = {
-    instrux + 2342,
-    instrux + 2343,
-};
-
-static const struct itemplate * const itable_vex0122D[] = {
-    instrux + 2332,
-    instrux + 2333,
-};
-
-static const struct itemplate * const itable_vex01251[] = {
-    instrux + 2819,
-    instrux + 2820,
-};
-
-static const struct itemplate * const itable_vex01252[] = {
-    instrux + 2795,
-    instrux + 2796,
-};
-
-static const struct itemplate * const itable_vex01253[] = {
-    instrux + 2791,
-    instrux + 2792,
-};
-
-static const struct itemplate * const itable_vex01258[] = {
-    instrux + 1690,
-    instrux + 1691,
-};
-
-static const struct itemplate * const itable_vex01259[] = {
-    instrux + 2517,
-    instrux + 2518,
-};
-
-static const struct itemplate * const itable_vex0125A[] = {
-    instrux + 2330,
-    instrux + 2331,
-};
-
-static const struct itemplate * const itable_vex0125B[] = {
-    instrux + 2338,
-    instrux + 2339,
-};
-
-static const struct itemplate * const itable_vex0125C[] = {
-    instrux + 2832,
-    instrux + 2833,
-};
-
-static const struct itemplate * const itable_vex0125D[] = {
-    instrux + 2419,
-    instrux + 2420,
-};
-
-static const struct itemplate * const itable_vex0125E[] = {
-    instrux + 2354,
-    instrux + 2355,
-};
-
-static const struct itemplate * const itable_vex0125F[] = {
-    instrux + 2407,
-    instrux + 2408,
-};
-
-static const struct itemplate * const itable_vex0126F[] = {
-    instrux + 2443,
-    instrux + 2445,
-    instrux + 2447,
-};
-
-static const struct itemplate * const itable_vex01270[] = {
-    instrux + 2709,
-    instrux + 3532,
-};
-
-static const struct itemplate * const itable_vex0127E[] = {
-    instrux + 2431,
-};
-
-static const struct itemplate * const itable_vex0127F[] = {
-    instrux + 2444,
-    instrux + 2446,
-    instrux + 2448,
-};
-
-static const struct itemplate * const itable_vex012C2[] = {
-    instrux + 2206,
-    instrux + 2207,
-    instrux + 2208,
-    instrux + 2209,
-    instrux + 2210,
-    instrux + 2211,
-    instrux + 2212,
-    instrux + 2213,
-    instrux + 2214,
-    instrux + 2215,
-    instrux + 2216,
-    instrux + 2217,
-    instrux + 2218,
-    instrux + 2219,
-    instrux + 2220,
-    instrux + 2221,
-    instrux + 2222,
-    instrux + 2223,
-    instrux + 2224,
-    instrux + 2225,
-    instrux + 2226,
-    instrux + 2227,
-    instrux + 2228,
-    instrux + 2229,
-    instrux + 2230,
-    instrux + 2231,
-    instrux + 2232,
-    instrux + 2233,
-    instrux + 2234,
-    instrux + 2235,
-    instrux + 2236,
-    instrux + 2237,
-    instrux + 2238,
-    instrux + 2239,
-    instrux + 2240,
-    instrux + 2241,
-    instrux + 2242,
-    instrux + 2243,
-    instrux + 2244,
-    instrux + 2245,
-    instrux + 2246,
-    instrux + 2247,
-    instrux + 2248,
-    instrux + 2249,
-    instrux + 2250,
-    instrux + 2251,
-    instrux + 2252,
-    instrux + 2253,
-    instrux + 2254,
-    instrux + 2255,
-    instrux + 2256,
-    instrux + 2257,
-    instrux + 2258,
-    instrux + 2259,
-    instrux + 2260,
-    instrux + 2261,
-    instrux + 2262,
-    instrux + 2263,
-    instrux + 2264,
-    instrux + 2265,
-    instrux + 2266,
-    instrux + 2267,
-    instrux + 2268,
-    instrux + 2269,
-    instrux + 2270,
-    instrux + 2271,
-    instrux + 2272,
-    instrux + 2273,
-    instrux + 2274,
-    instrux + 2275,
-    instrux + 2276,
-    instrux + 2277,
-    instrux + 2278,
-    instrux + 2279,
-    instrux + 2280,
-    instrux + 2281,
-    instrux + 2282,
-    instrux + 2283,
-    instrux + 2284,
-    instrux + 2285,
-    instrux + 2286,
-    instrux + 2287,
-    instrux + 2288,
-    instrux + 2289,
-    instrux + 2290,
-    instrux + 2291,
-    instrux + 2292,
-    instrux + 2293,
-    instrux + 2294,
-    instrux + 2295,
-    instrux + 2296,
-    instrux + 2297,
-    instrux + 2298,
-    instrux + 2299,
-};
-
-static const struct itemplate * const itable_vex012E6[] = {
-    instrux + 2302,
-    instrux + 2303,
-};
-
-static const struct itemplate * const itable_vex01310[] = {
-    instrux + 2481,
-    instrux + 2482,
-    instrux + 2483,
-};
-
-static const struct itemplate * const itable_vex01311[] = {
-    instrux + 2484,
-    instrux + 2485,
-    instrux + 2486,
-};
-
-static const struct itemplate * const itable_vex01312[] = {
-    instrux + 2435,
-    instrux + 2436,
-};
-
-static const struct itemplate * const itable_vex0132A[] = {
-    instrux + 2322,
-    instrux + 2323,
-    instrux + 2324,
-    instrux + 2325,
-};
-
-static const struct itemplate * const itable_vex0132C[] = {
-    instrux + 2340,
-    instrux + 2341,
-};
-
-static const struct itemplate * const itable_vex0132D[] = {
-    instrux + 2318,
-    instrux + 2319,
-};
-
-static const struct itemplate * const itable_vex01351[] = {
-    instrux + 2817,
-    instrux + 2818,
-};
-
-static const struct itemplate * const itable_vex01358[] = {
-    instrux + 1688,
-    instrux + 1689,
-};
-
-static const struct itemplate * const itable_vex01359[] = {
-    instrux + 2515,
-    instrux + 2516,
-};
-
-static const struct itemplate * const itable_vex0135A[] = {
-    instrux + 2320,
-    instrux + 2321,
-};
-
-static const struct itemplate * const itable_vex0135C[] = {
-    instrux + 2830,
-    instrux + 2831,
-};
-
-static const struct itemplate * const itable_vex0135D[] = {
-    instrux + 2417,
-    instrux + 2418,
-};
-
-static const struct itemplate * const itable_vex0135E[] = {
-    instrux + 2352,
-    instrux + 2353,
-};
-
-static const struct itemplate * const itable_vex0135F[] = {
-    instrux + 2405,
-    instrux + 2406,
-};
-
-static const struct itemplate * const itable_vex01370[] = {
-    instrux + 2710,
-    instrux + 3533,
-};
-
-static const struct itemplate * const itable_vex0137C[] = {
-    instrux + 2368,
-    instrux + 2369,
-    instrux + 2370,
-    instrux + 2371,
-};
-
-static const struct itemplate * const itable_vex0137D[] = {
-    instrux + 2376,
-    instrux + 2377,
-    instrux + 2378,
-    instrux + 2379,
-};
-
-static const struct itemplate * const itable_vex01392[] = {
-    instrux + 3796,
-    instrux + 3800,
-};
-
-static const struct itemplate * const itable_vex01393[] = {
-    instrux + 3797,
-    instrux + 3801,
-};
-
-static const struct itemplate * const itable_vex013C2[] = {
-    instrux + 2112,
-    instrux + 2113,
-    instrux + 2114,
-    instrux + 2115,
-    instrux + 2116,
-    instrux + 2117,
-    instrux + 2118,
-    instrux + 2119,
-    instrux + 2120,
-    instrux + 2121,
-    instrux + 2122,
-    instrux + 2123,
-    instrux + 2124,
-    instrux + 2125,
-    instrux + 2126,
-    instrux + 2127,
-    instrux + 2128,
-    instrux + 2129,
-    instrux + 2130,
-    instrux + 2131,
-    instrux + 2132,
-    instrux + 2133,
-    instrux + 2134,
-    instrux + 2135,
-    instrux + 2136,
-    instrux + 2137,
-    instrux + 2138,
-    instrux + 2139,
-    instrux + 2140,
-    instrux + 2141,
-    instrux + 2142,
-    instrux + 2143,
-    instrux + 2144,
-    instrux + 2145,
-    instrux + 2146,
-    instrux + 2147,
-    instrux + 2148,
-    instrux + 2149,
-    instrux + 2150,
-    instrux + 2151,
-    instrux + 2152,
-    instrux + 2153,
-    instrux + 2154,
-    instrux + 2155,
-    instrux + 2156,
-    instrux + 2157,
-    instrux + 2158,
-    instrux + 2159,
-    instrux + 2160,
-    instrux + 2161,
-    instrux + 2162,
-    instrux + 2163,
-    instrux + 2164,
-    instrux + 2165,
-    instrux + 2166,
-    instrux + 2167,
-    instrux + 2168,
-    instrux + 2169,
-    instrux + 2170,
-    instrux + 2171,
-    instrux + 2172,
-    instrux + 2173,
-    instrux + 2174,
-    instrux + 2175,
-    instrux + 2176,
-    instrux + 2177,
-    instrux + 2178,
-    instrux + 2179,
-    instrux + 2180,
-    instrux + 2181,
-    instrux + 2182,
-    instrux + 2183,
-    instrux + 2184,
-    instrux + 2185,
-    instrux + 2186,
-    instrux + 2187,
-    instrux + 2188,
-    instrux + 2189,
-    instrux + 2190,
-    instrux + 2191,
-    instrux + 2192,
-    instrux + 2193,
-    instrux + 2194,
-    instrux + 2195,
-    instrux + 2196,
-    instrux + 2197,
-    instrux + 2198,
-    instrux + 2199,
-    instrux + 2200,
-    instrux + 2201,
-    instrux + 2202,
-    instrux + 2203,
-    instrux + 2204,
-    instrux + 2205,
-};
-
-static const struct itemplate * const itable_vex013D0[] = {
-    instrux + 1696,
-    instrux + 1697,
-    instrux + 1698,
-    instrux + 1699,
-};
-
-static const struct itemplate * const itable_vex013E6[] = {
-    instrux + 2306,
-    instrux + 2307,
-    instrux + 2308,
-    instrux + 2309,
-};
-
-static const struct itemplate * const itable_vex013F0[] = {
-    instrux + 2384,
-    instrux + 2385,
-    instrux + 2386,
-};
-
-static const struct itemplate * const itable_vex020F2[] = {
-    instrux + 3706,
-    instrux + 3707,
-};
-
-static const struct itemplate * const itable_vex020F3[] = {
-    instrux + 3716,
-    instrux + 3717,
-    instrux + 3726,
-    instrux + 3727,
-    instrux + 3728,
-    instrux + 3729,
-};
-
-static const struct itemplate * const itable_vex020F5[] = {
-    instrux + 3732,
-    instrux + 3733,
-};
-
-static const struct itemplate * const itable_vex020F7[] = {
-    instrux + 3708,
-    instrux + 3709,
-};
-
-static const struct itemplate * const itable_vex02100[] = {
-    instrux + 2706,
-    instrux + 2707,
-    instrux + 3529,
-    instrux + 3530,
-};
-
-static const struct itemplate * const itable_vex02101[] = {
-    instrux + 2613,
-    instrux + 2614,
-    instrux + 3451,
-    instrux + 3452,
-};
-
-static const struct itemplate * const itable_vex02102[] = {
-    instrux + 2615,
-    instrux + 2616,
-    instrux + 3453,
-    instrux + 3454,
-};
-
-static const struct itemplate * const itable_vex02103[] = {
-    instrux + 2617,
-    instrux + 2618,
-    instrux + 3455,
-    instrux + 3456,
-};
-
-static const struct itemplate * const itable_vex02104[] = {
-    instrux + 2648,
-    instrux + 2649,
-    instrux + 3463,
-    instrux + 3464,
-};
-
-static const struct itemplate * const itable_vex02105[] = {
-    instrux + 2620,
-    instrux + 2621,
-    instrux + 3457,
-    instrux + 3458,
-};
-
-static const struct itemplate * const itable_vex02106[] = {
-    instrux + 2622,
-    instrux + 2623,
-    instrux + 3459,
-    instrux + 3460,
-};
-
-static const struct itemplate * const itable_vex02107[] = {
-    instrux + 2624,
-    instrux + 2625,
-    instrux + 3461,
-    instrux + 3462,
-};
-
-static const struct itemplate * const itable_vex02108[] = {
-    instrux + 2711,
-    instrux + 2712,
-    instrux + 3534,
-    instrux + 3535,
-};
-
-static const struct itemplate * const itable_vex02109[] = {
-    instrux + 2713,
-    instrux + 2714,
-    instrux + 3536,
-    instrux + 3537,
-};
-
-static const struct itemplate * const itable_vex0210A[] = {
-    instrux + 2715,
-    instrux + 2716,
-    instrux + 3538,
-    instrux + 3539,
-};
-
-static const struct itemplate * const itable_vex0210B[] = {
-    instrux + 2690,
-    instrux + 2691,
-    instrux + 3513,
-    instrux + 3514,
-};
-
-static const struct itemplate * const itable_vex0210C[] = {
-    instrux + 2594,
-    instrux + 2595,
-    instrux + 2596,
-    instrux + 2597,
-};
-
-static const struct itemplate * const itable_vex0210D[] = {
-    instrux + 2588,
-    instrux + 2589,
-    instrux + 2590,
-    instrux + 2591,
-};
-
-static const struct itemplate * const itable_vex0210E[] = {
-    instrux + 2834,
-    instrux + 2835,
-};
-
-static const struct itemplate * const itable_vex0210F[] = {
-    instrux + 2836,
-    instrux + 2837,
-};
-
-static const struct itemplate * const itable_vex02113[] = {
-    instrux + 3084,
-    instrux + 3085,
-};
-
-static const struct itemplate * const itable_vex02116[] = {
-    instrux + 3638,
-    instrux + 3639,
-};
-
-static const struct itemplate * const itable_vex02117[] = {
-    instrux + 2753,
-    instrux + 2754,
-};
-
-static const struct itemplate * const itable_vex02118[] = {
-    instrux + 1732,
-    instrux + 1733,
-    instrux + 3611,
-    instrux + 3612,
-};
-
-static const struct itemplate * const itable_vex02119[] = {
-    instrux + 1734,
-    instrux + 3613,
-};
-
-static const struct itemplate * const itable_vex0211A[] = {
-    instrux + 1735,
-};
-
-static const struct itemplate * const itable_vex0211C[] = {
-    instrux + 2527,
-    instrux + 3394,
-};
-
-static const struct itemplate * const itable_vex0211D[] = {
-    instrux + 2528,
-    instrux + 3395,
-};
-
-static const struct itemplate * const itable_vex0211E[] = {
-    instrux + 2529,
-    instrux + 3396,
-};
-
-static const struct itemplate * const itable_vex02120[] = {
-    instrux + 2676,
-    instrux + 3493,
-};
-
-static const struct itemplate * const itable_vex02121[] = {
-    instrux + 2677,
-    instrux + 3494,
-    instrux + 3495,
-};
-
-static const struct itemplate * const itable_vex02122[] = {
-    instrux + 2678,
-    instrux + 3496,
-    instrux + 3497,
-};
-
-static const struct itemplate * const itable_vex02123[] = {
-    instrux + 2679,
-    instrux + 3498,
-};
-
-static const struct itemplate * const itable_vex02124[] = {
-    instrux + 2680,
-    instrux + 3499,
-    instrux + 3500,
-};
-
-static const struct itemplate * const itable_vex02125[] = {
-    instrux + 2681,
-    instrux + 3501,
-};
-
-static const struct itemplate * const itable_vex02128[] = {
-    instrux + 2700,
-    instrux + 2701,
-    instrux + 3511,
-    instrux + 3512,
-};
-
-static const struct itemplate * const itable_vex02129[] = {
-    instrux + 2578,
-    instrux + 2579,
-    instrux + 3441,
-    instrux + 3442,
-};
-
-static const struct itemplate * const itable_vex0212A[] = {
-    instrux + 2476,
-    instrux + 3610,
-};
-
-static const struct itemplate * const itable_vex0212B[] = {
-    instrux + 2536,
-    instrux + 2537,
-    instrux + 3401,
-    instrux + 3402,
-};
-
-static const struct itemplate * const itable_vex0212C[] = {
-    instrux + 2389,
-    instrux + 2390,
-};
-
-static const struct itemplate * const itable_vex0212D[] = {
-    instrux + 2393,
-    instrux + 2394,
-};
-
-static const struct itemplate * const itable_vex0212E[] = {
-    instrux + 2391,
-    instrux + 2392,
-};
-
-static const struct itemplate * const itable_vex0212F[] = {
-    instrux + 2395,
-    instrux + 2396,
-};
-
-static const struct itemplate * const itable_vex02130[] = {
-    instrux + 2682,
-    instrux + 3502,
-};
-
-static const struct itemplate * const itable_vex02131[] = {
-    instrux + 2683,
-    instrux + 3503,
-    instrux + 3504,
-};
-
-static const struct itemplate * const itable_vex02132[] = {
-    instrux + 2684,
-    instrux + 3505,
-    instrux + 3506,
-};
-
-static const struct itemplate * const itable_vex02133[] = {
-    instrux + 2685,
-    instrux + 3507,
-};
-
-static const struct itemplate * const itable_vex02134[] = {
-    instrux + 2686,
-    instrux + 3508,
-    instrux + 3509,
-};
-
-static const struct itemplate * const itable_vex02135[] = {
-    instrux + 2687,
-    instrux + 3510,
-};
-
-static const struct itemplate * const itable_vex02136[] = {
-    instrux + 3635,
-    instrux + 3636,
-};
-
-static const struct itemplate * const itable_vex02137[] = {
-    instrux + 2586,
-    instrux + 2587,
-    instrux + 3449,
-    instrux + 3450,
-};
-
-static const struct itemplate * const itable_vex02138[] = {
-    instrux + 2662,
-    instrux + 2663,
-    instrux + 3479,
-    instrux + 3480,
-};
-
-static const struct itemplate * const itable_vex02139[] = {
-    instrux + 2666,
-    instrux + 2667,
-    instrux + 3483,
-    instrux + 3484,
-};
-
-static const struct itemplate * const itable_vex0213A[] = {
-    instrux + 2670,
-    instrux + 2671,
-    instrux + 3487,
-    instrux + 3488,
-};
-
-static const struct itemplate * const itable_vex0213B[] = {
-    instrux + 2672,
-    instrux + 2673,
-    instrux + 3489,
-    instrux + 3490,
-};
-
-static const struct itemplate * const itable_vex0213C[] = {
-    instrux + 2650,
-    instrux + 2651,
-    instrux + 3467,
-    instrux + 3468,
-};
-
-static const struct itemplate * const itable_vex0213D[] = {
-    instrux + 2654,
-    instrux + 2655,
-    instrux + 3471,
-    instrux + 3472,
-};
-
-static const struct itemplate * const itable_vex0213E[] = {
-    instrux + 2658,
-    instrux + 2659,
-    instrux + 3475,
-    instrux + 3476,
-};
-
-static const struct itemplate * const itable_vex0213F[] = {
-    instrux + 2660,
-    instrux + 2661,
-    instrux + 3477,
-    instrux + 3478,
-};
-
-static const struct itemplate * const itable_vex02140[] = {
-    instrux + 2696,
-    instrux + 2697,
-    instrux + 3521,
-    instrux + 3522,
-};
-
-static const struct itemplate * const itable_vex02141[] = {
-    instrux + 2619,
-};
-
-static const struct itemplate * const itable_vex02145[] = {
-    instrux + 3674,
-    instrux + 3675,
-    instrux + 3676,
-    instrux + 3677,
-    instrux + 3678,
-    instrux + 3679,
-    instrux + 3680,
-    instrux + 3681,
-};
-
-static const struct itemplate * const itable_vex02146[] = {
-    instrux + 3670,
-    instrux + 3671,
-    instrux + 3672,
-    instrux + 3673,
-};
-
-static const struct itemplate * const itable_vex02147[] = {
-    instrux + 3662,
-    instrux + 3663,
-    instrux + 3664,
-    instrux + 3665,
-    instrux + 3666,
-    instrux + 3667,
-    instrux + 3668,
-    instrux + 3669,
-};
-
-static const struct itemplate * const itable_vex02158[] = {
-    instrux + 3627,
-    instrux + 3628,
-    instrux + 3629,
-    instrux + 3630,
-};
-
-static const struct itemplate * const itable_vex02159[] = {
-    instrux + 3631,
-    instrux + 3632,
-    instrux + 3633,
-    instrux + 3634,
-};
-
-static const struct itemplate * const itable_vex0215A[] = {
-    instrux + 3614,
-};
-
-static const struct itemplate * const itable_vex02178[] = {
-    instrux + 3619,
-    instrux + 3620,
-    instrux + 3621,
-    instrux + 3622,
-};
-
-static const struct itemplate * const itable_vex02179[] = {
-    instrux + 3623,
-    instrux + 3624,
-    instrux + 3625,
-    instrux + 3626,
-};
-
-static const struct itemplate * const itable_vex0218C[] = {
-    instrux + 3646,
-    instrux + 3647,
-    instrux + 3648,
-    instrux + 3649,
-    instrux + 3650,
-    instrux + 3651,
-    instrux + 3652,
-    instrux + 3653,
-};
-
-static const struct itemplate * const itable_vex0218E[] = {
-    instrux + 3654,
-    instrux + 3655,
-    instrux + 3656,
-    instrux + 3657,
-    instrux + 3658,
-    instrux + 3659,
-    instrux + 3660,
-    instrux + 3661,
-};
-
-static const struct itemplate * const itable_vex02190[] = {
-    instrux + 3690,
-    instrux + 3692,
-    instrux + 3694,
-    instrux + 3696,
-};
-
-static const struct itemplate * const itable_vex02191[] = {
-    instrux + 3691,
-    instrux + 3693,
-    instrux + 3695,
-    instrux + 3697,
-};
-
-static const struct itemplate * const itable_vex02192[] = {
-    instrux + 3682,
-    instrux + 3684,
-    instrux + 3686,
-    instrux + 3688,
-};
-
-static const struct itemplate * const itable_vex02193[] = {
-    instrux + 3683,
-    instrux + 3685,
-    instrux + 3687,
-    instrux + 3689,
-};
-
-static const struct itemplate * const itable_vex02196[] = {
-    instrux + 2905,
-    instrux + 2906,
-    instrux + 2907,
-    instrux + 2908,
-    instrux + 2909,
-    instrux + 2910,
-    instrux + 2911,
-    instrux + 2912,
-};
-
-static const struct itemplate * const itable_vex02197[] = {
-    instrux + 2953,
-    instrux + 2954,
-    instrux + 2955,
-    instrux + 2956,
-    instrux + 2957,
-    instrux + 2958,
-    instrux + 2959,
-    instrux + 2960,
-};
-
-static const struct itemplate * const itable_vex02198[] = {
-    instrux + 2881,
-    instrux + 2882,
-    instrux + 2883,
-    instrux + 2884,
-    instrux + 2885,
-    instrux + 2886,
-    instrux + 2887,
-    instrux + 2888,
-};
-
-static const struct itemplate * const itable_vex02199[] = {
-    instrux + 3025,
-    instrux + 3026,
-    instrux + 3027,
-    instrux + 3028,
-};
-
-static const struct itemplate * const itable_vex0219A[] = {
-    instrux + 2929,
-    instrux + 2930,
-    instrux + 2931,
-    instrux + 2932,
-    instrux + 2933,
-    instrux + 2934,
-    instrux + 2935,
-    instrux + 2936,
-};
-
-static const struct itemplate * const itable_vex0219B[] = {
-    instrux + 3037,
-    instrux + 3038,
-    instrux + 3039,
-    instrux + 3040,
-};
-
-static const struct itemplate * const itable_vex0219C[] = {
-    instrux + 2977,
-    instrux + 2978,
-    instrux + 2979,
-    instrux + 2980,
-    instrux + 2981,
-    instrux + 2982,
-    instrux + 2983,
-    instrux + 2984,
-};
-
-static const struct itemplate * const itable_vex0219D[] = {
-    instrux + 3049,
-    instrux + 3050,
-    instrux + 3051,
-    instrux + 3052,
-};
-
-static const struct itemplate * const itable_vex0219E[] = {
-    instrux + 3001,
-    instrux + 3002,
-    instrux + 3003,
-    instrux + 3004,
-    instrux + 3005,
-    instrux + 3006,
-    instrux + 3007,
-    instrux + 3008,
-};
-
-static const struct itemplate * const itable_vex0219F[] = {
-    instrux + 3061,
-    instrux + 3062,
-    instrux + 3063,
-    instrux + 3064,
-};
-
-static const struct itemplate * const itable_vex021A6[] = {
-    instrux + 2913,
-    instrux + 2914,
-    instrux + 2915,
-    instrux + 2916,
-    instrux + 2917,
-    instrux + 2918,
-    instrux + 2919,
-    instrux + 2920,
-};
-
-static const struct itemplate * const itable_vex021A7[] = {
-    instrux + 2961,
-    instrux + 2962,
-    instrux + 2963,
-    instrux + 2964,
-    instrux + 2965,
-    instrux + 2966,
-    instrux + 2967,
-    instrux + 2968,
-};
-
-static const struct itemplate * const itable_vex021A8[] = {
-    instrux + 2889,
-    instrux + 2890,
-    instrux + 2891,
-    instrux + 2892,
-    instrux + 2893,
-    instrux + 2894,
-    instrux + 2895,
-    instrux + 2896,
-};
-
-static const struct itemplate * const itable_vex021A9[] = {
-    instrux + 3029,
-    instrux + 3030,
-    instrux + 3031,
-    instrux + 3032,
-};
-
-static const struct itemplate * const itable_vex021AA[] = {
-    instrux + 2937,
-    instrux + 2938,
-    instrux + 2939,
-    instrux + 2940,
-    instrux + 2941,
-    instrux + 2942,
-    instrux + 2943,
-    instrux + 2944,
-};
-
-static const struct itemplate * const itable_vex021AB[] = {
-    instrux + 3041,
-    instrux + 3042,
-    instrux + 3043,
-    instrux + 3044,
-};
-
-static const struct itemplate * const itable_vex021AC[] = {
-    instrux + 2985,
-    instrux + 2986,
-    instrux + 2987,
-    instrux + 2988,
-    instrux + 2989,
-    instrux + 2990,
-    instrux + 2991,
-    instrux + 2992,
-};
-
-static const struct itemplate * const itable_vex021AD[] = {
-    instrux + 3053,
-    instrux + 3054,
-    instrux + 3055,
-    instrux + 3056,
-};
-
-static const struct itemplate * const itable_vex021AE[] = {
-    instrux + 3009,
-    instrux + 3010,
-    instrux + 3011,
-    instrux + 3012,
-    instrux + 3013,
-    instrux + 3014,
-    instrux + 3015,
-    instrux + 3016,
-};
-
-static const struct itemplate * const itable_vex021AF[] = {
-    instrux + 3065,
-    instrux + 3066,
-    instrux + 3067,
-    instrux + 3068,
-};
-
-static const struct itemplate * const itable_vex021B6[] = {
-    instrux + 2921,
-    instrux + 2922,
-    instrux + 2923,
-    instrux + 2924,
-    instrux + 2925,
-    instrux + 2926,
-    instrux + 2927,
-    instrux + 2928,
-};
-
-static const struct itemplate * const itable_vex021B7[] = {
-    instrux + 2969,
-    instrux + 2970,
-    instrux + 2971,
-    instrux + 2972,
-    instrux + 2973,
-    instrux + 2974,
-    instrux + 2975,
-    instrux + 2976,
-};
-
-static const struct itemplate * const itable_vex021B8[] = {
-    instrux + 2897,
-    instrux + 2898,
-    instrux + 2899,
-    instrux + 2900,
-    instrux + 2901,
-    instrux + 2902,
-    instrux + 2903,
-    instrux + 2904,
-};
-
-static const struct itemplate * const itable_vex021B9[] = {
-    instrux + 3033,
-    instrux + 3034,
-    instrux + 3035,
-    instrux + 3036,
-};
-
-static const struct itemplate * const itable_vex021BA[] = {
-    instrux + 2945,
-    instrux + 2946,
-    instrux + 2947,
-    instrux + 2948,
-    instrux + 2949,
-    instrux + 2950,
-    instrux + 2951,
-    instrux + 2952,
-};
-
-static const struct itemplate * const itable_vex021BB[] = {
-    instrux + 3045,
-    instrux + 3046,
-    instrux + 3047,
-    instrux + 3048,
-};
-
-static const struct itemplate * const itable_vex021BC[] = {
-    instrux + 2993,
-    instrux + 2994,
-    instrux + 2995,
-    instrux + 2996,
-    instrux + 2997,
-    instrux + 2998,
-    instrux + 2999,
-    instrux + 3000,
-};
-
-static const struct itemplate * const itable_vex021BD[] = {
-    instrux + 3057,
-    instrux + 3058,
-    instrux + 3059,
-    instrux + 3060,
-};
-
-static const struct itemplate * const itable_vex021BE[] = {
-    instrux + 3017,
-    instrux + 3018,
-    instrux + 3019,
-    instrux + 3020,
-    instrux + 3021,
-    instrux + 3022,
-    instrux + 3023,
-    instrux + 3024,
-};
-
-static const struct itemplate * const itable_vex021BF[] = {
-    instrux + 3069,
-    instrux + 3070,
-    instrux + 3071,
-    instrux + 3072,
-};
-
-static const struct itemplate * const itable_vex021DB[] = {
-    instrux + 1678,
-};
-
-static const struct itemplate * const itable_vex021DC[] = {
-    instrux + 1670,
-    instrux + 1671,
-};
-
-static const struct itemplate * const itable_vex021DD[] = {
-    instrux + 1672,
-    instrux + 1673,
-};
-
-static const struct itemplate * const itable_vex021DE[] = {
-    instrux + 1674,
-    instrux + 1675,
-};
-
-static const struct itemplate * const itable_vex021DF[] = {
-    instrux + 1676,
-    instrux + 1677,
-};
-
-static const struct itemplate * const itable_vex021F7[] = {
-    instrux + 3744,
-    instrux + 3745,
-};
-
-static const struct itemplate * const itable_vex022F5[] = {
-    instrux + 3738,
-    instrux + 3739,
-};
-
-static const struct itemplate * const itable_vex022F7[] = {
-    instrux + 3742,
-    instrux + 3743,
-};
-
-static const struct itemplate * const itable_vex023F5[] = {
-    instrux + 3736,
-    instrux + 3737,
-};
-
-static const struct itemplate * const itable_vex023F6[] = {
-    instrux + 3734,
-    instrux + 3735,
-};
-
-static const struct itemplate * const itable_vex023F7[] = {
-    instrux + 3746,
-    instrux + 3747,
-};
-
-static const struct itemplate * const itable_vex03100[] = {
-    instrux + 3640,
-};
-
-static const struct itemplate * const itable_vex03101[] = {
-    instrux + 3637,
-};
-
-static const struct itemplate * const itable_vex03102[] = {
-    instrux + 3615,
-    instrux + 3616,
-    instrux + 3617,
-    instrux + 3618,
-};
-
-static const struct itemplate * const itable_vex03104[] = {
-    instrux + 2598,
-    instrux + 2599,
-};
-
-static const struct itemplate * const itable_vex03105[] = {
-    instrux + 2592,
-    instrux + 2593,
-};
-
-static const struct itemplate * const itable_vex03106[] = {
-    instrux + 2600,
-    instrux + 2601,
-};
-
-static const struct itemplate * const itable_vex03108[] = {
-    instrux + 2799,
-    instrux + 2800,
-};
-
-static const struct itemplate * const itable_vex03109[] = {
-    instrux + 2797,
-    instrux + 2798,
-};
-
-static const struct itemplate * const itable_vex0310A[] = {
-    instrux + 2803,
-    instrux + 2804,
-};
-
-static const struct itemplate * const itable_vex0310B[] = {
-    instrux + 2801,
-    instrux + 2802,
-};
-
-static const struct itemplate * const itable_vex0310C[] = {
-    instrux + 1720,
-    instrux + 1721,
-    instrux + 1722,
-    instrux + 1723,
-};
-
-static const struct itemplate * const itable_vex0310D[] = {
-    instrux + 1716,
-    instrux + 1717,
-    instrux + 1718,
-    instrux + 1719,
-};
-
-static const struct itemplate * const itable_vex0310E[] = {
-    instrux + 2566,
-    instrux + 2567,
-    instrux + 3433,
-    instrux + 3434,
-};
-
-static const struct itemplate * const itable_vex0310F[] = {
-    instrux + 2554,
-    instrux + 2555,
-    instrux + 3421,
-    instrux + 3422,
-};
-
-static const struct itemplate * const itable_vex03114[] = {
-    instrux + 2602,
-    instrux + 2603,
-    instrux + 2604,
-};
-
-static const struct itemplate * const itable_vex03115[] = {
-    instrux + 2607,
-    instrux + 2608,
-    instrux + 2609,
-};
-
-static const struct itemplate * const itable_vex03116[] = {
-    instrux + 2610,
-    instrux + 2611,
-    instrux + 2612,
-};
-
-static const struct itemplate * const itable_vex03117[] = {
-    instrux + 2363,
-};
-
-static const struct itemplate * const itable_vex03118[] = {
-    instrux + 2380,
-    instrux + 2381,
-};
-
-static const struct itemplate * const itable_vex03119[] = {
-    instrux + 2362,
-};
-
-static const struct itemplate * const itable_vex0311D[] = {
-    instrux + 3086,
-    instrux + 3087,
-};
-
-static const struct itemplate * const itable_vex03120[] = {
-    instrux + 2626,
-    instrux + 2627,
-    instrux + 2628,
-    instrux + 2629,
-    instrux + 2630,
-    instrux + 2631,
-};
-
-static const struct itemplate * const itable_vex03121[] = {
-    instrux + 2382,
-    instrux + 2383,
-};
-
-static const struct itemplate * const itable_vex03122[] = {
-    instrux + 2638,
-    instrux + 2639,
-    instrux + 2640,
-    instrux + 2641,
-    instrux + 2642,
-    instrux + 2643,
-    instrux + 2644,
-    instrux + 2645,
-};
-
-static const struct itemplate * const itable_vex03130[] = {
-    instrux + 3822,
-    instrux + 3825,
-};
-
-static const struct itemplate * const itable_vex03131[] = {
-    instrux + 3823,
-    instrux + 3824,
-};
-
-static const struct itemplate * const itable_vex03132[] = {
-    instrux + 3818,
-    instrux + 3821,
-};
-
-static const struct itemplate * const itable_vex03133[] = {
-    instrux + 3819,
-    instrux + 3820,
-};
-
-static const struct itemplate * const itable_vex03138[] = {
-    instrux + 3644,
-    instrux + 3645,
-};
-
-static const struct itemplate * const itable_vex03139[] = {
-    instrux + 3643,
-};
-
-static const struct itemplate * const itable_vex03140[] = {
-    instrux + 2358,
-    instrux + 2359,
-    instrux + 2360,
-    instrux + 2361,
-};
-
-static const struct itemplate * const itable_vex03141[] = {
-    instrux + 2356,
-    instrux + 2357,
-};
-
-static const struct itemplate * const itable_vex03142[] = {
-    instrux + 2505,
-    instrux + 2506,
-    instrux + 3392,
-    instrux + 3393,
-};
-
-static const struct itemplate * const itable_vex03144[] = {
-    instrux + 2871,
-    instrux + 2872,
-    instrux + 2873,
-    instrux + 2874,
-    instrux + 2875,
-    instrux + 2876,
-    instrux + 2877,
-    instrux + 2878,
-    instrux + 2879,
-    instrux + 2880,
-};
-
-static const struct itemplate * const itable_vex03146[] = {
-    instrux + 3641,
-    instrux + 3642,
-};
-
-static const struct itemplate * const itable_vex0314A[] = {
-    instrux + 1728,
-    instrux + 1729,
-    instrux + 1730,
-    instrux + 1731,
-};
-
-static const struct itemplate * const itable_vex0314B[] = {
-    instrux + 1724,
-    instrux + 1725,
-    instrux + 1726,
-    instrux + 1727,
-};
-
-static const struct itemplate * const itable_vex0314C[] = {
-    instrux + 2564,
-    instrux + 2565,
-    instrux + 3431,
-    instrux + 3432,
-};
-
-static const struct itemplate * const itable_vex0315C[] = {
-    instrux + 3146,
-    instrux + 3147,
-    instrux + 3148,
-    instrux + 3149,
-    instrux + 3150,
-    instrux + 3151,
-    instrux + 3152,
-    instrux + 3153,
-};
-
-static const struct itemplate * const itable_vex0315D[] = {
-    instrux + 3138,
-    instrux + 3139,
-    instrux + 3140,
-    instrux + 3141,
-    instrux + 3142,
-    instrux + 3143,
-    instrux + 3144,
-    instrux + 3145,
-};
-
-static const struct itemplate * const itable_vex0315E[] = {
-    instrux + 3162,
-    instrux + 3163,
-    instrux + 3164,
-    instrux + 3165,
-    instrux + 3166,
-    instrux + 3167,
-    instrux + 3168,
-    instrux + 3169,
-};
-
-static const struct itemplate * const itable_vex0315F[] = {
-    instrux + 3154,
-    instrux + 3155,
-    instrux + 3156,
-    instrux + 3157,
-    instrux + 3158,
-    instrux + 3159,
-    instrux + 3160,
-    instrux + 3161,
-};
-
-static const struct itemplate * const itable_vex03160[] = {
-    instrux + 2569,
-};
-
-static const struct itemplate * const itable_vex03161[] = {
-    instrux + 2568,
-};
-
-static const struct itemplate * const itable_vex03162[] = {
-    instrux + 2571,
-};
-
-static const struct itemplate * const itable_vex03163[] = {
-    instrux + 2570,
-};
-
-static const struct itemplate * const itable_vex03168[] = {
-    instrux + 3122,
-    instrux + 3123,
-    instrux + 3124,
-    instrux + 3125,
-    instrux + 3126,
-    instrux + 3127,
-    instrux + 3128,
-    instrux + 3129,
-};
-
-static const struct itemplate * const itable_vex03169[] = {
-    instrux + 3114,
-    instrux + 3115,
-    instrux + 3116,
-    instrux + 3117,
-    instrux + 3118,
-    instrux + 3119,
-    instrux + 3120,
-    instrux + 3121,
-};
-
-static const struct itemplate * const itable_vex0316A[] = {
-    instrux + 3134,
-    instrux + 3135,
-    instrux + 3136,
-    instrux + 3137,
-};
-
-static const struct itemplate * const itable_vex0316B[] = {
-    instrux + 3130,
-    instrux + 3131,
-    instrux + 3132,
-    instrux + 3133,
-};
-
-static const struct itemplate * const itable_vex0316C[] = {
-    instrux + 3178,
-    instrux + 3179,
-    instrux + 3180,
-    instrux + 3181,
-    instrux + 3182,
-    instrux + 3183,
-    instrux + 3184,
-    instrux + 3185,
-};
-
-static const struct itemplate * const itable_vex0316D[] = {
-    instrux + 3170,
-    instrux + 3171,
-    instrux + 3172,
-    instrux + 3173,
-    instrux + 3174,
-    instrux + 3175,
-    instrux + 3176,
-    instrux + 3177,
-};
-
-static const struct itemplate * const itable_vex0316E[] = {
-    instrux + 3190,
-    instrux + 3191,
-    instrux + 3192,
-    instrux + 3193,
-};
-
-static const struct itemplate * const itable_vex0316F[] = {
-    instrux + 3186,
-    instrux + 3187,
-    instrux + 3188,
-    instrux + 3189,
-};
-
-static const struct itemplate * const itable_vex03178[] = {
-    instrux + 3202,
-    instrux + 3203,
-    instrux + 3204,
-    instrux + 3205,
-    instrux + 3206,
-    instrux + 3207,
-    instrux + 3208,
-    instrux + 3209,
-};
-
-static const struct itemplate * const itable_vex03179[] = {
-    instrux + 3194,
-    instrux + 3195,
-    instrux + 3196,
-    instrux + 3197,
-    instrux + 3198,
-    instrux + 3199,
-    instrux + 3200,
-    instrux + 3201,
-};
-
-static const struct itemplate * const itable_vex0317A[] = {
-    instrux + 3214,
-    instrux + 3215,
-    instrux + 3216,
-    instrux + 3217,
-};
-
-static const struct itemplate * const itable_vex0317B[] = {
-    instrux + 3210,
-    instrux + 3211,
-    instrux + 3212,
-    instrux + 3213,
-};
-
-static const struct itemplate * const itable_vex0317C[] = {
-    instrux + 3226,
-    instrux + 3227,
-    instrux + 3228,
-    instrux + 3229,
-    instrux + 3230,
-    instrux + 3231,
-    instrux + 3232,
-    instrux + 3233,
-};
-
-static const struct itemplate * const itable_vex0317D[] = {
-    instrux + 3218,
-    instrux + 3219,
-    instrux + 3220,
-    instrux + 3221,
-    instrux + 3222,
-    instrux + 3223,
-    instrux + 3224,
-    instrux + 3225,
-};
-
-static const struct itemplate * const itable_vex0317E[] = {
-    instrux + 3238,
-    instrux + 3239,
-    instrux + 3240,
-    instrux + 3241,
-};
-
-static const struct itemplate * const itable_vex0317F[] = {
-    instrux + 3234,
-    instrux + 3235,
-    instrux + 3236,
-    instrux + 3237,
-};
-
-static const struct itemplate * const itable_vex031DF[] = {
-    instrux + 1679,
-};
-
-static const struct itemplate * const itable_vex033F0[] = {
-    instrux + 3740,
-    instrux + 3741,
-};
-
-static const struct itemplate * const itable_xop08085[] = {
-    instrux + 3322,
-    instrux + 3323,
-};
-
-static const struct itemplate * const itable_xop08086[] = {
-    instrux + 3320,
-    instrux + 3321,
-};
-
-static const struct itemplate * const itable_xop08087[] = {
-    instrux + 3318,
-    instrux + 3319,
-};
-
-static const struct itemplate * const itable_xop0808E[] = {
-    instrux + 3314,
-    instrux + 3315,
-};
-
-static const struct itemplate * const itable_xop0808F[] = {
-    instrux + 3316,
-    instrux + 3317,
-};
-
-static const struct itemplate * const itable_xop08095[] = {
-    instrux + 3326,
-    instrux + 3327,
-};
-
-static const struct itemplate * const itable_xop08096[] = {
-    instrux + 3324,
-    instrux + 3325,
-};
-
-static const struct itemplate * const itable_xop08097[] = {
-    instrux + 3312,
-    instrux + 3313,
-};
-
-static const struct itemplate * const itable_xop0809E[] = {
-    instrux + 3308,
-    instrux + 3309,
-};
-
-static const struct itemplate * const itable_xop0809F[] = {
-    instrux + 3310,
-    instrux + 3311,
-};
-
-static const struct itemplate * const itable_xop080A2[] = {
-    instrux + 3254,
-    instrux + 3255,
-    instrux + 3256,
-    instrux + 3257,
-    instrux + 3258,
-    instrux + 3259,
-    instrux + 3260,
-    instrux + 3261,
-};
-
-static const struct itemplate * const itable_xop080A3[] = {
-    instrux + 3332,
-    instrux + 3333,
-    instrux + 3334,
-    instrux + 3335,
-};
-
-static const struct itemplate * const itable_xop080A6[] = {
-    instrux + 3328,
-    instrux + 3329,
-};
-
-static const struct itemplate * const itable_xop080B6[] = {
-    instrux + 3330,
-    instrux + 3331,
-};
-
-static const struct itemplate * const itable_xop080C0[] = {
-    instrux + 3340,
-    instrux + 3341,
-};
-
-static const struct itemplate * const itable_xop080C1[] = {
-    instrux + 3358,
-    instrux + 3359,
-};
-
-static const struct itemplate * const itable_xop080C2[] = {
-    instrux + 3346,
-    instrux + 3347,
-};
-
-static const struct itemplate * const itable_xop080C3[] = {
-    instrux + 3352,
-    instrux + 3353,
-};
-
-static const struct itemplate * const itable_xop080CC[] = {
-    instrux + 3262,
-    instrux + 3263,
-};
-
-static const struct itemplate * const itable_xop080CD[] = {
-    instrux + 3276,
-    instrux + 3277,
-};
-
-static const struct itemplate * const itable_xop080CE[] = {
-    instrux + 3264,
-    instrux + 3265,
-};
-
-static const struct itemplate * const itable_xop080CF[] = {
-    instrux + 3266,
-    instrux + 3267,
-};
-
-static const struct itemplate * const itable_xop080EC[] = {
-    instrux + 3268,
-    instrux + 3269,
-};
-
-static const struct itemplate * const itable_xop080ED[] = {
-    instrux + 3274,
-    instrux + 3275,
-};
-
-static const struct itemplate * const itable_xop080EE[] = {
-    instrux + 3270,
-    instrux + 3271,
-};
-
-static const struct itemplate * const itable_xop080EF[] = {
-    instrux + 3272,
-    instrux + 3273,
-};
-
-static const struct itemplate * const itable_xop09001[] = {
-    instrux + 3714,
-    instrux + 3715,
-    instrux + 3718,
-    instrux + 3719,
-    instrux + 3720,
-    instrux + 3721,
-    instrux + 3722,
-    instrux + 3723,
-    instrux + 3730,
-    instrux + 3731,
-    instrux + 3751,
-    instrux + 3752,
-    instrux + 3753,
-    instrux + 3754,
-};
-
-static const struct itemplate * const itable_xop09002[] = {
-    instrux + 3712,
-    instrux + 3713,
-    instrux + 3724,
-    instrux + 3725,
-};
-
-static const struct itemplate * const itable_xop09012[] = {
-    instrux + 3106,
-    instrux + 3107,
-    instrux + 3108,
-    instrux + 3109,
-};
-
-static const struct itemplate * const itable_xop09080[] = {
-    instrux + 3246,
-    instrux + 3247,
-    instrux + 3248,
-    instrux + 3249,
-};
-
-static const struct itemplate * const itable_xop09081[] = {
-    instrux + 3242,
-    instrux + 3243,
-    instrux + 3244,
-    instrux + 3245,
-};
-
-static const struct itemplate * const itable_xop09082[] = {
-    instrux + 3252,
-    instrux + 3253,
-};
-
-static const struct itemplate * const itable_xop09083[] = {
-    instrux + 3250,
-    instrux + 3251,
-};
-
-static const struct itemplate * const itable_xop09090[] = {
-    instrux + 3336,
-    instrux + 3337,
-    instrux + 3338,
-    instrux + 3339,
-};
-
-static const struct itemplate * const itable_xop09091[] = {
-    instrux + 3354,
-    instrux + 3355,
-    instrux + 3356,
-    instrux + 3357,
-};
-
-static const struct itemplate * const itable_xop09092[] = {
-    instrux + 3342,
-    instrux + 3343,
-    instrux + 3344,
-    instrux + 3345,
-};
-
-static const struct itemplate * const itable_xop09093[] = {
-    instrux + 3348,
-    instrux + 3349,
-    instrux + 3350,
-    instrux + 3351,
-};
-
-static const struct itemplate * const itable_xop09094[] = {
-    instrux + 3376,
-    instrux + 3377,
-    instrux + 3378,
-    instrux + 3379,
-};
-
-static const struct itemplate * const itable_xop09095[] = {
-    instrux + 3388,
-    instrux + 3389,
-    instrux + 3390,
-    instrux + 3391,
-};
-
-static const struct itemplate * const itable_xop09096[] = {
-    instrux + 3380,
-    instrux + 3381,
-    instrux + 3382,
-    instrux + 3383,
-};
-
-static const struct itemplate * const itable_xop09097[] = {
-    instrux + 3384,
-    instrux + 3385,
-    instrux + 3386,
-    instrux + 3387,
-};
-
-static const struct itemplate * const itable_xop09098[] = {
-    instrux + 3360,
-    instrux + 3361,
-    instrux + 3362,
-    instrux + 3363,
-};
-
-static const struct itemplate * const itable_xop09099[] = {
-    instrux + 3372,
-    instrux + 3373,
-    instrux + 3374,
-    instrux + 3375,
-};
-
-static const struct itemplate * const itable_xop0909A[] = {
-    instrux + 3364,
-    instrux + 3365,
-    instrux + 3366,
-    instrux + 3367,
-};
-
-static const struct itemplate * const itable_xop0909B[] = {
-    instrux + 3368,
-    instrux + 3369,
-    instrux + 3370,
-    instrux + 3371,
-};
-
-static const struct itemplate * const itable_xop090C1[] = {
-    instrux + 3282,
-    instrux + 3283,
-};
-
-static const struct itemplate * const itable_xop090C2[] = {
-    instrux + 3278,
-    instrux + 3279,
-};
-
-static const struct itemplate * const itable_xop090C3[] = {
-    instrux + 3280,
-    instrux + 3281,
-};
-
-static const struct itemplate * const itable_xop090C6[] = {
-    instrux + 3298,
-    instrux + 3299,
-};
-
-static const struct itemplate * const itable_xop090C7[] = {
-    instrux + 3300,
-    instrux + 3301,
-};
-
-static const struct itemplate * const itable_xop090CB[] = {
-    instrux + 3284,
-    instrux + 3285,
-};
-
-static const struct itemplate * const itable_xop090D1[] = {
-    instrux + 3290,
-    instrux + 3291,
-};
-
-static const struct itemplate * const itable_xop090D2[] = {
-    instrux + 3286,
-    instrux + 3287,
-};
-
-static const struct itemplate * const itable_xop090D3[] = {
-    instrux + 3288,
-    instrux + 3289,
-};
-
-static const struct itemplate * const itable_xop090D6[] = {
-    instrux + 3294,
-    instrux + 3295,
-};
-
-static const struct itemplate * const itable_xop090D7[] = {
-    instrux + 3296,
-    instrux + 3297,
-};
-
-static const struct itemplate * const itable_xop090DB[] = {
-    instrux + 3292,
-    instrux + 3293,
-};
-
-static const struct itemplate * const itable_xop090E1[] = {
-    instrux + 3302,
-    instrux + 3303,
-};
-
-static const struct itemplate * const itable_xop090E2[] = {
-    instrux + 3306,
-    instrux + 3307,
-};
-
-static const struct itemplate * const itable_xop090E3[] = {
-    instrux + 3304,
-    instrux + 3305,
-};
-
-static const struct itemplate * const itable_xop0A010[] = {
-    instrux + 3710,
-    instrux + 3711,
-};
-
-static const struct itemplate * const itable_xop0A012[] = {
-    instrux + 3110,
-    instrux + 3111,
-    instrux + 3112,
-    instrux + 3113,
-};
-
-static const struct disasm_index itable_vex010[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { itable_vex01010, 2 },
-    /* 0x11 */ { itable_vex01011, 2 },
-    /* 0x12 */ { itable_vex01012, 4 },
-    /* 0x13 */ { itable_vex01013, 1 },
-    /* 0x14 */ { itable_vex01014, 4 },
-    /* 0x15 */ { itable_vex01015, 4 },
-    /* 0x16 */ { itable_vex01016, 4 },
-    /* 0x17 */ { itable_vex01017, 1 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { itable_vex01028, 2 },
-    /* 0x29 */ { itable_vex01029, 2 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { itable_vex0102B, 2 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { itable_vex0102E, 1 },
-    /* 0x2f */ { itable_vex0102F, 1 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { itable_vex01041, 2 },
-    /* 0x42 */ { itable_vex01042, 2 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { itable_vex01044, 2 },
-    /* 0x45 */ { itable_vex01045, 2 },
-    /* 0x46 */ { itable_vex01046, 2 },
-    /* 0x47 */ { itable_vex01047, 2 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { itable_vex0104A, 2 },
-    /* 0x4b */ { itable_vex0104B, 2 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { itable_vex01050, 4 },
-    /* 0x51 */ { itable_vex01051, 2 },
-    /* 0x52 */ { itable_vex01052, 2 },
-    /* 0x53 */ { itable_vex01053, 2 },
-    /* 0x54 */ { itable_vex01054, 4 },
-    /* 0x55 */ { itable_vex01055, 4 },
-    /* 0x56 */ { itable_vex01056, 4 },
-    /* 0x57 */ { itable_vex01057, 4 },
-    /* 0x58 */ { itable_vex01058, 4 },
-    /* 0x59 */ { itable_vex01059, 4 },
-    /* 0x5a */ { itable_vex0105A, 2 },
-    /* 0x5b */ { itable_vex0105B, 2 },
-    /* 0x5c */ { itable_vex0105C, 4 },
-    /* 0x5d */ { itable_vex0105D, 4 },
-    /* 0x5e */ { itable_vex0105E, 4 },
-    /* 0x5f */ { itable_vex0105F, 4 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { itable_vex01077, 2 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { itable_vex01090, 2 },
-    /* 0x91 */ { itable_vex01091, 2 },
-    /* 0x92 */ { itable_vex01092, 1 },
-    /* 0x93 */ { itable_vex01093, 1 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { itable_vex01098, 2 },
-    /* 0x99 */ { itable_vex01099, 2 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { itable_vex010AE, 2 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { itable_vex010C2, 188 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { itable_vex010C6, 4 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_vex011[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { itable_vex01110, 2 },
-    /* 0x11 */ { itable_vex01111, 2 },
-    /* 0x12 */ { itable_vex01112, 2 },
-    /* 0x13 */ { itable_vex01113, 1 },
-    /* 0x14 */ { itable_vex01114, 4 },
-    /* 0x15 */ { itable_vex01115, 4 },
-    /* 0x16 */ { itable_vex01116, 2 },
-    /* 0x17 */ { itable_vex01117, 1 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { itable_vex01128, 2 },
-    /* 0x29 */ { itable_vex01129, 2 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { itable_vex0112B, 2 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { itable_vex0112E, 1 },
-    /* 0x2f */ { itable_vex0112F, 1 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { itable_vex01141, 2 },
-    /* 0x42 */ { itable_vex01142, 2 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { itable_vex01144, 2 },
-    /* 0x45 */ { itable_vex01145, 2 },
-    /* 0x46 */ { itable_vex01146, 2 },
-    /* 0x47 */ { itable_vex01147, 2 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { itable_vex0114A, 2 },
-    /* 0x4b */ { itable_vex0114B, 1 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { itable_vex01150, 4 },
-    /* 0x51 */ { itable_vex01151, 2 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { itable_vex01154, 4 },
-    /* 0x55 */ { itable_vex01155, 4 },
-    /* 0x56 */ { itable_vex01156, 4 },
-    /* 0x57 */ { itable_vex01157, 4 },
-    /* 0x58 */ { itable_vex01158, 4 },
-    /* 0x59 */ { itable_vex01159, 4 },
-    /* 0x5a */ { itable_vex0115A, 4 },
-    /* 0x5b */ { itable_vex0115B, 2 },
-    /* 0x5c */ { itable_vex0115C, 4 },
-    /* 0x5d */ { itable_vex0115D, 4 },
-    /* 0x5e */ { itable_vex0115E, 4 },
-    /* 0x5f */ { itable_vex0115F, 4 },
-    /* 0x60 */ { itable_vex01160, 4 },
-    /* 0x61 */ { itable_vex01161, 4 },
-    /* 0x62 */ { itable_vex01162, 4 },
-    /* 0x63 */ { itable_vex01163, 4 },
-    /* 0x64 */ { itable_vex01164, 4 },
-    /* 0x65 */ { itable_vex01165, 4 },
-    /* 0x66 */ { itable_vex01166, 4 },
-    /* 0x67 */ { itable_vex01167, 4 },
-    /* 0x68 */ { itable_vex01168, 4 },
-    /* 0x69 */ { itable_vex01169, 4 },
-    /* 0x6a */ { itable_vex0116A, 4 },
-    /* 0x6b */ { itable_vex0116B, 4 },
-    /* 0x6c */ { itable_vex0116C, 4 },
-    /* 0x6d */ { itable_vex0116D, 4 },
-    /* 0x6e */ { itable_vex0116E, 2 },
-    /* 0x6f */ { itable_vex0116F, 3 },
-    /* 0x70 */ { itable_vex01170, 2 },
-    /* 0x71 */ { itable_vex01171, 12 },
-    /* 0x72 */ { itable_vex01172, 12 },
-    /* 0x73 */ { itable_vex01173, 16 },
-    /* 0x74 */ { itable_vex01174, 4 },
-    /* 0x75 */ { itable_vex01175, 4 },
-    /* 0x76 */ { itable_vex01176, 4 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { itable_vex0117C, 4 },
-    /* 0x7d */ { itable_vex0117D, 4 },
-    /* 0x7e */ { itable_vex0117E, 2 },
-    /* 0x7f */ { itable_vex0117F, 3 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { itable_vex01190, 2 },
-    /* 0x91 */ { itable_vex01191, 2 },
-    /* 0x92 */ { itable_vex01192, 1 },
-    /* 0x93 */ { itable_vex01193, 1 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { itable_vex01198, 2 },
-    /* 0x99 */ { itable_vex01199, 2 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { itable_vex011C2, 188 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { itable_vex011C4, 6 },
-    /* 0xc5 */ { itable_vex011C5, 2 },
-    /* 0xc6 */ { itable_vex011C6, 4 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { itable_vex011D0, 4 },
-    /* 0xd1 */ { itable_vex011D1, 4 },
-    /* 0xd2 */ { itable_vex011D2, 4 },
-    /* 0xd3 */ { itable_vex011D3, 4 },
-    /* 0xd4 */ { itable_vex011D4, 4 },
-    /* 0xd5 */ { itable_vex011D5, 4 },
-    /* 0xd6 */ { itable_vex011D6, 1 },
-    /* 0xd7 */ { itable_vex011D7, 4 },
-    /* 0xd8 */ { itable_vex011D8, 4 },
-    /* 0xd9 */ { itable_vex011D9, 4 },
-    /* 0xda */ { itable_vex011DA, 4 },
-    /* 0xdb */ { itable_vex011DB, 4 },
-    /* 0xdc */ { itable_vex011DC, 4 },
-    /* 0xdd */ { itable_vex011DD, 4 },
-    /* 0xde */ { itable_vex011DE, 4 },
-    /* 0xdf */ { itable_vex011DF, 4 },
-    /* 0xe0 */ { itable_vex011E0, 4 },
-    /* 0xe1 */ { itable_vex011E1, 4 },
-    /* 0xe2 */ { itable_vex011E2, 4 },
-    /* 0xe3 */ { itable_vex011E3, 4 },
-    /* 0xe4 */ { itable_vex011E4, 4 },
-    /* 0xe5 */ { itable_vex011E5, 4 },
-    /* 0xe6 */ { itable_vex011E6, 4 },
-    /* 0xe7 */ { itable_vex011E7, 3 },
-    /* 0xe8 */ { itable_vex011E8, 4 },
-    /* 0xe9 */ { itable_vex011E9, 4 },
-    /* 0xea */ { itable_vex011EA, 4 },
-    /* 0xeb */ { itable_vex011EB, 4 },
-    /* 0xec */ { itable_vex011EC, 4 },
-    /* 0xed */ { itable_vex011ED, 4 },
-    /* 0xee */ { itable_vex011EE, 4 },
-    /* 0xef */ { itable_vex011EF, 4 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { itable_vex011F1, 4 },
-    /* 0xf2 */ { itable_vex011F2, 4 },
-    /* 0xf3 */ { itable_vex011F3, 4 },
-    /* 0xf4 */ { itable_vex011F4, 4 },
-    /* 0xf5 */ { itable_vex011F5, 4 },
-    /* 0xf6 */ { itable_vex011F6, 4 },
-    /* 0xf7 */ { itable_vex011F7, 1 },
-    /* 0xf8 */ { itable_vex011F8, 4 },
-    /* 0xf9 */ { itable_vex011F9, 4 },
-    /* 0xfa */ { itable_vex011FA, 4 },
-    /* 0xfb */ { itable_vex011FB, 4 },
-    /* 0xfc */ { itable_vex011FC, 4 },
-    /* 0xfd */ { itable_vex011FD, 4 },
-    /* 0xfe */ { itable_vex011FE, 4 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_vex012[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { itable_vex01210, 3 },
-    /* 0x11 */ { itable_vex01211, 3 },
-    /* 0x12 */ { itable_vex01212, 2 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { NULL, 0 },
-    /* 0x15 */ { NULL, 0 },
-    /* 0x16 */ { itable_vex01216, 2 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { itable_vex0122A, 4 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { itable_vex0122C, 2 },
-    /* 0x2d */ { itable_vex0122D, 2 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { itable_vex01251, 2 },
-    /* 0x52 */ { itable_vex01252, 2 },
-    /* 0x53 */ { itable_vex01253, 2 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { itable_vex01258, 2 },
-    /* 0x59 */ { itable_vex01259, 2 },
-    /* 0x5a */ { itable_vex0125A, 2 },
-    /* 0x5b */ { itable_vex0125B, 2 },
-    /* 0x5c */ { itable_vex0125C, 2 },
-    /* 0x5d */ { itable_vex0125D, 2 },
-    /* 0x5e */ { itable_vex0125E, 2 },
-    /* 0x5f */ { itable_vex0125F, 2 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { itable_vex0126F, 3 },
-    /* 0x70 */ { itable_vex01270, 2 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { itable_vex0127E, 1 },
-    /* 0x7f */ { itable_vex0127F, 3 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { itable_vex012C2, 94 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { itable_vex012E6, 2 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_vex013[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { itable_vex01310, 3 },
-    /* 0x11 */ { itable_vex01311, 3 },
-    /* 0x12 */ { itable_vex01312, 2 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { NULL, 0 },
-    /* 0x15 */ { NULL, 0 },
-    /* 0x16 */ { NULL, 0 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { itable_vex0132A, 4 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { itable_vex0132C, 2 },
-    /* 0x2d */ { itable_vex0132D, 2 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { itable_vex01351, 2 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { itable_vex01358, 2 },
-    /* 0x59 */ { itable_vex01359, 2 },
-    /* 0x5a */ { itable_vex0135A, 2 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { itable_vex0135C, 2 },
-    /* 0x5d */ { itable_vex0135D, 2 },
-    /* 0x5e */ { itable_vex0135E, 2 },
-    /* 0x5f */ { itable_vex0135F, 2 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { itable_vex01370, 2 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { itable_vex0137C, 4 },
-    /* 0x7d */ { itable_vex0137D, 4 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { itable_vex01392, 2 },
-    /* 0x93 */ { itable_vex01393, 2 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { itable_vex013C2, 94 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { itable_vex013D0, 4 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { itable_vex013E6, 4 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { itable_vex013F0, 3 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_vex020[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { NULL, 0 },
-    /* 0x11 */ { NULL, 0 },
-    /* 0x12 */ { NULL, 0 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { NULL, 0 },
-    /* 0x15 */ { NULL, 0 },
-    /* 0x16 */ { NULL, 0 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { NULL, 0 },
-    /* 0x59 */ { NULL, 0 },
-    /* 0x5a */ { NULL, 0 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { NULL, 0 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { itable_vex020F2, 2 },
-    /* 0xf3 */ { itable_vex020F3, 6 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { itable_vex020F5, 2 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { itable_vex020F7, 2 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_vex021[256] = {
-    /* 0x00 */ { itable_vex02100, 4 },
-    /* 0x01 */ { itable_vex02101, 4 },
-    /* 0x02 */ { itable_vex02102, 4 },
-    /* 0x03 */ { itable_vex02103, 4 },
-    /* 0x04 */ { itable_vex02104, 4 },
-    /* 0x05 */ { itable_vex02105, 4 },
-    /* 0x06 */ { itable_vex02106, 4 },
-    /* 0x07 */ { itable_vex02107, 4 },
-    /* 0x08 */ { itable_vex02108, 4 },
-    /* 0x09 */ { itable_vex02109, 4 },
-    /* 0x0a */ { itable_vex0210A, 4 },
-    /* 0x0b */ { itable_vex0210B, 4 },
-    /* 0x0c */ { itable_vex0210C, 4 },
-    /* 0x0d */ { itable_vex0210D, 4 },
-    /* 0x0e */ { itable_vex0210E, 2 },
-    /* 0x0f */ { itable_vex0210F, 2 },
-    /* 0x10 */ { NULL, 0 },
-    /* 0x11 */ { NULL, 0 },
-    /* 0x12 */ { NULL, 0 },
-    /* 0x13 */ { itable_vex02113, 2 },
-    /* 0x14 */ { NULL, 0 },
-    /* 0x15 */ { NULL, 0 },
-    /* 0x16 */ { itable_vex02116, 2 },
-    /* 0x17 */ { itable_vex02117, 2 },
-    /* 0x18 */ { itable_vex02118, 4 },
-    /* 0x19 */ { itable_vex02119, 2 },
-    /* 0x1a */ { itable_vex0211A, 1 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { itable_vex0211C, 2 },
-    /* 0x1d */ { itable_vex0211D, 2 },
-    /* 0x1e */ { itable_vex0211E, 2 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { itable_vex02120, 2 },
-    /* 0x21 */ { itable_vex02121, 3 },
-    /* 0x22 */ { itable_vex02122, 3 },
-    /* 0x23 */ { itable_vex02123, 2 },
-    /* 0x24 */ { itable_vex02124, 3 },
-    /* 0x25 */ { itable_vex02125, 2 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { itable_vex02128, 4 },
-    /* 0x29 */ { itable_vex02129, 4 },
-    /* 0x2a */ { itable_vex0212A, 2 },
-    /* 0x2b */ { itable_vex0212B, 4 },
-    /* 0x2c */ { itable_vex0212C, 2 },
-    /* 0x2d */ { itable_vex0212D, 2 },
-    /* 0x2e */ { itable_vex0212E, 2 },
-    /* 0x2f */ { itable_vex0212F, 2 },
-    /* 0x30 */ { itable_vex02130, 2 },
-    /* 0x31 */ { itable_vex02131, 3 },
-    /* 0x32 */ { itable_vex02132, 3 },
-    /* 0x33 */ { itable_vex02133, 2 },
-    /* 0x34 */ { itable_vex02134, 3 },
-    /* 0x35 */ { itable_vex02135, 2 },
-    /* 0x36 */ { itable_vex02136, 2 },
-    /* 0x37 */ { itable_vex02137, 4 },
-    /* 0x38 */ { itable_vex02138, 4 },
-    /* 0x39 */ { itable_vex02139, 4 },
-    /* 0x3a */ { itable_vex0213A, 4 },
-    /* 0x3b */ { itable_vex0213B, 4 },
-    /* 0x3c */ { itable_vex0213C, 4 },
-    /* 0x3d */ { itable_vex0213D, 4 },
-    /* 0x3e */ { itable_vex0213E, 4 },
-    /* 0x3f */ { itable_vex0213F, 4 },
-    /* 0x40 */ { itable_vex02140, 4 },
-    /* 0x41 */ { itable_vex02141, 1 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { itable_vex02145, 8 },
-    /* 0x46 */ { itable_vex02146, 4 },
-    /* 0x47 */ { itable_vex02147, 8 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { itable_vex02158, 4 },
-    /* 0x59 */ { itable_vex02159, 4 },
-    /* 0x5a */ { itable_vex0215A, 1 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { itable_vex02178, 4 },
-    /* 0x79 */ { itable_vex02179, 4 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { itable_vex0218C, 8 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { itable_vex0218E, 8 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { itable_vex02190, 4 },
-    /* 0x91 */ { itable_vex02191, 4 },
-    /* 0x92 */ { itable_vex02192, 4 },
-    /* 0x93 */ { itable_vex02193, 4 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { itable_vex02196, 8 },
-    /* 0x97 */ { itable_vex02197, 8 },
-    /* 0x98 */ { itable_vex02198, 8 },
-    /* 0x99 */ { itable_vex02199, 4 },
-    /* 0x9a */ { itable_vex0219A, 8 },
-    /* 0x9b */ { itable_vex0219B, 4 },
-    /* 0x9c */ { itable_vex0219C, 8 },
-    /* 0x9d */ { itable_vex0219D, 4 },
-    /* 0x9e */ { itable_vex0219E, 8 },
-    /* 0x9f */ { itable_vex0219F, 4 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { itable_vex021A6, 8 },
-    /* 0xa7 */ { itable_vex021A7, 8 },
-    /* 0xa8 */ { itable_vex021A8, 8 },
-    /* 0xa9 */ { itable_vex021A9, 4 },
-    /* 0xaa */ { itable_vex021AA, 8 },
-    /* 0xab */ { itable_vex021AB, 4 },
-    /* 0xac */ { itable_vex021AC, 8 },
-    /* 0xad */ { itable_vex021AD, 4 },
-    /* 0xae */ { itable_vex021AE, 8 },
-    /* 0xaf */ { itable_vex021AF, 4 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { itable_vex021B6, 8 },
-    /* 0xb7 */ { itable_vex021B7, 8 },
-    /* 0xb8 */ { itable_vex021B8, 8 },
-    /* 0xb9 */ { itable_vex021B9, 4 },
-    /* 0xba */ { itable_vex021BA, 8 },
-    /* 0xbb */ { itable_vex021BB, 4 },
-    /* 0xbc */ { itable_vex021BC, 8 },
-    /* 0xbd */ { itable_vex021BD, 4 },
-    /* 0xbe */ { itable_vex021BE, 8 },
-    /* 0xbf */ { itable_vex021BF, 4 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { NULL, 0 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { itable_vex021DB, 1 },
-    /* 0xdc */ { itable_vex021DC, 2 },
-    /* 0xdd */ { itable_vex021DD, 2 },
-    /* 0xde */ { itable_vex021DE, 2 },
-    /* 0xdf */ { itable_vex021DF, 2 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { itable_vex021F7, 2 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_vex022[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { NULL, 0 },
-    /* 0x11 */ { NULL, 0 },
-    /* 0x12 */ { NULL, 0 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { NULL, 0 },
-    /* 0x15 */ { NULL, 0 },
-    /* 0x16 */ { NULL, 0 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { NULL, 0 },
-    /* 0x59 */ { NULL, 0 },
-    /* 0x5a */ { NULL, 0 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { NULL, 0 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { itable_vex022F5, 2 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { itable_vex022F7, 2 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_vex023[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { NULL, 0 },
-    /* 0x11 */ { NULL, 0 },
-    /* 0x12 */ { NULL, 0 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { NULL, 0 },
-    /* 0x15 */ { NULL, 0 },
-    /* 0x16 */ { NULL, 0 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { NULL, 0 },
-    /* 0x59 */ { NULL, 0 },
-    /* 0x5a */ { NULL, 0 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { NULL, 0 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { itable_vex023F5, 2 },
-    /* 0xf6 */ { itable_vex023F6, 2 },
-    /* 0xf7 */ { itable_vex023F7, 2 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_vex031[256] = {
-    /* 0x00 */ { itable_vex03100, 1 },
-    /* 0x01 */ { itable_vex03101, 1 },
-    /* 0x02 */ { itable_vex03102, 4 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { itable_vex03104, 2 },
-    /* 0x05 */ { itable_vex03105, 2 },
-    /* 0x06 */ { itable_vex03106, 2 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { itable_vex03108, 2 },
-    /* 0x09 */ { itable_vex03109, 2 },
-    /* 0x0a */ { itable_vex0310A, 2 },
-    /* 0x0b */ { itable_vex0310B, 2 },
-    /* 0x0c */ { itable_vex0310C, 4 },
-    /* 0x0d */ { itable_vex0310D, 4 },
-    /* 0x0e */ { itable_vex0310E, 4 },
-    /* 0x0f */ { itable_vex0310F, 4 },
-    /* 0x10 */ { NULL, 0 },
-    /* 0x11 */ { NULL, 0 },
-    /* 0x12 */ { NULL, 0 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { itable_vex03114, 3 },
-    /* 0x15 */ { itable_vex03115, 3 },
-    /* 0x16 */ { itable_vex03116, 3 },
-    /* 0x17 */ { itable_vex03117, 1 },
-    /* 0x18 */ { itable_vex03118, 2 },
-    /* 0x19 */ { itable_vex03119, 1 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { itable_vex0311D, 2 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { itable_vex03120, 6 },
-    /* 0x21 */ { itable_vex03121, 2 },
-    /* 0x22 */ { itable_vex03122, 8 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { itable_vex03130, 2 },
-    /* 0x31 */ { itable_vex03131, 2 },
-    /* 0x32 */ { itable_vex03132, 2 },
-    /* 0x33 */ { itable_vex03133, 2 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { itable_vex03138, 2 },
-    /* 0x39 */ { itable_vex03139, 1 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { itable_vex03140, 4 },
-    /* 0x41 */ { itable_vex03141, 2 },
-    /* 0x42 */ { itable_vex03142, 4 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { itable_vex03144, 10 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { itable_vex03146, 2 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { itable_vex0314A, 4 },
-    /* 0x4b */ { itable_vex0314B, 4 },
-    /* 0x4c */ { itable_vex0314C, 4 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { NULL, 0 },
-    /* 0x59 */ { NULL, 0 },
-    /* 0x5a */ { NULL, 0 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { itable_vex0315C, 8 },
-    /* 0x5d */ { itable_vex0315D, 8 },
-    /* 0x5e */ { itable_vex0315E, 8 },
-    /* 0x5f */ { itable_vex0315F, 8 },
-    /* 0x60 */ { itable_vex03160, 1 },
-    /* 0x61 */ { itable_vex03161, 1 },
-    /* 0x62 */ { itable_vex03162, 1 },
-    /* 0x63 */ { itable_vex03163, 1 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { itable_vex03168, 8 },
-    /* 0x69 */ { itable_vex03169, 8 },
-    /* 0x6a */ { itable_vex0316A, 4 },
-    /* 0x6b */ { itable_vex0316B, 4 },
-    /* 0x6c */ { itable_vex0316C, 8 },
-    /* 0x6d */ { itable_vex0316D, 8 },
-    /* 0x6e */ { itable_vex0316E, 4 },
-    /* 0x6f */ { itable_vex0316F, 4 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { itable_vex03178, 8 },
-    /* 0x79 */ { itable_vex03179, 8 },
-    /* 0x7a */ { itable_vex0317A, 4 },
-    /* 0x7b */ { itable_vex0317B, 4 },
-    /* 0x7c */ { itable_vex0317C, 8 },
-    /* 0x7d */ { itable_vex0317D, 8 },
-    /* 0x7e */ { itable_vex0317E, 4 },
-    /* 0x7f */ { itable_vex0317F, 4 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { NULL, 0 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { itable_vex031DF, 1 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_vex033[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { NULL, 0 },
-    /* 0x11 */ { NULL, 0 },
-    /* 0x12 */ { NULL, 0 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { NULL, 0 },
-    /* 0x15 */ { NULL, 0 },
-    /* 0x16 */ { NULL, 0 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { NULL, 0 },
-    /* 0x59 */ { NULL, 0 },
-    /* 0x5a */ { NULL, 0 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { NULL, 0 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { itable_vex033F0, 2 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_xop080[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { NULL, 0 },
-    /* 0x11 */ { NULL, 0 },
-    /* 0x12 */ { NULL, 0 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { NULL, 0 },
-    /* 0x15 */ { NULL, 0 },
-    /* 0x16 */ { NULL, 0 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { NULL, 0 },
-    /* 0x59 */ { NULL, 0 },
-    /* 0x5a */ { NULL, 0 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { itable_xop08085, 2 },
-    /* 0x86 */ { itable_xop08086, 2 },
-    /* 0x87 */ { itable_xop08087, 2 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { itable_xop0808E, 2 },
-    /* 0x8f */ { itable_xop0808F, 2 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { itable_xop08095, 2 },
-    /* 0x96 */ { itable_xop08096, 2 },
-    /* 0x97 */ { itable_xop08097, 2 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { itable_xop0809E, 2 },
-    /* 0x9f */ { itable_xop0809F, 2 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { itable_xop080A2, 8 },
-    /* 0xa3 */ { itable_xop080A3, 4 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { itable_xop080A6, 2 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { itable_xop080B6, 2 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { itable_xop080C0, 2 },
-    /* 0xc1 */ { itable_xop080C1, 2 },
-    /* 0xc2 */ { itable_xop080C2, 2 },
-    /* 0xc3 */ { itable_xop080C3, 2 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { itable_xop080CC, 2 },
-    /* 0xcd */ { itable_xop080CD, 2 },
-    /* 0xce */ { itable_xop080CE, 2 },
-    /* 0xcf */ { itable_xop080CF, 2 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { itable_xop080EC, 2 },
-    /* 0xed */ { itable_xop080ED, 2 },
-    /* 0xee */ { itable_xop080EE, 2 },
-    /* 0xef */ { itable_xop080EF, 2 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_xop090[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { itable_xop09001, 14 },
-    /* 0x02 */ { itable_xop09002, 4 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { NULL, 0 },
-    /* 0x11 */ { NULL, 0 },
-    /* 0x12 */ { itable_xop09012, 4 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { NULL, 0 },
-    /* 0x15 */ { NULL, 0 },
-    /* 0x16 */ { NULL, 0 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { NULL, 0 },
-    /* 0x59 */ { NULL, 0 },
-    /* 0x5a */ { NULL, 0 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { itable_xop09080, 4 },
-    /* 0x81 */ { itable_xop09081, 4 },
-    /* 0x82 */ { itable_xop09082, 2 },
-    /* 0x83 */ { itable_xop09083, 2 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { itable_xop09090, 4 },
-    /* 0x91 */ { itable_xop09091, 4 },
-    /* 0x92 */ { itable_xop09092, 4 },
-    /* 0x93 */ { itable_xop09093, 4 },
-    /* 0x94 */ { itable_xop09094, 4 },
-    /* 0x95 */ { itable_xop09095, 4 },
-    /* 0x96 */ { itable_xop09096, 4 },
-    /* 0x97 */ { itable_xop09097, 4 },
-    /* 0x98 */ { itable_xop09098, 4 },
-    /* 0x99 */ { itable_xop09099, 4 },
-    /* 0x9a */ { itable_xop0909A, 4 },
-    /* 0x9b */ { itable_xop0909B, 4 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { itable_xop090C1, 2 },
-    /* 0xc2 */ { itable_xop090C2, 2 },
-    /* 0xc3 */ { itable_xop090C3, 2 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { itable_xop090C6, 2 },
-    /* 0xc7 */ { itable_xop090C7, 2 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { itable_xop090CB, 2 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { itable_xop090D1, 2 },
-    /* 0xd2 */ { itable_xop090D2, 2 },
-    /* 0xd3 */ { itable_xop090D3, 2 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { itable_xop090D6, 2 },
-    /* 0xd7 */ { itable_xop090D7, 2 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { itable_xop090DB, 2 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { itable_xop090E1, 2 },
-    /* 0xe2 */ { itable_xop090E2, 2 },
-    /* 0xe3 */ { itable_xop090E3, 2 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_xop0A0[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { itable_xop0A010, 2 },
-    /* 0x11 */ { NULL, 0 },
-    /* 0x12 */ { itable_xop0A012, 4 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { NULL, 0 },
-    /* 0x15 */ { NULL, 0 },
-    /* 0x16 */ { NULL, 0 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { NULL, 0 },
-    /* 0x59 */ { NULL, 0 },
-    /* 0x5a */ { NULL, 0 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { NULL, 0 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_evex010[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { itable_evex01010, 3 },
-    /* 0x11 */ { itable_evex01011, 6 },
-    /* 0x12 */ { itable_evex01012, 4 },
-    /* 0x13 */ { itable_evex01013, 1 },
-    /* 0x14 */ { itable_evex01014, 6 },
-    /* 0x15 */ { itable_evex01015, 6 },
-    /* 0x16 */ { itable_evex01016, 4 },
-    /* 0x17 */ { itable_evex01017, 1 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { itable_evex01028, 3 },
-    /* 0x29 */ { itable_evex01029, 6 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { itable_evex0102B, 3 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { itable_evex0102E, 1 },
-    /* 0x2f */ { itable_evex0102F, 1 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { itable_evex01051, 3 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { itable_evex01054, 6 },
-    /* 0x55 */ { itable_evex01055, 6 },
-    /* 0x56 */ { itable_evex01056, 6 },
-    /* 0x57 */ { itable_evex01057, 6 },
-    /* 0x58 */ { itable_evex01058, 6 },
-    /* 0x59 */ { itable_evex01059, 6 },
-    /* 0x5a */ { itable_evex0105A, 3 },
-    /* 0x5b */ { itable_evex0105B, 6 },
-    /* 0x5c */ { itable_evex0105C, 6 },
-    /* 0x5d */ { itable_evex0105D, 6 },
-    /* 0x5e */ { itable_evex0105E, 6 },
-    /* 0x5f */ { itable_evex0105F, 6 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { itable_evex01078, 6 },
-    /* 0x79 */ { itable_evex01079, 6 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { itable_evex010C2, 3 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { itable_evex010C6, 6 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_evex011[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { itable_evex01110, 3 },
-    /* 0x11 */ { itable_evex01111, 6 },
-    /* 0x12 */ { itable_evex01112, 2 },
-    /* 0x13 */ { itable_evex01113, 1 },
-    /* 0x14 */ { itable_evex01114, 6 },
-    /* 0x15 */ { itable_evex01115, 6 },
-    /* 0x16 */ { itable_evex01116, 2 },
-    /* 0x17 */ { itable_evex01117, 1 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { itable_evex01128, 3 },
-    /* 0x29 */ { itable_evex01129, 6 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { itable_evex0112B, 3 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { itable_evex0112E, 1 },
-    /* 0x2f */ { itable_evex0112F, 1 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { itable_evex01151, 3 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { itable_evex01154, 6 },
-    /* 0x55 */ { itable_evex01155, 6 },
-    /* 0x56 */ { itable_evex01156, 6 },
-    /* 0x57 */ { itable_evex01157, 6 },
-    /* 0x58 */ { itable_evex01158, 6 },
-    /* 0x59 */ { itable_evex01159, 6 },
-    /* 0x5a */ { itable_evex0115A, 3 },
-    /* 0x5b */ { itable_evex0115B, 3 },
-    /* 0x5c */ { itable_evex0115C, 6 },
-    /* 0x5d */ { itable_evex0115D, 6 },
-    /* 0x5e */ { itable_evex0115E, 6 },
-    /* 0x5f */ { itable_evex0115F, 6 },
-    /* 0x60 */ { itable_evex01160, 6 },
-    /* 0x61 */ { itable_evex01161, 6 },
-    /* 0x62 */ { itable_evex01162, 6 },
-    /* 0x63 */ { itable_evex01163, 6 },
-    /* 0x64 */ { itable_evex01164, 3 },
-    /* 0x65 */ { itable_evex01165, 3 },
-    /* 0x66 */ { itable_evex01166, 3 },
-    /* 0x67 */ { itable_evex01167, 6 },
-    /* 0x68 */ { itable_evex01168, 6 },
-    /* 0x69 */ { itable_evex01169, 6 },
-    /* 0x6a */ { itable_evex0116A, 6 },
-    /* 0x6b */ { itable_evex0116B, 6 },
-    /* 0x6c */ { itable_evex0116C, 6 },
-    /* 0x6d */ { itable_evex0116D, 6 },
-    /* 0x6e */ { itable_evex0116E, 2 },
-    /* 0x6f */ { itable_evex0116F, 6 },
-    /* 0x70 */ { itable_evex01170, 3 },
-    /* 0x71 */ { itable_evex01171, 18 },
-    /* 0x72 */ { itable_evex01172, 48 },
-    /* 0x73 */ { itable_evex01173, 24 },
-    /* 0x74 */ { itable_evex01174, 3 },
-    /* 0x75 */ { itable_evex01175, 3 },
-    /* 0x76 */ { itable_evex01176, 3 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { itable_evex01178, 6 },
-    /* 0x79 */ { itable_evex01179, 6 },
-    /* 0x7a */ { itable_evex0117A, 6 },
-    /* 0x7b */ { itable_evex0117B, 6 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { itable_evex0117E, 2 },
-    /* 0x7f */ { itable_evex0117F, 12 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { itable_evex011C2, 3 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { itable_evex011C4, 4 },
-    /* 0xc5 */ { itable_evex011C5, 3 },
-    /* 0xc6 */ { itable_evex011C6, 6 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { itable_evex011D1, 6 },
-    /* 0xd2 */ { itable_evex011D2, 6 },
-    /* 0xd3 */ { itable_evex011D3, 6 },
-    /* 0xd4 */ { itable_evex011D4, 6 },
-    /* 0xd5 */ { itable_evex011D5, 6 },
-    /* 0xd6 */ { itable_evex011D6, 1 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { itable_evex011D8, 6 },
-    /* 0xd9 */ { itable_evex011D9, 6 },
-    /* 0xda */ { itable_evex011DA, 6 },
-    /* 0xdb */ { itable_evex011DB, 12 },
-    /* 0xdc */ { itable_evex011DC, 6 },
-    /* 0xdd */ { itable_evex011DD, 6 },
-    /* 0xde */ { itable_evex011DE, 6 },
-    /* 0xdf */ { itable_evex011DF, 12 },
-    /* 0xe0 */ { itable_evex011E0, 6 },
-    /* 0xe1 */ { itable_evex011E1, 6 },
-    /* 0xe2 */ { itable_evex011E2, 12 },
-    /* 0xe3 */ { itable_evex011E3, 6 },
-    /* 0xe4 */ { itable_evex011E4, 6 },
-    /* 0xe5 */ { itable_evex011E5, 6 },
-    /* 0xe6 */ { itable_evex011E6, 3 },
-    /* 0xe7 */ { itable_evex011E7, 3 },
-    /* 0xe8 */ { itable_evex011E8, 6 },
-    /* 0xe9 */ { itable_evex011E9, 6 },
-    /* 0xea */ { itable_evex011EA, 6 },
-    /* 0xeb */ { itable_evex011EB, 12 },
-    /* 0xec */ { itable_evex011EC, 6 },
-    /* 0xed */ { itable_evex011ED, 6 },
-    /* 0xee */ { itable_evex011EE, 6 },
-    /* 0xef */ { itable_evex011EF, 12 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { itable_evex011F1, 6 },
-    /* 0xf2 */ { itable_evex011F2, 6 },
-    /* 0xf3 */ { itable_evex011F3, 6 },
-    /* 0xf4 */ { itable_evex011F4, 6 },
-    /* 0xf5 */ { itable_evex011F5, 6 },
-    /* 0xf6 */ { itable_evex011F6, 6 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { itable_evex011F8, 6 },
-    /* 0xf9 */ { itable_evex011F9, 6 },
-    /* 0xfa */ { itable_evex011FA, 6 },
-    /* 0xfb */ { itable_evex011FB, 6 },
-    /* 0xfc */ { itable_evex011FC, 6 },
-    /* 0xfd */ { itable_evex011FD, 6 },
-    /* 0xfe */ { itable_evex011FE, 6 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_evex012[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { itable_evex01210, 3 },
-    /* 0x11 */ { itable_evex01211, 3 },
-    /* 0x12 */ { itable_evex01212, 3 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { NULL, 0 },
-    /* 0x15 */ { NULL, 0 },
-    /* 0x16 */ { itable_evex01216, 3 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { itable_evex0122A, 2 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { itable_evex0122C, 2 },
-    /* 0x2d */ { itable_evex0122D, 2 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { itable_evex01251, 2 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { itable_evex01258, 2 },
-    /* 0x59 */ { itable_evex01259, 2 },
-    /* 0x5a */ { itable_evex0125A, 1 },
-    /* 0x5b */ { itable_evex0125B, 3 },
-    /* 0x5c */ { itable_evex0125C, 2 },
-    /* 0x5d */ { itable_evex0125D, 2 },
-    /* 0x5e */ { itable_evex0125E, 2 },
-    /* 0x5f */ { itable_evex0125F, 2 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { itable_evex0126F, 6 },
-    /* 0x70 */ { itable_evex01270, 3 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { itable_evex01278, 2 },
-    /* 0x79 */ { itable_evex01279, 2 },
-    /* 0x7a */ { itable_evex0127A, 6 },
-    /* 0x7b */ { itable_evex0127B, 2 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { itable_evex0127E, 1 },
-    /* 0x7f */ { itable_evex0127F, 12 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { itable_evex012C2, 1 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { itable_evex012E6, 6 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_evex013[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { itable_evex01310, 3 },
-    /* 0x11 */ { itable_evex01311, 3 },
-    /* 0x12 */ { itable_evex01312, 3 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { NULL, 0 },
-    /* 0x15 */ { NULL, 0 },
-    /* 0x16 */ { NULL, 0 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { itable_evex0132A, 2 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { itable_evex0132C, 2 },
-    /* 0x2d */ { itable_evex0132D, 2 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { itable_evex01351, 2 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { itable_evex01358, 2 },
-    /* 0x59 */ { itable_evex01359, 2 },
-    /* 0x5a */ { itable_evex0135A, 1 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { itable_evex0135C, 2 },
-    /* 0x5d */ { itable_evex0135D, 2 },
-    /* 0x5e */ { itable_evex0135E, 2 },
-    /* 0x5f */ { itable_evex0135F, 2 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { itable_evex0136F, 6 },
-    /* 0x70 */ { itable_evex01370, 3 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { itable_evex01378, 2 },
-    /* 0x79 */ { itable_evex01379, 2 },
-    /* 0x7a */ { itable_evex0137A, 6 },
-    /* 0x7b */ { itable_evex0137B, 2 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { itable_evex0137F, 12 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { itable_evex013C2, 1 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { itable_evex013E6, 3 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_evex021[256] = {
-    /* 0x00 */ { itable_evex02100, 6 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { itable_evex02104, 6 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { itable_evex0210B, 6 },
-    /* 0x0c */ { itable_evex0210C, 6 },
-    /* 0x0d */ { itable_evex0210D, 6 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { itable_evex02110, 6 },
-    /* 0x11 */ { itable_evex02111, 6 },
-    /* 0x12 */ { itable_evex02112, 6 },
-    /* 0x13 */ { itable_evex02113, 3 },
-    /* 0x14 */ { itable_evex02114, 12 },
-    /* 0x15 */ { itable_evex02115, 12 },
-    /* 0x16 */ { itable_evex02116, 8 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { itable_evex02118, 6 },
-    /* 0x19 */ { itable_evex02119, 6 },
-    /* 0x1a */ { itable_evex0211A, 4 },
-    /* 0x1b */ { itable_evex0211B, 2 },
-    /* 0x1c */ { itable_evex0211C, 3 },
-    /* 0x1d */ { itable_evex0211D, 3 },
-    /* 0x1e */ { itable_evex0211E, 3 },
-    /* 0x1f */ { itable_evex0211F, 3 },
-    /* 0x20 */ { itable_evex02120, 3 },
-    /* 0x21 */ { itable_evex02121, 3 },
-    /* 0x22 */ { itable_evex02122, 3 },
-    /* 0x23 */ { itable_evex02123, 3 },
-    /* 0x24 */ { itable_evex02124, 3 },
-    /* 0x25 */ { itable_evex02125, 3 },
-    /* 0x26 */ { itable_evex02126, 6 },
-    /* 0x27 */ { itable_evex02127, 6 },
-    /* 0x28 */ { itable_evex02128, 6 },
-    /* 0x29 */ { itable_evex02129, 3 },
-    /* 0x2a */ { itable_evex0212A, 3 },
-    /* 0x2b */ { itable_evex0212B, 6 },
-    /* 0x2c */ { itable_evex0212C, 12 },
-    /* 0x2d */ { itable_evex0212D, 4 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { itable_evex02130, 3 },
-    /* 0x31 */ { itable_evex02131, 3 },
-    /* 0x32 */ { itable_evex02132, 3 },
-    /* 0x33 */ { itable_evex02133, 3 },
-    /* 0x34 */ { itable_evex02134, 3 },
-    /* 0x35 */ { itable_evex02135, 3 },
-    /* 0x36 */ { itable_evex02136, 8 },
-    /* 0x37 */ { itable_evex02137, 3 },
-    /* 0x38 */ { itable_evex02138, 6 },
-    /* 0x39 */ { itable_evex02139, 12 },
-    /* 0x3a */ { itable_evex0213A, 6 },
-    /* 0x3b */ { itable_evex0213B, 12 },
-    /* 0x3c */ { itable_evex0213C, 6 },
-    /* 0x3d */ { itable_evex0213D, 12 },
-    /* 0x3e */ { itable_evex0213E, 6 },
-    /* 0x3f */ { itable_evex0213F, 12 },
-    /* 0x40 */ { itable_evex02140, 12 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { itable_evex02142, 6 },
-    /* 0x43 */ { itable_evex02143, 2 },
-    /* 0x44 */ { itable_evex02144, 6 },
-    /* 0x45 */ { itable_evex02145, 12 },
-    /* 0x46 */ { itable_evex02146, 12 },
-    /* 0x47 */ { itable_evex02147, 12 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { itable_evex0214C, 6 },
-    /* 0x4d */ { itable_evex0214D, 4 },
-    /* 0x4e */ { itable_evex0214E, 6 },
-    /* 0x4f */ { itable_evex0214F, 4 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { itable_evex02158, 6 },
-    /* 0x59 */ { itable_evex02159, 9 },
-    /* 0x5a */ { itable_evex0215A, 4 },
-    /* 0x5b */ { itable_evex0215B, 2 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { itable_evex02164, 6 },
-    /* 0x65 */ { itable_evex02165, 6 },
-    /* 0x66 */ { itable_evex02166, 6 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { itable_evex02175, 6 },
-    /* 0x76 */ { itable_evex02176, 6 },
-    /* 0x77 */ { itable_evex02177, 6 },
-    /* 0x78 */ { itable_evex02178, 3 },
-    /* 0x79 */ { itable_evex02179, 3 },
-    /* 0x7a */ { itable_evex0217A, 12 },
-    /* 0x7b */ { itable_evex0217B, 9 },
-    /* 0x7c */ { itable_evex0217C, 6 },
-    /* 0x7d */ { itable_evex0217D, 6 },
-    /* 0x7e */ { itable_evex0217E, 6 },
-    /* 0x7f */ { itable_evex0217F, 6 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { itable_evex02183, 6 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { itable_evex02188, 12 },
-    /* 0x89 */ { itable_evex02189, 12 },
-    /* 0x8a */ { itable_evex0218A, 12 },
-    /* 0x8b */ { itable_evex0218B, 12 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { itable_evex0218D, 12 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { itable_evex02190, 6 },
-    /* 0x91 */ { itable_evex02191, 6 },
-    /* 0x92 */ { itable_evex02192, 6 },
-    /* 0x93 */ { itable_evex02193, 6 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { itable_evex02196, 6 },
-    /* 0x97 */ { itable_evex02197, 6 },
-    /* 0x98 */ { itable_evex02198, 6 },
-    /* 0x99 */ { itable_evex02199, 2 },
-    /* 0x9a */ { itable_evex0219A, 6 },
-    /* 0x9b */ { itable_evex0219B, 2 },
-    /* 0x9c */ { itable_evex0219C, 6 },
-    /* 0x9d */ { itable_evex0219D, 2 },
-    /* 0x9e */ { itable_evex0219E, 6 },
-    /* 0x9f */ { itable_evex0219F, 2 },
-    /* 0xa0 */ { itable_evex021A0, 6 },
-    /* 0xa1 */ { itable_evex021A1, 6 },
-    /* 0xa2 */ { itable_evex021A2, 6 },
-    /* 0xa3 */ { itable_evex021A3, 6 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { itable_evex021A6, 6 },
-    /* 0xa7 */ { itable_evex021A7, 6 },
-    /* 0xa8 */ { itable_evex021A8, 6 },
-    /* 0xa9 */ { itable_evex021A9, 2 },
-    /* 0xaa */ { itable_evex021AA, 6 },
-    /* 0xab */ { itable_evex021AB, 2 },
-    /* 0xac */ { itable_evex021AC, 6 },
-    /* 0xad */ { itable_evex021AD, 2 },
-    /* 0xae */ { itable_evex021AE, 6 },
-    /* 0xaf */ { itable_evex021AF, 2 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { itable_evex021B4, 3 },
-    /* 0xb5 */ { itable_evex021B5, 3 },
-    /* 0xb6 */ { itable_evex021B6, 6 },
-    /* 0xb7 */ { itable_evex021B7, 6 },
-    /* 0xb8 */ { itable_evex021B8, 6 },
-    /* 0xb9 */ { itable_evex021B9, 2 },
-    /* 0xba */ { itable_evex021BA, 6 },
-    /* 0xbb */ { itable_evex021BB, 2 },
-    /* 0xbc */ { itable_evex021BC, 6 },
-    /* 0xbd */ { itable_evex021BD, 2 },
-    /* 0xbe */ { itable_evex021BE, 6 },
-    /* 0xbf */ { itable_evex021BF, 2 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { NULL, 0 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { itable_evex021C4, 6 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { itable_evex021C6, 8 },
-    /* 0xc7 */ { itable_evex021C7, 8 },
-    /* 0xc8 */ { itable_evex021C8, 2 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { itable_evex021CA, 2 },
-    /* 0xcb */ { itable_evex021CB, 4 },
-    /* 0xcc */ { itable_evex021CC, 2 },
-    /* 0xcd */ { itable_evex021CD, 4 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_evex022[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { itable_evex02210, 6 },
-    /* 0x11 */ { itable_evex02211, 6 },
-    /* 0x12 */ { itable_evex02212, 6 },
-    /* 0x13 */ { itable_evex02213, 6 },
-    /* 0x14 */ { itable_evex02214, 6 },
-    /* 0x15 */ { itable_evex02215, 6 },
-    /* 0x16 */ { NULL, 0 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { itable_evex02220, 6 },
-    /* 0x21 */ { itable_evex02221, 6 },
-    /* 0x22 */ { itable_evex02222, 6 },
-    /* 0x23 */ { itable_evex02223, 6 },
-    /* 0x24 */ { itable_evex02224, 6 },
-    /* 0x25 */ { itable_evex02225, 6 },
-    /* 0x26 */ { itable_evex02226, 6 },
-    /* 0x27 */ { itable_evex02227, 6 },
-    /* 0x28 */ { itable_evex02228, 6 },
-    /* 0x29 */ { itable_evex02229, 6 },
-    /* 0x2a */ { itable_evex0222A, 3 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { itable_evex02230, 6 },
-    /* 0x31 */ { itable_evex02231, 6 },
-    /* 0x32 */ { itable_evex02232, 6 },
-    /* 0x33 */ { itable_evex02233, 6 },
-    /* 0x34 */ { itable_evex02234, 6 },
-    /* 0x35 */ { itable_evex02235, 6 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { itable_evex02238, 6 },
-    /* 0x39 */ { itable_evex02239, 6 },
-    /* 0x3a */ { itable_evex0223A, 3 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { NULL, 0 },
-    /* 0x59 */ { NULL, 0 },
-    /* 0x5a */ { NULL, 0 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { NULL, 0 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_evex031[256] = {
-    /* 0x00 */ { itable_evex03100, 2 },
-    /* 0x01 */ { itable_evex03101, 2 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { itable_evex03103, 12 },
-    /* 0x04 */ { itable_evex03104, 3 },
-    /* 0x05 */ { itable_evex03105, 3 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { itable_evex03108, 3 },
-    /* 0x09 */ { itable_evex03109, 3 },
-    /* 0x0a */ { itable_evex0310A, 2 },
-    /* 0x0b */ { itable_evex0310B, 2 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { itable_evex0310F, 6 },
-    /* 0x10 */ { NULL, 0 },
-    /* 0x11 */ { NULL, 0 },
-    /* 0x12 */ { NULL, 0 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { itable_evex03114, 5 },
-    /* 0x15 */ { itable_evex03115, 4 },
-    /* 0x16 */ { itable_evex03116, 2 },
-    /* 0x17 */ { itable_evex03117, 3 },
-    /* 0x18 */ { itable_evex03118, 8 },
-    /* 0x19 */ { itable_evex03119, 8 },
-    /* 0x1a */ { itable_evex0311A, 4 },
-    /* 0x1b */ { itable_evex0311B, 4 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { itable_evex0311D, 6 },
-    /* 0x1e */ { itable_evex0311E, 6 },
-    /* 0x1f */ { itable_evex0311F, 6 },
-    /* 0x20 */ { itable_evex03120, 4 },
-    /* 0x21 */ { itable_evex03121, 2 },
-    /* 0x22 */ { itable_evex03122, 4 },
-    /* 0x23 */ { itable_evex03123, 8 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { itable_evex03125, 6 },
-    /* 0x26 */ { itable_evex03126, 6 },
-    /* 0x27 */ { itable_evex03127, 2 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { itable_evex03138, 8 },
-    /* 0x39 */ { itable_evex03139, 8 },
-    /* 0x3a */ { itable_evex0313A, 4 },
-    /* 0x3b */ { itable_evex0313B, 4 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { itable_evex0313E, 6 },
-    /* 0x3f */ { itable_evex0313F, 6 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { itable_evex03142, 6 },
-    /* 0x43 */ { itable_evex03143, 8 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { itable_evex03150, 12 },
-    /* 0x51 */ { itable_evex03151, 4 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { itable_evex03154, 12 },
-    /* 0x55 */ { itable_evex03155, 4 },
-    /* 0x56 */ { itable_evex03156, 6 },
-    /* 0x57 */ { itable_evex03157, 4 },
-    /* 0x58 */ { NULL, 0 },
-    /* 0x59 */ { NULL, 0 },
-    /* 0x5a */ { NULL, 0 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { itable_evex03166, 6 },
-    /* 0x67 */ { itable_evex03167, 2 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { NULL, 0 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_0F38[256] = {
-    /* 0x00 */ { itable_0F3800, 2 },
-    /* 0x01 */ { itable_0F3801, 2 },
-    /* 0x02 */ { itable_0F3802, 2 },
-    /* 0x03 */ { itable_0F3803, 2 },
-    /* 0x04 */ { itable_0F3804, 2 },
-    /* 0x05 */ { itable_0F3805, 2 },
-    /* 0x06 */ { itable_0F3806, 2 },
-    /* 0x07 */ { itable_0F3807, 2 },
-    /* 0x08 */ { itable_0F3808, 2 },
-    /* 0x09 */ { itable_0F3809, 2 },
-    /* 0x0a */ { itable_0F380A, 2 },
-    /* 0x0b */ { itable_0F380B, 2 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { itable_0F3810, 2 },
-    /* 0x11 */ { NULL, 0 },
-    /* 0x12 */ { NULL, 0 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { itable_0F3814, 2 },
-    /* 0x15 */ { itable_0F3815, 2 },
-    /* 0x16 */ { NULL, 0 },
-    /* 0x17 */ { itable_0F3817, 1 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { itable_0F381C, 2 },
-    /* 0x1d */ { itable_0F381D, 2 },
-    /* 0x1e */ { itable_0F381E, 2 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { itable_0F3820, 1 },
-    /* 0x21 */ { itable_0F3821, 1 },
-    /* 0x22 */ { itable_0F3822, 1 },
-    /* 0x23 */ { itable_0F3823, 1 },
-    /* 0x24 */ { itable_0F3824, 1 },
-    /* 0x25 */ { itable_0F3825, 1 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { itable_0F3828, 1 },
-    /* 0x29 */ { itable_0F3829, 1 },
-    /* 0x2a */ { itable_0F382A, 1 },
-    /* 0x2b */ { itable_0F382B, 1 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { itable_0F3830, 1 },
-    /* 0x31 */ { itable_0F3831, 1 },
-    /* 0x32 */ { itable_0F3832, 1 },
-    /* 0x33 */ { itable_0F3833, 1 },
-    /* 0x34 */ { itable_0F3834, 1 },
-    /* 0x35 */ { itable_0F3835, 1 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { itable_0F3837, 1 },
-    /* 0x38 */ { itable_0F3838, 1 },
-    /* 0x39 */ { itable_0F3839, 1 },
-    /* 0x3a */ { itable_0F383A, 1 },
-    /* 0x3b */ { itable_0F383B, 1 },
-    /* 0x3c */ { itable_0F383C, 1 },
-    /* 0x3d */ { itable_0F383D, 1 },
-    /* 0x3e */ { itable_0F383E, 1 },
-    /* 0x3f */ { itable_0F383F, 1 },
-    /* 0x40 */ { itable_0F3840, 1 },
-    /* 0x41 */ { itable_0F3841, 1 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { NULL, 0 },
-    /* 0x59 */ { NULL, 0 },
-    /* 0x5a */ { NULL, 0 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { itable_0F3880, 2 },
-    /* 0x81 */ { itable_0F3881, 2 },
-    /* 0x82 */ { itable_0F3882, 2 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { NULL, 0 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { itable_0F38C8, 1 },
-    /* 0xc9 */ { itable_0F38C9, 1 },
-    /* 0xca */ { itable_0F38CA, 1 },
-    /* 0xcb */ { itable_0F38CB, 2 },
-    /* 0xcc */ { itable_0F38CC, 1 },
-    /* 0xcd */ { itable_0F38CD, 1 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { itable_0F38DB, 1 },
-    /* 0xdc */ { itable_0F38DC, 1 },
-    /* 0xdd */ { itable_0F38DD, 1 },
-    /* 0xde */ { itable_0F38DE, 1 },
-    /* 0xdf */ { itable_0F38DF, 1 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { itable_0F38F0, 5 },
-    /* 0xf1 */ { itable_0F38F1, 6 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { itable_0F38F6, 4 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_0F3A[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { itable_0F3A08, 1 },
-    /* 0x09 */ { itable_0F3A09, 1 },
-    /* 0x0a */ { itable_0F3A0A, 1 },
-    /* 0x0b */ { itable_0F3A0B, 1 },
-    /* 0x0c */ { itable_0F3A0C, 1 },
-    /* 0x0d */ { itable_0F3A0D, 1 },
-    /* 0x0e */ { itable_0F3A0E, 1 },
-    /* 0x0f */ { itable_0F3A0F, 2 },
-    /* 0x10 */ { NULL, 0 },
-    /* 0x11 */ { NULL, 0 },
-    /* 0x12 */ { NULL, 0 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { itable_0F3A14, 3 },
-    /* 0x15 */ { itable_0F3A15, 3 },
-    /* 0x16 */ { itable_0F3A16, 2 },
-    /* 0x17 */ { itable_0F3A17, 2 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { itable_0F3A20, 3 },
-    /* 0x21 */ { itable_0F3A21, 1 },
-    /* 0x22 */ { itable_0F3A22, 4 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { itable_0F3A40, 1 },
-    /* 0x41 */ { itable_0F3A41, 1 },
-    /* 0x42 */ { itable_0F3A42, 1 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { itable_0F3A44, 5 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { NULL, 0 },
-    /* 0x59 */ { NULL, 0 },
-    /* 0x5a */ { NULL, 0 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { itable_0F3A60, 1 },
-    /* 0x61 */ { itable_0F3A61, 1 },
-    /* 0x62 */ { itable_0F3A62, 1 },
-    /* 0x63 */ { itable_0F3A63, 1 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { NULL, 0 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { NULL, 0 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { NULL, 0 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { itable_0F3ACC, 1 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { NULL, 0 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { itable_0F3ADF, 1 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_0FA6[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { NULL, 0 },
-    /* 0x11 */ { NULL, 0 },
-    /* 0x12 */ { NULL, 0 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { NULL, 0 },
-    /* 0x15 */ { NULL, 0 },
-    /* 0x16 */ { NULL, 0 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { NULL, 0 },
-    /* 0x59 */ { NULL, 0 },
-    /* 0x5a */ { NULL, 0 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { itable_0FA6C0, 1 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { NULL, 0 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { itable_0FA6C8, 1 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { itable_0FA6D0, 1 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { NULL, 0 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { NULL, 0 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { NULL, 0 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_0FA7[256] = {
-    /* 0x00 */ { NULL, 0 },
-    /* 0x01 */ { NULL, 0 },
-    /* 0x02 */ { NULL, 0 },
-    /* 0x03 */ { NULL, 0 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { NULL, 0 },
-    /* 0x06 */ { NULL, 0 },
-    /* 0x07 */ { NULL, 0 },
-    /* 0x08 */ { NULL, 0 },
-    /* 0x09 */ { NULL, 0 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { NULL, 0 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { NULL, 0 },
-    /* 0x0e */ { NULL, 0 },
-    /* 0x0f */ { NULL, 0 },
-    /* 0x10 */ { NULL, 0 },
-    /* 0x11 */ { NULL, 0 },
-    /* 0x12 */ { NULL, 0 },
-    /* 0x13 */ { NULL, 0 },
-    /* 0x14 */ { NULL, 0 },
-    /* 0x15 */ { NULL, 0 },
-    /* 0x16 */ { NULL, 0 },
-    /* 0x17 */ { NULL, 0 },
-    /* 0x18 */ { NULL, 0 },
-    /* 0x19 */ { NULL, 0 },
-    /* 0x1a */ { NULL, 0 },
-    /* 0x1b */ { NULL, 0 },
-    /* 0x1c */ { NULL, 0 },
-    /* 0x1d */ { NULL, 0 },
-    /* 0x1e */ { NULL, 0 },
-    /* 0x1f */ { NULL, 0 },
-    /* 0x20 */ { NULL, 0 },
-    /* 0x21 */ { NULL, 0 },
-    /* 0x22 */ { NULL, 0 },
-    /* 0x23 */ { NULL, 0 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { NULL, 0 },
-    /* 0x29 */ { NULL, 0 },
-    /* 0x2a */ { NULL, 0 },
-    /* 0x2b */ { NULL, 0 },
-    /* 0x2c */ { NULL, 0 },
-    /* 0x2d */ { NULL, 0 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { NULL, 0 },
-    /* 0x30 */ { NULL, 0 },
-    /* 0x31 */ { NULL, 0 },
-    /* 0x32 */ { NULL, 0 },
-    /* 0x33 */ { NULL, 0 },
-    /* 0x34 */ { NULL, 0 },
-    /* 0x35 */ { NULL, 0 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { NULL, 0 },
-    /* 0x38 */ { NULL, 0 },
-    /* 0x39 */ { NULL, 0 },
-    /* 0x3a */ { NULL, 0 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { NULL, 0 },
-    /* 0x3d */ { NULL, 0 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { NULL, 0 },
-    /* 0x41 */ { NULL, 0 },
-    /* 0x42 */ { NULL, 0 },
-    /* 0x43 */ { NULL, 0 },
-    /* 0x44 */ { NULL, 0 },
-    /* 0x45 */ { NULL, 0 },
-    /* 0x46 */ { NULL, 0 },
-    /* 0x47 */ { NULL, 0 },
-    /* 0x48 */ { NULL, 0 },
-    /* 0x49 */ { NULL, 0 },
-    /* 0x4a */ { NULL, 0 },
-    /* 0x4b */ { NULL, 0 },
-    /* 0x4c */ { NULL, 0 },
-    /* 0x4d */ { NULL, 0 },
-    /* 0x4e */ { NULL, 0 },
-    /* 0x4f */ { NULL, 0 },
-    /* 0x50 */ { NULL, 0 },
-    /* 0x51 */ { NULL, 0 },
-    /* 0x52 */ { NULL, 0 },
-    /* 0x53 */ { NULL, 0 },
-    /* 0x54 */ { NULL, 0 },
-    /* 0x55 */ { NULL, 0 },
-    /* 0x56 */ { NULL, 0 },
-    /* 0x57 */ { NULL, 0 },
-    /* 0x58 */ { NULL, 0 },
-    /* 0x59 */ { NULL, 0 },
-    /* 0x5a */ { NULL, 0 },
-    /* 0x5b */ { NULL, 0 },
-    /* 0x5c */ { NULL, 0 },
-    /* 0x5d */ { NULL, 0 },
-    /* 0x5e */ { NULL, 0 },
-    /* 0x5f */ { NULL, 0 },
-    /* 0x60 */ { NULL, 0 },
-    /* 0x61 */ { NULL, 0 },
-    /* 0x62 */ { NULL, 0 },
-    /* 0x63 */ { NULL, 0 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { NULL, 0 },
-    /* 0x69 */ { NULL, 0 },
-    /* 0x6a */ { NULL, 0 },
-    /* 0x6b */ { NULL, 0 },
-    /* 0x6c */ { NULL, 0 },
-    /* 0x6d */ { NULL, 0 },
-    /* 0x6e */ { NULL, 0 },
-    /* 0x6f */ { NULL, 0 },
-    /* 0x70 */ { NULL, 0 },
-    /* 0x71 */ { NULL, 0 },
-    /* 0x72 */ { NULL, 0 },
-    /* 0x73 */ { NULL, 0 },
-    /* 0x74 */ { NULL, 0 },
-    /* 0x75 */ { NULL, 0 },
-    /* 0x76 */ { NULL, 0 },
-    /* 0x77 */ { NULL, 0 },
-    /* 0x78 */ { NULL, 0 },
-    /* 0x79 */ { NULL, 0 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { NULL, 0 },
-    /* 0x7c */ { NULL, 0 },
-    /* 0x7d */ { NULL, 0 },
-    /* 0x7e */ { NULL, 0 },
-    /* 0x7f */ { NULL, 0 },
-    /* 0x80 */ { NULL, 0 },
-    /* 0x81 */ { NULL, 0 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { NULL, 0 },
-    /* 0x84 */ { NULL, 0 },
-    /* 0x85 */ { NULL, 0 },
-    /* 0x86 */ { NULL, 0 },
-    /* 0x87 */ { NULL, 0 },
-    /* 0x88 */ { NULL, 0 },
-    /* 0x89 */ { NULL, 0 },
-    /* 0x8a */ { NULL, 0 },
-    /* 0x8b */ { NULL, 0 },
-    /* 0x8c */ { NULL, 0 },
-    /* 0x8d */ { NULL, 0 },
-    /* 0x8e */ { NULL, 0 },
-    /* 0x8f */ { NULL, 0 },
-    /* 0x90 */ { NULL, 0 },
-    /* 0x91 */ { NULL, 0 },
-    /* 0x92 */ { NULL, 0 },
-    /* 0x93 */ { NULL, 0 },
-    /* 0x94 */ { NULL, 0 },
-    /* 0x95 */ { NULL, 0 },
-    /* 0x96 */ { NULL, 0 },
-    /* 0x97 */ { NULL, 0 },
-    /* 0x98 */ { NULL, 0 },
-    /* 0x99 */ { NULL, 0 },
-    /* 0x9a */ { NULL, 0 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { NULL, 0 },
-    /* 0x9d */ { NULL, 0 },
-    /* 0x9e */ { NULL, 0 },
-    /* 0x9f */ { NULL, 0 },
-    /* 0xa0 */ { NULL, 0 },
-    /* 0xa1 */ { NULL, 0 },
-    /* 0xa2 */ { NULL, 0 },
-    /* 0xa3 */ { NULL, 0 },
-    /* 0xa4 */ { NULL, 0 },
-    /* 0xa5 */ { NULL, 0 },
-    /* 0xa6 */ { NULL, 0 },
-    /* 0xa7 */ { NULL, 0 },
-    /* 0xa8 */ { NULL, 0 },
-    /* 0xa9 */ { NULL, 0 },
-    /* 0xaa */ { NULL, 0 },
-    /* 0xab */ { NULL, 0 },
-    /* 0xac */ { NULL, 0 },
-    /* 0xad */ { NULL, 0 },
-    /* 0xae */ { NULL, 0 },
-    /* 0xaf */ { NULL, 0 },
-    /* 0xb0 */ { NULL, 0 },
-    /* 0xb1 */ { NULL, 0 },
-    /* 0xb2 */ { NULL, 0 },
-    /* 0xb3 */ { NULL, 0 },
-    /* 0xb4 */ { NULL, 0 },
-    /* 0xb5 */ { NULL, 0 },
-    /* 0xb6 */ { NULL, 0 },
-    /* 0xb7 */ { NULL, 0 },
-    /* 0xb8 */ { NULL, 0 },
-    /* 0xb9 */ { NULL, 0 },
-    /* 0xba */ { NULL, 0 },
-    /* 0xbb */ { NULL, 0 },
-    /* 0xbc */ { NULL, 0 },
-    /* 0xbd */ { NULL, 0 },
-    /* 0xbe */ { NULL, 0 },
-    /* 0xbf */ { NULL, 0 },
-    /* 0xc0 */ { itable_0FA7C0, 1 },
-    /* 0xc1 */ { NULL, 0 },
-    /* 0xc2 */ { NULL, 0 },
-    /* 0xc3 */ { NULL, 0 },
-    /* 0xc4 */ { NULL, 0 },
-    /* 0xc5 */ { NULL, 0 },
-    /* 0xc6 */ { NULL, 0 },
-    /* 0xc7 */ { NULL, 0 },
-    /* 0xc8 */ { itable_0FA7C8, 1 },
-    /* 0xc9 */ { NULL, 0 },
-    /* 0xca */ { NULL, 0 },
-    /* 0xcb */ { NULL, 0 },
-    /* 0xcc */ { NULL, 0 },
-    /* 0xcd */ { NULL, 0 },
-    /* 0xce */ { NULL, 0 },
-    /* 0xcf */ { NULL, 0 },
-    /* 0xd0 */ { itable_0FA7D0, 1 },
-    /* 0xd1 */ { NULL, 0 },
-    /* 0xd2 */ { NULL, 0 },
-    /* 0xd3 */ { NULL, 0 },
-    /* 0xd4 */ { NULL, 0 },
-    /* 0xd5 */ { NULL, 0 },
-    /* 0xd6 */ { NULL, 0 },
-    /* 0xd7 */ { NULL, 0 },
-    /* 0xd8 */ { itable_0FA7D8, 1 },
-    /* 0xd9 */ { NULL, 0 },
-    /* 0xda */ { NULL, 0 },
-    /* 0xdb */ { NULL, 0 },
-    /* 0xdc */ { NULL, 0 },
-    /* 0xdd */ { NULL, 0 },
-    /* 0xde */ { NULL, 0 },
-    /* 0xdf */ { NULL, 0 },
-    /* 0xe0 */ { itable_0FA7E0, 1 },
-    /* 0xe1 */ { NULL, 0 },
-    /* 0xe2 */ { NULL, 0 },
-    /* 0xe3 */ { NULL, 0 },
-    /* 0xe4 */ { NULL, 0 },
-    /* 0xe5 */ { NULL, 0 },
-    /* 0xe6 */ { NULL, 0 },
-    /* 0xe7 */ { NULL, 0 },
-    /* 0xe8 */ { itable_0FA7E8, 1 },
-    /* 0xe9 */ { NULL, 0 },
-    /* 0xea */ { NULL, 0 },
-    /* 0xeb */ { NULL, 0 },
-    /* 0xec */ { NULL, 0 },
-    /* 0xed */ { NULL, 0 },
-    /* 0xee */ { NULL, 0 },
-    /* 0xef */ { NULL, 0 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { NULL, 0 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { NULL, 0 },
-    /* 0xf5 */ { NULL, 0 },
-    /* 0xf6 */ { NULL, 0 },
-    /* 0xf7 */ { NULL, 0 },
-    /* 0xf8 */ { NULL, 0 },
-    /* 0xf9 */ { NULL, 0 },
-    /* 0xfa */ { NULL, 0 },
-    /* 0xfb */ { NULL, 0 },
-    /* 0xfc */ { NULL, 0 },
-    /* 0xfd */ { NULL, 0 },
-    /* 0xfe */ { NULL, 0 },
-    /* 0xff */ { NULL, 0 },
-};
-
-static const struct disasm_index itable_0F[256] = {
-    /* 0x00 */ { itable_0F00, 24 },
-    /* 0x01 */ { itable_0F01, 44 },
-    /* 0x02 */ { itable_0F02, 10 },
-    /* 0x03 */ { itable_0F03, 10 },
-    /* 0x04 */ { NULL, 0 },
-    /* 0x05 */ { itable_0F05, 1 },
-    /* 0x06 */ { itable_0F06, 1 },
-    /* 0x07 */ { itable_0F07, 1 },
-    /* 0x08 */ { itable_0F08, 1 },
-    /* 0x09 */ { itable_0F09, 1 },
-    /* 0x0a */ { NULL, 0 },
-    /* 0x0b */ { itable_0F0B, 1 },
-    /* 0x0c */ { NULL, 0 },
-    /* 0x0d */ { itable_0F0D, 3 },
-    /* 0x0e */ { itable_0F0E, 1 },
-    /* 0x0f */ { itable_0F0F, 26 },
-    /* 0x10 */ { itable_0F10, 7 },
-    /* 0x11 */ { itable_0F11, 6 },
-    /* 0x12 */ { itable_0F12, 5 },
-    /* 0x13 */ { itable_0F13, 2 },
-    /* 0x14 */ { itable_0F14, 2 },
-    /* 0x15 */ { itable_0F15, 2 },
-    /* 0x16 */ { itable_0F16, 4 },
-    /* 0x17 */ { itable_0F17, 2 },
-    /* 0x18 */ { itable_0F18, 28 },
-    /* 0x19 */ { itable_0F19, 24 },
-    /* 0x1a */ { itable_0F1A, 35 },
-    /* 0x1b */ { itable_0F1B, 35 },
-    /* 0x1c */ { itable_0F1C, 24 },
-    /* 0x1d */ { itable_0F1D, 24 },
-    /* 0x1e */ { itable_0F1E, 24 },
-    /* 0x1f */ { itable_0F1F, 27 },
-    /* 0x20 */ { itable_0F20, 2 },
-    /* 0x21 */ { itable_0F21, 2 },
-    /* 0x22 */ { itable_0F22, 2 },
-    /* 0x23 */ { itable_0F23, 2 },
-    /* 0x24 */ { NULL, 0 },
-    /* 0x25 */ { NULL, 0 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { NULL, 0 },
-    /* 0x28 */ { itable_0F28, 3 },
-    /* 0x29 */ { itable_0F29, 3 },
-    /* 0x2a */ { itable_0F2A, 6 },
-    /* 0x2b */ { itable_0F2B, 4 },
-    /* 0x2c */ { itable_0F2C, 8 },
-    /* 0x2d */ { itable_0F2D, 10 },
-    /* 0x2e */ { itable_0F2E, 2 },
-    /* 0x2f */ { itable_0F2F, 2 },
-    /* 0x30 */ { itable_0F30, 1 },
-    /* 0x31 */ { itable_0F31, 1 },
-    /* 0x32 */ { itable_0F32, 1 },
-    /* 0x33 */ { itable_0F33, 1 },
-    /* 0x34 */ { itable_0F34, 1 },
-    /* 0x35 */ { itable_0F35, 1 },
-    /* 0x36 */ { itable_0F36, 1 },
-    /* 0x37 */ { itable_0F37, 2 },
-    /* 0x38 */ { itable_0F38, -1 },
-    /* 0x39 */ { itable_0F39, 1 },
-    /* 0x3a */ { itable_0F3A, -1 },
-    /* 0x3b */ { NULL, 0 },
-    /* 0x3c */ { itable_0F3C, 1 },
-    /* 0x3d */ { itable_0F3D, 1 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { NULL, 0 },
-    /* 0x40 */ { itable_0F40, 6 },
-    /* 0x41 */ { itable_0F41, 6 },
-    /* 0x42 */ { itable_0F42, 6 },
-    /* 0x43 */ { itable_0F43, 6 },
-    /* 0x44 */ { itable_0F44, 6 },
-    /* 0x45 */ { itable_0F45, 6 },
-    /* 0x46 */ { itable_0F46, 6 },
-    /* 0x47 */ { itable_0F47, 6 },
-    /* 0x48 */ { itable_0F48, 6 },
-    /* 0x49 */ { itable_0F49, 6 },
-    /* 0x4a */ { itable_0F4A, 6 },
-    /* 0x4b */ { itable_0F4B, 6 },
-    /* 0x4c */ { itable_0F4C, 6 },
-    /* 0x4d */ { itable_0F4D, 6 },
-    /* 0x4e */ { itable_0F4E, 6 },
-    /* 0x4f */ { itable_0F4F, 6 },
-    /* 0x50 */ { itable_0F50, 5 },
-    /* 0x51 */ { itable_0F51, 5 },
-    /* 0x52 */ { itable_0F52, 3 },
-    /* 0x53 */ { itable_0F53, 2 },
-    /* 0x54 */ { itable_0F54, 3 },
-    /* 0x55 */ { itable_0F55, 3 },
-    /* 0x56 */ { itable_0F56, 2 },
-    /* 0x57 */ { itable_0F57, 2 },
-    /* 0x58 */ { itable_0F58, 5 },
-    /* 0x59 */ { itable_0F59, 5 },
-    /* 0x5a */ { itable_0F5A, 5 },
-    /* 0x5b */ { itable_0F5B, 4 },
-    /* 0x5c */ { itable_0F5C, 5 },
-    /* 0x5d */ { itable_0F5D, 5 },
-    /* 0x5e */ { itable_0F5E, 5 },
-    /* 0x5f */ { itable_0F5F, 4 },
-    /* 0x60 */ { itable_0F60, 2 },
-    /* 0x61 */ { itable_0F61, 2 },
-    /* 0x62 */ { itable_0F62, 2 },
-    /* 0x63 */ { itable_0F63, 2 },
-    /* 0x64 */ { itable_0F64, 2 },
-    /* 0x65 */ { itable_0F65, 2 },
-    /* 0x66 */ { itable_0F66, 2 },
-    /* 0x67 */ { itable_0F67, 2 },
-    /* 0x68 */ { itable_0F68, 2 },
-    /* 0x69 */ { itable_0F69, 2 },
-    /* 0x6a */ { itable_0F6A, 2 },
-    /* 0x6b */ { itable_0F6B, 2 },
-    /* 0x6c */ { itable_0F6C, 1 },
-    /* 0x6d */ { itable_0F6D, 1 },
-    /* 0x6e */ { itable_0F6E, 5 },
-    /* 0x6f */ { itable_0F6F, 5 },
-    /* 0x70 */ { itable_0F70, 7 },
-    /* 0x71 */ { itable_0F71, 6 },
-    /* 0x72 */ { itable_0F72, 6 },
-    /* 0x73 */ { itable_0F73, 6 },
-    /* 0x74 */ { itable_0F74, 2 },
-    /* 0x75 */ { itable_0F75, 2 },
-    /* 0x76 */ { itable_0F76, 2 },
-    /* 0x77 */ { itable_0F77, 1 },
-    /* 0x78 */ { itable_0F78, 5 },
-    /* 0x79 */ { itable_0F79, 5 },
-    /* 0x7a */ { NULL, 0 },
-    /* 0x7b */ { itable_0F7B, 1 },
-    /* 0x7c */ { itable_0F7C, 3 },
-    /* 0x7d */ { itable_0F7D, 3 },
-    /* 0x7e */ { itable_0F7E, 7 },
-    /* 0x7f */ { itable_0F7F, 5 },
-    /* 0x80 */ { itable_0F80, 4 },
-    /* 0x81 */ { itable_0F81, 4 },
-    /* 0x82 */ { itable_0F82, 4 },
-    /* 0x83 */ { itable_0F83, 4 },
-    /* 0x84 */ { itable_0F84, 4 },
-    /* 0x85 */ { itable_0F85, 4 },
-    /* 0x86 */ { itable_0F86, 4 },
-    /* 0x87 */ { itable_0F87, 4 },
-    /* 0x88 */ { itable_0F88, 4 },
-    /* 0x89 */ { itable_0F89, 4 },
-    /* 0x8a */ { itable_0F8A, 4 },
-    /* 0x8b */ { itable_0F8B, 4 },
-    /* 0x8c */ { itable_0F8C, 4 },
-    /* 0x8d */ { itable_0F8D, 4 },
-    /* 0x8e */ { itable_0F8E, 4 },
-    /* 0x8f */ { itable_0F8F, 4 },
-    /* 0x90 */ { itable_0F90, 2 },
-    /* 0x91 */ { itable_0F91, 2 },
-    /* 0x92 */ { itable_0F92, 2 },
-    /* 0x93 */ { itable_0F93, 2 },
-    /* 0x94 */ { itable_0F94, 2 },
-    /* 0x95 */ { itable_0F95, 2 },
-    /* 0x96 */ { itable_0F96, 2 },
-    /* 0x97 */ { itable_0F97, 2 },
-    /* 0x98 */ { itable_0F98, 2 },
-    /* 0x99 */ { itable_0F99, 2 },
-    /* 0x9a */ { itable_0F9A, 2 },
-    /* 0x9b */ { itable_0F9B, 2 },
-    /* 0x9c */ { itable_0F9C, 2 },
-    /* 0x9d */ { itable_0F9D, 2 },
-    /* 0x9e */ { itable_0F9E, 2 },
-    /* 0x9f */ { itable_0F9F, 2 },
-    /* 0xa0 */ { itable_0FA0, 1 },
-    /* 0xa1 */ { itable_0FA1, 1 },
-    /* 0xa2 */ { itable_0FA2, 1 },
-    /* 0xa3 */ { itable_0FA3, 6 },
-    /* 0xa4 */ { itable_0FA4, 6 },
-    /* 0xa5 */ { itable_0FA5, 6 },
-    /* 0xa6 */ { itable_0FA6, -1 },
-    /* 0xa7 */ { itable_0FA7, -1 },
-    /* 0xa8 */ { itable_0FA8, 1 },
-    /* 0xa9 */ { itable_0FA9, 1 },
-    /* 0xaa */ { itable_0FAA, 1 },
-    /* 0xab */ { itable_0FAB, 6 },
-    /* 0xac */ { itable_0FAC, 6 },
-    /* 0xad */ { itable_0FAD, 6 },
-    /* 0xae */ { itable_0FAE, 30 },
-    /* 0xaf */ { itable_0FAF, 6 },
-    /* 0xb0 */ { itable_0FB0, 2 },
-    /* 0xb1 */ { itable_0FB1, 6 },
-    /* 0xb2 */ { itable_0FB2, 3 },
-    /* 0xb3 */ { itable_0FB3, 6 },
-    /* 0xb4 */ { itable_0FB4, 3 },
-    /* 0xb5 */ { itable_0FB5, 3 },
-    /* 0xb6 */ { itable_0FB6, 4 },
-    /* 0xb7 */ { itable_0FB7, 2 },
-    /* 0xb8 */ { itable_0FB8, 6 },
-    /* 0xb9 */ { itable_0FB9, 3 },
-    /* 0xba */ { itable_0FBA, 12 },
-    /* 0xbb */ { itable_0FBB, 6 },
-    /* 0xbc */ { itable_0FBC, 9 },
-    /* 0xbd */ { itable_0FBD, 9 },
-    /* 0xbe */ { itable_0FBE, 4 },
-    /* 0xbf */ { itable_0FBF, 2 },
-    /* 0xc0 */ { itable_0FC0, 2 },
-    /* 0xc1 */ { itable_0FC1, 6 },
-    /* 0xc2 */ { itable_0FC2, 38 },
-    /* 0xc3 */ { itable_0FC3, 2 },
-    /* 0xc4 */ { itable_0FC4, 6 },
-    /* 0xc5 */ { itable_0FC5, 2 },
-    /* 0xc6 */ { itable_0FC6, 3 },
-    /* 0xc7 */ { itable_0FC7, 21 },
-    /* 0xc8 */ { itable_0FC8, 2 },
-    /* 0xc9 */ { itable_0FC9, 2 },
-    /* 0xca */ { itable_0FCA, 2 },
-    /* 0xcb */ { itable_0FCB, 2 },
-    /* 0xcc */ { itable_0FCC, 2 },
-    /* 0xcd */ { itable_0FCD, 2 },
-    /* 0xce */ { itable_0FCE, 2 },
-    /* 0xcf */ { itable_0FCF, 2 },
-    /* 0xd0 */ { itable_0FD0, 2 },
-    /* 0xd1 */ { itable_0FD1, 2 },
-    /* 0xd2 */ { itable_0FD2, 2 },
-    /* 0xd3 */ { itable_0FD3, 2 },
-    /* 0xd4 */ { itable_0FD4, 2 },
-    /* 0xd5 */ { itable_0FD5, 2 },
-    /* 0xd6 */ { itable_0FD6, 4 },
-    /* 0xd7 */ { itable_0FD7, 2 },
-    /* 0xd8 */ { itable_0FD8, 2 },
-    /* 0xd9 */ { itable_0FD9, 2 },
-    /* 0xda */ { itable_0FDA, 2 },
-    /* 0xdb */ { itable_0FDB, 2 },
-    /* 0xdc */ { itable_0FDC, 2 },
-    /* 0xdd */ { itable_0FDD, 2 },
-    /* 0xde */ { itable_0FDE, 2 },
-    /* 0xdf */ { itable_0FDF, 2 },
-    /* 0xe0 */ { itable_0FE0, 2 },
-    /* 0xe1 */ { itable_0FE1, 2 },
-    /* 0xe2 */ { itable_0FE2, 2 },
-    /* 0xe3 */ { itable_0FE3, 2 },
-    /* 0xe4 */ { itable_0FE4, 2 },
-    /* 0xe5 */ { itable_0FE5, 2 },
-    /* 0xe6 */ { itable_0FE6, 3 },
-    /* 0xe7 */ { itable_0FE7, 2 },
-    /* 0xe8 */ { itable_0FE8, 2 },
-    /* 0xe9 */ { itable_0FE9, 2 },
-    /* 0xea */ { itable_0FEA, 2 },
-    /* 0xeb */ { itable_0FEB, 2 },
-    /* 0xec */ { itable_0FEC, 2 },
-    /* 0xed */ { itable_0FED, 2 },
-    /* 0xee */ { itable_0FEE, 2 },
-    /* 0xef */ { itable_0FEF, 2 },
-    /* 0xf0 */ { itable_0FF0, 1 },
-    /* 0xf1 */ { itable_0FF1, 2 },
-    /* 0xf2 */ { itable_0FF2, 2 },
-    /* 0xf3 */ { itable_0FF3, 2 },
-    /* 0xf4 */ { itable_0FF4, 2 },
-    /* 0xf5 */ { itable_0FF5, 2 },
-    /* 0xf6 */ { itable_0FF6, 2 },
-    /* 0xf7 */ { itable_0FF7, 2 },
-    /* 0xf8 */ { itable_0FF8, 2 },
-    /* 0xf9 */ { itable_0FF9, 2 },
-    /* 0xfa */ { itable_0FFA, 2 },
-    /* 0xfb */ { itable_0FFB, 2 },
-    /* 0xfc */ { itable_0FFC, 2 },
-    /* 0xfd */ { itable_0FFD, 2 },
-    /* 0xfe */ { itable_0FFE, 2 },
-    /* 0xff */ { itable_0FFF, 1 },
-};
-
-const struct disasm_index itable[256] = {
-    /* 0x00 */ { itable_00, 2 },
-    /* 0x01 */ { itable_01, 6 },
-    /* 0x02 */ { itable_02, 2 },
-    /* 0x03 */ { itable_03, 6 },
-    /* 0x04 */ { itable_04, 1 },
-    /* 0x05 */ { itable_05, 3 },
-    /* 0x06 */ { itable_06, 1 },
-    /* 0x07 */ { itable_07, 1 },
-    /* 0x08 */ { itable_08, 2 },
-    /* 0x09 */ { itable_09, 6 },
-    /* 0x0a */ { itable_0A, 2 },
-    /* 0x0b */ { itable_0B, 6 },
-    /* 0x0c */ { itable_0C, 1 },
-    /* 0x0d */ { itable_0D, 3 },
-    /* 0x0e */ { itable_0E, 1 },
-    /* 0x0f */ { itable_0F, -1 },
-    /* 0x10 */ { itable_10, 2 },
-    /* 0x11 */ { itable_11, 6 },
-    /* 0x12 */ { itable_12, 2 },
-    /* 0x13 */ { itable_13, 6 },
-    /* 0x14 */ { itable_14, 1 },
-    /* 0x15 */ { itable_15, 3 },
-    /* 0x16 */ { itable_16, 1 },
-    /* 0x17 */ { itable_17, 1 },
-    /* 0x18 */ { itable_18, 2 },
-    /* 0x19 */ { itable_19, 6 },
-    /* 0x1a */ { itable_1A, 2 },
-    /* 0x1b */ { itable_1B, 6 },
-    /* 0x1c */ { itable_1C, 1 },
-    /* 0x1d */ { itable_1D, 3 },
-    /* 0x1e */ { itable_1E, 1 },
-    /* 0x1f */ { itable_1F, 1 },
-    /* 0x20 */ { itable_20, 2 },
-    /* 0x21 */ { itable_21, 6 },
-    /* 0x22 */ { itable_22, 2 },
-    /* 0x23 */ { itable_23, 6 },
-    /* 0x24 */ { itable_24, 1 },
-    /* 0x25 */ { itable_25, 3 },
-    /* 0x26 */ { NULL, 0 },
-    /* 0x27 */ { itable_27, 1 },
-    /* 0x28 */ { itable_28, 2 },
-    /* 0x29 */ { itable_29, 6 },
-    /* 0x2a */ { itable_2A, 2 },
-    /* 0x2b */ { itable_2B, 6 },
-    /* 0x2c */ { itable_2C, 1 },
-    /* 0x2d */ { itable_2D, 3 },
-    /* 0x2e */ { NULL, 0 },
-    /* 0x2f */ { itable_2F, 1 },
-    /* 0x30 */ { itable_30, 2 },
-    /* 0x31 */ { itable_31, 6 },
-    /* 0x32 */ { itable_32, 2 },
-    /* 0x33 */ { itable_33, 6 },
-    /* 0x34 */ { itable_34, 1 },
-    /* 0x35 */ { itable_35, 3 },
-    /* 0x36 */ { NULL, 0 },
-    /* 0x37 */ { itable_37, 1 },
-    /* 0x38 */ { itable_38, 2 },
-    /* 0x39 */ { itable_39, 6 },
-    /* 0x3a */ { itable_3A, 2 },
-    /* 0x3b */ { itable_3B, 6 },
-    /* 0x3c */ { itable_3C, 1 },
-    /* 0x3d */ { itable_3D, 3 },
-    /* 0x3e */ { NULL, 0 },
-    /* 0x3f */ { itable_3F, 1 },
-    /* 0x40 */ { itable_40, 2 },
-    /* 0x41 */ { itable_41, 2 },
-    /* 0x42 */ { itable_42, 2 },
-    /* 0x43 */ { itable_43, 2 },
-    /* 0x44 */ { itable_44, 2 },
-    /* 0x45 */ { itable_45, 2 },
-    /* 0x46 */ { itable_46, 2 },
-    /* 0x47 */ { itable_47, 2 },
-    /* 0x48 */ { itable_48, 2 },
-    /* 0x49 */ { itable_49, 2 },
-    /* 0x4a */ { itable_4A, 2 },
-    /* 0x4b */ { itable_4B, 2 },
-    /* 0x4c */ { itable_4C, 2 },
-    /* 0x4d */ { itable_4D, 2 },
-    /* 0x4e */ { itable_4E, 2 },
-    /* 0x4f */ { itable_4F, 2 },
-    /* 0x50 */ { itable_50, 3 },
-    /* 0x51 */ { itable_51, 3 },
-    /* 0x52 */ { itable_52, 3 },
-    /* 0x53 */ { itable_53, 3 },
-    /* 0x54 */ { itable_54, 3 },
-    /* 0x55 */ { itable_55, 3 },
-    /* 0x56 */ { itable_56, 3 },
-    /* 0x57 */ { itable_57, 3 },
-    /* 0x58 */ { itable_58, 3 },
-    /* 0x59 */ { itable_59, 3 },
-    /* 0x5a */ { itable_5A, 3 },
-    /* 0x5b */ { itable_5B, 3 },
-    /* 0x5c */ { itable_5C, 3 },
-    /* 0x5d */ { itable_5D, 3 },
-    /* 0x5e */ { itable_5E, 3 },
-    /* 0x5f */ { itable_5F, 3 },
-    /* 0x60 */ { itable_60, 3 },
-    /* 0x61 */ { itable_61, 3 },
-    /* 0x62 */ { itable_62, 2 },
-    /* 0x63 */ { itable_63, 3 },
-    /* 0x64 */ { NULL, 0 },
-    /* 0x65 */ { NULL, 0 },
-    /* 0x66 */ { NULL, 0 },
-    /* 0x67 */ { NULL, 0 },
-    /* 0x68 */ { itable_68, 5 },
-    /* 0x69 */ { itable_69, 9 },
-    /* 0x6a */ { itable_6A, 1 },
-    /* 0x6b */ { itable_6B, 9 },
-    /* 0x6c */ { itable_6C, 1 },
-    /* 0x6d */ { itable_6D, 2 },
-    /* 0x6e */ { itable_6E, 1 },
-    /* 0x6f */ { itable_6F, 2 },
-    /* 0x70 */ { itable_70, 1 },
-    /* 0x71 */ { itable_71, 1 },
-    /* 0x72 */ { itable_72, 1 },
-    /* 0x73 */ { itable_73, 1 },
-    /* 0x74 */ { itable_74, 1 },
-    /* 0x75 */ { itable_75, 1 },
-    /* 0x76 */ { itable_76, 1 },
-    /* 0x77 */ { itable_77, 1 },
-    /* 0x78 */ { itable_78, 1 },
-    /* 0x79 */ { itable_79, 1 },
-    /* 0x7a */ { itable_7A, 1 },
-    /* 0x7b */ { itable_7B, 1 },
-    /* 0x7c */ { itable_7C, 1 },
-    /* 0x7d */ { itable_7D, 1 },
-    /* 0x7e */ { itable_7E, 1 },
-    /* 0x7f */ { itable_7F, 1 },
-    /* 0x80 */ { itable_80, 15 },
-    /* 0x81 */ { itable_81, 40 },
-    /* 0x82 */ { NULL, 0 },
-    /* 0x83 */ { itable_83, 24 },
-    /* 0x84 */ { itable_84, 3 },
-    /* 0x85 */ { itable_85, 9 },
-    /* 0x86 */ { itable_86, 4 },
-    /* 0x87 */ { itable_87, 12 },
-    /* 0x88 */ { itable_88, 2 },
-    /* 0x89 */ { itable_89, 6 },
-    /* 0x8a */ { itable_8A, 2 },
-    /* 0x8b */ { itable_8B, 6 },
-    /* 0x8c */ { itable_8C, 4 },
-    /* 0x8d */ { itable_8D, 3 },
-    /* 0x8e */ { itable_8E, 4 },
-    /* 0x8f */ { itable_8F, 3 },
-    /* 0x90 */ { itable_90, 9 },
-    /* 0x91 */ { itable_91, 6 },
-    /* 0x92 */ { itable_92, 6 },
-    /* 0x93 */ { itable_93, 6 },
-    /* 0x94 */ { itable_94, 6 },
-    /* 0x95 */ { itable_95, 6 },
-    /* 0x96 */ { itable_96, 6 },
-    /* 0x97 */ { itable_97, 6 },
-    /* 0x98 */ { itable_98, 3 },
-    /* 0x99 */ { itable_99, 3 },
-    /* 0x9a */ { itable_9A, 5 },
-    /* 0x9b */ { NULL, 0 },
-    /* 0x9c */ { itable_9C, 4 },
-    /* 0x9d */ { itable_9D, 4 },
-    /* 0x9e */ { itable_9E, 1 },
-    /* 0x9f */ { itable_9F, 1 },
-    /* 0xa0 */ { itable_A0, 1 },
-    /* 0xa1 */ { itable_A1, 3 },
-    /* 0xa2 */ { itable_A2, 1 },
-    /* 0xa3 */ { itable_A3, 3 },
-    /* 0xa4 */ { itable_A4, 1 },
-    /* 0xa5 */ { itable_A5, 3 },
-    /* 0xa6 */ { itable_A6, 1 },
-    /* 0xa7 */ { itable_A7, 3 },
-    /* 0xa8 */ { itable_A8, 1 },
-    /* 0xa9 */ { itable_A9, 3 },
-    /* 0xaa */ { itable_AA, 1 },
-    /* 0xab */ { itable_AB, 3 },
-    /* 0xac */ { itable_AC, 1 },
-    /* 0xad */ { itable_AD, 3 },
-    /* 0xae */ { itable_AE, 1 },
-    /* 0xaf */ { itable_AF, 3 },
-    /* 0xb0 */ { itable_B0, 1 },
-    /* 0xb1 */ { itable_B1, 1 },
-    /* 0xb2 */ { itable_B2, 1 },
-    /* 0xb3 */ { itable_B3, 1 },
-    /* 0xb4 */ { itable_B4, 1 },
-    /* 0xb5 */ { itable_B5, 1 },
-    /* 0xb6 */ { itable_B6, 1 },
-    /* 0xb7 */ { itable_B7, 1 },
-    /* 0xb8 */ { itable_B8, 3 },
-    /* 0xb9 */ { itable_B9, 3 },
-    /* 0xba */ { itable_BA, 3 },
-    /* 0xbb */ { itable_BB, 3 },
-    /* 0xbc */ { itable_BC, 3 },
-    /* 0xbd */ { itable_BD, 3 },
-    /* 0xbe */ { itable_BE, 3 },
-    /* 0xbf */ { itable_BF, 3 },
-    /* 0xc0 */ { itable_C0, 7 },
-    /* 0xc1 */ { itable_C1, 21 },
-    /* 0xc2 */ { itable_C2, 2 },
-    /* 0xc3 */ { itable_C3, 2 },
-    /* 0xc4 */ { itable_C4, 2 },
-    /* 0xc5 */ { itable_C5, 2 },
-    /* 0xc6 */ { itable_C6, 4 },
-    /* 0xc7 */ { itable_C7, 10 },
-    /* 0xc8 */ { itable_C8, 1 },
-    /* 0xc9 */ { itable_C9, 1 },
-    /* 0xca */ { itable_CA, 1 },
-    /* 0xcb */ { itable_CB, 1 },
-    /* 0xcc */ { itable_CC, 1 },
-    /* 0xcd */ { itable_CD, 1 },
-    /* 0xce */ { itable_CE, 1 },
-    /* 0xcf */ { itable_CF, 4 },
-    /* 0xd0 */ { itable_D0, 7 },
-    /* 0xd1 */ { itable_D1, 21 },
-    /* 0xd2 */ { itable_D2, 7 },
-    /* 0xd3 */ { itable_D3, 21 },
-    /* 0xd4 */ { itable_D4, 2 },
-    /* 0xd5 */ { itable_D5, 2 },
-    /* 0xd6 */ { itable_D6, 1 },
-    /* 0xd7 */ { itable_D7, 2 },
-    /* 0xd8 */ { itable_D8, 24 },
-    /* 0xd9 */ { itable_D9, 41 },
-    /* 0xda */ { itable_DA, 17 },
-    /* 0xdb */ { itable_DB, 27 },
-    /* 0xdc */ { itable_DC, 20 },
-    /* 0xdd */ { itable_DD, 17 },
-    /* 0xde */ { itable_DE, 21 },
-    /* 0xdf */ { itable_DF, 18 },
-    /* 0xe0 */ { itable_E0, 8 },
-    /* 0xe1 */ { itable_E1, 8 },
-    /* 0xe2 */ { itable_E2, 4 },
-    /* 0xe3 */ { itable_E3, 3 },
-    /* 0xe4 */ { itable_E4, 1 },
-    /* 0xe5 */ { itable_E5, 2 },
-    /* 0xe6 */ { itable_E6, 1 },
-    /* 0xe7 */ { itable_E7, 2 },
-    /* 0xe8 */ { itable_E8, 4 },
-    /* 0xe9 */ { itable_E9, 4 },
-    /* 0xea */ { itable_EA, 5 },
-    /* 0xeb */ { itable_EB, 1 },
-    /* 0xec */ { itable_EC, 1 },
-    /* 0xed */ { itable_ED, 2 },
-    /* 0xee */ { itable_EE, 1 },
-    /* 0xef */ { itable_EF, 2 },
-    /* 0xf0 */ { NULL, 0 },
-    /* 0xf1 */ { itable_F1, 2 },
-    /* 0xf2 */ { NULL, 0 },
-    /* 0xf3 */ { NULL, 0 },
-    /* 0xf4 */ { itable_F4, 1 },
-    /* 0xf5 */ { itable_F5, 1 },
-    /* 0xf6 */ { itable_F6, 8 },
-    /* 0xf7 */ { itable_F7, 23 },
-    /* 0xf8 */ { itable_F8, 1 },
-    /* 0xf9 */ { itable_F9, 1 },
-    /* 0xfa */ { itable_FA, 1 },
-    /* 0xfb */ { itable_FB, 1 },
-    /* 0xfc */ { itable_FC, 1 },
-    /* 0xfd */ { itable_FD, 1 },
-    /* 0xfe */ { itable_FE, 2 },
-    /* 0xff */ { itable_FF, 27 },
-};
-
-const struct disasm_index * const itable_vex[NASM_VEX_CLASSES][32][4] =
-{
-    {
-        { NULL,          NULL,          NULL,          NULL,          },
-        { itable_vex010, itable_vex011, itable_vex012, itable_vex013, },
-        { itable_vex020, itable_vex021, itable_vex022, itable_vex023, },
-        { NULL,          itable_vex031, NULL,          itable_vex033, },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-    },
-    {
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { itable_xop080, NULL,          NULL,          NULL,          },
-        { itable_xop090, NULL,          NULL,          NULL,          },
-        { itable_xop0A0, NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-    },
-    {
-        { NULL,          NULL,          NULL,          NULL,          },
-        { itable_evex010,itable_evex011,itable_evex012,itable_evex013,},
-        { NULL,          itable_evex021,itable_evex022,NULL,          },
-        { NULL,          itable_evex031,NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-        { NULL,          NULL,          NULL,          NULL,          },
-    },
-};
--- a/nasmbuild/nasm-2.13rc9/x86/insnsi.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1842 +0,0 @@
-/* This file is auto-generated from insns.dat by insns.pl - don't edit it */
-
-/* This file in included by nasm.h */
-
-/* Instruction names */
-
-#ifndef NASM_INSNSI_H
-#define NASM_INSNSI_H 1
-
-enum opcode {
-	I_AAA,
-	I_AAD,
-	I_AAM,
-	I_AAS,
-	I_ADC,
-	I_ADCX,
-	I_ADD,
-	I_ADDPD,
-	I_ADDPS,
-	I_ADDSD,
-	I_ADDSS,
-	I_ADDSUBPD,
-	I_ADDSUBPS,
-	I_ADOX,
-	I_AESDEC,
-	I_AESDECLAST,
-	I_AESENC,
-	I_AESENCLAST,
-	I_AESIMC,
-	I_AESKEYGENASSIST,
-	I_AND,
-	I_ANDN,
-	I_ANDNPD,
-	I_ANDNPS,
-	I_ANDPD,
-	I_ANDPS,
-	I_ARPL,
-	I_BB0_RESET,
-	I_BB1_RESET,
-	I_BEXTR,
-	I_BLCFILL,
-	I_BLCI,
-	I_BLCIC,
-	I_BLCMSK,
-	I_BLCS,
-	I_BLENDPD,
-	I_BLENDPS,
-	I_BLENDVPD,
-	I_BLENDVPS,
-	I_BLSFILL,
-	I_BLSI,
-	I_BLSIC,
-	I_BLSMSK,
-	I_BLSR,
-	I_BNDCL,
-	I_BNDCN,
-	I_BNDCU,
-	I_BNDLDX,
-	I_BNDMK,
-	I_BNDMOV,
-	I_BNDSTX,
-	I_BOUND,
-	I_BSF,
-	I_BSR,
-	I_BSWAP,
-	I_BT,
-	I_BTC,
-	I_BTR,
-	I_BTS,
-	I_BZHI,
-	I_CALL,
-	I_CBW,
-	I_CDQ,
-	I_CDQE,
-	I_CLAC,
-	I_CLC,
-	I_CLD,
-	I_CLFLUSH,
-	I_CLFLUSHOPT,
-	I_CLGI,
-	I_CLI,
-	I_CLTS,
-	I_CLWB,
-	I_CLZERO,
-	I_CMC,
-	I_CMP,
-	I_CMPEQPD,
-	I_CMPEQPS,
-	I_CMPEQSD,
-	I_CMPEQSS,
-	I_CMPLEPD,
-	I_CMPLEPS,
-	I_CMPLESD,
-	I_CMPLESS,
-	I_CMPLTPD,
-	I_CMPLTPS,
-	I_CMPLTSD,
-	I_CMPLTSS,
-	I_CMPNEQPD,
-	I_CMPNEQPS,
-	I_CMPNEQSD,
-	I_CMPNEQSS,
-	I_CMPNLEPD,
-	I_CMPNLEPS,
-	I_CMPNLESD,
-	I_CMPNLESS,
-	I_CMPNLTPD,
-	I_CMPNLTPS,
-	I_CMPNLTSD,
-	I_CMPNLTSS,
-	I_CMPORDPD,
-	I_CMPORDPS,
-	I_CMPORDSD,
-	I_CMPORDSS,
-	I_CMPPD,
-	I_CMPPS,
-	I_CMPSB,
-	I_CMPSD,
-	I_CMPSQ,
-	I_CMPSS,
-	I_CMPSW,
-	I_CMPUNORDPD,
-	I_CMPUNORDPS,
-	I_CMPUNORDSD,
-	I_CMPUNORDSS,
-	I_CMPXCHG,
-	I_CMPXCHG16B,
-	I_CMPXCHG486,
-	I_CMPXCHG8B,
-	I_COMISD,
-	I_COMISS,
-	I_CPUID,
-	I_CPU_READ,
-	I_CPU_WRITE,
-	I_CQO,
-	I_CRC32,
-	I_CVTDQ2PD,
-	I_CVTDQ2PS,
-	I_CVTPD2DQ,
-	I_CVTPD2PI,
-	I_CVTPD2PS,
-	I_CVTPI2PD,
-	I_CVTPI2PS,
-	I_CVTPS2DQ,
-	I_CVTPS2PD,
-	I_CVTPS2PI,
-	I_CVTSD2SI,
-	I_CVTSD2SS,
-	I_CVTSI2SD,
-	I_CVTSI2SS,
-	I_CVTSS2SD,
-	I_CVTSS2SI,
-	I_CVTTPD2DQ,
-	I_CVTTPD2PI,
-	I_CVTTPS2DQ,
-	I_CVTTPS2PI,
-	I_CVTTSD2SI,
-	I_CVTTSS2SI,
-	I_CWD,
-	I_CWDE,
-	I_DAA,
-	I_DAS,
-	I_DB,
-	I_DD,
-	I_DEC,
-	I_DIV,
-	I_DIVPD,
-	I_DIVPS,
-	I_DIVSD,
-	I_DIVSS,
-	I_DMINT,
-	I_DO,
-	I_DPPD,
-	I_DPPS,
-	I_DQ,
-	I_DT,
-	I_DW,
-	I_DY,
-	I_DZ,
-	I_EMMS,
-	I_ENTER,
-	I_EQU,
-	I_EXTRACTPS,
-	I_EXTRQ,
-	I_F2XM1,
-	I_FABS,
-	I_FADD,
-	I_FADDP,
-	I_FBLD,
-	I_FBSTP,
-	I_FCHS,
-	I_FCLEX,
-	I_FCMOVB,
-	I_FCMOVBE,
-	I_FCMOVE,
-	I_FCMOVNB,
-	I_FCMOVNBE,
-	I_FCMOVNE,
-	I_FCMOVNU,
-	I_FCMOVU,
-	I_FCOM,
-	I_FCOMI,
-	I_FCOMIP,
-	I_FCOMP,
-	I_FCOMPP,
-	I_FCOS,
-	I_FDECSTP,
-	I_FDISI,
-	I_FDIV,
-	I_FDIVP,
-	I_FDIVR,
-	I_FDIVRP,
-	I_FEMMS,
-	I_FENI,
-	I_FFREE,
-	I_FFREEP,
-	I_FIADD,
-	I_FICOM,
-	I_FICOMP,
-	I_FIDIV,
-	I_FIDIVR,
-	I_FILD,
-	I_FIMUL,
-	I_FINCSTP,
-	I_FINIT,
-	I_FIST,
-	I_FISTP,
-	I_FISTTP,
-	I_FISUB,
-	I_FISUBR,
-	I_FLD,
-	I_FLD1,
-	I_FLDCW,
-	I_FLDENV,
-	I_FLDL2E,
-	I_FLDL2T,
-	I_FLDLG2,
-	I_FLDLN2,
-	I_FLDPI,
-	I_FLDZ,
-	I_FMUL,
-	I_FMULP,
-	I_FNCLEX,
-	I_FNDISI,
-	I_FNENI,
-	I_FNINIT,
-	I_FNOP,
-	I_FNSAVE,
-	I_FNSTCW,
-	I_FNSTENV,
-	I_FNSTSW,
-	I_FPATAN,
-	I_FPREM,
-	I_FPREM1,
-	I_FPTAN,
-	I_FRNDINT,
-	I_FRSTOR,
-	I_FSAVE,
-	I_FSCALE,
-	I_FSETPM,
-	I_FSIN,
-	I_FSINCOS,
-	I_FSQRT,
-	I_FST,
-	I_FSTCW,
-	I_FSTENV,
-	I_FSTP,
-	I_FSTSW,
-	I_FSUB,
-	I_FSUBP,
-	I_FSUBR,
-	I_FSUBRP,
-	I_FTST,
-	I_FUCOM,
-	I_FUCOMI,
-	I_FUCOMIP,
-	I_FUCOMP,
-	I_FUCOMPP,
-	I_FWAIT,
-	I_FXAM,
-	I_FXCH,
-	I_FXRSTOR,
-	I_FXRSTOR64,
-	I_FXSAVE,
-	I_FXSAVE64,
-	I_FXTRACT,
-	I_FYL2X,
-	I_FYL2XP1,
-	I_GETSEC,
-	I_HADDPD,
-	I_HADDPS,
-	I_HINT_NOP0,
-	I_HINT_NOP1,
-	I_HINT_NOP10,
-	I_HINT_NOP11,
-	I_HINT_NOP12,
-	I_HINT_NOP13,
-	I_HINT_NOP14,
-	I_HINT_NOP15,
-	I_HINT_NOP16,
-	I_HINT_NOP17,
-	I_HINT_NOP18,
-	I_HINT_NOP19,
-	I_HINT_NOP2,
-	I_HINT_NOP20,
-	I_HINT_NOP21,
-	I_HINT_NOP22,
-	I_HINT_NOP23,
-	I_HINT_NOP24,
-	I_HINT_NOP25,
-	I_HINT_NOP26,
-	I_HINT_NOP27,
-	I_HINT_NOP28,
-	I_HINT_NOP29,
-	I_HINT_NOP3,
-	I_HINT_NOP30,
-	I_HINT_NOP31,
-	I_HINT_NOP32,
-	I_HINT_NOP33,
-	I_HINT_NOP34,
-	I_HINT_NOP35,
-	I_HINT_NOP36,
-	I_HINT_NOP37,
-	I_HINT_NOP38,
-	I_HINT_NOP39,
-	I_HINT_NOP4,
-	I_HINT_NOP40,
-	I_HINT_NOP41,
-	I_HINT_NOP42,
-	I_HINT_NOP43,
-	I_HINT_NOP44,
-	I_HINT_NOP45,
-	I_HINT_NOP46,
-	I_HINT_NOP47,
-	I_HINT_NOP48,
-	I_HINT_NOP49,
-	I_HINT_NOP5,
-	I_HINT_NOP50,
-	I_HINT_NOP51,
-	I_HINT_NOP52,
-	I_HINT_NOP53,
-	I_HINT_NOP54,
-	I_HINT_NOP55,
-	I_HINT_NOP56,
-	I_HINT_NOP57,
-	I_HINT_NOP58,
-	I_HINT_NOP59,
-	I_HINT_NOP6,
-	I_HINT_NOP60,
-	I_HINT_NOP61,
-	I_HINT_NOP62,
-	I_HINT_NOP63,
-	I_HINT_NOP7,
-	I_HINT_NOP8,
-	I_HINT_NOP9,
-	I_HLT,
-	I_HSUBPD,
-	I_HSUBPS,
-	I_IBTS,
-	I_ICEBP,
-	I_IDIV,
-	I_IMUL,
-	I_IN,
-	I_INC,
-	I_INCBIN,
-	I_INSB,
-	I_INSD,
-	I_INSERTPS,
-	I_INSERTQ,
-	I_INSW,
-	I_INT,
-	I_INT01,
-	I_INT03,
-	I_INT1,
-	I_INT3,
-	I_INTO,
-	I_INVD,
-	I_INVEPT,
-	I_INVLPG,
-	I_INVLPGA,
-	I_INVPCID,
-	I_INVVPID,
-	I_IRET,
-	I_IRETD,
-	I_IRETQ,
-	I_IRETW,
-	I_JCXZ,
-	I_JECXZ,
-	I_JMP,
-	I_JMPE,
-	I_JRCXZ,
-	I_KADDB,
-	I_KADDD,
-	I_KADDQ,
-	I_KADDW,
-	I_KANDB,
-	I_KANDD,
-	I_KANDNB,
-	I_KANDND,
-	I_KANDNQ,
-	I_KANDNW,
-	I_KANDQ,
-	I_KANDW,
-	I_KMOVB,
-	I_KMOVD,
-	I_KMOVQ,
-	I_KMOVW,
-	I_KNOTB,
-	I_KNOTD,
-	I_KNOTQ,
-	I_KNOTW,
-	I_KORB,
-	I_KORD,
-	I_KORQ,
-	I_KORTESTB,
-	I_KORTESTD,
-	I_KORTESTQ,
-	I_KORTESTW,
-	I_KORW,
-	I_KSHIFTLB,
-	I_KSHIFTLD,
-	I_KSHIFTLQ,
-	I_KSHIFTLW,
-	I_KSHIFTRB,
-	I_KSHIFTRD,
-	I_KSHIFTRQ,
-	I_KSHIFTRW,
-	I_KTESTB,
-	I_KTESTD,
-	I_KTESTQ,
-	I_KTESTW,
-	I_KUNPCKBW,
-	I_KUNPCKDQ,
-	I_KUNPCKWD,
-	I_KXNORB,
-	I_KXNORD,
-	I_KXNORQ,
-	I_KXNORW,
-	I_KXORB,
-	I_KXORD,
-	I_KXORQ,
-	I_KXORW,
-	I_LAHF,
-	I_LAR,
-	I_LDDQU,
-	I_LDMXCSR,
-	I_LDS,
-	I_LEA,
-	I_LEAVE,
-	I_LES,
-	I_LFENCE,
-	I_LFS,
-	I_LGDT,
-	I_LGS,
-	I_LIDT,
-	I_LLDT,
-	I_LLWPCB,
-	I_LMSW,
-	I_LOADALL,
-	I_LOADALL286,
-	I_LODSB,
-	I_LODSD,
-	I_LODSQ,
-	I_LODSW,
-	I_LOOP,
-	I_LOOPE,
-	I_LOOPNE,
-	I_LOOPNZ,
-	I_LOOPZ,
-	I_LSL,
-	I_LSS,
-	I_LTR,
-	I_LWPINS,
-	I_LWPVAL,
-	I_LZCNT,
-	I_MASKMOVDQU,
-	I_MASKMOVQ,
-	I_MAXPD,
-	I_MAXPS,
-	I_MAXSD,
-	I_MAXSS,
-	I_MFENCE,
-	I_MINPD,
-	I_MINPS,
-	I_MINSD,
-	I_MINSS,
-	I_MONITOR,
-	I_MONITORX,
-	I_MONTMUL,
-	I_MOV,
-	I_MOVAPD,
-	I_MOVAPS,
-	I_MOVBE,
-	I_MOVD,
-	I_MOVDDUP,
-	I_MOVDQ2Q,
-	I_MOVDQA,
-	I_MOVDQU,
-	I_MOVHLPS,
-	I_MOVHPD,
-	I_MOVHPS,
-	I_MOVLHPS,
-	I_MOVLPD,
-	I_MOVLPS,
-	I_MOVMSKPD,
-	I_MOVMSKPS,
-	I_MOVNTDQ,
-	I_MOVNTDQA,
-	I_MOVNTI,
-	I_MOVNTPD,
-	I_MOVNTPS,
-	I_MOVNTQ,
-	I_MOVNTSD,
-	I_MOVNTSS,
-	I_MOVQ,
-	I_MOVQ2DQ,
-	I_MOVSB,
-	I_MOVSD,
-	I_MOVSHDUP,
-	I_MOVSLDUP,
-	I_MOVSQ,
-	I_MOVSS,
-	I_MOVSW,
-	I_MOVSX,
-	I_MOVSXD,
-	I_MOVUPD,
-	I_MOVUPS,
-	I_MOVZX,
-	I_MPSADBW,
-	I_MUL,
-	I_MULPD,
-	I_MULPS,
-	I_MULSD,
-	I_MULSS,
-	I_MULX,
-	I_MWAIT,
-	I_MWAITX,
-	I_NEG,
-	I_NOP,
-	I_NOT,
-	I_OR,
-	I_ORPD,
-	I_ORPS,
-	I_OUT,
-	I_OUTSB,
-	I_OUTSD,
-	I_OUTSW,
-	I_PABSB,
-	I_PABSD,
-	I_PABSW,
-	I_PACKSSDW,
-	I_PACKSSWB,
-	I_PACKUSDW,
-	I_PACKUSWB,
-	I_PADDB,
-	I_PADDD,
-	I_PADDQ,
-	I_PADDSB,
-	I_PADDSIW,
-	I_PADDSW,
-	I_PADDUSB,
-	I_PADDUSW,
-	I_PADDW,
-	I_PALIGNR,
-	I_PAND,
-	I_PANDN,
-	I_PAUSE,
-	I_PAVEB,
-	I_PAVGB,
-	I_PAVGUSB,
-	I_PAVGW,
-	I_PBLENDVB,
-	I_PBLENDW,
-	I_PCLMULHQHQDQ,
-	I_PCLMULHQLQDQ,
-	I_PCLMULLQHQDQ,
-	I_PCLMULLQLQDQ,
-	I_PCLMULQDQ,
-	I_PCMPEQB,
-	I_PCMPEQD,
-	I_PCMPEQQ,
-	I_PCMPEQW,
-	I_PCMPESTRI,
-	I_PCMPESTRM,
-	I_PCMPGTB,
-	I_PCMPGTD,
-	I_PCMPGTQ,
-	I_PCMPGTW,
-	I_PCMPISTRI,
-	I_PCMPISTRM,
-	I_PCOMMIT,
-	I_PDEP,
-	I_PDISTIB,
-	I_PEXT,
-	I_PEXTRB,
-	I_PEXTRD,
-	I_PEXTRQ,
-	I_PEXTRW,
-	I_PF2ID,
-	I_PF2IW,
-	I_PFACC,
-	I_PFADD,
-	I_PFCMPEQ,
-	I_PFCMPGE,
-	I_PFCMPGT,
-	I_PFMAX,
-	I_PFMIN,
-	I_PFMUL,
-	I_PFNACC,
-	I_PFPNACC,
-	I_PFRCP,
-	I_PFRCPIT1,
-	I_PFRCPIT2,
-	I_PFRCPV,
-	I_PFRSQIT1,
-	I_PFRSQRT,
-	I_PFRSQRTV,
-	I_PFSUB,
-	I_PFSUBR,
-	I_PHADDD,
-	I_PHADDSW,
-	I_PHADDW,
-	I_PHMINPOSUW,
-	I_PHSUBD,
-	I_PHSUBSW,
-	I_PHSUBW,
-	I_PI2FD,
-	I_PI2FW,
-	I_PINSRB,
-	I_PINSRD,
-	I_PINSRQ,
-	I_PINSRW,
-	I_PMACHRIW,
-	I_PMADDUBSW,
-	I_PMADDWD,
-	I_PMAGW,
-	I_PMAXSB,
-	I_PMAXSD,
-	I_PMAXSW,
-	I_PMAXUB,
-	I_PMAXUD,
-	I_PMAXUW,
-	I_PMINSB,
-	I_PMINSD,
-	I_PMINSW,
-	I_PMINUB,
-	I_PMINUD,
-	I_PMINUW,
-	I_PMOVMSKB,
-	I_PMOVSXBD,
-	I_PMOVSXBQ,
-	I_PMOVSXBW,
-	I_PMOVSXDQ,
-	I_PMOVSXWD,
-	I_PMOVSXWQ,
-	I_PMOVZXBD,
-	I_PMOVZXBQ,
-	I_PMOVZXBW,
-	I_PMOVZXDQ,
-	I_PMOVZXWD,
-	I_PMOVZXWQ,
-	I_PMULDQ,
-	I_PMULHRIW,
-	I_PMULHRSW,
-	I_PMULHRWA,
-	I_PMULHRWC,
-	I_PMULHUW,
-	I_PMULHW,
-	I_PMULLD,
-	I_PMULLW,
-	I_PMULUDQ,
-	I_PMVGEZB,
-	I_PMVLZB,
-	I_PMVNZB,
-	I_PMVZB,
-	I_POP,
-	I_POPA,
-	I_POPAD,
-	I_POPAW,
-	I_POPCNT,
-	I_POPF,
-	I_POPFD,
-	I_POPFQ,
-	I_POPFW,
-	I_POR,
-	I_PREFETCH,
-	I_PREFETCHNTA,
-	I_PREFETCHT0,
-	I_PREFETCHT1,
-	I_PREFETCHT2,
-	I_PREFETCHW,
-	I_PREFETCHWT1,
-	I_PSADBW,
-	I_PSHUFB,
-	I_PSHUFD,
-	I_PSHUFHW,
-	I_PSHUFLW,
-	I_PSHUFW,
-	I_PSIGNB,
-	I_PSIGND,
-	I_PSIGNW,
-	I_PSLLD,
-	I_PSLLDQ,
-	I_PSLLQ,
-	I_PSLLW,
-	I_PSRAD,
-	I_PSRAW,
-	I_PSRLD,
-	I_PSRLDQ,
-	I_PSRLQ,
-	I_PSRLW,
-	I_PSUBB,
-	I_PSUBD,
-	I_PSUBQ,
-	I_PSUBSB,
-	I_PSUBSIW,
-	I_PSUBSW,
-	I_PSUBUSB,
-	I_PSUBUSW,
-	I_PSUBW,
-	I_PSWAPD,
-	I_PTEST,
-	I_PUNPCKHBW,
-	I_PUNPCKHDQ,
-	I_PUNPCKHQDQ,
-	I_PUNPCKHWD,
-	I_PUNPCKLBW,
-	I_PUNPCKLDQ,
-	I_PUNPCKLQDQ,
-	I_PUNPCKLWD,
-	I_PUSH,
-	I_PUSHA,
-	I_PUSHAD,
-	I_PUSHAW,
-	I_PUSHF,
-	I_PUSHFD,
-	I_PUSHFQ,
-	I_PUSHFW,
-	I_PXOR,
-	I_RCL,
-	I_RCPPS,
-	I_RCPSS,
-	I_RCR,
-	I_RDFSBASE,
-	I_RDGSBASE,
-	I_RDM,
-	I_RDMSR,
-	I_RDPID,
-	I_RDPKRU,
-	I_RDPMC,
-	I_RDRAND,
-	I_RDSEED,
-	I_RDSHR,
-	I_RDTSC,
-	I_RDTSCP,
-	I_RESB,
-	I_RESD,
-	I_RESO,
-	I_RESQ,
-	I_REST,
-	I_RESW,
-	I_RESY,
-	I_RESZ,
-	I_RET,
-	I_RETF,
-	I_RETN,
-	I_ROL,
-	I_ROR,
-	I_RORX,
-	I_ROUNDPD,
-	I_ROUNDPS,
-	I_ROUNDSD,
-	I_ROUNDSS,
-	I_RSDC,
-	I_RSLDT,
-	I_RSM,
-	I_RSQRTPS,
-	I_RSQRTSS,
-	I_RSTS,
-	I_SAHF,
-	I_SAL,
-	I_SALC,
-	I_SAR,
-	I_SARX,
-	I_SBB,
-	I_SCASB,
-	I_SCASD,
-	I_SCASQ,
-	I_SCASW,
-	I_SFENCE,
-	I_SGDT,
-	I_SHA1MSG1,
-	I_SHA1MSG2,
-	I_SHA1NEXTE,
-	I_SHA1RNDS4,
-	I_SHA256MSG1,
-	I_SHA256MSG2,
-	I_SHA256RNDS2,
-	I_SHL,
-	I_SHLD,
-	I_SHLX,
-	I_SHR,
-	I_SHRD,
-	I_SHRX,
-	I_SHUFPD,
-	I_SHUFPS,
-	I_SIDT,
-	I_SKINIT,
-	I_SLDT,
-	I_SLWPCB,
-	I_SMI,
-	I_SMINT,
-	I_SMINTOLD,
-	I_SMSW,
-	I_SQRTPD,
-	I_SQRTPS,
-	I_SQRTSD,
-	I_SQRTSS,
-	I_STAC,
-	I_STC,
-	I_STD,
-	I_STGI,
-	I_STI,
-	I_STMXCSR,
-	I_STOSB,
-	I_STOSD,
-	I_STOSQ,
-	I_STOSW,
-	I_STR,
-	I_SUB,
-	I_SUBPD,
-	I_SUBPS,
-	I_SUBSD,
-	I_SUBSS,
-	I_SVDC,
-	I_SVLDT,
-	I_SVTS,
-	I_SWAPGS,
-	I_SYSCALL,
-	I_SYSENTER,
-	I_SYSEXIT,
-	I_SYSRET,
-	I_T1MSKC,
-	I_TEST,
-	I_TZCNT,
-	I_TZMSK,
-	I_UCOMISD,
-	I_UCOMISS,
-	I_UD0,
-	I_UD1,
-	I_UD2,
-	I_UD2A,
-	I_UD2B,
-	I_UMOV,
-	I_UNPCKHPD,
-	I_UNPCKHPS,
-	I_UNPCKLPD,
-	I_UNPCKLPS,
-	I_VADDPD,
-	I_VADDPS,
-	I_VADDSD,
-	I_VADDSS,
-	I_VADDSUBPD,
-	I_VADDSUBPS,
-	I_VAESDEC,
-	I_VAESDECLAST,
-	I_VAESENC,
-	I_VAESENCLAST,
-	I_VAESIMC,
-	I_VAESKEYGENASSIST,
-	I_VALIGND,
-	I_VALIGNQ,
-	I_VANDNPD,
-	I_VANDNPS,
-	I_VANDPD,
-	I_VANDPS,
-	I_VBLENDMPD,
-	I_VBLENDMPS,
-	I_VBLENDPD,
-	I_VBLENDPS,
-	I_VBLENDVPD,
-	I_VBLENDVPS,
-	I_VBROADCASTF128,
-	I_VBROADCASTF32X2,
-	I_VBROADCASTF32X4,
-	I_VBROADCASTF32X8,
-	I_VBROADCASTF64X2,
-	I_VBROADCASTF64X4,
-	I_VBROADCASTI128,
-	I_VBROADCASTI32X2,
-	I_VBROADCASTI32X4,
-	I_VBROADCASTI32X8,
-	I_VBROADCASTI64X2,
-	I_VBROADCASTI64X4,
-	I_VBROADCASTSD,
-	I_VBROADCASTSS,
-	I_VCMPEQPD,
-	I_VCMPEQPS,
-	I_VCMPEQSD,
-	I_VCMPEQSS,
-	I_VCMPEQ_OSPD,
-	I_VCMPEQ_OSPS,
-	I_VCMPEQ_OSSD,
-	I_VCMPEQ_OSSS,
-	I_VCMPEQ_UQPD,
-	I_VCMPEQ_UQPS,
-	I_VCMPEQ_UQSD,
-	I_VCMPEQ_UQSS,
-	I_VCMPEQ_USPD,
-	I_VCMPEQ_USPS,
-	I_VCMPEQ_USSD,
-	I_VCMPEQ_USSS,
-	I_VCMPFALSEPD,
-	I_VCMPFALSEPS,
-	I_VCMPFALSESD,
-	I_VCMPFALSESS,
-	I_VCMPFALSE_OQPD,
-	I_VCMPFALSE_OQPS,
-	I_VCMPFALSE_OQSD,
-	I_VCMPFALSE_OQSS,
-	I_VCMPFALSE_OSPD,
-	I_VCMPFALSE_OSPS,
-	I_VCMPFALSE_OSSD,
-	I_VCMPFALSE_OSSS,
-	I_VCMPGEPD,
-	I_VCMPGEPS,
-	I_VCMPGESD,
-	I_VCMPGESS,
-	I_VCMPGE_OQPD,
-	I_VCMPGE_OQPS,
-	I_VCMPGE_OQSD,
-	I_VCMPGE_OQSS,
-	I_VCMPGE_OSPD,
-	I_VCMPGE_OSPS,
-	I_VCMPGE_OSSD,
-	I_VCMPGE_OSSS,
-	I_VCMPGTPD,
-	I_VCMPGTPS,
-	I_VCMPGTSD,
-	I_VCMPGTSS,
-	I_VCMPGT_OQPD,
-	I_VCMPGT_OQPS,
-	I_VCMPGT_OQSD,
-	I_VCMPGT_OQSS,
-	I_VCMPGT_OSPD,
-	I_VCMPGT_OSPS,
-	I_VCMPGT_OSSD,
-	I_VCMPGT_OSSS,
-	I_VCMPLEPD,
-	I_VCMPLEPS,
-	I_VCMPLESD,
-	I_VCMPLESS,
-	I_VCMPLE_OQPD,
-	I_VCMPLE_OQPS,
-	I_VCMPLE_OQSD,
-	I_VCMPLE_OQSS,
-	I_VCMPLE_OSPD,
-	I_VCMPLE_OSPS,
-	I_VCMPLE_OSSD,
-	I_VCMPLE_OSSS,
-	I_VCMPLTPD,
-	I_VCMPLTPS,
-	I_VCMPLTSD,
-	I_VCMPLTSS,
-	I_VCMPLT_OQPD,
-	I_VCMPLT_OQPS,
-	I_VCMPLT_OQSD,
-	I_VCMPLT_OQSS,
-	I_VCMPLT_OSPD,
-	I_VCMPLT_OSPS,
-	I_VCMPLT_OSSD,
-	I_VCMPLT_OSSS,
-	I_VCMPNEQPD,
-	I_VCMPNEQPS,
-	I_VCMPNEQSD,
-	I_VCMPNEQSS,
-	I_VCMPNEQ_OQPD,
-	I_VCMPNEQ_OQPS,
-	I_VCMPNEQ_OQSD,
-	I_VCMPNEQ_OQSS,
-	I_VCMPNEQ_OSPD,
-	I_VCMPNEQ_OSPS,
-	I_VCMPNEQ_OSSD,
-	I_VCMPNEQ_OSSS,
-	I_VCMPNEQ_UQPD,
-	I_VCMPNEQ_UQPS,
-	I_VCMPNEQ_UQSD,
-	I_VCMPNEQ_UQSS,
-	I_VCMPNEQ_USPD,
-	I_VCMPNEQ_USPS,
-	I_VCMPNEQ_USSD,
-	I_VCMPNEQ_USSS,
-	I_VCMPNGEPD,
-	I_VCMPNGEPS,
-	I_VCMPNGESD,
-	I_VCMPNGESS,
-	I_VCMPNGE_UQPD,
-	I_VCMPNGE_UQPS,
-	I_VCMPNGE_UQSD,
-	I_VCMPNGE_UQSS,
-	I_VCMPNGE_USPD,
-	I_VCMPNGE_USPS,
-	I_VCMPNGE_USSD,
-	I_VCMPNGE_USSS,
-	I_VCMPNGTPD,
-	I_VCMPNGTPS,
-	I_VCMPNGTSD,
-	I_VCMPNGTSS,
-	I_VCMPNGT_UQPD,
-	I_VCMPNGT_UQPS,
-	I_VCMPNGT_UQSD,
-	I_VCMPNGT_UQSS,
-	I_VCMPNGT_USPD,
-	I_VCMPNGT_USPS,
-	I_VCMPNGT_USSD,
-	I_VCMPNGT_USSS,
-	I_VCMPNLEPD,
-	I_VCMPNLEPS,
-	I_VCMPNLESD,
-	I_VCMPNLESS,
-	I_VCMPNLE_UQPD,
-	I_VCMPNLE_UQPS,
-	I_VCMPNLE_UQSD,
-	I_VCMPNLE_UQSS,
-	I_VCMPNLE_USPD,
-	I_VCMPNLE_USPS,
-	I_VCMPNLE_USSD,
-	I_VCMPNLE_USSS,
-	I_VCMPNLTPD,
-	I_VCMPNLTPS,
-	I_VCMPNLTSD,
-	I_VCMPNLTSS,
-	I_VCMPNLT_UQPD,
-	I_VCMPNLT_UQPS,
-	I_VCMPNLT_UQSD,
-	I_VCMPNLT_UQSS,
-	I_VCMPNLT_USPD,
-	I_VCMPNLT_USPS,
-	I_VCMPNLT_USSD,
-	I_VCMPNLT_USSS,
-	I_VCMPORDPD,
-	I_VCMPORDPS,
-	I_VCMPORDSD,
-	I_VCMPORDSS,
-	I_VCMPORD_QPD,
-	I_VCMPORD_QPS,
-	I_VCMPORD_QSD,
-	I_VCMPORD_QSS,
-	I_VCMPORD_SPD,
-	I_VCMPORD_SPS,
-	I_VCMPORD_SSD,
-	I_VCMPORD_SSS,
-	I_VCMPPD,
-	I_VCMPPS,
-	I_VCMPSD,
-	I_VCMPSS,
-	I_VCMPTRUEPD,
-	I_VCMPTRUEPS,
-	I_VCMPTRUESD,
-	I_VCMPTRUESS,
-	I_VCMPTRUE_UQPD,
-	I_VCMPTRUE_UQPS,
-	I_VCMPTRUE_UQSD,
-	I_VCMPTRUE_UQSS,
-	I_VCMPTRUE_USPD,
-	I_VCMPTRUE_USPS,
-	I_VCMPTRUE_USSD,
-	I_VCMPTRUE_USSS,
-	I_VCMPUNORDPD,
-	I_VCMPUNORDPS,
-	I_VCMPUNORDSD,
-	I_VCMPUNORDSS,
-	I_VCMPUNORD_QPD,
-	I_VCMPUNORD_QPS,
-	I_VCMPUNORD_QSD,
-	I_VCMPUNORD_QSS,
-	I_VCMPUNORD_SPD,
-	I_VCMPUNORD_SPS,
-	I_VCMPUNORD_SSD,
-	I_VCMPUNORD_SSS,
-	I_VCOMISD,
-	I_VCOMISS,
-	I_VCOMPRESSPD,
-	I_VCOMPRESSPS,
-	I_VCVTDQ2PD,
-	I_VCVTDQ2PS,
-	I_VCVTPD2DQ,
-	I_VCVTPD2PS,
-	I_VCVTPD2QQ,
-	I_VCVTPD2UDQ,
-	I_VCVTPD2UQQ,
-	I_VCVTPH2PS,
-	I_VCVTPS2DQ,
-	I_VCVTPS2PD,
-	I_VCVTPS2PH,
-	I_VCVTPS2QQ,
-	I_VCVTPS2UDQ,
-	I_VCVTPS2UQQ,
-	I_VCVTQQ2PD,
-	I_VCVTQQ2PS,
-	I_VCVTSD2SI,
-	I_VCVTSD2SS,
-	I_VCVTSD2USI,
-	I_VCVTSI2SD,
-	I_VCVTSI2SS,
-	I_VCVTSS2SD,
-	I_VCVTSS2SI,
-	I_VCVTSS2USI,
-	I_VCVTTPD2DQ,
-	I_VCVTTPD2QQ,
-	I_VCVTTPD2UDQ,
-	I_VCVTTPD2UQQ,
-	I_VCVTTPS2DQ,
-	I_VCVTTPS2QQ,
-	I_VCVTTPS2UDQ,
-	I_VCVTTPS2UQQ,
-	I_VCVTTSD2SI,
-	I_VCVTTSD2USI,
-	I_VCVTTSS2SI,
-	I_VCVTTSS2USI,
-	I_VCVTUDQ2PD,
-	I_VCVTUDQ2PS,
-	I_VCVTUQQ2PD,
-	I_VCVTUQQ2PS,
-	I_VCVTUSI2SD,
-	I_VCVTUSI2SS,
-	I_VDBPSADBW,
-	I_VDIVPD,
-	I_VDIVPS,
-	I_VDIVSD,
-	I_VDIVSS,
-	I_VDPPD,
-	I_VDPPS,
-	I_VERR,
-	I_VERW,
-	I_VEXP2PD,
-	I_VEXP2PS,
-	I_VEXPANDPD,
-	I_VEXPANDPS,
-	I_VEXTRACTF128,
-	I_VEXTRACTF32X4,
-	I_VEXTRACTF32X8,
-	I_VEXTRACTF64X2,
-	I_VEXTRACTF64X4,
-	I_VEXTRACTI128,
-	I_VEXTRACTI32X4,
-	I_VEXTRACTI32X8,
-	I_VEXTRACTI64X2,
-	I_VEXTRACTI64X4,
-	I_VEXTRACTPS,
-	I_VFIXUPIMMPD,
-	I_VFIXUPIMMPS,
-	I_VFIXUPIMMSD,
-	I_VFIXUPIMMSS,
-	I_VFMADD123PD,
-	I_VFMADD123PS,
-	I_VFMADD123SD,
-	I_VFMADD123SS,
-	I_VFMADD132PD,
-	I_VFMADD132PS,
-	I_VFMADD132SD,
-	I_VFMADD132SS,
-	I_VFMADD213PD,
-	I_VFMADD213PS,
-	I_VFMADD213SD,
-	I_VFMADD213SS,
-	I_VFMADD231PD,
-	I_VFMADD231PS,
-	I_VFMADD231SD,
-	I_VFMADD231SS,
-	I_VFMADD312PD,
-	I_VFMADD312PS,
-	I_VFMADD312SD,
-	I_VFMADD312SS,
-	I_VFMADD321PD,
-	I_VFMADD321PS,
-	I_VFMADD321SD,
-	I_VFMADD321SS,
-	I_VFMADDPD,
-	I_VFMADDPS,
-	I_VFMADDSD,
-	I_VFMADDSS,
-	I_VFMADDSUB123PD,
-	I_VFMADDSUB123PS,
-	I_VFMADDSUB132PD,
-	I_VFMADDSUB132PS,
-	I_VFMADDSUB213PD,
-	I_VFMADDSUB213PS,
-	I_VFMADDSUB231PD,
-	I_VFMADDSUB231PS,
-	I_VFMADDSUB312PD,
-	I_VFMADDSUB312PS,
-	I_VFMADDSUB321PD,
-	I_VFMADDSUB321PS,
-	I_VFMADDSUBPD,
-	I_VFMADDSUBPS,
-	I_VFMSUB123PD,
-	I_VFMSUB123PS,
-	I_VFMSUB123SD,
-	I_VFMSUB123SS,
-	I_VFMSUB132PD,
-	I_VFMSUB132PS,
-	I_VFMSUB132SD,
-	I_VFMSUB132SS,
-	I_VFMSUB213PD,
-	I_VFMSUB213PS,
-	I_VFMSUB213SD,
-	I_VFMSUB213SS,
-	I_VFMSUB231PD,
-	I_VFMSUB231PS,
-	I_VFMSUB231SD,
-	I_VFMSUB231SS,
-	I_VFMSUB312PD,
-	I_VFMSUB312PS,
-	I_VFMSUB312SD,
-	I_VFMSUB312SS,
-	I_VFMSUB321PD,
-	I_VFMSUB321PS,
-	I_VFMSUB321SD,
-	I_VFMSUB321SS,
-	I_VFMSUBADD123PD,
-	I_VFMSUBADD123PS,
-	I_VFMSUBADD132PD,
-	I_VFMSUBADD132PS,
-	I_VFMSUBADD213PD,
-	I_VFMSUBADD213PS,
-	I_VFMSUBADD231PD,
-	I_VFMSUBADD231PS,
-	I_VFMSUBADD312PD,
-	I_VFMSUBADD312PS,
-	I_VFMSUBADD321PD,
-	I_VFMSUBADD321PS,
-	I_VFMSUBADDPD,
-	I_VFMSUBADDPS,
-	I_VFMSUBPD,
-	I_VFMSUBPS,
-	I_VFMSUBSD,
-	I_VFMSUBSS,
-	I_VFNMADD123PD,
-	I_VFNMADD123PS,
-	I_VFNMADD123SD,
-	I_VFNMADD123SS,
-	I_VFNMADD132PD,
-	I_VFNMADD132PS,
-	I_VFNMADD132SD,
-	I_VFNMADD132SS,
-	I_VFNMADD213PD,
-	I_VFNMADD213PS,
-	I_VFNMADD213SD,
-	I_VFNMADD213SS,
-	I_VFNMADD231PD,
-	I_VFNMADD231PS,
-	I_VFNMADD231SD,
-	I_VFNMADD231SS,
-	I_VFNMADD312PD,
-	I_VFNMADD312PS,
-	I_VFNMADD312SD,
-	I_VFNMADD312SS,
-	I_VFNMADD321PD,
-	I_VFNMADD321PS,
-	I_VFNMADD321SD,
-	I_VFNMADD321SS,
-	I_VFNMADDPD,
-	I_VFNMADDPS,
-	I_VFNMADDSD,
-	I_VFNMADDSS,
-	I_VFNMSUB123PD,
-	I_VFNMSUB123PS,
-	I_VFNMSUB123SD,
-	I_VFNMSUB123SS,
-	I_VFNMSUB132PD,
-	I_VFNMSUB132PS,
-	I_VFNMSUB132SD,
-	I_VFNMSUB132SS,
-	I_VFNMSUB213PD,
-	I_VFNMSUB213PS,
-	I_VFNMSUB213SD,
-	I_VFNMSUB213SS,
-	I_VFNMSUB231PD,
-	I_VFNMSUB231PS,
-	I_VFNMSUB231SD,
-	I_VFNMSUB231SS,
-	I_VFNMSUB312PD,
-	I_VFNMSUB312PS,
-	I_VFNMSUB312SD,
-	I_VFNMSUB312SS,
-	I_VFNMSUB321PD,
-	I_VFNMSUB321PS,
-	I_VFNMSUB321SD,
-	I_VFNMSUB321SS,
-	I_VFNMSUBPD,
-	I_VFNMSUBPS,
-	I_VFNMSUBSD,
-	I_VFNMSUBSS,
-	I_VFPCLASSPD,
-	I_VFPCLASSPS,
-	I_VFPCLASSSD,
-	I_VFPCLASSSS,
-	I_VFRCZPD,
-	I_VFRCZPS,
-	I_VFRCZSD,
-	I_VFRCZSS,
-	I_VGATHERDPD,
-	I_VGATHERDPS,
-	I_VGATHERPF0DPD,
-	I_VGATHERPF0DPS,
-	I_VGATHERPF0QPD,
-	I_VGATHERPF0QPS,
-	I_VGATHERPF1DPD,
-	I_VGATHERPF1DPS,
-	I_VGATHERPF1QPD,
-	I_VGATHERPF1QPS,
-	I_VGATHERQPD,
-	I_VGATHERQPS,
-	I_VGETEXPPD,
-	I_VGETEXPPS,
-	I_VGETEXPSD,
-	I_VGETEXPSS,
-	I_VGETMANTPD,
-	I_VGETMANTPS,
-	I_VGETMANTSD,
-	I_VGETMANTSS,
-	I_VHADDPD,
-	I_VHADDPS,
-	I_VHSUBPD,
-	I_VHSUBPS,
-	I_VINSERTF128,
-	I_VINSERTF32X4,
-	I_VINSERTF32X8,
-	I_VINSERTF64X2,
-	I_VINSERTF64X4,
-	I_VINSERTI128,
-	I_VINSERTI32X4,
-	I_VINSERTI32X8,
-	I_VINSERTI64X2,
-	I_VINSERTI64X4,
-	I_VINSERTPS,
-	I_VLDDQU,
-	I_VLDMXCSR,
-	I_VLDQQU,
-	I_VMASKMOVDQU,
-	I_VMASKMOVPD,
-	I_VMASKMOVPS,
-	I_VMAXPD,
-	I_VMAXPS,
-	I_VMAXSD,
-	I_VMAXSS,
-	I_VMCALL,
-	I_VMCLEAR,
-	I_VMFUNC,
-	I_VMINPD,
-	I_VMINPS,
-	I_VMINSD,
-	I_VMINSS,
-	I_VMLAUNCH,
-	I_VMLOAD,
-	I_VMMCALL,
-	I_VMOVAPD,
-	I_VMOVAPS,
-	I_VMOVD,
-	I_VMOVDDUP,
-	I_VMOVDQA,
-	I_VMOVDQA32,
-	I_VMOVDQA64,
-	I_VMOVDQU,
-	I_VMOVDQU16,
-	I_VMOVDQU32,
-	I_VMOVDQU64,
-	I_VMOVDQU8,
-	I_VMOVHLPS,
-	I_VMOVHPD,
-	I_VMOVHPS,
-	I_VMOVLHPS,
-	I_VMOVLPD,
-	I_VMOVLPS,
-	I_VMOVMSKPD,
-	I_VMOVMSKPS,
-	I_VMOVNTDQ,
-	I_VMOVNTDQA,
-	I_VMOVNTPD,
-	I_VMOVNTPS,
-	I_VMOVNTQQ,
-	I_VMOVQ,
-	I_VMOVQQA,
-	I_VMOVQQU,
-	I_VMOVSD,
-	I_VMOVSHDUP,
-	I_VMOVSLDUP,
-	I_VMOVSS,
-	I_VMOVUPD,
-	I_VMOVUPS,
-	I_VMPSADBW,
-	I_VMPTRLD,
-	I_VMPTRST,
-	I_VMREAD,
-	I_VMRESUME,
-	I_VMRUN,
-	I_VMSAVE,
-	I_VMULPD,
-	I_VMULPS,
-	I_VMULSD,
-	I_VMULSS,
-	I_VMWRITE,
-	I_VMXOFF,
-	I_VMXON,
-	I_VORPD,
-	I_VORPS,
-	I_VPABSB,
-	I_VPABSD,
-	I_VPABSQ,
-	I_VPABSW,
-	I_VPACKSSDW,
-	I_VPACKSSWB,
-	I_VPACKUSDW,
-	I_VPACKUSWB,
-	I_VPADDB,
-	I_VPADDD,
-	I_VPADDQ,
-	I_VPADDSB,
-	I_VPADDSW,
-	I_VPADDUSB,
-	I_VPADDUSW,
-	I_VPADDW,
-	I_VPALIGNR,
-	I_VPAND,
-	I_VPANDD,
-	I_VPANDN,
-	I_VPANDND,
-	I_VPANDNQ,
-	I_VPANDQ,
-	I_VPAVGB,
-	I_VPAVGW,
-	I_VPBLENDD,
-	I_VPBLENDMB,
-	I_VPBLENDMD,
-	I_VPBLENDMQ,
-	I_VPBLENDMW,
-	I_VPBLENDVB,
-	I_VPBLENDW,
-	I_VPBROADCASTB,
-	I_VPBROADCASTD,
-	I_VPBROADCASTMB2Q,
-	I_VPBROADCASTMW2D,
-	I_VPBROADCASTQ,
-	I_VPBROADCASTW,
-	I_VPCLMULHQHQDQ,
-	I_VPCLMULHQLQDQ,
-	I_VPCLMULLQHQDQ,
-	I_VPCLMULLQLQDQ,
-	I_VPCLMULQDQ,
-	I_VPCMOV,
-	I_VPCMPB,
-	I_VPCMPD,
-	I_VPCMPEQB,
-	I_VPCMPEQD,
-	I_VPCMPEQQ,
-	I_VPCMPEQW,
-	I_VPCMPESTRI,
-	I_VPCMPESTRM,
-	I_VPCMPGTB,
-	I_VPCMPGTD,
-	I_VPCMPGTQ,
-	I_VPCMPGTW,
-	I_VPCMPISTRI,
-	I_VPCMPISTRM,
-	I_VPCMPQ,
-	I_VPCMPUB,
-	I_VPCMPUD,
-	I_VPCMPUQ,
-	I_VPCMPUW,
-	I_VPCMPW,
-	I_VPCOMB,
-	I_VPCOMD,
-	I_VPCOMPRESSD,
-	I_VPCOMPRESSQ,
-	I_VPCOMQ,
-	I_VPCOMUB,
-	I_VPCOMUD,
-	I_VPCOMUQ,
-	I_VPCOMUW,
-	I_VPCOMW,
-	I_VPCONFLICTD,
-	I_VPCONFLICTQ,
-	I_VPERM2F128,
-	I_VPERM2I128,
-	I_VPERMB,
-	I_VPERMD,
-	I_VPERMI2B,
-	I_VPERMI2D,
-	I_VPERMI2PD,
-	I_VPERMI2PS,
-	I_VPERMI2Q,
-	I_VPERMI2W,
-	I_VPERMILPD,
-	I_VPERMILPS,
-	I_VPERMPD,
-	I_VPERMPS,
-	I_VPERMQ,
-	I_VPERMT2B,
-	I_VPERMT2D,
-	I_VPERMT2PD,
-	I_VPERMT2PS,
-	I_VPERMT2Q,
-	I_VPERMT2W,
-	I_VPERMW,
-	I_VPEXPANDD,
-	I_VPEXPANDQ,
-	I_VPEXTRB,
-	I_VPEXTRD,
-	I_VPEXTRQ,
-	I_VPEXTRW,
-	I_VPGATHERDD,
-	I_VPGATHERDQ,
-	I_VPGATHERQD,
-	I_VPGATHERQQ,
-	I_VPHADDBD,
-	I_VPHADDBQ,
-	I_VPHADDBW,
-	I_VPHADDD,
-	I_VPHADDDQ,
-	I_VPHADDSW,
-	I_VPHADDUBD,
-	I_VPHADDUBQ,
-	I_VPHADDUBW,
-	I_VPHADDUDQ,
-	I_VPHADDUWD,
-	I_VPHADDUWQ,
-	I_VPHADDW,
-	I_VPHADDWD,
-	I_VPHADDWQ,
-	I_VPHMINPOSUW,
-	I_VPHSUBBW,
-	I_VPHSUBD,
-	I_VPHSUBDQ,
-	I_VPHSUBSW,
-	I_VPHSUBW,
-	I_VPHSUBWD,
-	I_VPINSRB,
-	I_VPINSRD,
-	I_VPINSRQ,
-	I_VPINSRW,
-	I_VPLZCNTD,
-	I_VPLZCNTQ,
-	I_VPMACSDD,
-	I_VPMACSDQH,
-	I_VPMACSDQL,
-	I_VPMACSSDD,
-	I_VPMACSSDQH,
-	I_VPMACSSDQL,
-	I_VPMACSSWD,
-	I_VPMACSSWW,
-	I_VPMACSWD,
-	I_VPMACSWW,
-	I_VPMADCSSWD,
-	I_VPMADCSWD,
-	I_VPMADD52HUQ,
-	I_VPMADD52LUQ,
-	I_VPMADDUBSW,
-	I_VPMADDWD,
-	I_VPMASKMOVD,
-	I_VPMASKMOVQ,
-	I_VPMAXSB,
-	I_VPMAXSD,
-	I_VPMAXSQ,
-	I_VPMAXSW,
-	I_VPMAXUB,
-	I_VPMAXUD,
-	I_VPMAXUQ,
-	I_VPMAXUW,
-	I_VPMINSB,
-	I_VPMINSD,
-	I_VPMINSQ,
-	I_VPMINSW,
-	I_VPMINUB,
-	I_VPMINUD,
-	I_VPMINUQ,
-	I_VPMINUW,
-	I_VPMOVB2M,
-	I_VPMOVD2M,
-	I_VPMOVDB,
-	I_VPMOVDW,
-	I_VPMOVM2B,
-	I_VPMOVM2D,
-	I_VPMOVM2Q,
-	I_VPMOVM2W,
-	I_VPMOVMSKB,
-	I_VPMOVQ2M,
-	I_VPMOVQB,
-	I_VPMOVQD,
-	I_VPMOVQW,
-	I_VPMOVSDB,
-	I_VPMOVSDW,
-	I_VPMOVSQB,
-	I_VPMOVSQD,
-	I_VPMOVSQW,
-	I_VPMOVSWB,
-	I_VPMOVSXBD,
-	I_VPMOVSXBQ,
-	I_VPMOVSXBW,
-	I_VPMOVSXDQ,
-	I_VPMOVSXWD,
-	I_VPMOVSXWQ,
-	I_VPMOVUSDB,
-	I_VPMOVUSDW,
-	I_VPMOVUSQB,
-	I_VPMOVUSQD,
-	I_VPMOVUSQW,
-	I_VPMOVUSWB,
-	I_VPMOVW2M,
-	I_VPMOVWB,
-	I_VPMOVZXBD,
-	I_VPMOVZXBQ,
-	I_VPMOVZXBW,
-	I_VPMOVZXDQ,
-	I_VPMOVZXWD,
-	I_VPMOVZXWQ,
-	I_VPMULDQ,
-	I_VPMULHRSW,
-	I_VPMULHUW,
-	I_VPMULHW,
-	I_VPMULLD,
-	I_VPMULLQ,
-	I_VPMULLW,
-	I_VPMULTISHIFTQB,
-	I_VPMULUDQ,
-	I_VPOR,
-	I_VPORD,
-	I_VPORQ,
-	I_VPPERM,
-	I_VPROLD,
-	I_VPROLQ,
-	I_VPROLVD,
-	I_VPROLVQ,
-	I_VPRORD,
-	I_VPRORQ,
-	I_VPRORVD,
-	I_VPRORVQ,
-	I_VPROTB,
-	I_VPROTD,
-	I_VPROTQ,
-	I_VPROTW,
-	I_VPSADBW,
-	I_VPSCATTERDD,
-	I_VPSCATTERDQ,
-	I_VPSCATTERQD,
-	I_VPSCATTERQQ,
-	I_VPSHAB,
-	I_VPSHAD,
-	I_VPSHAQ,
-	I_VPSHAW,
-	I_VPSHLB,
-	I_VPSHLD,
-	I_VPSHLQ,
-	I_VPSHLW,
-	I_VPSHUFB,
-	I_VPSHUFD,
-	I_VPSHUFHW,
-	I_VPSHUFLW,
-	I_VPSIGNB,
-	I_VPSIGND,
-	I_VPSIGNW,
-	I_VPSLLD,
-	I_VPSLLDQ,
-	I_VPSLLQ,
-	I_VPSLLVD,
-	I_VPSLLVQ,
-	I_VPSLLVW,
-	I_VPSLLW,
-	I_VPSRAD,
-	I_VPSRAQ,
-	I_VPSRAVD,
-	I_VPSRAVQ,
-	I_VPSRAVW,
-	I_VPSRAW,
-	I_VPSRLD,
-	I_VPSRLDQ,
-	I_VPSRLQ,
-	I_VPSRLVD,
-	I_VPSRLVQ,
-	I_VPSRLVW,
-	I_VPSRLW,
-	I_VPSUBB,
-	I_VPSUBD,
-	I_VPSUBQ,
-	I_VPSUBSB,
-	I_VPSUBSW,
-	I_VPSUBUSB,
-	I_VPSUBUSW,
-	I_VPSUBW,
-	I_VPTERNLOGD,
-	I_VPTERNLOGQ,
-	I_VPTEST,
-	I_VPTESTMB,
-	I_VPTESTMD,
-	I_VPTESTMQ,
-	I_VPTESTMW,
-	I_VPTESTNMB,
-	I_VPTESTNMD,
-	I_VPTESTNMQ,
-	I_VPTESTNMW,
-	I_VPUNPCKHBW,
-	I_VPUNPCKHDQ,
-	I_VPUNPCKHQDQ,
-	I_VPUNPCKHWD,
-	I_VPUNPCKLBW,
-	I_VPUNPCKLDQ,
-	I_VPUNPCKLQDQ,
-	I_VPUNPCKLWD,
-	I_VPXOR,
-	I_VPXORD,
-	I_VPXORQ,
-	I_VRANGEPD,
-	I_VRANGEPS,
-	I_VRANGESD,
-	I_VRANGESS,
-	I_VRCP14PD,
-	I_VRCP14PS,
-	I_VRCP14SD,
-	I_VRCP14SS,
-	I_VRCP28PD,
-	I_VRCP28PS,
-	I_VRCP28SD,
-	I_VRCP28SS,
-	I_VRCPPS,
-	I_VRCPSS,
-	I_VREDUCEPD,
-	I_VREDUCEPS,
-	I_VREDUCESD,
-	I_VREDUCESS,
-	I_VRNDSCALEPD,
-	I_VRNDSCALEPS,
-	I_VRNDSCALESD,
-	I_VRNDSCALESS,
-	I_VROUNDPD,
-	I_VROUNDPS,
-	I_VROUNDSD,
-	I_VROUNDSS,
-	I_VRSQRT14PD,
-	I_VRSQRT14PS,
-	I_VRSQRT14SD,
-	I_VRSQRT14SS,
-	I_VRSQRT28PD,
-	I_VRSQRT28PS,
-	I_VRSQRT28SD,
-	I_VRSQRT28SS,
-	I_VRSQRTPS,
-	I_VRSQRTSS,
-	I_VSCALEFPD,
-	I_VSCALEFPS,
-	I_VSCALEFSD,
-	I_VSCALEFSS,
-	I_VSCATTERDPD,
-	I_VSCATTERDPS,
-	I_VSCATTERPF0DPD,
-	I_VSCATTERPF0DPS,
-	I_VSCATTERPF0QPD,
-	I_VSCATTERPF0QPS,
-	I_VSCATTERPF1DPD,
-	I_VSCATTERPF1DPS,
-	I_VSCATTERPF1QPD,
-	I_VSCATTERPF1QPS,
-	I_VSCATTERQPD,
-	I_VSCATTERQPS,
-	I_VSHUFF32X4,
-	I_VSHUFF64X2,
-	I_VSHUFI32X4,
-	I_VSHUFI64X2,
-	I_VSHUFPD,
-	I_VSHUFPS,
-	I_VSQRTPD,
-	I_VSQRTPS,
-	I_VSQRTSD,
-	I_VSQRTSS,
-	I_VSTMXCSR,
-	I_VSUBPD,
-	I_VSUBPS,
-	I_VSUBSD,
-	I_VSUBSS,
-	I_VTESTPD,
-	I_VTESTPS,
-	I_VUCOMISD,
-	I_VUCOMISS,
-	I_VUNPCKHPD,
-	I_VUNPCKHPS,
-	I_VUNPCKLPD,
-	I_VUNPCKLPS,
-	I_VXORPD,
-	I_VXORPS,
-	I_VZEROALL,
-	I_VZEROUPPER,
-	I_WBINVD,
-	I_WRFSBASE,
-	I_WRGSBASE,
-	I_WRMSR,
-	I_WRPKRU,
-	I_WRSHR,
-	I_XABORT,
-	I_XADD,
-	I_XBEGIN,
-	I_XBTS,
-	I_XCHG,
-	I_XCRYPTCBC,
-	I_XCRYPTCFB,
-	I_XCRYPTCTR,
-	I_XCRYPTECB,
-	I_XCRYPTOFB,
-	I_XEND,
-	I_XGETBV,
-	I_XLAT,
-	I_XLATB,
-	I_XOR,
-	I_XORPD,
-	I_XORPS,
-	I_XRSTOR,
-	I_XRSTOR64,
-	I_XRSTORS,
-	I_XRSTORS64,
-	I_XSAVE,
-	I_XSAVE64,
-	I_XSAVEC,
-	I_XSAVEC64,
-	I_XSAVEOPT,
-	I_XSAVEOPT64,
-	I_XSAVES,
-	I_XSAVES64,
-	I_XSETBV,
-	I_XSHA1,
-	I_XSHA256,
-	I_XSTORE,
-	I_XTEST,
-	I_CMOVcc,
-	I_Jcc,
-	I_SETcc,
-	I_none = -1
-};
-
-#define MAX_INSLEN 16
-#define NASM_VEX_CLASSES 3
-#define NO_DECORATOR	{0,0,0,0,0}
-#define FIRST_COND_OPCODE I_CMOVcc
-
-#endif /* NASM_INSNSI_H */
--- a/nasmbuild/nasm-2.13rc9/x86/insnsn.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1829 +0,0 @@
-/* This file is auto-generated from insns.dat by insns.pl - don't edit it */
-
-#include "tables.h"
-
-const char * const nasm_insn_names[] = {
-	"aaa",
-	"aad",
-	"aam",
-	"aas",
-	"adc",
-	"adcx",
-	"add",
-	"addpd",
-	"addps",
-	"addsd",
-	"addss",
-	"addsubpd",
-	"addsubps",
-	"adox",
-	"aesdec",
-	"aesdeclast",
-	"aesenc",
-	"aesenclast",
-	"aesimc",
-	"aeskeygenassist",
-	"and",
-	"andn",
-	"andnpd",
-	"andnps",
-	"andpd",
-	"andps",
-	"arpl",
-	"bb0_reset",
-	"bb1_reset",
-	"bextr",
-	"blcfill",
-	"blci",
-	"blcic",
-	"blcmsk",
-	"blcs",
-	"blendpd",
-	"blendps",
-	"blendvpd",
-	"blendvps",
-	"blsfill",
-	"blsi",
-	"blsic",
-	"blsmsk",
-	"blsr",
-	"bndcl",
-	"bndcn",
-	"bndcu",
-	"bndldx",
-	"bndmk",
-	"bndmov",
-	"bndstx",
-	"bound",
-	"bsf",
-	"bsr",
-	"bswap",
-	"bt",
-	"btc",
-	"btr",
-	"bts",
-	"bzhi",
-	"call",
-	"cbw",
-	"cdq",
-	"cdqe",
-	"clac",
-	"clc",
-	"cld",
-	"clflush",
-	"clflushopt",
-	"clgi",
-	"cli",
-	"clts",
-	"clwb",
-	"clzero",
-	"cmc",
-	"cmp",
-	"cmpeqpd",
-	"cmpeqps",
-	"cmpeqsd",
-	"cmpeqss",
-	"cmplepd",
-	"cmpleps",
-	"cmplesd",
-	"cmpless",
-	"cmpltpd",
-	"cmpltps",
-	"cmpltsd",
-	"cmpltss",
-	"cmpneqpd",
-	"cmpneqps",
-	"cmpneqsd",
-	"cmpneqss",
-	"cmpnlepd",
-	"cmpnleps",
-	"cmpnlesd",
-	"cmpnless",
-	"cmpnltpd",
-	"cmpnltps",
-	"cmpnltsd",
-	"cmpnltss",
-	"cmpordpd",
-	"cmpordps",
-	"cmpordsd",
-	"cmpordss",
-	"cmppd",
-	"cmpps",
-	"cmpsb",
-	"cmpsd",
-	"cmpsq",
-	"cmpss",
-	"cmpsw",
-	"cmpunordpd",
-	"cmpunordps",
-	"cmpunordsd",
-	"cmpunordss",
-	"cmpxchg",
-	"cmpxchg16b",
-	"cmpxchg486",
-	"cmpxchg8b",
-	"comisd",
-	"comiss",
-	"cpuid",
-	"cpu_read",
-	"cpu_write",
-	"cqo",
-	"crc32",
-	"cvtdq2pd",
-	"cvtdq2ps",
-	"cvtpd2dq",
-	"cvtpd2pi",
-	"cvtpd2ps",
-	"cvtpi2pd",
-	"cvtpi2ps",
-	"cvtps2dq",
-	"cvtps2pd",
-	"cvtps2pi",
-	"cvtsd2si",
-	"cvtsd2ss",
-	"cvtsi2sd",
-	"cvtsi2ss",
-	"cvtss2sd",
-	"cvtss2si",
-	"cvttpd2dq",
-	"cvttpd2pi",
-	"cvttps2dq",
-	"cvttps2pi",
-	"cvttsd2si",
-	"cvttss2si",
-	"cwd",
-	"cwde",
-	"daa",
-	"das",
-	"db",
-	"dd",
-	"dec",
-	"div",
-	"divpd",
-	"divps",
-	"divsd",
-	"divss",
-	"dmint",
-	"do",
-	"dppd",
-	"dpps",
-	"dq",
-	"dt",
-	"dw",
-	"dy",
-	"dz",
-	"emms",
-	"enter",
-	"equ",
-	"extractps",
-	"extrq",
-	"f2xm1",
-	"fabs",
-	"fadd",
-	"faddp",
-	"fbld",
-	"fbstp",
-	"fchs",
-	"fclex",
-	"fcmovb",
-	"fcmovbe",
-	"fcmove",
-	"fcmovnb",
-	"fcmovnbe",
-	"fcmovne",
-	"fcmovnu",
-	"fcmovu",
-	"fcom",
-	"fcomi",
-	"fcomip",
-	"fcomp",
-	"fcompp",
-	"fcos",
-	"fdecstp",
-	"fdisi",
-	"fdiv",
-	"fdivp",
-	"fdivr",
-	"fdivrp",
-	"femms",
-	"feni",
-	"ffree",
-	"ffreep",
-	"fiadd",
-	"ficom",
-	"ficomp",
-	"fidiv",
-	"fidivr",
-	"fild",
-	"fimul",
-	"fincstp",
-	"finit",
-	"fist",
-	"fistp",
-	"fisttp",
-	"fisub",
-	"fisubr",
-	"fld",
-	"fld1",
-	"fldcw",
-	"fldenv",
-	"fldl2e",
-	"fldl2t",
-	"fldlg2",
-	"fldln2",
-	"fldpi",
-	"fldz",
-	"fmul",
-	"fmulp",
-	"fnclex",
-	"fndisi",
-	"fneni",
-	"fninit",
-	"fnop",
-	"fnsave",
-	"fnstcw",
-	"fnstenv",
-	"fnstsw",
-	"fpatan",
-	"fprem",
-	"fprem1",
-	"fptan",
-	"frndint",
-	"frstor",
-	"fsave",
-	"fscale",
-	"fsetpm",
-	"fsin",
-	"fsincos",
-	"fsqrt",
-	"fst",
-	"fstcw",
-	"fstenv",
-	"fstp",
-	"fstsw",
-	"fsub",
-	"fsubp",
-	"fsubr",
-	"fsubrp",
-	"ftst",
-	"fucom",
-	"fucomi",
-	"fucomip",
-	"fucomp",
-	"fucompp",
-	"fwait",
-	"fxam",
-	"fxch",
-	"fxrstor",
-	"fxrstor64",
-	"fxsave",
-	"fxsave64",
-	"fxtract",
-	"fyl2x",
-	"fyl2xp1",
-	"getsec",
-	"haddpd",
-	"haddps",
-	"hint_nop0",
-	"hint_nop1",
-	"hint_nop10",
-	"hint_nop11",
-	"hint_nop12",
-	"hint_nop13",
-	"hint_nop14",
-	"hint_nop15",
-	"hint_nop16",
-	"hint_nop17",
-	"hint_nop18",
-	"hint_nop19",
-	"hint_nop2",
-	"hint_nop20",
-	"hint_nop21",
-	"hint_nop22",
-	"hint_nop23",
-	"hint_nop24",
-	"hint_nop25",
-	"hint_nop26",
-	"hint_nop27",
-	"hint_nop28",
-	"hint_nop29",
-	"hint_nop3",
-	"hint_nop30",
-	"hint_nop31",
-	"hint_nop32",
-	"hint_nop33",
-	"hint_nop34",
-	"hint_nop35",
-	"hint_nop36",
-	"hint_nop37",
-	"hint_nop38",
-	"hint_nop39",
-	"hint_nop4",
-	"hint_nop40",
-	"hint_nop41",
-	"hint_nop42",
-	"hint_nop43",
-	"hint_nop44",
-	"hint_nop45",
-	"hint_nop46",
-	"hint_nop47",
-	"hint_nop48",
-	"hint_nop49",
-	"hint_nop5",
-	"hint_nop50",
-	"hint_nop51",
-	"hint_nop52",
-	"hint_nop53",
-	"hint_nop54",
-	"hint_nop55",
-	"hint_nop56",
-	"hint_nop57",
-	"hint_nop58",
-	"hint_nop59",
-	"hint_nop6",
-	"hint_nop60",
-	"hint_nop61",
-	"hint_nop62",
-	"hint_nop63",
-	"hint_nop7",
-	"hint_nop8",
-	"hint_nop9",
-	"hlt",
-	"hsubpd",
-	"hsubps",
-	"ibts",
-	"icebp",
-	"idiv",
-	"imul",
-	"in",
-	"inc",
-	"incbin",
-	"insb",
-	"insd",
-	"insertps",
-	"insertq",
-	"insw",
-	"int",
-	"int01",
-	"int03",
-	"int1",
-	"int3",
-	"into",
-	"invd",
-	"invept",
-	"invlpg",
-	"invlpga",
-	"invpcid",
-	"invvpid",
-	"iret",
-	"iretd",
-	"iretq",
-	"iretw",
-	"jcxz",
-	"jecxz",
-	"jmp",
-	"jmpe",
-	"jrcxz",
-	"kaddb",
-	"kaddd",
-	"kaddq",
-	"kaddw",
-	"kandb",
-	"kandd",
-	"kandnb",
-	"kandnd",
-	"kandnq",
-	"kandnw",
-	"kandq",
-	"kandw",
-	"kmovb",
-	"kmovd",
-	"kmovq",
-	"kmovw",
-	"knotb",
-	"knotd",
-	"knotq",
-	"knotw",
-	"korb",
-	"kord",
-	"korq",
-	"kortestb",
-	"kortestd",
-	"kortestq",
-	"kortestw",
-	"korw",
-	"kshiftlb",
-	"kshiftld",
-	"kshiftlq",
-	"kshiftlw",
-	"kshiftrb",
-	"kshiftrd",
-	"kshiftrq",
-	"kshiftrw",
-	"ktestb",
-	"ktestd",
-	"ktestq",
-	"ktestw",
-	"kunpckbw",
-	"kunpckdq",
-	"kunpckwd",
-	"kxnorb",
-	"kxnord",
-	"kxnorq",
-	"kxnorw",
-	"kxorb",
-	"kxord",
-	"kxorq",
-	"kxorw",
-	"lahf",
-	"lar",
-	"lddqu",
-	"ldmxcsr",
-	"lds",
-	"lea",
-	"leave",
-	"les",
-	"lfence",
-	"lfs",
-	"lgdt",
-	"lgs",
-	"lidt",
-	"lldt",
-	"llwpcb",
-	"lmsw",
-	"loadall",
-	"loadall286",
-	"lodsb",
-	"lodsd",
-	"lodsq",
-	"lodsw",
-	"loop",
-	"loope",
-	"loopne",
-	"loopnz",
-	"loopz",
-	"lsl",
-	"lss",
-	"ltr",
-	"lwpins",
-	"lwpval",
-	"lzcnt",
-	"maskmovdqu",
-	"maskmovq",
-	"maxpd",
-	"maxps",
-	"maxsd",
-	"maxss",
-	"mfence",
-	"minpd",
-	"minps",
-	"minsd",
-	"minss",
-	"monitor",
-	"monitorx",
-	"montmul",
-	"mov",
-	"movapd",
-	"movaps",
-	"movbe",
-	"movd",
-	"movddup",
-	"movdq2q",
-	"movdqa",
-	"movdqu",
-	"movhlps",
-	"movhpd",
-	"movhps",
-	"movlhps",
-	"movlpd",
-	"movlps",
-	"movmskpd",
-	"movmskps",
-	"movntdq",
-	"movntdqa",
-	"movnti",
-	"movntpd",
-	"movntps",
-	"movntq",
-	"movntsd",
-	"movntss",
-	"movq",
-	"movq2dq",
-	"movsb",
-	"movsd",
-	"movshdup",
-	"movsldup",
-	"movsq",
-	"movss",
-	"movsw",
-	"movsx",
-	"movsxd",
-	"movupd",
-	"movups",
-	"movzx",
-	"mpsadbw",
-	"mul",
-	"mulpd",
-	"mulps",
-	"mulsd",
-	"mulss",
-	"mulx",
-	"mwait",
-	"mwaitx",
-	"neg",
-	"nop",
-	"not",
-	"or",
-	"orpd",
-	"orps",
-	"out",
-	"outsb",
-	"outsd",
-	"outsw",
-	"pabsb",
-	"pabsd",
-	"pabsw",
-	"packssdw",
-	"packsswb",
-	"packusdw",
-	"packuswb",
-	"paddb",
-	"paddd",
-	"paddq",
-	"paddsb",
-	"paddsiw",
-	"paddsw",
-	"paddusb",
-	"paddusw",
-	"paddw",
-	"palignr",
-	"pand",
-	"pandn",
-	"pause",
-	"paveb",
-	"pavgb",
-	"pavgusb",
-	"pavgw",
-	"pblendvb",
-	"pblendw",
-	"pclmulhqhqdq",
-	"pclmulhqlqdq",
-	"pclmullqhqdq",
-	"pclmullqlqdq",
-	"pclmulqdq",
-	"pcmpeqb",
-	"pcmpeqd",
-	"pcmpeqq",
-	"pcmpeqw",
-	"pcmpestri",
-	"pcmpestrm",
-	"pcmpgtb",
-	"pcmpgtd",
-	"pcmpgtq",
-	"pcmpgtw",
-	"pcmpistri",
-	"pcmpistrm",
-	"pcommit",
-	"pdep",
-	"pdistib",
-	"pext",
-	"pextrb",
-	"pextrd",
-	"pextrq",
-	"pextrw",
-	"pf2id",
-	"pf2iw",
-	"pfacc",
-	"pfadd",
-	"pfcmpeq",
-	"pfcmpge",
-	"pfcmpgt",
-	"pfmax",
-	"pfmin",
-	"pfmul",
-	"pfnacc",
-	"pfpnacc",
-	"pfrcp",
-	"pfrcpit1",
-	"pfrcpit2",
-	"pfrcpv",
-	"pfrsqit1",
-	"pfrsqrt",
-	"pfrsqrtv",
-	"pfsub",
-	"pfsubr",
-	"phaddd",
-	"phaddsw",
-	"phaddw",
-	"phminposuw",
-	"phsubd",
-	"phsubsw",
-	"phsubw",
-	"pi2fd",
-	"pi2fw",
-	"pinsrb",
-	"pinsrd",
-	"pinsrq",
-	"pinsrw",
-	"pmachriw",
-	"pmaddubsw",
-	"pmaddwd",
-	"pmagw",
-	"pmaxsb",
-	"pmaxsd",
-	"pmaxsw",
-	"pmaxub",
-	"pmaxud",
-	"pmaxuw",
-	"pminsb",
-	"pminsd",
-	"pminsw",
-	"pminub",
-	"pminud",
-	"pminuw",
-	"pmovmskb",
-	"pmovsxbd",
-	"pmovsxbq",
-	"pmovsxbw",
-	"pmovsxdq",
-	"pmovsxwd",
-	"pmovsxwq",
-	"pmovzxbd",
-	"pmovzxbq",
-	"pmovzxbw",
-	"pmovzxdq",
-	"pmovzxwd",
-	"pmovzxwq",
-	"pmuldq",
-	"pmulhriw",
-	"pmulhrsw",
-	"pmulhrwa",
-	"pmulhrwc",
-	"pmulhuw",
-	"pmulhw",
-	"pmulld",
-	"pmullw",
-	"pmuludq",
-	"pmvgezb",
-	"pmvlzb",
-	"pmvnzb",
-	"pmvzb",
-	"pop",
-	"popa",
-	"popad",
-	"popaw",
-	"popcnt",
-	"popf",
-	"popfd",
-	"popfq",
-	"popfw",
-	"por",
-	"prefetch",
-	"prefetchnta",
-	"prefetcht0",
-	"prefetcht1",
-	"prefetcht2",
-	"prefetchw",
-	"prefetchwt1",
-	"psadbw",
-	"pshufb",
-	"pshufd",
-	"pshufhw",
-	"pshuflw",
-	"pshufw",
-	"psignb",
-	"psignd",
-	"psignw",
-	"pslld",
-	"pslldq",
-	"psllq",
-	"psllw",
-	"psrad",
-	"psraw",
-	"psrld",
-	"psrldq",
-	"psrlq",
-	"psrlw",
-	"psubb",
-	"psubd",
-	"psubq",
-	"psubsb",
-	"psubsiw",
-	"psubsw",
-	"psubusb",
-	"psubusw",
-	"psubw",
-	"pswapd",
-	"ptest",
-	"punpckhbw",
-	"punpckhdq",
-	"punpckhqdq",
-	"punpckhwd",
-	"punpcklbw",
-	"punpckldq",
-	"punpcklqdq",
-	"punpcklwd",
-	"push",
-	"pusha",
-	"pushad",
-	"pushaw",
-	"pushf",
-	"pushfd",
-	"pushfq",
-	"pushfw",
-	"pxor",
-	"rcl",
-	"rcpps",
-	"rcpss",
-	"rcr",
-	"rdfsbase",
-	"rdgsbase",
-	"rdm",
-	"rdmsr",
-	"rdpid",
-	"rdpkru",
-	"rdpmc",
-	"rdrand",
-	"rdseed",
-	"rdshr",
-	"rdtsc",
-	"rdtscp",
-	"resb",
-	"resd",
-	"reso",
-	"resq",
-	"rest",
-	"resw",
-	"resy",
-	"resz",
-	"ret",
-	"retf",
-	"retn",
-	"rol",
-	"ror",
-	"rorx",
-	"roundpd",
-	"roundps",
-	"roundsd",
-	"roundss",
-	"rsdc",
-	"rsldt",
-	"rsm",
-	"rsqrtps",
-	"rsqrtss",
-	"rsts",
-	"sahf",
-	"sal",
-	"salc",
-	"sar",
-	"sarx",
-	"sbb",
-	"scasb",
-	"scasd",
-	"scasq",
-	"scasw",
-	"sfence",
-	"sgdt",
-	"sha1msg1",
-	"sha1msg2",
-	"sha1nexte",
-	"sha1rnds4",
-	"sha256msg1",
-	"sha256msg2",
-	"sha256rnds2",
-	"shl",
-	"shld",
-	"shlx",
-	"shr",
-	"shrd",
-	"shrx",
-	"shufpd",
-	"shufps",
-	"sidt",
-	"skinit",
-	"sldt",
-	"slwpcb",
-	"smi",
-	"smint",
-	"smintold",
-	"smsw",
-	"sqrtpd",
-	"sqrtps",
-	"sqrtsd",
-	"sqrtss",
-	"stac",
-	"stc",
-	"std",
-	"stgi",
-	"sti",
-	"stmxcsr",
-	"stosb",
-	"stosd",
-	"stosq",
-	"stosw",
-	"str",
-	"sub",
-	"subpd",
-	"subps",
-	"subsd",
-	"subss",
-	"svdc",
-	"svldt",
-	"svts",
-	"swapgs",
-	"syscall",
-	"sysenter",
-	"sysexit",
-	"sysret",
-	"t1mskc",
-	"test",
-	"tzcnt",
-	"tzmsk",
-	"ucomisd",
-	"ucomiss",
-	"ud0",
-	"ud1",
-	"ud2",
-	"ud2a",
-	"ud2b",
-	"umov",
-	"unpckhpd",
-	"unpckhps",
-	"unpcklpd",
-	"unpcklps",
-	"vaddpd",
-	"vaddps",
-	"vaddsd",
-	"vaddss",
-	"vaddsubpd",
-	"vaddsubps",
-	"vaesdec",
-	"vaesdeclast",
-	"vaesenc",
-	"vaesenclast",
-	"vaesimc",
-	"vaeskeygenassist",
-	"valignd",
-	"valignq",
-	"vandnpd",
-	"vandnps",
-	"vandpd",
-	"vandps",
-	"vblendmpd",
-	"vblendmps",
-	"vblendpd",
-	"vblendps",
-	"vblendvpd",
-	"vblendvps",
-	"vbroadcastf128",
-	"vbroadcastf32x2",
-	"vbroadcastf32x4",
-	"vbroadcastf32x8",
-	"vbroadcastf64x2",
-	"vbroadcastf64x4",
-	"vbroadcasti128",
-	"vbroadcasti32x2",
-	"vbroadcasti32x4",
-	"vbroadcasti32x8",
-	"vbroadcasti64x2",
-	"vbroadcasti64x4",
-	"vbroadcastsd",
-	"vbroadcastss",
-	"vcmpeqpd",
-	"vcmpeqps",
-	"vcmpeqsd",
-	"vcmpeqss",
-	"vcmpeq_ospd",
-	"vcmpeq_osps",
-	"vcmpeq_ossd",
-	"vcmpeq_osss",
-	"vcmpeq_uqpd",
-	"vcmpeq_uqps",
-	"vcmpeq_uqsd",
-	"vcmpeq_uqss",
-	"vcmpeq_uspd",
-	"vcmpeq_usps",
-	"vcmpeq_ussd",
-	"vcmpeq_usss",
-	"vcmpfalsepd",
-	"vcmpfalseps",
-	"vcmpfalsesd",
-	"vcmpfalsess",
-	"vcmpfalse_oqpd",
-	"vcmpfalse_oqps",
-	"vcmpfalse_oqsd",
-	"vcmpfalse_oqss",
-	"vcmpfalse_ospd",
-	"vcmpfalse_osps",
-	"vcmpfalse_ossd",
-	"vcmpfalse_osss",
-	"vcmpgepd",
-	"vcmpgeps",
-	"vcmpgesd",
-	"vcmpgess",
-	"vcmpge_oqpd",
-	"vcmpge_oqps",
-	"vcmpge_oqsd",
-	"vcmpge_oqss",
-	"vcmpge_ospd",
-	"vcmpge_osps",
-	"vcmpge_ossd",
-	"vcmpge_osss",
-	"vcmpgtpd",
-	"vcmpgtps",
-	"vcmpgtsd",
-	"vcmpgtss",
-	"vcmpgt_oqpd",
-	"vcmpgt_oqps",
-	"vcmpgt_oqsd",
-	"vcmpgt_oqss",
-	"vcmpgt_ospd",
-	"vcmpgt_osps",
-	"vcmpgt_ossd",
-	"vcmpgt_osss",
-	"vcmplepd",
-	"vcmpleps",
-	"vcmplesd",
-	"vcmpless",
-	"vcmple_oqpd",
-	"vcmple_oqps",
-	"vcmple_oqsd",
-	"vcmple_oqss",
-	"vcmple_ospd",
-	"vcmple_osps",
-	"vcmple_ossd",
-	"vcmple_osss",
-	"vcmpltpd",
-	"vcmpltps",
-	"vcmpltsd",
-	"vcmpltss",
-	"vcmplt_oqpd",
-	"vcmplt_oqps",
-	"vcmplt_oqsd",
-	"vcmplt_oqss",
-	"vcmplt_ospd",
-	"vcmplt_osps",
-	"vcmplt_ossd",
-	"vcmplt_osss",
-	"vcmpneqpd",
-	"vcmpneqps",
-	"vcmpneqsd",
-	"vcmpneqss",
-	"vcmpneq_oqpd",
-	"vcmpneq_oqps",
-	"vcmpneq_oqsd",
-	"vcmpneq_oqss",
-	"vcmpneq_ospd",
-	"vcmpneq_osps",
-	"vcmpneq_ossd",
-	"vcmpneq_osss",
-	"vcmpneq_uqpd",
-	"vcmpneq_uqps",
-	"vcmpneq_uqsd",
-	"vcmpneq_uqss",
-	"vcmpneq_uspd",
-	"vcmpneq_usps",
-	"vcmpneq_ussd",
-	"vcmpneq_usss",
-	"vcmpngepd",
-	"vcmpngeps",
-	"vcmpngesd",
-	"vcmpngess",
-	"vcmpnge_uqpd",
-	"vcmpnge_uqps",
-	"vcmpnge_uqsd",
-	"vcmpnge_uqss",
-	"vcmpnge_uspd",
-	"vcmpnge_usps",
-	"vcmpnge_ussd",
-	"vcmpnge_usss",
-	"vcmpngtpd",
-	"vcmpngtps",
-	"vcmpngtsd",
-	"vcmpngtss",
-	"vcmpngt_uqpd",
-	"vcmpngt_uqps",
-	"vcmpngt_uqsd",
-	"vcmpngt_uqss",
-	"vcmpngt_uspd",
-	"vcmpngt_usps",
-	"vcmpngt_ussd",
-	"vcmpngt_usss",
-	"vcmpnlepd",
-	"vcmpnleps",
-	"vcmpnlesd",
-	"vcmpnless",
-	"vcmpnle_uqpd",
-	"vcmpnle_uqps",
-	"vcmpnle_uqsd",
-	"vcmpnle_uqss",
-	"vcmpnle_uspd",
-	"vcmpnle_usps",
-	"vcmpnle_ussd",
-	"vcmpnle_usss",
-	"vcmpnltpd",
-	"vcmpnltps",
-	"vcmpnltsd",
-	"vcmpnltss",
-	"vcmpnlt_uqpd",
-	"vcmpnlt_uqps",
-	"vcmpnlt_uqsd",
-	"vcmpnlt_uqss",
-	"vcmpnlt_uspd",
-	"vcmpnlt_usps",
-	"vcmpnlt_ussd",
-	"vcmpnlt_usss",
-	"vcmpordpd",
-	"vcmpordps",
-	"vcmpordsd",
-	"vcmpordss",
-	"vcmpord_qpd",
-	"vcmpord_qps",
-	"vcmpord_qsd",
-	"vcmpord_qss",
-	"vcmpord_spd",
-	"vcmpord_sps",
-	"vcmpord_ssd",
-	"vcmpord_sss",
-	"vcmppd",
-	"vcmpps",
-	"vcmpsd",
-	"vcmpss",
-	"vcmptruepd",
-	"vcmptrueps",
-	"vcmptruesd",
-	"vcmptruess",
-	"vcmptrue_uqpd",
-	"vcmptrue_uqps",
-	"vcmptrue_uqsd",
-	"vcmptrue_uqss",
-	"vcmptrue_uspd",
-	"vcmptrue_usps",
-	"vcmptrue_ussd",
-	"vcmptrue_usss",
-	"vcmpunordpd",
-	"vcmpunordps",
-	"vcmpunordsd",
-	"vcmpunordss",
-	"vcmpunord_qpd",
-	"vcmpunord_qps",
-	"vcmpunord_qsd",
-	"vcmpunord_qss",
-	"vcmpunord_spd",
-	"vcmpunord_sps",
-	"vcmpunord_ssd",
-	"vcmpunord_sss",
-	"vcomisd",
-	"vcomiss",
-	"vcompresspd",
-	"vcompressps",
-	"vcvtdq2pd",
-	"vcvtdq2ps",
-	"vcvtpd2dq",
-	"vcvtpd2ps",
-	"vcvtpd2qq",
-	"vcvtpd2udq",
-	"vcvtpd2uqq",
-	"vcvtph2ps",
-	"vcvtps2dq",
-	"vcvtps2pd",
-	"vcvtps2ph",
-	"vcvtps2qq",
-	"vcvtps2udq",
-	"vcvtps2uqq",
-	"vcvtqq2pd",
-	"vcvtqq2ps",
-	"vcvtsd2si",
-	"vcvtsd2ss",
-	"vcvtsd2usi",
-	"vcvtsi2sd",
-	"vcvtsi2ss",
-	"vcvtss2sd",
-	"vcvtss2si",
-	"vcvtss2usi",
-	"vcvttpd2dq",
-	"vcvttpd2qq",
-	"vcvttpd2udq",
-	"vcvttpd2uqq",
-	"vcvttps2dq",
-	"vcvttps2qq",
-	"vcvttps2udq",
-	"vcvttps2uqq",
-	"vcvttsd2si",
-	"vcvttsd2usi",
-	"vcvttss2si",
-	"vcvttss2usi",
-	"vcvtudq2pd",
-	"vcvtudq2ps",
-	"vcvtuqq2pd",
-	"vcvtuqq2ps",
-	"vcvtusi2sd",
-	"vcvtusi2ss",
-	"vdbpsadbw",
-	"vdivpd",
-	"vdivps",
-	"vdivsd",
-	"vdivss",
-	"vdppd",
-	"vdpps",
-	"verr",
-	"verw",
-	"vexp2pd",
-	"vexp2ps",
-	"vexpandpd",
-	"vexpandps",
-	"vextractf128",
-	"vextractf32x4",
-	"vextractf32x8",
-	"vextractf64x2",
-	"vextractf64x4",
-	"vextracti128",
-	"vextracti32x4",
-	"vextracti32x8",
-	"vextracti64x2",
-	"vextracti64x4",
-	"vextractps",
-	"vfixupimmpd",
-	"vfixupimmps",
-	"vfixupimmsd",
-	"vfixupimmss",
-	"vfmadd123pd",
-	"vfmadd123ps",
-	"vfmadd123sd",
-	"vfmadd123ss",
-	"vfmadd132pd",
-	"vfmadd132ps",
-	"vfmadd132sd",
-	"vfmadd132ss",
-	"vfmadd213pd",
-	"vfmadd213ps",
-	"vfmadd213sd",
-	"vfmadd213ss",
-	"vfmadd231pd",
-	"vfmadd231ps",
-	"vfmadd231sd",
-	"vfmadd231ss",
-	"vfmadd312pd",
-	"vfmadd312ps",
-	"vfmadd312sd",
-	"vfmadd312ss",
-	"vfmadd321pd",
-	"vfmadd321ps",
-	"vfmadd321sd",
-	"vfmadd321ss",
-	"vfmaddpd",
-	"vfmaddps",
-	"vfmaddsd",
-	"vfmaddss",
-	"vfmaddsub123pd",
-	"vfmaddsub123ps",
-	"vfmaddsub132pd",
-	"vfmaddsub132ps",
-	"vfmaddsub213pd",
-	"vfmaddsub213ps",
-	"vfmaddsub231pd",
-	"vfmaddsub231ps",
-	"vfmaddsub312pd",
-	"vfmaddsub312ps",
-	"vfmaddsub321pd",
-	"vfmaddsub321ps",
-	"vfmaddsubpd",
-	"vfmaddsubps",
-	"vfmsub123pd",
-	"vfmsub123ps",
-	"vfmsub123sd",
-	"vfmsub123ss",
-	"vfmsub132pd",
-	"vfmsub132ps",
-	"vfmsub132sd",
-	"vfmsub132ss",
-	"vfmsub213pd",
-	"vfmsub213ps",
-	"vfmsub213sd",
-	"vfmsub213ss",
-	"vfmsub231pd",
-	"vfmsub231ps",
-	"vfmsub231sd",
-	"vfmsub231ss",
-	"vfmsub312pd",
-	"vfmsub312ps",
-	"vfmsub312sd",
-	"vfmsub312ss",
-	"vfmsub321pd",
-	"vfmsub321ps",
-	"vfmsub321sd",
-	"vfmsub321ss",
-	"vfmsubadd123pd",
-	"vfmsubadd123ps",
-	"vfmsubadd132pd",
-	"vfmsubadd132ps",
-	"vfmsubadd213pd",
-	"vfmsubadd213ps",
-	"vfmsubadd231pd",
-	"vfmsubadd231ps",
-	"vfmsubadd312pd",
-	"vfmsubadd312ps",
-	"vfmsubadd321pd",
-	"vfmsubadd321ps",
-	"vfmsubaddpd",
-	"vfmsubaddps",
-	"vfmsubpd",
-	"vfmsubps",
-	"vfmsubsd",
-	"vfmsubss",
-	"vfnmadd123pd",
-	"vfnmadd123ps",
-	"vfnmadd123sd",
-	"vfnmadd123ss",
-	"vfnmadd132pd",
-	"vfnmadd132ps",
-	"vfnmadd132sd",
-	"vfnmadd132ss",
-	"vfnmadd213pd",
-	"vfnmadd213ps",
-	"vfnmadd213sd",
-	"vfnmadd213ss",
-	"vfnmadd231pd",
-	"vfnmadd231ps",
-	"vfnmadd231sd",
-	"vfnmadd231ss",
-	"vfnmadd312pd",
-	"vfnmadd312ps",
-	"vfnmadd312sd",
-	"vfnmadd312ss",
-	"vfnmadd321pd",
-	"vfnmadd321ps",
-	"vfnmadd321sd",
-	"vfnmadd321ss",
-	"vfnmaddpd",
-	"vfnmaddps",
-	"vfnmaddsd",
-	"vfnmaddss",
-	"vfnmsub123pd",
-	"vfnmsub123ps",
-	"vfnmsub123sd",
-	"vfnmsub123ss",
-	"vfnmsub132pd",
-	"vfnmsub132ps",
-	"vfnmsub132sd",
-	"vfnmsub132ss",
-	"vfnmsub213pd",
-	"vfnmsub213ps",
-	"vfnmsub213sd",
-	"vfnmsub213ss",
-	"vfnmsub231pd",
-	"vfnmsub231ps",
-	"vfnmsub231sd",
-	"vfnmsub231ss",
-	"vfnmsub312pd",
-	"vfnmsub312ps",
-	"vfnmsub312sd",
-	"vfnmsub312ss",
-	"vfnmsub321pd",
-	"vfnmsub321ps",
-	"vfnmsub321sd",
-	"vfnmsub321ss",
-	"vfnmsubpd",
-	"vfnmsubps",
-	"vfnmsubsd",
-	"vfnmsubss",
-	"vfpclasspd",
-	"vfpclassps",
-	"vfpclasssd",
-	"vfpclassss",
-	"vfrczpd",
-	"vfrczps",
-	"vfrczsd",
-	"vfrczss",
-	"vgatherdpd",
-	"vgatherdps",
-	"vgatherpf0dpd",
-	"vgatherpf0dps",
-	"vgatherpf0qpd",
-	"vgatherpf0qps",
-	"vgatherpf1dpd",
-	"vgatherpf1dps",
-	"vgatherpf1qpd",
-	"vgatherpf1qps",
-	"vgatherqpd",
-	"vgatherqps",
-	"vgetexppd",
-	"vgetexpps",
-	"vgetexpsd",
-	"vgetexpss",
-	"vgetmantpd",
-	"vgetmantps",
-	"vgetmantsd",
-	"vgetmantss",
-	"vhaddpd",
-	"vhaddps",
-	"vhsubpd",
-	"vhsubps",
-	"vinsertf128",
-	"vinsertf32x4",
-	"vinsertf32x8",
-	"vinsertf64x2",
-	"vinsertf64x4",
-	"vinserti128",
-	"vinserti32x4",
-	"vinserti32x8",
-	"vinserti64x2",
-	"vinserti64x4",
-	"vinsertps",
-	"vlddqu",
-	"vldmxcsr",
-	"vldqqu",
-	"vmaskmovdqu",
-	"vmaskmovpd",
-	"vmaskmovps",
-	"vmaxpd",
-	"vmaxps",
-	"vmaxsd",
-	"vmaxss",
-	"vmcall",
-	"vmclear",
-	"vmfunc",
-	"vminpd",
-	"vminps",
-	"vminsd",
-	"vminss",
-	"vmlaunch",
-	"vmload",
-	"vmmcall",
-	"vmovapd",
-	"vmovaps",
-	"vmovd",
-	"vmovddup",
-	"vmovdqa",
-	"vmovdqa32",
-	"vmovdqa64",
-	"vmovdqu",
-	"vmovdqu16",
-	"vmovdqu32",
-	"vmovdqu64",
-	"vmovdqu8",
-	"vmovhlps",
-	"vmovhpd",
-	"vmovhps",
-	"vmovlhps",
-	"vmovlpd",
-	"vmovlps",
-	"vmovmskpd",
-	"vmovmskps",
-	"vmovntdq",
-	"vmovntdqa",
-	"vmovntpd",
-	"vmovntps",
-	"vmovntqq",
-	"vmovq",
-	"vmovqqa",
-	"vmovqqu",
-	"vmovsd",
-	"vmovshdup",
-	"vmovsldup",
-	"vmovss",
-	"vmovupd",
-	"vmovups",
-	"vmpsadbw",
-	"vmptrld",
-	"vmptrst",
-	"vmread",
-	"vmresume",
-	"vmrun",
-	"vmsave",
-	"vmulpd",
-	"vmulps",
-	"vmulsd",
-	"vmulss",
-	"vmwrite",
-	"vmxoff",
-	"vmxon",
-	"vorpd",
-	"vorps",
-	"vpabsb",
-	"vpabsd",
-	"vpabsq",
-	"vpabsw",
-	"vpackssdw",
-	"vpacksswb",
-	"vpackusdw",
-	"vpackuswb",
-	"vpaddb",
-	"vpaddd",
-	"vpaddq",
-	"vpaddsb",
-	"vpaddsw",
-	"vpaddusb",
-	"vpaddusw",
-	"vpaddw",
-	"vpalignr",
-	"vpand",
-	"vpandd",
-	"vpandn",
-	"vpandnd",
-	"vpandnq",
-	"vpandq",
-	"vpavgb",
-	"vpavgw",
-	"vpblendd",
-	"vpblendmb",
-	"vpblendmd",
-	"vpblendmq",
-	"vpblendmw",
-	"vpblendvb",
-	"vpblendw",
-	"vpbroadcastb",
-	"vpbroadcastd",
-	"vpbroadcastmb2q",
-	"vpbroadcastmw2d",
-	"vpbroadcastq",
-	"vpbroadcastw",
-	"vpclmulhqhqdq",
-	"vpclmulhqlqdq",
-	"vpclmullqhqdq",
-	"vpclmullqlqdq",
-	"vpclmulqdq",
-	"vpcmov",
-	"vpcmpb",
-	"vpcmpd",
-	"vpcmpeqb",
-	"vpcmpeqd",
-	"vpcmpeqq",
-	"vpcmpeqw",
-	"vpcmpestri",
-	"vpcmpestrm",
-	"vpcmpgtb",
-	"vpcmpgtd",
-	"vpcmpgtq",
-	"vpcmpgtw",
-	"vpcmpistri",
-	"vpcmpistrm",
-	"vpcmpq",
-	"vpcmpub",
-	"vpcmpud",
-	"vpcmpuq",
-	"vpcmpuw",
-	"vpcmpw",
-	"vpcomb",
-	"vpcomd",
-	"vpcompressd",
-	"vpcompressq",
-	"vpcomq",
-	"vpcomub",
-	"vpcomud",
-	"vpcomuq",
-	"vpcomuw",
-	"vpcomw",
-	"vpconflictd",
-	"vpconflictq",
-	"vperm2f128",
-	"vperm2i128",
-	"vpermb",
-	"vpermd",
-	"vpermi2b",
-	"vpermi2d",
-	"vpermi2pd",
-	"vpermi2ps",
-	"vpermi2q",
-	"vpermi2w",
-	"vpermilpd",
-	"vpermilps",
-	"vpermpd",
-	"vpermps",
-	"vpermq",
-	"vpermt2b",
-	"vpermt2d",
-	"vpermt2pd",
-	"vpermt2ps",
-	"vpermt2q",
-	"vpermt2w",
-	"vpermw",
-	"vpexpandd",
-	"vpexpandq",
-	"vpextrb",
-	"vpextrd",
-	"vpextrq",
-	"vpextrw",
-	"vpgatherdd",
-	"vpgatherdq",
-	"vpgatherqd",
-	"vpgatherqq",
-	"vphaddbd",
-	"vphaddbq",
-	"vphaddbw",
-	"vphaddd",
-	"vphadddq",
-	"vphaddsw",
-	"vphaddubd",
-	"vphaddubq",
-	"vphaddubw",
-	"vphaddudq",
-	"vphadduwd",
-	"vphadduwq",
-	"vphaddw",
-	"vphaddwd",
-	"vphaddwq",
-	"vphminposuw",
-	"vphsubbw",
-	"vphsubd",
-	"vphsubdq",
-	"vphsubsw",
-	"vphsubw",
-	"vphsubwd",
-	"vpinsrb",
-	"vpinsrd",
-	"vpinsrq",
-	"vpinsrw",
-	"vplzcntd",
-	"vplzcntq",
-	"vpmacsdd",
-	"vpmacsdqh",
-	"vpmacsdql",
-	"vpmacssdd",
-	"vpmacssdqh",
-	"vpmacssdql",
-	"vpmacsswd",
-	"vpmacssww",
-	"vpmacswd",
-	"vpmacsww",
-	"vpmadcsswd",
-	"vpmadcswd",
-	"vpmadd52huq",
-	"vpmadd52luq",
-	"vpmaddubsw",
-	"vpmaddwd",
-	"vpmaskmovd",
-	"vpmaskmovq",
-	"vpmaxsb",
-	"vpmaxsd",
-	"vpmaxsq",
-	"vpmaxsw",
-	"vpmaxub",
-	"vpmaxud",
-	"vpmaxuq",
-	"vpmaxuw",
-	"vpminsb",
-	"vpminsd",
-	"vpminsq",
-	"vpminsw",
-	"vpminub",
-	"vpminud",
-	"vpminuq",
-	"vpminuw",
-	"vpmovb2m",
-	"vpmovd2m",
-	"vpmovdb",
-	"vpmovdw",
-	"vpmovm2b",
-	"vpmovm2d",
-	"vpmovm2q",
-	"vpmovm2w",
-	"vpmovmskb",
-	"vpmovq2m",
-	"vpmovqb",
-	"vpmovqd",
-	"vpmovqw",
-	"vpmovsdb",
-	"vpmovsdw",
-	"vpmovsqb",
-	"vpmovsqd",
-	"vpmovsqw",
-	"vpmovswb",
-	"vpmovsxbd",
-	"vpmovsxbq",
-	"vpmovsxbw",
-	"vpmovsxdq",
-	"vpmovsxwd",
-	"vpmovsxwq",
-	"vpmovusdb",
-	"vpmovusdw",
-	"vpmovusqb",
-	"vpmovusqd",
-	"vpmovusqw",
-	"vpmovuswb",
-	"vpmovw2m",
-	"vpmovwb",
-	"vpmovzxbd",
-	"vpmovzxbq",
-	"vpmovzxbw",
-	"vpmovzxdq",
-	"vpmovzxwd",
-	"vpmovzxwq",
-	"vpmuldq",
-	"vpmulhrsw",
-	"vpmulhuw",
-	"vpmulhw",
-	"vpmulld",
-	"vpmullq",
-	"vpmullw",
-	"vpmultishiftqb",
-	"vpmuludq",
-	"vpor",
-	"vpord",
-	"vporq",
-	"vpperm",
-	"vprold",
-	"vprolq",
-	"vprolvd",
-	"vprolvq",
-	"vprord",
-	"vprorq",
-	"vprorvd",
-	"vprorvq",
-	"vprotb",
-	"vprotd",
-	"vprotq",
-	"vprotw",
-	"vpsadbw",
-	"vpscatterdd",
-	"vpscatterdq",
-	"vpscatterqd",
-	"vpscatterqq",
-	"vpshab",
-	"vpshad",
-	"vpshaq",
-	"vpshaw",
-	"vpshlb",
-	"vpshld",
-	"vpshlq",
-	"vpshlw",
-	"vpshufb",
-	"vpshufd",
-	"vpshufhw",
-	"vpshuflw",
-	"vpsignb",
-	"vpsignd",
-	"vpsignw",
-	"vpslld",
-	"vpslldq",
-	"vpsllq",
-	"vpsllvd",
-	"vpsllvq",
-	"vpsllvw",
-	"vpsllw",
-	"vpsrad",
-	"vpsraq",
-	"vpsravd",
-	"vpsravq",
-	"vpsravw",
-	"vpsraw",
-	"vpsrld",
-	"vpsrldq",
-	"vpsrlq",
-	"vpsrlvd",
-	"vpsrlvq",
-	"vpsrlvw",
-	"vpsrlw",
-	"vpsubb",
-	"vpsubd",
-	"vpsubq",
-	"vpsubsb",
-	"vpsubsw",
-	"vpsubusb",
-	"vpsubusw",
-	"vpsubw",
-	"vpternlogd",
-	"vpternlogq",
-	"vptest",
-	"vptestmb",
-	"vptestmd",
-	"vptestmq",
-	"vptestmw",
-	"vptestnmb",
-	"vptestnmd",
-	"vptestnmq",
-	"vptestnmw",
-	"vpunpckhbw",
-	"vpunpckhdq",
-	"vpunpckhqdq",
-	"vpunpckhwd",
-	"vpunpcklbw",
-	"vpunpckldq",
-	"vpunpcklqdq",
-	"vpunpcklwd",
-	"vpxor",
-	"vpxord",
-	"vpxorq",
-	"vrangepd",
-	"vrangeps",
-	"vrangesd",
-	"vrangess",
-	"vrcp14pd",
-	"vrcp14ps",
-	"vrcp14sd",
-	"vrcp14ss",
-	"vrcp28pd",
-	"vrcp28ps",
-	"vrcp28sd",
-	"vrcp28ss",
-	"vrcpps",
-	"vrcpss",
-	"vreducepd",
-	"vreduceps",
-	"vreducesd",
-	"vreducess",
-	"vrndscalepd",
-	"vrndscaleps",
-	"vrndscalesd",
-	"vrndscaless",
-	"vroundpd",
-	"vroundps",
-	"vroundsd",
-	"vroundss",
-	"vrsqrt14pd",
-	"vrsqrt14ps",
-	"vrsqrt14sd",
-	"vrsqrt14ss",
-	"vrsqrt28pd",
-	"vrsqrt28ps",
-	"vrsqrt28sd",
-	"vrsqrt28ss",
-	"vrsqrtps",
-	"vrsqrtss",
-	"vscalefpd",
-	"vscalefps",
-	"vscalefsd",
-	"vscalefss",
-	"vscatterdpd",
-	"vscatterdps",
-	"vscatterpf0dpd",
-	"vscatterpf0dps",
-	"vscatterpf0qpd",
-	"vscatterpf0qps",
-	"vscatterpf1dpd",
-	"vscatterpf1dps",
-	"vscatterpf1qpd",
-	"vscatterpf1qps",
-	"vscatterqpd",
-	"vscatterqps",
-	"vshuff32x4",
-	"vshuff64x2",
-	"vshufi32x4",
-	"vshufi64x2",
-	"vshufpd",
-	"vshufps",
-	"vsqrtpd",
-	"vsqrtps",
-	"vsqrtsd",
-	"vsqrtss",
-	"vstmxcsr",
-	"vsubpd",
-	"vsubps",
-	"vsubsd",
-	"vsubss",
-	"vtestpd",
-	"vtestps",
-	"vucomisd",
-	"vucomiss",
-	"vunpckhpd",
-	"vunpckhps",
-	"vunpcklpd",
-	"vunpcklps",
-	"vxorpd",
-	"vxorps",
-	"vzeroall",
-	"vzeroupper",
-	"wbinvd",
-	"wrfsbase",
-	"wrgsbase",
-	"wrmsr",
-	"wrpkru",
-	"wrshr",
-	"xabort",
-	"xadd",
-	"xbegin",
-	"xbts",
-	"xchg",
-	"xcryptcbc",
-	"xcryptcfb",
-	"xcryptctr",
-	"xcryptecb",
-	"xcryptofb",
-	"xend",
-	"xgetbv",
-	"xlat",
-	"xlatb",
-	"xor",
-	"xorpd",
-	"xorps",
-	"xrstor",
-	"xrstor64",
-	"xrstors",
-	"xrstors64",
-	"xsave",
-	"xsave64",
-	"xsavec",
-	"xsavec64",
-	"xsaveopt",
-	"xsaveopt64",
-	"xsaves",
-	"xsaves64",
-	"xsetbv",
-	"xsha1",
-	"xsha256",
-	"xstore",
-	"xtest",
-	"cmov",
-	"j",
-	"set"
-};
--- a/nasmbuild/nasm-2.13rc9/x86/regdis.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-/* automatically generated from ./x86/regs.dat - do not edit */
-
-#include "regdis.h"
-
-const enum reg_enum nasm_rd_bndreg  [ 4] = {R_BND0,R_BND1,R_BND2,R_BND3};
-const enum reg_enum nasm_rd_creg    [16] = {R_CR0,R_CR1,R_CR2,R_CR3,R_CR4,R_CR5,R_CR6,R_CR7,R_CR8,R_CR9,R_CR10,R_CR11,R_CR12,R_CR13,R_CR14,R_CR15};
-const enum reg_enum nasm_rd_dreg    [16] = {R_DR0,R_DR1,R_DR2,R_DR3,R_DR4,R_DR5,R_DR6,R_DR7,R_DR8,R_DR9,R_DR10,R_DR11,R_DR12,R_DR13,R_DR14,R_DR15};
-const enum reg_enum nasm_rd_fpureg  [ 8] = {R_ST0,R_ST1,R_ST2,R_ST3,R_ST4,R_ST5,R_ST6,R_ST7};
-const enum reg_enum nasm_rd_mmxreg  [ 8] = {R_MM0,R_MM1,R_MM2,R_MM3,R_MM4,R_MM5,R_MM6,R_MM7};
-const enum reg_enum nasm_rd_opmaskreg[ 8] = {R_K0,R_K1,R_K2,R_K3,R_K4,R_K5,R_K6,R_K7};
-const enum reg_enum nasm_rd_reg16   [16] = {R_AX,R_CX,R_DX,R_BX,R_SP,R_BP,R_SI,R_DI,R_R8W,R_R9W,R_R10W,R_R11W,R_R12W,R_R13W,R_R14W,R_R15W};
-const enum reg_enum nasm_rd_reg32   [16] = {R_EAX,R_ECX,R_EDX,R_EBX,R_ESP,R_EBP,R_ESI,R_EDI,R_R8D,R_R9D,R_R10D,R_R11D,R_R12D,R_R13D,R_R14D,R_R15D};
-const enum reg_enum nasm_rd_reg64   [16] = {R_RAX,R_RCX,R_RDX,R_RBX,R_RSP,R_RBP,R_RSI,R_RDI,R_R8,R_R9,R_R10,R_R11,R_R12,R_R13,R_R14,R_R15};
-const enum reg_enum nasm_rd_reg8    [ 8] = {R_AL,R_CL,R_DL,R_BL,R_AH,R_CH,R_DH,R_BH};
-const enum reg_enum nasm_rd_reg8_rex[16] = {R_AL,R_CL,R_DL,R_BL,R_SPL,R_BPL,R_SIL,R_DIL,R_R8B,R_R9B,R_R10B,R_R11B,R_R12B,R_R13B,R_R14B,R_R15B};
-const enum reg_enum nasm_rd_sreg    [ 8] = {R_ES,R_CS,R_SS,R_DS,R_FS,R_GS,R_SEGR6,R_SEGR7};
-const enum reg_enum nasm_rd_treg    [ 8] = {R_TR0,R_TR1,R_TR2,R_TR3,R_TR4,R_TR5,R_TR6,R_TR7};
-const enum reg_enum nasm_rd_xmmreg  [32] = {R_XMM0,R_XMM1,R_XMM2,R_XMM3,R_XMM4,R_XMM5,R_XMM6,R_XMM7,R_XMM8,R_XMM9,R_XMM10,R_XMM11,R_XMM12,R_XMM13,R_XMM14,R_XMM15,R_XMM16,R_XMM17,R_XMM18,R_XMM19,R_XMM20,R_XMM21,R_XMM22,R_XMM23,R_XMM24,R_XMM25,R_XMM26,R_XMM27,R_XMM28,R_XMM29,R_XMM30,R_XMM31};
-const enum reg_enum nasm_rd_ymmreg  [32] = {R_YMM0,R_YMM1,R_YMM2,R_YMM3,R_YMM4,R_YMM5,R_YMM6,R_YMM7,R_YMM8,R_YMM9,R_YMM10,R_YMM11,R_YMM12,R_YMM13,R_YMM14,R_YMM15,R_YMM16,R_YMM17,R_YMM18,R_YMM19,R_YMM20,R_YMM21,R_YMM22,R_YMM23,R_YMM24,R_YMM25,R_YMM26,R_YMM27,R_YMM28,R_YMM29,R_YMM30,R_YMM31};
-const enum reg_enum nasm_rd_zmmreg  [32] = {R_ZMM0,R_ZMM1,R_ZMM2,R_ZMM3,R_ZMM4,R_ZMM5,R_ZMM6,R_ZMM7,R_ZMM8,R_ZMM9,R_ZMM10,R_ZMM11,R_ZMM12,R_ZMM13,R_ZMM14,R_ZMM15,R_ZMM16,R_ZMM17,R_ZMM18,R_ZMM19,R_ZMM20,R_ZMM21,R_ZMM22,R_ZMM23,R_ZMM24,R_ZMM25,R_ZMM26,R_ZMM27,R_ZMM28,R_ZMM29,R_ZMM30,R_ZMM31};
--- a/nasmbuild/nasm-2.13rc9/x86/regdis.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-/* automatically generated from ./x86/regs.dat - do not edit */
-
-#ifndef NASM_REGDIS_H
-#define NASM_REGDIS_H
-
-#include "regs.h"
-
-extern const enum reg_enum nasm_rd_bndreg  [ 4];
-extern const enum reg_enum nasm_rd_creg    [16];
-extern const enum reg_enum nasm_rd_dreg    [16];
-extern const enum reg_enum nasm_rd_fpureg  [ 8];
-extern const enum reg_enum nasm_rd_mmxreg  [ 8];
-extern const enum reg_enum nasm_rd_opmaskreg[ 8];
-extern const enum reg_enum nasm_rd_reg16   [16];
-extern const enum reg_enum nasm_rd_reg32   [16];
-extern const enum reg_enum nasm_rd_reg64   [16];
-extern const enum reg_enum nasm_rd_reg8    [ 8];
-extern const enum reg_enum nasm_rd_reg8_rex[16];
-extern const enum reg_enum nasm_rd_sreg    [ 8];
-extern const enum reg_enum nasm_rd_treg    [ 8];
-extern const enum reg_enum nasm_rd_xmmreg  [32];
-extern const enum reg_enum nasm_rd_ymmreg  [32];
-extern const enum reg_enum nasm_rd_zmmreg  [32];
-
-#endif /* NASM_REGDIS_H */
--- a/nasmbuild/nasm-2.13rc9/x86/regflags.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,248 +0,0 @@
-/* automatically generated from ./x86/regs.dat - do not edit */
-
-#include "tables.h"
-#include "nasm.h"
-
-const opflags_t nasm_reg_flags[] = {
-    0,
-    REG_HIGH,       /* ah    */
-    REG_AL,         /* al    */
-    REG_AX,         /* ax    */
-    REG_HIGH,       /* bh    */
-    REG8NA,         /* bl    */
-    BNDREG,         /* bnd0  */
-    BNDREG,         /* bnd1  */
-    BNDREG,         /* bnd2  */
-    BNDREG,         /* bnd3  */
-    REG16NA,        /* bp    */
-    REG8NA,         /* bpl   */
-    REG16NA,        /* bx    */
-    REG_HIGH,       /* ch    */
-    REG_CL,         /* cl    */
-    REG_CREG,       /* cr0   */
-    REG_CREG,       /* cr1   */
-    REG_CREG,       /* cr10  */
-    REG_CREG,       /* cr11  */
-    REG_CREG,       /* cr12  */
-    REG_CREG,       /* cr13  */
-    REG_CREG,       /* cr14  */
-    REG_CREG,       /* cr15  */
-    REG_CREG,       /* cr2   */
-    REG_CREG,       /* cr3   */
-    REG_CREG,       /* cr4   */
-    REG_CREG,       /* cr5   */
-    REG_CREG,       /* cr6   */
-    REG_CREG,       /* cr7   */
-    REG_CREG,       /* cr8   */
-    REG_CREG,       /* cr9   */
-    REG_CS,         /* cs    */
-    REG_CX,         /* cx    */
-    REG_HIGH,       /* dh    */
-    REG16NA,        /* di    */
-    REG8NA,         /* dil   */
-    REG_DL,         /* dl    */
-    REG_DREG,       /* dr0   */
-    REG_DREG,       /* dr1   */
-    REG_DREG,       /* dr10  */
-    REG_DREG,       /* dr11  */
-    REG_DREG,       /* dr12  */
-    REG_DREG,       /* dr13  */
-    REG_DREG,       /* dr14  */
-    REG_DREG,       /* dr15  */
-    REG_DREG,       /* dr2   */
-    REG_DREG,       /* dr3   */
-    REG_DREG,       /* dr4   */
-    REG_DREG,       /* dr5   */
-    REG_DREG,       /* dr6   */
-    REG_DREG,       /* dr7   */
-    REG_DREG,       /* dr8   */
-    REG_DREG,       /* dr9   */
-    REG_DS,         /* ds    */
-    REG_DX,         /* dx    */
-    REG_EAX,        /* eax   */
-    REG32NA,        /* ebp   */
-    REG32NA,        /* ebx   */
-    REG_ECX,        /* ecx   */
-    REG32NA,        /* edi   */
-    REG_EDX,        /* edx   */
-    REG_ES,         /* es    */
-    REG32NA,        /* esi   */
-    REG32NA,        /* esp   */
-    REG_FS,         /* fs    */
-    REG_GS,         /* gs    */
-    OPMASK0,        /* k0    */
-    OPMASKREG,      /* k1    */
-    OPMASKREG,      /* k2    */
-    OPMASKREG,      /* k3    */
-    OPMASKREG,      /* k4    */
-    OPMASKREG,      /* k5    */
-    OPMASKREG,      /* k6    */
-    OPMASKREG,      /* k7    */
-    MMXREG,         /* mm0   */
-    MMXREG,         /* mm1   */
-    MMXREG,         /* mm2   */
-    MMXREG,         /* mm3   */
-    MMXREG,         /* mm4   */
-    MMXREG,         /* mm5   */
-    MMXREG,         /* mm6   */
-    MMXREG,         /* mm7   */
-    REG64NA,        /* r10   */
-    REG8NA,         /* r10b  */
-    REG32NA,        /* r10d  */
-    REG16NA,        /* r10w  */
-    REG64NA,        /* r11   */
-    REG8NA,         /* r11b  */
-    REG32NA,        /* r11d  */
-    REG16NA,        /* r11w  */
-    REG64NA,        /* r12   */
-    REG8NA,         /* r12b  */
-    REG32NA,        /* r12d  */
-    REG16NA,        /* r12w  */
-    REG64NA,        /* r13   */
-    REG8NA,         /* r13b  */
-    REG32NA,        /* r13d  */
-    REG16NA,        /* r13w  */
-    REG64NA,        /* r14   */
-    REG8NA,         /* r14b  */
-    REG32NA,        /* r14d  */
-    REG16NA,        /* r14w  */
-    REG64NA,        /* r15   */
-    REG8NA,         /* r15b  */
-    REG32NA,        /* r15d  */
-    REG16NA,        /* r15w  */
-    REG64NA,        /* r8    */
-    REG8NA,         /* r8b   */
-    REG32NA,        /* r8d   */
-    REG16NA,        /* r8w   */
-    REG64NA,        /* r9    */
-    REG8NA,         /* r9b   */
-    REG32NA,        /* r9d   */
-    REG16NA,        /* r9w   */
-    REG_RAX,        /* rax   */
-    REG64NA,        /* rbp   */
-    REG64NA,        /* rbx   */
-    REG_RCX,        /* rcx   */
-    REG64NA,        /* rdi   */
-    REG_RDX,        /* rdx   */
-    REG64NA,        /* rsi   */
-    REG64NA,        /* rsp   */
-    REG_SEG67,      /* segr6 */
-    REG_SEG67,      /* segr7 */
-    REG16NA,        /* si    */
-    REG8NA,         /* sil   */
-    REG16NA,        /* sp    */
-    REG8NA,         /* spl   */
-    REG_SS,         /* ss    */
-    FPU0,           /* st0   */
-    FPUREG,         /* st1   */
-    FPUREG,         /* st2   */
-    FPUREG,         /* st3   */
-    FPUREG,         /* st4   */
-    FPUREG,         /* st5   */
-    FPUREG,         /* st6   */
-    FPUREG,         /* st7   */
-    REG_TREG,       /* tr0   */
-    REG_TREG,       /* tr1   */
-    REG_TREG,       /* tr2   */
-    REG_TREG,       /* tr3   */
-    REG_TREG,       /* tr4   */
-    REG_TREG,       /* tr5   */
-    REG_TREG,       /* tr6   */
-    REG_TREG,       /* tr7   */
-    XMM0,           /* xmm0  */
-    XMM_L16,        /* xmm1  */
-    XMM_L16,        /* xmm10 */
-    XMM_L16,        /* xmm11 */
-    XMM_L16,        /* xmm12 */
-    XMM_L16,        /* xmm13 */
-    XMM_L16,        /* xmm14 */
-    XMM_L16,        /* xmm15 */
-    XMMREG,         /* xmm16 */
-    XMMREG,         /* xmm17 */
-    XMMREG,         /* xmm18 */
-    XMMREG,         /* xmm19 */
-    XMM_L16,        /* xmm2  */
-    XMMREG,         /* xmm20 */
-    XMMREG,         /* xmm21 */
-    XMMREG,         /* xmm22 */
-    XMMREG,         /* xmm23 */
-    XMMREG,         /* xmm24 */
-    XMMREG,         /* xmm25 */
-    XMMREG,         /* xmm26 */
-    XMMREG,         /* xmm27 */
-    XMMREG,         /* xmm28 */
-    XMMREG,         /* xmm29 */
-    XMM_L16,        /* xmm3  */
-    XMMREG,         /* xmm30 */
-    XMMREG,         /* xmm31 */
-    XMM_L16,        /* xmm4  */
-    XMM_L16,        /* xmm5  */
-    XMM_L16,        /* xmm6  */
-    XMM_L16,        /* xmm7  */
-    XMM_L16,        /* xmm8  */
-    XMM_L16,        /* xmm9  */
-    YMM0,           /* ymm0  */
-    YMM_L16,        /* ymm1  */
-    YMM_L16,        /* ymm10 */
-    YMM_L16,        /* ymm11 */
-    YMM_L16,        /* ymm12 */
-    YMM_L16,        /* ymm13 */
-    YMM_L16,        /* ymm14 */
-    YMM_L16,        /* ymm15 */
-    YMMREG,         /* ymm16 */
-    YMMREG,         /* ymm17 */
-    YMMREG,         /* ymm18 */
-    YMMREG,         /* ymm19 */
-    YMM_L16,        /* ymm2  */
-    YMMREG,         /* ymm20 */
-    YMMREG,         /* ymm21 */
-    YMMREG,         /* ymm22 */
-    YMMREG,         /* ymm23 */
-    YMMREG,         /* ymm24 */
-    YMMREG,         /* ymm25 */
-    YMMREG,         /* ymm26 */
-    YMMREG,         /* ymm27 */
-    YMMREG,         /* ymm28 */
-    YMMREG,         /* ymm29 */
-    YMM_L16,        /* ymm3  */
-    YMMREG,         /* ymm30 */
-    YMMREG,         /* ymm31 */
-    YMM_L16,        /* ymm4  */
-    YMM_L16,        /* ymm5  */
-    YMM_L16,        /* ymm6  */
-    YMM_L16,        /* ymm7  */
-    YMM_L16,        /* ymm8  */
-    YMM_L16,        /* ymm9  */
-    ZMM0,           /* zmm0  */
-    ZMM_L16,        /* zmm1  */
-    ZMM_L16,        /* zmm10 */
-    ZMM_L16,        /* zmm11 */
-    ZMM_L16,        /* zmm12 */
-    ZMM_L16,        /* zmm13 */
-    ZMM_L16,        /* zmm14 */
-    ZMM_L16,        /* zmm15 */
-    ZMMREG,         /* zmm16 */
-    ZMMREG,         /* zmm17 */
-    ZMMREG,         /* zmm18 */
-    ZMMREG,         /* zmm19 */
-    ZMM_L16,        /* zmm2  */
-    ZMMREG,         /* zmm20 */
-    ZMMREG,         /* zmm21 */
-    ZMMREG,         /* zmm22 */
-    ZMMREG,         /* zmm23 */
-    ZMMREG,         /* zmm24 */
-    ZMMREG,         /* zmm25 */
-    ZMMREG,         /* zmm26 */
-    ZMMREG,         /* zmm27 */
-    ZMMREG,         /* zmm28 */
-    ZMMREG,         /* zmm29 */
-    ZMM_L16,        /* zmm3  */
-    ZMMREG,         /* zmm30 */
-    ZMMREG,         /* zmm31 */
-    ZMM_L16,        /* zmm4  */
-    ZMM_L16,        /* zmm5  */
-    ZMM_L16,        /* zmm6  */
-    ZMM_L16,        /* zmm7  */
-    ZMM_L16,        /* zmm8  */
-    ZMM_L16,        /* zmm9  */
-};
--- a/nasmbuild/nasm-2.13rc9/x86/regs.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,246 +0,0 @@
-/* automatically generated from ./x86/regs.dat - do not edit */
-
-#include "tables.h"
-
-const char * const nasm_reg_names[] = {
-    "ah",
-    "al",
-    "ax",
-    "bh",
-    "bl",
-    "bnd0",
-    "bnd1",
-    "bnd2",
-    "bnd3",
-    "bp",
-    "bpl",
-    "bx",
-    "ch",
-    "cl",
-    "cr0",
-    "cr1",
-    "cr10",
-    "cr11",
-    "cr12",
-    "cr13",
-    "cr14",
-    "cr15",
-    "cr2",
-    "cr3",
-    "cr4",
-    "cr5",
-    "cr6",
-    "cr7",
-    "cr8",
-    "cr9",
-    "cs",
-    "cx",
-    "dh",
-    "di",
-    "dil",
-    "dl",
-    "dr0",
-    "dr1",
-    "dr10",
-    "dr11",
-    "dr12",
-    "dr13",
-    "dr14",
-    "dr15",
-    "dr2",
-    "dr3",
-    "dr4",
-    "dr5",
-    "dr6",
-    "dr7",
-    "dr8",
-    "dr9",
-    "ds",
-    "dx",
-    "eax",
-    "ebp",
-    "ebx",
-    "ecx",
-    "edi",
-    "edx",
-    "es",
-    "esi",
-    "esp",
-    "fs",
-    "gs",
-    "k0",
-    "k1",
-    "k2",
-    "k3",
-    "k4",
-    "k5",
-    "k6",
-    "k7",
-    "mm0",
-    "mm1",
-    "mm2",
-    "mm3",
-    "mm4",
-    "mm5",
-    "mm6",
-    "mm7",
-    "r10",
-    "r10b",
-    "r10d",
-    "r10w",
-    "r11",
-    "r11b",
-    "r11d",
-    "r11w",
-    "r12",
-    "r12b",
-    "r12d",
-    "r12w",
-    "r13",
-    "r13b",
-    "r13d",
-    "r13w",
-    "r14",
-    "r14b",
-    "r14d",
-    "r14w",
-    "r15",
-    "r15b",
-    "r15d",
-    "r15w",
-    "r8",
-    "r8b",
-    "r8d",
-    "r8w",
-    "r9",
-    "r9b",
-    "r9d",
-    "r9w",
-    "rax",
-    "rbp",
-    "rbx",
-    "rcx",
-    "rdi",
-    "rdx",
-    "rsi",
-    "rsp",
-    "segr6",
-    "segr7",
-    "si",
-    "sil",
-    "sp",
-    "spl",
-    "ss",
-    "st0",
-    "st1",
-    "st2",
-    "st3",
-    "st4",
-    "st5",
-    "st6",
-    "st7",
-    "tr0",
-    "tr1",
-    "tr2",
-    "tr3",
-    "tr4",
-    "tr5",
-    "tr6",
-    "tr7",
-    "xmm0",
-    "xmm1",
-    "xmm10",
-    "xmm11",
-    "xmm12",
-    "xmm13",
-    "xmm14",
-    "xmm15",
-    "xmm16",
-    "xmm17",
-    "xmm18",
-    "xmm19",
-    "xmm2",
-    "xmm20",
-    "xmm21",
-    "xmm22",
-    "xmm23",
-    "xmm24",
-    "xmm25",
-    "xmm26",
-    "xmm27",
-    "xmm28",
-    "xmm29",
-    "xmm3",
-    "xmm30",
-    "xmm31",
-    "xmm4",
-    "xmm5",
-    "xmm6",
-    "xmm7",
-    "xmm8",
-    "xmm9",
-    "ymm0",
-    "ymm1",
-    "ymm10",
-    "ymm11",
-    "ymm12",
-    "ymm13",
-    "ymm14",
-    "ymm15",
-    "ymm16",
-    "ymm17",
-    "ymm18",
-    "ymm19",
-    "ymm2",
-    "ymm20",
-    "ymm21",
-    "ymm22",
-    "ymm23",
-    "ymm24",
-    "ymm25",
-    "ymm26",
-    "ymm27",
-    "ymm28",
-    "ymm29",
-    "ymm3",
-    "ymm30",
-    "ymm31",
-    "ymm4",
-    "ymm5",
-    "ymm6",
-    "ymm7",
-    "ymm8",
-    "ymm9",
-    "zmm0",
-    "zmm1",
-    "zmm10",
-    "zmm11",
-    "zmm12",
-    "zmm13",
-    "zmm14",
-    "zmm15",
-    "zmm16",
-    "zmm17",
-    "zmm18",
-    "zmm19",
-    "zmm2",
-    "zmm20",
-    "zmm21",
-    "zmm22",
-    "zmm23",
-    "zmm24",
-    "zmm25",
-    "zmm26",
-    "zmm27",
-    "zmm28",
-    "zmm29",
-    "zmm3",
-    "zmm30",
-    "zmm31",
-    "zmm4",
-    "zmm5",
-    "zmm6",
-    "zmm7",
-    "zmm8",
-    "zmm9"
-};
--- a/nasmbuild/nasm-2.13rc9/x86/regs.dat	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,138 +0,0 @@
-## --------------------------------------------------------------------------
-##   
-##   Copyright 1996-2009 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##     
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# List of registers and their classes; classes are defined in nasm.h
-#
-# The columns are:
-#
-# register name, assembler class, disassembler class(es), x86 register number[, token flag]
-#
-# If the register name ends in two numbers separated by a dash, then it is
-# repeated as many times as indicated, and the register number is
-# updated with it.
-#
-# If 'token flag' is present, this value will be assigned to tokflag field in
-# 'struct tokendata tokendata[]' table. Token flag can be used for specifying
-# special usage of corresponding register. E.g. opmask registers can be either
-# enclosed by curly braces or standalone operand depending on the usage.
-#
-
-# General-purpose registers
-al	REG_AL		reg8,reg8_rex	0
-ah	REG_HIGH	reg8		4
-ax	REG_AX		reg16		0
-eax	REG_EAX		reg32		0
-rax	REG_RAX		reg64		0
-bl	REG8NA		reg8,reg8_rex	3
-bh	REG_HIGH	reg8		7
-bx	REG16NA		reg16		3
-ebx	REG32NA		reg32		3
-rbx	REG64NA		reg64		3
-cl	REG_CL		reg8,reg8_rex	1
-ch	REG_HIGH	reg8		5
-cx	REG_CX		reg16		1
-ecx	REG_ECX		reg32		1
-rcx	REG_RCX		reg64		1
-dl	REG_DL		reg8,reg8_rex	2
-dh	REG_HIGH	reg8		6
-dx	REG_DX		reg16		2
-edx	REG_EDX		reg32		2
-rdx	REG_RDX		reg64		2
-spl	REG8NA		reg8_rex	4
-sp	REG16NA		reg16		4
-esp	REG32NA		reg32		4
-rsp	REG64NA		reg64		4
-bpl	REG8NA		reg8_rex	5
-bp	REG16NA		reg16		5
-ebp	REG32NA		reg32		5
-rbp	REG64NA		reg64		5
-sil	REG8NA		reg8_rex	6
-si	REG16NA		reg16		6
-esi	REG32NA		reg32		6
-rsi	REG64NA		reg64		6
-dil	REG8NA		reg8_rex	7
-di	REG16NA		reg16		7
-edi	REG32NA		reg32		7
-rdi	REG64NA		reg64		7
-r8-15b	REG8NA		reg8_rex	8
-r8-15w	REG16NA		reg16		8
-r8-15d	REG32NA		reg32		8
-r8-15	REG64NA		reg64		8
-
-# Segment registers
-es	REG_ES		sreg		0
-cs	REG_CS		sreg		1
-ss	REG_SS		sreg		2
-ds	REG_DS		sreg		3
-fs	REG_FS		sreg		4
-gs	REG_GS		sreg		5
-segr6-7	REG_SEG67	sreg		6
-
-# Control registers
-cr0-15	REG_CREG	creg		0
-
-# Debug registers
-dr0-15	REG_DREG	dreg		0
-
-# Test registers
-tr0-7	REG_TREG	treg		0
-
-# Floating-point registers
-st0	FPU0		fpureg		0
-st1-7	FPUREG		fpureg		1
-
-# MMX registers
-mm0-7	MMXREG		mmxreg		0
-
-# SSE registers
-xmm0	XMM0		xmmreg		0
-xmm1-15	XMM_L16		xmmreg		1
-xmm16-31	XMMREG		xmmreg		16
-
-# AVX registers
-ymm0	YMM0		ymmreg		0
-ymm1-15	YMM_L16		ymmreg		1
-ymm16-31	YMMREG		ymmreg		16
-
-# AVX512 registers
-zmm0	ZMM0		zmmreg		0
-zmm1-15	ZMM_L16		zmmreg		1
-zmm16-31	ZMMREG		zmmreg		16
-
-# Opmask registers
-k0	OPMASK0		opmaskreg	0
-k1-7	OPMASKREG	opmaskreg	1   TFLAG_BRC_OPT
-
-# Bounds registers
-bnd0-3	BNDREG		bndreg		0
--- a/nasmbuild/nasm-2.13rc9/x86/regs.h	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,498 +0,0 @@
-/* automatically generated from ./x86/regs.dat - do not edit */
-
-#ifndef NASM_REGS_H
-#define NASM_REGS_H
-
-#define EXPR_REG_START 1
-
-enum reg_enum {
-    R_zero = 0,
-    R_none = -1,
-    R_AH = EXPR_REG_START,
-    R_AL,
-    R_AX,
-    R_BH,
-    R_BL,
-    R_BND0,
-    R_BND1,
-    R_BND2,
-    R_BND3,
-    R_BP,
-    R_BPL,
-    R_BX,
-    R_CH,
-    R_CL,
-    R_CR0,
-    R_CR1,
-    R_CR10,
-    R_CR11,
-    R_CR12,
-    R_CR13,
-    R_CR14,
-    R_CR15,
-    R_CR2,
-    R_CR3,
-    R_CR4,
-    R_CR5,
-    R_CR6,
-    R_CR7,
-    R_CR8,
-    R_CR9,
-    R_CS,
-    R_CX,
-    R_DH,
-    R_DI,
-    R_DIL,
-    R_DL,
-    R_DR0,
-    R_DR1,
-    R_DR10,
-    R_DR11,
-    R_DR12,
-    R_DR13,
-    R_DR14,
-    R_DR15,
-    R_DR2,
-    R_DR3,
-    R_DR4,
-    R_DR5,
-    R_DR6,
-    R_DR7,
-    R_DR8,
-    R_DR9,
-    R_DS,
-    R_DX,
-    R_EAX,
-    R_EBP,
-    R_EBX,
-    R_ECX,
-    R_EDI,
-    R_EDX,
-    R_ES,
-    R_ESI,
-    R_ESP,
-    R_FS,
-    R_GS,
-    R_K0,
-    R_K1,
-    R_K2,
-    R_K3,
-    R_K4,
-    R_K5,
-    R_K6,
-    R_K7,
-    R_MM0,
-    R_MM1,
-    R_MM2,
-    R_MM3,
-    R_MM4,
-    R_MM5,
-    R_MM6,
-    R_MM7,
-    R_R10,
-    R_R10B,
-    R_R10D,
-    R_R10W,
-    R_R11,
-    R_R11B,
-    R_R11D,
-    R_R11W,
-    R_R12,
-    R_R12B,
-    R_R12D,
-    R_R12W,
-    R_R13,
-    R_R13B,
-    R_R13D,
-    R_R13W,
-    R_R14,
-    R_R14B,
-    R_R14D,
-    R_R14W,
-    R_R15,
-    R_R15B,
-    R_R15D,
-    R_R15W,
-    R_R8,
-    R_R8B,
-    R_R8D,
-    R_R8W,
-    R_R9,
-    R_R9B,
-    R_R9D,
-    R_R9W,
-    R_RAX,
-    R_RBP,
-    R_RBX,
-    R_RCX,
-    R_RDI,
-    R_RDX,
-    R_RSI,
-    R_RSP,
-    R_SEGR6,
-    R_SEGR7,
-    R_SI,
-    R_SIL,
-    R_SP,
-    R_SPL,
-    R_SS,
-    R_ST0,
-    R_ST1,
-    R_ST2,
-    R_ST3,
-    R_ST4,
-    R_ST5,
-    R_ST6,
-    R_ST7,
-    R_TR0,
-    R_TR1,
-    R_TR2,
-    R_TR3,
-    R_TR4,
-    R_TR5,
-    R_TR6,
-    R_TR7,
-    R_XMM0,
-    R_XMM1,
-    R_XMM10,
-    R_XMM11,
-    R_XMM12,
-    R_XMM13,
-    R_XMM14,
-    R_XMM15,
-    R_XMM16,
-    R_XMM17,
-    R_XMM18,
-    R_XMM19,
-    R_XMM2,
-    R_XMM20,
-    R_XMM21,
-    R_XMM22,
-    R_XMM23,
-    R_XMM24,
-    R_XMM25,
-    R_XMM26,
-    R_XMM27,
-    R_XMM28,
-    R_XMM29,
-    R_XMM3,
-    R_XMM30,
-    R_XMM31,
-    R_XMM4,
-    R_XMM5,
-    R_XMM6,
-    R_XMM7,
-    R_XMM8,
-    R_XMM9,
-    R_YMM0,
-    R_YMM1,
-    R_YMM10,
-    R_YMM11,
-    R_YMM12,
-    R_YMM13,
-    R_YMM14,
-    R_YMM15,
-    R_YMM16,
-    R_YMM17,
-    R_YMM18,
-    R_YMM19,
-    R_YMM2,
-    R_YMM20,
-    R_YMM21,
-    R_YMM22,
-    R_YMM23,
-    R_YMM24,
-    R_YMM25,
-    R_YMM26,
-    R_YMM27,
-    R_YMM28,
-    R_YMM29,
-    R_YMM3,
-    R_YMM30,
-    R_YMM31,
-    R_YMM4,
-    R_YMM5,
-    R_YMM6,
-    R_YMM7,
-    R_YMM8,
-    R_YMM9,
-    R_ZMM0,
-    R_ZMM1,
-    R_ZMM10,
-    R_ZMM11,
-    R_ZMM12,
-    R_ZMM13,
-    R_ZMM14,
-    R_ZMM15,
-    R_ZMM16,
-    R_ZMM17,
-    R_ZMM18,
-    R_ZMM19,
-    R_ZMM2,
-    R_ZMM20,
-    R_ZMM21,
-    R_ZMM22,
-    R_ZMM23,
-    R_ZMM24,
-    R_ZMM25,
-    R_ZMM26,
-    R_ZMM27,
-    R_ZMM28,
-    R_ZMM29,
-    R_ZMM3,
-    R_ZMM30,
-    R_ZMM31,
-    R_ZMM4,
-    R_ZMM5,
-    R_ZMM6,
-    R_ZMM7,
-    R_ZMM8,
-    R_ZMM9,
-    REG_ENUM_LIMIT
-};
-
-#define EXPR_REG_END 240
-
-#define REG_NUM_AH       4
-#define REG_NUM_AL       0
-#define REG_NUM_AX       0
-#define REG_NUM_BH       7
-#define REG_NUM_BL       3
-#define REG_NUM_BND0     0
-#define REG_NUM_BND1     1
-#define REG_NUM_BND2     2
-#define REG_NUM_BND3     3
-#define REG_NUM_BP       5
-#define REG_NUM_BPL      5
-#define REG_NUM_BX       3
-#define REG_NUM_CH       5
-#define REG_NUM_CL       1
-#define REG_NUM_CR0      0
-#define REG_NUM_CR1      1
-#define REG_NUM_CR10    10
-#define REG_NUM_CR11    11
-#define REG_NUM_CR12    12
-#define REG_NUM_CR13    13
-#define REG_NUM_CR14    14
-#define REG_NUM_CR15    15
-#define REG_NUM_CR2      2
-#define REG_NUM_CR3      3
-#define REG_NUM_CR4      4
-#define REG_NUM_CR5      5
-#define REG_NUM_CR6      6
-#define REG_NUM_CR7      7
-#define REG_NUM_CR8      8
-#define REG_NUM_CR9      9
-#define REG_NUM_CS       1
-#define REG_NUM_CX       1
-#define REG_NUM_DH       6
-#define REG_NUM_DI       7
-#define REG_NUM_DIL      7
-#define REG_NUM_DL       2
-#define REG_NUM_DR0      0
-#define REG_NUM_DR1      1
-#define REG_NUM_DR10    10
-#define REG_NUM_DR11    11
-#define REG_NUM_DR12    12
-#define REG_NUM_DR13    13
-#define REG_NUM_DR14    14
-#define REG_NUM_DR15    15
-#define REG_NUM_DR2      2
-#define REG_NUM_DR3      3
-#define REG_NUM_DR4      4
-#define REG_NUM_DR5      5
-#define REG_NUM_DR6      6
-#define REG_NUM_DR7      7
-#define REG_NUM_DR8      8
-#define REG_NUM_DR9      9
-#define REG_NUM_DS       3
-#define REG_NUM_DX       2
-#define REG_NUM_EAX      0
-#define REG_NUM_EBP      5
-#define REG_NUM_EBX      3
-#define REG_NUM_ECX      1
-#define REG_NUM_EDI      7
-#define REG_NUM_EDX      2
-#define REG_NUM_ES       0
-#define REG_NUM_ESI      6
-#define REG_NUM_ESP      4
-#define REG_NUM_FS       4
-#define REG_NUM_GS       5
-#define REG_NUM_K0       0
-#define REG_NUM_K1       1
-#define REG_NUM_K2       2
-#define REG_NUM_K3       3
-#define REG_NUM_K4       4
-#define REG_NUM_K5       5
-#define REG_NUM_K6       6
-#define REG_NUM_K7       7
-#define REG_NUM_MM0      0
-#define REG_NUM_MM1      1
-#define REG_NUM_MM2      2
-#define REG_NUM_MM3      3
-#define REG_NUM_MM4      4
-#define REG_NUM_MM5      5
-#define REG_NUM_MM6      6
-#define REG_NUM_MM7      7
-#define REG_NUM_R10     10
-#define REG_NUM_R10B    10
-#define REG_NUM_R10D    10
-#define REG_NUM_R10W    10
-#define REG_NUM_R11     11
-#define REG_NUM_R11B    11
-#define REG_NUM_R11D    11
-#define REG_NUM_R11W    11
-#define REG_NUM_R12     12
-#define REG_NUM_R12B    12
-#define REG_NUM_R12D    12
-#define REG_NUM_R12W    12
-#define REG_NUM_R13     13
-#define REG_NUM_R13B    13
-#define REG_NUM_R13D    13
-#define REG_NUM_R13W    13
-#define REG_NUM_R14     14
-#define REG_NUM_R14B    14
-#define REG_NUM_R14D    14
-#define REG_NUM_R14W    14
-#define REG_NUM_R15     15
-#define REG_NUM_R15B    15
-#define REG_NUM_R15D    15
-#define REG_NUM_R15W    15
-#define REG_NUM_R8       8
-#define REG_NUM_R8B      8
-#define REG_NUM_R8D      8
-#define REG_NUM_R8W      8
-#define REG_NUM_R9       9
-#define REG_NUM_R9B      9
-#define REG_NUM_R9D      9
-#define REG_NUM_R9W      9
-#define REG_NUM_RAX      0
-#define REG_NUM_RBP      5
-#define REG_NUM_RBX      3
-#define REG_NUM_RCX      1
-#define REG_NUM_RDI      7
-#define REG_NUM_RDX      2
-#define REG_NUM_RSI      6
-#define REG_NUM_RSP      4
-#define REG_NUM_SEGR6    6
-#define REG_NUM_SEGR7    7
-#define REG_NUM_SI       6
-#define REG_NUM_SIL      6
-#define REG_NUM_SP       4
-#define REG_NUM_SPL      4
-#define REG_NUM_SS       2
-#define REG_NUM_ST0      0
-#define REG_NUM_ST1      1
-#define REG_NUM_ST2      2
-#define REG_NUM_ST3      3
-#define REG_NUM_ST4      4
-#define REG_NUM_ST5      5
-#define REG_NUM_ST6      6
-#define REG_NUM_ST7      7
-#define REG_NUM_TR0      0
-#define REG_NUM_TR1      1
-#define REG_NUM_TR2      2
-#define REG_NUM_TR3      3
-#define REG_NUM_TR4      4
-#define REG_NUM_TR5      5
-#define REG_NUM_TR6      6
-#define REG_NUM_TR7      7
-#define REG_NUM_XMM0     0
-#define REG_NUM_XMM1     1
-#define REG_NUM_XMM10   10
-#define REG_NUM_XMM11   11
-#define REG_NUM_XMM12   12
-#define REG_NUM_XMM13   13
-#define REG_NUM_XMM14   14
-#define REG_NUM_XMM15   15
-#define REG_NUM_XMM16   16
-#define REG_NUM_XMM17   17
-#define REG_NUM_XMM18   18
-#define REG_NUM_XMM19   19
-#define REG_NUM_XMM2     2
-#define REG_NUM_XMM20   20
-#define REG_NUM_XMM21   21
-#define REG_NUM_XMM22   22
-#define REG_NUM_XMM23   23
-#define REG_NUM_XMM24   24
-#define REG_NUM_XMM25   25
-#define REG_NUM_XMM26   26
-#define REG_NUM_XMM27   27
-#define REG_NUM_XMM28   28
-#define REG_NUM_XMM29   29
-#define REG_NUM_XMM3     3
-#define REG_NUM_XMM30   30
-#define REG_NUM_XMM31   31
-#define REG_NUM_XMM4     4
-#define REG_NUM_XMM5     5
-#define REG_NUM_XMM6     6
-#define REG_NUM_XMM7     7
-#define REG_NUM_XMM8     8
-#define REG_NUM_XMM9     9
-#define REG_NUM_YMM0     0
-#define REG_NUM_YMM1     1
-#define REG_NUM_YMM10   10
-#define REG_NUM_YMM11   11
-#define REG_NUM_YMM12   12
-#define REG_NUM_YMM13   13
-#define REG_NUM_YMM14   14
-#define REG_NUM_YMM15   15
-#define REG_NUM_YMM16   16
-#define REG_NUM_YMM17   17
-#define REG_NUM_YMM18   18
-#define REG_NUM_YMM19   19
-#define REG_NUM_YMM2     2
-#define REG_NUM_YMM20   20
-#define REG_NUM_YMM21   21
-#define REG_NUM_YMM22   22
-#define REG_NUM_YMM23   23
-#define REG_NUM_YMM24   24
-#define REG_NUM_YMM25   25
-#define REG_NUM_YMM26   26
-#define REG_NUM_YMM27   27
-#define REG_NUM_YMM28   28
-#define REG_NUM_YMM29   29
-#define REG_NUM_YMM3     3
-#define REG_NUM_YMM30   30
-#define REG_NUM_YMM31   31
-#define REG_NUM_YMM4     4
-#define REG_NUM_YMM5     5
-#define REG_NUM_YMM6     6
-#define REG_NUM_YMM7     7
-#define REG_NUM_YMM8     8
-#define REG_NUM_YMM9     9
-#define REG_NUM_ZMM0     0
-#define REG_NUM_ZMM1     1
-#define REG_NUM_ZMM10   10
-#define REG_NUM_ZMM11   11
-#define REG_NUM_ZMM12   12
-#define REG_NUM_ZMM13   13
-#define REG_NUM_ZMM14   14
-#define REG_NUM_ZMM15   15
-#define REG_NUM_ZMM16   16
-#define REG_NUM_ZMM17   17
-#define REG_NUM_ZMM18   18
-#define REG_NUM_ZMM19   19
-#define REG_NUM_ZMM2     2
-#define REG_NUM_ZMM20   20
-#define REG_NUM_ZMM21   21
-#define REG_NUM_ZMM22   22
-#define REG_NUM_ZMM23   23
-#define REG_NUM_ZMM24   24
-#define REG_NUM_ZMM25   25
-#define REG_NUM_ZMM26   26
-#define REG_NUM_ZMM27   27
-#define REG_NUM_ZMM28   28
-#define REG_NUM_ZMM29   29
-#define REG_NUM_ZMM3     3
-#define REG_NUM_ZMM30   30
-#define REG_NUM_ZMM31   31
-#define REG_NUM_ZMM4     4
-#define REG_NUM_ZMM5     5
-#define REG_NUM_ZMM6     6
-#define REG_NUM_ZMM7     7
-#define REG_NUM_ZMM8     8
-#define REG_NUM_ZMM9     9
-
-
-#endif /* NASM_REGS_H */
--- a/nasmbuild/nasm-2.13rc9/x86/regs.pl	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,204 +0,0 @@
-#!/usr/bin/perl
-## --------------------------------------------------------------------------
-##   
-##   Copyright 1996-2009 The NASM Authors - All Rights Reserved
-##   See the file AUTHORS included with the NASM distribution for
-##   the specific copyright holders.
-##
-##   Redistribution and use in source and binary forms, with or without
-##   modification, are permitted provided that the following
-##   conditions are met:
-##
-##   * Redistributions of source code must retain the above copyright
-##     notice, this list of conditions and the following disclaimer.
-##   * Redistributions in binary form must reproduce the above
-##     copyright notice, this list of conditions and the following
-##     disclaimer in the documentation and/or other materials provided
-##     with the distribution.
-##     
-##     THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
-##     CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
-##     INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-##     MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-##     DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
-##     CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-##     SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-##     NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
-##     LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-##     HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-##     CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
-##     OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-##     EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-##
-## --------------------------------------------------------------------------
-
-#
-# Read regs.dat and output regs.h and regs.c (included in names.c)
-#
-
-$nline = 0;
-
-sub toint($) {
-    my($v) = @_;
-
-    return ($v =~ /^0/) ? oct $v : $v+0;
-}
-
-sub process_line($) {
-    my($line) = @_;
-    my @v;
-
-    if ( $line !~ /^\s*(\S+)\s*(\S+)\s*(\S+)\s*([0-9]+)\s*(\S*)/i ) {
-	die "regs.dat:$nline: invalid input\n";
-    }
-    $reg      = $1;
-    $aclass   = $2;
-    $dclasses = $3;
-    $x86regno = toint($4);
-
-    if ($reg =~ /^(.*[^0-9])([0-9]+)\-([0-9]+)(|[^0-9].*)$/) {
-	$nregs = $3-$2+1;
-	$reg = $1.$2.$4;
-	$reg_nr = $2;
-	$reg_prefix = $1;
-	$reg_suffix = $4;
-    } else {
-	$nregs = 1;
-	undef $reg_prefix, $reg_suffix;
-    }
-
-    while ($nregs--) {
-	$regs{$reg} = $aclass;
-	$regvals{$reg} = $x86regno;
-
-	foreach $dclass (split(/,/, $dclasses)) {
-	    if ( !defined($disclass{$dclass}) ) {
-		$disclass{$dclass} = [];
-	    }
-
-	    $disclass{$dclass}->[$x86regno] = $reg;
-	}
-
-	# Compute the next register, if any
-	if (defined($reg_prefix)) {
-	    $x86regno++;
-	    $reg_nr++;
-	    $reg = sprintf("%s%u%s", $reg_prefix, $reg_nr, $reg_suffix);
-	} else {
-	    # Not a dashed sequence
-	    die if ($nregs);
-	}
-    }
-}
-
-($fmt, $file) = @ARGV;
-
-%regs = ();
-%regvals = ();
-%disclass = ();
-open(REGS, "< ${file}") or die "$0: Cannot open $file\n";
-while ( defined($line = <REGS>) ) {
-    $nline++;
-
-    chomp $line;
-    $line =~ s/\s*(\#.*|)$//;
-
-    next if ( $line eq '' );
-
-    process_line($line);
-}
-close(REGS);
-
-if ( $fmt eq 'h' ) {
-    # Output regs.h
-    print "/* automatically generated from $file - do not edit */\n\n";
-    print "#ifndef NASM_REGS_H\n";
-    print "#define NASM_REGS_H\n\n";
-
-    $expr_regs = 1;
-    printf "#define EXPR_REG_START %d\n\n", $expr_regs;
-    print "enum reg_enum {\n";
-    # Unfortunately the code uses both 0 and -1 as "no register" in
-    # different places...
-    print "    R_zero = 0,\n";
-    print "    R_none = -1,\n";
-    $attach = ' = EXPR_REG_START'; # EXPR_REG_START == 1
-    foreach $reg ( sort(keys(%regs)) ) {
-	print "    R_\U${reg}\E${attach},\n";
-	$attach = '';
-	$expr_regs++;
-    }
-    print "    REG_ENUM_LIMIT\n";
-    print "};\n\n";
-    printf "#define EXPR_REG_END %d\n\n", $expr_regs-1;
-    foreach $reg ( sort(keys(%regs)) ) {
-	printf "#define %-15s %2d\n", "REG_NUM_\U${reg}", $regvals{$reg};
-    }
-    print "\n\n#endif /* NASM_REGS_H */\n";
-} elsif ( $fmt eq 'c' ) {
-    # Output regs.c
-    print "/* automatically generated from $file - do not edit */\n\n";
-    print "#include \"tables.h\"\n\n";
-    print "const char * const nasm_reg_names[] = "; $ch = '{';
-    # This one has no dummy entry for 0
-    foreach $reg ( sort(keys(%regs)) ) {
-	print "$ch\n    \"${reg}\"";
-	$ch = ',';
-    }
-    print "\n};\n";
-} elsif ( $fmt eq 'fc' ) {
-    # Output regflags.c
-    print "/* automatically generated from $file - do not edit */\n\n";
-    print "#include \"tables.h\"\n";
-    print "#include \"nasm.h\"\n\n";
-    print "const opflags_t nasm_reg_flags[] = {\n";
-    printf "    0,\n";		# Dummy entry for 0
-    foreach $reg ( sort(keys(%regs)) ) {
-	# Print the class of the register
-	printf "    %-15s /* %-5s */\n",
-		$regs{$reg}.',', $reg;
-    }
-    print "};\n";
-} elsif ( $fmt eq 'vc' ) {
-    # Output regvals.c
-    print "/* automatically generated from $file - do not edit */\n\n";
-    print "#include \"tables.h\"\n\n";
-    print "const int nasm_regvals[] = {\n";
-    print "    -1,\n";		# Dummy entry for 0
-    foreach $reg ( sort(keys(%regs)) ) {
-	# Print the x86 value of the register
-	printf "    %2d,  /* %-5s */\n", $regvals{$reg}, $reg;
-    }
-    print "};\n";
-} elsif ( $fmt eq 'dc' ) {
-    # Output regdis.c
-    print "/* automatically generated from $file - do not edit */\n\n";
-    print "#include \"regdis.h\"\n\n";
-    foreach $class ( sort(keys(%disclass)) ) {
-	printf "const enum reg_enum nasm_rd_%-8s[%2d] = {",
-		$class, scalar @{$disclass{$class}};
-	@foo = @{$disclass{$class}};
-	@bar = ();
-	for ( $i = 0 ; $i < scalar(@foo) ; $i++ ) {
-            if (defined($foo[$i])) {
-		push(@bar, "R_\U$foo[$i]\E");
-	    } else {
-		die "$0: No register name for class $class, value $i\n";
-            }
-	}
-	print join(',', @bar), "};\n";
-    }
-} elsif ( $fmt eq 'dh' ) {
-    # Output regdis.h
-    print "/* automatically generated from $file - do not edit */\n\n";
-    print "#ifndef NASM_REGDIS_H\n";
-    print "#define NASM_REGDIS_H\n\n";
-    print "#include \"regs.h\"\n\n";
-    foreach $class ( sort(keys(%disclass)) ) {
-	printf "extern const enum reg_enum nasm_rd_%-8s[%2d];\n",
-		$class, scalar @{$disclass{$class}};
-    }
-    print "\n#endif /* NASM_REGDIS_H */\n";
-} else {
-    die "$0: Unknown output format\n";
-}
--- a/nasmbuild/nasm-2.13rc9/x86/regvals.c	Thu Jun 15 01:33:38 2017 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,247 +0,0 @@
-/* automatically generated from ./x86/regs.dat - do not edit */
-
-#include "tables.h"
-
-const int nasm_regvals[] = {
-    -1,
-     4,  /* ah    */
-     0,  /* al    */
-     0,  /* ax    */
-     7,  /* bh    */
-     3,  /* bl    */
-     0,  /* bnd0  */
-     1,  /* bnd1  */
-     2,  /* bnd2  */
-     3,  /* bnd3  */
-     5,  /* bp    */
-     5,  /* bpl   */
-     3,  /* bx    */
-     5,  /* ch    */
-     1,  /* cl    */
-     0,  /* cr0   */
-     1,  /* cr1   */
-    10,  /* cr10  */
-    11,  /* cr11  */
-    12,  /* cr12  */
-    13,  /* cr13  */
-    14,  /* cr14  */
-    15,  /* cr15  */
-     2,  /* cr2   */
-     3,  /* cr3   */
-     4,  /* cr4   */
-     5,  /* cr5   */
-     6,  /* cr6   */
-     7,  /* cr7   */
-     8,  /* cr8   */
-     9,  /* cr9   */
-     1,  /* cs    */
-     1,  /* cx    */
-     6,  /* dh    */
-     7,  /* di    */
-     7,  /* dil   */
-     2,  /* dl    */
-     0,  /* dr0   */
-     1,  /* dr1   */
-    10,  /* dr10  */
-    11,  /* dr11  */
-    12,  /* dr12  */
-    13,  /* dr13  */
-    14,  /* dr14  */
-    15,  /* dr15  */
-     2,  /* dr2   */
-     3,  /* dr3   */
-     4,  /* dr4   */
-     5,  /* dr5   */
-     6,  /* dr6   */
-     7,  /* dr7   */
-     8,  /* dr8   */
-     9,  /* dr9   */
-     3,  /* ds    */
-     2,  /* dx    */
-     0,  /* eax   */
-     5,  /* ebp   */
-     3,  /* ebx   */
-     1,  /* ecx   */
-     7,  /* edi   */
-     2,  /* edx   */
-     0,  /* es    */
-     6,  /* esi   */
-     4,  /* esp   */
-     4,  /* fs    */
-     5,  /* gs    */
-     0,  /* k0    */
-     1,  /* k1    */
-     2,  /* k2    */
-     3,  /* k3    */
-     4,  /* k4    */
-     5,  /* k5    */
-     6,  /* k6    */
-     7,  /* k7    */
-     0,  /* mm0   */
-     1,  /* mm1   */
-     2,  /* mm2   */
-     3,  /* mm3   */
-     4,  /* mm4   */
-     5,  /* mm5   */
-     6,  /* mm6   */
-     7,  /* mm7   */
-    10,  /* r10   */
-    10,  /* r10b  */
-    10,  /* r10d  */
-    10,  /* r10w  */
-    11,  /* r11   */
-    11,  /* r11b  */
-    11,  /* r11d  */
-    11,  /* r11w  */
-    12,  /* r12   */
-    12,  /* r12b  */
-    12,  /* r12d  */
-    12,  /* r12w  */
-    13,  /* r13   */
-    13,  /* r13b  */
-    13,  /* r13d  */
-    13,  /* r13w  */
-    14,  /* r14   */
-    14,  /* r14b  */
-    14,  /* r14d  */
-    14,  /* r14w  */
-    15,  /* r15   */
-    15,  /* r15b  */
-    15,  /* r15d  */
-    15,  /* r15w  */
-     8,  /* r8    */
-     8,  /* r8b   */
-     8,  /* r8d   */
-     8,  /* r8w   */
-     9,  /* r9    */
-     9,  /* r9b   */
-     9,  /* r9d   */
-     9,  /* r9w   */
-     0,  /* rax   */
-     5,  /* rbp   */
-     3,  /* rbx   */
-     1,  /* rcx   */
-     7,  /* rdi   */
-     2,  /* rdx   */
-     6,  /* rsi   */
-     4,  /* rsp   */
-     6,  /* segr6 */
-     7,  /* segr7 */
-     6,  /* si    */
-     6,  /* sil   */
-     4,  /* sp    */
-     4,  /* spl   */
-     2,  /* ss    */
-     0,  /* st0   */
-     1,  /* st1   */
-     2,  /* st2   */
-     3,  /* st3   */
-     4,  /* st4   */
-     5,  /* st5   */
-     6,  /* st6   */
-     7,  /* st7   */
-     0,  /* tr0   */
-     1,  /* tr1   */
-     2,  /* tr2   */
-     3,  /* tr3   */
-     4,  /* tr4   */
-     5,  /* tr5   */
-     6,  /* tr6   */
-     7,  /* tr7   */
-     0,  /* xmm0  */
-     1,  /* xmm1  */
-    10,  /* xmm10 */
-    11,  /* xmm11 */
-    12,  /* xmm12 */
-    13,  /* xmm13 */
-    14,  /* xmm14 */
-    15,  /* xmm15 */
-    16,  /* xmm16 */
-    17,  /* xmm17 */
-    18,  /* xmm18 */
-    19,  /* xmm19 */
-     2,  /* xmm2  */
-    20,  /* xmm20 */
-    21,  /* xmm21 */
-    22,  /* xmm22 */
-    23,  /* xmm23 */
-    24,  /* xmm24 */
-    25,  /* xmm25 */
-    26,  /* xmm26 */
-    27,  /* xmm27 */
-    28,  /* xmm28 */
-    29,  /* xmm29 */
-     3,  /* xmm3  */
-    30,  /* xmm30 */
-    31,  /* xmm31 */
-     4,  /* xmm4  */
-     5,  /* xmm5  */
-     6,  /* xmm6  */
-     7,  /* xmm7  */
-     8,  /* xmm8  */
-     9,  /* xmm9  */
-     0,  /* ymm0  */
-     1,  /* ymm1  */
-    10,  /* ymm10 */
-    11,  /* ymm11 */
-    12,  /* ymm12 */
-    13,  /* ymm13 */
-    14,  /* ymm14 */
-    15,  /* ymm15 */
-    16,  /* ymm16 */
-    17,  /* ymm17 */
-    18,  /* ymm18 */
-    19,  /* ymm19 */
-     2,  /* ymm2  */
-    20,  /* ymm20 */
-    21,  /* ymm21 */
-    22,  /* ymm22 */
-    23,  /* ymm23 */
-    24,  /* ymm24 */
-    25,  /* ymm25 */
-    26,  /* ymm26 */
-    27,  /* ymm27 */
-    28,  /* ymm28 */
-    29,  /* ymm29 */
-     3,  /* ymm3  */
-    30,  /* ymm30 */
-    31,  /* ymm31 */
-     4,  /* ymm4  */
-     5,  /* ymm5  */
-     6,  /* ymm6  */
-     7,  /* ymm7  */
-     8,  /* ymm8  */
-     9,  /* ymm9  */
-     0,  /* zmm0  */
-     1,  /* zmm1  */
-    10,  /* zmm10 */
-    11,  /* zmm11 */
-    12,  /* zmm12 */
-    13,  /* zmm13 */
-    14,  /* zmm14 */
-    15,  /* zmm15 */
-    16,  /* zmm16 */
-    17,  /* zmm17 */
-    18,  /* zmm18 */
-    19,  /* zmm19 */
-     2,  /* zmm2  */
-    20,  /* zmm20 */
-    21,  /* zmm21 */
-    22,  /* zmm22 */
-    23,  /* zmm23 */
-    24,  /* zmm24 */
-    25,  /* zmm25 */
-    26,  /* zmm26 */
-    27,  /* zmm27 */
-    28,  /* zmm28 */
-    29,  /* zmm29 */
-     3,  /* zmm3  */
-    30,  /* zmm30 */
-    31,  /* zmm31 */
-     4,  /* zmm4  */
-     5,  /* zmm5  */
-     6,  /* zmm6  */
-     7,  /* zmm7  */
-     8,  /* zmm8  */
-     9,  /* zmm9  */
-};
Binary file nasmbuild/nasm.tar.gz has changed