bio-velvet_underground 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (286) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.gitmodules +3 -0
  4. data/.travis.yml +13 -0
  5. data/Gemfile +19 -0
  6. data/LICENSE.txt +20 -0
  7. data/README.md +53 -0
  8. data/Rakefile +51 -0
  9. data/VERSION +1 -0
  10. data/ext/bioruby.patch +60 -0
  11. data/ext/mkrf_conf.rb +50 -0
  12. data/ext/src/Makefile +125 -0
  13. data/ext/src/src/allocArray.c +305 -0
  14. data/ext/src/src/allocArray.h +86 -0
  15. data/ext/src/src/autoOpen.c +107 -0
  16. data/ext/src/src/autoOpen.h +18 -0
  17. data/ext/src/src/binarySequences.c +813 -0
  18. data/ext/src/src/binarySequences.h +125 -0
  19. data/ext/src/src/concatenatedGraph.c +233 -0
  20. data/ext/src/src/concatenatedGraph.h +30 -0
  21. data/ext/src/src/concatenatedPreGraph.c +262 -0
  22. data/ext/src/src/concatenatedPreGraph.h +29 -0
  23. data/ext/src/src/correctedGraph.c +2642 -0
  24. data/ext/src/src/correctedGraph.h +32 -0
  25. data/ext/src/src/dfib.c +509 -0
  26. data/ext/src/src/dfib.h +69 -0
  27. data/ext/src/src/dfibHeap.c +89 -0
  28. data/ext/src/src/dfibHeap.h +39 -0
  29. data/ext/src/src/dfibpriv.h +105 -0
  30. data/ext/src/src/fib.c +628 -0
  31. data/ext/src/src/fib.h +78 -0
  32. data/ext/src/src/fibHeap.c +79 -0
  33. data/ext/src/src/fibHeap.h +41 -0
  34. data/ext/src/src/fibpriv.h +110 -0
  35. data/ext/src/src/globals.h +153 -0
  36. data/ext/src/src/graph.c +3983 -0
  37. data/ext/src/src/graph.h +233 -0
  38. data/ext/src/src/graphReConstruction.c +1472 -0
  39. data/ext/src/src/graphReConstruction.h +30 -0
  40. data/ext/src/src/graphStats.c +2167 -0
  41. data/ext/src/src/graphStats.h +72 -0
  42. data/ext/src/src/kmer.c +652 -0
  43. data/ext/src/src/kmer.h +73 -0
  44. data/ext/src/src/kmerOccurenceTable.c +236 -0
  45. data/ext/src/src/kmerOccurenceTable.h +44 -0
  46. data/ext/src/src/kseq.h +223 -0
  47. data/ext/src/src/locallyCorrectedGraph.c +557 -0
  48. data/ext/src/src/locallyCorrectedGraph.h +40 -0
  49. data/ext/src/src/passageMarker.c +677 -0
  50. data/ext/src/src/passageMarker.h +137 -0
  51. data/ext/src/src/preGraph.c +1717 -0
  52. data/ext/src/src/preGraph.h +106 -0
  53. data/ext/src/src/preGraphConstruction.c +990 -0
  54. data/ext/src/src/preGraphConstruction.h +26 -0
  55. data/ext/src/src/readCoherentGraph.c +557 -0
  56. data/ext/src/src/readCoherentGraph.h +30 -0
  57. data/ext/src/src/readSet.c +1734 -0
  58. data/ext/src/src/readSet.h +67 -0
  59. data/ext/src/src/recycleBin.c +199 -0
  60. data/ext/src/src/recycleBin.h +58 -0
  61. data/ext/src/src/roadMap.c +342 -0
  62. data/ext/src/src/roadMap.h +65 -0
  63. data/ext/src/src/run.c +318 -0
  64. data/ext/src/src/run.h +52 -0
  65. data/ext/src/src/run2.c +712 -0
  66. data/ext/src/src/scaffold.c +1876 -0
  67. data/ext/src/src/scaffold.h +64 -0
  68. data/ext/src/src/shortReadPairs.c +1243 -0
  69. data/ext/src/src/shortReadPairs.h +32 -0
  70. data/ext/src/src/splay.c +259 -0
  71. data/ext/src/src/splay.h +43 -0
  72. data/ext/src/src/splayTable.c +1315 -0
  73. data/ext/src/src/splayTable.h +31 -0
  74. data/ext/src/src/tightString.c +362 -0
  75. data/ext/src/src/tightString.h +82 -0
  76. data/ext/src/src/utility.c +199 -0
  77. data/ext/src/src/utility.h +98 -0
  78. data/ext/src/third-party/zlib-1.2.3/ChangeLog +855 -0
  79. data/ext/src/third-party/zlib-1.2.3/FAQ +339 -0
  80. data/ext/src/third-party/zlib-1.2.3/INDEX +51 -0
  81. data/ext/src/third-party/zlib-1.2.3/Makefile +154 -0
  82. data/ext/src/third-party/zlib-1.2.3/Makefile.in +154 -0
  83. data/ext/src/third-party/zlib-1.2.3/README +125 -0
  84. data/ext/src/third-party/zlib-1.2.3/adler32.c +149 -0
  85. data/ext/src/third-party/zlib-1.2.3/algorithm.txt +209 -0
  86. data/ext/src/third-party/zlib-1.2.3/amiga/Makefile.pup +66 -0
  87. data/ext/src/third-party/zlib-1.2.3/amiga/Makefile.sas +65 -0
  88. data/ext/src/third-party/zlib-1.2.3/as400/bndsrc +132 -0
  89. data/ext/src/third-party/zlib-1.2.3/as400/compile.clp +123 -0
  90. data/ext/src/third-party/zlib-1.2.3/as400/readme.txt +111 -0
  91. data/ext/src/third-party/zlib-1.2.3/as400/zlib.inc +331 -0
  92. data/ext/src/third-party/zlib-1.2.3/compress.c +79 -0
  93. data/ext/src/third-party/zlib-1.2.3/configure +459 -0
  94. data/ext/src/third-party/zlib-1.2.3/contrib/README.contrib +71 -0
  95. data/ext/src/third-party/zlib-1.2.3/contrib/ada/buffer_demo.adb +106 -0
  96. data/ext/src/third-party/zlib-1.2.3/contrib/ada/mtest.adb +156 -0
  97. data/ext/src/third-party/zlib-1.2.3/contrib/ada/read.adb +156 -0
  98. data/ext/src/third-party/zlib-1.2.3/contrib/ada/readme.txt +65 -0
  99. data/ext/src/third-party/zlib-1.2.3/contrib/ada/test.adb +463 -0
  100. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-streams.adb +225 -0
  101. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-streams.ads +114 -0
  102. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-thin.adb +141 -0
  103. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib-thin.ads +450 -0
  104. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.adb +701 -0
  105. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.ads +328 -0
  106. data/ext/src/third-party/zlib-1.2.3/contrib/ada/zlib.gpr +20 -0
  107. data/ext/src/third-party/zlib-1.2.3/contrib/asm586/README.586 +43 -0
  108. data/ext/src/third-party/zlib-1.2.3/contrib/asm586/match.S +364 -0
  109. data/ext/src/third-party/zlib-1.2.3/contrib/asm686/README.686 +34 -0
  110. data/ext/src/third-party/zlib-1.2.3/contrib/asm686/match.S +329 -0
  111. data/ext/src/third-party/zlib-1.2.3/contrib/blast/Makefile +8 -0
  112. data/ext/src/third-party/zlib-1.2.3/contrib/blast/README +4 -0
  113. data/ext/src/third-party/zlib-1.2.3/contrib/blast/blast.c +444 -0
  114. data/ext/src/third-party/zlib-1.2.3/contrib/blast/blast.h +71 -0
  115. data/ext/src/third-party/zlib-1.2.3/contrib/blast/test.pk +0 -0
  116. data/ext/src/third-party/zlib-1.2.3/contrib/blast/test.txt +1 -0
  117. data/ext/src/third-party/zlib-1.2.3/contrib/delphi/ZLib.pas +557 -0
  118. data/ext/src/third-party/zlib-1.2.3/contrib/delphi/ZLibConst.pas +11 -0
  119. data/ext/src/third-party/zlib-1.2.3/contrib/delphi/readme.txt +76 -0
  120. data/ext/src/third-party/zlib-1.2.3/contrib/delphi/zlibd32.mak +93 -0
  121. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.build +33 -0
  122. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.chm +0 -0
  123. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib.sln +21 -0
  124. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/AssemblyInfo.cs +58 -0
  125. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/ChecksumImpl.cs +202 -0
  126. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/CircularBuffer.cs +83 -0
  127. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/CodecBase.cs +198 -0
  128. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/Deflater.cs +106 -0
  129. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/DotZLib.cs +288 -0
  130. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/DotZLib.csproj +141 -0
  131. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/GZipStream.cs +301 -0
  132. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/Inflater.cs +105 -0
  133. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/DotZLib/UnitTests.cs +274 -0
  134. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/LICENSE_1_0.txt +23 -0
  135. data/ext/src/third-party/zlib-1.2.3/contrib/dotzlib/readme.txt +58 -0
  136. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/README +1 -0
  137. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/infback9.c +608 -0
  138. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/infback9.h +37 -0
  139. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inffix9.h +107 -0
  140. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inflate9.h +47 -0
  141. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inftree9.c +323 -0
  142. data/ext/src/third-party/zlib-1.2.3/contrib/infback9/inftree9.h +55 -0
  143. data/ext/src/third-party/zlib-1.2.3/contrib/inflate86/inffas86.c +1157 -0
  144. data/ext/src/third-party/zlib-1.2.3/contrib/inflate86/inffast.S +1368 -0
  145. data/ext/src/third-party/zlib-1.2.3/contrib/iostream/test.cpp +24 -0
  146. data/ext/src/third-party/zlib-1.2.3/contrib/iostream/zfstream.cpp +329 -0
  147. data/ext/src/third-party/zlib-1.2.3/contrib/iostream/zfstream.h +128 -0
  148. data/ext/src/third-party/zlib-1.2.3/contrib/iostream2/zstream.h +307 -0
  149. data/ext/src/third-party/zlib-1.2.3/contrib/iostream2/zstream_test.cpp +25 -0
  150. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/README +35 -0
  151. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/TODO +17 -0
  152. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/test.cc +50 -0
  153. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/zfstream.cc +479 -0
  154. data/ext/src/third-party/zlib-1.2.3/contrib/iostream3/zfstream.h +466 -0
  155. data/ext/src/third-party/zlib-1.2.3/contrib/masm686/match.asm +413 -0
  156. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/bld_ml64.bat +2 -0
  157. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/gvmat64.asm +513 -0
  158. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/gvmat64.obj +0 -0
  159. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffas8664.c +186 -0
  160. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffasx64.asm +392 -0
  161. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/inffasx64.obj +0 -0
  162. data/ext/src/third-party/zlib-1.2.3/contrib/masmx64/readme.txt +28 -0
  163. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/bld_ml32.bat +2 -0
  164. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32.asm +972 -0
  165. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32.obj +0 -0
  166. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/gvmat32c.c +62 -0
  167. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/inffas32.asm +1083 -0
  168. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/inffas32.obj +0 -0
  169. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/mkasm.bat +3 -0
  170. data/ext/src/third-party/zlib-1.2.3/contrib/masmx86/readme.txt +21 -0
  171. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ChangeLogUnzip +67 -0
  172. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/Makefile +25 -0
  173. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/crypt.h +132 -0
  174. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ioapi.c +177 -0
  175. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/ioapi.h +75 -0
  176. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/iowin32.c +270 -0
  177. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/iowin32.h +21 -0
  178. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/miniunz.c +585 -0
  179. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/minizip.c +420 -0
  180. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/mztools.c +281 -0
  181. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/mztools.h +31 -0
  182. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/unzip.c +1598 -0
  183. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/unzip.h +354 -0
  184. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/zip.c +1219 -0
  185. data/ext/src/third-party/zlib-1.2.3/contrib/minizip/zip.h +235 -0
  186. data/ext/src/third-party/zlib-1.2.3/contrib/pascal/example.pas +599 -0
  187. data/ext/src/third-party/zlib-1.2.3/contrib/pascal/readme.txt +76 -0
  188. data/ext/src/third-party/zlib-1.2.3/contrib/pascal/zlibd32.mak +93 -0
  189. data/ext/src/third-party/zlib-1.2.3/contrib/pascal/zlibpas.pas +236 -0
  190. data/ext/src/third-party/zlib-1.2.3/contrib/puff/Makefile +8 -0
  191. data/ext/src/third-party/zlib-1.2.3/contrib/puff/README +63 -0
  192. data/ext/src/third-party/zlib-1.2.3/contrib/puff/puff.c +837 -0
  193. data/ext/src/third-party/zlib-1.2.3/contrib/puff/puff.h +31 -0
  194. data/ext/src/third-party/zlib-1.2.3/contrib/puff/zeros.raw +0 -0
  195. data/ext/src/third-party/zlib-1.2.3/contrib/testzlib/testzlib.c +275 -0
  196. data/ext/src/third-party/zlib-1.2.3/contrib/testzlib/testzlib.txt +10 -0
  197. data/ext/src/third-party/zlib-1.2.3/contrib/untgz/Makefile +14 -0
  198. data/ext/src/third-party/zlib-1.2.3/contrib/untgz/Makefile.msc +17 -0
  199. data/ext/src/third-party/zlib-1.2.3/contrib/untgz/untgz.c +674 -0
  200. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/readme.txt +73 -0
  201. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/miniunz.vcproj +126 -0
  202. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/minizip.vcproj +126 -0
  203. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/testzlib.vcproj +126 -0
  204. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlib.rc +32 -0
  205. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibstat.vcproj +246 -0
  206. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.def +92 -0
  207. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.sln +78 -0
  208. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc7/zlibvc.vcproj +445 -0
  209. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/miniunz.vcproj +566 -0
  210. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/minizip.vcproj +563 -0
  211. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/testzlib.vcproj +948 -0
  212. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/testzlibdll.vcproj +567 -0
  213. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlib.rc +32 -0
  214. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibstat.vcproj +870 -0
  215. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.def +92 -0
  216. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.sln +144 -0
  217. data/ext/src/third-party/zlib-1.2.3/contrib/vstudio/vc8/zlibvc.vcproj +1219 -0
  218. data/ext/src/third-party/zlib-1.2.3/crc32.c +423 -0
  219. data/ext/src/third-party/zlib-1.2.3/crc32.h +441 -0
  220. data/ext/src/third-party/zlib-1.2.3/deflate.c +1736 -0
  221. data/ext/src/third-party/zlib-1.2.3/deflate.h +331 -0
  222. data/ext/src/third-party/zlib-1.2.3/example.c +565 -0
  223. data/ext/src/third-party/zlib-1.2.3/examples/README.examples +42 -0
  224. data/ext/src/third-party/zlib-1.2.3/examples/fitblk.c +233 -0
  225. data/ext/src/third-party/zlib-1.2.3/examples/gun.c +693 -0
  226. data/ext/src/third-party/zlib-1.2.3/examples/gzappend.c +500 -0
  227. data/ext/src/third-party/zlib-1.2.3/examples/gzjoin.c +448 -0
  228. data/ext/src/third-party/zlib-1.2.3/examples/gzlog.c +413 -0
  229. data/ext/src/third-party/zlib-1.2.3/examples/gzlog.h +58 -0
  230. data/ext/src/third-party/zlib-1.2.3/examples/zlib_how.html +523 -0
  231. data/ext/src/third-party/zlib-1.2.3/examples/zpipe.c +191 -0
  232. data/ext/src/third-party/zlib-1.2.3/examples/zran.c +404 -0
  233. data/ext/src/third-party/zlib-1.2.3/gzio.c +1026 -0
  234. data/ext/src/third-party/zlib-1.2.3/infback.c +623 -0
  235. data/ext/src/third-party/zlib-1.2.3/inffast.c +318 -0
  236. data/ext/src/third-party/zlib-1.2.3/inffast.h +11 -0
  237. data/ext/src/third-party/zlib-1.2.3/inffixed.h +94 -0
  238. data/ext/src/third-party/zlib-1.2.3/inflate.c +1368 -0
  239. data/ext/src/third-party/zlib-1.2.3/inflate.h +115 -0
  240. data/ext/src/third-party/zlib-1.2.3/inftrees.c +329 -0
  241. data/ext/src/third-party/zlib-1.2.3/inftrees.h +55 -0
  242. data/ext/src/third-party/zlib-1.2.3/make_vms.com +461 -0
  243. data/ext/src/third-party/zlib-1.2.3/minigzip.c +322 -0
  244. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.bor +109 -0
  245. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.dj2 +104 -0
  246. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.emx +69 -0
  247. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.msc +106 -0
  248. data/ext/src/third-party/zlib-1.2.3/msdos/Makefile.tc +94 -0
  249. data/ext/src/third-party/zlib-1.2.3/old/Makefile.riscos +151 -0
  250. data/ext/src/third-party/zlib-1.2.3/old/README +3 -0
  251. data/ext/src/third-party/zlib-1.2.3/old/descrip.mms +48 -0
  252. data/ext/src/third-party/zlib-1.2.3/old/os2/Makefile.os2 +136 -0
  253. data/ext/src/third-party/zlib-1.2.3/old/os2/zlib.def +51 -0
  254. data/ext/src/third-party/zlib-1.2.3/old/visual-basic.txt +160 -0
  255. data/ext/src/third-party/zlib-1.2.3/old/zlib.html +971 -0
  256. data/ext/src/third-party/zlib-1.2.3/projects/README.projects +41 -0
  257. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/README.txt +73 -0
  258. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/example.dsp +278 -0
  259. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/minigzip.dsp +278 -0
  260. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/zlib.dsp +609 -0
  261. data/ext/src/third-party/zlib-1.2.3/projects/visualc6/zlib.dsw +59 -0
  262. data/ext/src/third-party/zlib-1.2.3/qnx/package.qpg +141 -0
  263. data/ext/src/third-party/zlib-1.2.3/trees.c +1219 -0
  264. data/ext/src/third-party/zlib-1.2.3/trees.h +128 -0
  265. data/ext/src/third-party/zlib-1.2.3/uncompr.c +61 -0
  266. data/ext/src/third-party/zlib-1.2.3/win32/DLL_FAQ.txt +397 -0
  267. data/ext/src/third-party/zlib-1.2.3/win32/Makefile.bor +107 -0
  268. data/ext/src/third-party/zlib-1.2.3/win32/Makefile.emx +69 -0
  269. data/ext/src/third-party/zlib-1.2.3/win32/Makefile.gcc +141 -0
  270. data/ext/src/third-party/zlib-1.2.3/win32/Makefile.msc +126 -0
  271. data/ext/src/third-party/zlib-1.2.3/win32/VisualC.txt +3 -0
  272. data/ext/src/third-party/zlib-1.2.3/win32/zlib.def +60 -0
  273. data/ext/src/third-party/zlib-1.2.3/win32/zlib1.rc +39 -0
  274. data/ext/src/third-party/zlib-1.2.3/zconf.h +332 -0
  275. data/ext/src/third-party/zlib-1.2.3/zconf.in.h +332 -0
  276. data/ext/src/third-party/zlib-1.2.3/zlib.3 +159 -0
  277. data/ext/src/third-party/zlib-1.2.3/zlib.h +1357 -0
  278. data/ext/src/third-party/zlib-1.2.3/zutil.c +318 -0
  279. data/ext/src/third-party/zlib-1.2.3/zutil.h +269 -0
  280. data/lib/bio-velvet_underground.rb +12 -0
  281. data/lib/bio-velvet_underground/external/VERSION +1 -0
  282. data/lib/bio-velvet_underground/velvet_underground.rb +72 -0
  283. data/spec/binary_sequence_store_spec.rb +27 -0
  284. data/spec/data/1/CnyUnifiedSeq +0 -0
  285. data/spec/spec_helper.rb +31 -0
  286. metadata +456 -0
