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.
Files changed (455) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +57 -0
  3. data/LICENSE.txt +29 -0
  4. data/README.org +34 -0
  5. data/ext/laag/nasm/extconf.rb +16 -0
  6. data/laag-nasm.gemspec +20 -0
  7. data/lib/laag/nasm.rb +29 -0
  8. data/patches/Makefile.in.patch +13 -0
  9. data/vendor/repo.or.cz/nasm/.gitignore +102 -0
  10. data/vendor/repo.or.cz/nasm/AUTHORS +137 -0
  11. data/vendor/repo.or.cz/nasm/CHANGES +2 -0
  12. data/vendor/repo.or.cz/nasm/ChangeLog +2905 -0
  13. data/vendor/repo.or.cz/nasm/INSTALL +102 -0
  14. data/vendor/repo.or.cz/nasm/LICENSE +29 -0
  15. data/vendor/repo.or.cz/nasm/Makefile.in +855 -0
  16. data/vendor/repo.or.cz/nasm/Mkfiles/README +46 -0
  17. data/vendor/repo.or.cz/nasm/Mkfiles/msvc.mak +732 -0
  18. data/vendor/repo.or.cz/nasm/Mkfiles/openwcom.mak +706 -0
  19. data/vendor/repo.or.cz/nasm/README +23 -0
  20. data/vendor/repo.or.cz/nasm/SubmittingPatches +116 -0
  21. data/vendor/repo.or.cz/nasm/TODO +376 -0
  22. data/vendor/repo.or.cz/nasm/aclocal.m4 +139 -0
  23. data/vendor/repo.or.cz/nasm/asm/assemble.c +2957 -0
  24. data/vendor/repo.or.cz/nasm/asm/assemble.h +54 -0
  25. data/vendor/repo.or.cz/nasm/asm/directiv.c +566 -0
  26. data/vendor/repo.or.cz/nasm/asm/directiv.dat +92 -0
  27. data/vendor/repo.or.cz/nasm/asm/error.c +202 -0
  28. data/vendor/repo.or.cz/nasm/asm/eval.c +1014 -0
  29. data/vendor/repo.or.cz/nasm/asm/eval.h +49 -0
  30. data/vendor/repo.or.cz/nasm/asm/exprdump.c +79 -0
  31. data/vendor/repo.or.cz/nasm/asm/exprlib.c +200 -0
  32. data/vendor/repo.or.cz/nasm/asm/float.c +952 -0
  33. data/vendor/repo.or.cz/nasm/asm/float.h +54 -0
  34. data/vendor/repo.or.cz/nasm/asm/labels.c +540 -0
  35. data/vendor/repo.or.cz/nasm/asm/listing.c +346 -0
  36. data/vendor/repo.or.cz/nasm/asm/listing.h +113 -0
  37. data/vendor/repo.or.cz/nasm/asm/nasm.c +1855 -0
  38. data/vendor/repo.or.cz/nasm/asm/parser.c +1167 -0
  39. data/vendor/repo.or.cz/nasm/asm/parser.h +45 -0
  40. data/vendor/repo.or.cz/nasm/asm/phash.pl +109 -0
  41. data/vendor/repo.or.cz/nasm/asm/pptok.dat +96 -0
  42. data/vendor/repo.or.cz/nasm/asm/pptok.pl +271 -0
  43. data/vendor/repo.or.cz/nasm/asm/pragma.c +218 -0
  44. data/vendor/repo.or.cz/nasm/asm/preproc-nop.c +188 -0
  45. data/vendor/repo.or.cz/nasm/asm/preproc.c +5459 -0
  46. data/vendor/repo.or.cz/nasm/asm/preproc.h +55 -0
  47. data/vendor/repo.or.cz/nasm/asm/quote.c +479 -0
  48. data/vendor/repo.or.cz/nasm/asm/quote.h +44 -0
  49. data/vendor/repo.or.cz/nasm/asm/rdstrnum.c +68 -0
  50. data/vendor/repo.or.cz/nasm/asm/segalloc.c +51 -0
  51. data/vendor/repo.or.cz/nasm/asm/stdscan.c +345 -0
  52. data/vendor/repo.or.cz/nasm/asm/stdscan.h +49 -0
  53. data/vendor/repo.or.cz/nasm/asm/strfunc.c +359 -0
  54. data/vendor/repo.or.cz/nasm/asm/tokens.dat +135 -0
  55. data/vendor/repo.or.cz/nasm/asm/tokhash.pl +284 -0
  56. data/vendor/repo.or.cz/nasm/autogen.sh +9 -0
  57. data/vendor/repo.or.cz/nasm/common/common.c +122 -0
  58. data/vendor/repo.or.cz/nasm/config/msvc.h +192 -0
  59. data/vendor/repo.or.cz/nasm/config/unknown.h +51 -0
  60. data/vendor/repo.or.cz/nasm/config/watcom.h +74 -0
  61. data/vendor/repo.or.cz/nasm/configure.ac +253 -0
  62. data/vendor/repo.or.cz/nasm/contrib/MSVC6.txt +25 -0
  63. data/vendor/repo.or.cz/nasm/contrib/VSrules/nasm.README +16 -0
  64. data/vendor/repo.or.cz/nasm/contrib/VSrules/nasm.rules +79 -0
  65. data/vendor/repo.or.cz/nasm/disasm/disasm.c +1735 -0
  66. data/vendor/repo.or.cz/nasm/disasm/disasm.h +49 -0
  67. data/vendor/repo.or.cz/nasm/disasm/ndisasm.c +397 -0
  68. data/vendor/repo.or.cz/nasm/disasm/sync.c +132 -0
  69. data/vendor/repo.or.cz/nasm/disasm/sync.h +45 -0
  70. data/vendor/repo.or.cz/nasm/doc/Makefile.in +86 -0
  71. data/vendor/repo.or.cz/nasm/doc/README +20 -0
  72. data/vendor/repo.or.cz/nasm/doc/afmmetrics.ph +102 -0
  73. data/vendor/repo.or.cz/nasm/doc/changes.src +2588 -0
  74. data/vendor/repo.or.cz/nasm/doc/findfont.ph +180 -0
  75. data/vendor/repo.or.cz/nasm/doc/genps.pl +1294 -0
  76. data/vendor/repo.or.cz/nasm/doc/inslist.pl +108 -0
  77. data/vendor/repo.or.cz/nasm/doc/internal.doc +290 -0
  78. data/vendor/repo.or.cz/nasm/doc/local.css +1 -0
  79. data/vendor/repo.or.cz/nasm/doc/nasmdoc.css +150 -0
  80. data/vendor/repo.or.cz/nasm/doc/nasmdoc.src +8309 -0
  81. data/vendor/repo.or.cz/nasm/doc/nasmlogo.eps +212 -0
  82. data/vendor/repo.or.cz/nasm/doc/nasmlogw.png +0 -0
  83. data/vendor/repo.or.cz/nasm/doc/psfonts.ph +53 -0
  84. data/vendor/repo.or.cz/nasm/doc/pspdf.pl +98 -0
  85. data/vendor/repo.or.cz/nasm/doc/pswidth.ph +25 -0
  86. data/vendor/repo.or.cz/nasm/doc/rdsrc.pl +1111 -0
  87. data/vendor/repo.or.cz/nasm/doc/ttfmetrics.ph +63 -0
  88. data/vendor/repo.or.cz/nasm/headers/c +33 -0
  89. data/vendor/repo.or.cz/nasm/headers/doc +33 -0
  90. data/vendor/repo.or.cz/nasm/headers/mac +33 -0
  91. data/vendor/repo.or.cz/nasm/headers/perl +33 -0
  92. data/vendor/repo.or.cz/nasm/include/compiler.h +277 -0
  93. data/vendor/repo.or.cz/nasm/include/disp8.h +45 -0
  94. data/vendor/repo.or.cz/nasm/include/error.h +135 -0
  95. data/vendor/repo.or.cz/nasm/include/hashtbl.h +85 -0
  96. data/vendor/repo.or.cz/nasm/include/iflag.h +173 -0
  97. data/vendor/repo.or.cz/nasm/include/insns.h +76 -0
  98. data/vendor/repo.or.cz/nasm/include/labels.h +60 -0
  99. data/vendor/repo.or.cz/nasm/include/md5.h +21 -0
  100. data/vendor/repo.or.cz/nasm/include/nasm.h +1246 -0
  101. data/vendor/repo.or.cz/nasm/include/nasmint.h +219 -0
  102. data/vendor/repo.or.cz/nasm/include/nasmlib.h +524 -0
  103. data/vendor/repo.or.cz/nasm/include/opflags.h +271 -0
  104. data/vendor/repo.or.cz/nasm/include/perfhash.h +52 -0
  105. data/vendor/repo.or.cz/nasm/include/raa.h +46 -0
  106. data/vendor/repo.or.cz/nasm/include/rbtree.h +51 -0
  107. data/vendor/repo.or.cz/nasm/include/rdoff.h +169 -0
  108. data/vendor/repo.or.cz/nasm/include/saa.h +94 -0
  109. data/vendor/repo.or.cz/nasm/include/strlist.h +55 -0
  110. data/vendor/repo.or.cz/nasm/include/tables.h +70 -0
  111. data/vendor/repo.or.cz/nasm/include/ver.h +47 -0
  112. data/vendor/repo.or.cz/nasm/install-sh +250 -0
  113. data/vendor/repo.or.cz/nasm/macros/altreg.mac +107 -0
  114. data/vendor/repo.or.cz/nasm/macros/fp.mac +54 -0
  115. data/vendor/repo.or.cz/nasm/macros/ifunc.mac +48 -0
  116. data/vendor/repo.or.cz/nasm/macros/macros.pl +294 -0
  117. data/vendor/repo.or.cz/nasm/macros/smartalign.mac +189 -0
  118. data/vendor/repo.or.cz/nasm/macros/standard.mac +226 -0
  119. data/vendor/repo.or.cz/nasm/misc/Doxyfile +752 -0
  120. data/vendor/repo.or.cz/nasm/misc/Nindent +18 -0
  121. data/vendor/repo.or.cz/nasm/misc/README +2 -0
  122. data/vendor/repo.or.cz/nasm/misc/c16.mac +82 -0
  123. data/vendor/repo.or.cz/nasm/misc/c32.mac +52 -0
  124. data/vendor/repo.or.cz/nasm/misc/crcgen.c +44 -0
  125. data/vendor/repo.or.cz/nasm/misc/exebin.mac +57 -0
  126. data/vendor/repo.or.cz/nasm/misc/exebin2.mac +114 -0
  127. data/vendor/repo.or.cz/nasm/misc/fmtinsns.pl +40 -0
  128. data/vendor/repo.or.cz/nasm/misc/genfma.pl +63 -0
  129. data/vendor/repo.or.cz/nasm/misc/hints.txt +26 -0
  130. data/vendor/repo.or.cz/nasm/misc/magic +6 -0
  131. data/vendor/repo.or.cz/nasm/misc/myC32.mac +121 -0
  132. data/vendor/repo.or.cz/nasm/misc/nasm.sl +320 -0
  133. data/vendor/repo.or.cz/nasm/misc/nasmstab +296 -0
  134. data/vendor/repo.or.cz/nasm/misc/omfdump.c +517 -0
  135. data/vendor/repo.or.cz/nasm/misc/pmw.bat +9 -0
  136. data/vendor/repo.or.cz/nasm/misc/proc32.ash +441 -0
  137. data/vendor/repo.or.cz/nasm/misc/scitech.mac +1223 -0
  138. data/vendor/repo.or.cz/nasm/misc/xcrcgen.c +80 -0
  139. data/vendor/repo.or.cz/nasm/nasm.spec.in +83 -0
  140. data/vendor/repo.or.cz/nasm/nasm.spec.sed +3 -0
  141. data/vendor/repo.or.cz/nasm/nasm.txt +306 -0
  142. data/vendor/repo.or.cz/nasm/nasmlib/badenum.c +43 -0
  143. data/vendor/repo.or.cz/nasm/nasmlib/bsi.c +77 -0
  144. data/vendor/repo.or.cz/nasm/nasmlib/crc64.c +189 -0
  145. data/vendor/repo.or.cz/nasm/nasmlib/file.c +259 -0
  146. data/vendor/repo.or.cz/nasm/nasmlib/file.h +128 -0
  147. data/vendor/repo.or.cz/nasm/nasmlib/filename.c +69 -0
  148. data/vendor/repo.or.cz/nasm/nasmlib/hashtbl.c +232 -0
  149. data/vendor/repo.or.cz/nasm/nasmlib/ilog2.c +168 -0
  150. data/vendor/repo.or.cz/nasm/nasmlib/malloc.c +108 -0
  151. data/vendor/repo.or.cz/nasm/nasmlib/md5c.c +247 -0
  152. data/vendor/repo.or.cz/nasm/nasmlib/mmap.c +139 -0
  153. data/vendor/repo.or.cz/nasm/nasmlib/path.c +186 -0
  154. data/vendor/repo.or.cz/nasm/nasmlib/perfhash.c +55 -0
  155. data/vendor/repo.or.cz/nasm/nasmlib/perfhash.pl +362 -0
  156. data/vendor/repo.or.cz/nasm/nasmlib/raa.c +173 -0
  157. data/vendor/repo.or.cz/nasm/nasmlib/rbtree.c +119 -0
  158. data/vendor/repo.or.cz/nasm/nasmlib/readnum.c +172 -0
  159. data/vendor/repo.or.cz/nasm/nasmlib/realpath.c +135 -0
  160. data/vendor/repo.or.cz/nasm/nasmlib/saa.c +431 -0
  161. data/vendor/repo.or.cz/nasm/nasmlib/srcfile.c +128 -0
  162. data/vendor/repo.or.cz/nasm/nasmlib/string.c +242 -0
  163. data/vendor/repo.or.cz/nasm/nasmlib/strlist.c +100 -0
  164. data/vendor/repo.or.cz/nasm/nasmlib/ver.c +51 -0
  165. data/vendor/repo.or.cz/nasm/nasmlib/zerobuf.c +42 -0
  166. data/vendor/repo.or.cz/nasm/ndisasm.txt +94 -0
  167. data/vendor/repo.or.cz/nasm/nsis/NASMMultiUser.nsh +478 -0
  168. data/vendor/repo.or.cz/nasm/nsis/getpearch.pl +76 -0
  169. data/vendor/repo.or.cz/nasm/nsis/nasm-un.ico +0 -0
  170. data/vendor/repo.or.cz/nasm/nsis/nasm.ico +0 -0
  171. data/vendor/repo.or.cz/nasm/nsis/nasm.nsi +241 -0
  172. data/vendor/repo.or.cz/nasm/output/codeview.c +814 -0
  173. data/vendor/repo.or.cz/nasm/output/dwarf.h +566 -0
  174. data/vendor/repo.or.cz/nasm/output/elf.h +537 -0
  175. data/vendor/repo.or.cz/nasm/output/legacy.c +112 -0
  176. data/vendor/repo.or.cz/nasm/output/nulldbg.c +93 -0
  177. data/vendor/repo.or.cz/nasm/output/nullout.c +51 -0
  178. data/vendor/repo.or.cz/nasm/output/outaout.c +954 -0
  179. data/vendor/repo.or.cz/nasm/output/outaout.mac +37 -0
  180. data/vendor/repo.or.cz/nasm/output/outas86.c +650 -0
  181. data/vendor/repo.or.cz/nasm/output/outas86.mac +37 -0
  182. data/vendor/repo.or.cz/nasm/output/outbin.c +1713 -0
  183. data/vendor/repo.or.cz/nasm/output/outbin.mac +40 -0
  184. data/vendor/repo.or.cz/nasm/output/outcoff.c +1242 -0
  185. data/vendor/repo.or.cz/nasm/output/outcoff.mac +43 -0
  186. data/vendor/repo.or.cz/nasm/output/outdbg.c +425 -0
  187. data/vendor/repo.or.cz/nasm/output/outelf.c +3370 -0
  188. data/vendor/repo.or.cz/nasm/output/outelf.h +156 -0
  189. data/vendor/repo.or.cz/nasm/output/outelf.mac +41 -0
  190. data/vendor/repo.or.cz/nasm/output/outform.c +120 -0
  191. data/vendor/repo.or.cz/nasm/output/outform.h +379 -0
  192. data/vendor/repo.or.cz/nasm/output/outieee.c +1528 -0
  193. data/vendor/repo.or.cz/nasm/output/outlib.c +58 -0
  194. data/vendor/repo.or.cz/nasm/output/outlib.h +63 -0
  195. data/vendor/repo.or.cz/nasm/output/outmacho.c +2387 -0
  196. data/vendor/repo.or.cz/nasm/output/outmacho.mac +49 -0
  197. data/vendor/repo.or.cz/nasm/output/outobj.c +2725 -0
  198. data/vendor/repo.or.cz/nasm/output/outobj.mac +49 -0
  199. data/vendor/repo.or.cz/nasm/output/outrdf.mac +40 -0
  200. data/vendor/repo.or.cz/nasm/output/outrdf2.c +791 -0
  201. data/vendor/repo.or.cz/nasm/output/outrdf2.mac +43 -0
  202. data/vendor/repo.or.cz/nasm/output/pecoff.h +532 -0
  203. data/vendor/repo.or.cz/nasm/output/stabs.h +144 -0
  204. data/vendor/repo.or.cz/nasm/perllib/crc64.ph +158 -0
  205. data/vendor/repo.or.cz/nasm/perllib/gensv.pl +34 -0
  206. data/vendor/repo.or.cz/nasm/perllib/phash.ph +200 -0
  207. data/vendor/repo.or.cz/nasm/perllib/random_sv_vectors.ph +67 -0
  208. data/vendor/repo.or.cz/nasm/rdoff/README +185 -0
  209. data/vendor/repo.or.cz/nasm/rdoff/collectn.c +44 -0
  210. data/vendor/repo.or.cz/nasm/rdoff/collectn.h +22 -0
  211. data/vendor/repo.or.cz/nasm/rdoff/doc/Makefile +37 -0
  212. data/vendor/repo.or.cz/nasm/rdoff/doc/rdoff.texi +137 -0
  213. data/vendor/repo.or.cz/nasm/rdoff/doc/v1-v2.txt +62 -0
  214. data/vendor/repo.or.cz/nasm/rdoff/hash.c +122 -0
  215. data/vendor/repo.or.cz/nasm/rdoff/hash.h +17 -0
  216. data/vendor/repo.or.cz/nasm/rdoff/ldrdf.1 +41 -0
  217. data/vendor/repo.or.cz/nasm/rdoff/ldrdf.c +1395 -0
  218. data/vendor/repo.or.cz/nasm/rdoff/ldsegs.h +59 -0
  219. data/vendor/repo.or.cz/nasm/rdoff/rdf2bin.1 +65 -0
  220. data/vendor/repo.or.cz/nasm/rdoff/rdf2bin.c +431 -0
  221. data/vendor/repo.or.cz/nasm/rdoff/rdf2com.1 +1 -0
  222. data/vendor/repo.or.cz/nasm/rdoff/rdf2ihx.1 +1 -0
  223. data/vendor/repo.or.cz/nasm/rdoff/rdf2ith.1 +1 -0
  224. data/vendor/repo.or.cz/nasm/rdoff/rdf2srec.1 +1 -0
  225. data/vendor/repo.or.cz/nasm/rdoff/rdfdump.1 +24 -0
  226. data/vendor/repo.or.cz/nasm/rdoff/rdfdump.c +347 -0
  227. data/vendor/repo.or.cz/nasm/rdoff/rdflib.1 +39 -0
  228. data/vendor/repo.or.cz/nasm/rdoff/rdflib.c +434 -0
  229. data/vendor/repo.or.cz/nasm/rdoff/rdfload.c +213 -0
  230. data/vendor/repo.or.cz/nasm/rdoff/rdfload.h +29 -0
  231. data/vendor/repo.or.cz/nasm/rdoff/rdfutils.h +165 -0
  232. data/vendor/repo.or.cz/nasm/rdoff/rdlar.c +492 -0
  233. data/vendor/repo.or.cz/nasm/rdoff/rdlar.h +34 -0
  234. data/vendor/repo.or.cz/nasm/rdoff/rdlib.c +290 -0
  235. data/vendor/repo.or.cz/nasm/rdoff/rdlib.h +62 -0
  236. data/vendor/repo.or.cz/nasm/rdoff/rdoff.c +621 -0
  237. data/vendor/repo.or.cz/nasm/rdoff/rdx.1 +21 -0
  238. data/vendor/repo.or.cz/nasm/rdoff/rdx.c +90 -0
  239. data/vendor/repo.or.cz/nasm/rdoff/segtab.c +172 -0
  240. data/vendor/repo.or.cz/nasm/rdoff/segtab.h +45 -0
  241. data/vendor/repo.or.cz/nasm/rdoff/symtab.c +159 -0
  242. data/vendor/repo.or.cz/nasm/rdoff/symtab.h +55 -0
  243. data/vendor/repo.or.cz/nasm/rdoff/test/Makefile +10 -0
  244. data/vendor/repo.or.cz/nasm/rdoff/test/makelib.sh +14 -0
  245. data/vendor/repo.or.cz/nasm/rdoff/test/rdfseg.asm +20 -0
  246. data/vendor/repo.or.cz/nasm/rdoff/test/rdfseg2.asm +12 -0
  247. data/vendor/repo.or.cz/nasm/rdoff/test/rdftest1.asm +54 -0
  248. data/vendor/repo.or.cz/nasm/rdoff/test/rdftest2.asm +33 -0
  249. data/vendor/repo.or.cz/nasm/rdoff/test/rdtlib.asm +48 -0
  250. data/vendor/repo.or.cz/nasm/rdoff/test/rdtmain.asm +47 -0
  251. data/vendor/repo.or.cz/nasm/rdoff/test/testlib.asm +18 -0
  252. data/vendor/repo.or.cz/nasm/stdlib/snprintf.c +29 -0
  253. data/vendor/repo.or.cz/nasm/stdlib/strlcpy.c +51 -0
  254. data/vendor/repo.or.cz/nasm/stdlib/strnlen.c +46 -0
  255. data/vendor/repo.or.cz/nasm/stdlib/vsnprintf.c +51 -0
  256. data/vendor/repo.or.cz/nasm/test/Makefile +106 -0
  257. data/vendor/repo.or.cz/nasm/test/_file_.asm +5 -0
  258. data/vendor/repo.or.cz/nasm/test/_version.asm +2 -0
  259. data/vendor/repo.or.cz/nasm/test/a32offs.asm +9 -0
  260. data/vendor/repo.or.cz/nasm/test/absolute.asm +40 -0
  261. data/vendor/repo.or.cz/nasm/test/addr64x.asm +18 -0
  262. data/vendor/repo.or.cz/nasm/test/align13.asm +19 -0
  263. data/vendor/repo.or.cz/nasm/test/align13s.asm +20 -0
  264. data/vendor/repo.or.cz/nasm/test/alonesym-obj.asm +166 -0
  265. data/vendor/repo.or.cz/nasm/test/andbyte.asm +15 -0
  266. data/vendor/repo.or.cz/nasm/test/aoutso.asm +99 -0
  267. data/vendor/repo.or.cz/nasm/test/aouttest.asm +86 -0
  268. data/vendor/repo.or.cz/nasm/test/aouttest.c +36 -0
  269. data/vendor/repo.or.cz/nasm/test/avx.asm +46 -0
  270. data/vendor/repo.or.cz/nasm/test/avx005.asm +529 -0
  271. data/vendor/repo.or.cz/nasm/test/avx2.asm +1608 -0
  272. data/vendor/repo.or.cz/nasm/test/avx512cd.asm +106 -0
  273. data/vendor/repo.or.cz/nasm/test/avx512er.asm +144 -0
  274. data/vendor/repo.or.cz/nasm/test/avx512f.asm +7000 -0
  275. data/vendor/repo.or.cz/nasm/test/avx512pf.asm +88 -0
  276. data/vendor/repo.or.cz/nasm/test/bcd.asm +23 -0
  277. data/vendor/repo.or.cz/nasm/test/binexe.asm +35 -0
  278. data/vendor/repo.or.cz/nasm/test/bintest.asm +59 -0
  279. data/vendor/repo.or.cz/nasm/test/bisect.sh +22 -0
  280. data/vendor/repo.or.cz/nasm/test/br1879590.asm +25 -0
  281. data/vendor/repo.or.cz/nasm/test/br2003451.asm +17 -0
  282. data/vendor/repo.or.cz/nasm/test/br2030823.asm +7 -0
  283. data/vendor/repo.or.cz/nasm/test/br2148476.asm +221 -0
  284. data/vendor/repo.or.cz/nasm/test/br2222615.asm +19 -0
  285. data/vendor/repo.or.cz/nasm/test/br2496848.asm +42 -0
  286. data/vendor/repo.or.cz/nasm/test/br3005117.asm +26 -0
  287. data/vendor/repo.or.cz/nasm/test/br3026808.asm +20 -0
  288. data/vendor/repo.or.cz/nasm/test/br3028880.asm +8 -0
  289. data/vendor/repo.or.cz/nasm/test/br3041451.asm +59 -0
  290. data/vendor/repo.or.cz/nasm/test/br3058845.asm +14 -0
  291. data/vendor/repo.or.cz/nasm/test/br3066383.asm +70 -0
  292. data/vendor/repo.or.cz/nasm/test/br3074517.asm +12 -0
  293. data/vendor/repo.or.cz/nasm/test/br3092924.asm +25 -0
  294. data/vendor/repo.or.cz/nasm/test/br3104312.asm +11 -0
  295. data/vendor/repo.or.cz/nasm/test/br3109604.asm +9 -0
  296. data/vendor/repo.or.cz/nasm/test/br3174983.asm +9 -0
  297. data/vendor/repo.or.cz/nasm/test/br3187743.asm +7 -0
  298. data/vendor/repo.or.cz/nasm/test/br3189064.asm +7 -0
  299. data/vendor/repo.or.cz/nasm/test/br3200749.asm +9 -0
  300. data/vendor/repo.or.cz/nasm/test/br3385573.asm +11 -0
  301. data/vendor/repo.or.cz/nasm/test/br3392252.asm +43 -0
  302. data/vendor/repo.or.cz/nasm/test/br3392259.asm +8 -0
  303. data/vendor/repo.or.cz/nasm/test/br3392363.asm +4 -0
  304. data/vendor/repo.or.cz/nasm/test/br3392392.asm +16 -0
  305. data/vendor/repo.or.cz/nasm/test/br3392396.asm +5 -0
  306. data/vendor/repo.or.cz/nasm/test/br3392411.asm +22 -0
  307. data/vendor/repo.or.cz/nasm/test/br3392418.asm +3 -0
  308. data/vendor/repo.or.cz/nasm/test/br3392439.asm +25 -0
  309. data/vendor/repo.or.cz/nasm/test/br3392442.asm +6 -0
  310. data/vendor/repo.or.cz/nasm/test/br560575.asm +17 -0
  311. data/vendor/repo.or.cz/nasm/test/br560873.asm +27 -0
  312. data/vendor/repo.or.cz/nasm/test/br890790.asm +7 -0
  313. data/vendor/repo.or.cz/nasm/test/br890790_i.asm +1 -0
  314. data/vendor/repo.or.cz/nasm/test/br978756.asm +7 -0
  315. data/vendor/repo.or.cz/nasm/test/changed.asm +383 -0
  316. data/vendor/repo.or.cz/nasm/test/cofftest.asm +85 -0
  317. data/vendor/repo.or.cz/nasm/test/cofftest.c +35 -0
  318. data/vendor/repo.or.cz/nasm/test/crc32.asm +37 -0
  319. data/vendor/repo.or.cz/nasm/test/cv8struc.asm +14 -0
  320. data/vendor/repo.or.cz/nasm/test/dtbcd.asm +72 -0
  321. data/vendor/repo.or.cz/nasm/test/elf64so.asm +118 -0
  322. data/vendor/repo.or.cz/nasm/test/elfso.asm +100 -0
  323. data/vendor/repo.or.cz/nasm/test/elftest.asm +87 -0
  324. data/vendor/repo.or.cz/nasm/test/elftest.c +38 -0
  325. data/vendor/repo.or.cz/nasm/test/elftest64.c +43 -0
  326. data/vendor/repo.or.cz/nasm/test/elif.asm +39 -0
  327. data/vendor/repo.or.cz/nasm/test/expimp.asm +90 -0
  328. data/vendor/repo.or.cz/nasm/test/far64.asm +10 -0
  329. data/vendor/repo.or.cz/nasm/test/float.asm +186 -0
  330. data/vendor/repo.or.cz/nasm/test/float8.asm +135 -0
  331. data/vendor/repo.or.cz/nasm/test/floatb.asm +35 -0
  332. data/vendor/repo.or.cz/nasm/test/floatexp.asm +382 -0
  333. data/vendor/repo.or.cz/nasm/test/floatize.asm +19 -0
  334. data/vendor/repo.or.cz/nasm/test/floattest.asm +28 -0
  335. data/vendor/repo.or.cz/nasm/test/floatx.asm +525 -0
  336. data/vendor/repo.or.cz/nasm/test/fpu.asm +127 -0
  337. data/vendor/repo.or.cz/nasm/test/fwdopt.asm +133 -0
  338. data/vendor/repo.or.cz/nasm/test/fwdoptpp.asm +150 -0
  339. data/vendor/repo.or.cz/nasm/test/gas2nasm.py +104 -0
  340. data/vendor/repo.or.cz/nasm/test/gather.asm +11 -0
  341. data/vendor/repo.or.cz/nasm/test/gotoff64.asm +25 -0
  342. data/vendor/repo.or.cz/nasm/test/hexfp.asm +25 -0
  343. data/vendor/repo.or.cz/nasm/test/hle.asm +19 -0
  344. data/vendor/repo.or.cz/nasm/test/ifelse.asm +46 -0
  345. data/vendor/repo.or.cz/nasm/test/ifenv.asm +31 -0
  346. data/vendor/repo.or.cz/nasm/test/ifmacro.asm +413 -0
  347. data/vendor/repo.or.cz/nasm/test/iftoken.asm +317 -0
  348. data/vendor/repo.or.cz/nasm/test/iftoken.pl +32 -0
  349. data/vendor/repo.or.cz/nasm/test/ilog2.asm +271 -0
  350. data/vendor/repo.or.cz/nasm/test/imacro.asm +8 -0
  351. data/vendor/repo.or.cz/nasm/test/imm.asm +23 -0
  352. data/vendor/repo.or.cz/nasm/test/imm64.asm +61 -0
  353. data/vendor/repo.or.cz/nasm/test/immwarn.asm +91 -0
  354. data/vendor/repo.or.cz/nasm/test/imul.asm +117 -0
  355. data/vendor/repo.or.cz/nasm/test/inc1.asm +6 -0
  356. data/vendor/repo.or.cz/nasm/test/inc2.asm +8 -0
  357. data/vendor/repo.or.cz/nasm/test/incbin.asm +7 -0
  358. data/vendor/repo.or.cz/nasm/test/incbin.data +2 -0
  359. data/vendor/repo.or.cz/nasm/test/inctest.asm +15 -0
  360. data/vendor/repo.or.cz/nasm/test/insnlbl.asm +12 -0
  361. data/vendor/repo.or.cz/nasm/test/invlpga.asm +11 -0
  362. data/vendor/repo.or.cz/nasm/test/jmp64.asm +19 -0
  363. data/vendor/repo.or.cz/nasm/test/lar_lsl.asm +124 -0
  364. data/vendor/repo.or.cz/nasm/test/larlsl.asm +23 -0
  365. data/vendor/repo.or.cz/nasm/test/lnxhello.asm +54 -0
  366. data/vendor/repo.or.cz/nasm/test/local.asm +19 -0
  367. data/vendor/repo.or.cz/nasm/test/loopoffs.asm +12 -0
  368. data/vendor/repo.or.cz/nasm/test/lwp.asm +213 -0
  369. data/vendor/repo.or.cz/nasm/test/macro-defaults.asm +64 -0
  370. data/vendor/repo.or.cz/nasm/test/macroerr.asm +12 -0
  371. data/vendor/repo.or.cz/nasm/test/macroerr.inc +3 -0
  372. data/vendor/repo.or.cz/nasm/test/mmxsize.asm +38 -0
  373. data/vendor/repo.or.cz/nasm/test/movd.asm +12 -0
  374. data/vendor/repo.or.cz/nasm/test/movd64.asm +15 -0
  375. data/vendor/repo.or.cz/nasm/test/movimm.asm +28 -0
  376. data/vendor/repo.or.cz/nasm/test/movnti.asm +10 -0
  377. data/vendor/repo.or.cz/nasm/test/mpx-64.asm +120 -0
  378. data/vendor/repo.or.cz/nasm/test/mpx.asm +89 -0
  379. data/vendor/repo.or.cz/nasm/test/multisection.asm +96 -0
  380. data/vendor/repo.or.cz/nasm/test/nasmformat.asm +17 -0
  381. data/vendor/repo.or.cz/nasm/test/new +9 -0
  382. data/vendor/repo.or.cz/nasm/test/newrdwr.asm +24 -0
  383. data/vendor/repo.or.cz/nasm/test/nop.asm +17 -0
  384. data/vendor/repo.or.cz/nasm/test/nullfile.asm +4 -0
  385. data/vendor/repo.or.cz/nasm/test/objexe.asm +30 -0
  386. data/vendor/repo.or.cz/nasm/test/objlink.c +33 -0
  387. data/vendor/repo.or.cz/nasm/test/objtest.asm +85 -0
  388. data/vendor/repo.or.cz/nasm/test/optimization.asm +104 -0
  389. data/vendor/repo.or.cz/nasm/test/org.asm +18 -0
  390. data/vendor/repo.or.cz/nasm/test/paste.asm +12 -0
  391. data/vendor/repo.or.cz/nasm/test/pcrel.asm +52 -0
  392. data/vendor/repo.or.cz/nasm/test/perf/label.pl +18 -0
  393. data/vendor/repo.or.cz/nasm/test/perf/macro.pl +18 -0
  394. data/vendor/repo.or.cz/nasm/test/perf/token.pl +23 -0
  395. data/vendor/repo.or.cz/nasm/test/performtest.pl +192 -0
  396. data/vendor/repo.or.cz/nasm/test/pextrw.asm +3 -0
  397. data/vendor/repo.or.cz/nasm/test/pinsr16.asm +53 -0
  398. data/vendor/repo.or.cz/nasm/test/pinsr32.asm +53 -0
  399. data/vendor/repo.or.cz/nasm/test/pinsr64.asm +68 -0
  400. data/vendor/repo.or.cz/nasm/test/popcnt.asm +32 -0
  401. data/vendor/repo.or.cz/nasm/test/ppindirect.asm +42 -0
  402. data/vendor/repo.or.cz/nasm/test/pragma.asm +12 -0
  403. data/vendor/repo.or.cz/nasm/test/prefix66.asm +28 -0
  404. data/vendor/repo.or.cz/nasm/test/ptr.asm +4 -0
  405. data/vendor/repo.or.cz/nasm/test/pushseg.asm +17 -0
  406. data/vendor/repo.or.cz/nasm/test/r13.asm +15 -0
  407. data/vendor/repo.or.cz/nasm/test/radix.asm +54 -0
  408. data/vendor/repo.or.cz/nasm/test/rdpid.asm +21 -0
  409. data/vendor/repo.or.cz/nasm/test/reldef.asm +57 -0
  410. data/vendor/repo.or.cz/nasm/test/relocs.asm +20 -0
  411. data/vendor/repo.or.cz/nasm/test/riprel.asm +5357 -0
  412. data/vendor/repo.or.cz/nasm/test/riprel.pl +29 -0
  413. data/vendor/repo.or.cz/nasm/test/riprel2.asm +11 -0
  414. data/vendor/repo.or.cz/nasm/test/sha-64.asm +30 -0
  415. data/vendor/repo.or.cz/nasm/test/sha.asm +31 -0
  416. data/vendor/repo.or.cz/nasm/test/smartalign16.asm +36 -0
  417. data/vendor/repo.or.cz/nasm/test/smartalign32.asm +36 -0
  418. data/vendor/repo.or.cz/nasm/test/smartalign64.asm +36 -0
  419. data/vendor/repo.or.cz/nasm/test/splitea.asm +11 -0
  420. data/vendor/repo.or.cz/nasm/test/sreg.asm +65 -0
  421. data/vendor/repo.or.cz/nasm/test/strlen.asm +5 -0
  422. data/vendor/repo.or.cz/nasm/test/struc.asm +33 -0
  423. data/vendor/repo.or.cz/nasm/test/test67.asm +38 -0
  424. data/vendor/repo.or.cz/nasm/test/testdos.asm +13 -0
  425. data/vendor/repo.or.cz/nasm/test/testnos3.asm +973 -0
  426. data/vendor/repo.or.cz/nasm/test/time.asm +11 -0
  427. data/vendor/repo.or.cz/nasm/test/times.asm +21 -0
  428. data/vendor/repo.or.cz/nasm/test/timesneg.asm +3 -0
  429. data/vendor/repo.or.cz/nasm/test/tmap.nas +1447 -0
  430. data/vendor/repo.or.cz/nasm/test/uscore.asm +15 -0
  431. data/vendor/repo.or.cz/nasm/test/utf.asm +82 -0
  432. data/vendor/repo.or.cz/nasm/test/vaesenc.asm +22 -0
  433. data/vendor/repo.or.cz/nasm/test/vex.asm +9 -0
  434. data/vendor/repo.or.cz/nasm/test/vgather.asm +76 -0
  435. data/vendor/repo.or.cz/nasm/test/vmread.asm +26 -0
  436. data/vendor/repo.or.cz/nasm/test/weirdpaste.asm +29 -0
  437. data/vendor/repo.or.cz/nasm/test/xchg.asm +96 -0
  438. data/vendor/repo.or.cz/nasm/test/xcrypt.asm +24 -0
  439. data/vendor/repo.or.cz/nasm/test/xmm0.asm +12 -0
  440. data/vendor/repo.or.cz/nasm/test/zerobyte.asm +22 -0
  441. data/vendor/repo.or.cz/nasm/tools/cleanfile +176 -0
  442. data/vendor/repo.or.cz/nasm/tools/cleanpatch +258 -0
  443. data/vendor/repo.or.cz/nasm/tools/mkdep.pl +261 -0
  444. data/vendor/repo.or.cz/nasm/tools/release +105 -0
  445. data/vendor/repo.or.cz/nasm/tools/syncfiles.pl +137 -0
  446. data/vendor/repo.or.cz/nasm/tools/tag-release +58 -0
  447. data/vendor/repo.or.cz/nasm/version +1 -0
  448. data/vendor/repo.or.cz/nasm/version.pl +189 -0
  449. data/vendor/repo.or.cz/nasm/x86/disp8.c +131 -0
  450. data/vendor/repo.or.cz/nasm/x86/insns-iflags.ph +280 -0
  451. data/vendor/repo.or.cz/nasm/x86/insns.dat +5371 -0
  452. data/vendor/repo.or.cz/nasm/x86/insns.pl +1043 -0
  453. data/vendor/repo.or.cz/nasm/x86/regs.dat +138 -0
  454. data/vendor/repo.or.cz/nasm/x86/regs.pl +204 -0
  455. metadata +520 -0
