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,135 @@
|
|
|
1
|
+
/* ----------------------------------------------------------------------- *
|
|
2
|
+
*
|
|
3
|
+
* Copyright 2016 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
|
+
* realpath.c As system-independent as possible implementation of realpath()
|
|
36
|
+
*/
|
|
37
|
+
|
|
38
|
+
#include "compiler.h"
|
|
39
|
+
|
|
40
|
+
#include <stdlib.h>
|
|
41
|
+
#include <errno.h>
|
|
42
|
+
#include <limits.h>
|
|
43
|
+
#ifdef HAVE_UNISTD_H
|
|
44
|
+
# include <unistd.h>
|
|
45
|
+
#endif
|
|
46
|
+
#ifdef HAVE_SYS_PARAM_H
|
|
47
|
+
# include <sys/param.h>
|
|
48
|
+
#endif
|
|
49
|
+
|
|
50
|
+
#include "nasmlib.h"
|
|
51
|
+
|
|
52
|
+
#ifdef HAVE_CANONICALIZE_FILE_NAME
|
|
53
|
+
|
|
54
|
+
/*
|
|
55
|
+
* GNU-specific, but avoids the realpath(..., NULL)
|
|
56
|
+
* portability problem if it exists.
|
|
57
|
+
*/
|
|
58
|
+
char *nasm_realpath(const char *rel_path)
|
|
59
|
+
{
|
|
60
|
+
char *rp = canonicalize_file_name(rel_path);
|
|
61
|
+
return rp ? rp : nasm_strdup(rel_path);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
#elif defined(HAVE_REALPATH)
|
|
65
|
+
|
|
66
|
+
/*
|
|
67
|
+
* POSIX.1-2008 defines realpath(..., NULL); POSIX.1-2001 doesn't guarantee
|
|
68
|
+
* that a NULL second argument is supported.
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
char *nasm_realpath(const char *rel_path)
|
|
72
|
+
{
|
|
73
|
+
char *rp;
|
|
74
|
+
|
|
75
|
+
rp = realpath(rel_path, NULL);
|
|
76
|
+
|
|
77
|
+
/* Not all implemetations of realpath() support a NULL second argument */
|
|
78
|
+
if (!rp && errno == EINVAL) {
|
|
79
|
+
long path_max = -1;
|
|
80
|
+
char *rp;
|
|
81
|
+
|
|
82
|
+
#if defined(HAVE_PATHCONF) && defined(_PC_PATH_MAX)
|
|
83
|
+
path_max = pathconf(rel_path, _PC_PATH_MAX); /* POSIX */
|
|
84
|
+
#endif
|
|
85
|
+
|
|
86
|
+
if (path_max < 0) {
|
|
87
|
+
#ifdef PATH_MAX
|
|
88
|
+
path_max = PATH_MAX; /* SUSv2 */
|
|
89
|
+
#elif defined(MAXPATHLEN)
|
|
90
|
+
path_max = MAXPATHLEN; /* Solaris */
|
|
91
|
+
#else
|
|
92
|
+
path_max = 65536; /* Crazily high, we hope */
|
|
93
|
+
#endif
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
rp = nasm_malloc(path_max);
|
|
97
|
+
|
|
98
|
+
if (!realpath(rel_path, rp)) {
|
|
99
|
+
nasm_free(rp);
|
|
100
|
+
rp = NULL;
|
|
101
|
+
} else {
|
|
102
|
+
/* On some systems, pathconf() can return a very large value */
|
|
103
|
+
|
|
104
|
+
rp[path_max - 1] = '\0'; /* Just in case overrun is possible */
|
|
105
|
+
rp = nasm_realloc(rp, strlen(rp) + 1);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return rp ? rp : nasm_strdup(rel_path);
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
#elif defined(HAVE__FULLPATH)
|
|
113
|
+
|
|
114
|
+
/*
|
|
115
|
+
* win32/win64 API
|
|
116
|
+
*/
|
|
117
|
+
|
|
118
|
+
char *nasm_realpath(const char *rel_path)
|
|
119
|
+
{
|
|
120
|
+
char *rp = _fullpath(NULL, rel_path, 0);
|
|
121
|
+
return rp ? rp : nasm_strdup(rel_path);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
#else
|
|
125
|
+
|
|
126
|
+
/*
|
|
127
|
+
* There is nothing we know how to do here, so hope it just works anyway.
|
|
128
|
+
*/
|
|
129
|
+
|
|
130
|
+
char *nasm_realpath(const char *rel_path)
|
|
131
|
+
{
|
|
132
|
+
return nasm_strdup(rel_path);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
#endif
|
|
@@ -0,0 +1,431 @@
|
|
|
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
|
+
#include "compiler.h"
|
|
35
|
+
#include "nasmlib.h"
|
|
36
|
+
#include "saa.h"
|
|
37
|
+
|
|
38
|
+
/* Aggregate SAA components smaller than this */
|
|
39
|
+
#define SAA_BLKSHIFT 16
|
|
40
|
+
#define SAA_BLKLEN ((size_t)1 << SAA_BLKSHIFT)
|
|
41
|
+
|
|
42
|
+
struct SAA *saa_init(size_t elem_len)
|
|
43
|
+
{
|
|
44
|
+
struct SAA *s;
|
|
45
|
+
char *data;
|
|
46
|
+
|
|
47
|
+
s = nasm_zalloc(sizeof(struct SAA));
|
|
48
|
+
|
|
49
|
+
if (elem_len >= SAA_BLKLEN)
|
|
50
|
+
s->blk_len = elem_len;
|
|
51
|
+
else
|
|
52
|
+
s->blk_len = SAA_BLKLEN - (SAA_BLKLEN % elem_len);
|
|
53
|
+
|
|
54
|
+
s->elem_len = elem_len;
|
|
55
|
+
s->length = s->blk_len;
|
|
56
|
+
data = nasm_malloc(s->blk_len);
|
|
57
|
+
s->nblkptrs = s->nblks = 1;
|
|
58
|
+
s->blk_ptrs = nasm_malloc(sizeof(char *));
|
|
59
|
+
s->blk_ptrs[0] = data;
|
|
60
|
+
s->wblk = s->rblk = &s->blk_ptrs[0];
|
|
61
|
+
|
|
62
|
+
return s;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
void saa_free(struct SAA *s)
|
|
66
|
+
{
|
|
67
|
+
char **p;
|
|
68
|
+
size_t n;
|
|
69
|
+
|
|
70
|
+
for (p = s->blk_ptrs, n = s->nblks; n; p++, n--)
|
|
71
|
+
nasm_free(*p);
|
|
72
|
+
|
|
73
|
+
nasm_free(s->blk_ptrs);
|
|
74
|
+
nasm_free(s);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* Add one allocation block to an SAA */
|
|
78
|
+
static void saa_extend(struct SAA *s)
|
|
79
|
+
{
|
|
80
|
+
size_t blkn = s->nblks++;
|
|
81
|
+
|
|
82
|
+
if (blkn >= s->nblkptrs) {
|
|
83
|
+
size_t rindex = s->rblk - s->blk_ptrs;
|
|
84
|
+
size_t windex = s->wblk - s->blk_ptrs;
|
|
85
|
+
|
|
86
|
+
s->nblkptrs <<= 1;
|
|
87
|
+
s->blk_ptrs =
|
|
88
|
+
nasm_realloc(s->blk_ptrs, s->nblkptrs * sizeof(char *));
|
|
89
|
+
|
|
90
|
+
s->rblk = s->blk_ptrs + rindex;
|
|
91
|
+
s->wblk = s->blk_ptrs + windex;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
s->blk_ptrs[blkn] = nasm_malloc(s->blk_len);
|
|
95
|
+
s->length += s->blk_len;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
void *saa_wstruct(struct SAA *s)
|
|
99
|
+
{
|
|
100
|
+
void *p;
|
|
101
|
+
|
|
102
|
+
nasm_assert((s->wpos % s->elem_len) == 0);
|
|
103
|
+
|
|
104
|
+
if (s->wpos + s->elem_len > s->blk_len) {
|
|
105
|
+
nasm_assert(s->wpos == s->blk_len);
|
|
106
|
+
if (s->wptr + s->elem_len > s->length)
|
|
107
|
+
saa_extend(s);
|
|
108
|
+
s->wblk++;
|
|
109
|
+
s->wpos = 0;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
p = *s->wblk + s->wpos;
|
|
113
|
+
s->wpos += s->elem_len;
|
|
114
|
+
s->wptr += s->elem_len;
|
|
115
|
+
|
|
116
|
+
if (s->wptr > s->datalen)
|
|
117
|
+
s->datalen = s->wptr;
|
|
118
|
+
|
|
119
|
+
return p;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
void saa_wbytes(struct SAA *s, const void *data, size_t len)
|
|
123
|
+
{
|
|
124
|
+
const char *d = data;
|
|
125
|
+
|
|
126
|
+
while (len) {
|
|
127
|
+
size_t l = s->blk_len - s->wpos;
|
|
128
|
+
if (l > len)
|
|
129
|
+
l = len;
|
|
130
|
+
if (l) {
|
|
131
|
+
if (d) {
|
|
132
|
+
memcpy(*s->wblk + s->wpos, d, l);
|
|
133
|
+
d += l;
|
|
134
|
+
} else
|
|
135
|
+
memset(*s->wblk + s->wpos, 0, l);
|
|
136
|
+
s->wpos += l;
|
|
137
|
+
s->wptr += l;
|
|
138
|
+
len -= l;
|
|
139
|
+
|
|
140
|
+
if (s->datalen < s->wptr)
|
|
141
|
+
s->datalen = s->wptr;
|
|
142
|
+
}
|
|
143
|
+
if (len) {
|
|
144
|
+
if (s->wptr >= s->length)
|
|
145
|
+
saa_extend(s);
|
|
146
|
+
s->wblk++;
|
|
147
|
+
s->wpos = 0;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/*
|
|
153
|
+
* Writes a string, *including* the final null, to the specified SAA,
|
|
154
|
+
* and return the number of bytes written.
|
|
155
|
+
*/
|
|
156
|
+
size_t saa_wcstring(struct SAA *s, const char *str)
|
|
157
|
+
{
|
|
158
|
+
size_t bytes = strlen(str) + 1;
|
|
159
|
+
|
|
160
|
+
saa_wbytes(s, str, bytes);
|
|
161
|
+
|
|
162
|
+
return bytes;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
void saa_rewind(struct SAA *s)
|
|
166
|
+
{
|
|
167
|
+
s->rblk = s->blk_ptrs;
|
|
168
|
+
s->rpos = s->rptr = 0;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
void *saa_rstruct(struct SAA *s)
|
|
172
|
+
{
|
|
173
|
+
void *p;
|
|
174
|
+
|
|
175
|
+
if (s->rptr + s->elem_len > s->datalen)
|
|
176
|
+
return NULL;
|
|
177
|
+
|
|
178
|
+
nasm_assert((s->rpos % s->elem_len) == 0);
|
|
179
|
+
|
|
180
|
+
if (s->rpos + s->elem_len > s->blk_len) {
|
|
181
|
+
s->rblk++;
|
|
182
|
+
s->rpos = 0;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
p = *s->rblk + s->rpos;
|
|
186
|
+
s->rpos += s->elem_len;
|
|
187
|
+
s->rptr += s->elem_len;
|
|
188
|
+
|
|
189
|
+
return p;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
const void *saa_rbytes(struct SAA *s, size_t * lenp)
|
|
193
|
+
{
|
|
194
|
+
const void *p;
|
|
195
|
+
size_t len;
|
|
196
|
+
|
|
197
|
+
if (s->rptr >= s->datalen) {
|
|
198
|
+
*lenp = 0;
|
|
199
|
+
return NULL;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
if (s->rpos >= s->blk_len) {
|
|
203
|
+
s->rblk++;
|
|
204
|
+
s->rpos = 0;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
len = *lenp;
|
|
208
|
+
if (len > s->datalen - s->rptr)
|
|
209
|
+
len = s->datalen - s->rptr;
|
|
210
|
+
if (len > s->blk_len - s->rpos)
|
|
211
|
+
len = s->blk_len - s->rpos;
|
|
212
|
+
|
|
213
|
+
*lenp = len;
|
|
214
|
+
p = *s->rblk + s->rpos;
|
|
215
|
+
|
|
216
|
+
s->rpos += len;
|
|
217
|
+
s->rptr += len;
|
|
218
|
+
|
|
219
|
+
return p;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
void saa_rnbytes(struct SAA *s, void *data, size_t len)
|
|
223
|
+
{
|
|
224
|
+
char *d = data;
|
|
225
|
+
|
|
226
|
+
nasm_assert(s->rptr + len <= s->datalen);
|
|
227
|
+
|
|
228
|
+
while (len) {
|
|
229
|
+
size_t l;
|
|
230
|
+
const void *p;
|
|
231
|
+
|
|
232
|
+
l = len;
|
|
233
|
+
p = saa_rbytes(s, &l);
|
|
234
|
+
|
|
235
|
+
memcpy(d, p, l);
|
|
236
|
+
d += l;
|
|
237
|
+
len -= l;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
/* Same as saa_rnbytes, except position the counter first */
|
|
242
|
+
void saa_fread(struct SAA *s, size_t posn, void *data, size_t len)
|
|
243
|
+
{
|
|
244
|
+
size_t ix;
|
|
245
|
+
|
|
246
|
+
nasm_assert(posn + len <= s->datalen);
|
|
247
|
+
|
|
248
|
+
if (likely(s->blk_len == SAA_BLKLEN)) {
|
|
249
|
+
ix = posn >> SAA_BLKSHIFT;
|
|
250
|
+
s->rpos = posn & (SAA_BLKLEN - 1);
|
|
251
|
+
} else {
|
|
252
|
+
ix = posn / s->blk_len;
|
|
253
|
+
s->rpos = posn % s->blk_len;
|
|
254
|
+
}
|
|
255
|
+
s->rptr = posn;
|
|
256
|
+
s->rblk = &s->blk_ptrs[ix];
|
|
257
|
+
|
|
258
|
+
saa_rnbytes(s, data, len);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
/* Same as saa_wbytes, except position the counter first */
|
|
262
|
+
void saa_fwrite(struct SAA *s, size_t posn, const void *data, size_t len)
|
|
263
|
+
{
|
|
264
|
+
size_t ix;
|
|
265
|
+
|
|
266
|
+
/* Seek beyond the end of the existing array not supported */
|
|
267
|
+
nasm_assert(posn <= s->datalen);
|
|
268
|
+
|
|
269
|
+
if (likely(s->blk_len == SAA_BLKLEN)) {
|
|
270
|
+
ix = posn >> SAA_BLKSHIFT;
|
|
271
|
+
s->wpos = posn & (SAA_BLKLEN - 1);
|
|
272
|
+
} else {
|
|
273
|
+
ix = posn / s->blk_len;
|
|
274
|
+
s->wpos = posn % s->blk_len;
|
|
275
|
+
}
|
|
276
|
+
s->wptr = posn;
|
|
277
|
+
s->wblk = &s->blk_ptrs[ix];
|
|
278
|
+
|
|
279
|
+
if (!s->wpos) {
|
|
280
|
+
s->wpos = s->blk_len;
|
|
281
|
+
s->wblk--;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
saa_wbytes(s, data, len);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
void saa_fpwrite(struct SAA *s, FILE * fp)
|
|
288
|
+
{
|
|
289
|
+
const char *data;
|
|
290
|
+
size_t len;
|
|
291
|
+
|
|
292
|
+
saa_rewind(s);
|
|
293
|
+
while (len = s->datalen, (data = saa_rbytes(s, &len)) != NULL)
|
|
294
|
+
nasm_write(data, len, fp);
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
void saa_write8(struct SAA *s, uint8_t v)
|
|
298
|
+
{
|
|
299
|
+
saa_wbytes(s, &v, 1);
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
#ifdef WORDS_LITTLEENDIAN
|
|
303
|
+
|
|
304
|
+
void saa_write16(struct SAA *s, uint16_t v)
|
|
305
|
+
{
|
|
306
|
+
saa_wbytes(s, &v, 2);
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
void saa_write32(struct SAA *s, uint32_t v)
|
|
310
|
+
{
|
|
311
|
+
saa_wbytes(s, &v, 4);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
void saa_write64(struct SAA *s, uint64_t v)
|
|
315
|
+
{
|
|
316
|
+
saa_wbytes(s, &v, 8);
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
void saa_writeaddr(struct SAA *s, uint64_t v, size_t len)
|
|
320
|
+
{
|
|
321
|
+
saa_wbytes(s, &v, len);
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
#else /* not WORDS_LITTLEENDIAN */
|
|
325
|
+
|
|
326
|
+
void saa_write16(struct SAA *s, uint16_t v)
|
|
327
|
+
{
|
|
328
|
+
uint8_t b[2];
|
|
329
|
+
|
|
330
|
+
b[0] = v;
|
|
331
|
+
b[1] = v >> 8;
|
|
332
|
+
saa_wbytes(s, b, 2);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
void saa_write32(struct SAA *s, uint32_t v)
|
|
336
|
+
{
|
|
337
|
+
uint8_t b[4];
|
|
338
|
+
|
|
339
|
+
b[0] = v;
|
|
340
|
+
b[1] = v >> 8;
|
|
341
|
+
b[2] = v >> 16;
|
|
342
|
+
b[3] = v >> 24;
|
|
343
|
+
saa_wbytes(s, b, 4);
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
void saa_write64(struct SAA *s, uint64_t v)
|
|
347
|
+
{
|
|
348
|
+
uint8_t b[8];
|
|
349
|
+
|
|
350
|
+
b[0] = v;
|
|
351
|
+
b[1] = v >> 8;
|
|
352
|
+
b[2] = v >> 16;
|
|
353
|
+
b[3] = v >> 24;
|
|
354
|
+
b[4] = v >> 32;
|
|
355
|
+
b[5] = v >> 40;
|
|
356
|
+
b[6] = v >> 48;
|
|
357
|
+
b[7] = v >> 56;
|
|
358
|
+
|
|
359
|
+
saa_wbytes(s, b, 8);
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
void saa_writeaddr(struct SAA *s, uint64_t v, size_t len)
|
|
363
|
+
{
|
|
364
|
+
uint8_t b[8];
|
|
365
|
+
|
|
366
|
+
b[0] = v;
|
|
367
|
+
b[1] = v >> 8;
|
|
368
|
+
b[2] = v >> 16;
|
|
369
|
+
b[3] = v >> 24;
|
|
370
|
+
b[4] = v >> 32;
|
|
371
|
+
b[5] = v >> 40;
|
|
372
|
+
b[6] = v >> 48;
|
|
373
|
+
b[7] = v >> 56;
|
|
374
|
+
|
|
375
|
+
saa_wbytes(s, b, len);
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
#endif /* WORDS_LITTLEENDIAN */
|
|
379
|
+
|
|
380
|
+
/* write unsigned LEB128 value to SAA */
|
|
381
|
+
void saa_wleb128u(struct SAA *psaa, int value)
|
|
382
|
+
{
|
|
383
|
+
char temp[64], *ptemp;
|
|
384
|
+
uint8_t byte;
|
|
385
|
+
int len;
|
|
386
|
+
|
|
387
|
+
ptemp = temp;
|
|
388
|
+
len = 0;
|
|
389
|
+
do {
|
|
390
|
+
byte = value & 127;
|
|
391
|
+
value >>= 7;
|
|
392
|
+
if (value != 0) /* more bytes to come */
|
|
393
|
+
byte |= 0x80;
|
|
394
|
+
*ptemp = byte;
|
|
395
|
+
ptemp++;
|
|
396
|
+
len++;
|
|
397
|
+
} while (value != 0);
|
|
398
|
+
saa_wbytes(psaa, temp, len);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
/* write signed LEB128 value to SAA */
|
|
402
|
+
void saa_wleb128s(struct SAA *psaa, int value)
|
|
403
|
+
{
|
|
404
|
+
char temp[64], *ptemp;
|
|
405
|
+
uint8_t byte;
|
|
406
|
+
bool more, negative;
|
|
407
|
+
int size, len;
|
|
408
|
+
|
|
409
|
+
ptemp = temp;
|
|
410
|
+
more = 1;
|
|
411
|
+
negative = (value < 0);
|
|
412
|
+
size = sizeof(int) * 8;
|
|
413
|
+
len = 0;
|
|
414
|
+
while (more) {
|
|
415
|
+
byte = value & 0x7f;
|
|
416
|
+
value >>= 7;
|
|
417
|
+
if (negative)
|
|
418
|
+
/* sign extend */
|
|
419
|
+
value |= -(1 << (size - 7));
|
|
420
|
+
/* sign bit of byte is second high order bit (0x40) */
|
|
421
|
+
if ((value == 0 && !(byte & 0x40)) ||
|
|
422
|
+
((value == -1) && (byte & 0x40)))
|
|
423
|
+
more = 0;
|
|
424
|
+
else
|
|
425
|
+
byte |= 0x80;
|
|
426
|
+
*ptemp = byte;
|
|
427
|
+
ptemp++;
|
|
428
|
+
len++;
|
|
429
|
+
}
|
|
430
|
+
saa_wbytes(psaa, temp, len);
|
|
431
|
+
}
|