@@ -0,0 +1,62 @@
1
+ /* gvmat32.c -- C portion of the optimized longest_match for 32 bits x86
2
+ * Copyright (C) 1995-1996 Jean-loup Gailly and Gilles Vollant.
3
+ * File written by Gilles Vollant, by modifiying the longest_match
4
+ * from Jean-loup Gailly in deflate.c
5
+ * it prepare all parameters and call the assembly longest_match_gvasm
6
+ * longest_match execute standard C code is wmask != 0x7fff
7
+ * (assembly code is faster with a fixed wmask)
8
+ *
9
+ * Read comment at beginning of gvmat32.asm for more information
10
+ */
11
+
12
+ #if defined(ASMV) && (!defined(NOOLDPENTIUMCODE))
13
+ #include "deflate.h"
14
+
15
+ /* if your C compiler don't add underline before function name,
16
+ define ADD_UNDERLINE_ASMFUNC */
17
+ #ifdef ADD_UNDERLINE_ASMFUNC
18
+ #define longest_match_7fff _longest_match_7fff
19
+ #define longest_match_686 _longest_match_686
20
+ #define cpudetect32 _cpudetect32
21
+ #endif
22
+
23
+
24
+ unsigned long cpudetect32();
25
+
26
+ uInt longest_match_c(
27
+ deflate_state *s,
28
+ IPos cur_match); /* current match */
29
+
30
+
31
+ uInt longest_match_7fff(
32
+ deflate_state *s,
33
+ IPos cur_match); /* current match */
34
+
35
+ uInt longest_match_686(
36
+ deflate_state *s,
37
+ IPos cur_match); /* current match */
38
+
39
+
40
+ static uInt iIsPPro=2;
41
+
42
+ void match_init ()
43
+ {
44
+ iIsPPro = (((cpudetect32()/0x100)&0xf)>=6) ? 1 : 0;
45
+ }
46
+
47
+ uInt longest_match(
48
+ deflate_state *s,
49
+ IPos cur_match) /* current match */
50
+ {
51
+ if (iIsPPro!=0)
52
+ return longest_match_686(s,cur_match);
53
+
54
+ if (s->w_mask != 0x7fff)
55
+ return longest_match_686(s,cur_match);
56
+
57
+ /* now ((s->w_mask == 0x7fff) && (iIsPPro==0)) */
58
+ return longest_match_7fff(s,cur_match);
59
+ }
60
+
61
+
62
+ #endif /* defined(ASMV) && (!defined(NOOLDPENTIUMCODE)) */
@@ -0,0 +1,1083 @@
1
+ ;/* inffas32.asm is a hand tuned assembler version of inffast.c -- fast decoding
2
+ ; *
3
+ ; * inffas32.asm is derivated from inffas86.c, with translation of assembly code
4
+ ; *
5
+ ; * Copyright (C) 1995-2003 Mark Adler
6
+ ; * For conditions of distribution and use, see copyright notice in zlib.h
7
+ ; *
8
+ ; * Copyright (C) 2003 Chris Anderson <christop@charm.net>
9
+ ; * Please use the copyright conditions above.
10
+ ; *
11
+ ; * Mar-13-2003 -- Most of this is derived from inffast.S which is derived from
12
+ ; * the gcc -S output of zlib-1.2.0/inffast.c. Zlib-1.2.0 is in beta release at
13
+ ; * the moment. I have successfully compiled and tested this code with gcc2.96,
14
+ ; * gcc3.2, icc5.0, msvc6.0. It is very close to the speed of inffast.S
15
+ ; * compiled with gcc -DNO_MMX, but inffast.S is still faster on the P3 with MMX
16
+ ; * enabled. I will attempt to merge the MMX code into this version. Newer
17
+ ; * versions of this and inffast.S can be found at
18
+ ; * http://www.eetbeetee.com/zlib/ and http://www.charm.net/~christop/zlib/
19
+ ; *
20
+ ; * 2005 : modification by Gilles Vollant
21
+ ; */
22
+ ; For Visual C++ 4.x and higher and ML 6.x and higher
23
+ ; ml.exe is in directory \MASM611C of Win95 DDK
24
+ ; ml.exe is also distributed in http://www.masm32.com/masmdl.htm
25
+ ; and in VC++2003 toolkit at http://msdn.microsoft.com/visualc/vctoolkit2003/
26
+ ;
27
+ ;
28
+ ; compile with command line option
29
+ ; ml /coff /Zi /c /Flinffas32.lst inffas32.asm
30
+
31
+ ; if you define NO_GZIP (see inflate.h), compile with
32
+ ; ml /coff /Zi /c /Flinffas32.lst /DNO_GUNZIP inffas32.asm
33
+
34
+
35
+ ; zlib122sup is 0 fort zlib 1.2.2.1 and lower
36
+ ; zlib122sup is 8 fort zlib 1.2.2.2 and more (with addition of dmax and head
37
+ ; in inflate_state in inflate.h)
38
+ zlib1222sup equ 8
39
+
40
+
41
+ IFDEF GUNZIP
42
+ INFLATE_MODE_TYPE equ 11
43
+ INFLATE_MODE_BAD equ 26
44
+ ELSE
45
+ IFNDEF NO_GUNZIP
46
+ INFLATE_MODE_TYPE equ 11
47
+ INFLATE_MODE_BAD equ 26
48
+ ELSE
49
+ INFLATE_MODE_TYPE equ 3
50
+ INFLATE_MODE_BAD equ 17
51
+ ENDIF
52
+ ENDIF
53
+
54
+
55
+ ; 75 "inffast.S"
56
+ ;FILE "inffast.S"
57
+
58
+ ;;;GLOBAL _inflate_fast
59
+
60
+ ;;;SECTION .text
61
+
62
+
63
+
64
+ .586p
65
+ .mmx
66
+
67
+ name inflate_fast_x86
68
+ .MODEL FLAT
69
+
70
+ _DATA segment
71
+ inflate_fast_use_mmx:
72
+ dd 1
73
+
74
+
75
+ _TEXT segment
76
+ PUBLIC _inflate_fast
77
+
78
+ ALIGN 4
79
+ _inflate_fast:
80
+ jmp inflate_fast_entry
81
+
82
+
83
+
84
+ ALIGN 4
85
+ db 'Fast decoding Code from Chris Anderson'
86
+ db 0
87
+
88
+ ALIGN 4
89
+ invalid_literal_length_code_msg:
90
+ db 'invalid literal/length code'
91
+ db 0
92
+
93
+ ALIGN 4
94
+ invalid_distance_code_msg:
95
+ db 'invalid distance code'
96
+ db 0
97
+
98
+ ALIGN 4
99
+ invalid_distance_too_far_msg:
100
+ db 'invalid distance too far back'
101
+ db 0
102
+
103
+
104
+ ALIGN 4
105
+ inflate_fast_mask:
106
+ dd 0
107
+ dd 1
108
+ dd 3
109
+ dd 7
110
+ dd 15
111
+ dd 31
112
+ dd 63
113
+ dd 127
114
+ dd 255
115
+ dd 511
116
+ dd 1023
117
+ dd 2047
118
+ dd 4095
119
+ dd 8191
120
+ dd 16383
121
+ dd 32767
122
+ dd 65535
123
+ dd 131071
124
+ dd 262143
125
+ dd 524287
126
+ dd 1048575
127
+ dd 2097151
128
+ dd 4194303
129
+ dd 8388607
130
+ dd 16777215
131
+ dd 33554431
132
+ dd 67108863
133
+ dd 134217727
134
+ dd 268435455
135
+ dd 536870911
136
+ dd 1073741823
137
+ dd 2147483647
138
+ dd 4294967295
139
+
140
+
141
+ mode_state equ 0 ;/* state->mode */
142
+ wsize_state equ (32+zlib1222sup) ;/* state->wsize */
143
+ write_state equ (36+4+zlib1222sup) ;/* state->write */
144
+ window_state equ (40+4+zlib1222sup) ;/* state->window */
145
+ hold_state equ (44+4+zlib1222sup) ;/* state->hold */
146
+ bits_state equ (48+4+zlib1222sup) ;/* state->bits */
147
+ lencode_state equ (64+4+zlib1222sup) ;/* state->lencode */
148
+ distcode_state equ (68+4+zlib1222sup) ;/* state->distcode */
149
+ lenbits_state equ (72+4+zlib1222sup) ;/* state->lenbits */
150
+ distbits_state equ (76+4+zlib1222sup) ;/* state->distbits */
151
+
152
+
153
+ ;;SECTION .text
154
+ ; 205 "inffast.S"
155
+ ;GLOBAL inflate_fast_use_mmx
156
+
157
+ ;SECTION .data
158
+
159
+
160
+ ; GLOBAL inflate_fast_use_mmx:object
161
+ ;.size inflate_fast_use_mmx, 4
162
+ ; 226 "inffast.S"
163
+ ;SECTION .text
164
+
165
+ ALIGN 4
166
+ inflate_fast_entry:
167
+ push edi
168
+ push esi
169
+ push ebp
170
+ push ebx
171
+ pushfd
172
+ sub esp,64
173
+ cld
174
+
175
+
176
+
177
+
178
+ mov esi, [esp+88]
179
+ mov edi, [esi+28]
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+ mov edx, [esi+4]
188
+ mov eax, [esi+0]
189
+
190
+ add edx,eax
191
+ sub edx,11
192
+
193
+ mov [esp+44],eax
194
+ mov [esp+20],edx
195
+
196
+ mov ebp, [esp+92]
197
+ mov ecx, [esi+16]
198
+ mov ebx, [esi+12]
199
+
200
+ sub ebp,ecx
201
+ neg ebp
202
+ add ebp,ebx
203
+
204
+ sub ecx,257
205
+ add ecx,ebx
206
+
207
+ mov [esp+60],ebx
208
+ mov [esp+40],ebp
209
+ mov [esp+16],ecx
210
+ ; 285 "inffast.S"
211
+ mov eax, [edi+lencode_state]
212
+ mov ecx, [edi+distcode_state]
213
+
214
+ mov [esp+8],eax
215
+ mov [esp+12],ecx
216
+
217
+ mov eax,1
218
+ mov ecx, [edi+lenbits_state]
219
+ shl eax,cl
220
+ dec eax
221
+ mov [esp+0],eax
222
+
223
+ mov eax,1
224
+ mov ecx, [edi+distbits_state]
225
+ shl eax,cl
226
+ dec eax
227
+ mov [esp+4],eax
228
+
229
+ mov eax, [edi+wsize_state]
230
+ mov ecx, [edi+write_state]
231
+ mov edx, [edi+window_state]
232
+
233
+ mov [esp+52],eax
234
+ mov [esp+48],ecx
235
+ mov [esp+56],edx
236
+
237
+ mov ebp, [edi+hold_state]
238
+ mov ebx, [edi+bits_state]
239
+ ; 321 "inffast.S"
240
+ mov esi, [esp+44]
241
+ mov ecx, [esp+20]
242
+ cmp ecx,esi
243
+ ja L_align_long
244
+
245
+ add ecx,11
246
+ sub ecx,esi
247
+ mov eax,12
248
+ sub eax,ecx
249
+ lea edi, [esp+28]
250
+ rep movsb
251
+ mov ecx,eax
252
+ xor eax,eax
253
+ rep stosb
254
+ lea esi, [esp+28]
255
+ mov [esp+20],esi
256
+ jmp L_is_aligned
257
+
258
+
259
+ L_align_long:
260
+ test esi,3
261
+ jz L_is_aligned
262
+ xor eax,eax
263
+ mov al, [esi]
264
+ inc esi
265
+ mov ecx,ebx
266
+ add ebx,8
267
+ shl eax,cl
268
+ or ebp,eax
269
+ jmp L_align_long
270
+
271
+ L_is_aligned:
272
+ mov edi, [esp+60]
273
+ ; 366 "inffast.S"
274
+ L_check_mmx:
275
+ cmp dword ptr [inflate_fast_use_mmx],2
276
+ je L_init_mmx
277
+ ja L_do_loop
278
+
279
+ push eax
280
+ push ebx
281
+ push ecx
282
+ push edx
283
+ pushfd
284
+ mov eax, [esp]
285
+ xor dword ptr [esp],0200000h
286
+
287
+
288
+
289
+
290
+ popfd
291
+ pushfd
292
+ pop edx
293
+ xor edx,eax
294
+ jz L_dont_use_mmx
295
+ xor eax,eax
296
+ cpuid
297
+ cmp ebx,0756e6547h
298
+ jne L_dont_use_mmx
299
+ cmp ecx,06c65746eh
300
+ jne L_dont_use_mmx
301
+ cmp edx,049656e69h
302
+ jne L_dont_use_mmx
303
+ mov eax,1
304
+ cpuid
305
+ shr eax,8
306
+ and eax,15
307
+ cmp eax,6
308
+ jne L_dont_use_mmx
309
+ test edx,0800000h
310
+ jnz L_use_mmx
311
+ jmp L_dont_use_mmx
312
+ L_use_mmx:
313
+ mov dword ptr [inflate_fast_use_mmx],2
314
+ jmp L_check_mmx_pop
315
+ L_dont_use_mmx:
316
+ mov dword ptr [inflate_fast_use_mmx],3
317
+ L_check_mmx_pop:
318
+ pop edx
319
+ pop ecx
320
+ pop ebx
321
+ pop eax
322
+ jmp L_check_mmx
323
+ ; 426 "inffast.S"
324
+ ALIGN 4
325
+ L_do_loop:
326
+ ; 437 "inffast.S"
327
+ cmp bl,15
328
+ ja L_get_length_code
329
+
330
+ xor eax,eax
331
+ lodsw
332
+ mov cl,bl
333
+ add bl,16
334
+ shl eax,cl
335
+ or ebp,eax
336
+
337
+ L_get_length_code:
338
+ mov edx, [esp+0]
339
+ mov ecx, [esp+8]
340
+ and edx,ebp
341
+ mov eax, [ecx+edx*4]
342
+
343
+ L_dolen:
344
+
345
+
346
+
347
+
348
+
349
+
350
+ mov cl,ah
351
+ sub bl,ah
352
+ shr ebp,cl
353
+
354
+
355
+
356
+
357
+
358
+
359
+ test al,al
360
+ jnz L_test_for_length_base
361
+
362
+ shr eax,16
363
+ stosb
364
+
365
+ L_while_test:
366
+
367
+
368
+ cmp [esp+16],edi
369
+ jbe L_break_loop
370
+
371
+ cmp [esp+20],esi
372
+ ja L_do_loop
373
+ jmp L_break_loop
374
+
375
+ L_test_for_length_base:
376
+ ; 502 "inffast.S"
377
+ mov edx,eax
378
+ shr edx,16
379
+ mov cl,al
380
+
381
+ test al,16
382
+ jz L_test_for_second_level_length
383
+ and cl,15
384
+ jz L_save_len
385
+ cmp bl,cl
386
+ jae L_add_bits_to_len
387
+
388
+ mov ch,cl
389
+ xor eax,eax
390
+ lodsw
391
+ mov cl,bl
392
+ add bl,16
393
+ shl eax,cl
394
+ or ebp,eax
395
+ mov cl,ch
396
+
397
+ L_add_bits_to_len:
398
+ mov eax,1
399
+ shl eax,cl
400
+ dec eax
401
+ sub bl,cl
402
+ and eax,ebp
403
+ shr ebp,cl
404
+ add edx,eax
405
+
406
+ L_save_len:
407
+ mov [esp+24],edx
408
+
409
+
410
+ L_decode_distance:
411
+ ; 549 "inffast.S"
412
+ cmp bl,15
413
+ ja L_get_distance_code
414
+
415
+ xor eax,eax
416
+ lodsw
417
+ mov cl,bl
418
+ add bl,16
419
+ shl eax,cl
420
+ or ebp,eax
421
+
422
+ L_get_distance_code:
423
+ mov edx, [esp+4]
424
+ mov ecx, [esp+12]
425
+ and edx,ebp
426
+ mov eax, [ecx+edx*4]
427
+
428
+
429
+ L_dodist:
430
+ mov edx,eax
431
+ shr edx,16
432
+ mov cl,ah
433
+ sub bl,ah
434
+ shr ebp,cl
435
+ ; 584 "inffast.S"
436
+ mov cl,al
437
+
438
+ test al,16
439
+ jz L_test_for_second_level_dist
440
+ and cl,15
441
+ jz L_check_dist_one
442
+ cmp bl,cl
443
+ jae L_add_bits_to_dist
444
+
445
+ mov ch,cl
446
+ xor eax,eax
447
+ lodsw
448
+ mov cl,bl
449
+ add bl,16
450
+ shl eax,cl
451
+ or ebp,eax
452
+ mov cl,ch
453
+
454
+ L_add_bits_to_dist:
455
+ mov eax,1
456
+ shl eax,cl
457
+ dec eax
458
+ sub bl,cl
459
+ and eax,ebp
460
+ shr ebp,cl
461
+ add edx,eax
462
+ jmp L_check_window
463
+
464
+ L_check_window:
465
+ ; 625 "inffast.S"
466
+ mov [esp+44],esi
467
+ mov eax,edi
468
+ sub eax, [esp+40]
469
+
470
+ cmp eax,edx
471
+ jb L_clip_window
472
+
473
+ mov ecx, [esp+24]
474
+ mov esi,edi
475
+ sub esi,edx
476
+
477
+ sub ecx,3
478
+ mov al, [esi]
479
+ mov [edi],al
480
+ mov al, [esi+1]
481
+ mov dl, [esi+2]
482
+ add esi,3
483
+ mov [edi+1],al
484
+ mov [edi+2],dl
485
+ add edi,3
486
+ rep movsb
487
+
488
+ mov esi, [esp+44]
489
+ jmp L_while_test
490
+
491
+ ALIGN 4
492
+ L_check_dist_one:
493
+ cmp edx,1
494
+ jne L_check_window
495
+ cmp [esp+40],edi
496
+ je L_check_window
497
+
498
+ dec edi
499
+ mov ecx, [esp+24]
500
+ mov al, [edi]
501
+ sub ecx,3
502
+
503
+ mov [edi+1],al
504
+ mov [edi+2],al
505
+ mov [edi+3],al
506
+ add edi,4
507
+ rep stosb
508
+
509
+ jmp L_while_test
510
+
511
+ ALIGN 4
512
+ L_test_for_second_level_length:
513
+
514
+
515
+
516
+
517
+ test al,64
518
+ jnz L_test_for_end_of_block
519
+
520
+ mov eax,1
521
+ shl eax,cl
522
+ dec eax
523
+ and eax,ebp
524
+ add eax,edx
525
+ mov edx, [esp+8]
526
+ mov eax, [edx+eax*4]
527
+ jmp L_dolen
528
+
529
+ ALIGN 4
530
+ L_test_for_second_level_dist:
531
+
532
+
533
+
534
+
535
+ test al,64
536
+ jnz L_invalid_distance_code
537
+
538
+ mov eax,1
539
+ shl eax,cl
540
+ dec eax
541
+ and eax,ebp
542
+ add eax,edx
543
+ mov edx, [esp+12]
544
+ mov eax, [edx+eax*4]
545
+ jmp L_dodist
546
+
547
+ ALIGN 4
548
+ L_clip_window:
549
+ ; 721 "inffast.S"
550
+ mov ecx,eax
551
+ mov eax, [esp+52]
552
+ neg ecx
553
+ mov esi, [esp+56]
554
+
555
+ cmp eax,edx
556
+ jb L_invalid_distance_too_far
557
+
558
+ add ecx,edx
559
+ cmp dword ptr [esp+48],0
560
+ jne L_wrap_around_window
561
+
562
+ sub eax,ecx
563
+ add esi,eax
564
+ ; 749 "inffast.S"
565
+ mov eax, [esp+24]
566
+ cmp eax,ecx
567
+ jbe L_do_copy1
568
+
569
+ sub eax,ecx
570
+ rep movsb
571
+ mov esi,edi
572
+ sub esi,edx
573
+ jmp L_do_copy1
574
+
575
+ cmp eax,ecx
576
+ jbe L_do_copy1
577
+
578
+ sub eax,ecx
579
+ rep movsb
580
+ mov esi,edi
581
+ sub esi,edx
582
+ jmp L_do_copy1
583
+
584
+ L_wrap_around_window:
585
+ ; 793 "inffast.S"
586
+ mov eax, [esp+48]
587
+ cmp ecx,eax
588
+ jbe L_contiguous_in_window
589
+
590
+ add esi, [esp+52]
591
+ add esi,eax
592
+ sub esi,ecx
593
+ sub ecx,eax
594
+
595
+
596
+ mov eax, [esp+24]
597
+ cmp eax,ecx
598
+ jbe L_do_copy1
599
+
600
+ sub eax,ecx
601
+ rep movsb
602
+ mov esi, [esp+56]
603
+ mov ecx, [esp+48]
604
+ cmp eax,ecx
605
+ jbe L_do_copy1
606
+
607
+ sub eax,ecx
608
+ rep movsb
609
+ mov esi,edi
610
+ sub esi,edx
611
+ jmp L_do_copy1
612
+
613
+ L_contiguous_in_window:
614
+ ; 836 "inffast.S"
615
+ add esi,eax
616
+ sub esi,ecx
617
+
618
+
619
+ mov eax, [esp+24]
620
+ cmp eax,ecx
621
+ jbe L_do_copy1
622
+
623
+ sub eax,ecx
624
+ rep movsb
625
+ mov esi,edi
626
+ sub esi,edx
627
+
628
+ L_do_copy1:
629
+ ; 862 "inffast.S"
630
+ mov ecx,eax
631
+ rep movsb
632
+
633
+ mov esi, [esp+44]
634
+ jmp L_while_test
635
+ ; 878 "inffast.S"
636
+ ALIGN 4
637
+ L_init_mmx:
638
+ emms
639
+
640
+
641
+
642
+
643
+
644
+ movd mm0,ebp
645
+ mov ebp,ebx
646
+ ; 896 "inffast.S"
647
+ movd mm4,[esp+0]
648
+ movq mm3,mm4
649
+ movd mm5,[esp+4]
650
+ movq mm2,mm5
651
+ pxor mm1,mm1
652
+ mov ebx, [esp+8]
653
+ jmp L_do_loop_mmx
654
+
655
+ ALIGN 4
656
+ L_do_loop_mmx:
657
+ psrlq mm0,mm1
658
+
659
+ cmp ebp,32
660
+ ja L_get_length_code_mmx
661
+
662
+ movd mm6,ebp
663
+ movd mm7,[esi]
664
+ add esi,4
665
+ psllq mm7,mm6
666
+ add ebp,32
667
+ por mm0,mm7
668
+
669
+ L_get_length_code_mmx:
670
+ pand mm4,mm0
671
+ movd eax,mm4
672
+ movq mm4,mm3
673
+ mov eax, [ebx+eax*4]
674
+
675
+ L_dolen_mmx:
676
+ movzx ecx,ah
677
+ movd mm1,ecx
678
+ sub ebp,ecx
679
+
680
+ test al,al
681
+ jnz L_test_for_length_base_mmx
682
+
683
+ shr eax,16
684
+ stosb
685
+
686
+ L_while_test_mmx:
687
+
688
+
689
+ cmp [esp+16],edi
690
+ jbe L_break_loop
691
+
692
+ cmp [esp+20],esi
693
+ ja L_do_loop_mmx
694
+ jmp L_break_loop
695
+
696
+ L_test_for_length_base_mmx:
697
+
698
+ mov edx,eax
699
+ shr edx,16
700
+
701
+ test al,16
702
+ jz L_test_for_second_level_length_mmx
703
+ and eax,15
704
+ jz L_decode_distance_mmx
705
+
706
+ psrlq mm0,mm1
707
+ movd mm1,eax
708
+ movd ecx,mm0
709
+ sub ebp,eax
710
+ and ecx, [inflate_fast_mask+eax*4]
711
+ add edx,ecx
712
+
713
+ L_decode_distance_mmx:
714
+ psrlq mm0,mm1
715
+
716
+ cmp ebp,32
717
+ ja L_get_dist_code_mmx
718
+
719
+ movd mm6,ebp
720
+ movd mm7,[esi]
721
+ add esi,4
722
+ psllq mm7,mm6
723
+ add ebp,32
724
+ por mm0,mm7
725
+
726
+ L_get_dist_code_mmx:
727
+ mov ebx, [esp+12]
728
+ pand mm5,mm0
729
+ movd eax,mm5
730
+ movq mm5,mm2
731
+ mov eax, [ebx+eax*4]
732
+
733
+ L_dodist_mmx:
734
+
735
+ movzx ecx,ah
736
+ mov ebx,eax
737
+ shr ebx,16
738
+ sub ebp,ecx
739
+ movd mm1,ecx
740
+
741
+ test al,16
742
+ jz L_test_for_second_level_dist_mmx
743
+ and eax,15
744
+ jz L_check_dist_one_mmx
745
+
746
+ L_add_bits_to_dist_mmx:
747
+ psrlq mm0,mm1
748
+ movd mm1,eax
749
+ movd ecx,mm0
750
+ sub ebp,eax
751
+ and ecx, [inflate_fast_mask+eax*4]
752
+ add ebx,ecx
753
+
754
+ L_check_window_mmx:
755
+ mov [esp+44],esi
756
+ mov eax,edi
757
+ sub eax, [esp+40]
758
+
759
+ cmp eax,ebx
760
+ jb L_clip_window_mmx
761
+
762
+ mov ecx,edx
763
+ mov esi,edi
764
+ sub esi,ebx
765
+
766
+ sub ecx,3
767
+ mov al, [esi]
768
+ mov [edi],al
769
+ mov al, [esi+1]
770
+ mov dl, [esi+2]
771
+ add esi,3
772
+ mov [edi+1],al
773
+ mov [edi+2],dl
774
+ add edi,3
775
+ rep movsb
776
+
777
+ mov esi, [esp+44]
778
+ mov ebx, [esp+8]
779
+ jmp L_while_test_mmx
780
+
781
+ ALIGN 4
782
+ L_check_dist_one_mmx:
783
+ cmp ebx,1
784
+ jne L_check_window_mmx
785
+ cmp [esp+40],edi
786
+ je L_check_window_mmx
787
+
788
+ dec edi
789
+ mov ecx,edx
790
+ mov al, [edi]
791
+ sub ecx,3
792
+
793
+ mov [edi+1],al
794
+ mov [edi+2],al
795
+ mov [edi+3],al
796
+ add edi,4
797
+ rep stosb
798
+
799
+ mov ebx, [esp+8]
800
+ jmp L_while_test_mmx
801
+
802
+ ALIGN 4
803
+ L_test_for_second_level_length_mmx:
804
+ test al,64
805
+ jnz L_test_for_end_of_block
806
+
807
+ and eax,15
808
+ psrlq mm0,mm1
809
+ movd ecx,mm0
810
+ and ecx, [inflate_fast_mask+eax*4]
811
+ add ecx,edx
812
+ mov eax, [ebx+ecx*4]
813
+ jmp L_dolen_mmx
814
+
815
+ ALIGN 4
816
+ L_test_for_second_level_dist_mmx:
817
+ test al,64
818
+ jnz L_invalid_distance_code
819
+
820
+ and eax,15
821
+ psrlq mm0,mm1
822
+ movd ecx,mm0
823
+ and ecx, [inflate_fast_mask+eax*4]
824
+ mov eax, [esp+12]
825
+ add ecx,ebx
826
+ mov eax, [eax+ecx*4]
827
+ jmp L_dodist_mmx
828
+
829
+ ALIGN 4
830
+ L_clip_window_mmx:
831
+
832
+ mov ecx,eax
833
+ mov eax, [esp+52]
834
+ neg ecx
835
+ mov esi, [esp+56]
836
+
837
+ cmp eax,ebx
838
+ jb L_invalid_distance_too_far
839
+
840
+ add ecx,ebx
841
+ cmp dword ptr [esp+48],0
842
+ jne L_wrap_around_window_mmx
843
+
844
+ sub eax,ecx
845
+ add esi,eax
846
+
847
+ cmp edx,ecx
848
+ jbe L_do_copy1_mmx
849
+
850
+ sub edx,ecx
851
+ rep movsb
852
+ mov esi,edi
853
+ sub esi,ebx
854
+ jmp L_do_copy1_mmx
855
+
856
+ cmp edx,ecx
857
+ jbe L_do_copy1_mmx
858
+
859
+ sub edx,ecx
860
+ rep movsb
861
+ mov esi,edi
862
+ sub esi,ebx
863
+ jmp L_do_copy1_mmx
864
+
865
+ L_wrap_around_window_mmx:
866
+
867
+ mov eax, [esp+48]
868
+ cmp ecx,eax
869
+ jbe L_contiguous_in_window_mmx
870
+
871
+ add esi, [esp+52]
872
+ add esi,eax
873
+ sub esi,ecx
874
+ sub ecx,eax
875
+
876
+
877
+ cmp edx,ecx
878
+ jbe L_do_copy1_mmx
879
+
880
+ sub edx,ecx
881
+ rep movsb
882
+ mov esi, [esp+56]
883
+ mov ecx, [esp+48]
884
+ cmp edx,ecx
885
+ jbe L_do_copy1_mmx
886
+
887
+ sub edx,ecx
888
+ rep movsb
889
+ mov esi,edi
890
+ sub esi,ebx
891
+ jmp L_do_copy1_mmx
892
+
893
+ L_contiguous_in_window_mmx:
894
+
895
+ add esi,eax
896
+ sub esi,ecx
897
+
898
+
899
+ cmp edx,ecx
900
+ jbe L_do_copy1_mmx
901
+
902
+ sub edx,ecx
903
+ rep movsb
904
+ mov esi,edi
905
+ sub esi,ebx
906
+
907
+ L_do_copy1_mmx:
908
+
909
+
910
+ mov ecx,edx
911
+ rep movsb
912
+
913
+ mov esi, [esp+44]
914
+ mov ebx, [esp+8]
915
+ jmp L_while_test_mmx
916
+ ; 1174 "inffast.S"
917
+ L_invalid_distance_code:
918
+
919
+
920
+
921
+
922
+
923
+ mov ecx, invalid_distance_code_msg
924
+ mov edx,INFLATE_MODE_BAD
925
+ jmp L_update_stream_state
926
+
927
+ L_test_for_end_of_block:
928
+
929
+
930
+
931
+
932
+
933
+ test al,32
934
+ jz L_invalid_literal_length_code
935
+
936
+ mov ecx,0
937
+ mov edx,INFLATE_MODE_TYPE
938
+ jmp L_update_stream_state
939
+
940
+ L_invalid_literal_length_code:
941
+
942
+
943
+
944
+
945
+
946
+ mov ecx, invalid_literal_length_code_msg
947
+ mov edx,INFLATE_MODE_BAD
948
+ jmp L_update_stream_state
949
+
950
+ L_invalid_distance_too_far:
951
+
952
+
953
+
954
+ mov esi, [esp+44]
955
+ mov ecx, invalid_distance_too_far_msg
956
+ mov edx,INFLATE_MODE_BAD
957
+ jmp L_update_stream_state
958
+
959
+ L_update_stream_state:
960
+
961
+ mov eax, [esp+88]
962
+ test ecx,ecx
963
+ jz L_skip_msg
964
+ mov [eax+24],ecx
965
+ L_skip_msg:
966
+ mov eax, [eax+28]
967
+ mov [eax+mode_state],edx
968
+ jmp L_break_loop
969
+
970
+ ALIGN 4
971
+ L_break_loop:
972
+ ; 1243 "inffast.S"
973
+ cmp dword ptr [inflate_fast_use_mmx],2
974
+ jne L_update_next_in
975
+
976
+
977
+
978
+ mov ebx,ebp
979
+
980
+ L_update_next_in:
981
+ ; 1266 "inffast.S"
982
+ mov eax, [esp+88]
983
+ mov ecx,ebx
984
+ mov edx, [eax+28]
985
+ shr ecx,3
986
+ sub esi,ecx
987
+ shl ecx,3
988
+ sub ebx,ecx
989
+ mov [eax+12],edi
990
+ mov [edx+bits_state],ebx
991
+ mov ecx,ebx
992
+
993
+ lea ebx, [esp+28]
994
+ cmp [esp+20],ebx
995
+ jne L_buf_not_used
996
+
997
+ sub esi,ebx
998
+ mov ebx, [eax+0]
999
+ mov [esp+20],ebx
1000
+ add esi,ebx
1001
+ mov ebx, [eax+4]
1002
+ sub ebx,11
1003
+ add [esp+20],ebx
1004
+
1005
+ L_buf_not_used:
1006
+ mov [eax+0],esi
1007
+
1008
+ mov ebx,1
1009
+ shl ebx,cl
1010
+ dec ebx
1011
+
1012
+
1013
+
1014
+
1015
+
1016
+ cmp dword ptr [inflate_fast_use_mmx],2
1017
+ jne L_update_hold
1018
+
1019
+
1020
+
1021
+ psrlq mm0,mm1
1022
+ movd ebp,mm0
1023
+
1024
+ emms
1025
+
1026
+ L_update_hold:
1027
+
1028
+
1029
+
1030
+ and ebp,ebx
1031
+ mov [edx+hold_state],ebp
1032
+
1033
+
1034
+
1035
+
1036
+ mov ebx, [esp+20]
1037
+ cmp ebx,esi
1038
+ jbe L_last_is_smaller
1039
+
1040
+ sub ebx,esi
1041
+ add ebx,11
1042
+ mov [eax+4],ebx
1043
+ jmp L_fixup_out
1044
+ L_last_is_smaller:
1045
+ sub esi,ebx
1046
+ neg esi
1047
+ add esi,11
1048
+ mov [eax+4],esi
1049
+
1050
+
1051
+
1052
+
1053
+ L_fixup_out:
1054
+
1055
+ mov ebx, [esp+16]
1056
+ cmp ebx,edi
1057
+ jbe L_end_is_smaller
1058
+
1059
+ sub ebx,edi
1060
+ add ebx,257
1061
+ mov [eax+16],ebx
1062
+ jmp L_done
1063
+ L_end_is_smaller:
1064
+ sub edi,ebx
1065
+ neg edi
1066
+ add edi,257
1067
+ mov [eax+16],edi
1068
+
1069
+
1070
+
1071
+
1072
+
1073
+ L_done:
1074
+ add esp,64
1075
+ popfd
1076
+ pop ebx
1077
+ pop ebp
1078
+ pop esi
1079
+ pop edi
1080
+ ret
1081
+
1082
+ _TEXT ends
1083
+ end