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,127 @@
1
+ ;Testname=test; Arguments=-fbin -ofpu.bin; Files=stdout stderr fpu.bin
2
+
3
+ ; relaxed encodings for FPU instructions, which NASM should support
4
+ ; -----------------------------------------------------------------
5
+
6
+ %define void
7
+ %define reg_fpu0 st0
8
+ %define reg_fpu st1
9
+
10
+ ; no operands instead of one operand:
11
+
12
+ ; F(U)COM(P), FCOM2, FCOMP3, FCOMP5
13
+
14
+ FCOM void
15
+ FCOMP void
16
+ FUCOM void
17
+ FUCOMP void
18
+ ; FCOM2 void
19
+ ; FCOMP3 void
20
+ ; FCOMP5 void
21
+
22
+ ; FLD, FST, FSTP, FSTP1, FSTP8, FSTP9
23
+
24
+ FLD void
25
+ FST void
26
+ FSTP void
27
+ ; FSTP1 void
28
+ ; FSTP8 void
29
+ ; FSTP9 void
30
+
31
+ ; FXCH, FXCH4, FXCH7, FFREE, FFREEP
32
+
33
+ FXCH void
34
+ ; FXCH4 void
35
+ ; FXCH7 void
36
+ FFREE void
37
+ FFREEP void
38
+
39
+ ; no operands instead of two operands:
40
+
41
+ ; FADD(P), FMUL(P), FSUBR(P), FSUB(P), FDIVR(P), FDIV(P)
42
+
43
+ FADD void
44
+ FADDP void
45
+ FMUL void
46
+ FMULP void
47
+ FSUBR void
48
+ FSUBRP void
49
+ FSUB void
50
+ FSUBP void
51
+ FDIVR void
52
+ FDIVRP void
53
+ FDIV void
54
+ FDIVP void
55
+
56
+ ; one operand instead of two operands:
57
+
58
+ ; FADD, FMUL, FSUB, FSUBR, FDIV, FDIVR
59
+
60
+ FADD reg_fpu
61
+ FMUL reg_fpu
62
+ FSUB reg_fpu
63
+ FSUBR reg_fpu
64
+ FDIV reg_fpu
65
+ FDIVR reg_fpu
66
+
67
+ ; FADD, FMUL, FSUBR, FSUB, FDIVR, FDIV (with TO qualifier)
68
+
69
+ FADD to reg_fpu
70
+ FMUL to reg_fpu
71
+ FSUBR to reg_fpu
72
+ FSUB to reg_fpu
73
+ FDIVR to reg_fpu
74
+ FDIV to reg_fpu
75
+
76
+ ; FADDP, FMULP, FSUBRP, FSUBP, FDIVRP, FDIVP
77
+
78
+ FADDP reg_fpu
79
+ FMULP reg_fpu
80
+ FSUBRP reg_fpu
81
+ FSUBP reg_fpu
82
+ FDIVRP reg_fpu
83
+ FDIVP reg_fpu
84
+
85
+ ; FCMOV(N)B, FCMOV(N)E, FCMOV(N)BE, FCMOV(N)U, and F(U)COMI(P)
86
+
87
+ FCMOVB reg_fpu
88
+ FCMOVNB reg_fpu
89
+ FCMOVE reg_fpu
90
+ FCMOVNE reg_fpu
91
+ FCMOVBE reg_fpu
92
+ FCMOVNBE reg_fpu
93
+ FCMOVU reg_fpu
94
+ FCMOVNU reg_fpu
95
+ FCOMI reg_fpu
96
+ FCOMIP reg_fpu
97
+ FUCOMI reg_fpu
98
+ FUCOMIP reg_fpu
99
+
100
+ ; two operands instead of one operand:
101
+
102
+ ; these don't really exist, and thus are _NOT_ supported:
103
+
104
+ ; FCOM reg_fpu,reg_fpu0
105
+ ; FCOM reg_fpu0,reg_fpu
106
+ ; FUCOM reg_fpu,reg_fpu0
107
+ ; FUCOM reg_fpu0,reg_fpu
108
+ ; FCOMP reg_fpu,reg_fpu0
109
+ ; FCOMP reg_fpu0,reg_fpu
110
+ ; FUCOMP reg_fpu,reg_fpu0
111
+ ; FUCOMP reg_fpu0,reg_fpu
112
+
113
+ ; FCOM2 reg_fpu,reg_fpu0
114
+ ; FCOM2 reg_fpu0,reg_fpu
115
+ ; FCOMP3 reg_fpu,reg_fpu0
116
+ ; FCOMP3 reg_fpu0,reg_fpu
117
+ ; FCOMP5 reg_fpu,reg_fpu0
118
+ ; FCOMP5 reg_fpu0,reg_fpu
119
+
120
+ ; FXCH reg_fpu,reg_fpu0
121
+ ; FXCH reg_fpu0,reg_fpu
122
+ ; FXCH4 reg_fpu,reg_fpu0
123
+ ; FXCH4 reg_fpu0,reg_fpu
124
+ ; FXCH7 reg_fpu,reg_fpu0
125
+ ; FXCH7 reg_fpu0,reg_fpu
126
+
127
+ ; EOF
@@ -0,0 +1,133 @@
1
+ ;Testname=test; Arguments=-fbin -ofwdopt.bin; Files=stdout stderr fwdopt.bin
2
+ n0: jmp n1
3
+ n1: jmp n2
4
+ n2: jmp n3
5
+ n3: jmp n4
6
+ n4: jmp n5
7
+ n5: jmp n6
8
+ n6: jmp n7
9
+ n7: jmp n8
10
+ n8: jmp n9
11
+ n9: jmp n10
12
+ n10: jmp n11
13
+ n11: jmp n12
14
+ n12: jmp n13
15
+ n13: jmp n14
16
+ n14: jmp n15
17
+ n15: jmp n16
18
+ n16: jmp n17
19
+ n17: jmp n18
20
+ n18: jmp n19
21
+ n19: jmp n20
22
+ n20: jmp n21
23
+ n21: jmp n22
24
+ n22: jmp n23
25
+ n23: jmp n24
26
+ n24: jmp n25
27
+ n25: jmp n26
28
+ n26: jmp n27
29
+ n27: jmp n28
30
+ n28: jmp n29
31
+ n29: jmp n30
32
+ n30: jmp n31
33
+ n31: jmp n32
34
+ n32: jmp n33
35
+ n33: jmp n34
36
+ n34: jmp n35
37
+ n35: jmp n36
38
+ n36: jmp n37
39
+ n37: jmp n38
40
+ n38: jmp n39
41
+ n39: jmp n40
42
+ n40: jmp n41
43
+ n41: jmp n42
44
+ n42: jmp n43
45
+ n43: jmp n44
46
+ n44: jmp n45
47
+ n45: jmp n46
48
+ n46: jmp n47
49
+ n47: jmp n48
50
+ n48: jmp n49
51
+ n49: jmp n50
52
+ n50: jmp n51
53
+ n51: jmp n52
54
+ n52: jmp n53
55
+ n53: jmp n54
56
+ n54: jmp n55
57
+ n55: jmp n56
58
+ n56: jmp n57
59
+ n57: jmp n58
60
+ n58: jmp n59
61
+ n59: jmp n60
62
+ n60: jmp n61
63
+ n61: jmp n62
64
+ n62: jmp n63
65
+ n63: jmp n64
66
+ n64: jmp n65
67
+ n65: jmp n66
68
+ n66: jmp n67
69
+ n67: jmp n68
70
+ n68: jmp n69
71
+ n69: jmp n70
72
+ n70: jmp n71
73
+ n71: jmp n72
74
+ n72: jmp n73
75
+ n73: jmp n74
76
+ n74: jmp n75
77
+ n75: jmp n76
78
+ n76: jmp n77
79
+ n77: jmp n78
80
+ n78: jmp n79
81
+ n79: jmp n80
82
+ n80: jmp n81
83
+ n81: jmp n82
84
+ n82: jmp n83
85
+ n83: jmp n84
86
+ n84: jmp n85
87
+ n85: jmp n86
88
+ n86: jmp n87
89
+ n87: jmp n88
90
+ n88: jmp n89
91
+ n89: jmp n90
92
+ n90: jmp n91
93
+ n91: jmp n92
94
+ n92: jmp n93
95
+ n93: jmp n94
96
+ n94: jmp n95
97
+ n95: jmp n96
98
+ n96: jmp n97
99
+ n97: jmp n98
100
+ n98: jmp n99
101
+ n99: jmp n100
102
+ n100: jmp n101
103
+ n101: jmp n102
104
+ n102: jmp n103
105
+ n103: jmp n104
106
+ n104: jmp n105
107
+ n105: jmp n106
108
+ n106: jmp n107
109
+ n107: jmp n108
110
+ n108: jmp n109
111
+ n109: jmp n110
112
+ n110: jmp n111
113
+ n111: jmp n112
114
+ n112: jmp n113
115
+ n113: jmp n114
116
+ n114: jmp n115
117
+ n115: jmp n116
118
+ n116: jmp n117
119
+ n117: jmp n118
120
+ n118: jmp n119
121
+ n119: jmp n120
122
+ n120: jmp n121
123
+ n121: jmp n122
124
+ n122: jmp n123
125
+ n123: jmp n124
126
+ n124: jmp n125
127
+ n125: jmp n126
128
+ n126: jmp n127
129
+ n127: jmp n0
130
+
131
+ ;; This should emit exactly 3 NOP bytes
132
+ times 260-($-$$) nop
133
+ hlt
@@ -0,0 +1,150 @@
1
+ ;Testname=error; Arguments=-fbin -DERROR -ofwdoptpp.bin; Files=stdout stderr fwdoptpp.bin
2
+ ;Testname=fatal; Arguments=-fbin -DFATAL -ofwdoptpp.bin; Files=stdout stderr fwdoptpp.bin
3
+ ;Testname=warning; Arguments=-fbin -DWARNING -ofwdoptpp.bin; Files=stdout stderr fwdoptpp.bin
4
+
5
+ %ifndef ERROR
6
+ %ifndef FATAL
7
+ %ifndef WARNING
8
+ %define ERROR 1
9
+ %endif
10
+ %endif
11
+ %endif
12
+
13
+ n0: jmp n1
14
+ n1: jmp n2
15
+ n2: jmp n3
16
+ n3: jmp n4
17
+ n4: jmp n5
18
+ n5: jmp n6
19
+ n6: jmp n7
20
+ n7: jmp n8
21
+ n8: jmp n9
22
+ n9: jmp n10
23
+ n10: jmp n11
24
+ n11: jmp n12
25
+ n12: jmp n13
26
+ n13: jmp n14
27
+ n14: jmp n15
28
+ n15: jmp n16
29
+ n16: jmp n17
30
+ n17: jmp n18
31
+ n18: jmp n19
32
+ n19: jmp n20
33
+ n20: jmp n21
34
+ n21: jmp n22
35
+ n22: jmp n23
36
+ n23: jmp n24
37
+ n24: jmp n25
38
+ n25: jmp n26
39
+ n26: jmp n27
40
+ n27: jmp n28
41
+ n28: jmp n29
42
+ n29: jmp n30
43
+ n30: jmp n31
44
+ n31: jmp n32
45
+ n32: jmp n33
46
+ n33: jmp n34
47
+ n34: jmp n35
48
+ n35: jmp n36
49
+ n36: jmp n37
50
+ n37: jmp n38
51
+ n38: jmp n39
52
+ n39: jmp n40
53
+ n40: jmp n41
54
+ n41: jmp n42
55
+ n42: jmp n43
56
+ n43: jmp n44
57
+ n44: jmp n45
58
+ n45: jmp n46
59
+ n46: jmp n47
60
+ n47: jmp n48
61
+ n48: jmp n49
62
+ n49: jmp n50
63
+ n50: jmp n51
64
+ n51: jmp n52
65
+ n52: jmp n53
66
+ n53: jmp n54
67
+ n54: jmp n55
68
+ n55: jmp n56
69
+ n56: jmp n57
70
+ n57: jmp n58
71
+ n58: jmp n59
72
+ n59: jmp n60
73
+ n60: jmp n61
74
+ n61: jmp n62
75
+ n62: jmp n63
76
+ n63: jmp n64
77
+ n64: jmp n65
78
+ n65: jmp n66
79
+ n66: jmp n67
80
+ n67: jmp n68
81
+ n68: jmp n69
82
+ n69: jmp n70
83
+ n70: jmp n71
84
+ n71: jmp n72
85
+ n72: jmp n73
86
+ n73: jmp n74
87
+ n74: jmp n75
88
+ n75: jmp n76
89
+ n76: jmp n77
90
+ n77: jmp n78
91
+ n78: jmp n79
92
+ n79: jmp n80
93
+ n80: jmp n81
94
+ n81: jmp n82
95
+ n82: jmp n83
96
+ n83: jmp n84
97
+ n84: jmp n85
98
+ n85: jmp n86
99
+ n86: jmp n87
100
+ n87: jmp n88
101
+ n88: jmp n89
102
+ n89: jmp n90
103
+ n90: jmp n91
104
+ n91: jmp n92
105
+ n92: jmp n93
106
+ n93: jmp n94
107
+ n94: jmp n95
108
+ n95: jmp n96
109
+ n96: jmp n97
110
+ n97: jmp n98
111
+ n98: jmp n99
112
+ n99: jmp n100
113
+ n100: jmp n101
114
+ n101: jmp n102
115
+ n102: jmp n103
116
+ n103: jmp n104
117
+ n104: jmp n105
118
+ n105: jmp n106
119
+ n106: jmp n107
120
+ n107: jmp n108
121
+ n108: jmp n109
122
+ n109: jmp n110
123
+ n110: jmp n111
124
+ n111: jmp n112
125
+ n112: jmp n113
126
+ n113: jmp n114
127
+ n114: jmp n115
128
+ n115: jmp n116
129
+ n116: jmp n117
130
+ n117: jmp n118
131
+ n118: jmp n119
132
+ n119: jmp n120
133
+ n120: jmp n121
134
+ n121: jmp n122
135
+ n122: jmp n123
136
+ n123: jmp n124
137
+ n124: jmp n125
138
+ n125: jmp n126
139
+ n126: jmp n127
140
+ n127: jmp n0
141
+
142
+ %if ($-$$) > 257
143
+ %ifdef FATAL
144
+ %fatal "Out of space!"
145
+ %elifdef ERROR
146
+ %error "Out of space!"
147
+ %elifdef WARNING
148
+ %warning "Out of space!"
149
+ %endif
150
+ %endif
@@ -0,0 +1,104 @@
1
+ #!/usr/bin/env python -tt
2
+ # -*- python -*-
3
+ # Convert gas testsuite file to NASM test asm file
4
+ # usage >
5
+ # python gas2nasm.py -i input_gas_file -o output_nasm_file -b bits
6
+ # e.g. python gas2nasm.py -i x86-64-avx512f-intel.d -o avx512f.asm -b 64
7
+
8
+ import sys
9
+ import os
10
+ import optparse
11
+ import re
12
+
13
+ def setup():
14
+ parser = optparse.OptionParser()
15
+ parser.add_option('-i', dest='input', action='store',
16
+ default="",
17
+ help='Name for input gas testsuite file.')
18
+ parser.add_option('-o', dest='output', action='store',
19
+ default="",
20
+ help='Name for output NASM test asm file.')
21
+ parser.add_option('-b', dest='bits', action='store',
22
+ default="",
23
+ help='Bits for output ASM file.')
24
+ parser.add_option('-r', dest='raw_output', action='store',
25
+ default="",
26
+ help='Name for raw output bytes in text')
27
+ (options, args) = parser.parse_args()
28
+ return options
29
+
30
+ def read(options):
31
+ with open(options.input, 'rb') as f:
32
+ recs = []
33
+ for line in f:
34
+ if line[0] == '[':
35
+ d = []
36
+ strr = line[16:].partition(' ')
37
+ if strr[1] == '':
38
+ strr = line[16:].partition('\t')
39
+ l = strr[0].strip()
40
+ r = strr[2].strip()
41
+ d.append(l)
42
+ d.append(r)
43
+ recs.append(d)
44
+ return recs
45
+
46
+ def commas(recs):
47
+ replace_tbl = {' PTR':'', '\\':'', 'MM':'', 'XWORD':'OWORD'}
48
+ reccommas = []
49
+ for insn in recs:
50
+ new = []
51
+ byte = '0x' + insn[0].replace(' ', ', 0x')
52
+ for rep in replace_tbl.keys():
53
+ insn[1] = insn[1].replace(rep, replace_tbl[rep])
54
+ mnemonic = insn[1]
55
+
56
+ # gas size specifier for gather and scatter insturctions seems wrong. just remove them.
57
+ if 'gather' in insn[1] or 'scatter' in insn[1]:
58
+ mnemonic = mnemonic.replace('ZWORD', '')
59
+
60
+ new.append(byte)
61
+ new.append(mnemonic)
62
+ reccommas.append(new)
63
+ return reccommas
64
+
65
+ # The spaces reserved here can be adjusted according to the output string length.
66
+ # maxlen printed out at the end of the process will give a hint for it.
67
+ outstrfmt = "testcase\t{ %-70s }, { %-60s }\n"
68
+
69
+ macro = "%macro testcase 2\n %ifdef BIN\n db %1\n %endif\n %ifdef SRC\n %2\n %endif\n%endmacro\n\n\n"
70
+
71
+ def write(data, options):
72
+ if options.output:
73
+ with open(options.output, 'wb') as out:
74
+ out.write(macro)
75
+ if options.bits:
76
+ out.write('bits ' + options.bits + '\n\n')
77
+ for insn in data:
78
+ outstr = outstrfmt % tuple(insn)
79
+ out.write(outstr)
80
+
81
+ def write_rawbytes(data, options):
82
+ if options.raw_output:
83
+ with open(options.raw_output, 'wb') as out:
84
+ for insn in data:
85
+ out.write(insn[0] + '\n')
86
+
87
+ if __name__ == "__main__":
88
+ options = setup()
89
+ recs = read(options)
90
+
91
+ write_rawbytes(recs, options)
92
+
93
+ recs = commas(recs)
94
+
95
+ write(recs, options)
96
+
97
+ maxlen = [0,0,0,0,0,0,0,0]
98
+ for insn in recs:
99
+ #print insn[0] + '\t<-\t' + insn[1]
100
+ print outstrfmt[:-1] % tuple(insn)
101
+ for i, strstr in enumerate(insn):
102
+ if maxlen[i] < len(strstr): maxlen[i] = len(strstr)
103
+
104
+ print maxlen