laag-nasm 2.13.03.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +57 -0
- data/LICENSE.txt +29 -0
- data/README.org +34 -0
- data/ext/laag/nasm/extconf.rb +16 -0
- data/laag-nasm.gemspec +20 -0
- data/lib/laag/nasm.rb +29 -0
- data/patches/Makefile.in.patch +13 -0
- data/vendor/repo.or.cz/nasm/.gitignore +102 -0
- data/vendor/repo.or.cz/nasm/AUTHORS +137 -0
- data/vendor/repo.or.cz/nasm/CHANGES +2 -0
- data/vendor/repo.or.cz/nasm/ChangeLog +2905 -0
- data/vendor/repo.or.cz/nasm/INSTALL +102 -0
- data/vendor/repo.or.cz/nasm/LICENSE +29 -0
- data/vendor/repo.or.cz/nasm/Makefile.in +855 -0
- data/vendor/repo.or.cz/nasm/Mkfiles/README +46 -0
- data/vendor/repo.or.cz/nasm/Mkfiles/msvc.mak +732 -0
- data/vendor/repo.or.cz/nasm/Mkfiles/openwcom.mak +706 -0
- data/vendor/repo.or.cz/nasm/README +23 -0
- data/vendor/repo.or.cz/nasm/SubmittingPatches +116 -0
- data/vendor/repo.or.cz/nasm/TODO +376 -0
- data/vendor/repo.or.cz/nasm/aclocal.m4 +139 -0
- data/vendor/repo.or.cz/nasm/asm/assemble.c +2957 -0
- data/vendor/repo.or.cz/nasm/asm/assemble.h +54 -0
- data/vendor/repo.or.cz/nasm/asm/directiv.c +566 -0
- data/vendor/repo.or.cz/nasm/asm/directiv.dat +92 -0
- data/vendor/repo.or.cz/nasm/asm/error.c +202 -0
- data/vendor/repo.or.cz/nasm/asm/eval.c +1014 -0
- data/vendor/repo.or.cz/nasm/asm/eval.h +49 -0
- data/vendor/repo.or.cz/nasm/asm/exprdump.c +79 -0
- data/vendor/repo.or.cz/nasm/asm/exprlib.c +200 -0
- data/vendor/repo.or.cz/nasm/asm/float.c +952 -0
- data/vendor/repo.or.cz/nasm/asm/float.h +54 -0
- data/vendor/repo.or.cz/nasm/asm/labels.c +540 -0
- data/vendor/repo.or.cz/nasm/asm/listing.c +346 -0
- data/vendor/repo.or.cz/nasm/asm/listing.h +113 -0
- data/vendor/repo.or.cz/nasm/asm/nasm.c +1855 -0
- data/vendor/repo.or.cz/nasm/asm/parser.c +1167 -0
- data/vendor/repo.or.cz/nasm/asm/parser.h +45 -0
- data/vendor/repo.or.cz/nasm/asm/phash.pl +109 -0
- data/vendor/repo.or.cz/nasm/asm/pptok.dat +96 -0
- data/vendor/repo.or.cz/nasm/asm/pptok.pl +271 -0
- data/vendor/repo.or.cz/nasm/asm/pragma.c +218 -0
- data/vendor/repo.or.cz/nasm/asm/preproc-nop.c +188 -0
- data/vendor/repo.or.cz/nasm/asm/preproc.c +5459 -0
- data/vendor/repo.or.cz/nasm/asm/preproc.h +55 -0
- data/vendor/repo.or.cz/nasm/asm/quote.c +479 -0
- data/vendor/repo.or.cz/nasm/asm/quote.h +44 -0
- data/vendor/repo.or.cz/nasm/asm/rdstrnum.c +68 -0
- data/vendor/repo.or.cz/nasm/asm/segalloc.c +51 -0
- data/vendor/repo.or.cz/nasm/asm/stdscan.c +345 -0
- data/vendor/repo.or.cz/nasm/asm/stdscan.h +49 -0
- data/vendor/repo.or.cz/nasm/asm/strfunc.c +359 -0
- data/vendor/repo.or.cz/nasm/asm/tokens.dat +135 -0
- data/vendor/repo.or.cz/nasm/asm/tokhash.pl +284 -0
- data/vendor/repo.or.cz/nasm/autogen.sh +9 -0
- data/vendor/repo.or.cz/nasm/common/common.c +122 -0
- data/vendor/repo.or.cz/nasm/config/msvc.h +192 -0
- data/vendor/repo.or.cz/nasm/config/unknown.h +51 -0
- data/vendor/repo.or.cz/nasm/config/watcom.h +74 -0
- data/vendor/repo.or.cz/nasm/configure.ac +253 -0
- data/vendor/repo.or.cz/nasm/contrib/MSVC6.txt +25 -0
- data/vendor/repo.or.cz/nasm/contrib/VSrules/nasm.README +16 -0
- data/vendor/repo.or.cz/nasm/contrib/VSrules/nasm.rules +79 -0
- data/vendor/repo.or.cz/nasm/disasm/disasm.c +1735 -0
- data/vendor/repo.or.cz/nasm/disasm/disasm.h +49 -0
- data/vendor/repo.or.cz/nasm/disasm/ndisasm.c +397 -0
- data/vendor/repo.or.cz/nasm/disasm/sync.c +132 -0
- data/vendor/repo.or.cz/nasm/disasm/sync.h +45 -0
- data/vendor/repo.or.cz/nasm/doc/Makefile.in +86 -0
- data/vendor/repo.or.cz/nasm/doc/README +20 -0
- data/vendor/repo.or.cz/nasm/doc/afmmetrics.ph +102 -0
- data/vendor/repo.or.cz/nasm/doc/changes.src +2588 -0
- data/vendor/repo.or.cz/nasm/doc/findfont.ph +180 -0
- data/vendor/repo.or.cz/nasm/doc/genps.pl +1294 -0
- data/vendor/repo.or.cz/nasm/doc/inslist.pl +108 -0
- data/vendor/repo.or.cz/nasm/doc/internal.doc +290 -0
- data/vendor/repo.or.cz/nasm/doc/local.css +1 -0
- data/vendor/repo.or.cz/nasm/doc/nasmdoc.css +150 -0
- data/vendor/repo.or.cz/nasm/doc/nasmdoc.src +8309 -0
- data/vendor/repo.or.cz/nasm/doc/nasmlogo.eps +212 -0
- data/vendor/repo.or.cz/nasm/doc/nasmlogw.png +0 -0
- data/vendor/repo.or.cz/nasm/doc/psfonts.ph +53 -0
- data/vendor/repo.or.cz/nasm/doc/pspdf.pl +98 -0
- data/vendor/repo.or.cz/nasm/doc/pswidth.ph +25 -0
- data/vendor/repo.or.cz/nasm/doc/rdsrc.pl +1111 -0
- data/vendor/repo.or.cz/nasm/doc/ttfmetrics.ph +63 -0
- data/vendor/repo.or.cz/nasm/headers/c +33 -0
- data/vendor/repo.or.cz/nasm/headers/doc +33 -0
- data/vendor/repo.or.cz/nasm/headers/mac +33 -0
- data/vendor/repo.or.cz/nasm/headers/perl +33 -0
- data/vendor/repo.or.cz/nasm/include/compiler.h +277 -0
- data/vendor/repo.or.cz/nasm/include/disp8.h +45 -0
- data/vendor/repo.or.cz/nasm/include/error.h +135 -0
- data/vendor/repo.or.cz/nasm/include/hashtbl.h +85 -0
- data/vendor/repo.or.cz/nasm/include/iflag.h +173 -0
- data/vendor/repo.or.cz/nasm/include/insns.h +76 -0
- data/vendor/repo.or.cz/nasm/include/labels.h +60 -0
- data/vendor/repo.or.cz/nasm/include/md5.h +21 -0
- data/vendor/repo.or.cz/nasm/include/nasm.h +1246 -0
- data/vendor/repo.or.cz/nasm/include/nasmint.h +219 -0
- data/vendor/repo.or.cz/nasm/include/nasmlib.h +524 -0
- data/vendor/repo.or.cz/nasm/include/opflags.h +271 -0
- data/vendor/repo.or.cz/nasm/include/perfhash.h +52 -0
- data/vendor/repo.or.cz/nasm/include/raa.h +46 -0
- data/vendor/repo.or.cz/nasm/include/rbtree.h +51 -0
- data/vendor/repo.or.cz/nasm/include/rdoff.h +169 -0
- data/vendor/repo.or.cz/nasm/include/saa.h +94 -0
- data/vendor/repo.or.cz/nasm/include/strlist.h +55 -0
- data/vendor/repo.or.cz/nasm/include/tables.h +70 -0
- data/vendor/repo.or.cz/nasm/include/ver.h +47 -0
- data/vendor/repo.or.cz/nasm/install-sh +250 -0
- data/vendor/repo.or.cz/nasm/macros/altreg.mac +107 -0
- data/vendor/repo.or.cz/nasm/macros/fp.mac +54 -0
- data/vendor/repo.or.cz/nasm/macros/ifunc.mac +48 -0
- data/vendor/repo.or.cz/nasm/macros/macros.pl +294 -0
- data/vendor/repo.or.cz/nasm/macros/smartalign.mac +189 -0
- data/vendor/repo.or.cz/nasm/macros/standard.mac +226 -0
- data/vendor/repo.or.cz/nasm/misc/Doxyfile +752 -0
- data/vendor/repo.or.cz/nasm/misc/Nindent +18 -0
- data/vendor/repo.or.cz/nasm/misc/README +2 -0
- data/vendor/repo.or.cz/nasm/misc/c16.mac +82 -0
- data/vendor/repo.or.cz/nasm/misc/c32.mac +52 -0
- data/vendor/repo.or.cz/nasm/misc/crcgen.c +44 -0
- data/vendor/repo.or.cz/nasm/misc/exebin.mac +57 -0
- data/vendor/repo.or.cz/nasm/misc/exebin2.mac +114 -0
- data/vendor/repo.or.cz/nasm/misc/fmtinsns.pl +40 -0
- data/vendor/repo.or.cz/nasm/misc/genfma.pl +63 -0
- data/vendor/repo.or.cz/nasm/misc/hints.txt +26 -0
- data/vendor/repo.or.cz/nasm/misc/magic +6 -0
- data/vendor/repo.or.cz/nasm/misc/myC32.mac +121 -0
- data/vendor/repo.or.cz/nasm/misc/nasm.sl +320 -0
- data/vendor/repo.or.cz/nasm/misc/nasmstab +296 -0
- data/vendor/repo.or.cz/nasm/misc/omfdump.c +517 -0
- data/vendor/repo.or.cz/nasm/misc/pmw.bat +9 -0
- data/vendor/repo.or.cz/nasm/misc/proc32.ash +441 -0
- data/vendor/repo.or.cz/nasm/misc/scitech.mac +1223 -0
- data/vendor/repo.or.cz/nasm/misc/xcrcgen.c +80 -0
- data/vendor/repo.or.cz/nasm/nasm.spec.in +83 -0
- data/vendor/repo.or.cz/nasm/nasm.spec.sed +3 -0
- data/vendor/repo.or.cz/nasm/nasm.txt +306 -0
- data/vendor/repo.or.cz/nasm/nasmlib/badenum.c +43 -0
- data/vendor/repo.or.cz/nasm/nasmlib/bsi.c +77 -0
- data/vendor/repo.or.cz/nasm/nasmlib/crc64.c +189 -0
- data/vendor/repo.or.cz/nasm/nasmlib/file.c +259 -0
- data/vendor/repo.or.cz/nasm/nasmlib/file.h +128 -0
- data/vendor/repo.or.cz/nasm/nasmlib/filename.c +69 -0
- data/vendor/repo.or.cz/nasm/nasmlib/hashtbl.c +232 -0
- data/vendor/repo.or.cz/nasm/nasmlib/ilog2.c +168 -0
- data/vendor/repo.or.cz/nasm/nasmlib/malloc.c +108 -0
- data/vendor/repo.or.cz/nasm/nasmlib/md5c.c +247 -0
- data/vendor/repo.or.cz/nasm/nasmlib/mmap.c +139 -0
- data/vendor/repo.or.cz/nasm/nasmlib/path.c +186 -0
- data/vendor/repo.or.cz/nasm/nasmlib/perfhash.c +55 -0
- data/vendor/repo.or.cz/nasm/nasmlib/perfhash.pl +362 -0
- data/vendor/repo.or.cz/nasm/nasmlib/raa.c +173 -0
- data/vendor/repo.or.cz/nasm/nasmlib/rbtree.c +119 -0
- data/vendor/repo.or.cz/nasm/nasmlib/readnum.c +172 -0
- data/vendor/repo.or.cz/nasm/nasmlib/realpath.c +135 -0
- data/vendor/repo.or.cz/nasm/nasmlib/saa.c +431 -0
- data/vendor/repo.or.cz/nasm/nasmlib/srcfile.c +128 -0
- data/vendor/repo.or.cz/nasm/nasmlib/string.c +242 -0
- data/vendor/repo.or.cz/nasm/nasmlib/strlist.c +100 -0
- data/vendor/repo.or.cz/nasm/nasmlib/ver.c +51 -0
- data/vendor/repo.or.cz/nasm/nasmlib/zerobuf.c +42 -0
- data/vendor/repo.or.cz/nasm/ndisasm.txt +94 -0
- data/vendor/repo.or.cz/nasm/nsis/NASMMultiUser.nsh +478 -0
- data/vendor/repo.or.cz/nasm/nsis/getpearch.pl +76 -0
- data/vendor/repo.or.cz/nasm/nsis/nasm-un.ico +0 -0
- data/vendor/repo.or.cz/nasm/nsis/nasm.ico +0 -0
- data/vendor/repo.or.cz/nasm/nsis/nasm.nsi +241 -0
- data/vendor/repo.or.cz/nasm/output/codeview.c +814 -0
- data/vendor/repo.or.cz/nasm/output/dwarf.h +566 -0
- data/vendor/repo.or.cz/nasm/output/elf.h +537 -0
- data/vendor/repo.or.cz/nasm/output/legacy.c +112 -0
- data/vendor/repo.or.cz/nasm/output/nulldbg.c +93 -0
- data/vendor/repo.or.cz/nasm/output/nullout.c +51 -0
- data/vendor/repo.or.cz/nasm/output/outaout.c +954 -0
- data/vendor/repo.or.cz/nasm/output/outaout.mac +37 -0
- data/vendor/repo.or.cz/nasm/output/outas86.c +650 -0
- data/vendor/repo.or.cz/nasm/output/outas86.mac +37 -0
- data/vendor/repo.or.cz/nasm/output/outbin.c +1713 -0
- data/vendor/repo.or.cz/nasm/output/outbin.mac +40 -0
- data/vendor/repo.or.cz/nasm/output/outcoff.c +1242 -0
- data/vendor/repo.or.cz/nasm/output/outcoff.mac +43 -0
- data/vendor/repo.or.cz/nasm/output/outdbg.c +425 -0
- data/vendor/repo.or.cz/nasm/output/outelf.c +3370 -0
- data/vendor/repo.or.cz/nasm/output/outelf.h +156 -0
- data/vendor/repo.or.cz/nasm/output/outelf.mac +41 -0
- data/vendor/repo.or.cz/nasm/output/outform.c +120 -0
- data/vendor/repo.or.cz/nasm/output/outform.h +379 -0
- data/vendor/repo.or.cz/nasm/output/outieee.c +1528 -0
- data/vendor/repo.or.cz/nasm/output/outlib.c +58 -0
- data/vendor/repo.or.cz/nasm/output/outlib.h +63 -0
- data/vendor/repo.or.cz/nasm/output/outmacho.c +2387 -0
- data/vendor/repo.or.cz/nasm/output/outmacho.mac +49 -0
- data/vendor/repo.or.cz/nasm/output/outobj.c +2725 -0
- data/vendor/repo.or.cz/nasm/output/outobj.mac +49 -0
- data/vendor/repo.or.cz/nasm/output/outrdf.mac +40 -0
- data/vendor/repo.or.cz/nasm/output/outrdf2.c +791 -0
- data/vendor/repo.or.cz/nasm/output/outrdf2.mac +43 -0
- data/vendor/repo.or.cz/nasm/output/pecoff.h +532 -0
- data/vendor/repo.or.cz/nasm/output/stabs.h +144 -0
- data/vendor/repo.or.cz/nasm/perllib/crc64.ph +158 -0
- data/vendor/repo.or.cz/nasm/perllib/gensv.pl +34 -0
- data/vendor/repo.or.cz/nasm/perllib/phash.ph +200 -0
- data/vendor/repo.or.cz/nasm/perllib/random_sv_vectors.ph +67 -0
- data/vendor/repo.or.cz/nasm/rdoff/README +185 -0
- data/vendor/repo.or.cz/nasm/rdoff/collectn.c +44 -0
- data/vendor/repo.or.cz/nasm/rdoff/collectn.h +22 -0
- data/vendor/repo.or.cz/nasm/rdoff/doc/Makefile +37 -0
- data/vendor/repo.or.cz/nasm/rdoff/doc/rdoff.texi +137 -0
- data/vendor/repo.or.cz/nasm/rdoff/doc/v1-v2.txt +62 -0
- data/vendor/repo.or.cz/nasm/rdoff/hash.c +122 -0
- data/vendor/repo.or.cz/nasm/rdoff/hash.h +17 -0
- data/vendor/repo.or.cz/nasm/rdoff/ldrdf.1 +41 -0
- data/vendor/repo.or.cz/nasm/rdoff/ldrdf.c +1395 -0
- data/vendor/repo.or.cz/nasm/rdoff/ldsegs.h +59 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdf2bin.1 +65 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdf2bin.c +431 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdf2com.1 +1 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdf2ihx.1 +1 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdf2ith.1 +1 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdf2srec.1 +1 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdfdump.1 +24 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdfdump.c +347 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdflib.1 +39 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdflib.c +434 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdfload.c +213 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdfload.h +29 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdfutils.h +165 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdlar.c +492 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdlar.h +34 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdlib.c +290 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdlib.h +62 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdoff.c +621 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdx.1 +21 -0
- data/vendor/repo.or.cz/nasm/rdoff/rdx.c +90 -0
- data/vendor/repo.or.cz/nasm/rdoff/segtab.c +172 -0
- data/vendor/repo.or.cz/nasm/rdoff/segtab.h +45 -0
- data/vendor/repo.or.cz/nasm/rdoff/symtab.c +159 -0
- data/vendor/repo.or.cz/nasm/rdoff/symtab.h +55 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/Makefile +10 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/makelib.sh +14 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/rdfseg.asm +20 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/rdfseg2.asm +12 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/rdftest1.asm +54 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/rdftest2.asm +33 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/rdtlib.asm +48 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/rdtmain.asm +47 -0
- data/vendor/repo.or.cz/nasm/rdoff/test/testlib.asm +18 -0
- data/vendor/repo.or.cz/nasm/stdlib/snprintf.c +29 -0
- data/vendor/repo.or.cz/nasm/stdlib/strlcpy.c +51 -0
- data/vendor/repo.or.cz/nasm/stdlib/strnlen.c +46 -0
- data/vendor/repo.or.cz/nasm/stdlib/vsnprintf.c +51 -0
- data/vendor/repo.or.cz/nasm/test/Makefile +106 -0
- data/vendor/repo.or.cz/nasm/test/_file_.asm +5 -0
- data/vendor/repo.or.cz/nasm/test/_version.asm +2 -0
- data/vendor/repo.or.cz/nasm/test/a32offs.asm +9 -0
- data/vendor/repo.or.cz/nasm/test/absolute.asm +40 -0
- data/vendor/repo.or.cz/nasm/test/addr64x.asm +18 -0
- data/vendor/repo.or.cz/nasm/test/align13.asm +19 -0
- data/vendor/repo.or.cz/nasm/test/align13s.asm +20 -0
- data/vendor/repo.or.cz/nasm/test/alonesym-obj.asm +166 -0
- data/vendor/repo.or.cz/nasm/test/andbyte.asm +15 -0
- data/vendor/repo.or.cz/nasm/test/aoutso.asm +99 -0
- data/vendor/repo.or.cz/nasm/test/aouttest.asm +86 -0
- data/vendor/repo.or.cz/nasm/test/aouttest.c +36 -0
- data/vendor/repo.or.cz/nasm/test/avx.asm +46 -0
- data/vendor/repo.or.cz/nasm/test/avx005.asm +529 -0
- data/vendor/repo.or.cz/nasm/test/avx2.asm +1608 -0
- data/vendor/repo.or.cz/nasm/test/avx512cd.asm +106 -0
- data/vendor/repo.or.cz/nasm/test/avx512er.asm +144 -0
- data/vendor/repo.or.cz/nasm/test/avx512f.asm +7000 -0
- data/vendor/repo.or.cz/nasm/test/avx512pf.asm +88 -0
- data/vendor/repo.or.cz/nasm/test/bcd.asm +23 -0
- data/vendor/repo.or.cz/nasm/test/binexe.asm +35 -0
- data/vendor/repo.or.cz/nasm/test/bintest.asm +59 -0
- data/vendor/repo.or.cz/nasm/test/bisect.sh +22 -0
- data/vendor/repo.or.cz/nasm/test/br1879590.asm +25 -0
- data/vendor/repo.or.cz/nasm/test/br2003451.asm +17 -0
- data/vendor/repo.or.cz/nasm/test/br2030823.asm +7 -0
- data/vendor/repo.or.cz/nasm/test/br2148476.asm +221 -0
- data/vendor/repo.or.cz/nasm/test/br2222615.asm +19 -0
- data/vendor/repo.or.cz/nasm/test/br2496848.asm +42 -0
- data/vendor/repo.or.cz/nasm/test/br3005117.asm +26 -0
- data/vendor/repo.or.cz/nasm/test/br3026808.asm +20 -0
- data/vendor/repo.or.cz/nasm/test/br3028880.asm +8 -0
- data/vendor/repo.or.cz/nasm/test/br3041451.asm +59 -0
- data/vendor/repo.or.cz/nasm/test/br3058845.asm +14 -0
- data/vendor/repo.or.cz/nasm/test/br3066383.asm +70 -0
- data/vendor/repo.or.cz/nasm/test/br3074517.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/br3092924.asm +25 -0
- data/vendor/repo.or.cz/nasm/test/br3104312.asm +11 -0
- data/vendor/repo.or.cz/nasm/test/br3109604.asm +9 -0
- data/vendor/repo.or.cz/nasm/test/br3174983.asm +9 -0
- data/vendor/repo.or.cz/nasm/test/br3187743.asm +7 -0
- data/vendor/repo.or.cz/nasm/test/br3189064.asm +7 -0
- data/vendor/repo.or.cz/nasm/test/br3200749.asm +9 -0
- data/vendor/repo.or.cz/nasm/test/br3385573.asm +11 -0
- data/vendor/repo.or.cz/nasm/test/br3392252.asm +43 -0
- data/vendor/repo.or.cz/nasm/test/br3392259.asm +8 -0
- data/vendor/repo.or.cz/nasm/test/br3392363.asm +4 -0
- data/vendor/repo.or.cz/nasm/test/br3392392.asm +16 -0
- data/vendor/repo.or.cz/nasm/test/br3392396.asm +5 -0
- data/vendor/repo.or.cz/nasm/test/br3392411.asm +22 -0
- data/vendor/repo.or.cz/nasm/test/br3392418.asm +3 -0
- data/vendor/repo.or.cz/nasm/test/br3392439.asm +25 -0
- data/vendor/repo.or.cz/nasm/test/br3392442.asm +6 -0
- data/vendor/repo.or.cz/nasm/test/br560575.asm +17 -0
- data/vendor/repo.or.cz/nasm/test/br560873.asm +27 -0
- data/vendor/repo.or.cz/nasm/test/br890790.asm +7 -0
- data/vendor/repo.or.cz/nasm/test/br890790_i.asm +1 -0
- data/vendor/repo.or.cz/nasm/test/br978756.asm +7 -0
- data/vendor/repo.or.cz/nasm/test/changed.asm +383 -0
- data/vendor/repo.or.cz/nasm/test/cofftest.asm +85 -0
- data/vendor/repo.or.cz/nasm/test/cofftest.c +35 -0
- data/vendor/repo.or.cz/nasm/test/crc32.asm +37 -0
- data/vendor/repo.or.cz/nasm/test/cv8struc.asm +14 -0
- data/vendor/repo.or.cz/nasm/test/dtbcd.asm +72 -0
- data/vendor/repo.or.cz/nasm/test/elf64so.asm +118 -0
- data/vendor/repo.or.cz/nasm/test/elfso.asm +100 -0
- data/vendor/repo.or.cz/nasm/test/elftest.asm +87 -0
- data/vendor/repo.or.cz/nasm/test/elftest.c +38 -0
- data/vendor/repo.or.cz/nasm/test/elftest64.c +43 -0
- data/vendor/repo.or.cz/nasm/test/elif.asm +39 -0
- data/vendor/repo.or.cz/nasm/test/expimp.asm +90 -0
- data/vendor/repo.or.cz/nasm/test/far64.asm +10 -0
- data/vendor/repo.or.cz/nasm/test/float.asm +186 -0
- data/vendor/repo.or.cz/nasm/test/float8.asm +135 -0
- data/vendor/repo.or.cz/nasm/test/floatb.asm +35 -0
- data/vendor/repo.or.cz/nasm/test/floatexp.asm +382 -0
- data/vendor/repo.or.cz/nasm/test/floatize.asm +19 -0
- data/vendor/repo.or.cz/nasm/test/floattest.asm +28 -0
- data/vendor/repo.or.cz/nasm/test/floatx.asm +525 -0
- data/vendor/repo.or.cz/nasm/test/fpu.asm +127 -0
- data/vendor/repo.or.cz/nasm/test/fwdopt.asm +133 -0
- data/vendor/repo.or.cz/nasm/test/fwdoptpp.asm +150 -0
- data/vendor/repo.or.cz/nasm/test/gas2nasm.py +104 -0
- data/vendor/repo.or.cz/nasm/test/gather.asm +11 -0
- data/vendor/repo.or.cz/nasm/test/gotoff64.asm +25 -0
- data/vendor/repo.or.cz/nasm/test/hexfp.asm +25 -0
- data/vendor/repo.or.cz/nasm/test/hle.asm +19 -0
- data/vendor/repo.or.cz/nasm/test/ifelse.asm +46 -0
- data/vendor/repo.or.cz/nasm/test/ifenv.asm +31 -0
- data/vendor/repo.or.cz/nasm/test/ifmacro.asm +413 -0
- data/vendor/repo.or.cz/nasm/test/iftoken.asm +317 -0
- data/vendor/repo.or.cz/nasm/test/iftoken.pl +32 -0
- data/vendor/repo.or.cz/nasm/test/ilog2.asm +271 -0
- data/vendor/repo.or.cz/nasm/test/imacro.asm +8 -0
- data/vendor/repo.or.cz/nasm/test/imm.asm +23 -0
- data/vendor/repo.or.cz/nasm/test/imm64.asm +61 -0
- data/vendor/repo.or.cz/nasm/test/immwarn.asm +91 -0
- data/vendor/repo.or.cz/nasm/test/imul.asm +117 -0
- data/vendor/repo.or.cz/nasm/test/inc1.asm +6 -0
- data/vendor/repo.or.cz/nasm/test/inc2.asm +8 -0
- data/vendor/repo.or.cz/nasm/test/incbin.asm +7 -0
- data/vendor/repo.or.cz/nasm/test/incbin.data +2 -0
- data/vendor/repo.or.cz/nasm/test/inctest.asm +15 -0
- data/vendor/repo.or.cz/nasm/test/insnlbl.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/invlpga.asm +11 -0
- data/vendor/repo.or.cz/nasm/test/jmp64.asm +19 -0
- data/vendor/repo.or.cz/nasm/test/lar_lsl.asm +124 -0
- data/vendor/repo.or.cz/nasm/test/larlsl.asm +23 -0
- data/vendor/repo.or.cz/nasm/test/lnxhello.asm +54 -0
- data/vendor/repo.or.cz/nasm/test/local.asm +19 -0
- data/vendor/repo.or.cz/nasm/test/loopoffs.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/lwp.asm +213 -0
- data/vendor/repo.or.cz/nasm/test/macro-defaults.asm +64 -0
- data/vendor/repo.or.cz/nasm/test/macroerr.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/macroerr.inc +3 -0
- data/vendor/repo.or.cz/nasm/test/mmxsize.asm +38 -0
- data/vendor/repo.or.cz/nasm/test/movd.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/movd64.asm +15 -0
- data/vendor/repo.or.cz/nasm/test/movimm.asm +28 -0
- data/vendor/repo.or.cz/nasm/test/movnti.asm +10 -0
- data/vendor/repo.or.cz/nasm/test/mpx-64.asm +120 -0
- data/vendor/repo.or.cz/nasm/test/mpx.asm +89 -0
- data/vendor/repo.or.cz/nasm/test/multisection.asm +96 -0
- data/vendor/repo.or.cz/nasm/test/nasmformat.asm +17 -0
- data/vendor/repo.or.cz/nasm/test/new +9 -0
- data/vendor/repo.or.cz/nasm/test/newrdwr.asm +24 -0
- data/vendor/repo.or.cz/nasm/test/nop.asm +17 -0
- data/vendor/repo.or.cz/nasm/test/nullfile.asm +4 -0
- data/vendor/repo.or.cz/nasm/test/objexe.asm +30 -0
- data/vendor/repo.or.cz/nasm/test/objlink.c +33 -0
- data/vendor/repo.or.cz/nasm/test/objtest.asm +85 -0
- data/vendor/repo.or.cz/nasm/test/optimization.asm +104 -0
- data/vendor/repo.or.cz/nasm/test/org.asm +18 -0
- data/vendor/repo.or.cz/nasm/test/paste.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/pcrel.asm +52 -0
- data/vendor/repo.or.cz/nasm/test/perf/label.pl +18 -0
- data/vendor/repo.or.cz/nasm/test/perf/macro.pl +18 -0
- data/vendor/repo.or.cz/nasm/test/perf/token.pl +23 -0
- data/vendor/repo.or.cz/nasm/test/performtest.pl +192 -0
- data/vendor/repo.or.cz/nasm/test/pextrw.asm +3 -0
- data/vendor/repo.or.cz/nasm/test/pinsr16.asm +53 -0
- data/vendor/repo.or.cz/nasm/test/pinsr32.asm +53 -0
- data/vendor/repo.or.cz/nasm/test/pinsr64.asm +68 -0
- data/vendor/repo.or.cz/nasm/test/popcnt.asm +32 -0
- data/vendor/repo.or.cz/nasm/test/ppindirect.asm +42 -0
- data/vendor/repo.or.cz/nasm/test/pragma.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/prefix66.asm +28 -0
- data/vendor/repo.or.cz/nasm/test/ptr.asm +4 -0
- data/vendor/repo.or.cz/nasm/test/pushseg.asm +17 -0
- data/vendor/repo.or.cz/nasm/test/r13.asm +15 -0
- data/vendor/repo.or.cz/nasm/test/radix.asm +54 -0
- data/vendor/repo.or.cz/nasm/test/rdpid.asm +21 -0
- data/vendor/repo.or.cz/nasm/test/reldef.asm +57 -0
- data/vendor/repo.or.cz/nasm/test/relocs.asm +20 -0
- data/vendor/repo.or.cz/nasm/test/riprel.asm +5357 -0
- data/vendor/repo.or.cz/nasm/test/riprel.pl +29 -0
- data/vendor/repo.or.cz/nasm/test/riprel2.asm +11 -0
- data/vendor/repo.or.cz/nasm/test/sha-64.asm +30 -0
- data/vendor/repo.or.cz/nasm/test/sha.asm +31 -0
- data/vendor/repo.or.cz/nasm/test/smartalign16.asm +36 -0
- data/vendor/repo.or.cz/nasm/test/smartalign32.asm +36 -0
- data/vendor/repo.or.cz/nasm/test/smartalign64.asm +36 -0
- data/vendor/repo.or.cz/nasm/test/splitea.asm +11 -0
- data/vendor/repo.or.cz/nasm/test/sreg.asm +65 -0
- data/vendor/repo.or.cz/nasm/test/strlen.asm +5 -0
- data/vendor/repo.or.cz/nasm/test/struc.asm +33 -0
- data/vendor/repo.or.cz/nasm/test/test67.asm +38 -0
- data/vendor/repo.or.cz/nasm/test/testdos.asm +13 -0
- data/vendor/repo.or.cz/nasm/test/testnos3.asm +973 -0
- data/vendor/repo.or.cz/nasm/test/time.asm +11 -0
- data/vendor/repo.or.cz/nasm/test/times.asm +21 -0
- data/vendor/repo.or.cz/nasm/test/timesneg.asm +3 -0
- data/vendor/repo.or.cz/nasm/test/tmap.nas +1447 -0
- data/vendor/repo.or.cz/nasm/test/uscore.asm +15 -0
- data/vendor/repo.or.cz/nasm/test/utf.asm +82 -0
- data/vendor/repo.or.cz/nasm/test/vaesenc.asm +22 -0
- data/vendor/repo.or.cz/nasm/test/vex.asm +9 -0
- data/vendor/repo.or.cz/nasm/test/vgather.asm +76 -0
- data/vendor/repo.or.cz/nasm/test/vmread.asm +26 -0
- data/vendor/repo.or.cz/nasm/test/weirdpaste.asm +29 -0
- data/vendor/repo.or.cz/nasm/test/xchg.asm +96 -0
- data/vendor/repo.or.cz/nasm/test/xcrypt.asm +24 -0
- data/vendor/repo.or.cz/nasm/test/xmm0.asm +12 -0
- data/vendor/repo.or.cz/nasm/test/zerobyte.asm +22 -0
- data/vendor/repo.or.cz/nasm/tools/cleanfile +176 -0
- data/vendor/repo.or.cz/nasm/tools/cleanpatch +258 -0
- data/vendor/repo.or.cz/nasm/tools/mkdep.pl +261 -0
- data/vendor/repo.or.cz/nasm/tools/release +105 -0
- data/vendor/repo.or.cz/nasm/tools/syncfiles.pl +137 -0
- data/vendor/repo.or.cz/nasm/tools/tag-release +58 -0
- data/vendor/repo.or.cz/nasm/version +1 -0
- data/vendor/repo.or.cz/nasm/version.pl +189 -0
- data/vendor/repo.or.cz/nasm/x86/disp8.c +131 -0
- data/vendor/repo.or.cz/nasm/x86/insns-iflags.ph +280 -0
- data/vendor/repo.or.cz/nasm/x86/insns.dat +5371 -0
- data/vendor/repo.or.cz/nasm/x86/insns.pl +1043 -0
- data/vendor/repo.or.cz/nasm/x86/regs.dat +138 -0
- data/vendor/repo.or.cz/nasm/x86/regs.pl +204 -0
- metadata +520 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/* ----------------------------------------------------------------------- *
|
|
2
|
+
*
|
|
3
|
+
* Copyright 1996-2013 The NASM Authors - All Rights Reserved
|
|
4
|
+
* See the file AUTHORS included with the NASM distribution for
|
|
5
|
+
* the specific copyright holders.
|
|
6
|
+
*
|
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
|
8
|
+
* modification, are permitted provided that the following
|
|
9
|
+
* conditions are met:
|
|
10
|
+
*
|
|
11
|
+
* * Redistributions of source code must retain the above copyright
|
|
12
|
+
* notice, this list of conditions and the following disclaimer.
|
|
13
|
+
* * Redistributions in binary form must reproduce the above
|
|
14
|
+
* copyright notice, this list of conditions and the following
|
|
15
|
+
* disclaimer in the documentation and/or other materials provided
|
|
16
|
+
* with the distribution.
|
|
17
|
+
*
|
|
18
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
|
19
|
+
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
|
20
|
+
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
21
|
+
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
23
|
+
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
24
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
25
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
26
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
27
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
28
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
29
|
+
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
30
|
+
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
31
|
+
*
|
|
32
|
+
* ----------------------------------------------------------------------- */
|
|
33
|
+
|
|
34
|
+
/*
|
|
35
|
+
* disp8.h header file for disp8.c
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
#ifndef NASM_DISP8_H
|
|
39
|
+
#define NASM_DISP8_H
|
|
40
|
+
|
|
41
|
+
#include "nasm.h"
|
|
42
|
+
|
|
43
|
+
uint8_t get_disp8N(insn *ins);
|
|
44
|
+
bool is_disp8n(operand *input, insn *ins, int8_t *compdisp);
|
|
45
|
+
#endif /* NASM_DISP8_H */
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/* ----------------------------------------------------------------------- *
|
|
2
|
+
*
|
|
3
|
+
* Copyright 1996-2017 The NASM Authors - All Rights Reserved
|
|
4
|
+
* See the file AUTHORS included with the NASM distribution for
|
|
5
|
+
* the specific copyright holders.
|
|
6
|
+
*
|
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
|
8
|
+
* modification, are permitted provided that the following
|
|
9
|
+
* conditions are met:
|
|
10
|
+
*
|
|
11
|
+
* * Redistributions of source code must retain the above copyright
|
|
12
|
+
* notice, this list of conditions and the following disclaimer.
|
|
13
|
+
* * Redistributions in binary form must reproduce the above
|
|
14
|
+
* copyright notice, this list of conditions and the following
|
|
15
|
+
* disclaimer in the documentation and/or other materials provided
|
|
16
|
+
* with the distribution.
|
|
17
|
+
*
|
|
18
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
|
19
|
+
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
|
20
|
+
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
21
|
+
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
23
|
+
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
24
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
25
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
26
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
27
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
28
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
29
|
+
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
30
|
+
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
31
|
+
*
|
|
32
|
+
* ----------------------------------------------------------------------- */
|
|
33
|
+
|
|
34
|
+
/*
|
|
35
|
+
* Error reporting functions for the assembler
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
#ifndef NASM_ERROR_H
|
|
39
|
+
#define NASM_ERROR_H 1
|
|
40
|
+
|
|
41
|
+
#include "compiler.h"
|
|
42
|
+
|
|
43
|
+
/*
|
|
44
|
+
* An error reporting function should look like this.
|
|
45
|
+
*/
|
|
46
|
+
void printf_func(2, 3) nasm_error(int severity, const char *fmt, ...);
|
|
47
|
+
no_return printf_func(2, 3) nasm_fatal(int flags, const char *fmt, ...);
|
|
48
|
+
no_return printf_func(2, 3) nasm_panic(int flags, const char *fmt, ...);
|
|
49
|
+
no_return nasm_panic_from_macro(const char *file, int line);
|
|
50
|
+
#define panic() nasm_panic_from_macro(__FILE__, __LINE__);
|
|
51
|
+
|
|
52
|
+
typedef void (*vefunc) (int severity, const char *fmt, va_list ap);
|
|
53
|
+
extern vefunc nasm_verror;
|
|
54
|
+
static inline vefunc nasm_set_verror(vefunc ve)
|
|
55
|
+
{
|
|
56
|
+
vefunc old_verror = nasm_verror;
|
|
57
|
+
nasm_verror = ve;
|
|
58
|
+
return old_verror;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/*
|
|
62
|
+
* These are the error severity codes which get passed as the first
|
|
63
|
+
* argument to an efunc.
|
|
64
|
+
*/
|
|
65
|
+
|
|
66
|
+
#define ERR_DEBUG 0x00000000 /* put out debugging message */
|
|
67
|
+
#define ERR_WARNING 0x00000001 /* warn only: no further action */
|
|
68
|
+
#define ERR_NONFATAL 0x00000002 /* terminate assembly after phase */
|
|
69
|
+
#define ERR_FATAL 0x00000006 /* instantly fatal: exit with error */
|
|
70
|
+
#define ERR_PANIC 0x00000007 /* internal error: panic instantly
|
|
71
|
+
* and dump core for reference */
|
|
72
|
+
#define ERR_MASK 0x00000007 /* mask off the above codes */
|
|
73
|
+
#define ERR_NOFILE 0x00000010 /* don't give source file name/line */
|
|
74
|
+
#define ERR_USAGE 0x00000020 /* print a usage message */
|
|
75
|
+
#define ERR_PASS1 0x00000040 /* only print this error on pass one */
|
|
76
|
+
#define ERR_PASS2 0x00000080
|
|
77
|
+
|
|
78
|
+
#define ERR_NO_SEVERITY 0x00000100 /* suppress printing severity */
|
|
79
|
+
#define ERR_PP_PRECOND 0x00000200 /* for preprocessor use */
|
|
80
|
+
#define ERR_PP_LISTMACRO 0x00000400 /* from preproc->error_list_macros() */
|
|
81
|
+
|
|
82
|
+
/*
|
|
83
|
+
* These codes define specific types of suppressible warning.
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
#define ERR_WARN_MASK 0xFFFFF000 /* the mask for this feature */
|
|
87
|
+
#define ERR_WARN_SHR 12 /* how far to shift right */
|
|
88
|
+
|
|
89
|
+
#define WARN(x) ((x) << ERR_WARN_SHR)
|
|
90
|
+
#define WARN_IDX(x) (((x) & ERR_WARN_MASK) >> ERR_WARN_SHR)
|
|
91
|
+
|
|
92
|
+
#define ERR_WARN_OTHER WARN( 0) /* any noncategorized warning */
|
|
93
|
+
#define ERR_WARN_MNP WARN( 1) /* macro-num-parameters warning */
|
|
94
|
+
#define ERR_WARN_MSR WARN( 2) /* macro self-reference */
|
|
95
|
+
#define ERR_WARN_MDP WARN( 3) /* macro default parameters check */
|
|
96
|
+
#define ERR_WARN_OL WARN( 4) /* orphan label (no colon, and
|
|
97
|
+
* alone on line) */
|
|
98
|
+
#define ERR_WARN_NOV WARN( 5) /* numeric overflow */
|
|
99
|
+
#define ERR_WARN_GNUELF WARN( 6) /* using GNU ELF extensions */
|
|
100
|
+
#define ERR_WARN_FL_OVERFLOW WARN( 7) /* FP overflow */
|
|
101
|
+
#define ERR_WARN_FL_DENORM WARN( 8) /* FP denormal */
|
|
102
|
+
#define ERR_WARN_FL_UNDERFLOW WARN( 9) /* FP underflow */
|
|
103
|
+
#define ERR_WARN_FL_TOOLONG WARN(10) /* FP too many digits */
|
|
104
|
+
#define ERR_WARN_USER WARN(11) /* %warning directives */
|
|
105
|
+
#define ERR_WARN_LOCK WARN(12) /* bad LOCK prefixes */
|
|
106
|
+
#define ERR_WARN_HLE WARN(13) /* bad HLE prefixes */
|
|
107
|
+
#define ERR_WARN_BND WARN(14) /* bad BND prefixes */
|
|
108
|
+
#define ERR_WARN_ZEXTRELOC WARN(15) /* relocation zero-extended */
|
|
109
|
+
#define ERR_WARN_PTR WARN(16) /* not a NASM keyword */
|
|
110
|
+
#define ERR_WARN_BAD_PRAGMA WARN(17) /* malformed pragma */
|
|
111
|
+
#define ERR_WARN_UNKNOWN_PRAGMA WARN(18) /* unknown pragma */
|
|
112
|
+
#define ERR_WARN_NOTMY_PRAGMA WARN(19) /* pragma inapplicable */
|
|
113
|
+
#define ERR_WARN_UNK_WARNING WARN(20) /* unknown warning */
|
|
114
|
+
|
|
115
|
+
/* The "all" warning acts as a global switch, it must come last */
|
|
116
|
+
#define ERR_WARN_ALL 21 /* Do not use WARN() here */
|
|
117
|
+
|
|
118
|
+
struct warning {
|
|
119
|
+
const char *name;
|
|
120
|
+
const char *help;
|
|
121
|
+
bool enabled;
|
|
122
|
+
};
|
|
123
|
+
extern const struct warning warnings[ERR_WARN_ALL+1];
|
|
124
|
+
|
|
125
|
+
/* This is a bitmask */
|
|
126
|
+
#define WARN_ST_ENABLED 1 /* Warning is currently enabled */
|
|
127
|
+
#define WARN_ST_ERROR 2 /* Treat this warning as an error */
|
|
128
|
+
|
|
129
|
+
extern uint8_t warning_state[ERR_WARN_ALL];
|
|
130
|
+
extern uint8_t warning_state_init[ERR_WARN_ALL];
|
|
131
|
+
|
|
132
|
+
/* Process a warning option or directive */
|
|
133
|
+
bool set_warning_status(const char *);
|
|
134
|
+
|
|
135
|
+
#endif /* NASM_ERROR_H */
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/* ----------------------------------------------------------------------- *
|
|
2
|
+
*
|
|
3
|
+
* Copyright 1996-2017 The NASM Authors - All Rights Reserved
|
|
4
|
+
* See the file AUTHORS included with the NASM distribution for
|
|
5
|
+
* the specific copyright holders.
|
|
6
|
+
*
|
|
7
|
+
* Redistribution and use in source and binary forms, with or without
|
|
8
|
+
* modification, are permitted provided that the following
|
|
9
|
+
* conditions are met:
|
|
10
|
+
*
|
|
11
|
+
* * Redistributions of source code must retain the above copyright
|
|
12
|
+
* notice, this list of conditions and the following disclaimer.
|
|
13
|
+
* * Redistributions in binary form must reproduce the above
|
|
14
|
+
* copyright notice, this list of conditions and the following
|
|
15
|
+
* disclaimer in the documentation and/or other materials provided
|
|
16
|
+
* with the distribution.
|
|
17
|
+
*
|
|
18
|
+
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
|
|
19
|
+
* CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
|
20
|
+
* INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
21
|
+
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
22
|
+
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
23
|
+
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
24
|
+
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
|
|
25
|
+
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
26
|
+
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
|
27
|
+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
28
|
+
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
29
|
+
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
|
|
30
|
+
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
31
|
+
*
|
|
32
|
+
* ----------------------------------------------------------------------- */
|
|
33
|
+
|
|
34
|
+
/*
|
|
35
|
+
* hashtbl.h
|
|
36
|
+
*
|
|
37
|
+
* Efficient dictionary hash table class.
|
|
38
|
+
*/
|
|
39
|
+
|
|
40
|
+
#ifndef NASM_HASHTBL_H
|
|
41
|
+
#define NASM_HASHTBL_H
|
|
42
|
+
|
|
43
|
+
#include <stddef.h>
|
|
44
|
+
#include "nasmlib.h"
|
|
45
|
+
|
|
46
|
+
struct hash_tbl_node {
|
|
47
|
+
uint64_t hash;
|
|
48
|
+
const char *key;
|
|
49
|
+
void *data;
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
struct hash_table {
|
|
53
|
+
struct hash_tbl_node *table;
|
|
54
|
+
size_t load;
|
|
55
|
+
size_t size;
|
|
56
|
+
size_t max_load;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
struct hash_insert {
|
|
60
|
+
uint64_t hash;
|
|
61
|
+
struct hash_table *head;
|
|
62
|
+
struct hash_tbl_node *where;
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
uint64_t crc64(uint64_t crc, const char *string);
|
|
66
|
+
uint64_t crc64i(uint64_t crc, const char *string);
|
|
67
|
+
#define CRC64_INIT UINT64_C(0xffffffffffffffff)
|
|
68
|
+
|
|
69
|
+
/* Some reasonable initial sizes... */
|
|
70
|
+
#define HASH_SMALL 4
|
|
71
|
+
#define HASH_MEDIUM 16
|
|
72
|
+
#define HASH_LARGE 256
|
|
73
|
+
|
|
74
|
+
void hash_init(struct hash_table *head, size_t size);
|
|
75
|
+
void **hash_find(struct hash_table *head, const char *string,
|
|
76
|
+
struct hash_insert *insert);
|
|
77
|
+
void **hash_findi(struct hash_table *head, const char *string,
|
|
78
|
+
struct hash_insert *insert);
|
|
79
|
+
void **hash_add(struct hash_insert *insert, const char *string, void *data);
|
|
80
|
+
void *hash_iterate(const struct hash_table *head,
|
|
81
|
+
struct hash_tbl_node **iterator,
|
|
82
|
+
const char **key);
|
|
83
|
+
void hash_free(struct hash_table *head);
|
|
84
|
+
|
|
85
|
+
#endif /* NASM_HASHTBL_H */
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
#ifndef NASM_IFLAG_H
|
|
2
|
+
#define NASM_IFLAG_H
|
|
3
|
+
|
|
4
|
+
#include "compiler.h"
|
|
5
|
+
|
|
6
|
+
#include <string.h>
|
|
7
|
+
|
|
8
|
+
#include "iflaggen.h"
|
|
9
|
+
#include "nasmlib.h" /* For ilog2_32() */
|
|
10
|
+
|
|
11
|
+
#define IF_GENBIT(bit) (UINT32_C(1) << (bit))
|
|
12
|
+
|
|
13
|
+
static inline bool iflag_test(const iflag_t *f, unsigned int bit)
|
|
14
|
+
{
|
|
15
|
+
return !!(f->field[bit >> 5] & IF_GENBIT(bit & 31));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
static inline void iflag_set(iflag_t *f, unsigned int bit)
|
|
19
|
+
{
|
|
20
|
+
f->field[bit >> 5] |= IF_GENBIT(bit & 31);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
static inline void iflag_clear(iflag_t *f, unsigned int bit)
|
|
24
|
+
{
|
|
25
|
+
f->field[bit >> 5] &= ~IF_GENBIT(bit & 31);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
static inline void iflag_clear_all(iflag_t *f)
|
|
29
|
+
{
|
|
30
|
+
memset(f, 0, sizeof(*f));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
static inline void iflag_set_all(iflag_t *f)
|
|
34
|
+
{
|
|
35
|
+
memset(f, ~0, sizeof(*f));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
#define iflag_for_each_field(v) for ((v) = 0; (v) < IF_FIELD_COUNT; (v)++)
|
|
39
|
+
|
|
40
|
+
static inline int iflag_cmp(const iflag_t *a, const iflag_t *b)
|
|
41
|
+
{
|
|
42
|
+
int i;
|
|
43
|
+
|
|
44
|
+
/* This is intentionally a reverse loop! */
|
|
45
|
+
for (i = IF_FIELD_COUNT-1; i >= 0; i--) {
|
|
46
|
+
if (a->field[i] == b->field[i])
|
|
47
|
+
continue;
|
|
48
|
+
|
|
49
|
+
return (int)(a->field[i] - b->field[i]);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
#define IF_GEN_HELPER(name, op) \
|
|
56
|
+
static inline iflag_t iflag_##name(const iflag_t *a, const iflag_t *b) \
|
|
57
|
+
{ \
|
|
58
|
+
unsigned int i; \
|
|
59
|
+
iflag_t res; \
|
|
60
|
+
\
|
|
61
|
+
iflag_for_each_field(i) \
|
|
62
|
+
res.field[i] = a->field[i] op b->field[i]; \
|
|
63
|
+
\
|
|
64
|
+
return res; \
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
IF_GEN_HELPER(xor, ^)
|
|
68
|
+
|
|
69
|
+
/* Some helpers which are to work with predefined masks */
|
|
70
|
+
#define IF_SMASK \
|
|
71
|
+
(IF_GENBIT(IF_SB) |\
|
|
72
|
+
IF_GENBIT(IF_SW) |\
|
|
73
|
+
IF_GENBIT(IF_SD) |\
|
|
74
|
+
IF_GENBIT(IF_SQ) |\
|
|
75
|
+
IF_GENBIT(IF_SO) |\
|
|
76
|
+
IF_GENBIT(IF_SY) |\
|
|
77
|
+
IF_GENBIT(IF_SZ) |\
|
|
78
|
+
IF_GENBIT(IF_SIZE))
|
|
79
|
+
#define IF_ARMASK \
|
|
80
|
+
(IF_GENBIT(IF_AR0) |\
|
|
81
|
+
IF_GENBIT(IF_AR1) |\
|
|
82
|
+
IF_GENBIT(IF_AR2) |\
|
|
83
|
+
IF_GENBIT(IF_AR3) |\
|
|
84
|
+
IF_GENBIT(IF_AR4))
|
|
85
|
+
|
|
86
|
+
#define _itemp_smask(idx) (insns_flags[(idx)].field[0] & IF_SMASK)
|
|
87
|
+
#define _itemp_armask(idx) (insns_flags[(idx)].field[0] & IF_ARMASK)
|
|
88
|
+
#define _itemp_arg(idx) ((_itemp_armask(idx) >> IF_AR0) - 1)
|
|
89
|
+
|
|
90
|
+
#define itemp_smask(itemp) _itemp_smask((itemp)->iflag_idx)
|
|
91
|
+
#define itemp_arg(itemp) _itemp_arg((itemp)->iflag_idx)
|
|
92
|
+
#define itemp_armask(itemp) _itemp_armask((itemp)->iflag_idx)
|
|
93
|
+
|
|
94
|
+
/*
|
|
95
|
+
* IF_8086 is the first CPU level flag and IF_PLEVEL the last
|
|
96
|
+
*/
|
|
97
|
+
#if IF_8086 & 31
|
|
98
|
+
#error "IF_8086 must be on a uint32_t boundary"
|
|
99
|
+
#endif
|
|
100
|
+
#define IF_PLEVEL IF_IA64
|
|
101
|
+
#define IF_CPU_FIELD (IF_8086 >> 5)
|
|
102
|
+
#define IF_CPU_LEVEL_MASK ((IF_GENBIT(IF_PLEVEL & 31) << 1) - 1)
|
|
103
|
+
|
|
104
|
+
/*
|
|
105
|
+
* IF_PRIV is the firstr instruction filtering flag
|
|
106
|
+
*/
|
|
107
|
+
#if IF_PRIV & 31
|
|
108
|
+
#error "IF_PRIV must be on a uint32_t boundary"
|
|
109
|
+
#endif
|
|
110
|
+
#define IF_FEATURE_FIELD (IF_PRIV >> 5)
|
|
111
|
+
|
|
112
|
+
static inline int iflag_cmp_cpu(const iflag_t *a, const iflag_t *b)
|
|
113
|
+
{
|
|
114
|
+
return (int)(a->field[IF_CPU_FIELD] - b->field[IF_CPU_FIELD]);
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
static inline uint32_t _iflag_cpu_level(const iflag_t *a)
|
|
118
|
+
{
|
|
119
|
+
return a->field[IF_CPU_FIELD] & IF_CPU_LEVEL_MASK;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
static inline int iflag_cmp_cpu_level(const iflag_t *a, const iflag_t *b)
|
|
123
|
+
{
|
|
124
|
+
uint32_t aa = _iflag_cpu_level(a);
|
|
125
|
+
uint32_t bb = _iflag_cpu_level(b);
|
|
126
|
+
|
|
127
|
+
return (int)(aa - bb);
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* Returns true if the CPU level is at least a certain value */
|
|
131
|
+
static inline bool iflag_cpu_level_ok(const iflag_t *a, unsigned int bit)
|
|
132
|
+
{
|
|
133
|
+
return _iflag_cpu_level(a) >= IF_GENBIT(bit & 31);
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
static inline void iflag_set_all_features(iflag_t *a)
|
|
137
|
+
{
|
|
138
|
+
size_t i;
|
|
139
|
+
|
|
140
|
+
for (i = IF_FEATURE_FIELD; i < IF_CPU_FIELD; i++)
|
|
141
|
+
a->field[i] = ~UINT32_C(0);
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
static inline void iflag_set_cpu(iflag_t *a, unsigned int cpu)
|
|
145
|
+
{
|
|
146
|
+
a->field[0] = 0; /* Not applicable to the CPU type */
|
|
147
|
+
iflag_set_all_features(a); /* All feature masking bits set for now */
|
|
148
|
+
a->field[IF_CPU_FIELD] &= ~IF_CPU_LEVEL_MASK;
|
|
149
|
+
iflag_set(a, cpu);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
static inline void iflag_set_default_cpu(iflag_t *a)
|
|
153
|
+
{
|
|
154
|
+
iflag_set_cpu(a, IF_PLEVEL);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
static inline iflag_t _iflag_pfmask(const iflag_t *a)
|
|
158
|
+
{
|
|
159
|
+
iflag_t r;
|
|
160
|
+
|
|
161
|
+
iflag_clear_all(&r);
|
|
162
|
+
|
|
163
|
+
if (iflag_test(a, IF_CYRIX))
|
|
164
|
+
iflag_set(&r, IF_CYRIX);
|
|
165
|
+
if (iflag_test(a, IF_AMD))
|
|
166
|
+
iflag_set(&r, IF_AMD);
|
|
167
|
+
|
|
168
|
+
return r;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
#define iflag_pfmask(itemp) _iflag_pfmask(&insns_flags[(itemp)->iflag_idx])
|
|
172
|
+
|
|
173
|
+
#endif /* NASM_IFLAG_H */
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/* insns.h header file for insns.c
|
|
2
|
+
*
|
|
3
|
+
* The Netwide Assembler is copyright (C) 1996 Simon Tatham and
|
|
4
|
+
* Julian Hall. All rights reserved. The software is
|
|
5
|
+
* redistributable under the license given in the file "LICENSE"
|
|
6
|
+
* distributed in the NASM archive.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
#ifndef NASM_INSNS_H
|
|
10
|
+
#define NASM_INSNS_H
|
|
11
|
+
|
|
12
|
+
#include "nasm.h"
|
|
13
|
+
#include "tokens.h"
|
|
14
|
+
#include "iflag.h"
|
|
15
|
+
|
|
16
|
+
/* if changed, ITEMPLATE_END should be also changed accordingly */
|
|
17
|
+
struct itemplate {
|
|
18
|
+
enum opcode opcode; /* the token, passed from "parser.c" */
|
|
19
|
+
int operands; /* number of operands */
|
|
20
|
+
opflags_t opd[MAX_OPERANDS]; /* bit flags for operand types */
|
|
21
|
+
decoflags_t deco[MAX_OPERANDS]; /* bit flags for operand decorators */
|
|
22
|
+
const uint8_t *code; /* the code it assembles to */
|
|
23
|
+
uint32_t iflag_idx; /* some flags referenced by index */
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
/* Use this helper to test instruction template flags */
|
|
27
|
+
static inline bool itemp_has(const struct itemplate *itemp, unsigned int bit)
|
|
28
|
+
{
|
|
29
|
+
return iflag_test(&insns_flags[itemp->iflag_idx], bit);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* Disassembler table structure */
|
|
33
|
+
|
|
34
|
+
/*
|
|
35
|
+
* If n == -1, then p points to another table of 256
|
|
36
|
+
* struct disasm_index, otherwise p points to a list of n
|
|
37
|
+
* struct itemplates to consider.
|
|
38
|
+
*/
|
|
39
|
+
struct disasm_index {
|
|
40
|
+
const void *p;
|
|
41
|
+
int n;
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
/* Tables for the assembler and disassembler, respectively */
|
|
45
|
+
extern const struct itemplate * const nasm_instructions[];
|
|
46
|
+
extern const struct disasm_index itable[256];
|
|
47
|
+
extern const struct disasm_index * const itable_vex[NASM_VEX_CLASSES][32][4];
|
|
48
|
+
|
|
49
|
+
/* Common table for the byte codes */
|
|
50
|
+
extern const uint8_t nasm_bytecodes[];
|
|
51
|
+
|
|
52
|
+
/*
|
|
53
|
+
* this define is used to signify the end of an itemplate
|
|
54
|
+
*/
|
|
55
|
+
#define ITEMPLATE_END {I_none,0,{0,},{0,},NULL,0}
|
|
56
|
+
|
|
57
|
+
/* Width of Dx and RESx instructions */
|
|
58
|
+
int const_func idata_bytes(enum opcode opcode);
|
|
59
|
+
int const_func resv_bytes(enum opcode opcode);
|
|
60
|
+
|
|
61
|
+
/*
|
|
62
|
+
* Pseudo-op tests
|
|
63
|
+
*/
|
|
64
|
+
/* DB-type instruction (DB, DW, ...) */
|
|
65
|
+
static inline bool opcode_is_db(enum opcode opcode)
|
|
66
|
+
{
|
|
67
|
+
return idata_bytes(opcode) > 0;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/* RESB-type instruction (RESB, RESW, ...) */
|
|
71
|
+
static inline bool opcode_is_resb(enum opcode opcode)
|
|
72
|
+
{
|
|
73
|
+
return resv_bytes(opcode) > 0;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
#endif /* NASM_INSNS_H */
|