@@ -0,0 +1,16 @@
1
+ bits 64
2
+ vpaddd zmm0, zmm0, [rax]{1to16}
3
+ vpaddd zmm2{k3}, zmm0, zmm1
4
+ vpaddd zmm2 {k3}, zmm0, zmm1
5
+ vpaddd zmm0{k1}, zmm0, [rax]{1to16}
6
+ vmovdqa32 [rsi]{k1}, zmm1
7
+ vmovdqa32 [rsi]{z}, zmm1
8
+ vmovdqa32 [rsi]{k1}{z}, zmm1
9
+ vmovdqa32 [rsi]{z}{k1}, zmm1
10
+ %ifdef ERROR
11
+ vmovdqa32 [rsi]{z}{1to16}, zmm1
12
+ vmovdqa32 [rsi]{z}{k1}{1to16}, zmm1
13
+ vpaddd zmm0, zmm0, [rax]{k1}
14
+ vpaddd zmm0, zmm1, zmm2{1to16}
15
+ %endif
16
+
@@ -0,0 +1,5 @@
1
+ bits 64
2
+ vmovdqa32 [rdi],zmm16
3
+ vmovdqa32 [rdi+64],zmm17
4
+ vmovdqa32 [rdi+128],zmm18
5
+ vmovdqa32 [rdi+192],zmm19
@@ -0,0 +1,22 @@
1
+ bits 64
2
+ default rel
3
+
4
+ %use smartalign
5
+
6
+ section .text code align=32
7
+
8
+ align 32
9
+
10
+ nop
11
+ jz LDone
12
+
13
+ %rep 10
14
+ nop
15
+ %endrep
16
+
17
+ align 16
18
+ %rep 115
19
+ nop
20
+ %endrep
21
+
22
+ LDone:
@@ -0,0 +1,3 @@
1
+ section __LD,__compact_unwind data debug
2
+
3
+ dd 0
@@ -0,0 +1,25 @@
1
+ segment _TEXT class=CODE USE32 align=1 CPU=686
2
+
3
+ extern _entry
4
+
5
+ start:
6
+ mov ax, 0x18
7
+ mov ds, ax
8
+ mov es, ax
9
+ mov ss, ax
10
+ xor eax, eax
11
+ mov ax, 0x1234
12
+ shl eax, 4
13
+ add eax, 0x3000
14
+ mov esp, [eax]
15
+
16
+ call _entry
17
+
18
+ .infloop:
19
+ hlt
20
+ jmp .infloop
21
+
22
+
23
+ global _ret_16
24
+ _ret_16:
25
+ jmp dword 0x10:0x8000
@@ -0,0 +1,6 @@
1
+ ;; Bug report 3392442: invalid warning
2
+
3
+ and byte [0], ~80h
4
+ and byte [0], 0xfff
5
+ and byte [0], -256
6
+ and byte [0], -257
@@ -0,0 +1,17 @@
1
+ ;Testname=aout; Arguments=-faout -obr560575.o; Files=stderr stdout br560575.o
2
+ ;Testname=aoutb; Arguments=-faoutb -obr560575.o; Files=stderr stdout br560575.o
3
+ ;Testname=coff; Arguments=-fcoff -obr560575.o; Files=stderr stdout br560575.o
4
+ ;Testname=elf32; Arguments=-felf32 -obr560575.o; Files=stderr stdout br560575.o
5
+ ;Testname=elf64; Arguments=-felf64 -obr560575.o; Files=stderr stdout br560575.o
6
+ ;Testname=as86; Arguments=-fas86 -obr560575.o; Files=stderr stdout br560575.o
7
+ ;Testname=win32; Arguments=-fwin32 -obr560575.o; Files=stderr stdout br560575.o
8
+ ;Testname=win64; Arguments=-fwin64 -obr560575.o; Files=stderr stdout br560575.o
9
+ ;Testname=rdf; Arguments=-frdf -obr560575.o; Files=stderr stdout br560575.o
10
+ ;Testname=ieee; Arguments=-fieee -obr560575.o; Files=stderr stdout br560575.o
11
+ ;Testname=macho; Arguments=-fmacho -obr560575.o; Files=stderr stdout br560575.o
12
+
13
+ ;Test for bug report 560575 - Using SEG with non-relocatable values doesn't work
14
+ ;
15
+ dw seg ~1
16
+ dw seg "a"
17
+ dw seg 'a'
@@ -0,0 +1,27 @@
1
+ ;Testname=unoptimized; Arguments=-O0 -frdf -obr560873.rdf; Files=stdout stderr br560873.rdf
2
+ ;Testname=optimized; Arguments=-Ox -frdf -obr560873.rdf; Files=stdout stderr br560873.rdf
3
+
4
+ label:
5
+ bits 16
6
+ call far dword label
7
+ mov [label],ax
8
+ mov [label],eax
9
+ mov [word label],ax
10
+ mov [word label],eax
11
+ mov [dword label],ax
12
+ mov [dword label],eax
13
+ push 3700
14
+ push word 3700
15
+ push dword 3700
16
+
17
+ bits 32
18
+ call far word label
19
+ mov [label],ax
20
+ mov [label],eax
21
+ mov [word label],ax
22
+ mov [word label],eax
23
+ mov [dword label],ax
24
+ mov [dword label],eax
25
+ push 3700
26
+ push word 3700
27
+ push dword 3700
@@ -0,0 +1,7 @@
1
+ ;Testname=test; Arguments=-fbin -obr890790.bin; Files=stdout stderr br890790.bin
2
+ %rep 5
3
+ db 0
4
+ %include "br890790_i.asm"
5
+ %endrep
6
+
7
+ db 1
@@ -0,0 +1,7 @@
1
+ ;Testname=br978756; Arguments=-Ox -felf64 -obr978756.o; Files=stdout stderr br978756.o
2
+ [bits 64]
3
+ MOVNTDQA xmm1, oword [rsi]
4
+ MOVLPD xmm2, qword [rdi]
5
+ MOVLPD xmm2, [rdi]
6
+ MOVLPD qword [rdi], xmm2
7
+ MOVLPD [rdi], xmm2
@@ -0,0 +1,383 @@
1
+ ;This file demonstrates many of the differences between NASM version X and NASM
2
+ ;version 0.97
3
+ ;
4
+ ; changed.asm is copyright (C) 1998 John S. Fine
5
+ ;
6
+ ; It may be redistributed under the same conditions as NASM as described in
7
+ ; LICENSE file in the NASM archive
8
+ ;_________________________________
9
+ ;
10
+ ; nasm changed.asm -l changed.lst
11
+ ;
12
+ ; When assembled without any -d switches, it includes examples which:
13
+ ; Work correctly in version X
14
+ ; and Work incorrectly and/or display warnings in version 0.97
15
+ ; and Do not prevent the generation of output in version 0.97
16
+ ;
17
+ ; Not all the differences can be seen in the .lst file. I suggest that you use
18
+ ; "ndisasm changes" to examine the code actually generated.
19
+ ;_________________________________
20
+ ;
21
+ ; nasm changed.asm -l changed.lst -doldmsg
22
+ ;
23
+ ; When assembled with -doldmsg, it adds examples which:
24
+ ; Work correctly in version X
25
+ ; and Generate error messages in version 0.97 and do not generate output
26
+ ;_________________________________
27
+ ;
28
+ ; nasm changed.asm -l changed.lst -doldcrash
29
+ ;
30
+ ; When assembled with -doldcrash, it adds examples which:
31
+ ; Work correctly in version X
32
+ ; and Cause NASM to crash in version 0.97
33
+ ;_________________________________
34
+ ;
35
+ ; nasm changed.asm -l changed.lst -dnewmsg
36
+ ;
37
+ ; When assembled with -dnewmsg, it adds examples which:
38
+ ; Generate error messages in version X
39
+ ; and Generate wrong output without warning or error message in version 0.97
40
+ ;-----------------------------------------------------------------------------
41
+
42
+ ; Please note that I have reported the name of the person who made the
43
+ ; correction based on very limited information. In several cases, I am sure I
44
+ ; will identify the wrong author. Please send me any corrections; I don't
45
+ ; intend to insult or exclude anyone.
46
+
47
+ ;-----------------------------------------------------------------------------
48
+ ; Bug fixed by Simon in assemble()
49
+ ;
50
+ ; The following generated "call next" / "call next-1" instead of
51
+ ; two copies of "call next"
52
+ ;
53
+ times 2 a16 call next
54
+ next:
55
+
56
+ ;-----------------------------------------------------------------------------
57
+ ; Bug fixed by John in parse_line() (and other routines)
58
+ ;
59
+ ; This used to jmp to prior.1, when it should be here.1
60
+ ;
61
+ prior:
62
+ .1:
63
+ here: jmp .1
64
+ .1:
65
+
66
+ ;-----------------------------------------------------------------------------
67
+ ; Bug fixed by John in assemble()
68
+ ;
69
+ ; Strings used in dq and dt were not zero filled correctly
70
+ ;
71
+ dq 'b'
72
+
73
+
74
+ ;-----------------------------------------------------------------------------
75
+ ; Bug fixed by Simon in isn_names[]
76
+ ;
77
+ ; Was not recognised as an instruction
78
+ ;
79
+ int01 ; Instead of INT1
80
+
81
+ ;-----------------------------------------------------------------------------
82
+ ; Bug fixed by Jim Hague in ???
83
+ ;
84
+ ; Forward references were instruction level rather than per operand
85
+ ;
86
+ shr word [forwardref],1
87
+ forwardref:
88
+
89
+ ;-----------------------------------------------------------------------------
90
+ ; Bug fixed by John in preproc.c
91
+ ;
92
+ ; It used to silently discard id characters appended to a multi-line
93
+ ; macro parameter (such as the x in %1x below).
94
+ ;
95
+ %macro xxx 1
96
+ %1: nop
97
+ %{1}x: jmp %1x
98
+ %endmacro
99
+ xxx yyy
100
+
101
+ ;-----------------------------------------------------------------------------
102
+ ; Bug added by John in preproc.c 0.98-J4, removed by John in 0.98-J5
103
+ ;
104
+ ; Tested here to make sure it stays removed
105
+ ;
106
+ %macro TestElse 1
107
+ %if %1=0
108
+ %elif %1=1
109
+ nop
110
+ %endif
111
+ %endmacro
112
+ TestElse 1
113
+
114
+ %ifdef oldmsg
115
+ ;***************************************************************
116
+ ;
117
+ ; The following examples will generate error messages in 0.97 and will generate
118
+ ; correct output in the new version.
119
+
120
+ ;-----------------------------------------------------------------------------
121
+ ; Bug fixed by Simon in isns.dat
122
+ ;
123
+ ; The optional "near" was not permitted on JMP and CALL
124
+ ;
125
+ jmp near here
126
+
127
+ ;-----------------------------------------------------------------------------
128
+ ; Feature added by Simon in stdscan()
129
+ ;
130
+ ; You can now use the numeric value of strings in %assign
131
+ ;
132
+ %assign xxx 'ABCD'
133
+ dd xxx
134
+
135
+ ;-----------------------------------------------------------------------------
136
+ ; Feature added by John in add_vectors()
137
+ ;
138
+ ; Stranger address expressions are now supported as long as they resolve to
139
+ ; something valid.
140
+ ;
141
+ mov ax, [eax + ebx + ecx - eax]
142
+
143
+ ;-----------------------------------------------------------------------------
144
+ ; Bug fixed by Simon in ???
145
+ ;
146
+ ; The EQU directive affected local labels in a way that was inconsistent
147
+ ; between passes
148
+ ;
149
+ .local:
150
+ neither equ $
151
+ jmp .local
152
+
153
+ ;-----------------------------------------------------------------------------
154
+ ; Feature added by Jules in parse_line
155
+ ;
156
+ ; You can override a size specifier
157
+ ;
158
+ %define arg1 dword [bp+4]
159
+ cmp word arg1, 2
160
+
161
+ ;-----------------------------------------------------------------------------
162
+ ; Bug fixed by John in preproc.c
163
+ ;
164
+ ; You could not use a label on the same line with a macro invocation, if the
165
+ ; macro definition began with a preprocessor directive.
166
+ ;
167
+ struc mytype
168
+ .long resd 1
169
+ endstruc
170
+
171
+ lbl istruc mytype
172
+ at mytype.long, dd 'ABCD'
173
+ iend
174
+
175
+ ;-----------------------------------------------------------------------------
176
+ ; Warning removed by John in preproc.c
177
+ ;
178
+ ; In order to allow macros that extend the definition of instructions, I
179
+ ; disabled the warning on a multi-line macro referencing itself.
180
+ ;
181
+ %endif ;NASM 0.97 doesn't handle %0 etc. inside false %if
182
+ %macro push 1-* ;
183
+ %rep %0 ;
184
+ push %1 ;
185
+ %rotate 1 ;
186
+ %endrep ;
187
+ %endmacro ;
188
+ %ifdef oldmsg ;
189
+
190
+ push ax,bx
191
+
192
+ ;-----------------------------------------------------------------------------
193
+ ; Warning removed by John in preproc.c
194
+ ;
195
+ ; To support other types of macros that extend the definition of instructions,
196
+ ; I disabled the warning on a multi-line macro called with the wrong number of
197
+ ; parameters. PUSH and POP can be extended equally well by either method, but
198
+ ; other intruction extensions may need one method or the other, so I made both
199
+ ; work.
200
+ ;
201
+ ; Note that neither of these warnings was really needed, because a later stage
202
+ ; of NASM would almost always give an adequate error message if the macro use
203
+ ; really was wrong.
204
+ ;
205
+ %endif
206
+ %macro pop 2-*
207
+ %rep %0
208
+ pop %1
209
+ %rotate 1
210
+ %endrep
211
+ %endmacro
212
+ %ifdef oldmsg
213
+
214
+ pop ax,bx
215
+ %endif
216
+
217
+
218
+ %ifdef newmsg ;***************************************************************
219
+
220
+ ;-----------------------------------------------------------------------------
221
+ ; Bug fixed by John in parse_line() (and other routines)
222
+ ;
223
+ ; This invalid code used to assemble without errors
224
+ ;
225
+ myself equ myself+1
226
+ jmp myself
227
+
228
+ ;-----------------------------------------------------------------------------
229
+ ; Change made by John in preproc.c
230
+ ;
231
+ ; In 0.97, an id that appears as a label on a macro invocation was always
232
+ ; prepended to the first line of the macro expansion. That caused several
233
+ ; bugs, but also could be used in tricks like the arg macro in c16.mac and
234
+ ; c32.mac.
235
+ ;
236
+ ; In version X, an id that appears as a label on a macro invocation will
237
+ ; normally be defined as a label for the address at which the macro is
238
+ ; invoked, regardless of whether the first line of the macro expansion is
239
+ ; something that can take a label. The new token %00 may be used for any
240
+ ; of the situations in which the old prepend behavior was doing something
241
+ ; tricky but useful. %00 can also be used more than once and in places
242
+ ; other than the start of the expansion.
243
+ ;
244
+ %endif
245
+ %assign arg_off 0
246
+
247
+ %imacro arg 0-1 2 ;arg defined the old way
248
+ equ arg_off
249
+ %assign arg_off %1+arg_off
250
+ %endmacro
251
+
252
+ %ifdef newmsg
253
+ arg_example arg
254
+ %endif
255
+
256
+ %imacro arg2 0-1 2 ;arg defined the new way
257
+ %00 equ arg_off
258
+ %assign arg_off %1+arg_off
259
+ %endmacro
260
+
261
+ %ifdef oldmsg
262
+ arg_example2 arg2
263
+
264
+ ;-----------------------------------------------------------------------------
265
+ ; Change made by Jules and John in INSNS.DAT
266
+ ;
267
+ ; Various instruction in which the size of an immediate is built-in to the
268
+ ; instruction set, now allow you to redundantly specify that size as long
269
+ ; as you specify it correctly
270
+ ;
271
+ AAD byte 5
272
+ AAM byte 5
273
+ BT bx, byte 3
274
+ BTC cx, byte 4
275
+ BTR dx, byte 5
276
+ BTS si, byte 6
277
+ IN eax, byte 0x40
278
+ INT byte 21h
279
+ OUT byte 70h, ax
280
+ RET word 2
281
+ RETN word 2
282
+ RETF word 4
283
+
284
+ ; note "ENTER" has not been changed yet.
285
+
286
+ ;-----------------------------------------------------------------------------
287
+ ; Enhancement by hpa in insns.dat et al
288
+ ;
289
+ ; Simplified adding new instructions, and added some missing instructions
290
+ ;
291
+ int03 ; Instead of INT3
292
+ ud1 ; No documented mnemonic for this one
293
+ ud2
294
+ sysenter
295
+ sysexit
296
+ syscall
297
+ sysret
298
+ fxsave [ebx]
299
+ fxrstor [es:ebx+esi*4+0x3000]
300
+
301
+ ;-----------------------------------------------------------------------------
302
+ ; Enhancement by hpa in insns.dat et al
303
+ ;
304
+ ; Actually make SSE work, and use the -p option to ndisasm to select
305
+ ; one of several aliased opcodes
306
+ ;
307
+ sqrtps xmm0,[ebx+10] ; SSE opcode
308
+ paddsiw mm0,[ebx+10] ; Cyrix opcode with the same byte seq.
309
+
310
+ ;-----------------------------------------------------------------------------
311
+ ; Enhancement by hpa in preproc.c
312
+ ;
313
+ ; Support %undef to remoce a single-line macro
314
+ ;
315
+ %define TEST_ME 42
316
+ %ifndef TEST_ME
317
+ %error "TEST_ME not defined after %define"
318
+ %endif
319
+
320
+ %undef TEST_ME
321
+ %ifdef TEST_ME
322
+ %error "TEST_ME defined after %undef"
323
+ %endif
324
+
325
+ ;-----------------------------------------------------------------------------
326
+ ; Bug fix by hpa in insns.dat
327
+ ;
328
+ ; PSHUFW and PINSRW weren't handling the implicit sizes correctly; all of
329
+ ; the entries below are (or should be) legal
330
+ ;
331
+ pshufw mm2, mm1, 3
332
+ pshufw mm3,[ebx],2
333
+ pshufw mm7,[0+edi*8],1
334
+
335
+ pshufw mm2, mm1, byte 3
336
+ pshufw mm3,[ebx],byte 2
337
+ pshufw mm7,[0+edi*8],byte 1
338
+
339
+ pshufw mm2, mm1, 3
340
+ pshufw mm3, qword [ebx], 2
341
+ pshufw mm7, qword [0+edi*8], 1
342
+
343
+ pshufw mm2, mm1, byte 3
344
+ pshufw mm3, qword [ebx], byte 2
345
+ pshufw mm7, qword [0+edi*8], byte 1
346
+
347
+ pinsrw mm1, [esi], 1
348
+ pinsrw mm1, word [esi], 1
349
+ pinsrw mm1, [esi], byte 1
350
+ pinsrw mm1, word [esi], byte 1
351
+
352
+
353
+ %endif ; oldmsg
354
+
355
+ %ifdef oldcrash ;*************************************************************
356
+
357
+ 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___
358
+
359
+ ;-----------------------------------------------------------------------------
360
+ ; Bug fixed by John in preproc.c
361
+ ;
362
+ ; Builds of NASM that prohibit dereferencing a NULL pointer used to crash if a
363
+ ; macro that started with a blank line was invoked with a label
364
+ ;
365
+ %macro empty_macro 0
366
+
367
+ %endm
368
+
369
+ emlabel empty_macro
370
+ jmp emlabel
371
+
372
+ ;-----------------------------------------------------------------------------
373
+ ; Enhancement by Conan Brink in preproc.c
374
+ ;
375
+ ; Allow %rep to be nested
376
+ ;
377
+ %rep 4
378
+ %rep 5
379
+ nop
380
+ %endrep
381
+ %endrep
382
+
383
+ %endif